ИГРОДЕЛ
Войдите на сайт или зарегистрируйтесь!!!

Изменения локализации во Flex 3

Перейти вниз

Изменения локализации во Flex 3

Сообщение автор Admin в Вс Фев 21, 2010 9:22 pm

Радуют изменения которые произойдут в третьей версии Adobe Flex в области локализации приложений.
На мой взгляд основными бонусами станут:

компиляция приложения с несколькими locale одновременно

возможность переключения locale в рантайме (причем соотвествующие resource bundles могут быть как вкомпилены в приложение, так и подгружены)

возможность программного создания resources, например из XML файл

возможность использования картинок, звуков, видео, стилей и т. д. при локализации





Мало того, что вы можете запросто сделать кнопочку переключения языков у себя в приложении, так еще и при этом переключении менять не только надписи GUI, но и картинки, звуки и например размер шрифта. Кстати, изменение размера шрифта для некоторых языков прямо таки жизненно необходимо, на мой взгляд.

Более того, locale, загружаемую по умолчанию, можно определить в параметрах HTML обертки. А это говорит о том, что вы можете доставлять один swf файл со всеми языками и только в html в параметрах определять, какой язык сейчас увидит пользователь.

А теперь о менее приятном - о том, что вам придется переписать в своих существующих приложениях для перевода их на Flex 3 SDK и использования выше обозначенных бонусов.

Установив третью бету 3-его Flex, сразу же бросились в глаза варнинги по поводу устаревшего применения ResourceBundle с помощью соответствующего метатега.

[ResourceBundle("bundlename")]
private static var rb:ResourceBundle;
Примечательно, что использование директивы @Resource не изменилось. Однако в доках недвусмысленно намекается на то, что лучше не использовать этот способ, так как например, он не позволяет использовать переключение locale в рантайме.

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



Новый способ взаимодействия с resource bundle - это использование ResourceManager. А скорее всего, вы будете использовать свойство resourceManager, которое теперь есть у всех потомков от UIComponent, Formatter или Validator.

Еще одной приятной вещью станет то, что не обязательно теперь файлы ресурсов делать полностью копиями друг друга. Можно забыть при экспшены при обращении к ресурсу, так как в localeChain можно задать массив locale-ей. Тут и произойдет чудо. Например, ваш язык приложения русский, но недостающие строки могут автоматически цепляться из английских ресурсов.

Все эти радости можно увидеть уже на существующей Flex 3 SDK 3 beta 3.

Например, в дополнительных параметрах компиляции прописываете -locale=US,RU,GE.
Кстати, не забудьте, произвести операции описанные в статье Flex 3:Feature Introductions: Runtime Localization, а иначе не избежать вам ошибок компиляции вида Unable to resolve resource bundle “collections” for locale. Правда для чартингов мне все равно пришлось ручками копировать.
В результате получаете swf с тремя встроенными locale-ми: английская, русская, немецкая. Добавляем в html-оболочку во flashVars localeChain=RU,US. В результате наблюдаем русскоязычное приложение, недостающая часть перевода которого пока на английском.

В общем, поздравляю нас всех - локализация приложений станет удобнее!
avatar
Admin
Admin

Сообщения : 92
Очки : 280
Репутация : 36
Дата регистрации : 2010-02-20

Посмотреть профиль http://game-dll.mirbb.net

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения