本地化你的字体:土耳其语的  i

教程
作者:Rainer Erich Scheichelbauer
en fr zh

2 九月 2015 发布日期: 27 八月 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.

土耳其有一座城市名为 Diyarbakır,这是一座伟大的城市,因为它既包含不带点的 ı,又包含带点的 i。

你看,在其他语言中不会有这样的区别。如果你要将这个单词设为大写或小型大写,i 就会失去圆点变成 I,这样就无法和不带点的 I/ı 区分开,这不好。

所以,我们要教会我们的字体讲土耳其语。如果语言被设置为某种区分 I/ı 和 İ/i 的语言,它就必须要保留 i 的点:

在 Glyphs 中有一个简单的解决方案。首先,确保你的字体中包含 idotlessdotaccentcomb。如果你还没有,只需要将 i 复制两个副本。将其中一个重命名为 idotless,删除圆点。另一个重命名为 dotaccent 并删除字干。这是在你还没有 dotaccentcomb 的情况下。为两者重设锚点(Cmd-Opt-U)。

现在创建字符形 Idotaccentidotaccent,尤其是后者。Glyphs 会自动将 idotlessdotaccentcomb 组合成这个字母,从而形成了一个 i 的副本。

如果 Glyphs 在你的字体中找到了 idotaccent,它就可以自动在你的 locl 特性中创建相应的条目。这会在土耳其语(TRK)、哈萨克斯坦语(KAZ)、鞑靼语(TAT)、克里米亚鞑靼语(CRT)和阿塞拜疆语(AZE)中将 i 替换为 idotaccent。这些语言中都有 idotlessidotaccent 的区分。

现在,只需创建 idotaccent.scidotless.sc 作为小型大写字母,这样就完成了。如果你的语言设置为上列语言之一,i 就会首先被 idotaccent 替代。因此,当小型大写特性生效时,就再没有 i,只有 idotaccentidotless 了,它们分别具有各自的 .sc 形式。

现在你需要做的所有事情,就是在 “字体信息” 的 “特性” 选项卡中单击更新按钮(带有圆形箭头的那个)。呼!

带 i 的合字

类似的问题也会出现在带有 i 的合字上,通常就是 fif_f_i。如果你的字体中有这样的合字,在其中 i 没有了圆点,这对土耳其语而言就不好了。所以我们需要确保这些合字被阻止掉。有三种可能的方式来处理:

可以什么都不做,只依靠你神奇的 idotaccent,如前文所述。i 会被替换为 idotaccent,因为只有找到了 f-i 序列才会触发合字,所以这样就没问题了。

或者调整你的设计,使得 fi 和 ffi 合字不丢失其圆点。这种情况下,你可能会想将特性代码从 sub f i by fi; 改为 sub f [i idotaccent] by fi;

或者,第三种办法是,另外引入 f_idotaccentf_f_idotaccent 合字。这会非常酷。

就是这样了,你的字体学会了五种新语言!导出字体,并用你最爱的克里米亚鞑靼语诗歌来测试吧。或者,如果你的克里米亚鞑靼语业已生疏,只用 Diyarbakır 这个地名测试即可。

备注:在 2.0 以前版本的应用程序中,idotless 被称作 dotlessi


2013-11-13 更新:移除了一段过时的、关于手动编辑语言系统条目的内容。Glyphs 现在可以自动处理这个。
2014-12-11 更新:更新为新的无圆点字符形备注。
2014-09-02 更新:更新为 Glyphs 2 中新的字符形名称。

Chinese translation by Willie Liu (刘育黎) from 3type (三言).