Allegro Framework offers a fully-fledged multilingual environment not only from the perspective of the user interface, i.e. translation of the work area and individual applications (static texts), but also from the perspective of form data, i.e. at the data level (dynamic texts). This is ensured by a unique component that enables the insertion of multilingual data directly into the individual records maintained by the applications (e.g. product name and description in different languages). The base language of Allegro Framework is English, which is always used if a translation in the requested language is not available.
Data Level
The number of languages in which Allegro Framework can be operated at the data level (i.e. languages in which data can be entered into the system) is not limited and is conditioned only by checking the Use for data checkbox on the language definition form. As many languages as are so marked are then offered in the multilingual input field. In applications, the default language of the data level is set according to the user's preferences and may vary client to client. In each client, the marked set of languages intended for use at the data level can also be different.

Language designation for use at the data level
In the database, the multilingual field is stored in an associated table with the _LANG suffix, where all language mutations of the input field are stored. For the parent record itself, either an English expression is inserted into the relevant data column, if this is entered, or an expression according to the default language of the data level, which is mandatory in applications and is therefore always available.
When requesting to extract data in a specific language, the corresponding translation is first searched for in the associated table and if it is not found, it is retrieved from the corresponding data column of the record itself (where, as mentioned above, either the translation according to the default language or the English translation is stored).
User Interface
There are currently four supported user interface languages - Czech, English, Flemish and French, and into these languages is Allegro Framework also fully translated. Extension to other languages is possible on request.
The language of the user interface is derived from the language of the data level (according to user preferences) and if no match is found (e.g. the language of the data level is German), English translations are used.
If the specific text is not available in a given language, the English version shall be used. If this is not found either, the default translation specified by the programmer in the source code (or the translation code if the default translation is not available) is displayed, delimited by a wavy character (e.g. ~AccountingPeriod~).
If the translation is missing on the user's computer side in the JavaScript code, the default translation delimited by the equal sign is used (e.g. =Unsaved changes detected on some tabs.=).
Thanks to this marking, the user can easily detect missing translations and send a translation request.
Translation Module
For the translation of these static texts, a translation module has been developed that allows - among other things - the construction of a dictionary of basic terms and phrases. Thus, frequently used expressions do not need to be translated repeatedly, but the translation can be directed to this dictionary using a pointer.
The module also offers the creation of translation variants for capitalization (according to the rules for English headings - title case), for shortened versions (used e.g. in column headings limited by width) or for alternative translations in situations where the main translation does not suit (e.g. British vs. American English or specific terminology given by established corporate practices).
If capitalization or abbreviated versions are required and an explicit expression is not specified, the resulting text is generated automatically.
The translation module is in Allegro Framework accessible only on the basis of granted permissions. How to work with this module is not part of this manual.