[IE]zh-Hant-TW 是無效的文化特性識別項。

[IE]zh-Hant-TW 是無效的文化特性識別項。

今天使用Windows 8 IE10 測試程式時,發現出現了「zh-Hant-TW 是無效的文化特性識別項。」的錯誤,如下圖,

zh-Hant-TW

 

因為 IE10 送出的語系資料為zh-Hant-TW,所以會造成建立CultureInfo時發生錯誤。

雖然解法可以請User調整「控制台\所有控制台項目\語言\進階設定」中,將「適用於網路內容的語言」下勾選「不要讓網站存取我的語言清單。將改用我的日期、時間和數字格式設定的語言」。如下圖,

Language

LanguageAdv

 

但是如果能從程式去調整的話,就更好了。所以原本程式如下,

System.Threading.Thread.CurrentThread.CurrentCulture = 
    System.Globalization.CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);
System.Threading.Thread.CurrentThread.CurrentUICulture = 
    new System.Globalization.CultureInfo(Request.UserLanguages[0]);

 

改成從CurrentCulture取出Name再給CurrentUICulture,如下,

System.Threading.Thread.CurrentThread.CurrentCulture = 
    System.Globalization.CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);
System.Threading.Thread.CurrentThread.CurrentUICulture = 
    new System.Globalization.CultureInfo(System.Threading.Thread.CurrentThread.CurrentCulture.Name, false);

 

參考資料

ASP.NET 2.0 多國語系網站與 Windows 8 的 IE10 語系設定

調整 IE10 與 Windows 8 語言喜好設定為舊版的 zh-TW 語系

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^