Issue
I see a class called DictionaryRecordNameTranslator in the ACA .NET API. What is the usage of it? This would be great if I don't need to translate the property sets, etc., but just add a translator runtime.
Solution
The name "Translator" is probably misleading and adding a confusion here. Unfortunately this class is not meant for translation.
DictionaryRecordnameTranslator class (or AecNameTranslator in OMF) does not actually translate anything; i.e., it doesn’t know how to translate English to German, for example. All it really does is provide a named object a way to identify where its global and local name are located. Some objects store their global name in the ‘Name’ field and local name in the ‘AlternateName’ field, while others are reversed. We needed some way for UI elements to say ‘give me your local name’, rather than always assuming the ‘Name’ is what they wanted. This means that the object still needs to provide translated strings! Simply put, an AecNameTranslator does not provide a translation, it just says where the translation is located.
Here is some additional note from OMF reference guide:
"An AecNameTranslator is a class that contains a mapping of global names to localized names. It is intended to be used by programmatic objects that are normally defined by users, such as the classifications used in Space standards, to define a global name that is used by the creator of the programmatic object while displaying a translated name to the user.
Derived classes can be used to define where the global name comes from. For example, AecNameTranslatorDictRecordName defines a displayName function that takes an AecDbDictRecord parameter, gets the dictionary name from it, and returns the corresponding localized name. Alternatively, AecNameTranslatorDictRecordName returns the localized name corresponding to the dictionary record's alternate name."
This class was added in ACA 2009.