5.その他の言語への翻訳・移植の方法 

以上の取組みから、国際化対応とは、英語などの国際的に用いられている言語に翻訳することではなく、実際のユーザー(地方の現場担当者を想定)が使えるように、それぞれの地域の言語に容易に翻訳できることである、という考え方に到達します。これらの経験を通じて、言語に依存する部分(メニューや各種コントロールなどのユーザー・インターフェース、ヘルプ・ファイル、エラー・メッセージ等)の整理が進み、新たな言語への翻訳作業がより容易に行えるようになってきました。

Ver.2.05をベースとして翻訳・移植を行う場合、以下のような手順となります。

1.リソース・ファイルの翻訳

リソース・ファイルの中には、様々のダイアログのデザインに関する情報が入っています。ボタンの名称などには日本語等のローカル言語が多く含まれるので、これを翻訳しなければなりません。異なる言語に持っていくと、まずここでエラーが発生します。そこで、日本語から出発する場合には、日本語のシステムにおいて、まずこのリソース・ファイルをテキスト・ファイルとして開き、日本語の部分をすべて仮のコードに翻訳します。現在ではインドネシア語版があり、これはアルファベットのみなので、これから出発するのが楽でしょう。

次に各国の開発環境の上で、ボタンを始め各種のコントロールについて、サイズや位置を調整します。これは、ボタン名称など、使用する言語によって実際に表示される文字列の長さが変るからです。インドネシア語は長いので、大概の言語は、より小さくすることで解決すると思います。注意しなければならないのは、コンボボックスの初期表示メニューのように、リソース・ファイルの中で16進コードで漢字文字列が表現されている部分で、エディターで作業していて見落しやすい部分です。

リソース・ファイルの最初の方にある、言語の指定やフォントの指定の部分については、開発環境によっては、メニューで変更しても反映されない場合がある(開発環境のバグ)ので、テキスト表示したリソース・ファイルで一応確認しておいた方が良いでしょう。

2.漢字ヘッダー・ファイルの翻訳

kj_sjis.hに、プログラム中で使用される文字列が #define 文の集合体として集約されています。従って、これを目的言語に翻訳したものを作成し、これをincludeするように変更すれば、基本的にはソースコード中の言語依存部分の翻訳作業は完了します。

3.ERR_MSG.txt の翻訳

エラーメッセージは、ソースコード中にはなく、このファイルの中に記述されており、各種プログラムが起動した時点で読込まれます。そこで、これを翻訳すれば、異なる言語でエラーメッセージを表示することができます。

4.ヘルプ・ファイルの翻訳

ヘルプファイルは、全てテキスト形式(*.txt)です。これを翻訳すれば、ヘルプが、目的言語で表示されるようになります。

5.Autotex.set の翻訳

テクスチャ自動貼付けに用いるこのファイルの中にも日本語があります。sim.exeが起動後に読込まれるファイルなので翻訳しておきます。

6.外部関数のダイアログの翻訳

sim.exeからユーザー定義によるパラメトリック部品を作成する際のダイアログ部分にも、日本語が含まれています。ソースコードは別なので、同様に翻訳します。

7.ライブラリのヘッダーファイルの中にある日本語部分を翻訳します。

dbms.h

8.観データベースの翻訳

3種類のデータベースについても、上記と同様にリソース・ファイルを翻訳します。

起動後に読込まれるものとして、.cls ファイル(プルダウン・メニューを定義)、及びcom.txt ファイルがあります。

9.サンプル・データの翻訳

LSS-G,LSS-S形式のデータのうち、別のファイルを引用しているもので、引用しているファイル名に日本語が用いられている場合、他の言語のシステム上でうまく開かない場合があります。障害があれば、適宜アルファベットのファイル名称等に置換えます。対応する部分の対応が保たれるように注意して下さい。

10.その他

ハングル化の作業は、開発環境が操作できるプログラマ、日本語版景観シミュレータの操作を一通り理解している者、及び数名の翻訳担当者(電算の知識は必ずしも必要でないが、出現する専門用語は理解できる必要がある)、デバッグ等の経験を豊富にもつベテラン等をうまく組み合せ、Ver.2.03の時は8名で3日間、Ver.2.05では、4名で3日間程度で翻訳・移植することができました。

しかし、一通りの翻訳・移植作業を行い、ビルドを行ったシステムを起動した時に、正常に動作しない場合、あとどれだけかかるか先が読めなくなります。コンパイラのヴァージョンの違い(ハングルでは英語版がベースだが、日本では日本語化された開発環境が普及している)なども影響しています。現在までに遭遇した、かなり困難な問題は、以下のようなものでした。

座標変換等の実数計算の結果が異なる

→ダミーのステップを加えて回避

GUIで修正を行ったリソースが、ソースをテキストとして打出して見ると、正しく修正されていない(リソース・エディタのバグ)

→テキスト・エディタでソースを直接編集

リンカの設定を同じにしても、リンク・エラーが発生する

→一部のライブラリを、デバッグ・モードのままとすることで漸くリンクが通る

このように、単に翻訳・移植とは言っても、ありえない筈の事まで疑ってかからねば、通らない事もあるのは自然言語の場合と同様です。

?