Реализация многоязыковой поддержки в/с помощью Smarty (+ images)...

druser

Новичок
Реализация многоязыковой поддержки в/с помощью Smarty (+ images)...

Если можете, подскажите по теме... Интересуют следующие вопросы:
1. Языковая поддержка: структура хранения данных, передача в шаблон.
2. Языковая поддержка (images*): передача в шаблон.
*имаджи с текстом на разных языках
 

Alexandre

PHPПенсионер
1) вводятся поля или отд. таблицы (зависит от структуры сайта):
rus_pages, en_pages, dm_pages ...
для текстовых страниц...
2) испотльзуй префиксы для имиджей:
en_mask.gif, ru_mask.gif ....
соответственно в смарти вводится переменная $LANG_PREFIX
 

Domovoj

Guest
Автор оригинала: Alexandre
1) вводятся поля или отд. таблицы (зависит от структуры сайта):
rus_pages, en_pages, dm_pages ...
для текстовых страниц...
2) испотльзуй префиксы для имиджей:
en_mask.gif, ru_mask.gif ....
соответственно в смарти вводится переменная $LANG_PREFIX
А ещё можно просто массив подготовить (или функцию написать) в зависимости от выбранного языка и брать строки и названия картинок оттуда. Вроде бы более гибкий подход.

-~{}~ 12.04.05 15:12:

Не заметил, что речь конкретно о Smarty.

В таком случае вообще быть проблем не должно. Просто когда $smarty->assign делаешь, суй туда уже переведённые данные. Ну и имена картинок также туда передавай.

А ещё можно просто сделать несколько разных шаблонов для разных языков.
 

druser

Новичок
Alexandre
Если честно, на совсем тебя понял (с префиксами все ясно, но вот как и где хранит переводы)... может в '/configs/lang/' . $lang[0] . '.conf'

И вот еще... Что можете сказать про такую структуру директорий:

/templates
|-- /$theme[0]
| |-- /images
| | |-- /$lang[0]
| | | |-- image1.gif
| | | |-- ...
| | |-- /$lang[1]
| | | |-- ...
| | |-- image0.gif
| | |-- ...
| |-- index.tpl
| |-- ...
|-- /$theme[1]
|-- ...

/configs
|-- /lang
| |-- $lang[0] . '.conf' // файл перводом
| |-- ...
|-- /profile
| |-- $UID[0] . '.conf' // пользовательские настройки
|-- default.conf

Поправте, если что не так...

ps может есть Smarty plugin для поддержки языков и тем?

tony2001
Спасибо, щас гляну...
 

DimbIch

Новичок
я делал проще...
создавался класс Language extends Smarty
и еще модификатор смарти отдельный - уменя был просто l

в шаблоне пишешь {'String'|l}
и он автоматически переводит его...

принцип в том что смарти смотрит не модификатор - вызывает функцию перевода...
функция же берет данные из базы с таким ID и на языке установленном в данный момент
 
Сверху