Локализация статических свойств
Статические свойства можно локализовать с помощью частичных сопоставлений значений.
В следующей процедуре описывается, как можно локализовать статические свойства с помощью частичных сопоставлений значений с регулярными выражениями.
Использование карт значений для локализации статических свойств
Создайте MOF-файл master (Mastervm.mof).
Следующий пример кода можно использовать для создания MOF-файла master (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.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; };
Скомпилируйте два MOF-файла и сохраните сведения о классах в репозитории CIM.
Введите следующую команду в командной строке, чтобы скомпилировать два 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 не обеспечивает поддержку времени выполнения для сопоставления значений со строками, определенными квалификаторами. За интерпретацию предлагаемого синтаксиса отвечает приложение.