Friday, December 21, 2007

Turkish dotted and dotless I
The Turkish alphabet, which is a variant of the Latin alphabet, includes two distinct versions of the letter I, one dotted and the other dotless.
I ı is the letter which describes the close back unrounded vowel sound (/ɯ/). Neither the upper nor lower case version has a dot.
İ i describes the variant close front unrounded vowel sound (/i/). Both the upper and lower case versions have a dot.
Examples:
In contrast, the Turkish alphabet uses the letter "j" (pronounced /ʒ/) the same way as in other Latin scripts, with the tittle only on the lower case character: J j.

İstanbul /isˈtanbul/ (starts with an i sound, not an ı).
Diyarbakır /dijaɾˈbakɯɾ/ (the first and last vowels are spelled and pronounced differently) Consequence for ligatures
In Unicode U+0131 is a lower case letter dotless i (ı). U+0130 (İ) is capital i with dot. ISO-8859-9 has them at positions 0xDD and 0xFD respectively. In normal typography, when lower case i's is combined with other diacritics, the dot is generally removed before the diacritic is added; however, Unicode still lists the equivalent combining sequences as including the dotted i, since logically it is the normal dotted i character that is being modified.
Software handling Unicode uppercasing and lowercasing will generally change ı to I and İ to i but unless it is specifically set up for Turkish it will change I to i and i to I rather than I to ı and i to İ. This means that the effect of uppercasing followed by lowercasing can be different from the effect of just lowercasing for texts that contain these characters.
In the Microsoft Windows SDK, beginning with Windows Vista, several relevant functions have a NORM_LINGUISTIC_CASING flag, to indicate that for Turkish and Azerbaijani locales, I should map to ı and i to İ.
In the LaTeX typesetting language the dotless i can be written with the backslash-i command: i.
Dotless i (and dotted capital I) is also famous for its problematic handling under Turkish locales in several software, including Oracle DBMS, Java (this bug in Java will be fixed in the upcoming Java 6.0 release), and Unixware 7, where implicit capitalization of keywords, variables, tables names are not foreseen by the application developers. When applications written for such software acts strangely, it is better to switch locale to C or US English via System-wide or application-specific settings. Bugs should be logged in such situations, and if necessary patches submitted by developers to the software involved.

No comments: