EN RU
Форум

Методология

Технологии

Инструментарий

Библиотеки

Учебные материалы

API технологий

Пакет предоставляет следующие технологии:

keysets

Служебная технология, результат работы которой используется другими технологиями пакета enb-bem-i18n. Собирает данные (keysets) для указанного языка в ?.keysets.<lang>.js-файл на основе <lang>.js-файлов.

Опции

target

Тип: String. По умолчанию: ?.keysets.<lang>.js.

Имя файла, куда будет записан результат сборки необходимых <lang>.js-файлов проекта — скомпилированный файл ?.keysets.<lang>.js.

?.keysets.<lang>.js-файл — это промежуточный результат сборки, который в дальнейшем используется технологией i18n.

lang

Тип: String. Обязательная опция.

Язык, для которого необходимо собрать файл.

Допустимые значения:

dirsTarget

Тип: String. По умолчанию: ?.i18n.

Имя таргета, откуда будет доступен список исходных директорий для сборки. Список директорий предоставляет технология files пакета enb-bem-techs.

sourceDirSuffixes

Тип: String | String[]. По умолчанию: ['.i18n'].

Суффиксы директорий, по которым происходит отбор для дальнейшей сборки.

Пример

var KeysetsTech = require('enb-bem-i18n/techs/keysets'),
    FileProvideTech = require('enb/techs/file-provider'),
    bemTechs = require('enb-bem-techs');

module.exports = function(config) {
    config.setLanguages(['en', 'ru']);

    config.node('bundle', function(node) {
        // Получаем FileList
        node.addTechs([
            [FileProvideTech, { target: '?.bemdecl.js' }],
            [bemTechs.levels, { levels: ['blocks'] }],
            [bemTechs.deps],
            [bemTechs.files]
        ]);

        // Собираем keyset-файлы для каждого языка
        node.addTech([KeysetsTech, { lang: '{lang}' }]);
        node.addTarget('?.keysets.{lang}.js');
    });
};

i18n

Собирает ?.lang.<lang>.js-файлы для отдельных языков на основе данных из ?.keysets.<lang>.js-файлов, полученных в результате использования технологии keysets.

i18n — технология сборки, которая транслирует данные из ?.keysets.<lang>.js-файлов в JavaScript.

Технология i18n инициализирует ядро i18n данными из объединенных keyset-файлов и возвращает функцию i18n, которую можно использовать из шаблонов или клиентского JavaScript.

API функции i18n описан в разделе API i18n.

Опции

target

Тип: String. По умолчанию: ?.lang.<lang>.js.

Имя файла, куда будет записан результат сборки данных из ?.keysets.<lang>.js-файла — скомпилированный файл ?.lang.<lang>.js.

lang

Тип: String. Обязательная опция.

Язык, для которого необходимо собрать файл, содержащий строки переводов.

Допустимые значения:

keysetsFile

Тип: String. По умолчанию — ?.keysets.<lang>.js.

?.keysets.<lang>.js-файл — это результат выполнения keysets — набор данных (keysets) для указанного языка, который используется технологией i18n для формирования ?.lang.<lang>.js-файлов.

exports

Тип: Object. По умолчанию — { globals: true, commonJS: true, ym: true }.

Настраивает способ получения функции i18n.

Возможные опции:

Пример

var I18NTech  = require('enb-bem-i18n/techs/i18n'),
    KeysetsTech = require('enb-bem-i18n/techs/keysets'),
    FileProvideTech = require('enb/techs/file-provider'),
    bemTechs = require('enb-bem-techs');

module.exports = function(config) {
    config.setLanguages(['en', 'ru']);

    config.node('bundle', function(node) {
        // Получаем FileList
        node.addTechs([
            [FileProvideTech, { target: '?.bemdecl.js' }],
            [bemTechs.levels, { levels: ['blocks'] }],
            [bemTechs.deps],
            [bemTechs.files]
        ]);

        // Собираем keyset-файлы для каждого языка
        node.addTech([KeysetsTech, { lang: '{lang}' }]);

        // Собираем i18n-файлы для каждого языка
        node.addTech([I18NTech, { lang: '{lang}' }]);
        node.addTarget('?.lang.{lang}.js');
    });
};

keysets-xml

Собирает ?.keysets.<lang>.xml-файлы на основе ?.keysets.<lang>.js-файлов.

Технология keysets-xml применяется для локализации сервисов, использующих XSLT для шаблонизации. Используется для локализации XML-страниц.

Опции

target

Тип: String. По умолчанию — ?.keysets.{lang}.js.

Результирующий XML-файл.

lang

Тип: String. Обязательная опция.

Язык, для которого небходимо собрать файл.

Пример

var KeysetsTech = require('enb-bem-i18n/techs/keysets'),
    KeysetsXMLTech = require('enb-bem-i18n/techs/keysets-xml'),
    FileProvideTech = require('enb/techs/file-provider'),
    bemTechs = require('enb-bem-techs');

module.exports = function(config) {
    config.setLanguages(['en', 'ru']);

    config.node('bundle', function(node) {
        // Получаем FileList
        node.addTechs([
            [FileProvideTech, { target: '?.bemdecl.js' }],
            [bemTechs.levels, { levels: ['blocks'] }],
            [bemTechs.deps],
            [bemTechs.files]
        ]);

        // Собираем keyset-файлы для каждого языка
        node.addTech([KeysetsTech, { lang: '{lang}' }]);

        // Собираем XML-файлы для каждого языка
        node.addTech([KeysetsXMLTech, { lang: '{lang}' }]);
        node.addTarget('?.keysets.{lang}.js');
    });
};