Localize your font: Turkish i

Tutorial
by Rainer Erich Scheichelbauer
en fr zh

2 September 2015 Published on 27 August 2012

Turkish and a couple of related languages distinguish between an İ/i with dot and an I/ı without a dot. If you plan to have small caps and ligatures in your font, you should take a few minutes to read this.

There’s a town in Turkey called Diyarbakır, which is great because it contains both an undotted ı and a dotted i.

You see, in other languages, this differentiation is not made. And if we were to set this word in caps or small caps, the i would lose its dot and turn to I, and thus would be indistinguishable from the dotless I/ı. Not good.

So, we need to teach our font Turkish. If the language is set to a language that differentiates between I/ı and İ/i, it must preserve the i dot:

Necessary glyphs

There’s a simple solution in Glyphs. First, make sure you have idotless and dotaccentcomb in your font. If you don’t, just make two copies of your i. Rename one of them to idotless and delete the dot. Rename the other to dotaccentcomb and delete the stem. That is, if you don’t already have a dotaccentcomb. Reset the anchors (Cmd-Opt-U) for both.

Now create the glyphs Idotaccent and especially idotaccent. Glyphs will automatically put the latter together from idotless and dotaccentcomb components, thus producing a copy of i.

If Glyphs finds idotaccent in your font, it can automatically create the respective entries in your locl feature. These will substitute i by idotaccent for Turkish TRK, Kazakh KAZ, Tatar TAT, Crimean Tatar CRT and Azeri AZE. All these languages differentiate between idotless and idotaccent, between I and Idotaccent.

Now, simply create idotaccent.sc and idotless.sc for the small caps and you’re set. The i is replaced by idotaccent first if the language is set to any of the ones listed above. So when the small cap feature is executed, there’s no more i, only idotaccent and idotless, and these have separate .sc forms.

All you need to do now is click the Update button (the one with the circled arrow) in the Features tab of your Font Info. Phew!

Ligatures with i

A similar problem applies to ligatures that contain an i, the usual suspects being fi and f_f_i. If you have such ligatures in your font and the i loses its dot in these cases, that’s not good for Turkish. So we have to make sure that these ligatures are prevented. There are three possible ways to deal with that:

  1. Either do nothing and simply rely on your magical idotaccent, as described above. The i will be replaced by idotaccent, and since the ligature will only kick in if the sequence f-i is found, you’re all set.
  2. Or adapt your design, so your fi and ffi ligatures do not lose their i dot. In this particular case, you may want to adapt your feature code from sub f i by fi; to sub f [i idotaccent] by fi;.
  3. Or, introduce separate f_idotaccent and f_f_idotaccent ligatures. That’d be really cool.

That’s it, your font learned five new languages! Export your font and put it to the test with your favorite Crimean Tatar poem. Or, if your Crimean Tatar has become too rusty for that, simply take the word ‘Diyarbakır’.


Update 2013-11-13: removed an obsolete passage about manually editing your language system entries. Glyphs now handles it automagically.
Update 2014-12-11: updated to new notation for dotless glyphs.
Update 2014-09-02: updated to new glyph names in Glyphs 2.
Update 2022-08-12: minor formatting and rephrasing.