Kendo UI没有附带本地化包。您只能选择仅设置数字和日期格式的文化文件,而不能选择小部件中显示的实际文本(例如:寻呼机文本 - 每页的项目数,下一页等,过滤器菜单(等于等等),网格部分(在这里拖一列......)等。)
要本地化小部件,必须在每个小部件的各个选项中传递一堆消息,以覆盖Kendo UI默认使用的消息。像这样:
filterable: {
messages: {
info: "Título:", // sets the text on top of the filter menu
filter: "Filtrar", // sets the text for the "Filter" button
clear: "Limpar", // sets the text for the "Clear" button
// when filtering boolean numbers
isTrue: "é verdadeiro", // sets the text for "isTrue" radio button
isFalse: "é falso", // sets the text for "isFalse" radio button
//changes the text of the "And" and "Or" of the filter menu
and: "E",
or: "Ou"
},
operators: {
//filter menu for "string" type columns
string: {
eq: "Igual a",
neq: "Diferente de",
startswith: "Começa com",
contains: "Contém",
endswith: "Termina em"
},
//filter menu for "number" type columns
number: {
eq: "Igual a",
neq: "Diferente de",
gte: "Maior que ou igual a",
gt: "Mair que",
lte: "Menor que ou igual a",
lt: "Menor que"
},
//filter menu for "date" type columns
date: {
eq: "Igual a",
neq: "Diferente de",
gte: "Maior que ou igual a",
gt: "Mair que",
lte: "Menor que ou igual a",
lt: "Menor que"
}
}
},
groupable: {
messages: {
empty: "Arraste colunas aqui para agrupar pelas mesmas"
}
}
当然你可以在一个JavaScript变量中共享这个选项,但是你会遇到一个意想不到的问题:如果你有一个选项变量收集的所有小部件的所有选项的消息,它将打开所有这些选项所有的网格。如果你想要一个没有分组的网格,你必须有一个单独的本地化选项变量而没有分组,否则,即使你不想要,该组也会显示,因为groupable: { messages: { .... } }
会让Kendo将它识别为启用。
在Kendo UI forums上可以看到,通过仅包含一个额外的JavaScript来覆盖这些消息,似乎没有任何方式来本地化控件。
还有其他办法吗?
(注意我将回答我自己的问题,而且我没有遭受双相情感障碍!这只是让社区参与剑道全球项目的一种方式!)
答案 0 :(得分:28)
github上的kendo-global项目可以轻松地在所有Kendo UI小部件上本地化所有可本地化的文本,只需包含所需的语言文件:
<script src="http://cdn.kendostatic.com/2012.3.1114/js/kendo.all.min.js"></script>
<script src="\js\lang\kendo.pt-BR.js"></script>
它可以通过覆盖小部件原型的默认选项来工作,因此它可以像使用预期语言本地创建这些小部件一样工作。
由于它不会更改任何内容,并且不会覆盖任何方法,因此如果您需要在单个窗口小部件上显示特定消息(而不是单个窗口小部件),您仍然可以使用标准方法传递自定义消息的自定义选项“10 itens”你可能想在网格的寻呼机中显示“10个产品”......)
该项目目前只有几个语言包。翻译非常简单,每个翻译人员都将获得全额学分。所以贡献者真的非常欢迎。
项目页面可在此处找到:https://github.com/loudenvier/kendo-global
答案 1 :(得分:1)
我正在使用Telerik Controls Q1 2013 SP1。 您似乎无法再覆盖许多Kendo网格标签或工具提示的消息。以下是我无法使用kendo-global语言文件覆盖的多个消息/工具提示的列表:
我对原始问题没有好的答案。 值得一提的是,就我的目的而言,解决方案是使用Fluent API
@(Html.Kendo().Grid<Whatever>()
.Name("Grid")
.Pageable(e => e
.Messages(p => p.ItemsPerPage("")
.First("לדף הראשון")
.Previous("לדף הקודם")
.Next("לדף הבא")
.Last("לדף האחרון")
.Refresh("ריענון")
.Display("מציג {0}-{1} מתוך {2} רשומות")
.Page("דף")
.Of("מתוך {0}")))
...
答案 2 :(得分:0)
如果需要一个更具动态性的选项,我认为获取当前的本地化并初始化小部件将是一个不错的选择。
@{
var culture = System.Threading.Thread.CurrentThread.CurrentCulture.ToString();
}
@section HeadContent {
<script src="@Url.Content("~/Scripts/cultures/kendo.culture." + culture + ".min.js")"></script>
}
有关此的更多文档