複数言語アプリケーションの問題
複数言語環境で使用するフィルターやコマンド・ハンドラーを構築する場合は、他のVisual LANSAアプリケーションとまったく同じ手順を実行します。
複数言語Visual LANSAアプリケーションとフレームワーク・ベースのアプリケーションの設計で唯一違うのは複数言語フレームワーク・デザインの詳細の入力です。
この入力処理は、ほとんどの場合フレームワーク、アプリケーション、ビジネス・オブジェクト、コマンドおよび製品情報の詳細に使用するキャプションを含んでいます。
フレームワークの詳細に複数言語の詳細を指定するのはいたって簡単です。言語コードENG(英語)を使用して設計されたフレームワークがあると仮定します。このフレームワークの詳細を言語コードFRA(フランス語)に変えたいとします。
以下を実行します。
1. | フレームワークのUF_DESGN(またはそれに相当する)エントリー・ポイントを呼び出します。指定された言語コードが翻訳したい言語(例、フランス語ならFRA)になっていることを確認してください。 |
2. | さまざまなフレームワーク、アプリケーション、ビジネス・オブジェクトおよびコマンド・プロパティのダイアログを表示し、ただ単に表示されたキャプションを翻訳したキャプションで上書きするだけです(最初はこの作業を一部のキャプションだけに対して行い、翻訳作業を終了する前に正しく表示されるか(ステップ3参照)確認します)。 |
3. | フレームワークを閉じます。詳細の変更が保存されます。これで言語コードENGでフレームワークを実行すると英語で詳細が表示され、言語コードFRAでフレームワークを実行するとフランス語で詳細が表示されます。 |
翻訳された文字列の処理に関して、技術的に理解しなくてはならない点が2点あります。
1. | フレームワーク定義ファイルvf_sy001_System.xml(またはそれに相当するもの)に翻訳したすべての言語の文字列が保存されます。このファイルの中を見ると、XMLに似た以下のサンプルがあります(この例はEXITコマンドの定義です)。 <MEMBER TYPE="COMMAND" CLASS="VF_FP009" ID="COMMAND_1" > <PROPERTY NAME="UBITMAPNAME" VALUE="VF_BM013"/> <PROPERTY NAME="UCAPTION" LANG="ENG" VALUE="Exit"/> <PROPERTY NAME="UICONNAME" VALUE="VF_IC035"/> <PROPERTY NAME="USEQUENCE" TYPE="N" VALUE="2"/> </MEMBER>
以下はキャプション・プロパティの定義です。 <PROPERTY NAME="UCAPTION" LANG="ENG" VALUE="Exit"/> 前述の方法で(例えばフランス語やイタリア語に)翻訳すると、以下のXMLファイルとして表示されます。 <PROPERTY NAME="UCAPTION" LANG="ENG" VALUE="Exit"/> <PROPERTY NAME="UCAPTION" LANG="FRA" VALUE="Sorter"/> <PROPERTY NAME="UCAPTION" LANG="ITL" VALUE="Uscire"/>
|
2. | フレームワーク定義ファイルvf_sy001_System.xmlの言語に依存するプロパティが処理されるとき、その位置を捜すロジックは以下のようになります。 · 現在の言語のプロパティを捜す · 現在の言語が見つからず、かつ英語以外の場合は、英語を捜す · 現在の言語が見つからず、かつ英語の場合、"NAT"(その国の言語)を捜す |