国際化対応にする

(対象:Delphi5 Enterprise) まず、Borlandのサイトから英語文字列ユニットファイルをダウンロードします。これは VCL 内部で使われている日本語メッセージを英語、フランス語、ドイツ語にしたファイルです。ダウンロードしたら適当なフォルダに展開してください。

次に、Delphi 5 を起動し、 [ ツール] - [環境オプション] を選び、"トランスレーションツール" ページを開き、"リポジトリ" のファイル名に先ほどダウンロードした "D5TR.RPS" と言うファイルを指定します。

国際化対応したいプロジェクトを開き、[ ファイル ] - [ 新規作成 ] で "リソースDLLウィザード" を選びます。

リソース DLL ウィザードが起動するのでどんどん進み、言語選択のステップで対応したい言語を選びます。たとえば英語(U.S.)をチェックします。

どんどん進み、完了をクリックするとコンパイルが走ります。

最後にプロジェクトグループの保存ダイアログが出るので Dpr と同じフォルダに保存します。

トランスレーションマネージャが起動します。英語と日本語のグループがあり、英語の各ユニットに対して翻訳を行っていきます。VCL標準のメッセージは英語文字列ユニットファイルを正しくインストールしておけば英語になっています。

配布の際、EXE ファイルとリソースDLL (英語なら拡張子が ENU) を一緒に配布します。EXE起動時にロケールをチェックしそれにあった DLL を自動で読み込みます。つまり同じ EXE でも日本語環境なら日本語で、英語環境なら英語で表示されるようになるわけです。この辺はヘルプ、マニュアルにも書かれているので確認してください。


その他注意点

リソース文字列

 日本語定数などは const で定義せずに resourcestring に記述してください。そうすれば統合翻訳環境で検出されるようになります。

■リソース文字列の例
implementation

{$R *.DFM}

resourcestring

  MSG1 = '%sに書き込めません。';
  MSG2 = '終了しますか?';

procedure TForm1.Button1Click(Sender: TObject);
begin
  Showmessage(Format(MSG1,[FileName]));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Showmessage(MSG2);
end;

end.

Format関数

 Format関数を使った箇所はすべて同じ順番に %d や %s が出現するように翻訳しなければいけません。ですのであまり複雑な Format 関数を記述するのは避けましょう。

後から画面修正

 各国語リソースをつくってしまった後にオリジナルの画面を修正しても他の言語のバージョンには反映されません。(dfmが別なので) 後から画面修正が無いように気を付けて下さい。