我正在为一个相对较新的应用添加i18n支持。这是一个模块化应用程序。现在,我们只会有英语(可能还有猪拉丁语用于测试目的),但我想确保我们不会在脚下射击。我有两个组织翻译文件的想法:
一个大的全局翻译列表,其中包含在任何模块中使用的每个字符串。这将导致全局文件的一些争用。这个文件会更大,我想知道下载时间。
每个模块都有自己的翻译文件。这将导致在多个模块中发生的字符串的一些重复。如果我们将这些文件发送出去进行翻译,我们必须合并这些文件。
我们正在使用Javascript,还有Backbone.js,Require.js,Aura等,我们正计划使用i18next。
哪种方式最好整理文件?或者还有其他一些方法我不知道。
答案 0 :(得分:3)
通过为每个模块提供一个文件,您将重复自己。如果在十个模块中使用该字符串,则必须翻译十次“An Error Happened”。我的建议是将所有翻译聚合在一个结构如下的大JSON文件中:
{
"common": {
"welcome": "welcome",
...
},
"module1": {
"loaded": "module1 is loaded"
....
}
}
您将在其自己的对象和对象中的公共字符串中包含特定于模块的翻译。
旁注:你可以从他的blog post中学习John Resig关于i18n的JavaScript。
答案 1 :(得分:0)
遇到了这个问题&以为我会对此提出另一种观点。
<强>背景强>
创建一个大型翻译文件是可以的,除非你是:
我一直在研究一个Angular应用程序超过一年,需要一个庞大的开发团队,并且是一个相当大的系统。
当您的系统变得庞大并且您拥有一个庞大的团队时,单个语言文件不是是最佳选择,因为:
摘要&amp;建议强>
根据我的经验,我的建议如下:
为您的项目做最好的事情,时间表和需求。如果您正在使用大型系统,从长远来看节省时间,请从单独的文件开始。从一开始就制定标准并坚持下去以节省时间。