Welcome

首页 / 软件开发 / .NET编程技术 / Windows 8 Store Apps学习(57) 本地化和全球化

Windows 8 Store Apps学习(57) 本地化和全球化2014-03-09 cnblogs webabcd介绍

重新想象 Windows 8 Store Apps 之 本地化和全球化

本地化 - Demo

本地化 - 改变语言

全球化 - Demo

全球化 - 格式化数字

示例

1、演示本地化的基本应用

Localization/LocalizationDemo.xaml

<Pagex:Class="XamlDemo.Localization.LocalizationDemo"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="using:XamlDemo.Localization"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d"><Grid Background="Transparent"><StackPanel Margin="120 0 0 0"><TextBlock FontSize="14.667"><Run>本地化资源文件,以下举例说明:</Run><LineBreak /><Run>1、在 en 目录下的是英文资源文件,在 zh-CN 目录下的是简体中文(zh 代表语言,CN 代表国家或地区)资源文件</Run><LineBreak /><Run>2、Resources.lang-en.resw 代表英文资源文件,Resources.lang-zh-CN.resw 代表简体中文资源文件</Run><LineBreak /><Run>3、图片资源的本地化可以参照以上命名规则,同时可与 scale 和 high contrast 相结合</Run><LineBreak /><Run>4、Package.appxmanifest 中引用的字符串也支持本地化,引用方式:ms-resource:Hello 或 ms-resource:///Resources/Hello</Run><LineBreak /><Run>5、Tile 和 Toast 中引用的字符串也支持本地化,引用方式:ms-resource:Hello 或 ms-resource:///Resources/Hello</Run><LineBreak /><Run>6、当无法找到某语言对应的资源时,系统会自动使用 Package.appxmanifest 中设置的默认语言所对应的资源</Run></TextBlock><!--通过 x:Uid 本地化控件的各个属性,请参看资源文件中的 HelloTextBlock.FontSize 和 HelloTextBlock.Text--><TextBlock x:Uid="HelloTextBlock" Margin="0 10 0 0" /><!--code - behind 方式获取本地化资源--><TextBlock x:Name="lblMsg" FontSize="14.667" Margin="0 10 0 0" /><!--图片的本地化--><Image Source="/Localization/Logo.png" Width="200" Height="100" Margin="0 10 0 0" HorizontalAlignment="Left" /></StackPanel></Grid></Page>
Localization/LocalizationDemo.xaml.cs

/* * 演示本地化的基本应用 ** 另: * Visual Studio 2012 的多语言应用程序工具包请参见:http://msdn.microsoft.com/zh-cn/windows/apps/hh848309 */using Windows.ApplicationModel.Resources;using Windows.ApplicationModel.Resources.Core;using Windows.UI.Xaml.Controls;using Windows.UI.Xaml.Navigation;namespace XamlDemo.Localization{public sealed partial class LocalizationDemo : Page{public LocalizationDemo(){this.InitializeComponent(); }protected override void OnNavigatedTo(NavigationEventArgs e){/* * ResourceLoader resourceLoader = new ResourceLoader(); - 获取默认的 ResourceLoader(Resources.resw 中的资源) * ResourceLoader resourceLoader = new ResourceLoader("MyResources"); - 获取指定的 ResourceLoader(MyResources.resw 中的资源) * ResourceLoader resourceLoader = new ResourceLoader("ClassLibrary/MyResources"); - 获取指定类库的指定的 ResourceLoader(ClassLibrary 类库中的 MyResources.resw 中的资源) */// 获取默认的 ResourceLoader(即 Resources.resw 中的资源)ResourceLoader resourceLoader = new ResourceLoader();// 通过资源标识,获取指定的资源lblMsg.Text = resourceLoader.GetString("Hello");}}}