[ASP.NET] 多國語言 - 強制更換語系
最近在一個論壇中,多國語言這個話題突然夯了起來,之前曾經稍稍介紹了一下
在ASP.NET中如何透過資源檔建立多國語言的網站(看這裡)
但問題來了,原本的機制是經由瀏覽器的語系設定來自動切換,但若我們想要強迫
更換呢,是否可行呢?基本上是可以的,直接來看個小範例
(1)同樣的先建立好資源檔相關動作
(2)override掉OnLoad
protected override void OnLoad(EventArgs e)
{
//強迫指定為英文語系
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en", true);
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en", true);
base.OnLoad(e);
}
(3)再來override掉InitializeCulture
protected override void InitializeCulture()
{
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");
base.InitializeCulture();
}
程式執行結果:
瀏覽器的語系是中文繁體[zh-TW],而網頁執行結果是顯示英文,已被程式強制
更換掉了
利用這樣的方式,基本就可以達到強制更換語系的機制,也不用一定要受限於
瀏覽器的語系,且也可以更一步做動態切換語系囉!
若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。
By No.18