Silverlight本地化

Silverlight本地化,第1张

概述简单的实现多语言版本的Silverlight应用。 日益国际化的同时,需要我们开发的应用根据不同的来访者显示不用的语言,Silverlight在这个方面就提供了很方便的支持。 下来就来介绍一下如何做本地化 在VS中新建Silverlight项目   添加一个资源文件   添加一些文案,注意:Access Modifier 要设置为Public     然后复制这个文件,修改其名字做多语言支持。 相

简单的实现多语言版本的Silverlight应用。

日益国际化的同时,需要我们开发的应用根据不同的来访者显示不用的语言,Silverlight在这个方面就提供了很方便的支持。 下来就来介绍一下如何做本地化 在VS中新建Silverlight项目
  添加一个资源文件


 

添加一些文案,注意:Access ModifIEr 要设置为Public
 


  然后复制这个文件,修改其名字做多语言支持。 相关列表请查阅这里: http://msdn.microsoft.com/zh-cn/vstudio/system.globalization.cultureinfo(VS.95).aspx


  新建立一个值的转化类
    public class ApplicationResources : IValueConverter     {         private static Readonly ResourceManager resourceManager =             new ResourceManager("sllocalization.MyStrings",                                 Assembly.GetExecutingAssembly());
          private static CultureInfo uiCulture = Thread.CurrentThread.CurrentUICulture;         public static CultureInfo UiCulture         {             get { return uiCulture; }             set { uiCulture = value; }         }
          public string Get(string resource)         {             return resourceManager.GetString(resource,UiCulture);         }
          public object Convert(object value,Type targettype,object parameter,CultureInfo culture)         {             var reader = (ApplicationResources)value;             return reader.Get((string)parameter);         }
          public object ConvertBack(object value,CultureInfo culture)         {             throw new NotImplementedException();         }     }


 

修改App.xaml把ApplicationResources添加进去
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"               x:Class="sllocalization.App"              xmlns:sl="clr-namespace:sllocalization"               >     <Application.Resources>         <sl:ApplicationResources  x:Key="Localization"/>     </Application.Resources> </Application>

 

用Blend创建UI界面


  将中间的文案做好数据绑定以及转换
   <TextBlock          HorizontalAlignment="Center"          VerticalAlignment="Center"          Text="{Binding ConverterParameter=Welcome,                          Converter={StaticResource Localization},                          Source={StaticResource Localization}}"          textwrapPing="Wrap"/>

 

给Radiobutton添加事件
 

        private voID Radiobutton_Click(object sender,System.windows.RoutedEventArgs e)         {             Radiobutton rb = sender as Radiobutton;             ApplicationResources.UiCulture = new CultureInfo(rb.Content.ToString());
              Content.Children.Clear();             Content.Children.Add(new txtWelcomeControl());         }


 

下来到了关键的一步了 
  编译应用程序 观察output窗口


  发现我们的多语言资源文件并未打包到xap内
  这里需要修改Silverlight的项目文件“*.csproj” 用记事本将其打开,找到“SupportedCultures”节点,把支持的语言加入进去。
    <SupportedCultures>         en,ja-JP,ko-KR,pl-PL,zh-CN     </SupportedCultures>

 

再进行编译


  可以看到语言资源文件都打包到了xap内部。

源代码下载

 

在线演示:

 

测试运行: 总结

以上是内存溢出为你收集整理的Silverlight本地化全部内容,希望文章能够帮你解决Silverlight本地化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1030386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存