Skip to main content
Version: 8.3

Localize UI via the Translation section

Level: beginner

You can localize out-of-the-box or custom Creatio elements, for example, sections and lookups, into languages available in the Language lookup. The translation is performed in the Translations section of the System Designer.

The records in the Translation section represent a list of strings requiring translation. You can enter translations directly in the list, without opening new pages.

Strings from non-customizable UI that are mostly located on the "Advanced settings" page are called core localization. Core strings are not available in the Translation section. Core resources are stored in the form of Microsoft Visual Resources (.resources files) and JSON files along with Creatio executable files on the application server. You can localize the .resources files using the ResKit utility. Download.

You can also localize Freedom UI elements in the Freedom UI Designer. Learn more: Localize a Freedom UI element.

Enter translations

Translate elements using the following columns:

  • Key: a system string name that shows the context of the string. This is a non-editable column. 
  • English (United States) - Default: the default language in Creatio is English.
  • You can add a separate set of columns for each additional language. Use the ViewSelect fields to display command to set up the displayed languages in the translation section. Usually, adding the target translation columns is enough.
  • Verified: use this column for translation review if you are going to collaborate with your colleagues in this section. The checkbox will be automatically cleared for new translation strings and strings where source has changed since the translation verification.
  • Modified on: out-of-the-box Creatio column that shows the date and time when the current record was last modified.

If the untranslated text is short and fully displayed in the Translations section string, translate it right in the editable list. More complex texts are easier to translate in the translation string edit window (Fig. 1).

Fig. 1 Translation string edit window
Fig. 1 Translation string edit window

The Translations section displays no records out of the box. Use the Update translations button to populate the section with localizable records. Creatio displays the last update date next to the button. If you customized Creatio before, we recommend clicking the button once more to ensure localizable strings are up to date.

The Translations section can include all localizable strings from Creatio configuration, including both values visible and not visible to end users, for example, names of columns or business process elements.

If you want the section to be updated automatically, ask the system administrator to disable the SkipActualizeTranslationsonPageLoad feature. Learn more: Learn more: Implement a custom additional feature (developer documentation). However, this will make the section load more slowly. Regardless of the feature state, manually edited values, i.e., those marked using "isChanged=true," are preserved and not overwritten during any update process, including those started manually.

Translate the UI and system elements in Creatio

  1. Use the standard filters to select records for translation.
  2. Click the string to modify, then click the btn_edit.png button to switch to edit mode.
  3. Translate the text and save the changes.
  4. Click the Next button to display next sting in the edit window and the Back button to display the previous string in the list.
  5. When the translation is complete, close the translation edit window and click the Apply translations button. The newly translated strings will be displayed in Creatio next time a user with the corresponding language selected in their profile logs in.
note

The Translation section is designed for localization of limited number of records. To translate the whole system to a new language, we recommend exporting translation strings and using the ResKit utility.

Display untranslated strings

To display untranslated strings, use the "Untranslated" filter and specify the target translation language. For example, you specified Spanish in the "Untranslated" filter. The list will display strings that have a name or description of an item in French in the "French (France) - default" column, and the "English (United States)" column will not be populated or will have the same value as "French (France) - default" column .

Update the list of translations

To work with an up-to-date list of untranslated strings, update the translation list. To do this, click Update translation list. This action starts searching for new untranslated strings. We recommend updating the list every time you start translating.

Important

Creatio helps you keep the Translation section up-to-date by deleting outdated translation records automatically during translation update process.

Search translation strings using filters

The Translation section has a set of out-of-the-box filters that you can use to search for specific translation strings. Since the Key column contains information about the string context, you can filter strings by this column to select only strings that are used in a specific part of the system: page, Classic UI detail, mini page, etc.

note

Learn more about the translation string key structure and meaning in a separate article: Determine translation string context by the "Key" column .

To filter the strings, first determine the schemas that implement the functions that you need to localize. To do this, use the Configuration tab of the Advanced settings window. Alternatively, you can access the required function, for example, open the page that you need to localize, and check its schema name in the browser address bar. For example, when the Contacts section is open, the following URL in the address bar looks like this: http://creatioapp.com/0/Shell/#Section/Contacts_ListPage. The name of the Contacts section schema is "Contacts_ListPage."

note

When searching schema names for Classic UI in the Configuration section, be sure to check if the search results contain schema names with "V2" suffix. If search results contain schema names both with and without suffix (for example, "ContactSection" and "ContactSectionV2"), make sure that you translate strings for the schema with the "V2" suffix.

note

Strings whose keys contain "Configuration," followed by the schema name and the word "Caption" (for example, "Configuration:SchemaName:Caption") contain schema titles (displayed in the Configuration section) and do not require translation if you need to translate only strings visible to non-adminstrator users.

Filter configuration resources

Configuration resources include list column and page field names, tab captions, field group names, etc. For example:

  • To translate the column names in the Contacts section and the corresponding field names on the contact page, apply the following filter by the Key column: "Configuration%Contact%Column%."
  • To translate the section page of the Contacts section, apply the following filter by the Key column: "Configuration%Contacts_ListPage%."
  • To translate the contact mini page, apply the following filter by the Key column: "Configuration%Contacts_MiniPage%."
  • To translate contact section record page, apply the following filter by the Key column: "Configuration%Contact%Contacts_FormPage%." A section record page can have significant number of translation strings if separate pages are used for different types of records.
  • To translate Classic UI detail list and record page, apply the following filter condition: "Configuration:Contact%Detail%." In the list of filtered records, locate the name of the required detail schema. Then, apply a new filtering condition with the name of the needed detail schema, such as "Configuration%ContactCareer%" (for strings of the Job experience detail).
  • If a section contains built-in reports, apply the following filter condition to select their translation strings: "Configuration%Contact%Report%."

Additionally, to select strings used in the contact synchronization functions, use the following filter: "Configuration:Contact%SyncSettings%." Use the "Configuration:%NotificationProvider%" filter to localize notifications.

Important

Translation string text may contain variables represented by numbers in braces, such as 0. Make sure that translation includes all variables from its source text.

Filter localizable values (localized lookup records)

To localize lookup values for a specific section, first determine which lookups are used in the section. To do this, filter translation strings by the Key column, using the following filter: "Data:Lookup.Name%." The resulting string list will contain names of all registered lookup schemas. You can also use the folders in the Lookups section of the system designer to check which lookups are associated with which section or function. Use lookup schema names to filter records from the needed lookups. For example, the "Data:Job%" filter condition will return all records from the Job titles lookup.

The Contacts section, for instance, uses the following lookups:

  • Contact types – ContactType.
  • Contact roles – ContactDecisionRole.
  • Salutations – ContactSalutationType.
  • Contact genders – Gender.
  • Job titles – Job.
  • Departments – Department.

Maximize translation efficiency using static folders

Use static folders to avoid creating complex filters. You can manually add specific strings for translation (for example, all lookups used in specific section) and then work only with the trans strings in the folder.

To create a static folder, in the Filter menu, select Show folders (Fig. 1).

Fig. 1 Enabling folder tree
Fig. 1 Enabling folder tree

Click New folder and select Static (Fig. 2).

Fig. 2 Adding a static folder
Fig. 2 Adding a static folder

Enter the name of the new folder and click OK.

Apply a filter to select required strings, then add filtered strings to the folder. Apply next filter and add filtered strings to the folder (Fig. 3).

Fig. 3 Adding records to the static folder
Fig. 3 Adding records to the static folder

This way you can create and save a list of strings used in a specific section or other system function and later use a single folder to access them all.

Validate translations

You can validate translations to verify that translations uploaded in the Translations section are applied at runtime correctly. This functionality compares values in the section with the actual runtime values to ensure consistency and accuracy across Creatio.

The validation displays the complete differences between the Translations section and the runtime. Therefore, if records are modified in the Translations section without running the Apply action, those changes will appear in the validation results. We recommend applying translations first and waiting until Creatio runs the validation after that to avoid an overwhelming number of discrepancies and confirm that all UI elements and data display the expected values.

To initiate the validation, click ActionsValidate translations. You can monitor its progress through the process log. Once the validation is complete, you will receive a system notification via the notification panel.

If inconsistencies are found, click the notification to open a detailed results page. This page displays records from the Translations section that were not applied. The key details provided include the following:

  • Key: the ID of the record from the Translations section.
  • Culture: the culture (language code) associated with translation.
  • Expected value: the translation value as defined in the Translations section.
  • Actual value: the translation value currently applied at runtime.
  • Static content value: the value used in the static content of the application (for example, field or expanded lists titles). This is only populated for translations included in the page resources.

You can search for records by key or translation value and filter by culture, which simplifies identifying specific discrepancies. Same data is also available in the Translation validation results lookup.

Important

The page and lookup always show the results of the most recent validation and do not store historical data from previous consistency checks.

When inconsistencies are identified, follow these steps to eliminate the differences between the Translations section and the runtime:

  1. Review errors.

    1. Check the Error field in the Translations section for the keys indicated in the validation results.
    2. Resolve any errors before proceeding further.
  2. Apply corrections.

    1. If the discrepancy is between the actual value and the expected value, run the "Apply translations" business process with the force apply parameter for the affected language.
    2. If the discrepancy is between the expected value and the static content value, compile the configuration to re-generate the static content and update the translation values on Creatio pages. Learn more: Creatio IDE.

If these steps do not help, contact Creatio support.

Apply translations

Once you are done translating, you can apply translations live. To do this:

  1. Click Apply translation in the top left. This opens a window.
  2. Select the Skip translation validation after they are applied to speed up the application of translations (optional). This is especially useful when applying only a small number of updates where manual review is sufficient and full validation would be unnecessarily time-consuming.
  3. Select the Apply translations for the specified language checkbox and specify the language to apply translations only to that language. This is useful if you want to apply translations faster or do not want to apply some languages because translations are not verified.
  4. Select the Force apply all translations checkbox to force apply translations even if the value of the "Changed" column is "false." This is useful if you want to make data between runtime and translation sections consistent.
  5. Click Apply.

As a result, Creatio will apply translations in the background. You will receive a notification once all translations are applied.

Identify errors with applying translations

After completing the translation and clicking the Apply translations button, some UI elements may remain untranslated because of errors in the process of applying translations, for example, translation value is too large to store it with the current length of the column.

note

If a translation resource has been deleted, the corresponding translation strings will be deleted as well when the translations are applied. This does not result in a translation application error.

If an error occurs when applying translations from a string, Creatio records the error text in the Error message column in the Translation section list (Fig. 1). To display the Error message column in the list of translation strings, add the Error message column to the list view via the Select fields to display command of the View menu.

Fig. 1Error message column in the section list
Fig. 1Error message column in the section list

Use the Translation apply errors folder (Fig. 2) to quickly view all strings with error messages. To open the Translation apply errors folder, click the Show folders option in the Filter menu of the Translation section.

Fig. 2 Folder with translation apply errors
Fig. 2 Folder with translation apply errors

You can create additional folders using a filter by the Error message column to view specific translation errors.

If the Error message column is empty for a translation string, then it has been properly applied and should be displayed in the UI.


See also

Import UI translations from Excel

Determine translation string context by the "Key" column

Localize a Freedom UI element