Silverlight 2中多语言支持实现(下)

简介:

引言

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

苦笑不得的缺陷

Silverlight 2中多语言支持实现(上)文章的最后,我们通过修改项目文件中SupportedCultures来实现了多语言的支持,之所以能够成功,是因为前面的示例中只有两种语言English和Chinese,现在我们再添加一个资源文件Strings.fr-FR.resx,让它能够支持French,如下图所示:
TerryLee_0022
感谢我的同事Fabien帮我翻译为French,同样我们打开项目文件,在SupportedCultures中添加一种语言文化fr-FR,我们可以用逗号或者分号来分割,如下代码所示:
TerryLee_0023
现在我们解压xap文件,可以看到fr-FR、zh-CN资源文件都正确的打包在了xap文件中,如下图:
TerryLee_0024 
现在运行程序时,却发现中文语言文化无法显示,而法文能够正常显示:
TerryLee_0025
这就是Silverlight 2 Beta 2在本地化方面支持的一个Bug,它只能够支持除默认语言之外的一种语言。有朋友可能会问,既然能够支持除默认语言之外的一种语言,为什么在这个示例中不是中文,而是法文呢?这主要是在SupportedCultures中设置的语言文化,在编译后,打包到AppManifest.xaml中添加AssemblyPart时是按照语言文化的字母顺序排列的,所以会默认支持最上面一种语言文化:
TerryLee_0026
好了,现在大家知道了在Silverlight 2 Beta 2中最多只能支持两种语言,但愿在RTM时该问题已经不复存在。

另类多语言实现

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

总结

通过这两篇文章我分析了Silverlight 2 Beta 2中多语言支持的实现,以及当前版本存在的问题等。希望对大家有所帮助!
示例下载











本文转自lihuijun51CTO博客,原文链接: http://blog.51cto.com/terrylee/83041 ,如需转载请自行联系原作者

相关文章
|
自然语言处理 iOS开发
iOS 国际化(多语言)如何指定默认语言
iOS 国际化(多语言)如何指定默认语言
358 0
|
8月前
|
存储 自然语言处理 监控
【Unity 实用工具篇】| 游戏多语言解决方案,官方插件Localization 实现本地化及多种语言切换
Unity的多语言本地化是一个很实用的功能,它可以帮助游戏支持多种语言,让不同语言的玩家都能够更好地体验游戏。 而实现本地化的方案也有很多种,各个方案之间也各有优劣,后面也会对多个方案进行介绍学习。 本文就来介绍一个专门作用于多语言本地化的Unity官方插件:Localization 。 这个插件方便进行游戏的多语言本地化,让游戏支持多种语言,下面就来看看该插件的使用方法吧!
|
8月前
|
自然语言处理 中间件 开发者
Django的国际化与本地化支持:打造多语言应用
【4月更文挑战第15天】Django,一款强大的Web框架,内置出色的支持国际化和本地化功能,使得创建多语言应用变得简单。本文介绍了国际化(i18n)与本地化(l10n)的概念,阐述了Django的相应机制,包括标记可翻译字符串、提取与翻译、设置语言和地区、本地化格式处理。遵循文中步骤,开发者能有效构建适应不同语言和地区需求的Web应用,提升用户体验。
|
自然语言处理 C#
你听我说-HandyControl多语言包处理
你听我说-HandyControl多语言包处理
211 0
|
自然语言处理
QtApplets-国际化多语言设置
QtApplets-国际化多语言设置
162 0
QtApplets-国际化多语言设置
|
XML JSON 自然语言处理
一步一步实现网站的多语言版本
网站在开发的过程中需要实现多语言版本,我们暂且认为有英语和汉语两个版本。网站结构包括,UI过程,rest服务,以及相应的js,各个部分我们都要实现多语言,不要求一键切换,但是在部署过程中要能实现多与语言配置。
2509 0
|
数据安全/隐私保护 .NET 开发框架