Translation Example | Qt Installer Framework Manual

Qt Installer Framework Manual | Translation Example

# Translation Example

Translations illustrates how to use translations to localize the output of component scripts and component UI files into another language. It also shows how to select the license according to the system language.

To add a new language, you first need to create a translation source (TS) file for the package that contains all the translatable strings. Run the following command in the package's meta directory:

      lupdate installscript.qs page.ui -ts <language>.ts

Replace <language> with the two letter lowercase code for the language you want to translate to. After finishing translating you need to use lrelease on that TS file to generate the binary Qt messages (QM) file. Do not forget to include that in the package.xml as shown below. Run the following command in the package's meta directory:

      lrelase <language>.ts

      <?xml version="1.0" encoding="UTF-8"?>
      <Installer>
          <Name>Translations Example</Name>
          <Version>1.0.0</Version>
          <Title>Package Translations Example</Title>
          <Publisher>Qt Project</Publisher>
          <StartMenuDir>Qt Installer Framework Examples</StartMenuDir>
          <TargetDir>@HomeDir@/IfwExamples/translations</TargetDir>
      </Installer>

- The `<Default>` element is set to `true` to preselect the component in the installer.
- The `<Script>` element specifies the file name of the JavaScript file that is loaded to perform operations.
- The `<License>` element specifies the file name of the license file that is shown when this component is selected for installation.
- The `<Translations>` element specifies the file name of the QM file containing translations for this compontent's UI and script files.

      <?xml version="1.0" encoding="UTF-8"?>
      <Package>
          <DisplayName>The root component</DisplayName>
          <Description>This component contains a license and translations to German.</Description>
          <Version>0.5.0-1</Version>
          <ReleaseDate>2015-01-29</ReleaseDate>
          <Licenses>
              <License name="Beer Public License Agreement" file="license.txt" />
          </Licenses>
          <Default>true</Default>
          <Script>installscript.qs</Script>
          <UserInterfaces>
              <UserInterface>page.ui</UserInterface>
          </UserInterfaces>
          <Translations>
              <Translation>de.qm</Translation>
              <Translation>pl.qm</Translation>
          </Translations>
      </Package>

Files:

- translations/config/config.xml
- translations/packages/com.vendor.product/data/installcontent.txt
- translations/packages/com.vendor.product/meta/de.ts
- translations/packages/com.vendor.product/meta/installscript.qs
- translations/packages/com.vendor.product/meta/license.txt
- translations/packages/com.vendor.product/meta/license_de.txt
- translations/packages/com.vendor.product/meta/license_pl.txt
- translations/packages/com.vendor.product/meta/package.xml
- translations/packages/com.vendor.product/meta/page.ui
- translations/packages/com.vendor.product/meta/pl.ts
- translations/translations.pro