このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
地域と言語の設定とコード生成
ソフトウェア開発ツールにおける地域と言語の設定のサポートは、効率的なグローバリゼーションの実現に不可欠です。ロケールを超えて他のユーザーと将来共同作業を行う可能性がある場合は、プロジェクトの開始時から地域と言語の設定を検討してください。地域と言語の設定によって、やり直しや、新しいモデル設計を開発しなければならないような状況を回避できます。関連要件はロケールの設定に関するものです。
ロケール設定
コンピューター上のロケール設定は、ユーザー インターフェイスの言語 (文字セット エンコード) と、時間、日付、通貨などの情報の表示形式を定義します。エンコードは 1 つのロケールでレンダリングできる文字数を指定します。たとえば、US-ASCII でコード化された文字セット (コードセット) は 128 文字を定義します。UTF-8 などの Unicode® コードセットは、1,100,000 を超える文字数を定義します。
コード生成の場合、ロケール設定によって、生成されたファイルの内容の文字セット エンコードが決まります。文字化けや誤って表示される文字を防ぐには、MATLAB® セッションのロケール設定がコンパイラおよびオペレーティング システムの設定と互換性がなければなりません。オペレーティング システムの設定の参照と変更の詳細については、地域と言語の設定またはオペレーティング システムのドキュメンテーションを参照してください。
複数の言語とロケールが混在するコード生成の準備
モデルのコード生成を準備するには、以下を特定します。
オペレーティング システムのロケール。
MATLAB セッションのロケール。
次のコード生成に関する要件。
Target Language Compiler ファイル
コメントを含むコード生成テンプレート ファイル (Embedded Coder® が必要)
文字セットの制約
Target Language Compiler ファイルはユーザーの既定のエンコードのみをサポートします。移植可能な国際的なカスタム生成コードを作成するには、7 ビット ASCII 文字セットを使用します。
XML エスケープ シーケンスの置換
コード ジェネレーターは、モデルの文字セット エンコードで表現されない文字を XML エスケープ シーケンスで置き換えます。エスケープ シーケンスの置換は、以下に表示されるブロック、信号および Stateflow® オブジェクトの名前に対して行われます。
生成されたコードのコメント
コード生成レポート
MAT ファイルに記録されたブロック パス
C API ファイル
(またはmodel
_capi.c.cpp
) および
に記録されたブロック パスmodel
_capi.h
言語およびロケールが混在するコードの生成とレビュー
この例ではコード ジェネレーターを使用して、混在する言語およびロケールで使用されるコードを生成する方法およびレビューする方法について説明します。
この例を使用する前に、地域と言語の設定とコード生成または地域と言語の設定とコード生成 (Embedded Coder)を参照してください。
モデル MixedLanguagesAndLocales
の構成では、システム ターゲット ファイル ert.tlc
を使用します。Simulink® Coder™ に関する地域と言語の設定とローカライズのサポートを確認するには、grt.tlc
システム ターゲット ファイルを使用するようにモデルを設定します。この例は、Embedded Coder に固有のサポートを示します (コード生成テンプレートなど)。
モデル コンフィギュレーションでは、コード ジェネレーターが次の内容についてローカライズを処理する方法を制御するファイルと設定を指定します。
C および C++ API インターフェイス
コード生成テンプレート (CGT) ファイル (Embedded Coder が必要)
コードのカスタマイズを適用する Target Language Compiler (TLC) ファイル (Embedded Coder が必要)
モデル例を開く
モデル例 MixedLanguagesAndLocales
を開きます。モデル内のラベルは多言語 (アラビア語、中国語、英語、ドイツ語および日本語) とさまざまな Unicode の記号で表示されます。
model = 'MixedLanguagesAndLocales';
open_system(model);
Embedded Coder アプリを開く
[アプリ] タブで、[Embedded Coder] を選択します。
ロケール設定の確認
MATLAB® ソフトウェアのロケール設定がコンパイラと互換性があることを確認します。オペレーティング システムのドキュメンテーションまたは次の MATLAB のドキュメンテーションを参照してください。
コード生成テンプレート ファイルの構成
コードの生成時に Unicode 文字を含むコード生成テンプレート ファイルを使用するには、次の手順を実行します (Embedded Coder が必要)。それ以外の場合は次の節に進みます。
1. [コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。
2. [コード生成]、[テンプレート] ペインに移動します。モデルはコード生成テンプレート ファイル MixedLanguagesAndLocales.cgt
を使用するように構成されています。このファイルは生成されたコード ファイルの最上部にコメントを追加します。コード ジェネレーターが .cgt
ファイルにエスケープ シーケンスの置換を適用するようにする場合は、次を指定して置換を有効にします。
<encodingIn = "encoding-name">
3. ファイル MixedLanguagesAndLocales.cgt
を開きます。
edit MixedLanguagesAndLocales.cgt
4. 文字セット エンコード UTF-8
のエスケープ シーケンスの置換を有効にしているコード行を検出します。
<encodingIn = "UTF-8">
5. ファイル MixedLanguagesAndLocales.cgt
を閉じます。
コード カスタマイズ ファイルの構成
コードの生成時に Unicode 文字を含むファイル カスタマイズ テンプレートを使用するには、次の手順を実行します (Embedded Coder が必要)。それ以外の場合は次の節に進みます。
TLC コードを使用して、生成コード ファイルのカスタマイズを指定できます。TLC ファイルはユーザーの既定のエンコードのみをサポートします。移植可能な国際カスタム生成コードを作成するには、7 ビット ASCII 文字セットを使用します。
1. [コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。
2. [コード生成]、[テンプレート] ペインに移動します。モデルはコード カスタマイズ ファイル example_file_process.tlc
を使用するように設定されています。このファイルは、コード ジェネレーターがコード ファイルを書き込む直前に生成コードをカスタマイズします。たとえば、C のソース ファイル、対応するインクルード ファイル、#define
ステートメントおよび #include
ステートメントを追加します。
3. ファイル example_file_process.tlc
を開きます。
edit example_file_process.tlc
4. コードを生成する前に、コードの次の行がコメント解除されていることを確認します。
assign ERTCustomFileTest = TLC_TRUE
5. ファイル example_file_process.tlc
を閉じます。
C コードとレポートの生成
C コードおよびコード生成レポートを生成します。
evalc('slbuild(model)');
生成コードのレビュー
コード生成レポートを使用して、生成コードを確認します。MATLAB の現在の文字セット エンコードではない文字については、コード ジェネレーターはエスケープ シーケンス置換を使用して、コード生成レポートの中で正しく文字をレンダリングします。
1. モデル MixedLanguagesAndLocales
のコード生成レポートが開いていない場合は、コマンド ウィンドウで次を入力します。
coder.report.open(model);
2. MixedLanguagesAndLocales.c
および MixedLanguagesAndLocales.h
の生成コードを確認します。モデル要素の名前が、ローカル言語に置換された名前としてコード コメントに現れます。
3. トレーサビリティ レポートを開きます。このレポートでは、現在のエンコードで表現できない文字が名前に含まれている場合でも、トレーサビリティ情報が維持されます。モデル要素の名前は、ローカル言語に置換された名前としてレポートに現れます。
4. 下にスクロールして、最初のチャート (State 'Selection' <S2>:23
) のコードの場所のリンクをクリックします。レポートの表示が変化し、対応するコードが MixedLanguagesAndLocales.c
内に表示されます。
5. コード コメント内の <S2>:23
リンクをクリックします。モデル ウィンドウの新しいタブにチャートが表示されます。
6. モデル ウィンドウでチャートを右クリックします。コンテキスト メニューから [C/C++ コード]、[C/C++ コードに移動] を選択します。レポートの表示が変化し、そのチャートのコードの定数セクションが名前付きで表示されます。
7. コード生成レポート、モデル アドバイザー、モデルを閉じます。コマンド ウィンドウで以下のように入力します。
coder.report.close(); bdclose(model);
C++ コードの生成
C++ コードおよびコード生成レポートを生成します。
1. モデルを開きます。
open_system(model);
2. C コードの生成時に作成された slprj\ert\_sharedutils
フォルダーを削除します。
rmdir('slprj/ert/_sharedutils','s')
3. モデル コンフィギュレーション パラメーター [言語] を C++
に設定します。既定では、このパラメーター設定はモデル コンフィギュレーション パラメーター [コード インターフェイスのパッケージ化] の設定を C++ class
に変更します。または、コマンド ウィンドウで以下のように入力します。
set_param(model,'TargetLang','C++');
4. C++ コードおよびコード生成レポートを生成します。
evalc('slbuild(model)');
5. 地域と言語の設定とローカライズのサポートを参照するには、生成されたコードを確認します。「生成コードのレビュー」を確認します。
6. コード生成レポートとモデルを閉じます。コマンド ウィンドウで以下のように入力します。