画面に表示する文字を、日本語、英語のどちらかを選択出来る仕様のAPを作成したいと考えております。選択方法は、起動直後に Language: 日本語 <> Englishの選択ウインドウを出すという様な感じです。
表示させる文字データの扱いについて悩んでいるのですが、リソースエディタで国籍ごとにストリングテーブルを用意しておく方法があるということは知りましたが、Windowsの国籍設定に依存して言語が切り替わるのでこの方法は使えません。
日本語、英語ごとに独自にストリングテーブルもどきのファイルを作り、言語選択後にそのファイルの内容を読み込むという方法がいいのかな〜と漠然に思いつきましたが、何かもっとスマートな方法がありましたらご教示願います。
スマートな方法かはわかりませんが
英語か日本語の表示のみの対応でよいのであれば
言語フラグを持たせて、配列にしてしまえばよいかと。
例
intLngFlg = 0 '言語フラグ
hoge_strErrMsg(1, 0) = "ファイルが見つかりません。"
hoge_strErrMsg(1, 1) = "File not Found"
なぁ〜んて案はさすがに安直過ぎるか、、。
いな様、早速のご回答ありがとうございます。
なるほど、その様な方法がありますね。
ただ、文字の内容をソースに含ませないで、コンパイル後も編集できる様にしたいところですね。配列に入れるにしても、テキストファイルに文字列を羅列して、起動時にその内容を読み込んで配列に入れる様にしたらいいですね。
そうですねぇ、
エラーメッセージやログメッセージなどの場合、
編集を可能にしたい、というのは拡張性を考えるとありそうですねぇ〜
というのであれば、メッセージなどのIDを用意して、
テキストファイルで外だしにした方が安全です。
また、フォーム上に配置されたラベル等の英語化については
そんなに変更は必要ない?(<思い込み)とおもうので、
ソース内部でやってしまっても良いように思います。
また帳票など、テンプレートとなるファイルを流用して
出力するなどの場合日本語と英語で分けて
あらかじめ元となるファイルを作っておき等・・・。
いな様、再度ご回答ありがとうございます。
いろいろ考えなおしてみて、後々の仕様変更の可能性を考えると、テキストファイルに文字列を書き出す方法ですと、ユーザーに対してアップデータとして実行ファイル以外に文字列ファイルを別に配布しなければならず、バージョンの管理がややこしくなくなりそうなので、やはりソースに文字列を入れてしまう方法でやってみようと思います。
いな様には折角ご教示いただいた案にケチをつけてる様な発言をしてしまい、大変失礼いたしました。
また、何かありましたらこの場でご質問させていただきたいと思いますので、その節はよろしくお願いいたします。
この度は誠にありがとうございました。