[多國語系]-前端驗證測試記錄-後續作法
Culture 屬性: 負責判定與文化特性相關功能的結果 (例如: 日期、數字和貨幣格式等)。
UICulture 屬性: 負責覺得要為網頁載入哪一國的資源檔。
根據以上的特性,程式調整如下:
1.南非語系維持en-ZA不變
針對英文語系的處理,在設定CurrentCulture時,設定成en,而設定CurrentUICulture則依使用者設定的語系,如下程式判斷en-開頭則取en來使用。void MvcApplication_BeginRequest(object sender, EventArgs e) { if (CurrentCultureName.StartsWith("en-")) System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en"); else System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo(CurrentCultureName); System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo(CurrentCultureName); }
2.資源檔依.en-ZA及en-US 命名
不以en命名,這是用來給CurrentUICulture讀取資源檔用優點
2.後端不用處理轉型的問題,例:若前端通過驗證的數值小數是用小數點(1.123),而設定的CurrentCulture是en-ZA(小點是逗號)時,則Model繫結會發生轉型失敗,此問題是可以透過DefaultModelBinder Class來自行處理轉型問題。
3.透過設定CurrentUICulture,可以保有各國家獨立的顯示訊息、文字,例:美國en-us、南非en-za
缺點
參考文章
http://stackoverflow.com/questions/329033/what-is-the-difference-between-currentculture-and-currentuiculture-properties-of