如何定义kendo网格可过滤运算符但继续使用其默认字符串

问题描述 投票:0回答:1

我有以下情况,一个剑道网格,我想选择哪些过滤器运算符,这工作正常:

var filters_op = {
  operators: {
    string: {
      eq: "Is equal to",
      neq: "Is not equal to",
      contains: "Contains"
    }
  }
}

element.kendoGrid({
  dataSource: dataSource,
  filterable: filters_op,
  columns: ...
  ...
});

然而,我的应用程序是多语言,之前我有属性filterable: true(或错误)和供应商kendo global做翻译工作并带来自己的可过滤操作符。

另一方面,Kendo Global的默认运算符包含一些过滤器,如“开始于”,“之后”,“之后或等于”...我的应用程序尚不支持,当我覆盖它们时,我失去了K.Global的翻译支持

是否有可能同时选择我想要的和K.Glbl的翻译?

kendo-ui kendo-grid
1个回答
2
投票

您无法选择在kendo global函数的filterable参数中翻译哪一个kendoGrid运算符。剑道不允许这样做。

但是,您可以自己(或第三方库)翻译运算符,并在filters_op上提供它们。这将覆盖kendo默认的filters并翻译它们。

我建议你使用I18n.ti18n翻译方法来做到这一点。您的代码将如下所示,例如:

var filtersOp = {
  operators: {
    string: {
      eq: I18n.t('kendo.grid.filterable.operators.string.eq'),
      neq: I18n.t('kendo.grid.filterable.operators.string.neq'),
      contains: I18n.t('kendo.grid.filterable.operators.string.contains')
    },
    date: {
      eq: I18n.t('kendo.grid.filterable.operators.date.eq'),
      neq: I18n.t('kendo.grid.filterable.operators.date.neq')
    },
    enums: {
      eq: I18n.t('kendo.grid.filterable.operators.enums.eq'),
      neq: I18n.t('kendo.grid.filterable.operators.enums.neq')
    }
  }
}

...

element.kendoGrid({
   ...
   filterable: filtersOp,
   columns: ...
   ...
})

如您所见,I18n库将处理此转换过程。

© www.soinside.com 2019 - 2024. All rights reserved.