Как извлечь строковые константы для локализации с i18next (node.js)? - PullRequest
0 голосов
/ 21 октября 2018

У меня есть несколько исходных файлов javascript (.js), которые используют строковые константы для обеспечения удобочитаемого вывода для пользователя.Вот пример (хотя у меня есть тонны констант на файл, а не просто пара):

const WELCOME_MESSAGE = 'Welcome %!';
const GOODBYE_MESSAGE = 'Goodbye';

Я использую i18next и i18next-sprintf-postprocessor предоставить локализованные версии для этих строк.Я помещаю локализованные версии в структуру каталогов, подобную этой:

├── i18n/    // localized strings
│   ├── en.js
│   ├── de.js
│   ├── fr.js
│   ├── it.js
│   └── es.js
├── node_modules/
│   └── ...  // npm modules
└── index.js // main js file

Каждый локализованный файл выглядит примерно так (пример en.js, показанный ниже):

// en.js
module.exports = {
    translation: {
        WELCOME_MESSAGE: 'Welcome %!',
        GOODBYE_MESSAGE: 'Goodbye'
    }
}

Поскольку яУ меня есть несколько исходных файлов и множество строковых констант на английском языке. Я хочу автоматически генерировать en.js (выше) с помощью процесса gulp , который извлекает все строковые константы из исходного файла ( index.js ) и создает указанный выше файл ( en.js , предварительно создав каталог i18n , если он не существует).

Я искал решение безрезультатно (хотел бы использовать существующий пакет npm, чтобы сделать это, если доступно).Я нашел сканеры и парсеры i18next, но они ожидают, что файл уже будет поддерживать i18next (например, строка, используемая с помощью функции _t).

Можете ли вы предложить решение?

...