コントローラーからデータを取得する Ruby on Rails で JQGrid を使用しており、そのコントローラーは json 形式でデータを返します。以下は私のJQueryコードです
<script type="text/javascript">
var list = null;
$(document).ready(function(){
grid = $("#list");
grid.jqGrid({
datatype: "json",
url:'/applications?'+new Date().getTime(),
height: <%= JQGRID_HEIGHT %>,
rowNum:<%= ROW_NUM %>,
rowList:<%= ROW_LIST %>,
viewrecords: true,
autowidth:true,
gridComplete: function() {
initLytebox();
common.jqGridComplete($(this));
initLytebox();
},
afterInsertRow: function(rowId) {
var action = grid.jqGrid('getRowData',rowId).action;
var cellValue = '<a href="/applications/'+rowId+'/edit"><img alt="Edit" src="/assets/edit.png" title="Edit"></a> '
cellValue += '<a href="javascript:void(0);" onclick="deleteApplication('+rowId+')" class = "delete_egress_group" id = "'+rowId+'">';
cellValue += '<img alt="Delete" src="/assets/delete.png" title="Delete"></a>';
grid.jqGrid('setRowData',rowId,{action:cellValue});
},
colNames:['Application Name','Description','Action'],
colModel:[
{name:'name',index:'name', width:"20%"},
{name:'description',index:'description', width:"70%"},
{name:'action',index:'action', width:"10%",search:false,sortable:false}
],
multiselect: false,
pager: '#pager',
toolbar: [true,"top"],
caption: "Applications" }
);
grid.jqGrid('navGrid', '#pager', {search: false, add: false, edit: false, del: false },{}, {}, {},
{ multipleSearch: true, overlay: false});
grid.jqGrid('filterToolbar', { stringResult: true, searchOnEnter: true, defaultSearch: 'cn' });
grid.jqGrid('navButtonAdd', '#pager',
{
caption: "Add",title: "Add New",buttonicon: 'ui-icon-plus',
onClickButton: function () {window.location = "/applications/new";}
}
);
});
</script>
<select id="languages">
<option value="en">English (US)</option>
<option value="en-GB">English (GB)</option>
<option value="en-IN">English (IN)</option>
<option value="de">German</option>
<option value="ru">Russian</option>
</select>
<div style="width:100%">
<table id="list"></table>
<div id="pager"></div>
</div>
以下の場所から多言語の js ファイルをダウンロードし、アプリケーションの JQGrid フォルダーに配置しました。
http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-3.8.2/src/i18n/grid.locale-en-fixed.js
http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-3.8.2/src/i18n/grid.locale-ru-fixed.js
http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-3.8.2/src/i18n/grid.locale-de-fixed.js
ここで、選択した言語に従って、JQGrid の列ヘッダーとページネーション文字列を変換したいだけです。