ロケールの切り替え方の原理
以下のレジストリキーで、文言を切り替えられるようにします。
[HKEY_CURRENT_USER\Software\AMA_Soft\Asr\Main001\Settings]
"NLS"=".ja-JP"
ここを
"NLS"=".en"
にすると英語版のロケールモジュールを参照に行きます。
ロケール文字列には言語指定と地域指定があります。
「.en」(言語指定)じゃなくて、地域指定もいるよ!と言うことであれば、「.en-US」のように地域名も入れてください。
例えば「.en-US」と登録する場合などは、以下の説明を「Msg.en-US.txt」のように置き換えて考えてください。
ロケールを切り替えた場合に参照に行くファイル
メッセージファイル
各種エラー用のメッセージファイルで、インストールフォルダーの下のLang下に格納されています。
上記のロケール切り替えを行うと、「Msg.ja-JP.txt」ではなく「Msg.en.txt」を参照するようになります。
※メッセージを出すタイミングでファイルを参照するので、ファイルが無くても本体は起動します。
各種の定義ファイル
主にメニューやテンプレートファイルです。
これは、ロケール無関係で読み込みますので、英語版のパッチを当てる際に全て上書きすることになります。
ユーザーディレクトリに上書きするファイル(メニューやコマンド定義ファイル)、インストールフォルダーで上書きするファイル(テンプレート)があります。
フレーム型アプリケーション(本体)
リソースDLLを参照に行きます。
アプリケーション配下のLangディレクトリを参照し、「アプリケーション名+ロケール名称+.dll」と言う名称になります。
初期状態ではAsr.exeと同じディレクトリのLangの下の、Asr.ja-JP.dllを参照に行きます。
例)ロケール文字列が".en"である場合
「インストールフォルダー\Lang\Asr.en.dll」を参照します。
※ロケール指定のDLLが見つからない場合、標準添付のAsr.ja-JP.DLLを参照に行きます。
フレーム型アプリケーション(各種ビューア/検索/一括リネーム)
リソースDLLを参照に行きます。
Ver.3.5.0.0から、各種リソースDLLを参照しに行きます。
アプリケーション配下のロケールディレクトリを参照し、「アプリケーション名+.dll」と言う名称になります。
例)ロケール文字列が".en"で、Txv.exeの場合
「インストールフォルダー\command\Viewer\.en\Txv\Txv.dll」を参照します。
※ロケール指定のDLLが見つからない場合、「.ja-JP」配下のDLLを参照に行きます。
ダイアログアプリケーション
Ver.3.5.0.0から、".ja-JP"以外の場合は、各種ダイアログが表示文言ファイルを参照しに行きます。
ダイアログ型の外部コマンドのexe配下のロケールフォルダー配下のローカライズテキストを参照し、テキストファイルが無ければ、翻訳前の日本語のファイルを自動生成します。
例えば、ファイル圧縮(ArcPack.exe)の場合
「インストールフォルダー\command\Default\.en\ArcPack\100」を参照します。
※ファイル名はダイアログの識別のためのIDです。