Мультиязычность - локализация сайта на tpl-шаблонах

Материал из Umicms
Версия от 13:06, 5 июня 2013; Mad grant (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

При использовании TPL-шаблонизатора и нескольких языковых версий сайта, возможно создание переменных, значения которых будут динамически изменяться в зависимости от текущей языковой версии сайта. Рассмотрим пример для модуля каталог. Необходимо создать копию файла classes/modules/catalog/lang.php и переименовать в lang.ru.php. В файл lang.ru.php добавим строку:

$LANG_EXPORT['filter'] = 'Фильтр по брендам';

Также создадим файл lang.en.php:

<?php

$LANG_EXPORT = Array();
$LANG_EXPORT['filter'] = 'Filter by brand';

?>

ru, en, de, fr и т.д. – языковой префикс сайта. При обновлении системы, файлы lang.XX.php не перезаписываются. В tpl-шаблоне одного из макросов модуля каталог, допустим в блоке objects_block, пропишем макрос %filter%:

$FORMS['objects_block'] = <<<END
%filter%:
%catalog search('%category_id%')%
%system numpages(%total%, %per_page%)%

<ul>
  %lines%
</ul>

%system numpages(%total%, %per_page%)%

END;


Находясь в русской версии сайта: _http://sait.ru/shop/audio/ , вместо макроса %filter% будет выведено 'Фильтр по брендам', а в английской версии сайта: _http://sait.ru/en/shop/audio/ , увидим строку 'Filter by brand'.