Как локализовать «перечисления» Flex / Actionscript для обеспечения привязки? - PullRequest
2 голосов
/ 23 октября 2010

У меня есть смоделированное перечисление следующим образом:

public class Sport {
    public static const BASEBALL:Sport = new MyEnum("Baseball", "Baseball ...");
    public static const FOOTBALL:Sport = new MyEnum("Football", "Football ...");

    public var label:String;
    public var description:String;

    public function Sport(label:String, description:String):void {
        this.label = label;
        this.description = description;
    }
}

И кнопки, которые связываются с этими перечислениями следующим образом:

<mx:Button label="{Sport.BASEBALL.label}" toolTip="{Sport.BASEBALL.description}"/>

Теперь мне нужно локализовать это перечисление, но покаМне очень повезло получить привязку для обновления вместе со всем остальным, когда я обновляю локаль:

resourceManager.localeChain = [ localeComboBox.selectedItem ];

Я пробовал привязывать геттеры к событию "change", которое предположительно вызывается ResourceManager, но это нене похоже на работу.Есть идеи?

1 Ответ

3 голосов
/ 23 октября 2010

Вы можете использовать

<mx:Button label="{resourceManager.getString('resourceBundleName', Sport.BASEBALL.label)}" toolTip="{resourceManager.getString('resourceBundleName', Sport.BASEBALL.description)}"/>

, где Sport.BASEBALL.label и Sport.BASEBALL.description - ключи от ResourceBundle.

Вы также можете взглянуть на BabelFx что избавляет от необходимости вставлять все эти уродливые операторы {resourceManager.getString(...)}.Он использует внедрение времени выполнения для локализации вашего приложения.

...