Typophile

The turkish i story

Göran Söderström

Could anyone tell me if this is a correct way to handle the turkish i problem.

I put the locl feature on top so it overrides everything.

I font know the language really, but tried to make some sense out of it.

The glyph "i.dot" is a copy of i.

Thanks in advance!

The underlying reasoning is that 'i' "ee" and 'ı' "ih" are two different characters. Capitalizing and small-capitalizing in a Western locale loses the dot, which makes it a different character in Turkish.

You don't really need an "i.dot" glyph (as dotted equivalent of "dotlessi"), you can use the regular latin 'i' for that. So the translation you specify is not necessary.

The only caveat is, for Turkish you should translate "i" to "idotaccent.sc" for small caps, and "i" to "Idotaccent" for capitals. The dotless 'i' can be converted to a 'regular' small cap I and capital I, for any locale, so it doesn't need a localized handling.

You will get bonus points if you weed out the ligatures containing an "i" for Turkish, such as "fi" and "ffi" :-) (As a side note, your translation of 'i' to 'i.dot' may rule out that lookup; but I still think it makes life more complicated, instead of less.)

> You will get bonus points if you weed out the ligatures containing an “i” for Turkish, such as “fi” and “ffi”

That's exactly what will happen.

> (As a side note, your translation of ’i’ to ’i.dot’ may rule out that lookup; but I still think it makes life more complicated, instead of less.)

I disagree. Taking care of the Turkish i upstream, in 'locl', makes the code for other features (e.g. 'liga', 'smcp') much much simpler.

Goran, your approach is good, but there are some issues,

1. languagesystem dflt dflt; is incorrect.
It should be languagesystem DFLT dflt;

2. If you want to be thorough, you can include other languages that need the same treatment such as Azeri (AZE) and Crimean Tatar (CRT).

3. You can actually remove the substitution
sub i.small by idotaccent.small;
from the 'locl' feature. The reasoning for this is, the glyph 'i.small' won't be in the glyph stream until 'smcp' is applied. Since 'locl' comes before 'smcp' (and assuming that the text engine will do the right thing which is apply the lookups in the order they appear in the font), at the time 'locl' is applied the glyph 'i.small' won't be available as input.
In any case, don't forget to include the following substitution in 'smcp',
sub i.dot by idotaccent.small;

4. idotaccent.small is not a good name because 'idotaccent' is not a standard name. ('Idotaccent' is, but that's different). You need to call it something like 'i.dotsmall'.

Thanks for helping out Miguel and Theunis! :)

When I write DFLT capitalized I get this warning, are you sure on the capitalization, Miguel?

[WARNING] Use of DFLT tag has been deprecated. It will work, but please use 'dflt' instead. [/Users/goran/Library/Application Support/FontLab/Studio 5/Features/fontlab.fea 57]

Goran,

See that thread — Script Tag + i dot:

http://typophile.com/node/29469

There's always a "but" with FontLab...

And, what will exactly happen if I take away the DFLT tag and only put this in:

languagesystem latn dflt;
languagesystem latn TRK;
Will this produce a completely useless font regarding language support?

No, it won't be useless.

Captured from web.archive.org on 17 Jun 2011. view this capture