MUI の初めに
MUI(Multilingual User Interface)とは?
MUI は Multilingual User Interface の略で、特に Windows 環境での多言語ユーザーインターフェイスを指します。簡単に言えば、Windows が提供する MUI という仕組みを利用することで、開発者や翻訳者はテキストなどのローカライズが非常に簡単にできるようになります。
MUI のすばらしさ
MUI の素晴らしいところは、リソースを含むファイルを適切に用意し、適切な場所に配置すれば、以下のようなごく普通のコードで多言語対応ができてしまう点です。
(エラー処理は省略しています)
#include <Windows.h>
#define IDS_APP_TITLE 103
#define MAX_LOADSTRING 100
int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR, int)
{
WCHAR szTitle[MAX_LOADSTRING];
LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
MessageBoxW(nullptr, szTitle, L"Hello, MUI!", MB_OK);
}
実際に行っていること
このコードが実行しているのは次の2つのステップだけです。
リソースを含むファイルへのハンドルを取得する
そのハンドルに対してリソースを取得する
言語の指定や言語の分岐などは一切行っていません。これらはすべて Windows が自動的に処理してくれます。
コードの補足をすると、リソースを含む実行ファイルのハンドル hInstance を使っていますが、LoadLibraryEx などで外部の EXE や DLL のハンドルを取得しても OK です。
またリソースの取得は LoadStringW を使っていますが、これも LoadBitmap など他のリソース取得系の API でも OK です。
いずれにせよ言いたいことは、シンプルなコードで多言語対応できるってことです。
まとめ
MUI を活用することで、開発者は言語設定に悩むことなく、簡単なコードで多言語対応のアプリケーションを作成することができます。Windows が提供するこの仕組みを使えば、国際化のハードルが大きく下がるので効率的に開発することができます。
ですが…???
次回に続く…