Supporting Multiple National Languages
Applications sometimes need to expose objects with names that differ across
localized versions of the product. The names pose a problem for programming
languages that need to access these objects, because late binding will be sensitive
to the locale of the application. The
IDispatch interface provides a range of solutions that vary in cost of implementation
and quality of language support. All methods of the
IDispatch interface that are potentially sensitive to language are passed a locale ID
(LCID), which identifies the local language context.
The following are some of the approaches a class implementation may take:
- Accept any LCID and use the same member names in all locales. This is
acceptable if the exposed interface will typically be accessed only by very advanced
users. For example, the member names for OLE 2 interfaces will never be localized.
- Accept all LCIDs supported by all versions of the product. In this case, the
implementation of GetIDsOfNames would need to interpret the passed array of names based on the given LCID.
This is the most acceptable solution because it allows users to write code in
their natural language and run the code on any localized version of the
application.
- Simply return an error (DISP_E_UNKNOWNLCID) from GetIDsOfNames if the caller's LCID doesn't match the localized version of the class. This
would prevent your customers from being able to write late-bound code that runs
on machines with different localized implementations of the class.
- Recognize the particular version's localized names, as well as one language
that is recognized in all versions. For example, a French version might accept
French and English names, where English is the language supported in all
versions. Users who want to write code that runs in all countries would have to use
English.
However, to provide general language support, the application should check the
LCID before interpreting member names. Because
Invoke is passed an LCID, methods can properly interpret parameters whose meaning
varies by locale. The following sections provide examples and guidelines of how
to create multilingual applications.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database