2012-12-06 17 views
24

剣道UIにはローカリゼーションパックは付属していません。ウィジェットに表示される実際のテキストではなく、番号と日付のフォーマットのみを設定するカルチャーファイルを選択することができます(たとえばページャのテキスト - ページごとの項目、次ページなど、フィルタメニューウィジェットをローカライズするには、各ウィジェットの個々のオプションに、メッセージをオーバーライドするための一連のメッセージを渡す必要があります。デフォルトで剣道のUIによって使用されます。このような何か:もちろん剣道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変数にこのオプションを共有することができますが、その後、あなたは予想外の問題に直面することになります:あなたは1つのオプション変数に収集されたすべてのウィジェットのすべてのオプションのためのメッセージを持っている場合は、すべてのグリッドのすべてのオプションを有効にします。グループ化せずにグリッドが必要な場合は、グループ化されていない別のローカライズされたオプション変数を持たなければなりません。そうしないと、groupable: { messages: { .... } }が有効になっていると認識するためグループが表示されます。

Kendo UI forumsに表示されているように、これらのメッセージをオーバーライドするJavaScriptを追加するだけで、コントロールをローカライズする方法はありません。

他の方法がありますか?

(私は自分の質問に答えることだろう、と私は双極性障害に悩まされないことに注意してください!それは剣道、グローバルプロジェクトで、コミュニティの関与を取得するだけの方法です!)

答えて

28

githubの上の剣道-グローバルプロジェクトにのみ、このような目的の言語ファイルを含めて、すべての剣道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 products"をグリッドのポケベルに表示することができます...)

このプロジェクトでは現在、いくつかの言語パックしかありません。翻訳は非常に簡単で、すべての翻訳者にフルクレジットが与えられます。貢献者は本当に歓迎されています。

プロジェクトのページには、ここで見つけることができます:私はTelerikで働いていますhttps://github.com/loudenvier/kendo-global

+0

を使用していたことを言及する価値があるかもしれません。あなたのGitHubプロジェクトサイトでチケットをオープンしました(Issue#58)。 –

+0

@ JennyO'Reilly私は新しいkendo.core.uiをダウンロードし、すべての単一のJavaScriptファイルをガードで更新して、エラーを防ぐ時間が必要です。今私はそれを行う時間がありません。私が時間を見つけると、私はそれをやります。他の人が以前に私たちのためにパッチを作成してくれたらうれしいですね:-) – Loudenvier

+1

JavaScriptファイルをes-ES翻訳のやり方で再構成することは意味があります。そのファイルでは、問題を修正するために1行(if文)を追加するだけです。他の翻訳では、ウィジェットの種類ごとに別々のガードを追加する必要があります。 –

1

はQ1 2013 SP1を制御します。 多くの剣道のラベルやツールチップのメッセージを上書きすることはできなくなったようです。ここで私は剣道-グローバル言語ファイル使用して上書きすることができませんでしたいくつかのメッセージ/ツールヒントのリストです:

  • ItemsPerPageは
  • まず
  • 最終

私は元の質問には良い答えがありません。 私の目的のために解決策は、言語パックがkendo.ui.coreバージョンでは動作しません。この記事の執筆と流暢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

MVC拡張を使用している場合は、Telerikが強制的にローカリゼーションを行うことに注意する必要があります。 MVC拡張機能は、web.configで定義されたものに基づいてローカリゼーションを選択します。純粋なKendo.UI JavaScriptではなく、ASP.NET MVCと拡張機能を使用している場合は、サテライトアセンブリでネイティブローカリゼーションを使用する必要があります。 kendo-globalは、MVCの拡張機能がサテライトアセンブリの "メッセージ"を強制するのに役立ちません。 – Loudenvier