我正在尝试使用
i18next-json-sync
npm 包为我的 angular2/nodejs 项目同步不同的语言文件。但给定的用法对我不起作用。
我的lang文件结构是:
-package.json
-public
|-app
|-assets
|-language
|-en.json
|-es.json
|-fr.json
|-ja.json
package.json 有:
{
"scripts": {
...
"i18n": "sync-i18n --files './public/app/assets/language/*.json' --primary en --languages es fr ja",
"check-i18n": "npm run i18n -- --check",
...
}
"devDependencies": {
...
"i18next-json-sync": "2.2.0",
...
}
}
但是当我运行
npm run check-i18n
或 npm run i18n
时,我没有看到任何键/值从 en 文件(主)复制到其他语言文件。
我知道这个问题很老,但找到了解决方案: 因此,您的路径不应被 ' ' 包围。因此你的代码应该如下所示:
"i18n": "sync-i18n --files ./public/app/assets/language/*.json --primary en --languages es fr ja",
如果您仍然需要适当的解决方案(有效)
i18next-locales-sync是我编写的库,因为您提到的库不适用于命名空间并且没有适当的复数支持。
npx i18next-locales-sync -p he -s en de ja -l path/to/locales/folder
"i18n": "sync-i18n --files '**/locales/*.json' --primary en --languages en de"