Объединим все вместе

Если раньше для получения значения reading102 требовалось обратить ся к значению хешфункции, например psychic.reading102, то теперь это можно сделать с помощью инструментария. Если имеется перевод для языка, используемого пользователем, вся интернационализация будет выполняться «сама по себе». Поиск строк в различных переводах выполняется очень просто, как показано в следующем фрагменте:
/* Сначала нужно подключить утилиты i18n... */
dojo.require("dojo.i18n");
/* Затем подключить различные переводы */
dojo.requireLocalization("psychic", "readings");
function predictFuture() {
/* Где-то в глубине функции predictFuture... */
var future= dojo.i18n.getLocalization("psychic", "readings").reading597;
return future;
}

Обратите внимание, что имеется возможность изменить значение dojo.locale, чтобы проверить варианты на других языках. Лучше всего изменять это значение в блоке djConfig. Ниже показано, как можно проверить русский перевод при использовании локальной версии Dojo:





Имеется нюанс, о котором следует знать, – когда языком по умолчанию является английский и вы тестируете русский перевод, загружаются сразу две привязки: nls/readings.js и nls/ru/readings.js.


То есть привязка по умолчанию, находящаяся в каталоге nls/, загружается всегда. Чтобы убедиться в наличии этой особенности, можно воспользоваться инструментом Net в Firebug.

Хотя в данном конкретном примере не использовались диалекты ни одного из вовлеченных языков, однако, следует заметить, что чаще всего при загрузке привязок во внимание принимаются именно диалекты. Например, если вы используете язык enus и в наличии имеет ся привязка en!us, то Dojo попытается загрузить обе привязки, en-us и en, объединив их в единую коллекцию, обращение к которой будет производиться различными вызовами dojo.i18n.getLocalization. При работе, например, над английским переводом, необходимо как можно больше информации, общей для всех диалектов, поместить в привязку en, а затем переопределять или дополнять недостающие элементы, характерные для конкретного диалекта, такого как en-us.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
Даты, числа и денежные суммы
Интернационализация модуля
Использование инструментов сборки для повышения производительности
Определение таблиц строк
Расположение файлов на диске

Вернуться в раздел: Dojo / Интернационализация (i18n)