Translation TroubleshootingIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } This article will provide an overview of how translations work within the platform and how to troubleshoot issues that arise when translating in the ServiceNow platform. Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } All Releases Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Installation procedure Where to find the Internationalization Plugins All the plugins can be found by navigating to System Definition > Plugins and searching for i18n in the plugin name. The I18N: Internationalization Plugin (com.glide.i18n) This plugin provides the elements necessary for translating an instance, but it does not contain any pre-loaded translations. Those are covered by the additional components mentioned below. Note that instances can have all the required individual language plugins installed after the main com.glide.i18n has been installed. Individual Language Plugins (com.glide.i18n.*) These plugins provide data for individual languages and have the I18N: Internationalization plugin as a dependency. Translations are provided for the majority of base system elements, though, as with any change to an instance, evaluation and testing in a sub-prod is recommended to ensure all elements are translated. (More information is provided below.) Tables installed with I18n Language (sys_language)Translated Name / Field (sys_translated)Messages (sys_ui_message)Field Label (sys_documentation)Translated Text (sys_translated_text) Translating an Instance Choices (sys_choice table) Choice records can be found by navigating to System Localization > Choices. These records store all choices that appear in choice fields, or string fields with choices assigned to them. Below is an example of a translated choice. It is the Critical Priority choice on the task table. As you can see, there are four records with the same value, however, each one has a: Language field represented with 2 character abbreviations (as defined by the iso639-2 standard)Label field containing the translated text for that language An example of translations for the "Critical" choice on the Priority field on task (English, French, Japanese, and French (Canada) Translated Name / Field (sys_translated) Translated Name records can be found by navigating to System Localization > Translated Names / Fields. These records store translated values for text fields where the field type is translated_field. FieldHow usedTableThe table for which the translation is used. This field can be left blank is desired and is used as a translation in any table. ElementThe element to be translated. If left blank, the translation applies to any applicable field matching the Value on the table (or any table if the table field is also blank).LanguageThe two-character abbreviation for the language, as defined by the iso639-2 standard.ValueThe actual value contained in the record's field.Label (translate)The translated value of the field. Messages (sys_ui_message) Message records can be found by navigating to System Localization > Messages. These records contain translations for informational messages, confirmation messages, error messages, and other types of system messages. Unlike the other translation tables, messages are only used when a script uses a gs.getMessage call. FieldHow usedKeyThe text to be translated. The value used in the getMessage call is checked against this field.LanguageThe language for this particular translation. Unlike the other tables, this field is a choice field populated with the currently installed languages. MessageThe translated value returned by the gs.getMessage method. Field Label (sys_documentation) Field labels can be found by navigating to System Localization > Field Labels. These records contain translations for the text of table names along with the singular and plural labels for each field in the table. This also includes the "hint" text that pops up when hovering over a field name. FieldHow usedTableThe table for the translation.ElementThe element for the translation. This is usually the field on that table. LanguageThe two-character abbreviation for the language, as defined by the iso639-2 standard. LabelThe translated label for the item to be translated.PluralThe pluralized translated label for the item to be translated. HelpThe translation for the help text for the field. HintThe translation for the hint text for the field. Translated Text (sys_translated_text) Translated Text records can be found by navigating to System Localization > Translated Text. These records store translations for fields with the field type translated_text or translated_html. These translations can be record-specific, unlike the other types, which makes it useful for knowledge articles, problems, etc. Following is a breakdown: FieldHow usedDocumentAn internal identifier of the record to which this translation applies.Field NameThe field this translated text appears in, for example, Close notes. LanguageThe language to which the text is translated. Table Name The table to which this translation applies.ValueThe translated text that the user sees. The I18N Debugger Finding which elements are translated into which tables is not always easy. Fortunately, the I18N debugger tool can be enabled by navigating to System Localization > Enable I18N Debugging. After the debugger is enabled, a three or four-letter code appears next to each element to let you know where this translation is being done (or should be done if it is not yet translated). Following are the codes and the tables to which they correlate: TRF = Translated Names / FieldsMSG = MessagesGMLD = Field LabelsTRT = Translated TextCHC = Choices (Only in Eureka or higher) A portion of an Incident form with I18N Debugging Enabled Troubleshooting If a translation has been created and does not appear to be working correctly, here are a few areas to check: Spelling Are the Key fields used in the translation spelled correctly? Any difference between what is in the translation record and what is on the element to be translated causes the translation to fail. A similar issue can occur with hidden characters. This usually happens when text is pasted into the field from another source. To rule this situation out, try clearing the value and typing it back in manually. > Using the Wrong Translation Table Another possible issue is using the wrong table to handle a translation. If you are not sure if this is the situation, view the item to be translated using the I18N Debugger described earlier in this article. Plugin Logs Plugin logs can be found on a related list on the plugin record or at sys_plugin_log_list.do. If a translation seems incomplete after an installation, the logs may expose issues to look into. For example, look for log entries containing the word "skipping." This can happen if the instance already has a translation or if the translation was deleted from a previous install attempt. Exceptions Welcome Page Section (sys_home) records contain the user/password fields on an instance login page: An example Welcome Page Section from an Out of Box instance Welcome Page Section records have a language field that acts as a condition, preventing the content of the record from displaying when the user's session is not using the language in this field. The best way to translate these is to insert a record with the new language and then manually translate the new record. Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Documentation Language internationalization supportTranslation modesLocate translatable stringsTranslating text fieldsCMS translation