Flex程序翻译的多种形式

时间:2011-05-27 14:28:54

标签: flex internationalization

我希望在我的Flex计划的翻译中支持复数形式,例如with QtGWTgettext

是否有(开源)库为Flex处理此问题?

2 个答案:

答案 0 :(得分:4)

您不需要任何其他库。使用标准Flex ResourceManager。在文本资源中定义复数形式,如:

minute=minute, minutes

在这种情况下,当您稍后要求使用

这样的资源时
resourceManager.getStringArray('BundleName', 'minute')

你得到多个值的数组,如

[ 'minute', 'minutes' ]

然后使用像

这样的smth
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的工作方式非常相似。

答案 1 :(得分:0)

最好使用gettext格式。您有两种选择: