引言

最近项目要在Silverlight 2应用程序中实现本地化,原以为这个过程非常简单,却没想到实现的时候一波三折,好在结果还算不错。需求是这样的,用户第一次访问的时候,默认为英文,当用户选择一种显示语言后,记录在本地,下次用户访问时直接显示已经选择的语言。现在我把整个实现的过程记录下来,希望对大家有所帮助。
本文为Silverlight 2中多语言支持实现第二部分。

苦笑不得的缺陷

在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中设置的语言文化,在编译后,打包到AppManifest.xaml中添加AssemblyPart时是按照语言文化的字母顺序排列的,所以会默认支持最上面一种语言文化:
好了,现在大家知道了在Silverlight 2 Beta 2中最多只能支持两种语言,但愿在RTM时该问题已经不复存在。

另类多语言实现

现在我们再来看一种另类的多语言实现,即如果为一个Silverlight项目同时生成支持不同语言文化的多个xap文件。我们可以在解决方案中添加一个新的Build Tag,如下图所示:
然后我们可以编辑Silverlight项目文件.csproj,可以在我们新建的Build Tag下面添加一项SupportedCultures配置,并指定一种语言文化:
现在我们在Web测试项目中,配置一下xap文件的输出,只需要点击Change按钮就可以了,使Configuration Specific Folders变为Yes,如下图所示:
这样可以我们通过修改Build Tag,来实现在Web测试项目中同时输出多个xap文件,而这些xap文件将支持不同的语言,并且不会互相覆盖,如下图所示:
 
这样我们就可以用一个Silverlight项目来输出支持不同的语言文化的xap文件。

总结

通过这两篇文章我分析了Silverlight 2 Beta 2中多语言支持的实现,以及当前版本存在的问题等。希望对大家有所帮助!
示例下载
本文转自lihuijun51CTO博客,原文链接: http://blog.51cto.com/terrylee/83041,如需转载请自行联系原作者

Silverlight 2中多语言支持实现(下)相关推荐

  1. Silverlight 2中多语言支持实现(上)

    引言 最近项目要在Silverlight 2应用程序中实现本地化,原以为这个过程非常简单,却没想到实现的时候一波三折,好在结果还算不错.需求是这样的,用户第一次访问的时候,默认为英文,当用户选择一种显 ...

  2. [Toolkit]最新Silverlight Toolkit中的DragDrop支持

    我在昨天的文章中介绍了Silverlight Toolkit最新更新的一些情况,其中最令人兴奋的就是其拖拽(Drag&Drop)操作的支持. 由于项目原因,我还未安装toolkit的十月份更新 ...

  3. 您对TOP Server的德语、中文和日语语言支持了解吗?(二)

    2019独角兽企业重金招聘Python工程师标准>>> 下载TOP Server OPC Server最新版本 TOP Server文档支持 除了特定于驱动程序的属性/设置之外,还包 ...

  4. c语言中 允许函数重载么,简述C++语言支持函数重载问题介绍

    对于C++语言作为一种欲与C兼容的语言,C++语言保留了一部分过程式语言和特点,foo_int_int这样的名字包含了函数名.函数参数数量及类型信息,C++语言就是靠这种机制来实现函数重载的. 因而它 ...

  5. c语言添加输入函数吗,C语言scanf()函数下支持中文输入吗?

    C语言scanf()函数下支持中文输入吗? C语言scanf()函数下支持中文输入吗? 如果我编写一个程序,要求是先输入姓,再输入名,然后按照常姓名的方式排列出来,如果我需要输入中文该怎么办? 搜索更 ...

  6. qt支持的html5,用 Qt 5 中实现多国语言支持

    Qt5 实现多国语言 引言 目的:自用/笔记 时间:2018-02-13 01:13 平台: Windows 7 项目:将英语界面添加德语和土耳其语翻译 步骤 使用默认语言写出整个工程,这里使用英语作 ...

  7. ios中safari无痕浏览模式下,localStorage的支持情况

    前言 前阶段,测试提了个bug,在苹果手机中无痕模式下,搜索按钮不好使,无法跳页,同时搜索历史也没有展示(用户搜索历史时使用localStorage存储). 正文 iOS上Sarfari在无痕模式下, ...

  8. c 程序多语言,怎样在程序中利用C支持多国语言

    怎样在程序中利用C支持多国语言 本文以emule为例,探讨一下多国语言支持的实现.选择emule,因为它的多国语言支持实现的相当好,可以支持动态切换.而且最关键,它是开源的,可以直接通过源码来研究它的 ...

  9. 微软在动态语言支持上超越了Java?

    当.NET在2000/2001年第一次发布的时候,Java社区认为它仅仅是从语言以及标准库上对Java的一个"克隆".我们把二者的简单实例代码进行比较以后就可以很轻易地得出这样一个 ...

  10. c语言图形方式初始化,c语言图形方式下的编程.doc

    c语言图形方式下的编程.doc C语言图形方式下的编程 学习目标 ·了解PC显示系统的结构 ·C语言图形初始化的一般方法 ·C语言常用的图形处理函数 显示系统简介 PC机显示系统一般是由显示器和显示卡 ...

最新文章

  1. CentOS 6、7 安装 Golang
  2. php控制台脚本错误输出到php_errors.log
  3. js、jQuery实现自定义弹出框效果
  4. IntelliJ IDEA 新版本又来了,修复严重 bug!
  5. 搭建一个wordpress
  6. ME525+ Defy+ 刷机指南[zz]
  7. 十八掌教育_徐培成_Hadoop3.0-01.简介
  8. 无法从“cstring”转换为“lpcstr”_别用Sketchup一个个转模型的版本了,用这些批量转换器真香…...
  9. canal.adapter启动报错Could not resolve placeholder ‘HOSTNAME%%.*‘
  10. (收藏)C# .NET开发工具
  11. php没有错误信息,php – 如何调试没有错误信息的错误?
  12. oracle 无法归档日志,报all online log need archiving
  13. OpenCV 源码中分水岭算法 watershed 函数源码注解
  14. CentOS8中如何支持TL-WDN7200H无线USB网卡?
  15. docker内创建文件夹失败
  16. 新唐单片机移植RT-Thread,Finsh组件的接口函数编写
  17. 100个python算法超详细讲解:存钱
  18. 怎么让c语言程序右边对齐,c语言中的对齐方式
  19. html让视频跟图片之间无缝,图片、样式、音视频之间的无缝拼接,教你一个万能方法!...
  20. 【分享贴】硬件电路设计思路

热门文章

  1. 【转】恢复默认vs2005
  2. Silverlight概要
  3. 智能优化算法:旗鱼优化算法-附代码
  4. 总体和样本、统计量和抽样分布
  5. 2 java内存模型是什么_java中内存模型是什么?有什么用?
  6. ASM的基础使用 Android 自动化埋点方案原理剖析
  7. Android-Universal-Image-Loader学习笔记(一)
  8. mysql 文本处理函数,MySQL常用的文本处理函数
  9. Go基础-go的源码文件以及常用命令
  10. web自动化知识点-03