本地化静态属性

可以使用部分值映射来本地化静态属性。

以下过程介绍如何通过将部分值映射与正则表达式配合使用来本地化静态属性。

使用值映射本地化静态属性

  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. 编译两个 MOF 文件,并将类信息存储在 CIM 存储库中。

    在命令提示符处键入以下命令来编译两个 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 当前不提供将值映射到限定符定义的字符串的运行时支持。 应用程序负责解释建议语法。