![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
У нас такая штуковина, дабы не травмировать мозг запоминанием ключей, количества и назначения праметров для каждого ключа просто генерируется из таблицы с локализацией:
/** Какой-то текст с {parameter}-ом на ключ some_text */ //<-- это сгенерилось по дефолтному языку локализации - //чтобы не отвлекаться, не смотреть что значит ключ public static function some_text(parameter:String):String { return _values["some_text"].replace(/\{parameter\}/g, parameter);// Утрированно } Т.е. приведённый текст выглядел бы так: Для локализации объектов, а не интерфейса, конечно, так делать не надо и не получится, но для них и тучу ключей поддерживать не надо - просто берёшь ключ у игрового объекта и берешь по нему название этого объекта - такой ключ не захардкожен, его нет в коде. По поводу динамической замены языка - ни разу не приходилось делать (не требовалось), но возможны варианты: 1. Как в fl-компонентах - регистрируем прямо в локализаторе текстовые поля с ключом и при перезагрузке он их обновляет 2. Вручную подписываемся на локализатор во всех окошках и меняем все тексты при событии "изменился язык" 3. Делаем наследника TextField, который уже слушает изенения и сам себя меняет и используем его везде. А если сторонние компоененты используюся? - оборачивать? Проблемы тут 2: 1. Как везде поменять текст с минимальным количеством кода 2. Размеры, вот незадача, тоже у полей будут меняться и ведь нужно реагировать - менять размеры окон и панелей, или дикий запас пространства оставлять Вобщем, перечисленные 3 способа справляются с этими задачами с разным успехом. Последний раз редактировалось iNils; 11.06.2012 в 16:22. |
![]() |
Часовой пояс GMT +4, время: 21:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|