Подтвердить что ты не робот

Kendo UI Глобализация/языковые пакеты

Пользовательский интерфейс Kendo не поставляется с пакетами локализации. Вы можете выбрать только файл культуры, который будет устанавливать только формат и формат даты, но не фактические тексты, отображаемые в виджетах (например, тексты пейджера - пункты на странице, следующую страницу и т.д., Меню фильтров (равно и т.д.), части сетки (перетащите столбец здесь...) и т.д.)

Чтобы локализовать виджет, необходимо передать в отдельных опциях каждого виджета кучу сообщений, чтобы переопределить сообщения, используемые по умолчанию 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 распознать ее как включенную.

Кажется, что нет никакого способа локализовать элементы управления, включив только лишний JavaScript, чтобы переопределить эти сообщения, как можно видеть на форумах Kendo UI.

Есть ли другой способ сделать это?

(заметьте, что я отвечу на свой вопрос, и я не страдаю от биполярного расстройства! Это всего лишь способ привлечь сообщество к кендо-глобальному проекту!)

4b9b3361

Ответ 1

Кэндо-глобальный проект по github позволяет легко локализовать все локализуемые тексты на всех виджетах 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

Ответ 2

Я работаю с Telerik Controls Q1 2013 SP1. Похоже, вы больше не можете переопределять сообщения для многих меток или всплывающих подсказок сетки Kendo. Вот список нескольких сообщений/всплывающих подсказок, которые я не смог переопределить с помощью файла языка kendo-global:

  • ItemsPerPage
  • Первая
  • Предыдущий
  • Далее
  • Last

У меня нет хорошего ответа на исходный вопрос. Возможно, стоит упомянуть, что для моей цели решение заключалось в использовании 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}")))
 ...