2012-12-06 10 views
24

Interfejs Kendo nie jest dostarczany z pakietami lokalizacyjnymi. Możesz wybrać tylko plik kultury, który będzie tylko ustawiał format liczb i dat, ale nie wyświetlał tekstów wyświetlanych w widżetach (na przykład: teksty stronicowania - pozycje na stronie, następna strona itp., Menu filtrów (jest równe itp.), elementy siatki (Przeciągnij tutaj kolumnę ...), itp.)Kendo UI Globalizacja/pakiety językowe

Aby zlokalizować widżet, należy podać, w poszczególnych opcjach każdego widżetu, kilka wiadomości, aby nadpisać wiadomości używany domyślnie przez Kendo UI. Coś takiego:

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" 
    } 
    } 

Oczywiście można udostępniać tę opcję w pojedynczej zmiennej JavaScript, ale potem będzie musiał stawić czoła nieoczekiwany problem: jeśli masz wiadomości dla wszystkich opcji wszystkich widżetów zebrane w jednej zmiennej opcji, WŁĄCZY się wszystkie opcje dla wszystkich sieci. Jeśli chcesz mieć siatkę bez grupowania, musisz mieć oddzielną zlokalizowaną zmienną opcji bez grupowego, lub nawet, jeśli nie chcesz, grupa wyświetli, ponieważ K2 rozpoznaje ją jako aktywowaną.

Wygląda na to, że nie można w żaden sposób zlokalizować formantów, dodając tylko dodatkowy skrypt JavaScript, aby zastąpić te wiadomości, co można zobaczyć na stronie Kendo UI forums.

Czy jest jakiś inny sposób na zrobienie tego?

(zauważ, że będę odpowiadając na moje własne pytanie, a ja nie cierpią z powodu choroby afektywnej dwubiegunowej! To jest właśnie sposób na zaangażowanie społeczności na temat projektu kendo-global!)

Odpowiedz

28

kendo-globalny projekt na github ułatwia zlokalizowanie wszystkich lokalizowane tekstów na wszystkie widżety Kendo UI tylko o tym żądany plik językowy takiego:

<script src="http://cdn.kendostatic.com/2012.3.1114/js/kendo.all.min.js"></script> 
<script src="\js\lang\kendo.pt-BR.js"></script> 

działa poprzez nadpisanie domyślnych opcji na prototypach widżetów, więc będzie działać tak, jakby te widżety były tworzone natywnie w oczekiwanym języku.

Ponieważ nic nie zmienia i nie zastępuje żadnej metody, nadal będziesz w stanie przekazywać niestandardowe opcje z niestandardowymi wiadomościami, stosując standardowe podejście, jeśli potrzebujesz określonej wiadomości na pojedynczym widżecie (zamiast tego z "10 rzeczy" możesz chcieć pokazać "10 produktów" w pagerze siatki ...)

Obecnie w projekcie jest tylko kilka pakietów językowych. Tłumaczenie jest bardzo proste, a wszyscy tłumacze otrzymują pełne kredyty. Tak więc, współautorzy są naprawdę mile widziani.

stronie projektu można znaleźć tutaj: https://github.com/loudenvier/kendo-global

+0

Jak to pisze pakiety językowe nie działają z wersją kendo.ui.core. Otworzyłem bilet (numer 58) na stronie projektu GitHub z kilkoma sugestiami. –

+0

@ JennyO'Reilly Potrzebuję czasu, aby pobrać nowy plik kendo.core.ui, a następnie zaktualizować każdy plik JavaScript ze strażnikiem, aby zapobiec występowaniu błędu. W tej chwili nie mam na to czasu. Kiedy znajdę czas, zrobię to. Mam nadzieję, że ktoś wcześniej utworzył dla nas łatkę :-) – Loudenvier

+1

Byłoby sensowne, aby zrestrukturyzować pliki JavaScript w taki sam sposób, jak tłumaczenie es-ES. W tym pliku wystarczy dodać jeden wiersz (instrukcja if), aby naprawić problem. Inne tłumaczenia wymagają dodania oddzielnego strażnika dla każdego typu widżetu. –

1

Pracuję z Telerik Kontroluje Q1 2013 SP1. Wygląda na to, że nie można już przesłonić wiadomości dla wielu etykiet i podpowiedzi do siatki Kendo.Oto lista kilku wiadomości/podpowiedzi, że nie byłem w stanie przesłonić za pomocą pliku językowego kendo-global:

  • ItemsPerPage
  • Pierwszy
  • Poprzedni
  • Następny
  • Ostatni

Nie mam dobrej odpowiedzi na oryginalne pytanie. To może warto wspomnieć, że dla mojego celu rozwiązanie było użyć 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}"))) 
... 
+1

Jeśli korzystasz z rozszerzeń MVC, musisz mieć świadomość, że Telerik wymusi na tobie lokalizację. Ich rozszerzenie MVC wybierze lokalizację opartą na definicji zdefiniowanej w pliku web.config. Jeśli używasz ASP.NET MVC i rozszerzeń, a nie czystego Kendo.UI JavaScript, powinieneś użyć natywnej lokalizacji ze złożonymi satelitami. kendo-global nie pomoże ci, ponieważ rozszerzenia MVC wymuszają na twoich satelitach "wiadomości". – Loudenvier