Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.08.2008, 17:11
walch вне форума Посмотреть профиль Отправить личное сообщение для walch Найти все сообщения от walch
  № 1  
Ответить с цитированием
walch

Регистрация: Aug 2008
Сообщений: 1
По умолчанию Кто-нибудь работал с Locale?

По описанию в справке получается отличный класс который даже умеет автоматически заменять тексты после смены языка. Но при попытке им воспользоваться возникла проблема...

Код:
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. Похоже что замена происходит только при первой реальной заргузке файла. На второй поптыке он не грузится с сервера, так как уже есть в памяти (хотя все события отрабатывают корректно).

Старый 16.09.2011, 20:41
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 2  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Тоже столкнулся с этой проблемой :-)

Добавлено через 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 минут
И кстати еще вопрос - кто нибудь пробовал локализовать компоненты, например, радиобаттоны где текст в лейбле прописан, а то панель строки позволяет работать только с динамическими текстовыми полями

Старый 16.09.2011, 22:35
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 3  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
У Locale есть нехилый минус- тексты только статические.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 16.09.2011, 22:45
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 4  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Цитата:
Сообщение от -De- Посмотреть сообщение
У Locale есть нехилый минус- тексты только статические.
Не понял, какие статические? Локализовать через локале можно только динамический текст

Старый 16.09.2011, 23:16
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 5  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
"на вас одет шлем и телескоуп", "Осталось набрать 10 очков" - вот такие им не локализовать.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.


Последний раз редактировалось -De-; 17.09.2011 в 01:00.
Старый 17.09.2011, 01:23
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 6  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
Код AS1/AS2:
com.nunorosa.locale.LocaleManager
рекомендую к изучению, просто и удобно.

Старый 17.09.2011, 02:07
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 7  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Цитата:
Сообщение от nOobCrafter Посмотреть сообщение
Код AS1/AS2:
com.nunorosa.locale.LocaleManager
рекомендую к изучению, просто и удобно.
Можно поподробней, где про про это почитать? А то поиск в яндексе не дал результатов. И потом если это AS1 или 2 - то это не вариант, т.к. весь проект на трешке.

Старый 17.09.2011, 14:31
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 8  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
зато гугля сразу же дала нужный результат в первой строке:
http://code.google.com/p/as3localeli...DeveloperGuide

Старый 17.09.2011, 21:41
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 9  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Спасибо, попробую его. Как минус, похоже, что XMLники сделанные флешем, к этому классу не подойдут. И кстати разобрался как локализовать компоненты. Что то вроде этого:
Код:
if (GameSettings.LANGUAGE == "RUSSIAN")
{
radioButton.label = Locale.loadString("IDS_RADIOBUTTON_TXT"); // возвращает строку на текущем языке
}
но придется много писать кода ручками :-(


Последний раз редактировалось PainKiller; 17.09.2011 в 21:44.
Создать новую тему Ответ Часовой пояс GMT +4, время: 22:35.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
autoreplace , locale

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:35.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.