Windows Phone 8本地化多语言支持
在WP8平臺處理本地化多語言的支持還是比較容易的,大部分工作都有VS IDE處理,開發者只需簡單操作,并翻譯本地資源即可實現。
無論您目前的應用是否需要支持多語言,將您的代碼從可本地化的資源中分離出來很重要。本地化應用的 UI 文本字符串的常見做法是,將每一個字符串復制到資源文件的字符串表的行中。然后用指向表中相應資源的綁定語句 (XAML) 或資源引用(代碼隱藏)替換每一個原始字符串。這是一個很好的編碼習慣。
?
本地化多語言配置
當創建一個應用后,會默認在應用中添加資源文件夾Resources和一個名為AppResources.resx的資源文件,如下圖所示。其中的ResourceLanguage值為當前系統的默認語言。
當需要添加其他語言支持時,打開項目“屬性”,在“支持的區域性”一欄的下方選擇需要支持的語言,如下圖所示。
上圖中選擇“英語”。則會生成一個名為AppResources.en.resx的資源文件,文件內容復制了默認的AppResources.resx內容并修改了ResourceLanguage的值為en。應用所支持的每一個區域性都擁有其自己的資源文件,資源文件名稱為AppResources.{0}.resx,其中{0}為區域語言,如:英語:en,英語(美國):en-Us。
應用啟動后,您的本地化應用將隱式加載并顯示區域性與用戶手機的顯示語言最匹配的資源。如果沒有較好的匹配,應用將使用非特定語言資源。應用代碼可以按照元素或全局地顯式重寫隱式區域性選擇。
?
本地化資源的使用
1.XAML中的使用
<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>其中key: ApplicationTitle需要添加到各資源文件中。
2.代碼中的使用
appBarButton.Text = AppResources.AppBarButtonText;在XAML中的ApplicationBar控件中無法使用1中的方式設置本地化資源,必須通過C#代碼的方式添加,示例代碼如下:
1 public partial class MainPage : PhoneApplicationPage 2 { 3 // 構造函數 4 public MainPage() 5 { 6 InitializeComponent(); 7 8 // 用于本地化 ApplicationBar 的示例代碼 9 BuildLocalizedApplicationBar(); 10 } 11 12 // 用于生成本地化 ApplicationBar 的示例代碼 13 private void BuildLocalizedApplicationBar() 14 { 15 // 將頁面的 ApplicationBar 設置為 ApplicationBar 的新實例。 16 ApplicationBar = new ApplicationBar(); 17 18 // 創建新按鈕并將文本值設置為 AppResources 中的本地化字符串。 19 ApplicationBarIconButton appBarButton = new ApplicationBarIconButton(new Uri("/Assets/AppBar/appbar.add.rest.png", UriKind.Relative)); 20 appBarButton.Text = AppResources.AppBarButtonText; 21 ApplicationBar.Buttons.Add(appBarButton); 22 23 // 使用 AppResources 中的本地化字符串創建新菜單項。 24 ApplicationBarMenuItem appBarMenuItem = new ApplicationBarMenuItem(AppResources.AppBarMenuItemText); 25 ApplicationBar.MenuItems.Add(appBarMenuItem); 26 } 27 }詳細說明請參考微軟MSDN文檔Windows Phone 的全球化和本地化。
總結
以上是生活随笔為你收集整理的Windows Phone 8本地化多语言支持的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【python】openstack管理小
- 下一篇: windows 开启防火墙策略允许ftp