部分値マップを使用して静的プロパティをローカライズできます。
次の手順では、正規表現で部分値マップを使用して静的プロパティをローカライズする方法について説明します。
値マップを使用して静的プロパティをローカライズするには
マスター MOF ファイル (Mastervm.mof) を作成します。
次のコード例を使用して、マスター MOF ファイル (Mastervm.mof) を作成できます。
[Locale(0x409)] class Group1 { [key] string ID; [DisplayName("Numbers"), ValueMap{0,1,2,3}:amended, Values{"Zero", "One", "Two", "Three"}:amended] Uint32 Numbers; };MOF ファイルの言語に依存しないバージョンと言語固有のバージョンを作成します。
コマンド プロンプトで次のコマンドを入力して、MOF ファイルの言語に依存しないバージョンと言語固有のバージョンを作成します。
mofcomp -MOF:LnVm.mof -MFL:LsVm.mfl -Amendment:MS_409 MasterVm.mofMOF コンパイラは、言語固有および言語に依存しない MOF ファイル LnVm.mof と LsVm.mfl を生成します。 Numbers プロパティの American English 値は、American English 名前空間の .mfl ファイルに配置されます。
次のコード例は、LsVm.mfl ファイルの内容を示しています。
#pragma namespace("\\\\.\\root\\default") instance of __namespace{ name="ms_409";}; #pragma namespace("\\\\.\\root\\default\\ms_409") [AMENDMENT, LOCALE(0x409)] class Group1 { [ValueMap{0, 1, 2, 3} : Amended, Values{"Zero", "One", "Two", "Three"} : Amended] Uint32 Numbers; };2 つの MOF ファイルをコンパイルし、CIM リポジトリにクラス情報を格納します。
コマンド プロンプトで次のコマンドを入力して、2 つの MOF ファイルをコンパイルします。
Mofcomp LnVm.mof Mofcomp LsVm.mfl他のロケール用に MFL ファイルをローカライズします。
次のコード例は、フランス語の名前空間の MFL ファイルの内容を示しています。
#pragma namespace("\\\\.\\root\\default") instance of __namespace{ name="ms_40C";}; #pragma namespace("\\\\.\\root\\default\\ms_40C") [AMENDMENT, LOCALE(0x40C)] class Group1 { [key] string ID; [ValueMap{0, 1, 2, 3} : Amended, Values{"Zero", "Un", "Deux", "Trois"} : Amended] Uint32 Numbers; };
結果として、Numbers プロパティの表示名と値の両方が、ログオンしているユーザーのロケールによって異なります。 ユーザーが指定されていないロケールを指定した場合、既定の修飾子データは英語 (ms_409) 名前空間から取得されます。
この設計の意味は、各文字列値が、ローカライズできない参照識別子として使用されることです。 このスキームを定義するときは、プロバイダーが入力する値がロケールに依存しないようにする必要があります。
手記
WMI では現在、修飾子によって定義された文字列への値のマッピングに対する実行時のサポートは提供されていません。 推奨される構文の解釈は、アプリケーションの責任です。