2013-02-10 65 views
0

我希望我的软件可供全球用户使用,因此我对我的程序GUI(Winforms,.NET3.5,C#)中使用的字体有点担心。我需要担心Winforms应用程序中的全球字体吗?

让我们假设我选择了“微软Sans Serif”(尺寸9,因为某些原因,我听说https://stackoverflow.com/a/7045886/848344比默认的8.25尺寸更好)。现在,我明白当Microsoft Sans Serif中不存在字符时,会自动使用'fallback'字体。因此,应该只是“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会回退到哪里?

总之,我可以在Winforms应用程序中使用Microsoft Sans Serif(大小9),而不必担心全球字体支持(由于自动字体回退),如果我想覆盖至少90-95%的用户(家庭和企业)?请记住,事情并不一定是完美的,因为我的应用程序更多是阅读/显示类型的应用程序,而不是编辑应用程序,但可能任何答案都可以涵盖需要额外准确性的其他人的两种情况。

+1

是的,字体后备将为您解决这个问题。您可以安全地假定本地用户将安装能够呈现其语言中使用的字形的字体。这不会消除为用户提供本地化文本的需要。并测试它。 – 2013-02-10 12:39:18

+0

对,如果那是答案,我想我会选中它!通过“本地化文本”,我假定您指的是我为菜单,标签,文档和标题等提供的文本,而不是他们拥有的任何内容并将其导入到程序中。 – 2013-02-10 14:54:50

+0

嗯,谷歌“Winforms本地化”,看看我在说什么。 – 2013-02-10 15:21:48

回答

1

您所描述的内容通过内置于平台中的字体回退机制而成为非问题,并且如果用户希望使用给定语言,则此类用户将安装必要的语言支持组件包括字体和IME。尽管如此,还有很多关于制作世界级应用程序的其他东西需要注意。一本涵盖所有这些(但现在已经很老)的书是微软的Developing International Software。其中之一,你提到的是,需要使用更大的字体,以便象中文这样的字形清晰易读(并不意味着你需要所有语言中更大的字体,但是你需要增加字体的大小以便语言那需要它)。另一个重要问题是针对日期和数字的地区特定格式问题。有趣的是,大写字母是特定于区域的,如the Turkish i problem所示。

相关问题