четверг, февраля 05, 2009

Использование Flex Charting в локализованном приложении

Как известно, флекс-приложения можно локализовывать для разных языков, прописав в параметрах компиляции в атрибуте locale нужную локаль. Но перед этим нужно создать пакет необходимых библиотек для этой локали с помощью команды copylocale (располагается в папке [flexsdk]\bin ):

copylocale en_US ru_RU

Но данная команда игнорирует бандлы для Flex Charting. Это известный баг. И как следствие, наш проект откажется компилироваться для отличной от en_US локали.

Есть несколько способов все исправить.

Первый способ:

1. Найти datavisualization_rb.swc для английской локали:
Например, для Wiwndows:
C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\locale\en_US\

2. Скопировать его в папку с нужной локалью

3. Открыть с помощью архиватора

4. Переименовать папку "\locale\en_US" в "\locale\ru_RU" (или в какую нужно)

5. Отредактировать catalog.xml – заменить все строки en_US на нужную локаль

6. Вызвать во Flex Builder Project -> Clean.

Минус этого метода в том, что для каждой новой локали нужно повторять эту операцию.

Второй способ (типа официальный):

1. Получить исходники Flex Charting. Обычно они распаковываются в папку [flexsdk]\fbpro.

2. Зайти в папку [flexsdk]\frameworks\projects\ и создать тут структуру папок datavisualization\bundles\en_US\src

3. Зайти в папку [flexsdk]\fbpro\projects\datavisualization\bundles\en_US и скопировать все файлы .properties в новоиспеченную папку из п.2

Теперь copylocale будет работать правильно всегда.

Правда, сравнив архивы из первого способа и из второго можно заметить, что во втором бандлов меньше.

Комментариев нет: