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