Расположение файлов на диске

Как и любой другой модуль, ваш модуль psychic должен быть представлен простым файлом с исходными текстами, находящимся в типичном дереве каталогов:
dtdg/
psychic/
Psychic.js /* Самое основное находится здесь */

Неудивительно, что ваш невероятный модуль psychic обладает возможностью предсказывать будущее. Пользователи модуля могли бы добавлять его в свои страницы и использовать его возможности, как показано ниже:


В функции predictFuture может находиться много чего, по-настоящему волшебного, но сейчас нас интересует та ее часть, где строковое значение фактически выводится на экран, потому что именно в этот момент и выполняется интернационализация. Как оказывается, вывод информации в нашем модуле реализован, как показано ниже:
dojo.byId("reading").innerHTML = predictFuture( /* волшебство */ );

На первом этапе интернационализации мы будем считать, что мы имеем дело просто с английским и русским языком, игнорируя конкретные диалекты. С учетом этого решения содержимое каталога nls могло бы выглядеть, как показано ниже:
dtdg/
psychic/
Psychic.js
nls/
readings.js /* Английский перевод по умолчанию */
ru/
readings.js /* Русский перевод */
en/
/* Каталог с английским переводом по умолчанию пуст, поэтому
Dojo будет искать файл выше, в каталоге nls/ */

В соответствии с соглашениями каждый из файлов .js, содержащий информацию о переводе, называется привязкой (bundle).


Согласно соглашению, привязка с переводом по умолчанию должна находиться в самом каталоге nls, а не в каталоге для данного конкретного языка. Это соглашение основано на том, что всегда удобнее иметь перевод по умолчанию в каталоге nls, как в наиболее логичном местоположении, и нет смысла создавать точную копию привязки в ее собственном каталоге (en, в данном случае), потому что в противном случае этот файл превратился бы еще в одну вещь, за которой необходимо следить.

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

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

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