Наблюдаю активность вокруг 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.jsblock/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