Complex Scripts Overview (Windows Embedded CE 6.0)

1/6/2010

A complex script has at least one of the following attributes:

  • Allows bidirectional rendering.
  • Has contextual shaping.
  • Has combining characters.
  • Has specialized word–breaking and justification rules.
  • Filters out illegal character combinations.

Bidirectional rendering refers to the script's ability to handle text that reads both left–to–right and right–to–left. For example, in the bidirectional rendering of Arabic, the default reading direction for text is right–to–left, but for some numbers, it is left–to–right. Processing a complex script must account for the difference between the logical (keystroke) order and the visual order of the glyphs.

In addition, processing must properly deal with caret movement and hit testing. The mapping between screen position and a character index for, say, text selection or caret display requires knowledge of the layout algorithms.

Contextual shaping occurs when a script's characters change shape depending on the characters that surround them. This occurs in English cursive writing when a lowercase "l" changes shape depending on the character that precedes it such as an "a" (connects low to the "l") or an "o" (connects high). Arabic is a script that exhibits contextual shaping.

Combining characters (ligatures) are characters that join into one character when placed together. One example is the "ae" combination in English; it is sometimes represented by a single character. Arabic is a script that has many combining characters.

Specialized word break and justification refers to scripts that have complex rules for dividing words between lines or justifying text on a line. Thai is such a script.

Filtering out invalid character combinations occurs when a language does not allow certain character combinations. Thai is such a script.

See Also

Concepts

Complex Scripts Support in Windows Embedded CE

Other Resources

International Application Development
Uniscribe Application Development