2013-02-10 64 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所示。

相關問題