[This is preliminary documentation and subject to change.]
Providers have three choices for supplying character strings in a requested language:
Regardless of how a string is supplied, a provider must tag the class or instance in which the string resides with the Locale qualifier. The Locale qualifier specifies the language of the string.
Classes, instances, and properties can be associated with a translation table, an instance of the __Lexicon class. When a suitable translation table exists, a provider can supply the information in the Translations property. The provider can rely on the client application to subsequently translate the information if necessary.
If a translation table is unavailable or property values cannot be predetermined and submitted by means of a Managed Object File (MOF) file, a provider must provide information directly in the requested locale, if possible. When a provider is loaded by CIMOM, CIMOM advises the provider of the locale in which it is expected to operate. A provider that does not support the requested locale then supplies information in whatever language it can and tags the associated class or instance with the Locale qualifier to indicate the locale with which it is working.
All error objects supplied by providers should contain text localized into the requested language. Providers can use the standard resource string table approach.
Dynamic property providers are typically hard-coded to retrieve values from certain data sources and are not aware of localization issues. For example, retrieving a string from a registry location simply results in whatever string was there. There may be no opportunity to "localize" it dynamically. However, the IWbemPropertyProvider interface does advise the provider of the required locale. Therefore, if the provider is intelligent enough to do the job, it should. Providers suppyling dynamic valuescan be required to provide values in the current locale if such values need to be localized.