我正在将应用程序国际化为多种语言,并且必须支持以下语言:
我们也可能会增加支持:
我应该为每种语言安装不同的字体,还是应该使用Arial Unicode MS的大量字体安装?如果我执行后者,将字体添加到安装程序中是否有任何法律含义?
这个问题出现在.NET 3.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 Hei或Arial 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。