Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
76
Добавлен:
02.04.2015
Размер:
8.79 Mб
Скачать
      1. Использование символа "@" в именах экземпляров

По умолчанию PhAB игнорирует виджеты, которые не имеют имени экземпляра или имеют имя экземпляра, установленное в имя класса. Это означает, что когда Вы размещаете надпись внутри окна и изменяете текст на что-то соответствующее, PhAB пропускает этот виджет, когда генерирует исходный код Вашего приложения. Это происходит потому, что PhAB предполагает, что надпись является константой и приложению не понадобится получить к ней доступ. Однако, когда дело доходит до необходимости переводить Ваше приложение на другой язык, эта надпись становится очень важной.

Чтобы различать виджеты, которые важны в смысле перевода, но не в смысле генерации исходного кода, PhAB опознаёт специальный символ, когда тот расположен в первой позиции имени экземпляра. Этот специальный символ – "@". Это означает, что Вы можете присвоить надписи имя экземпляра "@label1", и PhAB опознает эту надпись при генерации базы данных разноязычных текстов, но пропустит при генерации исходного кода.

Это всё звучит хорошо, за исключением того, что PhAB также требует, чтобы все имена экземпляров были уникальными. Это правило должно выдерживаться, так чтобы PhAB при исполнении программы знал, какую текстовую строку заменять. К несчастью, выдумывание потенциально сотен уникальных имён экземпляров, которые в действительности Вас не интересуют, может оказаться кучей работы. Для решения этой задачи PhAB позволяет Вам задавать одиночный символ "@" в качестве имени экземпляра, и PhAB сам добавит сзади внутренний последовательный номер. Это освободит Вас от необходимости отслеживать все константные текстовые строки, которые требуют имён экземпляров только для перевода. Если Вы хотите сгруппировать переводные текстовые строки (скажем, в модуле), Вы можете дать им всем одно имя экземпляра, и PhAB добавит последовательный номер, чтобы создать уникальное имя. Например, если Вы назначили имя "@base" нескольким виджетам, PhAB сгенерирует в качестве имён экземпляров "@base", "@base0", "@base1" и т.д.

      1. Двуязычные приложения

Иногда необходимо спроектировать двуязычное приложение. Это предполагает, что в каждой текстовой строке отображается два различных языка. Хотя это и можно сделать, обычно пользователю тяжело такое читать и понимать.

PhAB предлагает Вам использовать другой подход. Вы можете создать приложение в одном языке и обеспечить возможность переключения на другой через управление приложением. Это выполняется через функцию API PhAB – функцию ApSetTranslation(). Эта функция (описание см. в "Справочнике библиотечных функций Photon'a") изменяет текущий файл перевода для приложения немедленно, так что все последующие диалоги, окна и всё такое прочее рисуются с использованием нового файла перевода.

 Любые уже существующие модули и виджеты при этом не переводятся, только новые. Если Вы хотите добиться немедленной обратной связи, Вам понадобиться пересоздать модули. Это просто для диалогов, но сложнее с базовым окном; вспомните, что уничтожение базового окна приводит к завершению приложения. Единственным способом перевести содержание базового окна – это поместить всё содержание в модуль картинки, который может быть пересоздан.

Соседние файлы в папке Литература_1