unicode实现:很多字体,还是一个大字体?

时间:2009-01-19 18:09:12

标签: .net unicode fonts selection

我正在将应用程序国际化为多种语言,并且必须支持以下语言:

  1. 西班牙语
  2. 德国
  3. 普通话
  4. 我们也可能会增加支持:

    1. 印地文
    2. 葡萄牙语
    3. 工作中的任何其他语言都可以轻松翻译
    4. 我应该为每种语言安装不同的字体,还是应该使用Arial Unicode MS的大量字体安装?如果我执行后者,将字体添加到安装程序中是否有任何法律含义?

      这个问题出现在.NET 3.5中,但我认为一般问题是(编程)语言无关。

5 个答案:

答案 0 :(得分:3)

Arial Unicode MS不可再发行,并随Microsoft Office一起安装:虽然Lucida Sans Unicode随Windows一起发布,并且列表中包含大多数语言的字符(不过中文,但我相信)。

http://alanwood.net/unicode/fonts.html是查看哪些字体包含哪些字符的好资源。

答案 1 :(得分:2)

当您限制自己使用Windows和Internet Explorer附带的字体时,这不太可能是一个真正的问题。用户将安装这些字体的版本,能够以本地语言呈现字形。

答案 2 :(得分:2)

GNU Unifont是唯一涵盖所有(或几乎全部,63,000 +)个字符的人。不幸的是它是位图,因此渲染非常难看。

如果您需要TrueType字体,则最好

WenQuanYi Zen HeiArial Unicode MS 它们具有大致相同的覆盖范围(约35,000个字符),但WenQuanYi Zen Hei是开源(GPL)和Arial Unicode MS是专有的。

答案 3 :(得分:0)

我们决定采用以下方式:

对于基于拉丁语的字符集,我们将使用Gentium-based fonts。这些字体包含在Open Font License下,这意味着我们必须在软件中包含版权声明并在UI中包含确认。

当我们去亚洲语言时,我们可能会给WenQuanYi Zen Hei的创建者发送电子邮件(在他的网站上,他声称他可以开放商业用途,但需要付费),或者是{{3的创建者}}。顺便说一句,对于印地语字体,Code2000看起来非常好,但对于Latin-1字体来说并不是那么多(有点太宽,非常排版而不是基于屏幕)。

答案 4 :(得分:0)

许多Windows API将为众所周知的字体进行字体链接。例如,如果您选择Tahoma并尝试使用任何更高级别的函数进行绘制,我相信它会自动进行字体链接。我怀疑几乎所有的.NET接口都算是更高级别的函数。

Raymond Chen展示了如何推出own font linking

迈克尔卡普兰也做了series on font linking