wp8.1 全球化解决办法

时间:2021-10-11 02:06:22

最近在更新一个应用,在wp8.1里面重写整个应用,由于8.1版本的api、架构和windows8.1的接口高度相同,变化很大,在编码过程中,只能一边翻msdn资料一边摸索解决遇到的问题,其中程序标题和页面内容语言全球化问题,弄了一下午才弄清楚,发现就是这么一回事,但没找到资料前,却是痛苦了一下午,现在把相关资料整理上来,希望可以帮到有需要的朋友。

wp8.1的资源全球化,采用了和win8.1相同的方式,从wp7的手工生成到wp8的自动生成框架文件,到了8.1却是退回到手工生成,郁闷。

根据msdn的资料,在程序中建立一个命名为“strings”的文件夹,然后在该文件夹里面再创建所需要的各国语言文件夹,便如英语,就用“en”命名该文件夹,程序会自动适配以EN开头的区域语言,优先调用en的资源文件,最后在"en"文件夹里面创建一个资源文件“Resources.resw”。在“Resources.resw”里面创建自已需要的字符串资源即可,而不同的地方在于,这些文件夹不单只有控件的字符串资源,还可以创建控件的属性,具体请参阅msdn:http://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/hh965329.aspx

wp8.1 全球化解决办法

返回到要调用资源的xaml页面,在需要多国语言的控件上填上类似如下的代码即可,程序自动适配相关内容

<TextBlock x:Uid="Greeting" Text="" />

到这一步,已经可以正常调用资源了,可以运行测试一下正常与否。 上面的内容是程序里面的内容进行资源绑定,那么程序标题如何全球化呢,我翻查了msdn的资料,没找到相关内容,下载了他一个例子,才发现调用方法,不敢私藏,其实就是一句代码解决。
在Package.appxmanifest 文件中的Display name 里面,填上
ms-resource:appDisplayName

  


“appDisplayName” 是资源文件里面的name属性,即是直接调用资源属性,不用像wp8和wp7那样另外创建一个动态库来引用。省却了不少步聚。
以上只是最简单的调用方法,具体的高深研究,请自行钻研,不足之处请谅解,欢迎提出批评意见。
附上msdn上面的一个例子链接,可以去下载参考一下: http://code.msdn.microsoft.com/windowsapps/Application-resources-and-cd0c6eaa