通常支持 i18n 的项目,都需要提供一个对应的国际化 json 数据,但是手动维护 json 数据比较麻烦,怎么才能实现自动或者一键生成 json 数据呢?
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
通常支持 i18n 的项目,都需要提供一个对应的国际化 json 数据,但是手动维护 json 数据比较麻烦,怎么才能实现自动或者一键生成 json 数据呢?
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
8 回答5.9k 阅读✓ 已解决
9 回答9.3k 阅读
6 回答4.9k 阅读✓ 已解决
3 回答10.4k 阅读✓ 已解决
4 回答7.3k 阅读
5 回答7.3k 阅读✓ 已解决
5 回答8.2k 阅读
其实有很多的项目在实现这个功能,比如说之前SF社区就有人自推过自己实现的一个
i18n
管理项目 👉 vue-i18n-generator - 一款方便编辑语言包代码的工具。最近也有人分享过文章 对国际化 i18n 项目的一点思考,里面有提到过几种维护的方式,都可以借鉴一下。
其实使用 i18n-ally 开发起来就已经很方便了。
我自己呢就是偷懒,其实是因为配置
i18n Ally
的时候总是失败,所以就自己写了一个构建脚本,维护的时候是去维护一个数组:最后通过
"i18n-gen": "node -r esm ./locale/i18nGen.js"
这个脚本执行生成对应语言的json
文件,大概思路如下:一些其他的相关JS示例
至于为什么引入的时候每一次都手动去
xxx['en']
主要是因为想比较随意的命名。有些时候并不像层级那么深。想要可以很快的使用,又想可以聚合在一起维护。