Flex程序翻译中的复数形式

| 我想在我的Flex程序的翻译中正确地支持复数形式,例如Qt,GWT和gettext可能的形式。 是否有一个(开源)库可以为Flex处理此问题?     
已邀请:
        使用gettext格式是个好主意。您有两种选择: AsGettext被许可为LGPL,因此对于任何项目都应该可以。 as3-gettext     
        您不需要任何其他库。使用标准的Flex ResourceManager。在文本资源中,定义如下复数形式:
minute=minute, minutes
在这种情况下,当您稍后要求提供这样的资源时,
resourceManager.getStringArray(\'BundleName\', \'minute\')
你得到像
[ \'minute\', \'minutes\' ]
然后像这样使用
function getPlural(value:Number, plurals:Array):String
{
    if (ResourceManager.getInstance().localeChain[0] == \'en_US\')
        if (value == 1) return plurals[0] else return plurals[1];
} 
选择当前区域设置的正确文本。您可以在某些包中直接定义该函数,以使所有类都通用。不幸的是,您无法避免这种功能,因为许多语言的复数规则是不同的。例如,对于俄语,该表达将更加复杂并且将采用三种复数形式。 顺便说一句,此方法与gettext的工作原理非常相似。     

要回复问题请先登录注册