Ron*_*ero 5 javascript internationalization
我正在为一个相对较新的应用程序添加 i18n 支持。这是一个模块化的应用程序。目前,我们只会使用英语(可能还有用于测试目的的 Pig Latin),但我想确保我们不会射中自己的脚。我有两个组织翻译文件的想法:
一个包含任何模块中使用的每个字符串的大型全局翻译列表。这将导致对全局文件的一些争用。这个文件会更大,我想知道下载时间。
每个模块都有自己的翻译文件。这将导致出现在多个模块中的字符串出现一定程度的重复。如果我们将文件发送出去进行翻译,我们就必须合并这些文件。
我们正在使用 Javascript,加上 Backbone.js、Require.js、Aura 等,我们计划使用 i18next。
哪种方式最适合组织文件?或者还有其他我想念的方式。
通过每个模块都有一个文件,您将重复自己。如果该字符串在十个模块中使用,您将必须翻译“An Error Happened”十次。我的建议是将所有翻译聚合到一个大的 JSON 文件中,其结构如下:
{
"common": {
"welcome": "welcome",
...
},
"module1": {
"loaded": "module1 is loaded"
....
}
}
Run Code Online (Sandbox Code Playgroud)
您将把模块特定的翻译包装在它自己的对象中,并将公共字符串包装在对象中。
旁注:您可以从 John Resig 的博客文章中了解JavaScript 中的 i18n。