Javascript序数后缀语言环境翻译

时间:2018-01-17 13:03:23

标签: javascript angular localization internationalization multilingual

想要了解后缀序数指标在旨在迎合多语言受众的应用程序中是否是一个好主意。如果我们想出一个带有逻辑的角度管道,它可以转换数字,如1 - > 1,2-> 2,3 - >第三个休息时间全部加上'如果我们读到',' nd'' rd&#39,这个假设对其他语言有多好;,'第'来自带有区域设置标识符的文件,例如' en',' ar'等。

1 个答案:

答案 0 :(得分:0)

如果我理解正确的话,你会问一个简单的“翻译”后缀是否有用。例如“st”(英文)到“er”(法语为总理)。如果这就是你的意思那么没有,这是不好的。规则过于复杂,语言之间的差异太大。

如果您只需要日期的此功能,那么您只需要31个预定义值。然后你可以预编译一些列表,如:

en:
["","1st","2nd","3rd", ... ,"29th","30th","31st"]

fr:
["","1er","2e","3e", ..., "29e","30e","31e"]

ar:
["","١.","٢.","٣." , .. ,"٢٩.","٣٠.","٣١."]

我使用NumberFormatter使用简单的PHP脚本生成了这些内容。我不能保证阿拉伯语是正确的。

如果任意数字需要这些后缀,那么您必须将规则嵌入到您的应用中。

序数规则在Unicode CLDR中定义。 https://unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html

您可以从数据文件中提取这些规则并将方程式烘焙到您的应用程序中,但这可能需要做很多工作。

它们也不完美。我不记得来自学校的法语,但快速谷歌表明(第1名)你有1人(高级),1人(首都),1人(首相)和1人(首都)。真是个噩梦。

最适合您的路线取决于您的问题没有给出的确切用例。

相关问题