Коллеги, поделитесь опытом.
Есть сайт на русском языке, реализован на php+smarty. Нужно приделать к нему английскую версию, и, в перспективе, будет около 10 языков.
Сайт представляет собой нечто типа структурированного каталога с дополнительными функциями, т.е. текста мало, в основном меню, названия кнопок и прочие дела, хотя есть и страницы с текстом. Меняются они редко, потому глубоко оптимизированный текст прописан прямо в шаблоне.
Простейший вариант, который напрашивается - в движке подгружать разные шаблоны, 1 на каждый язык, лежащие в разных каталогах, но тогда для смены какого-то элемента его надо будет прописать в нескольких файлах - не интересно.
Когда-то я уже делал РУС/АНГЛ/УКР сайт, в шаблоны вставлял конструкцииКод:но для 10 языков это не самая лучшая идея.{if $language="ru"}Заголовок{else if $language=="en"}Header{else}блаблабла{/if}
Еще 1 костыль - инклюдился php файл с двумерным массивом $texts['textname']['ru']="sfskdmfksdmfsd";
В коде было echo $texts['textname'][$language] (делалось давно, сайт на 10 страниц, шаблонизатор не использовался).
Подскажите, как это лучше всего реализовать, без костылей и дублирования кода.
- 01.02.2014 14:37
- 02.02.2014 11:31
Можно, разве что, уменьшить на один уровень вложенности, если предварительно взять массив с нужными переводами.
PHP код:Конструкция чисто условная, но суть, думаю, понятна.// файл ru.php
$lang = array(...);
// файл en.php
$lang = array(...);
include 'ru.php';
echo $lang['header'];
include 'en.php';
echo $lang['header'];
Спасибо сказали:
MetalMessiah(03.02.2014), - 02.02.2014 12:02
Что-то вы не так делаете, зачем вставлять переводы вручную в файлы шаблона, когда для этого уже придумана система локализации, используется например в темах-шаблонах WordPress.
В файлах-шаблонах указывается лишь язык оригинала и параметр, который позволяет создавать файлы перевода. Файлы перевода автоматически подгружаются и применяются на локальной машине или на стороне пользователя (не знаю) в случае, если это файл есть и у пользователя указан этот язык в браузере.
http://ru.wikipedia.org/wiki/GettextСпасибо сказали:
MetalMessiah(03.02.2014), - 02.02.2014 21:13
Как по мне, вариант с массивами намного лучше.
Спасибо сказали:
MetalMessiah(03.02.2014),
Тэги топика:
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Поделитесь опытом работы с форумом | Вопросы от новичков | 43 | 03.06.2013 19:36 |
Сервер Lineage поделитесь опытом | Вопросы от новичков | 4 | 10.03.2013 02:28 |
Поделитесь опытом e-mail маркетинга под буржуев. | Вопросы от новичков | 2 | 02.08.2012 14:03 |
Поделитесь опытом работы с купонами | PPC и контекстная реклама | 1 | 17.03.2012 20:55 |
Поделитесь опытом, как определять бюджет продвижения? | Вопросы от новичков | 10 | 12.10.2011 23:53 |