0

我希望我的软件可供全球观众使用,因此我有点担心我的程序 GUI(Winforms、.NET3.5、C#)中使用的字体。

假设我为所有内容选择“Microsoft Sans Serif”(由于某种原因,我听说https://stackoverflow.com/a/7045886/848344比默认的 8.25 尺寸更好)。现在,我知道当字符在 Microsoft Sans Serif 中不可用时,会自动使用“后备”字体。因此,应该只是“Microsoft Sans Serif”的文本块可能同时也使用“Arial Unicode MS”和“SimSun-ExtB”。这三种字体似乎涵盖了大部分基础。

不幸的是,某些系统可能缺少这些字体中的一种或多种(或没有最新版本)。例如,Arial Unicode MS 仅随 Office 提供。此外,WinXP(无 SP)仅支持 Microsoft Sans Serif - v1.33,而 XP SP2 使用v1.41,Vista/Server 2008 有v5.00。Microsoft Sans Serif 的更高版本提供改进的西里尔文、拉丁文和阿拉伯文支持。

但是,我需要担心这个吗?我是否可以假设这些类型的用户将至少升级到 XP SP2 或失败,Winforms 可以回退到支持任何缺失字符的字体?当然,如果我的程序对他们来说出错了,那么任何程序对他们来说也是错误的,所以也许他们有适当的字体(包括我没有列出的字体),Winforms 无论如何都会回退?

总之,如果我想覆盖至少 90-95% 的用户(家庭和商业)?请记住,事情不一定要完美,因为我的应用程序更像是一种阅读/显示类型的应用程序,而不是编辑应用程序,尽管对于需要额外准确性的其他人来说,任何答案都可能涵盖这两种情况。

4

1 回答 1

1

您所描述的内容通过平台内置的字体回退机制成为非问题,并且如果用户希望使用给定的语言,这样的用户将安装必要的语言支持组件,包括字体和输入法。

不过,在制作面向世界的应用程序方面,还有很多其他事情需要注意。涵盖所有这些的一本书(但现在已经很老了)是微软的开发国际软件。您提到的其中之一是需要使用更大的字体,以便诸如中文之类的字形清晰易读(并不意味着您需要在所有语言中使用更大的字体,但您需要能够增加语言的字体大小需要它)。另一个大问题是日期和数字的特定于区域设置的格式问题。有趣的是,大写是特定于语言环境的,如土耳其语 i 问题所示。

于 2013-02-22T20:10:48.283 回答