0.はじめに
C#言語(以下、C#)とVisual C# 2008(以下、VC#)を用いると、驚くほど簡単に多言語対応アプリケーションを作成することができます。
しかし、多言語対応アプリケーションを作るための文書はネット上に散見していて、まとまった情報を手に入れることが難しいのが現状です。
そこで本稿では、オープンソースソフトウェアの日本語化を通じて筆者が知った多言語化に関するTipsをまとめてみようと思います。
1.イントロダクション
.NET以前の多言語化
.NET環境が登場する前は、多言語化を行うために利用するツールと言えば、もっぱらgettextを用いたものでした。gettextを使うと、プログラマは、標準的な関数名にgettext独特のsuffixを付け加えればよく、gettextはそれ以上の手間を要求しないことが大きなアドバンテージとなっていました。
多言語化については別途用意した言語ファイルを用いて行うことができたため、翻訳作業にプログラマ以外の人間が参加できるという点もgettextの大きな特徴で、これも手伝い、オープンソースソフトウェアを中心に広く普及しました。
これはプログラム中に多言語対応したメッセージを埋め込まなくてよいという、画期的な方法でした。こうして、プログラム自体はひとつで、言語ファイルを入れ替えることによって多言語に対応するというスタイルが定着したのです。
.NET環境下における多言語化
さて、本稿で取り上げるC#とVC#による多言語化の手法も、基本的にはこの考え方と同じです。
アプリケーションの内部には多言語化されたメッセージを埋め込まず、リソースという形で多言語のメッセージを用意しておきます。後は、このリソースをコンパイルし、プログラムと共に配布すれば、プログラムが実行時に自動的に必要な言語のファイルを読み込んでくれるという仕組みです。
しかも、.NET環境下においては、海外で作成された(多言語化を考慮していない)アプリケーションであっても、gettextのようにすべての表示関数にsuffixを付け足すような手間なく、多言語化対応が可能になっています。
これは、特にWindowsフォームアプリケーションや、既定のコンポーネントを利用したプログラムにおいて顕著で、多言語化の敷居は、従来よりぐっと下がったと言えます。
2.対象読者と開発環境
対象読者として、C#によるプログラミング経験があり、アプリケーションの多言語化について興味を持っている人を想定しています。また開発環境として、前述のとおりVisual C# Express Edition 2008 SP1を用います。