及川です。
一昨日と昨日、本社からの MUI 担当者と打ち合わせを行いました。MUI は Multilingual User Interface もしくは Multilanguage User Interface の略で、日本語では多言語版などと呼ばれています。
MUI とは
MUI は Windows 2000 から導入された技術で、企業ユーザー向けライセンス購入者や OEM 版としてリリースされています。たとえば、Windows ベースのアプライアンスなどを OEM パートナー様より提供させていただいていますが、それらは MUI を利用して日本語の表示ができるようにしているものです。
現在リリースしている Windows XP および Windows Server 2003 用の MUI では、英語版の Windows を基本とし、その上に各言語用の追加モジュールを導入することで、UI 言語(UI Language)として他言語を利用することができます。たとえば、日本語と韓国語を追加し、ユーザーごとに UI 言語を選択することで、同一マシンであっても、A さんは英語、B さんは韓国語、C さんは日本語というように、ログインするユーザーによって UI 言語を使い分けることができます。
MUI では、実行ファイル(EXE)や DLL などに含まれているリソース(Resource String)をリソース DLL という形で分離し、UI 言語の設定にあわせて、適切なリソースをロードするように変更しています。英語版の実行ファイルや DLL には手を加えていませんが、MUI 用のリソース DLL にはリソースだけが含まれています。
Windows XP および Windows Server 2003 までの MUI については次の資料をご覧ください。
2 番目に紹介している資料は Windows XP Embedded という組み込み用 OS における MUI の解説です。実は、組み込み用の OS も MUI を用いて日本語の表示を行うようにしています。この資料は Windows XP Embedded 向けの解説ではありますが、一般の Windows?MUI の理解にも役立つような汎用的な内容となっています。
Windows Vista における MUI
Windows XP および Windows Server?2003 では、MUI はあくまでも一部の製品やお客様に利用されているにすぎませんでしたが、Windows Vista ではすべての製品が MUI となります。実は、この説明は多少誤解を呼ぶ可能性があります。正確には、Windows のローカライズモデルが技術的に MUI を利用するようになり、英語版も1つのローカライズ版としての位置付けになるというのが正しい説明になります。つまり、Windows XP/Windows Server 2003 では、MUI は英語版に追加する別パッケージという位置付けであり、実行ファイルや DLL には英語版のリソースが含まれていました。一方、Windows Vista では実行ファイルや DLL にはリソースが含まれていません。英語版も含めて、すべての言語はリソース DLL からリソースをロードします。これが MUI がすべての言語のインフラとして利用されるようになったという意味です。Windows XP や Windows Server 2003 でも、「シングルバイナリ」という説明をすることがありましたが、厳密にはリソース部分が異なっていましたので、真の「シングルバイナリ」にはなっていませんでした。Windows Vista では、英語版を含むすべてローカライズ版は「ベース OS + 言語パック」という形態で実現されることになり、真の「シングルバイナリ」環境が実現されます。
もう少し詳しく見てみましょう。Windows Vista でも実行ファイルや DLL の多くは %windir%\system32 にあります。ただし、ここにある実行ファイルや DLL にはリソースがありません。リソースだけを含んだリソース DLL は UI 言語ごとに用意されたフォルダに置かれています。日本語版の場合、%windir%\system32\ja-JP というフォルダを見つけることができると思います。ここに置かれた <実行ファイル名または DLL 名>.mui というファイルがリソース DLL になります。たとえば、%windir%\system32\shell32.dll に対応するリソース DLL は日本語用が %windir%\system32\ja-JP\shell32.dll.mui になり、英語用が %windir%\system32\en-US\shell32.dll.mui になります。
以上が技術的な説明となります。製品として、異なる言語パックを追加することができる(つまり、MUI を利用できる)のは、Windows Vista Enterprise と Ultimate の2つになります。
MUI の利点
MUI には多国籍企業で、同一のバージョンでありながら、複数の言語の UI をサポートできるという利点があります。これが主に、Windows XP や Windows Server 2003 でWindows Vista における MUI の利点になります。ただし、Windows XP/Windows Server 2003 では英語版の上にのみ MUI を構築可能でしたが、Windows Vista ではベースとなる言語を選ばなくなるため、ユーザーの方にはより一層使いやすくなります。
さらに、Windows Vista では、英語版や日本語版などの言語による違いは原理的にはリソース DLL の違いだけになります。したがって、更新プログラムなどでリソースを含まないものは、1つのパッケージで全言語に対応することが可能になります。ここ数年で、Windows の更新プログラムやサービスパックでは言語によるリリースの遅延というものは、まったく無い(セキュリティ更新プログラムなど)か、あってもごくわずかになっていましたが、Windows Vista ではさらにそれが改善されることが期待できます。
マイクロソフト
及川卓也