设为首页 收藏本站
查看: 1125|回复: 0

Windows Phone 7 应用程序的全球化,两篇文章介绍国际化

[复制链接]

尚未签到

发表于 2015-5-14 08:47:59 | 显示全部楼层 |阅读模式
  第一篇:
  Windows Phone 应用程序的全球化跟Silverlight做法一样,如果大家熟悉Silverlight的全球化,可以不看此文。本文一个具体的Demo介绍wp7应用程序如何实现本地化,并在本地化的一些注意点。
  1. 创建windows phone 7 应用程序,命名为wp7Global
  2. 右击项目,选择添加新项目,选择Resources File,命名为AppResource,如下图。点击确定
  
DSC0000.png   
  3. 假设我们程序的默认语言是英文的,则刚刚添加的资源文件就是我们程序默认的语言资源文件,右击项目wp7Global选择属性,打开属性页,点击Assembly Information按钮,将Neutral Language设置为English (United States),如下图
  
DSC0001.png   
  4. 添加简体中文、繁体中文的资源文件,注意文件的命名规则,如我们要添加中文的资源文件,则该资源文件的命名方式为AppResource.zh-CN.resx,繁体中文为AppResource.zh-TW.resx,关于更多语言的命名可以参考MSDN CultureInfo。 添加后的项目解决方案大致如下图
  
DSC0002.png   
  5. 关闭项目,使用文本编辑工具(如UltraEdit,EditPlus,Notepad++等)打开项目文件wp7Global.csproj,找到SupportedCultures标签,在标签中输入zh-CN;zh-TW;表示项目支持的语言。如下图
  
DSC0003.png   
  6. 重新打开项目,打开默认语言资源文件AppResource.resx,将Access Modifier修改为public,如下图
  
DSC0004.png   
  7. 创建一个用于指向语言资源文件的类,这里我们将其命名为LocalizedStrings,类中提供一个类型为资源文件的属性,具体的代码如下
  
DSC0005.png   
  8. 将LocalizedStrings定义到项目资源中,即App.xaml中,具体代码如下
  
DSC0006.png   
  9. 然后我们就可以在我们的程序中,使用如下的代码进行国际化了

Text="{Binding Path=Localizedresources.HelloWorld, Source={StaticResource LocalizedStrings}}"  10. 为了演示具体的效果,这里创建一个设置语言的页面,命名为Setting,在页面中放置3个RadioButton,分为代表不同的语言,如下图:
  
DSC0007.png   
  11. 设置它们的Check事件均为SelectLanguage,事件方法体如下:
  
DSC0008.png   
  12. 上述事件方法中涉及到一个静态帮助类,AppSettingHelper。是一个应用程序配置信息的帮助类。其代码如下:
  
DSC0009.png   
  13. 在三个资源文件中增加资源,HelloWorld,如下图:
  
DSC00010.png   
  14. 在App.xaml.cs的构造函数中设置程序的语言,大致代码如下
  
DSC00011.png   
  15. 运行程序,可以看到默认显示出来的是Hello World。点击Setting按钮,设置语言为zh-CN,然后点击开始键,重新进入程序,发现Hello World变成了“你好,世界”。
  
DSC00012.png   
  ok,国际化的步骤大致如上。下面讲讲在国际化时的一些注意事项。
  1.在资源文件中不要加入类似这样的字符串等,Key一般是字符串,并且能够更好的描述其代表的字符串,如AppSetting,就可以代表应用程序设置。
  2.一门语言一个资源文件
  3.将文本框等控件启动multiline ,将WRAP设置为text-wrapping 以允许字符串在不同言语下长度不一致的问题
  4. 将一个句子本地化,不要把句子拆开来,中间的变量我们可以使用{0}代替
  更多的注意事项参考 http://msdn.microsoft.com/en-us/library/ff967552(v=VS.92).aspx
  
DSC00013.gif 源码下载
  
  
本文来自Alexis的博客,原文地址:http://www.iyunv.com/alexis/archive/2011/05/15/2046774.html
  
  
  第二篇:
  我们知道Windows Phone 中ApplicationBar的Text属性不是依赖属性,不能采取绑定的方法实现文本的国际化,那么我们在实际开发中是怎么实现ApplicationBar的文本多语言的呢?有如下几种方法:
  1. 在后置代码中生成AppBar,文本使用资源文件
  这种方法是最简单的方法,就是在将XAML代码翻译为C#代码,其中的一个好处就是Text可以国际化。
  2. 使用静态资源
  这个方法类似于样式,即Text={"StaticResource Appbar_Save"}的形式。
  在练习本篇Demo之前,大家最好先看下《Windows Phone 应用程序的全球化》 ,其中涉及到的一些具体细节在本篇中就不说了。
  大致界面如下,为了方便起见,我们在改变语言后就更改当前环境的语言,而导航到另一页面后语言资源就会重新加载。
  注:界面语言只有在InitializeComponent 的时候才会被重新加载
  
DSC00014.png   
  首先来看下后置代码的实现方式:
  
DSC00015.png   
  在代码中设置Text属性,AppResource是什么?--不解释
  再来看下静态资源的实现方式:
  在页面中设置Text属性为静态字符串
  
DSC00016.png   
  那这些静态资源是再哪里定义的呢?
  新建三个资源XAML(跟Style一样)
  
DSC00017.png   
  ok,再来看下我们改变语言时会做些什么-- 不解释:)
  
DSC00018.png   
  那如果让应用程序找到静态资源文件呢?我们需要将资源文件动态添加到内存中,如下:
  注:由于是资源文件,所以需要加上/项目;component/ 不然会找不到资源
  
DSC00019.png   
  想看运行效果,自己运行Demo吧:
  
源代码下载
  
  本文来自Alexis的博客,原文地址:http://www.iyunv.com/alexis/archive/2011/09/07/2170276.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-66784-1-1.html 上篇帖子: Windows Phone 7 浏览器打开新窗口问题 下篇帖子: windows 7 家庭网络与办公网络有何不同?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表