我正在将应用程序国际化为多种不同的语言,并且必须支持以下语言:
- 英语
- 西班牙语
- 德语
- 法语
- 俄语
- 普通话
- 泰国
我们还可能会添加对以下内容的支持:
- 印地语
- 葡萄牙语
- 工作人员会说任何其他语言并且可以轻松翻译
我应该为每种语言安装不同的字体,还是应该使用 Arial Unicode MS 的大量字体安装?如果我做后者,将字体添加到安装程序中是否有任何法律影响?
这个问题在 .NET 3.5 中,但我认为一般问题与(编程)语言无关。
Arial Unicode MS 不可再发行,它与 Microsoft Office 一起安装:Lucida Sans Unicode 随 Windows 一起提供,并且具有您列表中大多数语言的字符(但我相信不是中文)。
http://alanwood.net/unicode/fonts.html是查看哪些字体包含哪些字符的好资源。
当您限制自己使用 Windows 和 Internet Explorer 附带的字体时,这不太可能成为真正的问题。用户将安装一个能够以她的本地语言呈现字形的字体版本。
GNU Unifont是唯一一种涵盖所有(或几乎所有,63,000+)字符的字体。不幸的是,它是位图,因此渲染非常难看。
如果您需要 TrueType 字体,最好使用WenQuanYi Zen Hei或Arial Unicode MS 。
它们的覆盖范围大致相同(约 35,000 个字符),但 WenQuanYi Zen Hei 是开源的 (GPL) 而 Arial Unicode MS 是专有的。
我们决定走以下路线:
对于基于拉丁文的字符集,我们将使用基于 Gentium 的字体。这些字体包含在Open Font License中,这意味着我们必须在软件中包含版权声明并在 UI 中确认。
当我们转到亚洲语言时,我们可能会向 WenQuanYi Zen Hei 的创建者发送电子邮件(在他的网站上,他声明他可以商业使用,但需要付费),或者Code2000的创建者。顺便说一句,对于印地语字体,Code2000 看起来非常好,但对于 Latin-1 字体来说就不是很好(有点太宽了,非常印刷而不是基于屏幕)。