Объединим все вместеЕсли раньше для получения значения 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: djConfig="dojo.locale:'ru'"> Имеется нюанс, о котором следует знать, – когда языком по умолчанию является английский и вы тестируете русский перевод, загружаются сразу две привязки: nls/readings.js и nls/ru/readings.js. Хотя в данном конкретном примере не использовались диалекты ни одного из вовлеченных языков, однако, следует заметить, что чаще всего при загрузке привязок во внимание принимаются именно диалекты. Например, если вы используете язык enus и в наличии имеет ся привязка en!us, то Dojo попытается загрузить обе привязки, en-us и en, объединив их в единую коллекцию, обращение к которой будет производиться различными вызовами dojo.i18n.getLocalization. При работе, например, над английским переводом, необходимо как можно больше информации, общей для всех диалектов, поместить в привязку en, а затем переопределять или дополнять недостающие элементы, характерные для конкретного диалекта, такого как en-us. Статьи из раздела Dojo на эту тему: ![]() ![]() ![]() ![]() ![]() Вернуться в раздел: Dojo / Интернационализация (i18n)
|