Лучшие практики по интернационализации приложения Flex?

StackOverflow https://stackoverflow.com/questions/133094

Вопрос

Я рассматриваю возможность интернационализации приложения Flex, над которым работаю, и мне интересно, есть ли какие-либо передовые методы или рекомендации для этого.

Поиск такой информации в Google приводит к появлению нескольких небольших статей и сообщений в блогах, каждая из которых посвящена разным действиям, а преимущества и недостатки не совсем ясны.

Отредактировано для сужения области применения:

  • Необходимо поддерживать только два языка (en_CA и fr_CA)
  • Необходимо иметь возможность переключаться во время выполнения
Это было полезно?

Решение

Конечно, погуглив еще немного, я наткнулся на статью о локализация времени выполнения.

И выполнил следующие шаги:

Добавьте следующее в аргументы компилятора, чтобы указать поддерживаемые локали и путь к ним:(В Flex Builder выберите проект и перейдите к свойствам -> Компилятор Flex -> Дополнительные аргументы компилятора)

-locale=en_CA,fr_CA -source-path=locale/{locale}

Создайте следующие файлы:

src/locale/en_CA/resources.properties
src/locale/fr_CA/resources.properties

И тогда компилятор жалуется: unable to open 'C:\Program Files\Adobe\Flex Builder 3\sdks\3.1.0\frameworks\locale\en_CA'

Это похоже на ошибку СДК-12507

Обходной путь:
в sdks\3.1.0\bin каталог, выполните следующие команды:

copylocale en_US en_CA  
copylocale en_US fr_CA

Это создаст каталоги локали в установке Flex Builder и встроит в них некоторые необходимые ресурсы.

Тогда в твоем .mxml файлы, обратитесь к пакету ресурсов:

<mx:Metadata>
    [ResourceBundle("resources")]
</mx:Metadata>

И интернационализируйте строки:

<mx:TitleWindow title="Window Title">

становится:

<mx:TitleWindow 
    title="{resourceManager.getString('resources', 'windowTitle')}">

и

var name:String = "Name";

становится:

var name:String = resourceManager.getString("resources", "name");

И в твоем src/locale/en_CA/resources.properties файл:

windowTitle=Window Title
name=Name
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top