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时该问题已经不 复存在。

时间: 2024-08-03 02:35:30

Silverlight 2中多语言支持实现(下)的相关文章

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

引言 最近项目要在Silverlight 2应用程序中实现本地化,原以为这个过程非常简单,却没想到实现的时候 一波三折,好在结果还算不错.需求是这样的,用户第一次访问的时候,默认为英文,当用户选择一种显 示语言后,记录在本地,下次用户访问时直接显示已经选择的语言.现在我把整个实现的过程记录下来, 希望对大家有所帮助. 准备工作 我们发现在Silverlight 2中提供了ResourceManager类,这意味着可以通过资源文件来实现,首先在 Silverlight项目中建立一个文件夹,命名为R

.NET Framework 中多语言支持的实现

前言 曾经记得在 win32 的原生代码编程时代,为实现一个多语言界面而绞尽脑汁,因此出现了大量的教程都是教你如何让程序实现多语言支持,这些实现方法的技术水平参差不齐,很难找到好的框架实现在商业程序中..NET 时代的到来,我们突然发现这一切变得那么简单,你只需轻松点击鼠标就可以让你的程序完美实现多语言支持. 我不想在这里过多的解释文中出现的概念,因为 MSDN 已经为我们提供了完全本地化的技术文档. 正文 我用的是 Visual Studio 2003 中的 Visual C#.NET 来实现

扩展ArcGIS API for Silverlight/WPF 中的TextSymbol支持角度标注

原文 http://blog.csdn.net/esricd/article/details/7587136 在ArcGIS API for Silverlight/WPF中原版的TextSymbol只能支持文字正向显示.在很多实际项目中,往往需要文字标注有一些角度甚至是沿线标注,下面 我们来看一下原装的TextSymbol和扩展后的TextSymbol的比较和实现思路. 要实现右图的效果只需要从TextSymbol继承一个Symbol并增加Rotation属性,并加载相应的控件模板就行了. 以

本地化SilverLight应用程序(多语言支持)

原文 http://www.cnblogs.com/seaworm/archive/2010/11/30/1892325.html 利用资源文件(Resources File)使SilverLight支持多语言. 1. 创建一个SilverLight应用程序. 2. 添加一个资源文件,命名为ApplicationStrings.resx. 3. 添加String类型的资源,这里添加 UsernameString:User Name.设置Access Modeifer为Public. 4. 为了让

如何在程序中利用C++支持多国语言

本文以emule为例,探讨一下多国语言支持的实现.选择emule,因为它的多国语言支持实现的相当好,可以支持动态切换.而且最关键,它是开源的,可以直接通过源码来研究它的实现技术. emule是利用动态加载资源DLL来实现多语言切换的,每一个资源DLL中包含了一份对应某一语言的字符串表.在源码的srchybridlang 路径上可以发现一个lang解决方案,其中包含了差不多40个项目,每个项目编译出来都是一个单独的DLL.这些DLL在程序安装时拷贝到指定的目录中.每个DLL里面都是一个大的stri

J2ME中的字符串管理和多语言支持

近期学习j2me开发,也谈谈我对字符串管理的一个方案. 字符串管理的目的是字符串的资源化管理. 1.这个系统应该可以通过静态方法访问; 2.字符串保存在资源当中; 3.可以方便的切换各种语言以达到多语言支持; 4.字符串资源有一个名字,通过名字访问该资源; 5.名字的规则应该是类名+内部名称. 下一个问题就是资源以何种格式存储的问题: 按理说xml是理想的方式,但是考虑到j2me系统的特殊性,采用plain text更为合适 格式是string-name string-value name和va

Microsoft SQL Server 2005 中的 XML 支持(1)

本文探讨 SQL Server 2005 中内置的 XML 支持.描述了这种支持如何与 .NET 框架 V2.0 和本机代码(例如 OLEDB 和 SQLXML)均支持的客户端编程相集成. 一.简介 可扩展标记语言 (XML) 作为一种与平台无关的数据表示形式已被广泛采用.它对于在松散耦合且完全不同的系统,以及各种企业到企业 (B2B) 应用和工作流范畴内交换信息是很有用的.数据交换已成为 XML 技术的主要驱动力之一.. XML 在企业应用程序中的使用正日益广泛,它主要用于对半结构化和非结构化

Visual Basic .NET中的语言创新

visual Visual Basic .NET中的语言创新 引言 要快速地创建企业Web应用程序,开发人员必须依靠可伸缩的.健壮的.可重用的商务逻辑.在过去的几年中,面向对象的程序设计已经成为了创建满足这些需求的系统的主要技术.使用面向对象的程序设计语言可以使得大型系统更容易理解,更容易调试,并且更新速度更快. 为了使Visual Basic开发人员从面向对象的设计中获益,简化企业Web应用程序的开发,将在Visual Basic的下一个版本 - Visual Basic .NET中支持包括实

Silverlight开发中如何为Silverlight添加双击事件

在日常的开发中鼠标的事件是我们使用的最多的事件,但是在Silverlight中,只支持以下六种有限的鼠标事件:MouseEnter. MouseLeave.MouseLeftButtonDown.MouseLeftButtonUp.MouseMove.MouseWheel.这给我们的开发造成了不小的麻烦,还好 Silverlight支持强大的附加属性机制,这里就指导大家如何通过附加属性来给Silverlight添加鼠标的双击事件. 附加属性是Silverlight也是WPF中最具创新也是最强大的