到目前为止,我的项目使用i18 next和react-i18 next取得了成功。没有涉及本地化或服务器端。
当前设置:
- 默认后备语言(& F):恩
- 其他语言:自由
**我想自动执行一些与错误检查相关的操作:
1.检查所有密钥是否已在每个定义的语言文件中翻译
2.在开发环境或lint中警告ci/cd。**
我试过使用以下选项执行1.:
saveMissing: true,
saveMissingTo:"all",
missingKeyHandler: (ng, ns, key, fallbackValue) => {
console.log(ng, ns, key, fallbackValue)
},
// other options
resources: {
en: {
translations: enTranslation,
},
fr: {
translations: frTranslation,
},
},
fallbackLng: 'en',
ns: ['translations'],
defaultNS: 'translations',
interpolation: {
formatSeparator: ',',
},
react: {
wait: true,
}
我以为如果我从我的French .json中删除了一个键(为了测试它是否工作),它会被记录下来,但它没有,只有当我删除两个键。
尝试其他解决方案:
- "eslint-plugin-i18n-json",但它没有检查我需要的内容,还没有找到正确的选项/config
2.备选办法2.
你有什么链接或解决方案可以帮助你吗?(除了那些涉及SaaS的)
3条答案
按热度按时间osh3o9ms1#
虽然@tudor answer可以在eslint中使用javascript格式,但它不是. json格式。
1.将插件添加到. eslintrc
"extends": ["eslint:recommended", "plugin:i18n-json/recommended"],
1.将新规则添加到. eslintrc中,该规则应包含所有必需的键
node_modules/eslint-plugin-i18n-json/src/util/require-no-cache.js
),以获得我们的翻译文件。因为require会首先尝试从预定义的
__dirname
中解析,而require-no-cache.js的__dirname
将是'node_modules/eslint-plugin-i18n-json/src/util。1.添加一个新脚本到你的package.json中,它将检查所有的键是否都存在(对照2中的文件)。
图片来源:www.example.comhttps://github.com/godaddy/eslint-plugin-i18n-json/issues/31#issuecomment-604636886
nukf8bse2#
您可以使用https://github.com/godaddy/eslint-plugin-i18n-json#i18n-jsonidentical-keys。具体方法如下:
在eslintrc中添加以下内容:
然后使用以下选项运行eslint:
这里假设包含翻译的文件夹名为
translations
(您应该修改路径)。下面是一个演示其工作原理的代码:https://codesandbox.io/s/friendly-minsky-9siu4
您可以使用终端运行
npm run lint
,并且可以使用translations/en.json
和translations/de.json
中的值来检查它是如何工作的。oiopk7p53#
在我的用例中,我只是希望应用程序在特定环境中抛出一个错误,我在配置中添加了以下内容,它对我很有效。
希望能有所帮助
我对case的假设是,控制台日志语句不起作用,因为键存在于后备语言中。