Цитата:
|
Ну, в принципе, логично. Можно писать вообще любой г-код и оправдывать это тем, что сложно припомнить баги по этой схеме, и много холиваров было. Работает? Да. Значит написано хорошо!
|
В моем случае я вижу решение, а вы почему-то г... Хотя есть один анекдот, суть которого можно описать как "Пчела видит жизнь в мёде, а муха..."
Цитата:
|
Уже вижу, как при добавлении новых объектов на сцену, они добавляются с неизмененным языком, потому что при создании какого-то нового объекта, разработчик забыл из зарегистрировать.
|
Исключено, для этого собственно и создавалась "регистрация"...

Код AS3:
var tf:TextField = new TextField();
Translator.getTranslation('strID_hello', tf); // Приветствие.
Цитата:
И это при том, что если делать "нормально", то объекты вьюшки сами должны слушать изменение модели, и сами менять свои надписи, если произошло событие смены языка. Языковой пакет уж точно этим заниматься не должен. Он должен лишь хранить переводы и отдавать нужный по запрошенному ID. Он даже событий никаких может не слать
В правильной схеме во вьюшках должно быть что-то вроде:
Код AS3:
_viewModel.addEventListener(LocalizationEvent.LOCALE_CHANGE, onLocaleChange);
private function onLocaleChange(e:LocalizationEvent):void {
// ....
playButton.label = i18n.translate("play");
stopButton.label = i18n.translate("stop");
}
И не надо никаких заморочек с регистрацией объектов в языковом пакете и отправкой событий через stage. И 100% все нужные тексты при смене языка будут сразу переведены.
|
Т.е. если я правильно понимаю, то "нормально" для вас это:
1. Присвоить текст на стадии создания tf.
2. Создать слушатель LocalizationEvent.
3. При изменении языка, заново запросить строку... (здесь дублировать ID)
А теперь я вам расскажу что вам еще нужно будет сделать:
4. этот пункт перед третьим будем считать. Загрузить нужную локаль... У вас же все должно быть отдельно)
5. Не забыть удалить все слушатели с tf в случае удаления его со сцены. Это еще один слушатель, еще одна функция и перечисление всех tf в ней...
Не слишком ли много действий и кода для одной строки? (для каждой к тому же).... И все это еще нужно будет заставить работать, если это отдельный подгружаемый swf... (к вопросу о stage).
Мне достаточно первого пункта. Код выше.
З.Ы. Остальные ваши скучно-нудные умозаключения могли бы оставить в месте, коим их придумали...