我认为不应该浪费开发者的时间去翻译,我呼吁停止使用硬编码翻译技术。推荐采用成熟的翻译服务,花小钱办大事。
什么是硬编码多语言翻译?
即需要维护多份语言对照表的技术方案,例如:
// en.json
{ "hello": "hello" }
// zh.json
{ "hello": "你好" }
// ja.json
{ "hello": "こんにちは" }
硬编码多语言解决方案的缺点:
- 工作量和语言数量是正相关,对应的语言越多,工作量越多。
- 翻译和代码强关联,代码实现方式改变,会导致翻译失败。
- 文字以外资源的翻译难度大,例如:图片中文字
SaaS 翻译服务的优点:
- 工作量小,只需要简单的集成,就可以动态翻译全部 UI
- 翻译和代码分离,非技术人员亦可轻松更新翻译内容
- 支持图片翻译
实践
目前我在使用 https://www.weglot.com/ 翻译我参与的多个产品。
我已经停止使用如下技术方案:
- https://github.com/i18next/i18next
- https://github.com/aiji42/zod-i18n
- https://github.com/sergiodxa/remix-i18next
因为它们都是硬编码的。
最后
这是一笔经济账。
如果你是独立开发者或者个人开发者,你认为你的时间投入比每个月几十美金更经济;如果你是公司老板,你不愿意帮助节省开发者时间而每个月支出几十美金。
免责声明:每个人都可以有自己的选择。