Изменение языка интерфейса в режиме выполнения

Язык интерфейса проекта может быть изменен во время выполнения проекта без перезапуска менеджера интерфейса пользователя. При этом изменение языка происходит во всех панелях и модулях, открытых посредством соответствующего менеджера интерфейса пользователя, без необходимости закрытия и повторного открытия конфигурационных панелей и панелей установки.

В интерфейсе пользователя язык проекта можно изменить в меню пиктограмм. При изменении языка в режиме выполнения в интерфейсе пользователя изменяется язык ТЕКУЩЕГО модуля. Кроме того, поддерживается изменение языка с помощью функции switchLang() языка CONTROL. С помощью данной функции изменяется язык ВСЕЙ панели, а не только модуля. Данная функция может использоваться в пользовательских сценариях CONTROL.

После запуска интерфейса пользователя на панели инструментов отображается выпадающий список для изменения языка. При изменении языка с использованием данного выпадающего списка, в отличие от функции switchLang(), не происходит изменения локальных настроек (например, форматов даты и времени, формата вывода чисел с плавающей точкой и т. д.).

В графическом редакторе GEDI данный выпадающий список может использоваться для переключения между языками проекта, то есть для отображения содержания панелей на различных языках.

Рисунок: Выпадающий список для изменения языка

ПРИМЕЧАНИЕ

Язык диалогового окна выбора файлов зависит от настроек операционной системы. Если язык операционной системы английский, диалоговое окно также выводится на английском языке.

Для обеспечения совместимости каждая панель содержит дополнительное свойство «Только перерисовка при изм.языка» («LangChange Redraw Only») и дополнительное событие «LangChanged» (изменение языка). С помощью свойства «Только перерисовка при изм.языка» определяется поведение панели при изменении языка. Возможно два значения:

1. Только перерисовка при изм.языка, TRUE: Изменение языка выполняется путем «перерисовки» всех статических текстов на панелях и активации события «LangChanged». Данную настройку целесообразно использовать для новых панелей, у которых в сценариях по событию «Initialize» (инициализация) отсутствует предустановка текстов.

ВНИМАНИЕ

При использовании параметра «Только перерисовка при изм.языка» со значением «TRUE» необходимо аккуратно использовать глобальные переменные в сценарии «LangChanged». При изменении языка выполняется сценарий по событию «LangChanged». Если вскоре после этого язык снова изменяется, изначально запущенный сценарий продолжает выполняться, и одновременно запускается еще один сценарий. Подобное выполнение сценариев может привести к непредвиденным результатам (например, к присвоению неверных значений глобальным переменным). В этой связи необходимо либо избегать использования глобальных переменных в сценарии по событию «LangChanged», либо изменять язык только после окончания выполнения изначально запущенного сценария!

2. Только перерисовка при изм.языка, FALSE (по умолчанию). При использовании свойства «Только перерисовка при изм.языка» со значением «FALSE» дополнительно закрываются все дочерние панели, останавливаются сценарии CTRL (включая сценарий для функции «switchLang()»), после чего выполняются все сценарии по событию «Initialize». Данная настройка установлена по умолчанию и должна использоваться в «старых» панелях, в которых тексты объектов задаются при инициализации.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *