javascript – 字符串和标签的本地化和全球化的最佳实践

我是一个有超过20个开发人员的团队的成员。每个开发人员在一个单独的模块(近10个模块)。在每个模块中,我们可能至少有50个CRUD表单,这意味着我们目前有近500个添加按钮,保存按钮,编辑按钮等。

但是,因为我们希望全球化我们的应用程序,我们需要能够在我们的应用程序中翻译文本。例如,无处不在,单词add应该成为法国用户的jjer。

到目前为止,我们所做的是,对于UI或表示层中的每个视图,我们有一个键/值对的翻译字典。然后在渲染视图时,我们使用这个字典翻译所需的文本和字符串。然而,这种方法,我们已经有500附加500字典。这意味着我们违反了DRY主体。

另一方面,如果我们集中了公共字符串,比如把add放在一个地方,并要求开发人员在任何地方使用它,我们会遇到一个问题,即不确定一个字符串是否已经在集中式字典中定义。

另一个选项可能是没有翻译字典,并使用在线翻译服务,如Google翻译,Bing翻译等。

我们遇到的另一个问题是,一些开发人员在按时交付项目的压力下不能记住翻译密钥。例如,对于添加按钮的文本,开发人员已使用添加,而另一个开发人员已使用新的等。

什么是最佳实践,或最知名的方法用于应用程序的字符串资源的全球化和本地化?

最佳答案
据我所知,在JavaScript中有一个称为localeplanet的好的库,用于本地化和国际化。此外,我认为它是本机的,没有依赖其他库(例如jQuery)

这里是图书馆的网站:http://www.localeplanet.com/

另外看看这篇文章由Mozilla,你可以找到非常好的方法和算法客户端翻译:http://blog.mozilla.org/webdev/2011/10/06/i18njs-internationalize-your-javascript-with-a-little-help-from-json-and-the-server/

所有这些文章/库的共同部分是,它们使用i18n类和get方法(在某些方面也定义一个较小的函数名称,如_)来检索/转换键到值。在我解释的关键意味着你想翻译的字符串,值意味着翻译的字符串。
然后,你只需要一个JSON文档来存储键和值。

例如:

var _ = document.webL10n.get;
alert(_('test'));

这里的JSON:

{ test: "blah blah" }

我相信使用当前流行的图书馆解决方案是一个好的方法。

转载注明原文:javascript – 字符串和标签的本地化和全球化的最佳实践 - 代码日志