答案 0 :(得分:4)
您不需要任何其他库。使用标准Flex ResourceManager。在文本资源中定义复数形式,如:
minute=minute, minutes
在这种情况下,当您稍后要求使用
这样的资源时resourceManager.getStringArray('BundleName', 'minute')
你得到多个值的数组,如
[ 'minute', 'minutes' ]
然后使用像
这样的smthfunction getPlural(value:Number, plurals:Array):String
{
if (ResourceManager.getInstance().localeChain[0] == 'en_US')
if (value == 1) return plurals[0] else return plurals[1];
}
为当前区域设置选择正确的文本。您可以直接在某个包中定义此函数,以便对所有类都通用。不幸的是,你无法避免这种功能,因为许多语言的复数规则是不同的。例如,对于俄语而言,表达式将更复杂,并且将采用三种复数形式 顺便说一句,这种方法与gettext的工作方式非常相似。
答案 1 :(得分:0)
最好使用gettext格式。您有两种选择:
AsGettext被许可为LGPL,因此任何项目都可以。