2011-08-12 22 views
4

方案:Microsoft無襯線字體在不使用中國本地化的Windows

的UI界面元素將使用不同的字體在美國英語Windows 7企業版相比,即使所有的本地化包和語言的「中國人」 Windows 7企業版設置爲英語。在WinForms代碼隱藏中,FontFamily沒有明確定義,並依賴於默認值。

英語:

English

中國:

Chinese

幾個問題:

1)什麼是中國的Windows中使用的字體?
2)這樣的安裝會導致它使用該字體有什麼不同?
3)如何設置一個環境來複制它?在Windows 7上安裝時間選項是否在已安裝的Windows 7實例上切換UI和系統文化時無法獲得?

FWIW:

我檢查C:\ WINDOWS \字體和它有相同的版本和大小「Microsoft無襯線常規」

+1

夥計們,爲什麼你認爲它不是編程相關的?我很確定這是標準的i18n編程問題。 –

+0

請告訴我,在這篇文章中,它在編程的上下文中討論*任何*。它討論了在不同版本的Windows中安裝軟件。 – Joe

+0

以下是爲處理國際化和本地化的任何人提供的一些資源:http://blogs.msdn.com/b/michkap/archive/2007/12/17/6784443.aspx http://msdn.microsoft.com/zh-cn/ -us/goglobal/ee461121#LocalizationExceptionswithLanguagePacks – TodK

回答

5

如果你還沒有做過任何字體,默認字體回退機制可能會使用SimSun作爲標準字體的字體替換。

字體被替換的原因是中文操作系統上的默認字體需要顯示中文字符。當然,由於規模龐大,MS Sans Serif沒有定義中文字形。

爲了避免這個問題,您可能需要在資源文件中「硬編碼」字體信息 - 通常簡單的大小修改(即設置9而不是8.25)會有所幫助。但請注意,如果你這樣做,中文字符可能會損壞 - 如果我正確記得它,它將完全關閉字體回退機制。對於那些不會被翻譯成中文的「靜態」用戶界面元素可能是合適的,但對於允許用戶輸入自由形式文本的文本框和類似控件來說,這是完全不可接受的。

與其對抗渲染問題,最好是讓它通過。我相信中國用戶只是習慣了那種具體的外觀&的感覺。

+1

此問題已通過將「默認英文」UI字體(Microsoft Sans Serif)硬編碼到表單/控件中解決。 – TodK

+1

@TodK:是的,它會「解決」這個問題,但如果用戶輸入非ASCII字符,則可能會出現空心框。 –

+0

有意義 - 我做出更改的區域是非輸入的。謝謝! – TodK