25

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 フォーラムで見られるように、これらのメッセージをオーバーライドするための追加の JavaScript を含めるだけでは、コントロールをローカライズする方法にはならないようです。

それを行う他の方法はありますか?

(私自身の質問に答えることに注意してください。私は双極性障害に苦しんでいません!これは、剣道のグローバル プロジェクトにコミュニティを参加させるための単なる方法です!)

4

3 に答える 3

29

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

于 2012-12-06T15:13:48.353 に答える
0

より動的なオプションが必要な場合は、現在のローカリゼーションを取得してウィジェットを初期化することが適切なオプションになると思います。

 @{
    var culture = System.Threading.Thread.CurrentThread.CurrentCulture.ToString();
}

@section HeadContent {
    <script src="@Url.Content("~/Scripts/cultures/kendo.culture." + culture + ".min.js")"></script>
}

ここに詳細なドキュメントがあります

https://demos.telerik.com/aspnet-mvc/grid/globalization?culture=ru-RU&_ga=2.268933617.1296110429.1575874528-1040251397.1575554475

于 2019-12-09T13:50:57.537 に答える