Множественные формы в переводах программ Flex - PullRequest
2 голосов
/ 27 мая 2011

Я хочу правильно поддерживать множественные формы в переводах моей программы Flex, как это возможно с Qt , GWT и gettext .

Есть ли библиотека (с открытым исходным кодом), которая обрабатывает это для Flex?

Ответы [ 2 ]

4 голосов
/ 05 октября 2012

Вам не нужно никаких дополнительных библиотек.Используйте стандартный 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.

0 голосов
/ 27 мая 2011

Рекомендуется использовать формат gettext. У вас есть два варианта:

  • AsGettext лицензирован как LGPL, поэтому он должен быть в порядке для любого проекта.

  • as3-Gettext

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...