Мультиязычность - локализация сайта на tpl-шаблонах — различия между версиями
VITL' (обсуждение | вклад) (Новая страница: «При использовании TPL-шаблонизатора и нескольких языковых версий сайта, возможно создание …») |
Mad grant (обсуждение | вклад) |
||
Строка 34: | Строка 34: | ||
Находясь в русской версии сайта: _http://sait.ru/shop/audio/ , вместо макроса %filter% будет выведено ''''Фильтр по брендам'''', а в английской версии сайта: _http://sait.ru/en/shop/audio/ , увидим строку ''''Filter by brand''''. | Находясь в русской версии сайта: _http://sait.ru/shop/audio/ , вместо макроса %filter% будет выведено ''''Фильтр по брендам'''', а в английской версии сайта: _http://sait.ru/en/shop/audio/ , увидим строку ''''Filter by brand''''. | ||
+ | [[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]] |
Текущая версия на 13:06, 5 июня 2013
При использовании 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'.