unicode 实现:多种字体,还是一种大字体?
我正在将应用程序国际化为多种不同的语言,并且必须支持以下语言:
- 英语
- 西班牙语
- 德语
- 法语
- 俄语
- 普通话 中文 泰语
- 我们
还可能会添加对以下内容的支持:
- 印地语
- 葡萄牙语
- 工作中人们会说并可以翻译的任何其他语言 我应该
为每种语言安装不同的字体,还是应该安装 Arial Unicode MS 的大量字体? 如果我选择后者,将字体添加到安装程序中是否有任何法律影响?
这个问题是在 .NET 3.5 中出现的,但我认为一般问题是与(编程)语言无关的。
I'm internationalizing an application into many different languages, and the following languages must be supported:
- English
- Spanish
- German
- French
- Russian
- Mandarin Chinese
- Thai
We're also probably going to add support for:
- Hindi
- Portuguese
- Any other language people at work speak and can translate easily
Should I install different fonts for each language, or should I go with one massive font installation of Arial Unicode MS? And if I do the latter, are there any legal implications of adding the font into the installer?
This problem is in .NET 3.5, but I think the general problem is (programming) language independent.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我们决定采用以下路线:
对于基于拉丁语的字符集,我们将使用 基于 Gentium 的字体。 这些字体受开放字体许可证,这意味着我们必须在软件中包含版权声明并在 UI 中包含确认。
当我们转向亚洲语言时,我们可能会向 WenQuanYi Zen Hei 的创建者发送电子邮件(在他的网站上,他声明他可以用于商业用途,但需要付费),或者 Code2000。 顺便说一句,对于印地语字体,Code2000 看起来确实不错,但对于 Latin-1 字体则不太好(有点太宽,非常印刷而不是基于屏幕)。
We've decided to go the following route:
For latin-based character sets, we're going to use the Gentium-based fonts. These fonts are covered under the Open Font License, which means that we have to include a copyright notice with the software and an acknowledgment in the UI.
When we go to the Asian languages, we'll probably either email the creator of WenQuanYi Zen Hei (on his site, he states that he's open to commercial use, but for a fee), or the creator of Code2000. Incidentally, for Hindi fonts, Code2000 looks really good, but not so much for the Latin-1 fonts (a bit too wide, very typographic rather than screen-based).
许多 Windows API 将为众所周知的字体进行字体链接。 例如,如果您选择 Tahoma 并尝试使用任何更高级别的函数进行绘制,我相信它会自动进行字体链接。 我怀疑几乎所有 .NET 接口都算作高级函数。
Raymond Chen 展示了如何滚动自己的字体链接 。
Michael Kaplan 还制作了有关字体链接的系列。
Many of the Windows APIs will do font linking for the well-known fonts. For example, if you pick Tahoma and try to draw using any of the higher-level functions, I believe it'll do font linking automagically. I would suspect that nearly all of the .NET interfaces count ast higher-level functions.
Raymond Chen shows how to roll your own font linking.
Michael Kaplan also did a series on font linking.
Arial Unicode MS 不可重新分发,并且随 Microsoft Office 一起安装:Lucida Sans Unicode 不过随 Windows 一起提供,并且包含您列表中大多数语言的字符(不过,我相信不是中文)。
http://alanwood.net/unicode/fonts.html 是一个很好的资源,可以查看哪些字体包含哪些字符。
Arial Unicode MS is not redistributable and is installed with Microsoft Office: Lucida Sans Unicode ships with Windows though, and has characters for most of the languages on your list (not Chinese, though, I believe).
http://alanwood.net/unicode/fonts.html is a good resource for seeing which fonts contain which characters.
当您将自己限制在 Windows 和 Internet Explorer 附带的字体时,这不太可能成为真正的问题。 用户将安装这些字体的一个版本,该版本能够以本地语言呈现字形。
This is very unlikely to be a real problem when you restrict yourself to the fonts that ship with Windows and Internet Explorer. The user will have a version of those fonts installed that is capable of rendering glyphs in her local language.
GNU Unifont 是唯一一个涵盖所有(或几乎所有,63,000+)字符的字体。 不幸的是它是位图,因此渲染非常难看。
文泉驿禅黑或如果您需要 TrueType 字体,Arial Unicode MS 是最好的选择。
它们的覆盖范围大致相同(约 35,000 个字符),但文泉驿禅黑是开源的 (GPL),而 Arial Unicode MS 是专有的。
GNU Unifont is the only one that covers all (or almost all, 63,000+) characters. Unfortunately it is bitmap and thus the rendering is pretty ugly.
WenQuanYi Zen Hei or Arial Unicode MS are best if you need a TrueType font.
They have roughly the same coverage (~35,000 chars), but WenQuanYi Zen Hei is open source (GPL) and Arial Unicode MS is proprietary.