|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Oct 2012
Сообщений: 14
|
Локализация и статические классы и поля
День добрый, господа!
Занимаюсь локализацией проекта. Все надписи тяну с помощью ResourceManager'а : Но вот незадача - в проекте куча статических полей и классов хранящие текст, который тоже нужно переводить. Подскажите, как тут быть? |
|
|||||
Регистрация: Oct 2012
Сообщений: 14
|
просто переписать не получиться. Нужно что бы при смене языка все надписи подтягивались из пакета ресурсов для выбранной локали.
например: Если язык русский, то вернётся "Обновить". Если английский, то "Refresh". Так же нужно и с статик полями провернуть. Только увы ресурсМенеджер они конечно же не видят. |
|
|||||
РесурсМенеджер - синглтон, его можно где угодно трогать.
Ну а само обновление полей все равно на вас. Где-то биндинг отработает, a где-то надо сказать контролам, чтобы забрали новые метки.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. Последний раз редактировалось GBee; 31.10.2012 в 14:34. Причина: , забыл |
|
|||||
Регистрация: Oct 2012
Сообщений: 14
|
Что-то никак не разберусь...
Давайте лучше на живом примере разберём. Вот компонент. Его статик поля используются в других частях приложения. Тут попытался воспользоваться вашим советом. <?xml version="1.0" encoding="utf-8"?> <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="148" height="24"> <fx:Script> <![CDATA[ var rm:IResourceManager = ResourceManager.getInstance(); //Ошибка: Обращение к несуществующему свойству ResourceManager public static const STATUS_TYPES : Object = { bad: { status_id: 2, name: rm, // Ошибка: Обращение несуществующего свойства rm. color: 0xFF0000 }, notBad: { status_id: 1, name: "С ошибками", color: 0xFF9100 }, notGood: { status_id: -1, name: "Нет данных", color: 0xF2FF00 }, good: { status_id: 0, name: "Работает", color: 0x9DFF00 } }; ]]> </fx:Script> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <fx:Metadata> [ResourceBundle("ResultsCanvas")] </fx:Metadata> и эти поля тоже подтягивали в зависимости от выбранного языка. |
|
|||||
Цитата:
Да и визуальные компоненты вроде должны иметь ссылку и так Цитата:
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
Регистрация: Oct 2012
Сообщений: 14
|
Цитата:
|
|
|||||
Вот это тоже, по идее, должно быть в локалях и STATUS_TYPES.name тоже. Даже цвет можно.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
Регистрация: Oct 2012
Сообщений: 14
|
Да, полностью согласен, так и хочу сделать только у меня не получается потом это из локали вытащить!
public static const LOV_TEXTINPUT_TOOLTIP:String = resourceManager.getString('ResultsCanvas','LOV_TEXTINPUT_TOOLTIP'); public static const LOV_TEXTINPUT_PROMPT:String = resourceManager.getString('ResultsCanvas','LOV_TEXTINPUT_PROMPT'); STATUS_TYPES - объект, но думаю что это можно будет поправить. Но опять же главная загвозка в том что он статик. Можно ли оставив эти вещи статичными подвязать к ним строки из локали? |
Часовой пояс GMT +4, время: 20:06. |
|
« Предыдущая тема | Следующая тема » |
|
|