Silverlight多语言的实现

1. 新建一个Resouce文件,就叫"MyStrings.resx"

  2. 在VS双击这个资源文件,右上角有一个下拉框:Access Modifier,改成Public

  3. 打开"MyStrings.Designer.cs",把构造函数从Internal设成 Public

  4. 拷贝"MyStrings.resx"添加其它的语言,例如简体中文,就是MyStrings. zh-CN.rest,注意不要生成MyStrings.Designer.cs;法语就是MyStrings.fr.resx

  5. 在资源管理器中打开工程文件*.csproj 文件,找到"SupportedCulture",用UltraEdit编辑成支持的语言(默认的不要),例如:zh-CN;fr

  6. 绑定到XAML的UIElement即可

  Silverlight4多语言实时切换

  上面的步骤不能实现即时多语言动态切换,要实现这个功能,最好实现INotifyPropertyChanged接口,参考这篇文章,以及MSDN杂志的这篇文章。

  如何取得语言的本国显示,如法语 fr 显示为 française

  让用户选择语言,这个下拉框ComboBox需要绑定,语言的索引可能是“fr”,“de”之类的,而显示的DisplayMember就应该是本国语言了,法语就是française,德语就是Deutsch。

CultureInfo _culture = new CultureInfo( "fr");
_culture.NativeName  //通过它取得法语的“法语”

Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;

  其它园友的文章参考

  关于Silverlight多语言(国际化)的实现,园子里已经有很多人说过了,比如:

  Silverlight通过MVVM实现多语言实时切换(含源代码),Silverlight 2中多语言支持实现(上),Silverlight 2中多语言支持实现(下),Silverlight多语言处理流程,玩转Silverlight本地化,MSDN:本地化基于 Silverlight 的应用程序

  我只想说相对于Flex的国际化silverlight真的做的很糟糕,居然要手工修改工程文件.csproj添加多语言:

  Flex对国际化的支持比较完整,使用上也很方便。唯一的小问题是支持额外的语言需要要执行一次copylocale命令行。

  Silverlight对国际化的支持是有问题的,虽然可以使用,但要做很多手工工作,并且需要一些work around才能成功执行。

  (这儿有详细的比较: 《Flex/Silverlight的技术比较》)

  Telerik的多语言

  针对微软的Silverlight国际化的心不在焉,也给了一些厂商机会来改善,比如下面这个:telerik提供的silverlight控件就有LocalizationManager来提供多语言和国际化支持

  

 

  下面是他们的详细信息:

  http://blogs.telerik.com/silverlightteam/posts/09-05-13/localization_for_radcontrols_for_silverlight_and_wpf.aspx

  http://blogs.telerik.com/blogs/posts/10-03-01/internationalization_globalization_in_silverlight_4.aspx

  http://blogs.telerik.com/silverlightteam/posts/09-05-30/enhancing_the_localization_support_of_radcontrols_for_silverlight_and_wpf.aspx

  http://www.telerik.com/help/silverlight/telerik.windows.controls-telerik.windows.controls.localizationmanager.html

  本文来自dotfun的博客,原文地址:http://hi.baidu.com/silverlighter/blog/item/a18c2ffa60b2e03e4e4aea5e.html


    示例源代码:http://files.cnblogs.com/024hi/SwitchLanguageDemo.zip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值