[ASP.NET] 多國語言 - 強制更換語系

  • 7491
  • 0

[ASP.NET] 多國語言 - 強制更換語系

最近在一個論壇中,多國語言這個話題突然夯了起來,之前曾經稍稍介紹了一下

在ASP.NET中如何透過資源檔建立多國語言的網站(看這裡)

 

但問題來了,原本的機制是經由瀏覽器的語系設定來自動切換,但若我們想要強迫

更換呢,是否可行呢?基本上是可以的,直接來看個小範例

 

(1)同樣的先建立好資源檔相關動作

image

image

image

 

(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],而網頁執行結果是顯示英文,已被程式強制

更換掉了

image

image

 

 

利用這樣的方式,基本就可以達到強制更換語系的機制,也不用一定要受限於

瀏覽器的語系,且也可以更一步做動態切換語系囉!

 

 

 

若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。

By No.18