如何使用i18next(node.js)提取字符串常量以进行本地化?

时间:2018-10-21 18:45:56

标签: javascript node.js localization i18next

我有几个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'
    }
}

由于我有多个源文件和大量英语字符串常量,因此我想通过提取所有字符串的 gulp 流程自动生成 en.js (上方)源文件( index.js )中的常量,并在上方创建文件( en.js ),如果之前没有创建 i18n 目录,不存在)。

我一直在寻找无济于事的解决方案(如果可以的话,很乐意使用现有的npm软件包来执行此操作)。我已经找到了i18next扫描器和解析器,但是他们希望文件已经支持i18next(例如,通过_t函数使用的字符串)。

您能提出解决方案吗?

0 个答案:

没有答案