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 будет в варнинге, чтоб сразу определить какая фраза.
Спасибо.
У себя в 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 будет в варнинге, чтоб сразу определить какая фраза.
Спасибо.