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

Translate search operators in jqGrid on the fly

本文关键字:搜索 运算符 jqGrid 翻译      更新时间:2023-09-26

我们的应用程序有自己的翻译工具,由于 jqGrid 翻译不完整,我们在寻呼机设置时将翻译注入到 jqGrid 中。

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

这几乎适用于所有翻译(请参阅以下示例中的警报文本等)。

但是,对于搜索过滤器运算符(请参阅下面的 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
        }
        
    );

你在问题中使用了错误的标签free-jqgrid标签,这导致了误解。free-jqgrid 标签应该在使用 free jqGrid 的情况下使用 4.8.0 版中存在的,...4.13.2.

复古版本 4.4.4 使用 $.jgrid.search.odata 作为 jqFilter 的参数,而不是后面介绍odata选项。因此,您必须"即时"更改$.jgrid.search.odata

旧版本 4.4.4

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