Kendo UI Globalization / Language Packs
Kendo UI ne vient pas avec des packs de localisation. Vous ne pouvez choisir qu'un fichier de culture qui définira uniquement les formats de numéro et de date, mais pas les textes réels affichés dans les widgets (par exemple: les textes de pageur - éléments par page, page suivante, etc., les menus du filtre (égaux à , etc.), les parties de la grille (faites glisser une colonne ici ....), etc.), etc.)
Pour localiser un widget, il faut passer, dans les options individuelles de chaque widget, un tas de messages pour remplacer les messages utilisés par défaut par Kendo UI. Quelque chose comme ça:
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"
}
}
Bien sûr, vous pouvez partager ces options dans une seule variable JavaScript, mais vous ferez face à un problème inattendu: si vous avez des messages pour toutes les options de tous les widgets collectés dans une variable option unique, il allumera toutes ces options pour toutes les grilles. Si vous souhaitez une grille sans regroupement, vous devrez avoir une variable d'options localisées séparée sans le groupe ou sinon, même si vous ne le souhaitez pas, le groupe s'affiche car le groupable: { messages: { .... } }
Fera la reconnaissance de Kendo. .
Il ne semble pas être un moyen de localiser les commandes en incluant simplement un JavaScript supplémentaire pour remplacer ces messages, comme on peut le voir forums UI de Kendo UI .
Y a-t-il une autre façon de faire ça?
(Notez que je répondrai à ma propre question et je ne souffre pas de trouble bipolaire! C'est un moyen d'impliquer la participation de la communauté sur le projet Kendo-global!)
Le projet Kendo-global sur GITUB facilite la localisation de tous les textes localisables sur tous les widgets UI Kendo UI en incluant uniquement le fichier de langue souhaité comme celui-ci:
<script src="http://cdn.kendostatic.com/2012.3.1114/js/kendo.all.min.js"></script>
<script src="\js\lang\kendo.pt-BR.js"></script>
Il fonctionne en remplaçant les options par défaut sur les prototypes des widgets, de sorte qu'il fonctionnera comme si ces widgets ont été créés de manière native dans la langue attendue.
Puisque cela ne change rien et ne remplace aucune méthode, vous pourrez toujours passer des options personnalisées avec des messages personnalisés à l'aide de l'approche standard si vous avez besoin d'un message spécifique sur un widget individuel (au lieu de "10 ITENS "Vous voudrez peut-être montrer" 10 produits "dans le téléavertisseur de la grille ...)
Le projet n'a actuellement que quelques packs de langue. La traduction est très facile et les crédits complets seront donnés à chaque traducteur. Donc, les contributeurs sont vraiment, vraiment les bienvenus.
La page du projet peut être trouvée ici: https://github.com/loudenvier/kendo-global
Je travaille avec Telerik Controls Q1 2013 SP1. On dirait que vous ne pouvez plus remplacer les messages pour de nombreuses étiquettes ou info-bulles de Kendo Grid. Voici une liste de plusieurs messages/info-bulles que je n'ai pas pu remplacer à l'aide d'un fichier de langue Kendo-global:
- Objets par page
- D'abord
- Précédent
- Prochain
- Durer
Je n'ai aucune bonne réponse à la question initiale. Il peut être utile de mentionner que, à mon objectif, la solution était d'utiliser l'API fluide
@(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}")))
...
Si une option plus dynamique est nécessaire, je pense obtenir la localisation actuelle et initialiser le widget serait une bonne option.
@{
var culture = System.Threading.Thread.CurrentThread.CurrentCulture.ToString();
}
@section HeadContent {
<script src="@Url.Content("~/Scripts/cultures/kendo.culture." + culture + ".min.js")"></script>
}
Voici plus de documentation sur