次の方法で共有


静的プロパティのローカライズ

静的プロパティは、部分値マップを使用してローカライズできます。

次の手順では、正規表現で部分値マップを使用して静的プロパティをローカライズする方法について説明します。

値マップを使用して静的プロパティをローカライズするには

  1. マスター 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;
    };
    
  2. MOF ファイルの言語非依存と言語固有のバージョンを作成します。

    コマンド プロンプトで次のコマンドを入力して、MOF ファイルの言語非依存と言語固有のバージョンを作成します。

    mofcomp -MOF:LnVm.mof -MFL:LsVm.mfl -Amendment:MS_409 MasterVm.mof
    

    MOF コンパイラは、言語固有および言語非依存の MOF ファイルである LnVm.mof と LsVm.mfl を生成します。 Numbers プロパティのアメリカ英語値は、アメリカ英語名前空間の .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;
    };
    
  3. 2 つの MOF ファイルをコンパイルし、クラス情報を CIM リポジトリに格納します。

    コマンド プロンプトで次のコマンドを入力して、2 つの MOF ファイルをコンパイルします。

    Mofcomp LnVm.mof 
    Mofcomp LsVm.mfl
    
  4. 他のロケール用に 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 では現在、修飾子によって定義された文字列への値のマッピングに対する実行時のサポートは提供されていません。 推奨される構文を解釈するのは、アプリケーションの責任です。