Application Packaging Standard

Last updated 18-Mar-2019

Internationalization

It is possible to adapt a package to many languages as explained in the Internationalization and Localization section of the APS specification.

In this document:

Translation File

As specified in Internationalization and Localization, for each supported language, you need to create a separate po file. Follow these steps for it:

  1. In the APS Project Explorer panel, right click the Internationalization item, and then select Externalize Strings….

  2. In the Locale Selection dialog, select all languages you are going to support and click OK after that.

    ../../../../_images/i18n-locale-selection.png

This will create a po file for each selected language. The file will contain a translation entry for each translation string it finds in the package.

Translator

Once a po file is created for a language, an interpreter can open it to start interpreting translation strings of the package:

  1. In the APS Project Explorer panel, navigate either to Files/i18n or Internationalization and double click the po file to open it in the Entries Editor.

    ../../../../_images/i18n-translation-de.png
  2. Scan through the Entries to select an entry to translate.

  3. Once an entry is selected, in the msgStr field, enter translation of the text contained in the msgId field. If not sure about the translation, mark it as fuzzy.

  4. Repeat items 2 and 3 until all needed translation strings are interpreted.

  5. On the Header tab, edit the file header.

    ../../../../_images/i18n-translation-header.png
  6. Save the file.

  7. Optionally, preview the generated po file contents on the Source tab. A translation entry looks similar to the following:

    #: APP-META.xml:84
    # @generated
    #, fuzzy
    msgid "Cloud virtual private server"
    msgstr "Wolke virtueller privater Server"
    

Once the package is built, the json file will be created in the i18n folder from each po file. They are not presented in the project, because they are created inside the built app.zip package.