WP8开发日志(1):Toolkit的本地化

其实此篇blog本不是这时候发表的,但由于爱恨纠缠,还是将此备忘先写下来罢,免得到时又忘记――只要自己还在弄WP的东西估计不会那么快就是啦。WP8的开发,其实跟WinRT的开发大同小异而已,满眼都是C#跟xaml,我真是恨透了xaml,可是,用惯了其实还挺上心的,新学一门技术,最困难的永远是入门。


WP8的开发环境我用的VS2013,本身支持的控件不多,如日历等就没有啦,若想从基础控件搭起恐怕有难度,WP Toolkit是微软自身开发的第三方控件库,像常用的DatePicker跟TimePicker用起来就相当方便(具体怎么加载稍后附上,自己百度的话也可以完全弄明白),不过问题在于Toolkit的本地化出现了问题,如下图所示,星期跟月份的显示就很正常,可标题跟任务栏的文字却只显示英文。因为这个问题,我几乎用了整整一天的时间去各种搜索,搜到一篇相关的帖子可还是弄不到头绪,下载了源码来看,两者APP加载时,源码的工程是会加载Microsoft.Phone.Controls.Toolkit.resources.dll的,自己新建的工程却没有这一项,可以基本判断自己的工程加载Toolkit的语言包出了问题。


wKiom1MMrfuysIrFAAB69xOmDSk407.jpg


经过一番挣扎,最终的问题原因归结为:新建工程的默认语言必须为en-US(万恶的美帝)。所以一般使用WP Express 2012英文版来开发是不会有这个问题的,顶多在工程属性里添加一项支持语言为中文(简体)就可以了。以下是具体的解决方法:


(1)修改工程的默认语言

(1-1)修改工程的AssemblyInfo.cs文件,将最后一行的默认语言改为en-US,如下。

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: NeutralResourcesLanguageAttribute("en-US")]

(1-2)为了保险起见,打开WMAppManifest.xml文件,将“打包”选项的默认语言也改为“英语(美国)”

(1-3)自然还有工程属性,将默认语言也为英语。

wKiom1MMtbTjX_K8AADEGOFdf8s234.jpg

(1-4)保存工程,再关闭工程,当你再次打开工程时,其默认语言为英语。


(2)添加中文语言的支持

重新打开刚刚修改后的工程,打开项目的属性窗口,在(1-3)图示的地方勾选“中文(简体,中国)”,如下图所示。

wKiom1MMtufxPyKuAADzQKmHans090.jpg

保存工程,你会发现在工程的Resources目录下添加了一项AppResources.zh-CN.resx,这个就是Toolkit的本地化语言包。


(3)编译运行

然后就完美支持中文啦,如下图所示:

wKioL1MMt7jQ0K0-AAB3NplhQEs570.jpg


个人觉得,这样的本地化设置的确是有点恶心,稍后附上Toolkit的源码(现在好像上传需要等一段时间的),有兴趣的朋友可以自己研究。

你可能感兴趣的:(本地化,WP8,toolkit)