ロケールの切り替え方の原理

 以下のレジストリキーで、文言を切り替えられるようにします。

[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です。