Localize the User Interface

Meridian PowerWeb supports localized user interface text through user-configurable XML Localization Interchange File Format (XLIFF) files. Because localization can apply to each customer's unique vault configuration, the customer is responsible for producing the XLIFF files. The files can contain localized text for these custom vault items:

  • Property names

  • Property page names

  • Command names

  • Navigation view names

To configure localized user interface text:

  1. Create one plain text file for each vault and language combination using this naming convention:

    <VaultDisplayName>-<LanguageCode>.xlf

    For example, the filename for a vault named MyVault and the French language would be MyVault-Fre.xlf.

    The format of the file must conform to the example below and these guidelines:

    • The source elements must contain the configuration item names in the language specified in the source-language attribute of the file element.

    • Each target element must contain the translation of the text specified in the source element within the same trans-unit element.

    • Do not change the id values of the group elements.

    • Change only the part(s) in the trans-unit elements (if any) that correspond to the item internal name.

    • Create additional trans-unit sections for each configuration item within the corresponding group (item type) element.

    • The file must provide translation strings for every supported configuration item. Missing translation strings will display nothing in the user interface.

  2. On the Meridian Enterprise web server, add a new String registry value named Translations to the following key:

    HKEY_LOCAL_MACHINE\Software\Cyco\AutoManager Meridian\CurrentVersion\WebLink\Published Locations
  3. Set the value to the path where you want to store the localized text (XLIFF) files.

  4. Place all of the localized text files in that location.

Below is a simple, commented example XLIFF file.

<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file source-language="en" target-language="ru">
    <header />
    <body>
      <!-- Custom command names -->
      <group id="AECommands">
        <!-- Command with internal name Command1 -->
        <trans-unit id="Command1.Cmd">
          <!-- Display name -->
          <source>Command 1</source>
          <target state="translated">Команда 1</target>
        </trans-unit>
	<trans-unit id="Sub-menu">
          <source>Main</source>
          <target state="translated">Главный</target>
        </trans-unit>        
      </group>
      <!-- Navigation view names -->
      <group id="NavigationViews">
        <trans-unit id="NavigationViews">
          <source>"AllToDoLists"</source>
          <target state="translated">Все Трудящиеся</target>
        </trans-unit>
      </group>
      <!-- Custom property page with internal name PageA -->
      <group id="PageA.AEPage">
        <trans-unit id="DisplayName">
          <source>Page A</source>
          <target state="translated">Страница A</target>
        </trans-unit>
        <!-- Panel with name Panel1 -->
        <trans-unit id="Panel1.Caption">
          <source>My Panel</source>
          <target state="translated">Моя панель</target>
        </trans-unit>
        <!-- Date field on panel Panel1 with label DateA -->
        <trans-unit id="Panel1.DateA.Label">
          <source>DateA</source>
          <target state="translated">Дата A</target>
        </trans-unit>
        <!-- String field on panel Panel1 with label StringA -->
        <trans-unit id="Panel1.StringA.Label">
          <source>StringA</source>
          <target state="translated">Строка A</target>
        </trans-unit>
        <!-- Panel named Panel1 with static text -->
        <trans-unit id="Panel1.stat.Text">
          <source>Static text only</source>
          <target state="translated">Просто текст по-русски!</target>
        </trans-unit>
        <!-- Panel named Panel1 with button Command1-->
        <trans-unit id="Panel1.Command1.Button">
          <source>Command1</source>
          <target state="translated">Команда 1</target>
        </trans-unit>
      </group>
      <!-- Property names -->
      <group id="Properties">
        <!-- Custom property named MyProperty in set named MyPropertySet -->
        <trans-unit id="MyPropertySet.MyProperty">
          <source>"My Property"</source>
          <target state="translated">Мои Свойства</target>
        </trans-unit>
      </group>
    </body>
  </file>
</xliff>

2021 R3