![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2008
Сообщений: 1
|
По описанию в справке получается отличный класс который даже умеет автоматически заменять тексты после смены языка. Но при попытке им воспользоваться возникла проблема...
import fl.lang.Locale;
Locale.addXMLPath("ru", "locale/lang_ru.xml");
Locale.addXMLPath("en", "locale/lang_en.xml");
// Включаем автозамену при загрузке XML-файла с языком
Locale.autoReplace = true;
// Добавляем текстовое поле в список тех которые надо автозаменять
Locale.addDelayedInstance(txt, "IDS_STR");
// Грузим язык
Locale.loadLanguageXML("ru");
Добавим 2 кнопки. Описывать их код не буду, так как он не имеет значения, а место занимает. Одна кнопка делает - Locale.loadLanguageXML("en"); Другая, соответственно - Locale.loadLanguageXML("ru"); Так вот. Если нажать на кнопку которая грузит английский, то текст в поле поменяется! Но вот обратно на русский уже нет! Соответственно, если загрузить сначала "en", то переключение стработает один раз на "ru", а обратно - нет. Кто-нибудь сталкивался? P.S. Похоже что замена происходит только при первой реальной заргузке файла. На второй поптыке он не грузится с сервера, так как уже есть в памяти (хотя все события отрабатывают корректно). |
|
|||||
|
Тоже столкнулся с этой проблемой :-)
Добавлено через 17 минут Но у меня все еще хуже - сделал так что язык меняется по комбобоксу. Привожу только относящийся к делу код: languageCombobox.addEventListener (Event.CHANGE, languageSelected);
public function languageSelected (e:Event):void
{
if (languageCombobox.selectedItem.data == "RUSSIAN")
{
GameSettings.setLANGUAGE ("RUSSIAN");
trace (GameSettings.LANGUAGE);
Locale.autoReplace = true;
Locale.addXMLPath("ru", "ru/Cosmosarcada_ru.xml");
Locale.loadLanguageXML("ru");
}
else if (languageCombobox.selectedItem.data == "ENGLISH")
{
GameSettings.setLANGUAGE ("ENGLISH");
trace (GameSettings.LANGUAGE);
Locale.autoReplace = true;
Locale.addXMLPath("en", "en/Cosmosarcada_en.xml");
Locale.loadLanguageXML("en");
}
}
Добавлено через 25 минут И кстати еще вопрос - кто нибудь пробовал локализовать компоненты, например, радиобаттоны где текст в лейбле прописан, а то панель строки позволяет работать только с динамическими текстовыми полями |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
У Locale есть нехилый минус- тексты только статические.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
"на вас одет шлем и телескоуп", "Осталось набрать 10 очков" - вот такие им не локализовать.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. Последний раз редактировалось -De-; 17.09.2011 в 01:00. |
|
|||||
|
Можно поподробней, где про про это почитать? А то поиск в яндексе не дал результатов. И потом если это AS1 или 2 - то это не вариант, т.к. весь проект на трешке.
|
|
|||||
|
зато гугля сразу же дала нужный результат в первой строке:
http://code.google.com/p/as3localeli...DeveloperGuide |
|
|||||
|
Спасибо, попробую его. Как минус, похоже, что XMLники сделанные флешем, к этому классу не подойдут. И кстати разобрался как локализовать компоненты. Что то вроде этого:
но придется много писать кода ручками :-( Последний раз редактировалось PainKiller; 17.09.2011 в 21:44. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:35. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| autoreplace , locale |
|
|