苦笑不得缺陷 在Silverlight 2中多语言支持实现(上)文章最后我们通过修改项目文件中SupportedCultures来实现了多语言支持的所以能够成功是前面举例中只有两种语言English和Chinese现在我们再添加个资源文件Strings.fr-FR.resx让它能够支持French如下图所示:
感谢我同事Fabien帮我翻译为French同样我们打开项目文件在SupportedCultures中添加种语言文化fr-FR我们可以用逗号或者分号来分割如下代码所示:
现在我们解压xap文件可以看到fr-FR、zh-CN资源文件都正确打包在了xap文件中如下图:
现在运行时却发现中文语言文化无法显示而法文能够正常显示:
这就是Silverlight 2 Beta 2在本地化方面支持个Bug它只能够支持除默认语言的外种语言有朋友可能会问既然能够支持除默认语言的外种语言为什么在这个举例中不是中文而是法文呢?这主要是在SupportedCultures中设置语言文化在编译后打包到AppManest.xaml中添加AssemblyPart时是按照语言文化字母顺序排列所以会默认支持最上面种语言文化:
好了现在大家知道了在Silverlight 2 Beta 2中最多只能支持两种语言但愿在RTM时该问题已经不复存在
另类多语言实现 现在我们再来看种另类多语言实现即如果为个Silverlight项目同时生成支持区别语言文化多个xap文件我们可以在解决方案中添加个新Build Tag如下图所示:
然后我们可以编辑Silverlight项目文件.csproj可以在我们新建Build Tag下面添加项SupportedCultures配置并指定种语言文化:
现在我们在Web测试项目中配置下xap文件输出只需要点击Change按钮就可以了使Configuration Specic Folders变为Yes如下图所示:
这样可以我们通过修改Build Tag来实现在Web测试项目中同时输出多个xap文件而这些xap文件将支持区别语言并且不会互相覆盖如下图所示:
这样我们就可以用个Silverlight项目来输出支持区别语言文化xap文件
整理总结 通过这两篇文章我分析了Silverlight 2 Beta 2中多语言支持实现以及当前版本存在问题等希望对大家有所帮助!
最新评论