logo
Литература_1 / photon_old

Использование символа "@" в именах экземпляров

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

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

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

      1. Yandex.RTB R-A-252273-3
        Yandex.RTB R-A-252273-4