最近看到了一个功能,就是系统语言切换了之后应用名称也跟着本地化了,感觉这个功能好棒于是研究了下!!终于实现了!!这个好棒的功能你们一定要加上,瞬间感觉国际范了有没有!
------------------------------分割线-------------------------------------------------
●先看看实现后的效果
首先,下载非特定语言资源项目
下载:非特定语言资源项目
解压,点开到路径 Language-Neutral Resource Project\C++,双击打开AppResLib.sln打开解决方案。然后在【解决资源管理器】右击Resource Files下的AppResLib.rc文件,选择“查看源码”。
●然后修改上图红框部分,AppTitle和AppTileTitle分别是应用列表显示名称和WP磁贴显示名称,首先我们先生成英文的本地化文件,则把此处改成对应的英文名称。把解决方案设置改为Release模式,按f6生成解决方案。
●生成之后打开路径 Language-Neutral Resource Project\C++\Release 找到AppResLib.dll文件,修改为AppResLib.dll.0409.mui。
●为什么要改成这个名称呢???我们看看官方的描述。
●至于各个本地化区域命名格式,请在此链接查阅:点我
●到这个步骤的时候,一个【英语(美国)】的本地化文件就生成好了,重复上面的步骤生成好需要的本地化文件。
那么如果对应区域的本地化文件会怎么样呢?
答案是:需要提供一个AppResLib.dll(生成步骤跟上面一样),如果没有对应区域的本地化文件,就会读取该文件里面的本地化内容。
最后生成的本地化文件如下图:
●至此本地化文件生成工作已经完成,接下来要放到项目中使用了。
首先,将Language-Neutral Resource Project\C++\Release路径下的所有*.mui文件和AppResLib.dll文件拷贝到项目顶级目录(跟.xaml同级),然后选择解决方案右键“添加 现有项”把所有*.mui文件和AppResLib.dll添加到项目中。选中添加的所有文件,打开【属性】面板,修改【复制到输出目录】为始终复制。
●然后,打开WMAppManifest.xml文件,切换到【应用程序 UI】标签,修改显示名称为@AppResLib.dll,-100,磁贴标题修改为@AppResLib.dll,-101。
●至于为什么后面,-100是什么东西呢???
答案是:在解决方案中双击AppResLib.dll文件,展开String Table标签,双击进入目录下的文件,会看到值。对应的就是这的100和101了。(记得确认下)
●OK!!大功告成!!还是挺麻烦的不过这个效果很棒。接下去就可以编译啦!切换系统语言就可以看到效果了!屌屌的!
参考文章:
https://msdn.microsoft.com/library/windows/apps/ff967550(v=vs.105).aspx
●PS:打个公告。看到这篇文章的你们,我的APP【皮克大冒险】在IOS、安卓、windows phone应该都已经在各个平台都可以搜到啦!记得一定要支持哦!去APP评论区点赞评论!给我们千辛万苦的独立开发者鼓励!!