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