WP7多国语言支持
来源:互联网 发布:身份证号查手机号软件 编辑:程序博客网 时间:2024/04/28 14:50
WP7多国语言支持
Kagula
2011/3/17
前言
本文阅读对象是有一定Visual Studio 2010使用经验的程序员。
这里通过一些示例介绍如何让你的Windows Phone7 With Silverlight应用程序支持多国语言。
写本文时的开发环境为Visual Studio 2010专业版 with Windows Phone7开发包。使用的开发语言为C#
正文
语言定义采用“region-neutral”格式,例如,zh-CN 为中国(中华人民共和国),zh-TW为中国台湾,其它定义,参考附录[1]。
右键单击[project name]->[Properties]->Application页面->点击[Assembly Information]->设置[Neutral Language]为[English(United States)],即默认语言为英文(美国), 当然在这里可以选择其它默认语言。
实现本地化
添加资源文件
右键[project name]->[New Folder]命名为Resources。
右键[Resources]->[Add]->[New Item]->[Installed Templates]->[Visual C#]->[General]->[Resources File]->给待添加的资源文件起名为StringLibrary.resx,确保“Access Modifier”为“Public”。添加一条字符串资源定义:Name列填“HelloWorld”,Value列填“Hello,World!”。当Silverlight找不到你指定的语言所对应的资源时,会从这个文件取资源。
添加第二个资源文件起名为“StringLibrary.en-US.resx”,添加一条字符串资源:Name列填“HelloWorld”,Value列填“Hello,World!”。确保“Access Modifier”为“No Code Generation”。
添加第三个资源文件起名为“StringLibrary.zh-CN.resx”,添加一条字符串资源定义:Name列填“HelloWorld”,Value列填“你好,世界!”。确保“Access Modifier”为“No Code Generation”。
添加第四个资源文件起名为“StringLibrary.ja.resx” ,添加一条字符串资源定义:Name列填“HelloWorld”,Value列填“こんにちは、中国!”。确保“Access Modifier”为“No Code Generation”。
右键单击[project name]->[Unload Project]
右键单击[project name]->[Edit]
找到<SupportedCultures>标签对,在里面添加“en-US;zh-CN;ja”,如果你还支持其它多种语言,需要使用“;”符号分隔。比如“zh-CN; fr;fr-FR;ru;ru-RU;”具体含义查看附录[1]
右键单击[project name]->[Reload Project]
C#代码示例
XAML代码示例
在XAML本地化之前先添加class,C#代码如下
然后App.xaml中添加如下代码
上面这段代码的“Application.Resources”标签是原来就在的。里面的内容才是你需要添加的。
最后你的XAML代码可以实现本地化了,样例代码如下
其中Text="{Binding Path=Resource1.HelloWorld, Source={StaticResource LocalizedStrings }}" 的作用我做一下解释。 LocalizedStrings是你刚才新建的class的名称。Resource1是你刚才新建的class定义的属性。HelloWorld则是key,用来在资源文件中搜索资源。如果你当前的UICulture是“zh-CN”,则Text属性的值会被“你好,世界!”这个字符串代替。
改变System.Threading.Thread.CurrentThread.CurrentUICulture的值后,在InitializeComponent执行后,你当前页面的UI才会反应对当前语言的修改。
[1]《Culture Info Class》 http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=VS.95).aspx [2]《Localizing Silverlight-based Applications》 http://msdn.microsoft.com/en-us/library/cc838238(v=VS.95).aspx#localization_and_resource_files 663附录
- WP7多国语言支持
- 多国语言支持
- 支持多国语言
- struts多国语言支持
- WINCE多国语言支持
- Android支持多国语言
- delphi支持多国语言简单方法
- WinCE中支持多国语言切换
- WinCE中支持多国语言切换
- WinCE中支持多国语言切换
- iphone 创建多国语言的支持
- WinCE设置多国语言支持
- 利用C++支持多国语言
- 对话框多国语言的支持
- iphone 创建多国语言的支持
- 移动终端的多国语言支持
- WinCE设置多国语言支持
- WPF应用程序支持多国语言解决方案
- javascript遍历数组的两种方法
- Asp.net程序性能优化的七个方面之五(配置web.config)
- 动态AVL树代码
- JS获取getYear()在IE和火狐中的兼容性问题解决方法
- Asp.net程序性能优化的七个方面之六(其他)
- WP7多国语言支持
- Asp.net程序性能优化的七个方面之七(性能测试)
- php学习笔记:第三节--php中的字符串
- Headphones Knowledge
- wsprintf
- 写点啥呢,报考个系工,留个脚印~
- Intel CPU 地址空间总结
- 25条趣味段子
- SSH整合的配置文件