Effector 6.3 developer manual

XML reference 6.3

Effector Studio 6.3 summary

Effector Studio 6.3 manual

Effector 6.2 developer manual

XML reference 6.0

Effector Studio 3.2 summary

Effector Studio 3.2 manual

Multilanguage

In the system every element appearing on the screen can be configured from the database as well, so the source of every appearing text can be the static value given in the definition files or it can be made dynamic by fixing a link to it only in the definition files.

As we mentioned in the section about the database structure, the FSYS_LabellLookup contains the language dependent labels. Its columns are the following:

  • TableName: Key field identifying the grid
  • FieldName: Key field identifying the field name
  • Lang: The two-letter identifier of the language, for example HU, EN, RU, DE…
  • Label: The language dependent label
  • Deleted: Deleted/Active field.

Usage

The values of the TableName and the FieldName columns together make up the primary key that determines the value of a label. Instead of entering a static value in the label, we can refer to this key pair directly from the definition files: the key pair needs to be defined in the [#TableName.FieldName#] format.

<Caption>[#TableName.FieldName#]</Caption>

The system looks for the required label in the FSYS_LabelLookup table using the language specified by the logged in user and the paired key. With this method, even the non-parameterizable elements - like the default buttons and system error messages (not including the error messages of the rules) - can also be localized, but in this case, we have to refer the value of the TableName as $SYSTEM$ and the value of FieldName as the name of the given control. If there is no setting for the given system element in the table, the default Hungarian language text will appear on the surface.

A type of dictionary-based translation is also available, which can mostly be used for simple elements appearing on cards, in a grid or in a ComboBox. In this case the $PHRASE$ value needs to be given in the TableName column and the ovw_FYSY_Phrase view can be used.

For example, if a ComboBox with yes and no values needs to be displayed in different languages, the following query is used:

select ll.LookupListID, ISNULL(v.Value, ll.LookupValue) AS LookupValue
FROM fsys_lookuplist ll
left join ovw_FSYS_Phrase v on v.[Key] = ll.LookupValue AND v.Lang = `EN`
where ll.groupnum = 5 

The language can be referenced in the rules and other places with the value [##Session.Language##].

The needed DBPatch files are the following:

  -    20130711\_CREATE_ovw_FSYS_Phrase.sql
  -    20130712\_MultiLanguage_changes.sql
  -    20130730\_MultiLanguage_data.sql

The list of available languages can be given in the Connection{0}.xml file, further information about this can be found in the Database connection chapter.

      <Languages>
          <Language code="en-US">English</Language>
          <Language code="hu-HU">Hungarian</Language>
      </Languages>

NOTE! The language elements (not the configurable elements but the texts of the program) appearing on the Effector UI are not coming from the FSYS LabelLookup table but from the JSON file belonging to the language. The location of the JSON files is in the core/i18n directory.

  • Last update: 2 weeks 6 days ago
  • Effector