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:

either via toolbar:

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
- by means of SceneComposer Translator Plugin after asset export (Note: Enable "Plugin Notification" to make this work!)
- by means of Managing Language Packs using AssetTool to remove the master language pack from and to append multi language packs to an asset.
More Details
More details on the globalization workflow are provided here: