WP7 本地化應用程式
1. 新增資源檔案
(1) 新增目錄 Resources
(2) 該目錄中, 新增 Resources File, 取名 AppResources.resx
2. 編輯預設資源檔案 AppResources.resx
(1) 新增 Name 與 Value 組合
(2) txtHello, Hello
(3) Access Modifier, 從 Internal 改為 public
3. 新增本地化資源檔案
(1) 在 Resources 目錄中, 新增 Resources File
(2) 依照地區語言類型來命名, 例如台灣地區, 取名 AppResources.zh-TW.resx
4. 編輯本地化資源檔案 AppResources.zh-TW.resx
(1) 新增 Name 與 Value 組合
(2) txtHello, 哈囉
(3) Access Modifier, 從 Internal 改為 public
參考 : Culture and Language Support for Windows Phone
http://msdn.microsoft.com/en-us/library/hh202918(v=vs.92).aspx
5. 修改 App 專案檔, 增加支援語言
(1) Applicaiton -> Assembly Inofrmation -> Neutral Language
-> 確定為 English (United States), 與預設語言一致
(2) 打開 Notepad, 編輯專案檔 .csproj
(3) 找到, <SupportedCultures>標籤, 依照支援的語言加入資料
(4) 例如 : <SupportedCultures>en-US;zh-TW;</SupportedCultures>
6. 新增資源檔類別檔案, 新增 LocalizedStrings.class
namespace PhoneApp1.Resources
{
public class LocalizedStrings
{
public LocalizedStrings() { }
private static AppResources _localizedResources = new AppResources();
public AppResources LocalizedResources { get { return _localizedResources; } }
}
}
7. 將資源檔設定可取用的本地資源
(1) 打開 App.xaml, 並進行修改
(2) 加入以下程式碼
<Application.Resources>
<local:LocalizedStrings xmlns:local="clr-namespace:PhoneApp1.Resources" x:Key="LocalizedStrings" />
</Application.Resources>
8. 以 MainPage.xaml 的 PageTitle 為設定範例:
將 Text 屬性改為 : Text="{Binding Path=LocalizedResources.txtHello, Source={StaticResource LocalizedStrings}}"
9. 編譯並且執行 :
應該可以看到 PageTitle 為 Hello
作法一 :
10. 使用者透過, 修改地區設定來改變顯示語言
(1) 按 <- 返回
(2) 按 -> 按鈕, 並點擊 Settings, 進入設定頁面
(3) 點擊 region + language
(4) 點擊 Display language
(5) 選擇 中文(繁體)
(6) 點擊 Tap here to accept changes and restart your phone
11. 重新進入應用程式
應該可以看到 PageTitle 為 哈囉
作法二 :
12. 開發測試階段,如果要測試某個語系,可以直接設定應用程式預設語言,例如:中文(繁體)
(1) 在 App.xaml.cs 的 Application_Launching 事件, 加入以下程式碼
private void Application_Launching(object sender, LaunchingEventArgs e)
{
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("zh-TW");
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-TW");
}
13. 按下 F5 進行編譯及執行, 進入應用程式
第一次執行, 應該可以看到 PageTitle 為 哈囉