There are two types of translation available in GeneXus: static translation and runtime translation.
Static translation is achieved at specification time. The resulting application cannot change the language at runtime. Static translation is the best performing translation option, as no runtime code is added. To activate Static translation set the Translation type property (at Environment level) to Static, and select the language you want to translate into in the Translate to language property.
Static translation is available for all generators (many generators only have this value for the Translate environment property). Static translation provides the best performing code as no runtime overhead is added: translation is performed at specification time. Having your application in different languages requires different executables (one for each language). If you plan to have your application translated into different languages using Static translation, you should set up a new Environment for every new language you want to translate into.
Notice that if your languages references different ISO code pages, you will need to change the windows regional settings configuration for each language generation process.
For instance, if you have languages such as Japanese, Chinese, Thai and so on; the static translation process needs to correctly configure the associated Language for non-Unicode programs (Windows configuration). If this is problem for your environment switch to Run-time translation.
Run-time translation is available for .NET, Java and .NET Framework generators. Run-time translation is the most versatile solution with a little performance overhead (compared to Static translation). When using Run-time translation you can:
- Manage a single set of executables running in different languages;
- Allow the end-user to select the desired application language among the list of available languages;
- Add new languages to your application without changing the executable code.
Remember to set the SetLanguage function to change the language. The orientation is determined automatically according to the application language, if you base your styles on a Design System Object and select the value None in the Base CSS property.
In addition, if you use Web Theme object, Design Systems (with the value different from None in the Base CSS property), or use different Themes or Design Systems depending on the orientation, you must program the SetLanguage and SetTheme functions.
Since GeneXus 18 Upgrade 3 the orientation is automatically determined by the SetLanguage function when a Design System has the Base CSS property set to None.
Real-time translation of RTL languages