You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »


This page presents information about Localization and Units. Localization allows the creation of translated texts so you can run your application in multiple languages. Units allows the the dynamic change of metric system when running the client displays. 

On this page:


Understanding Localization

Localization in applications enables operators using remote displays to interact with the interface in their selected language. This feature allows for defining translations in the configuration settings and applying the chosen language in the client through the @Client.Localization property or the SetLocalization method. Localization enhances the accessibility and usability of applications for a global audience, ensuring that cultural and language differences do not hinder the user experience.

Definition

Localization is the process of adapting the application interface to different languages, making it accessible to users from various cultural backgrounds.

Purpose

The purpose of Localization is to tailor the user experience to diverse global audiences by providing an interface in multiple languages.

Function

Localization functions by offering a table of translations for different interface elements, enabling the application to display text in the selected language.

Operation

Users implement Localization by defining translations in the application's configuration settings. They then apply these translations to the client interface using the @Client.Localization property or the SetLocalization method.

Application

Localization applies to scenarios where users of the application belong to different cultural backgrounds. It is particularly relevant in global applications where remote operators need to access the interface in their local language.

Usage

To use Localization, users navigate to the configuration settings and input translations for various interface elements. They then set the desired language for the client, ensuring that the application displays information in the appropriate language for each user.


Configuring Localization

You can localize the text in your application in as many languages as needed. To do this, create a dictionary for each language. 

To localize the user interface text, be sure to select the Localizable option (Dynamics Configuration window, TextOutput options) for each display component that you need to localize.

To create a localization dictionary:

  • Go to Displays → Localization.

  • Click New.

  • The Create New Localization Dictionary window will display.

  • Enter a name for the dictionary.

  • Click OK.

  • Click Load Strings to populate the table with all the controls that have strings that are set to Localizable. In the TranslatedText column, enter the text in the dictionary language.

  • Create controls in a display or write a script to use the object called Client.Dictionary to configure the dictionary or dictionary options for the user. When the dictionary changes, the language changes throughout the application.

The alarm messages can also be included in the localization if the related check-box is set.On Solution → Settings, you can define the default Culture Information that the application is using. The runtime property Client.CultureInfo allows you to change it during runtime. Some display controls may get the Culture Info directly from the Operating System. In this situation, the correct procedure is for both the Operating System settings and the solution settings to have the application's target culture. 

Find Detailed Docs Here: Themes


Language Switching Example

This particular example is a special case of language switching because it involves language change linked with reference tags.

  • Reference Tags function in the same way as the Tag being referenced, regardless of receiving different objects, with different descriptions and different enumeration sets. To ensure that the conversion will occur correctly in the FullDescription and ValueAsString properties, you must ensure that the Reference Tag is pointing to the desired object. You can use the syntax below in DisplayOpening in CodeBehind: @Tag.<ReferenceTagName>. Link = @Tag.<TagName>. GetName();

  • In texts marked as Locatable in Symbols that are appearing in Dictionaries > Location, you should make sure that the texts are being passed for translation.

To add to the Dictionary the properties of all tags that can be associated with the reference tag that is being used in the display, follow the practical example.


If the reference tag is not automatically loaded in the Dictionary when clicking on the Locatable option and is not being translated from one language to another on the screen, follow the steps below:

  • Add the method Client.Locale(Tag.xxx) on the Expression field of your TextBlock, to translate it to the current Client.Localization:


  • On the En_US dictionary, create one row for each TextBox you want to translate, containing the original text(in Spanish) and the Translated Text(in English).


This procedure should work for every reference tag you have in your solution.


Translate the column title of the DataGridWindow component

To translate the column title of the DataGridWindow component, it's noticed that this field does not have the locatable option and does not recognize Client.Locale() as a function.

To translate column titles in a DataGrid, a script must be created.

The method below iterates for each column in the data grid and applies the @Client.Locale function to them. After the loop, the DataGrid is updated.

public void gridcolumntitle(){
        TDataGridWindow grid=this.CurrentDisplay.GetDataGrid("grid") as TDataGridWindow;
        foreach (GridColumn col in grid.Columns)
      {
       col.Title=@Client.Locale(col.Title);
       }
       grid.DoRefresh();
    }

To avoid overloading the client and maintain efficiency, the gridcolumntitle() method should only be called if the @Client.Localization has changed:


In this section:

The root page @parent could not be found in space v10.

  • No labels