Наблюдаю активность вокруг enb-bem-i18n
, однако по описаниям технологий не до конца ясно с чем они работают.
Подскажите какой процесс интернационализации ими поддерживается и реально ли его использовать в своих проектах?
Наблюдаю активность вокруг enb-bem-i18n
, однако по описаниям технологий не до конца ясно с чем они работают.
Подскажите какой процесс интернационализации ими поддерживается и реально ли его использовать в своих проектах?
Как я понимаю, работа еще не закончена.
@Guria Есть
BEM.I18N
изbem-bl
: https://github.com/bem/bem-bl/tree/support/2.x/blocks-common/i-bem/__i18n. Он же сейчас скопирован как есть вbem-core
.Пакет
enb-bem-i18n
сейчас поддерживает сборкуBEM.I18N
изbem-bl
. Можно применять и кbem-core
, но надо понимать, что он прокидывается в глобальный скоуп и всё из этого вытекающее.Задача про новый
i18n
— https://github.com/bem/bem-core/issues/576 и про его сборку — https://github.com/bem/bem-core/issues/950. Пакет про сборку новогоi18n
— https://github.com/blond/enb-bem-core-i18n. Задача про портирование этого пакета вenb-bem-i18n
— https://github.com/enb-bem/enb-bem-i18n/issues/23.@blond А можно вкратце описать предполагаемый принцип? Где задаются строки, как подключаются, где интерполируются. Какие форматы описания строк.
Для каждого языка создаётся отдельный файл
<lang>.js
в директориях с суффиксомi18n
:ru.js
В каждом таком файле хранятся строки (keysets).
После сборки
lang-js
файлов будет возможность вызвать функциюBEM.I18N
:Обычно в качестве скоупа используется имя блока:
block/block.i18n/ru.js
block/block.i18n/en.js
Вызов
BEM.I18N
можно применять, например, в шаблонах:Разве это не описание технологии из bem-bl?
@apsavin, он, вопрос был про другое?
Спрашивал не я, возможно, и про это) Я почему-то подумал, что "предполагаемый" - это про новый i18n, который еще в работе.
Вопрос был про новую предполагаемую реализацию. Про существующую технологию тоже было интересно, спасибо.
Ключи будут храниться точно так же:
ru.js
Появится возможность добавлять
common
файлы —i18n.js
. В таком файле и будет храниться ядро — https://github.com/bem/bem-core/blob/issues/576%40v3/common.blocks/i18n/i18n.i18n.js.После сборки
lang-js
файлов будет возможность получитьi18n
модуль из YModules:В BEMHTML
i18n
будет доступно черезthis.i18n
:Появится возможность работы с параметризированными ключами:
@blond так эта новая технология уже готова?
@pavelpower В сыром виде, да:
@blond
Расскажите, подробнее о вытекающих. На что повлияет? Советовали бы Вы использовать данный модуль в реальных проектах со средней нагрузкой? На данном форуме используется данная технология или что-то другое?
@Sergei-b84 Да, здесь и на большинстве сервисов Яндекса используется эта технология. Использовать ее можно смело. Причин сомневаться могу придумать две:
Обновите пожалуйста документацию по i18n с примером рабочего конфигурационного файла. Спасибо
@devvk как будто бы там актуальная информация. вот на всякий случай пример внедрения в project-stub: https://github.com/bem/project-stub/commit/344de8a78b4e33d2057eb44526f38d07c637051f