FLEX — установка строк условной локали в ActionScript

#apache-flex #locale

#apache-flex #язык

Вопрос:

Я пытаюсь локализовать свое приложение Flex, я смог настроить специфику локали и все остальное внутри тегов MXML, это работает довольно хорошо, мой вопрос в том, что, если у меня есть, например:

 if(loggin){
  loginBtn.label = "Logout";
}else{
  loginBtn.label = "Login";
}
  

Как я могу изменить с помощью ActionScript эти две строки на другой язык?

Спасибо за любую помощь!!

Ответ №1:

Используйте ResourceManager

 if(loggin){
  loginBtn.label = resourceManager.getString(MyResourceBundles.LABELS,'login')
}else{
  loginBtn.label = resourceManager.getString(MyResourceBundles.LABELS,'logout')
}
  

Недостатком этого подхода является то, что привязки не будут срабатывать, если пользователь меняет язык на полпути.

Поэтому для этого конкретного примера я бы рекомендовал состояния:

 <s:Button id="loginBtn" 
   label.loggedIn="{resourceManager.getString(MyResourceBundles.LABELS,'login')}" 
   label.loggedOut="{resourceManager.getString(MyResourceBundles.LABELS,'logout')}" />