infrajs / lang
Поддержка мультиязычности
Requires
- infrajs/config: ~1
- infrajs/env: ~1
- infrajs/event: ~1
- infrajs/template: ~1
README
Поддержка 2х-буквыенного стандарта ISO 639
Добавляется параметр lang
в окружение infrajs/env.
Реализована интеграция с шаблонами infrajs/template
Установка через composer
{
"require":{
"infrajs/lang":"~1"
}
}
Использование
Lang.lang()
вернёт язык, который выбран пользователем на сайте
Lang.lang('user')
Может так сложиться, что у расширения user нет нужной локализации и по этому язык отдельного расширения может отличаться от выбранного языка для всего сайта.
Список поддерживаемых языков указывается в конфиге расширения. Язык по умолчанию указывается на случай если язык по умолчанию для сайта также не поддерживается.
{
"lang":{
"list":["ru","en"],
"def":"ru"
}
}
Ни есть в массиве extlang.list или язык выбранный по умолчанию для сайта или язык указанный в extlang.def. extlang - это объект описывающий настройки отдельного расширения сайта, содержащий два свойства list и def, которые зачастую выносятся в конфиг расширения.
Для удобного использовать требуется интеграция в конкретное расширение. Расширение перевода не содержит в себе перевода, нужен контекст.
Интеграция с расширением infrajs/user
public static function lang($str = null)
{
if (is_null($str)) return Lang::name('user');
return Lang::str('user',$str);
}
Для дальнейшего использования в шаблонах {User.lang(title)}
верёнт title на нужном языке при наличии перевода в папке расширения i18n
Если перевод делается на сервере в php скриптах, то выбранных язык нужно явно передавать в GET параметрах. Определять язык пользователяна сервере нельзя, так как это приведёт к проблема с кэшем.