Использование меток
При создании таблиц информационной системы, пользовательских сообщений, элементов интерфейса очень часто приходится использовать текстовые массивы строк.
Для облегчения реализации многоязыкового интерфейса и исправлении синтаксических ошибок рекомендуется хранить всю текстовую интерфейсную информацию в меточных файлах (аналог файла ресурсов в MS Visual C++).
Файл меток (labels) состоит из множества сток, каждая из которых состоит из самой метки и строки на соответствующем языке.
Пример метки: @SYS1234
@ - с этого символа начинается обозначение метки;
SYS - меточный код;
1234 - уникальное, автоматически генерируемое системой число.
Трехбуквенный меточный код SYS или SYP для любой метки указывают на ее принадлежность к стандартной системе. При самостоятельном создании файла меток, трехбуквенную метку можно задавать произвольно. Метка имеет один и тот же ID во всех языках, с которыми ведется работа.
Файлы в которых хранятся метки находятся в папке ...\Navision\ Application\ Appl\ Standard. Их описание приведено в таблице.
| Расширение файла | Тип файла | Описание файла |
| *.ald | Axapta Label Data | Главный файл в котором хранятся сами метки |
| *.alc | Axapta Label Comments | Файл описаний |
| *.ali | Axapta Label Index | Индексный файл |
Формат меточного файла: Ax + <код меточного файла><язык>.ald
Если возникает необходимость в создании новых текстов для интерфейса пользователя, тогда необходимо создать и новый файл меток. Для того чтобы это сделать с наименьшими затратами в Axatpa есть специальный Мастер по созданию файла меток, который вызывается через меню "Tools/ Development toold/ Label/ Label file wizard".
На первом шаге необходимо выбрать, что мы хотим создавать:
- Создать новый код меточного файла
- Создать новый язык для меток
Далее необходимо указать код меточного файла:
После чего можно выбрать дополнительный языки для которых будут создаваться метки и закончить создание файла.
Теперь посмотрим, как его можно использовать на практике; на примере "Hello World!".
В примере дважды встречается текстовая информация: на кнопке диалога и в виде сообщения, примем только на английском. Попробуем реализовать в нашем примере многоязыковый интерфейс.
Во первых в свойстве "Text" единственной кнопки диалога нажмем кнопку для выбора или создания метки.
В окне поиска меток нажмем кнопку "New" и введем заголовок кнопки на тех языках, на которых это нам необходимо.
После чего в значение свойства "Text" кнопки диалога необходимо выбрать созданную нами метку (в моем случае "@MAV9"); для этого можно нажать кнопку "Paste label".
Следующее, что нам необходимо сделать - это перевести на русский текст сообщения. Для этого необходимо создать новую метку или использовать уже имеющуюся. Для этого откроем окно работы с метками, меню "Tools/ Development toold/ Label/ Find label". В поле "Find what" вводим текст метки на указанном языке и выполняем поик; если нужная метка не найдена - создаем новую аналогично тому, как мы создавали метку для элемента диалога. В моем случаем новое имя метки - "@MAV10".
После того, как нужная метка создана - мы можем использовать ее в коде в методе "clicked":
Print("@MAV10");
А при запуске Аксапты на русском языке при нажатии на кнопку "Жми меня" появится сообщение уже на русском:
Язык интерфейса указывается, перед запуском Axapta, в конфигурационной утилите в поле Language. Начиная с версии Axapta 3.0 невозможно вставить метку с одинаковым текстом и описанием.
В результате мы получили поддержку многоязычного интерфейса. А в папке ...\Navision\ Application\ Appl\ Standard появились новые файлы: axMAV*.* .
P.S.: Экспорт и Импорт меточных файлов происходит путем их копирования в папку ...\Standard.
Автор: Андрей Михайлов aka MAV