在jqGrid中即时翻译搜索运算符

时间:2016-03-08 09:32:06

标签: javascript jquery jqgrid

我们的应用程序有自己的翻译工具,由于jqGrid翻译不完整,我们在翻页设置上将翻译注入jqGrid。

我们正在使用jqGrid 4.4.4 - 目前无法更新。

这几乎适用于所有翻译(请参阅下面示例中的alerttext等)。

但是对于搜索过滤器运算符(请参阅下面的odata数组),这根本不起作用。 odata字符串(“等于”,“不等于”,......)不会被翻译的字符串替换。 如上所述,使用标准的jqGrid语言文件不是我们的选择。

有人知道如何动态为搜索运算符注入翻译吗?

jQuery("#displayresponses").jqGrid( 'navGrid', '#pager',
        {
            add: false,
            edit: false,
            del: true,
            alertcap: sWarningMsg,
            alerttext: sSelectRowMsg,
            searchtitle : sSearchTitle,
            refreshtitle : sRefreshTitle,
            deltitle : sDelTitle,
            search: true,
            refresh: true,
            view: false,
            position: "left"
        },
        {}, // edit options
        {}, // add options
        {
            msg : strDeleteAllConfirm,
            bSubmit : sDelCaption,
            caption : sDelCaption,
            bCancel : sCancel,
            width : 700
        },
        { // Search options
            caption : sSearchCaption,
            Find : sFind,
            multipleSearch: true,
            odata : [ sOperator1, sOperator2, sOperator3,
                sOperator4, sOperator5, sOperator6,
                sOperator7, sOperator8, sOperator9,
                sOperator10, sOperator11, sOperator12,
                sOperator13, sOperator14 ],
            Reset : sReset,
            width: 700
        }
        
    );

1 个答案:

答案 0 :(得分:1)

您在问题中使用了错误的标记free-jqgrid标记,这会导致误解。如果版本4.8.0,... 4.13.2中存在使用free-jqgrid,则应使用free jqGrid标记。

复古版4.4.4使用$.jgrid.search.odata作为jqFilter的参数,而不是稍后介绍的odata选项。因此,您必须动态更改$.jgrid.search.odata“。

旧版本4.4.4已经死,我强烈建议您升级到当前免费的jqGrid 4.13.2。您可以直接在CDN中使用它,就像在wiki atricle中描述的那样,并且还包含在所有最后发布的免费jqGrid版本的README中。如果你更愿意使用NuGet包,那么你可以卸载旧的jQuery.jqGrid包,然后安装free-jqGrid