|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Как изменить язык во время выполнения?
Допустим есть текстовое поле привязанным идентификатором из таблицы языков Strings. Есть кнопка "Русский" и "Английский".
Какой код нужно повесить на кнопкив AS3, чтобы менять язык налету? Спасибо. ________ (а может кто-нибудь альтернативу предложит) |
|
|||||
Регистрация: Apr 2006
Сообщений: 29
|
вы хотите что бы AS3 "перевел" все слова с одного языка на другой?
|
|
|||||
Нажмите во Флеше ctrl+F11. Появится окошко Strings. В нем у меня забито слово на русском и английском. На поле есть динамик текст, с привязанным идентификатором из Strings. Если я в окошке стрингс меняю язык, то мой динамик текст тоже меняет содержимое (т.к. он привязан).
Вопрос. Можноли во время выполнения программы через AS сменить язык, так чтобы все привязанные текстовые поля изменили свой язык? |
|
|||||
Modus ponens
|
Это в АС2 тож в пакете мх была такая утилита, "переводила" тексты... если честно, никто ей никогда не пользовался... Помоему сейчас это находится в fl.lang.Locale а метод по замене выглядит что-то типа Locale.setDefaultLang, нужно просто этот класс открыть и почитать чего они там понаписывали...
__________________
Hell is the possibility of sanity |
|
|||||
Цитата:
Смена языка - это ваша реализация, но никак не Class или пакет, встроенный в IDE. Вот вам пример: import flash.text.TextField; import flash.text.TextFieldAutoSize; var tf:TextField; /* текущий язык ставим русский */ var language:String="ru"; /* объект, который лучше бы сделать static classом для удобства */ var textData:Object=new Object(); textData["ru"]=new Object(); textData["ru"].welcome="Добропожаловать на мой сайт !"; textData["ru"].bye="Всего доброго !"; textData["en"]=new Object(); textData["en"].welcome="Welcome to my website !"; textData["en"].bye="Goodbye "; /* ф-ия смены языка */ function chageLang(newLanguage:String){ language=newLanguage; } /** * ф-ия для текущего языка * id - свойство объекта указанного в lang (в нашем случае их 2 - welcome и bye) */ function getCurrentLangData(id:String):String { return textData[language][id]; } /* * ф-ия, на случай, если вы захотите язык, отличный от текущего * lang - язык (в нашем случае ru/en), id - свойство объекта указанного в lang (в нашем случае их 2 - welcome и bye) */ function getDefinedLangData(lang:String, id:String):String { return textData[lang][id]; } /* создадим TF и проверим */ function createTextField():void { tf=new TextField(); tf.autoSize=TextFieldAutoSize.LEFT; addChild(tf); } createTextField(); /* пример: */ //tf.htmlText=getDefinedLangData("en", "welcome"); tf.htmlText=getCurrentLangData("bye"); Последний раз редактировалось ulik; 04.04.2008 в 13:22. |
|
|||||
"Смена языка - это ваша реализация, но никак не Class или пакет, встроенный в IDE."
Вот это и спрашивал. Вобщем спасибо, придётся действительно вручную всё делать. |
|
|||||
Цитата:
Да и это была б та же "ручная" реализация. Только разработчиков, а не ваша. |
|
|||||
Modus ponens
|
Ну, так это ИДЕ умеет работать с одним классом (сейчас посмотрел, он действительно существует, там где я и думал), ну и соответственно дает пользователю возможность выбрать какой набор строрк использовать при компиляции... Но он не хороший, если нужно текстовые поля создавать динамически и все такое... вобщем, лучше самому делать
__________________
Hell is the possibility of sanity |
Часовой пояс GMT +4, время: 14:39. |
|
« Предыдущая тема | Следующая тема » |
|
|