我有几个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
函数使用的字符串)。
您能提出解决方案吗?