我不曉得諸位同好都是怎麼進行 WP7 多語系支援的開發工作的, 但對於沒有實體 WP7 手機的我來講, Emulator 就是我唯一可以用的手機。當我企圖測試我的多語系顯示時, 卻發生了一個窘境 - 不知道怎麼變更語系! 目前在 Emulator 上面唯一可以變更 locale 的地方就是在 Settings > Region and Language 畫面中把 System Locale 更改為 Chinese (Taiwan), 但是這對測試一點幫助都沒有, 使用 System.Globalization.CultureInfo.CurrentCulture 取出來的 CultureInfo 仍然是 en-US...
我不曉得諸位同好都是怎麼進行 WP7 多語系支援的開發工作的, 但對於沒有實體 WP7 手機的我來講, Emulator 就是我唯一可以用的手機。當我企圖測試我的多語系顯示時, 卻發生了一個窘境 - 不知道怎麼變更語系! 目前在 Emulator 上面看起來唯一可以變更 locale 的地方就是在 Settings > Region and Language 畫面中把 System Locale 更改為 Chinese (Taiwan), 但是這對測試一點幫助都沒有, 使用 System.Globalization.CultureInfo.CurrentCulture 取出來的 CultureInfo 仍然是 en-US!
不過今天我終於找到解法了。其實跟 ASP.NET 的做法很類似, 開啟 App.xaml.cs, 然後在 Application_Launching 裡面強迫把 CurrentCure 跟 CurrentUICulure 改成 zh-TW 就可以了 :
// Code to execute when the application is launching (eg, from Start)
// This code will not execute when the application is reactivated
private void Application_Launching(object sender, LaunchingEventArgs e)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-TW");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-TW");
}
當然, 你只能在測試時這麼做, 當測試完畢之後一定要記得改回來, 不然 Globalization 就通通白做了!
註: 感謝茂伯提供的情報, 在 Emulator 的 Settings 中更改 Region Format 即可變更 CurrentCulture。不過很可惜的, 在這個列表中並沒有中文語系可以勾選。如果不介意測試其它語系 (例如德文) 的話, 也許可以在這裡設定。但如果一定要測試 zh-TW 語系的話, 目前似乎只能寫程式來變更了。