用Universal Windows Platform(UWP)进行本地化基于前面学习的概念,但带来了一些新理念,如下所述。为了获得最佳的体验,需要通过Visual Studio Extensions安装Multilingual App Toolkit。
区域性、区域和资源的概念是相同的,但因为Windows应用程序可以用C#和XAML、C++和XAML、JavaScript和HTML来编写。因此,用于全球化和资源的新名称空间可通过Windows Runtime来使用:Windows.Globalization和Windows.ApplicationModel.Resources。在全球化名称空间中包含Calendar、GeographicRegion(对应于.NET的RegionInfo)和Language类。
在其子名称空间中,还有一些数字和日期格式化类随着语言的不同而改变。在C#和Windows应用程序中,仍可以使用.NET类表示区域性和区域。
下面举一个例子,说明如何用Univeral Windows应用程序进行本地化。使用Blank App(Universal Windows)Visual Studio项目模版创建一个小应用程序。在页面上添加两个TextBlock控件和一个TextBox控件。
在代码文件的OnNavigateTo()方法中,可以把具有当前区域格式的日期赋予text1控件的Text属性。DateTime结构可以用非常类似于本章前面控制台应用程序的方式使用:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
text1.Text = DateTime.Today.ToString("D");