發表文章

目前顯示的是 9月, 2020的文章

ASP.net MVC 多國語言 globalization (part 2)

圖片
👨🏻‍💻 ASP.net MVC 多國語言 globalization (part 2) 上次 大概了解了所謂的Globalization,並且用Resource File 當作我們的語言資料抓取,最後利用連結呼叫Controller改變我們顯示的語系。 但上一次有很明顯的問題: 切到別的畫面這功能就沒用了 在別的畫面沒辦法切換語系 切換語系之後再換頁面設定就跑掉了 所以這次我們就要來解決這些問題。 要能解決這些問題,目標其實挺明顯的,就是這項功能要有全域化的設定,第一個想到的就是Global.asax這個檔案,它位於整個專案的根目錄, 這一篇 大約介紹了這個檔案大概是做甚麼的。 簡單來說,每當有任何請求來的時候都會先經過這裡,加上基於它是 HttpApplication 的衍伸。 所以很直覺的我們當初在HomeController設定的CurrentCulture與CurrentUICulture應該要在這裡設定才對,並且當有請求的時候我們都要設定一次,這也是替等等的語系切換做準備,所以打開Global.asax 並在裡面增加 Application_BeginRequest的方法,並且把上次的語系設定程式加進來: protected void Application_BeginRequest(object sender,EvenArgs e){ String cultureName ="en-US"; System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cultureName); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(cultureName); } 不要忘了,我們是要測試多個畫面的語系切換,所以至少再開一個畫面,並且裡面也加一個Resource file 裡面的資訊。我這裡的例子一樣是利用.net MVC預設提供的About.cshtml,當然Resource file也不要忘記加了 About.cshtml (隨便找一個位置放就好) &