在Win8平台處理本地化多語言的支援相對比較容易的,但比WP8稍微複雜一點,並不像WP8平台那樣大部分工作都有VS IDE處理,Win8平台的操作基本需要開發人員處理。並且在xaml中的使用也稍有不同。
同樣需要強調的是無論您目前的應用是否需要支援多語言,將您的代碼從可本地化的資源中分離出來統一放到資源檔中是一個很好的編碼習慣。
本地化多語言配置
參考下圖中目錄結構,建立Strings檔案夾以及子目錄和Resources.resw資源檔。
為應用所支援的每一個地區性都建立一個資源檔夾,並為此檔案夾添加一個名稱為AppResources.resw的資源檔,其中資源檔夾為地區語言,如:中文(簡體,中國):zh-CN,英語:en,英語(美國):en-Us。
應用啟動後,您的本地化應用將隱式載入並顯示地區性與使用者手機的顯示語言最匹配的資源。如果沒有較好的匹配,應用將使用非特定語言資源。Windows 以一個標準的易於理解的方式排定語言匹配的優先順序。例如,按優先順序,en-US 依次與 en-US、en、en-GB 等等匹配。
zh-cn/AppResources.resw資源檔如下圖:
en/AppResources.resw資源檔如下圖:
本地化資源的使用
關於本地化資源使用的方式和WP8不同,以下給出簡單一實例,詳細內容參考快速入門:使用字串資源(使用 C#-VB-C++ 和 XAML 的 Windows 市集應用) (Windows) 。
1.XAML中的使用(將控制項關聯到資源)
<TextBlock x:Uid="Greeting" Text=""/>
必須將每個需要進行文本本地化的控制項與 .resw 檔案進行關聯。為此,可以使用XAML 元素的 x:Uid 屬性,上述案例中關聯的是x:Uid為Greeting的文字框的Text屬性。
2.代碼中的使用
Windows.ApplicationModel.Resources.ResourceLoader resLoader_ = new Windows.ApplicationModel.Resources.ResourceLoader(); baseTitle.Text = resLoader_.GetString("AppTitle");
本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/