| Appleman |
12.10.2017 18:34 |
Потихоньку дополз до реализации некоторых моментов, описанных уважаемым wolsh. Теперь прошу пояснить кое-что по мелочи.
Цитата:
Сообщение от Wolsh
(Сообщение 1202235)
Для каждой фразы имеется идентификационный номер. В коде, когда надо вывести текст, идет обращение к классу Language и вызывается его статический метод getText(id:uint):String. Этот класс в начале программы загружает XML, в котором все фразы хранятся со своими идентификаторами
|
Цитата:
Language открывает этот файл и считывает его в объект XML
программа двигается дальше, отрисовывает интерфейс, периодически обращаясь к Language.getText(#)
|
Чего-то я туплю. Как заставить класс Language загрузить в начале программы фразы из XML и обеспечить возможность обращаться к ним периодически в рантайме? Я правильно понимаю, что если на старте программы (или после смены языка пользователем) мы вызовем статический метод getPhraseBase класса Language с передачей туда id языка из конфига, он загрузит содержимое XML файла на нужном языке
и сохранит в статическую переменную, то в дальнейшем мы всегда сможем обратиться к этой переменной за фразой? Или нет?
Цитата:
3>>Не совсем понял, что значит "руками это не делается"? При чем тут "статические таблицы"? А их кто писал? Не руками? Как-то вообще непонятно, что ты имеешь ввиду.
|
Я имею в виду, что если к примеру идентификатор каждой фразы формируется из значений каких-то переменных в программе (в частности, уже несколько раз упоминавшейся нами вариант 'наименование свойства + идентификатор пола персонажа as String' для определения массива расшифровок значения данного свойства), то файл XML с этими самыми расшифровками было бы сподручнее и, что важнее, гораздо надёжнее сгенерировать, чем писать вручную, рискуя допустить очепятку. Благо нужные идентификаторы и слова/фразы уже есть в статической таблице Object.
|