RPG

289. 国際言語対応の開発 (5)

ここまでの話でメッセージ・ファイルに日本語用と中国語用として
それぞれ別々に登録しておけば OVRMSGF コマンドによって
ひとつの DSPF を複数の異なる言語で表示できることがわかった。

それでは日本語環境で中国語のメッセージ・ファイルを表示すると
中国語が表示されるのだろうか ?
次は日本語環境で中国語のメッセージ・ファイルを表示した画面である。

ご覧のように日本語データ・ベースだけは正しく表示されているが
その他の表記は中国語ではなく意味をなさない単なる文字列である。

せっかくメッセージ・ファイルを中国語として CCSID:935 で登録したのに
効果を発揮していない。
i5/OS はメッセージ・ファイルの CCSID を無視して日本語 CCSID として
表示しているのでこのような文字化けを生じてしまうのである。
となればメッセージ・ファイルの CCSID も考慮に入れれば中国語は
正しく表示されるのではないだろうか ?
全くそのとおりである。

次は AutoWeb によって同じプログラムを実行した結果である。

ご覧のとおり中国語も日本語も正しく表示されている。
AutoWeb のインターフェース (HTML) の文字コードはユニコード (UTF-8) であるので
日本語と中国語を混在して表示することが可能であり、
他の国際言語とも同時表示が可能となっている。

それでは i5/OS もメッセージ・ファイルの CCSID を考慮して
中国語も表示すればよいではないか? ということになるが
これは IBM が手を抜いたわけでも技術力が劣っているわけでもない。
5250 エミュレータは ASCII 文字コードとして開発されているので
中国語と日本語を混在表示させることはできないのである。

IBM はメッセージ・ファイルの CCSID は検査だけはしているようで
ジョブの CCSID とメッセージ・ファイルの CCSID とが一致しない場合は
MSGID で定義された項目には「?」を表示して文字列は表示されない。

一方、AutoWebは UTF-8 なので複数国際言語の混在が可能である。
これを利用して AutoWeb ではメッセージ・ファイルだけによる
手軽な国際言語化の開発が可能となっている。

インターネット・サイトでは日本語と中国語が混在して表示されているのも
良く見かけるようになっており珍しいことではないが
それは文字コードがユニコードで作成されているからである。

i5/OS だけでの国際言語化はデータ・ベースを含む環境そのものを
二次言語も含めて用意しなければならないが
AutoWeb であれば日本語データ・ベースをそのまま利用して
インターフェースだけを国際言語化することができる。