Мультиланг.

WP

^_^
Мультиланг.

У себя в CMS я вот реализовал мультиланг интерфейса. Для каждого языка (он пишется в ссылке, например http://site/ru/news) компилируется своя версия шаблона Smarty. И в нем, с помощью пре-фильтра кода конструкции типа {_ PHRASE} заменяются на соответствующие фразы из lang-ru.php, который инклюдится только при обращении к функции префильтра, ну и когда из PHP нужно получить фразу (например, сообщение об ошибке), он когда из PHP запрашивается это кешируется в небольшой файл.
Таким образом можно использовать одну фразу в нескольких шаблонах.
Но, есть языковые блоки которые перемешаны с HTML-кодом и выносить каждый в свою фразу очень неудобно. Поэтому я решил сделать inline-тег для ввода таких блоков, например
{LANG}
{ru}Русская фраза
{en}English phrase
{/LANG}
А также можно ввести default, т.е.
{LANG}
{ru}Русская фраза
{en}English phrase
{default}По-умолчанию.
{/LANG}
default это если запрошеного языка нет в тексте. Если default нет, и нет варианта то варнинг дает.
Такая структура тега нормальна? Есть какие-то общеприятные? Там еще можно задать {LANG=blablabla} и blablabla будет в варнинге, чтоб сразу определить какая фраза.

Спасибо.
 

HraKK

Мудак
Команда форума
WP
извини за оффтоп, но а если у меня будет русская и английская версия отличатся по структуре, как твоя цмс это разберет?
 

WP

^_^
HraKK
Дык это ведь шаблоны интерфейса, а не структуры БД. Так что это действительно оффтоп.
 

iSlayter

Новичок
можно вопрос?
cms была уже полностью завершена когда мне в голову ударила моча переписать все на смарти. в мультиязычном интерфейсе используются константы из соответствующего файла. как мне теперь быть и что делать?
ситуация оказалась невероятно глупой, т.к. во множестве классов уже использовано множество языковых констант.
собственно как мне теперь в смарти использовать мои языковые константы?
И если уж у меня все безнадежно, то WP, не могли бы вы поделиться своими наработками в этой области?
 
Сверху