Честно говоря, не очень хорошо представляю, как это может быть реализовано организационно, но технически сделать это очень даже просто, если у вас установлена Админпанель версии 1.2 и выше. И хоть я лично несколько скептически отношусь к подобной идее, но раз уж такая фича получилась практически сама по себе, то решил ее описать.
Я уже писал, как сторонние разработчики могут использовать для своих нужд Модуль расширения языковой поддержки. Теперь я дополнил его обработчиком экшена. Итак, если вам очень уж хочется, чтоб юзер мог переключать язык на сайте, то нужно сделать следующее:
1. Установить Админпанель версии не ниже 1.2 (модуль языковой поддержки также будет установлен).
2. В папку templates/language/ положить нужные файлы переводов
3. В конфиг-файле config/modules/language/ определите константу LANG_DEFAULT, определяющую язык по умолчанию (будет использоваться в тех случаях, когда не найден нужный перевод; подробнее см. здесь). Там же желательно определить список языков, которые будут поддерживаться — константа LANG_DEFINE.
4. В смарти-шаблонах сайта переменные вида $aLang.blablabla заменить на $oLang->blablabla
5. Добавить в шаблоны переключение языка, т.е. ссылки вида httр://ваш_сайт/language/russian, httр://ваш_сайт/language/english и т.д.
Вот и вся мультиязычность
11 комментариев
Установлена Админпанель 1.2.84, пытаюсь реализовать мультиязычность, как Вы описываете. Почему-то мультиязычность работает только в админпанели, т.е. если находиться на сайте по ссылке мой_сайт/admin — тогда все в порядке, "$oLang->blablabla" — заменяется на текст из языковых файлов, смена языка по ссылкам мhttр://ваш_сайт/language/russian, httр://ваш_сайт/language/english работает.
В остальных разделах сайта, т.е. не в админпанели, переменные "$oLang->blablabla" не выводятся, ну т.е. не вместо текста просто пустота.
Подскажите, пожалуйста, с чем это может быть связано?
Залил только что новый билд 1.2.85 — скачай его. Вобщем-то, можно из него только два файла взять и залить к себе на сайт: /classes/modules/language/Language.class.php /classes/hooks/HookLanguage.class.php
Извините но я не как не могу разобраться по установке админ панели. Куда её устанавливать и как? Если можете опишите всё подробно или дайте ссылку где можно это прочитать. Я с этим первый раз сталкиваюсь поэтому не могу реализовать. Заранее спасибо.
В комплекте есть файл, который называется readme.txt. В переводе с английского это значит «прочитай меня». И это предлжение адресовано тому, кто хочет установить админпанель.
Вестимо, скопировать содержимое архива в папку /update/modules/admin. Папку update несложно найти, если хоть раз смотрел движок livestreet. /modules/admin — создай в папке update сам, если еще не создавал.
11 комментариев
В остальных разделах сайта, т.е. не в админпанели, переменные "$oLang->blablabla" не выводятся, ну т.е. не вместо текста просто пустота.
Подскажите, пожалуйста, с чем это может быть связано?
1) Находим файл /classes/modules/language/Language.class.php
2) Там находим функцию
3) В этой фунции находим строку:
4) После нее добавляем строку:
Должно заработать, как надо
/classes/modules/language/Language.class.php
/classes/hooks/HookLanguage.class.php
1-й файл изменен, а 2-й — новый.
И вопрос, заменять "$aLang.blablabla" на "$oLang->blablabla" уже не надо?
Потому что без замен работает.