Windows 8本地化多语言支持
在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");
3.XAML中使用静态资源(类似WP8中的使用方式)
在XMAL中的使用Win8的这种通过x:Uid关联的方式有时候会造成资源文件中某个字段的重复出现,比如一个TextBlock控件和一个Button控件都需要一个"确定”的本地化资源,那么就需要在资源文件中重复添加“确定”资源。而像WP8中的使用就不会出现这种情况(详细参考我的上一篇博客)。Win8中未提供此种方式的实现,因此需要添加代码实现,一下给出实现方式。
首先向项目中添加LocalizedStrings类,名称可自己定,示例代码如下:
using Windows.ApplicationModel.Resources;
using System.Diagnostics.CodeAnalysis; namespace HuiZhang212
{
/// <summary>
/// 控件中使用资源
/// </summary>
[SuppressMessage("Microsoft.Design", "CA1053:StaticHolderTypesShouldNotHaveConstructors", Justification = "Making this class static breaks its use as a resource in generic.xaml.")]
public class LocalizedStrings
{
private static ResourceLoader ResourceLoader = new ResourceLoader(); /// <summary>
/// 获取本地资源 “AppTitle”对应的字符串
/// 从Resources.resw中获取
/// </summary>
public static string AppTitle { get { return ResourceLoader.GetString("AppTitle"); } }
}
}
其次需要在App.xaml中添加如下一行代码:
<local:LocalizedStrings x:Key="LocalizedStrings"/>
此行代码在App.xaml中位置见下图

最后就是在XAML中的使用方式了,代码示例如下:
<TextBlock Text="{Binding AppTitle, Source={StaticResource LocalizedStrings}}" />
关于国际化的详细用法请参考微软MSDN文档全球化你的应用(使用 C#/VB/C++ 和 XAML 的 Windows 应用商店应用)。
Windows 8本地化多语言支持的更多相关文章
- Windows Phone 8本地化多语言支持
原文 Windows Phone 8本地化多语言支持 在WP8平台处理本地化多语言的支持还是比较容易的,大部分工作都有VS IDE处理,开发者只需简单操作,并翻译本地资源即可实现. 无论您目前的应用是 ...
- ios调用系统相册、相机 显示中文标题、本地化多语言支持
因为调用系统相册.相机需要显示中文,所以搞了半天才知道是在Project->info->Custom ios Target Properties 添加 Localizations 并加入C ...
- DDD开发框架ABP之本地化/多语言支持
本地化(Localization)也就是多语言功能,借此用户能够选择他的母语或熟悉的语言来使用系统,这显然非常有利于软件系统推向国际化.一个应用程序的UI界面至少有一种语言,DDD开发框架ABP就提供 ...
- ios本地化多语言支持
右键 -> new file -> resources -> strings file 一定要命名为: Localizable.strings 点击这个文件 -> xocde ...
- PHP Laravel 本地化语言支持
That`s it. 我发如今网上Laravel的学习资料实在是太少了.好多东西须要自己去弄.去理解. 我的方法另一个,就是去github上面下载老外写的Laravel站点,然后拿下来自己执行 ...
- ASP.NET Core搭建多层网站架构【13-扩展之支持全球化和本地化多语言】
2020/02/03, ASP.NET Core 3.1, VS2019, ResXManager 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构[13-扩展之支持全球化 ...
- 分享两种实现Winform程序的多语言支持的解决方案
因公司业务需要,需要将原有的ERP系统加上支持繁体语言,但不能改变原有的编码方式,即:普通程序员感受不到编码有什么不同.经过我与几个同事的多番沟通,确定了以下两种方案: 方案一:在窗体基类中每次加载并 ...
- 不可或缺 Windows Native (1) - C 语言: hello c
[源码下载] 不可或缺 Windows Native (1) - C 语言: hello c 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 在 Windows Sto ...
- 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出
[源码下载] 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 预处理命令 输入 ...
随机推荐
- 编译v8引擎
本机环境是win7+vs2010(本来想用2012的,但是发现默认的项目是2010的) 1.首先下载V8的源码 安装好svn,并在cmd下能使用svn help: svn下载地址(安装包):http: ...
- java读取XML文件的四种方式
java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...
- web.xml的运行顺序
整体上的顺序为 <context-param> <listener> <filter> <servlet> 往下依次运行. 当中,每一个类别内部都是按序 ...
- jQuery Fancybox插件说明
这里有jquery影像回放路径插件称为Fancybox,项目主页地址:http://fancybox.net/ Fancybox的特点例如以下: 1.能够支持图片.html文本.flash动画.ifr ...
- Shell split character line by line
while read line do account=`echo "$line"| cut -c1-9`'|' account ...
- 如何解决Windows8.1(32bit&64bit)下Cisco VPN Client拨号时报442错误的问题
Cisco VPN Cient大多数网络管理员.技术支持project最流行的教师和最终用户VPNclient一间.对于外部网络访问内部网络,技术类人员. 随着Windows8.1的推出.Cisco ...
- HTTP/1.1
HTTP真的很简单 原文:HTTP Made Really Easy因为我本身网络基础就很差,所以看到这篇文章一方面是学习网络知识,另一方面为了锻炼我蹩脚的英语水平,文中如有错误,欢迎浏览指正! ...
- 使用dom4j创建和解析xml
之前工作中用到了,相信写java的都会碰到xml,这里写了两个方法,创建和解析xml,废话不多说,直接上代码 package xml; import java.io.File; import java ...
- C 和 C++ 的速度相差多少,你知道吗?
有谁清楚这个事实吗 ? 网络游戏速度至关重要, 是游戏质量的唯一标准, 尤其是即时格斗, 相差几毫秒都会影响用户体验 ! 哪怕就是 5% 的效率损失,也是 差之毫厘,失之千里, 游戏的速度是程序语言天 ...
- Android:What is ART?
背景:Android4.2之前,安卓手机系统的应用程序均在Dalvik Java的虚拟机上执行,这样的执行模式还要依靠一个编译器来实现与应用程序的沟通.应用程序每次执行时,都须要将程序内的代码转变为机 ...