【发布时间】:2014-05-23 23:32:55
【问题描述】:
我正在寻求高级本地化的帮助(和一些工具)。我使用的是 Node 后端,所以我更喜欢 JS 中的工具/库。
我目前使用本地化为不同语言的属性文件进行一些简单的字符串替换。
home_en.properties
page.title=My Site
page.header=Hello %s
home_de.properties
page.title=Meine Seite
page.header=Hallo %s
到目前为止一切都很好......但这里有一些我正在尝试解决的更高级的例子:
倍数
我需要能够正确翻译倍数,例如:
您有 1 条消息
对
您有 2 条消息
我不想在我的代码中出现这样的逻辑
if (i == 1) { // use page.messages.singular }
else { // use page.messages.plural }
因为我不相信 check 属于我的业务逻辑,而且我知道不同的语言对待单数/复数的方式不同(即单数包含 0)
多个倍数
上面的一些问题,但现在有多个倍数的组合,例如:
您有 %d 条未读消息和 %d 条已读消息
或
您有 %d 条未读消息和 %d 条已读消息,以及 %d 条私人通知
性别
这是一个我想解决的例子:
我爱我的 %s
可能的值为cat, dog, horse
英文没问题,但德文则需要:
home_de.properties
animals.like.male=Ich liebe meinen %s
animals.like.female=Ich liebe meine %s
animals.like.neutral=Ich liebe mein %s
这会导致不必要的英语条目:
home_en.properties
animals.like.male=I love my %s
animals.like.female=I love my %s
animals.like.neutral=I love my %s
问题
对于以下问题,这是一个冗长的设置:
有哪些工具/库可以解决这样的高级字符串本地化问题?
【问题讨论】:
-
我删除了答案,因为它看起来无法使用封闭模板的开源版本完成:groups.google.com/forum/#!topic/closure-templates-discuss/…
标签: javascript node.js localization translation