Для отображения на сайте различных вспомогательных надписей на разных языках (например, «Подписаться на рассылку» или «Корзина») удобно использовать механизм локализации тем дизайна.
Механизм локализации тем дизайна работает по принципу gettext: в качестве идентификатора строки используется ее вариант на одном из языков (обычно на английском), и для каждой из доступных во фреймворке локалей указывается перевод. Если для какой-то из локалей перевод строки не указан, то для этого языка используется идентификатор этой строки.
Строки локализации и их варианты на разных языках задаются в файле-манифесте theme.xml темы дизайна в виде одного общего элемента locales и вложенных в него элементов locale.
Внутри каждого элемента locale должен присутствовать один элемент msgid с идентификатором строки локализации и произвольное количество элементов msgstr — по одному для каждой локали, для которой необходимо указать перевод этой строки. Для каждого элемента msgstr должен быть указан атрибут locale с обозначением соответствующей локали. Если для какой-либо локали отдельный перевод некоторой строки не требуется (например, когда перевод строки совпадает с ее идентификатором), то добавлять для этой локали элемент msgstr не нужно.
Пример секции locales для файла theme.xml:
<locales>
<locale>
<msgid>Subscribe for news</msgid>
<msgstr locale="ru_RU">Подписаться на новости</msgstr>
</locale>
<locale>
<msgid>Shopping cart</msgid>
<msgstr locale="ru_RU">Корзина</msgstr>
</locale>
</locales>
Использование строк локализации в шаблонах
Для вставки локализованных строк в шаблон используется конструкция вида [`string`]. Ниже показан фрагмент шаблона с использованием строки, объявленной в предыдущем примере:
<p>[`Subscribe for news`]</p>
Если для поселения, использующего тему дизайна с такой строкой локализации, выбрана (или определена автоматически) локаль русского языка (ru_RU), то вместо [`Subscribe for news`] в браузер пользователя будет отдан перевод строки:
<p>Подписаться на новости</p>
В противном случае на веб-странице будет использоваться идентификатор этой строки:
<p>Subscribe for news</p>









