Поддержка интернационализации в разработке инструментов для разработки программного обеспечения имеет жизненно важное значение для обеспечения эффективной глобализации. Если существует какая-либо возможность будущего сотрудничества с другими странами, с самого начала проекта следует рассмотреть возможность интернационализации. Интернационализация может предотвратить доработку или необходимость разработки новой модели. Соответствующее требование касается параметров языкового стандарта.
На компьютере параметр языкового стандарта определяет язык (кодировку набора символов) пользовательского интерфейса и форматы отображения информации, такой как время, дата и валюта. Кодировка определяет количество символов, которое может быть отображено языковым стандартом. Например, кодированный набор символов (кодовый набор) US-ASCII определяет 128 символов. Кодовый набор Unicode ®, например UTF-8, определяет более 1 100 000 символов.
Для создания кода параметр языкового стандарта определяет кодировку набора символов генерируемого содержимого файла. Во избежание искажения текста или неправильного отображения символов параметры языкового стандарта для сеанса MATLAB ® должны быть совместимы с параметрами компилятора и операционной системы. Сведения о поиске и изменении параметров операционной системы см. в разделе Интернационализация или в документации по операционной системе.
Чтобы проверить модель на наличие символов, которые не могут быть представлены в настройках языкового стандарта текущей сессии MATLAB, используйте модель проверки проверки Simulink ® Model Advisor для иностранных символов.
Для подготовки к созданию кода для модели определите:
Языковой стандарт операционной системы.
Языковой стандарт сеанса MATLAB.
Требования к созданию кода для:
Файлы компилятора целевого языка
Файлы шаблонов создания кода, содержащие комментарии (требуется Embedded Coder ®)
Файлы компилятора целевого языка поддерживают только кодировку по умолчанию. Для создания международного пользовательского кода, который является портативным, используйте 7-битный набор символов ASCII.
Генератор кода заменяет символы, которые не представлены в кодировке набора символов модели, escape-последовательностями XML. Для имен блоков, сигналов и объектов Stateflow ®, отображаемых в:
Сгенерированные комментарии к коду
Отчеты о создании кода
Пути к блокам, записанные в MAT-файлы
Пути блокировки, зарегистрированные в файлах C API (или model_capi.c.cpp) и model_capi.h
В этом примере показано, как использовать генератор кода для создания и просмотра кода для использования на смешанном языке и смешанном языке.
Перед использованием этого примера см. раздел Интернационализация и генерация кода или Интернационализация и генерация кода (встроенный кодер).
rtwdemo_unicode в конфигурации модели используется встроенный кодер (R) ert.tlc системный целевой файл. Чтобы увидеть поддержку интернационализации и локализации с помощью Simulink Coder ®, настройте модель для использования grt.tlc системный целевой файл. В примере показана поддержка, относящаяся к Embedded Coder ® (например, шаблоны генерации кода).
Конфигурация модели определяет файлы и настройки, которые управляют тем, как генератор кода обрабатывает локализацию для:
Интерфейсы API C и C++
Файлы шаблонов генерации кода (CGT) (требуется Embedded Coder ®)
Файлы компилятора целевого языка (TLC), применяющие настройки кода (требуется Embedded Coder ®)
Открыть пример модели rtwdemo_unicode.
Открыть пример модели rtwdemo_unicode. Метки в модели отображаются на нескольких языках (арабском, китайском, английском, немецком и японском) и различных символах Юникода.
model = 'rtwdemo_unicode'; open_system(model); %

Откройте приложение Embedded Coder
На вкладке Приложения выберите Встроенный кодер.
Проверка параметров языкового стандарта
Убедитесь, что языковые настройки программного обеспечения MATLAB ® совместимы с компилятором. См. документацию по операционной системе или следующую документацию MATLAB:
Проверка модели для использования чужих символов
Чтобы проверить модель на наличие символов, которые генератор кода не может представить в кодировке текущего набора символов модели, используйте модель проверки проверки внешних символов Simulink ® Model Advisor.
1. Откройте мастер модели. На вкладке Моделирование (Modeling) щелкните Помощник по модели (Model Advisor). Выберите Помощник по модели (Model Advisor). Или в окне команд введите:
modeladvisor('rtwdemo_unicode')
Updating Model Advisor cache... Model Advisor cache updated. For new customizations, to update the cache, use the Advisor.Manager.refresh_customizations method.
2. Развернуть по продукту.
3. Разверните узел Simulink.
4. Выберите Проверить модель для иностранных символов
5. Щелкните Выполнить эту проверку.
6. Просмотрите результаты. Появляется несколько предупреждений. Убедитесь, что символы в модели могут быть представлены в текущей кодировке набора символов.
7. Закройте мастер модели.
Файлы шаблонов создания кода
Чтобы использовать файл шаблона создания кода с символами Юникода при создании кода, выполните следующие действия (требуется Embedded Coder ®). В противном случае перейдите к следующему разделу.
1. Откройте диалоговое окно «Параметры конфигурации».
2. Перейдите в область Создание кода > Шаблон. Модель настроена на использование файла шаблона генерации кода rtwdemo_unicode.cgt. Этот файл добавляет комментарии в верхнюю часть созданных файлов кода. Чтобы генератор кода применил замены escape sequence для .cgt , включите замены, указав:
<encodingIn = "encoding-name">
3. Открыть файл /toolbox/rtw/rtwdemos/rtwdemo_unicode.cgt.
edit rtwdemo_unicode.cgt
4. Найти строку кода, позволяющую замену escape-последовательности для кодировки набора символов UTF-8.
<encodingIn = "UTF-8">
5. Закрыть файл /toolbox/rtw/rtwdemos/rtwdemo_unicode.cgt.
Созданный шаблон адаптации файла
Чтобы использовать шаблоны настройки файлов с символами Юникода при создании кода, выполните следующие действия (требуется Embedded Coder ®). В противном случае перейдите к следующему разделу.
Можно задать настройки для созданных файлов кода с помощью кода TLC. Файлы TLC поддерживают только кодировку по умолчанию. Для создания международного пользовательского кода, который является портативным, используйте 7-битный набор символов ASCII.
1. Откройте диалоговое окно «Параметры конфигурации».
2. Перейдите в область Создание кода > Шаблон. Модель настроена на использование файла адаптации кода example_file_process.tlc. Этот файл настраивает созданный код непосредственно перед тем, как генератор кода запишет файлы кода. Например, файл добавляет исходный файл C, соответствующий include-файл и #define и #include заявления.
3. Открыть файл /toolbox/rtw/rtwdemos/example_file_process.tlc.
edit example_file_process.tlc
4. Перед созданием кода раскомментируйте следующую строку кода:
%% %assign ERTCustomFileTest = TLC_TRUE%
5. Закрыть файл /toolbox/rtw/rtwdemos/example_file_process.tlc.
Создание кода C и отчета
Создание кода C и отчета о создании кода.
evalc('slbuild(''rtwdemo_unicode'')');
Просмотр созданного кода
Для символов, не входящих в текущую кодировку набора символов MATLAB ®, генератор кода использует замены escape-последовательностей для корректного отображения символов в отчете о создании кода.
1. Если отчет о создании кода для модели rtwdemo_unicode не открыт, в окне команд введите:
coder.report.open('rtwdemo_unicode')
2. Просмотрите созданный код в rtwdemo_unicode.c и rtwdemo_unicode.h. Имена элементов модели отображаются в комментариях к коду как имена замены на локальном языке.
3. Откройте отчет об отслеживании. Отчет содержит информацию об отслеживании, даже если имя содержит символы, которые не представлены в текущей кодировке. Имена элементов модели отображаются в отчете как имена замены на локальном языке.
4. Прокрутите вниз до и щелкните ссылку местоположения кода для первой диаграммы (State 'Selection' <S2>:23). Представление отчета изменяется для отображения соответствующего кода в rtwdemo_unicode.c.
5. В комментарии кода нажмите кнопку <S2>:23 ссылка. В окне модели отображается диаграмма на новой вкладке.
6. В окне модели щелкните эту диаграмму правой кнопкой мыши. В контекстном меню выберите C/C + + Code > Перейти к C/C + + Code. В представлении отчета отображается именованный раздел кода константы для этой диаграммы.
7. Закройте отчет о создании кода, Model Advisor и модель. В окне команд введите:
coder.report.close();
bdclose('all');
Создать код C++
Создайте код C++ и отчет о создании кода.
1. Откройте модель.
model = 'rtwdemo_unicode';
open_system(model);

2. Задайте для параметра конфигурации модели Язык значение C++. Или в окне команд введите:
set_param('rtwdemo_unicode','TargetLang','C++');
3. Установите параметр конфигурации модели Code interface packaging в значение C++ class. Или в окне команд введите:
set_param('rtwdemo_unicode','CodeInterfacePackaging','C++ class');
4. Создайте код C++ и отчет о создании кода.
evalc('rtwrebuild(''rtwdemo_unicode'')');
5. Для просмотра поддержки интернационализации и локализации просмотрите созданный код. См. раздел Просмотр созданного кода.
6. Закройте отчет и модель создания кода. В окне команд введите:
coder.report.close();
bdclose('all');