Модуль языки и мультиязычность
Существует модуль языки, устанавливается в настройках как язык интерфейса.
Еще можно добавить статьи под определенный язык и выбрать статьи из этого языка по нажатию на язык с панели. Как сделать следующее, чтоб без кликов всегда выбирались статьи определенного языка. Что-то вроде для Англоязычных и для Русских, для англоязычных будет добавляться копия статьи на EN и им не требуется показывать Ру.
Как можно переписать модуль под эти нужды, думаю это бы стало полезным.
Еще можно добавить статьи под определенный язык и выбрать статьи из этого языка по нажатию на язык с панели. Как сделать следующее, чтоб без кликов всегда выбирались статьи определенного языка. Что-то вроде для Англоязычных и для Русских, для англоязычных будет добавляться копия статьи на EN и им не требуется показывать Ру.
Как можно переписать модуль под эти нужды, думаю это бы стало полезным.
- -1
- 21 февраля 2011, 18:34
- analog-teamviewer-alternativa
- 2
Многоязычный сайт на базе ЛС - продолжение
7
Как и прежде, модуль многоязычной поддержки входит в пакет модуля . Но в версии 1.2.98 была сделана одна небольшая доработка, немного облегчающая жизнь тем, кого эта тема (многоязычные сайты на базе ЛС) интересует.
А именно — если раньше выбранный пользователем язык сохранялся только на время сессии, то теперь его можно сохранять в куках. Т.е. выбрал юзер свой язык, отличный от установки LANG_CURRENT, и этот выбор (если заданы соответствующие установки) будет действовать и при последющих заходах юзера на сайт с этого компьютера.
Как это сделать? Открываем файл /config/modules/language/config.php и задаем параметр:
И еще один вопрос часто задают: а как сделать выбор языка? Мне казалось, что я достаточно подробно об этом писал здесь: Но, видимо, нужен конкретный пример, как организовать «мультиязычность». Поэтому вот вам пример на базе скина new.
1. Открываем шаблон header_nav.tpl
2. Находим форму поиска
3. После закрывающего тега </form> вставляем такой код:
Теперь над полем поиска у вас появятся два флажочка — российский и британский, при клике на которые юзер будет переключаться соответственно на русский или английский язык.
ЗЫ Прошу гуру за говнокод не пинать, т.к. это всего лишь пример. Хотя и вполне рабочий. :)
ЗЗЫ А кртинки с флажочками, нужными для работы примера реально лежат в папке /templates/language/flags/
А именно — если раньше выбранный пользователем язык сохранялся только на время сессии, то теперь его можно сохранять в куках. Т.е. выбрал юзер свой язык, отличный от установки LANG_CURRENT, и этот выбор (если заданы соответствующие установки) будет действовать и при последющих заходах юзера на сайт с этого компьютера.
Как это сделать? Открываем файл /config/modules/language/config.php и задаем параметр:
define('LANG_SAVE_DAYS', 365);Число указывает, сколько дней будет храниться выбранный язык.И еще один вопрос часто задают: а как сделать выбор языка? Мне казалось, что я достаточно подробно об этом писал здесь: Но, видимо, нужен конкретный пример, как организовать «мультиязычность». Поэтому вот вам пример на базе скина new.
1. Открываем шаблон header_nav.tpl
2. Находим форму поиска
<div class="search">
<form action="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_SEARCH}/topics/" method="GET">
<input class="text" type="text" onblur="if (!value) value=defaultValue" onclick="if (value==defaultValue) value=''" value="{$aLang.search}" name="q" />
<input class="button" type="submit" value="" />
</form>
</div>3. После закрывающего тега </form> вставляем такой код:
<!-- +++ Language settings +++ -->
<div class="language" style="position: relative; top: -30px; ">
<a href="{$DIR_WEB_ROOT}/language/russian"><img src="{$DIR_STATIC_ROOT}/templates/language/flags/ru.png" alt="Russian" title="Russian" /></a>
<a href="{$DIR_WEB_ROOT}/language/english"><img src="{$DIR_STATIC_ROOT}/templates/language/flags/gb.png" alt="English" title="English" /></a>
</div>
<!-- --- Language settings --- -->Теперь над полем поиска у вас появятся два флажочка — российский и британский, при клике на которые юзер будет переключаться соответственно на русский или английский язык.
ЗЫ Прошу гуру за говнокод не пинать, т.к. это всего лишь пример. Хотя и вполне рабочий. :)
ЗЗЫ А кртинки с флажочками, нужными для работы примера реально лежат в папке /templates/language/flags/
Многоязычный сайт на базе ЛС
9
Иногда подобные вопросы возникают у людей. Напр., здесь:
Честно говоря, не очень хорошо представляю, как это может быть реализовано , но технически сделать это очень даже просто, если у вас установлена Админпанель версии 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 и т.д.
Вот и вся мультиязычность
Честно говоря, не очень хорошо представляю, как это может быть реализовано , но технически сделать это очень даже просто, если у вас установлена Админпанель версии 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 и т.д.
Вот и вся мультиязычность
Модуль расширения языковой поддержки и его использование
2
Для тех, кто еще не знает – модули Admin (Админпанель) и Language (Расширенная языковая поддержка) это дополнительные модули к движку LiveStreet для упрощения и облегчения администрирования сайтов, построенных на этом движке. Скачать их можно в разделе Модули по адресу (одним пакетом).
Функционал модулей описан в соответствующих топиках (например, ) и разобраться, как с ними работать, довольно просто.
Но хочу рассказать, как можно использовать этот функционал из других модулей и как можно доработать шаблоны сайта для быстрого доступа к нужным функциям.
Читать дальше
Функционал модулей описан в соответствующих топиках (например, ) и разобраться, как с ними работать, довольно просто.
Но хочу рассказать, как можно использовать этот функционал из других модулей и как можно доработать шаблоны сайта для быстрого доступа к нужным функциям.
Читать дальше
- +1
- 14 июня 2009, 00:00
- avadim
- Оставить комментарий
как сделать переключение языка прямо на сайте?
1
Собственно вопрос. Существует ли возможность каким нибудь образом поставить кнопку переключения языка например с руского на английский?
Заранее благодарю за ответы.
Заранее благодарю за ответы.
Поддержка языковых файлов
Кто может доходчиво объяснить необходимость сабжа? 99% текстовых строк находятся в шаблоне, шаблон у каждого сайта должен быть свой, следовательно, каждый может переписать тексты на любой язык мира, хоть древнюю латынь.
Зачем это надо?
Зачем это надо?
Мультиязычность
Обязательно сделайте вынос в ленгвичь фай всей текстовки интерфейса.
дабы пользователь мог выбирать язык интерфейса
«готов взяться за реализацию украинского интерфейса»
желательно ещё, чтобы была возможность писать контент на нескольких языках
допустим в тегах
а пользователю выводится выбранный им язык и дополнительно сообщение — «данная статья доступна также на языке ...», а если нет его варианта языка — то «данная статья доступна лишь на языке ...»
дабы пользователь мог выбирать язык интерфейса
«готов взяться за реализацию украинского интерфейса»
желательно ещё, чтобы была возможность писать контент на нескольких языках
допустим в тегах
[lang_en]Hello World[/lang_en]
[lang_ru]Привет мир[/lang_ru]
[lang_ukr]Привіт Світ[/lang_ukr]а пользователю выводится выбранный им язык и дополнительно сообщение — «данная статья доступна также на языке ...», а если нет его варианта языка — то «данная статья доступна лишь на языке ...»
Умоляю!
Сделайте поддержку языков! Все сообщения прописаны в php файлах. Вынесите всё в один файл это значительно облегчит перевод на другие языки.
Спасибо
Спасибо