About Internationalizing Notifications

You can internationalize notifications sent from apps.

This topic includes the following topics:

This page discusses:

String Resource Files

The naming convention for the base resource file is always in English: emx<APPLICATION_NAME>StringResource.properties, where <APPLICATION_NAME> is the original name of the app. For example, the string resource file for Engineering BOM Management is emxEngineeringCentralStringResource.properties. The string resource file for pages that can be available for any app is emxFrameworkStringResource.properties.

For Collaboration and Approvals, these files comprise the string resources:

  • emxFrameworkStringResource.properties
  • emxCommonStringResource.properties
  • emxTeamCentralStringResource.properties

The naming convention for internationalized versions of the string resource files is emx<APPLICATION_NAME>StringResource_<LANGUAGE>.properties, where <LANGUAGE> is the standard abbreviation for the language, such as fr for French or de for German, in lowercase.

All string resource files must be located in Apps/Framework/VERSION/UserInterface.

The string resource properties files must be encoded in ASCII for all languages, both double-byte and Latin-based languages. To edit text for languages that include non-ASCII characters, work with the native file that is included in the properties directory (such as emxFrameworkStringResource_jaNative.properties) and then convert the modified file to ASCII. These native files are encoded using the native format for the language. For the English files, you only need to make sure you save the properties file as ASCII.

Resource String Naming

String names in the resource files must follow a precise format.

Each string in the resource file should be formatted as follows to prevent name collisions:

emxAPPLICATION_NAME.PAGE.KEY=STRING_VALUE

For example, for a page named emxLibraryi18nTest.jsp in IP Classification, the strings for a greeting and farewell would be entered as follows in the string resource file for English:

emxLibraryCentral.Libraryi18nTest.greeting=Hello
emxLibraryCentral.Libraryi18nTest.farewell=Goodbye

About User Default Language for Notifications

Users can choose a default language for notifications.

See Web App Preferences for details. Collaboration and Approvals uses these properties in emxSystem.properties to build the list of languages a user can select from in their Preferences:

emxFramework.IconMailLanguagePreference=English German French Italian Japanese
emxFramework.IconMailLanguageLocaleEnglish=en
emxFramework.IconMailLanguageLocaleGerman=de
emxFramework.IconMailLanguageLocaleFrench=fr
emxFramework.IconMailLanguageLocaleItalian=it
emxFramework.IconMailLanguageLocaleJapanese=ja

When a user chooses a language preference, the system creates an administrative property called IconMailLanguagePreference and sets the value for the property equal to the corresponding IconMailLanguageLocal property. For example, if a person chooses French for the preferred language, the system creates an IconMailLanguagePreference property with the value fr.

The emxFrameworkStringResource.properties file (for English) uses these properties to define the text in the drop-down list:

emxFramework.IconMailLanguageEnglish=English
emxFramework.IconMailLanguageGerman=German
emxFramework.IconMailLanguageFrench=French
emxFramework.IconMailLanguageItalian=Italian
emxFramework.IconMailLanguageJapanese=Japanese

The other versions of the string resource files have an equivalent set of properties with values appropriate for each language.

When an app sends a system notification, it looks for an IconMailLanguagePreference property attached to each recipient's Person administrative object. If it finds one, it sends the notification in the language that corresponds to the property's value (it en fr, and so on.). If it does not find a property (for example, the person has not selected a preference), it sends the notification in the languages defined in the emxFramework.NotificationLanguages property.

When sending a notification to more than one recipient, the app sends one notification for every unique language. For example, suppose there are three recipients: two have Italian as the preferred language and one has French. The app will send one Italian notification to the two Italian speakers and one French notification to the French speaker. The French speaker will only see his name in the recipient fields and the Italian speakers will only see their two names in the recipient fields.

The user-specific language preference works when the recipients are persons and not roles or groups. Currently, the apps do not send system notifications directly to roles or groups. RFQ Management sends some notifications to roles but first obtains a list of all persons in the company with the role and then fills in the recipient fields with those persons.

If you want to remove a language from the list available to the user, see Internationalizing App-Generated Notifications.