TouchGFX enables internationalized and localized applications.
TouchGFX does this by supporting a wide range of languages and characters and by understanding text layout mechanisms, such as writing direction and contextual shaping.
The languages supported are the languages of the Unicode basic multilingual plane with the restriction that only left-to-right or right-to-left writing systems are supported. This implies that languages such as Arabic, Chinese, English and many more are fully supported.
The encoding of characters is based on the Unicode standard and the basic multilingual plane of Unicode. In simplified form this means that characters with a Unicode code point below
65536 (0x10000) are supported.
TouchGFX supports left-to-right and right-to-left writing systems. There is not builtin support for top-to-bottom writing systems.
The handling of left-to-right and right-to-left writing inside TouchGFX applications respects mixing of the two. This is known as bidirectional script support.
The support for right-to-left scripts and bidirectional scripts is introduced in version 4.5.0 of TouchGFX.
Certain scripts will select a different form of one or more characters/glyphs depending on the context of the character. As an example the Arabic alphabet has different contextual forms for the letters in the alphabet, depending on the position of the letter inside the word. TouchGFX supports such contextual shaping of languages.
From TouchGFX version 4.8.0, the following languages are supported:
- Simple left-to-right languages using latin characters such as
- Bosnian, Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Serbian, Slovenian, Slovak, Spanish, Swedish, Turkish, Ukrainian.
- Simple left-to-right languages using special character sets such as:
- Chinese, Greek, Japanese, Russian.
- Thai (limited support: simple Thai text is supported, but for example several maitaikhu in a row are not stacked)
- Simple right-to-left languages using special character sets such as:
- Hebrew, Indonesian, Khazakh,
- Right-to-left languages with different ligatures for different forms (isolated, initial, middle, final):
- Arabic (Sequences of more than three characters are not recognised and converted to one ligature. These are: Akbar, Mohammad, Salam, Rasoul, Alayhe, Wasallam, Sallallahou Alayhe Wasallam, Jallajalalouhou and Rial Sign)
- Malay (ݢ "Keheh with dot above" only supported in isolated form)
The following languages are known to be unsupported because they rely on extensive use of ligatures and digraphs:
- Thai (simple Thai text is supported, but for example several maitaikhu in a row are not stacked)