Skip to main content

Introduction

Multi-Language Support

Preparing an application to perform in multiple locales requires the CGI Studio license "Globalization" and in terms of Candera build settings to enable the CMake feature switch "CANDERA_GLOBALIZATION_ENABLED".

Preparing an application to perform in a specific locale requires the following workflow:

  • Application Development
    • Create Master Language Pack Source (either directly in SceneComposer or by importing from an external tool)
    • Will be automatically added as binary to the asset library on asset export from SceneComposer
  • Production
    • Remove Master Language Pack Source from asset library
    • Create Language Pack Source for each language
    • Append Language Pack for each language to the asset library

Language Pack Source Format

In general, a Language Pack Source file

  • has the file extension '.lps'
  • is a proprietary file format: Zipped XML files in a predefined structure
  • contains texts associated to a specific culture

Master Language Pack Source

The Master Language Pack Source file is a design-time artifact not to be kept at production time. It defines all available translatable texts in an artificial Master Language (locale 00).

Extracting the content of a Master Language Pack Source .lps file shows following content:

  • Cultures.xml
      <lps:Culture Name="Master Language" Locale="00" TextDirection="LeftToRight" />
    
  • LanguagePack_00.xml: Lists all unique Text-IDs with related default text representation, a translation hint and a maximum text length for the Locale="00"
  • Partitions.xml
  • Preamble.xml

Cultures

SceneComposer cultures are defined in the "Cultures" panel accesible either via File->Solution Options menu:

drawing-4-1677034464.png

either via toolbar:

drawing-4-1677034485.png

The default culture for a solution is defined in the 'General Configuration' panel as explained here.

Multi Language Pack Source

A Multi Language Pack Source provides translations for all translatable texts as defined in the Master Language Pack Source. All supported languages can be combined into a single .lps file, or be separated in single .lps files per language.

The culture definitions in language pack source files should syntactically match the culture definitions in SceneComposer to make the default culture setting of a solution work at application runtime. Example matching to the SceneComposer culture definitions above:

  <lps:Culture Name="German" Locale="de_DE" TextDirection="LeftToRight" />
  <lps:Culture Name="French" Locale="fr_FR" TextDirection="LeftToRight" />  

In case the default language is not set or not present in the asset, the first culture available in the asset will be used as fallback.

Appending Language Packs to Assets

Language Pack Source files are compiled into a binary format and appended to asset libraries

More Details

More details on the globalization workflow are provided here: