アークピットのホームページに戻る

WinAPIトピックのトップページに戻る

APIトピックの各章に移動する

ダウンロードのページに移動する
ダウンロードができ
ない場合の対処法
 

ページ移動

3-1-5. リソースと多言語化

最近はインターネットの普及で、ソフトウェアの国境が希薄になっています。日本でも英語版のソフトウェアを実行することはあたりまえになってきています。しかし日本では英語版でもなんとかなりますが、海外では日本語版のソフトウェアは使ってもらえないでしょう。しかし少し準備すれば、ソフトウェアを英語版に対応することは決して難しくありません。そうすれば、皆さんが作成したソフトウェアが、海外で広く使用されるかもしれません。

言語に依存する部分はリソースに集中

多言語化という観点からリソースをながめると、リソースの非常に重要な機能がもうひとつ見えてきます。それは、言語に依存する部分が、すべてリソースに集まっていると言うことです。「すべて」と言うのは少し言い過ぎかもしれません。しかしリソースで対応するようにコードを記述することで、すべてをリソースに集めることが可能です。

ソフトウェアで言語に依存する部分

下記に、ソフトウェアで言語に依存する部分をあげます。

  1. メニュー
  2. ダイアログボックス
  3. バージョンテーブル
  4. ビットマップ(文字を表記するときだけ)
  5. 個別のメッセージ
これらはすべてリソースで定義する(あるいはできる)機能です。メニューからビットマップまでは、ほとんどがリソースを使用し、使用法は限定されますから、あまり問題ありません。しかし最後の「個別のメッセージ」は非常に広範囲な場所で使用します。メッセージはあらゆるコードの部分で必要になります。それらすべてのメッセージを文字列テーブルで定義することで、言語に依存する内容をリソースに集中させることができます。

文字列テーブル

メッセージなどの文字列はコードに組み込むのが簡単なのですが、リソースで定義して利用時にロードすることも可能です。後者の方法は、コードでそれに対応しないといけませんし、リソースを参照しないと記述できないので、作成はやや面倒です。しかし苦労する分のメリットは十分にあります。まず実行するときだけメモリにロードするので、実行時のメモリ消費量を削減できます。しかしこのメリットは、ほんの少しだけです。よほど大量にメッセージがない限り、あまり有効ではありません。しかしここで検討している多言語への対応では、絶大な効果を表します。

ページ移動