网上有很多关于Silverlight国际化的说明,包括MSDN的示例,都没有强调一点,下面以红色标示,
基础国际化知识请先参考MSDN相关章节,关键步骤要点说明为:
1、资源多个资源文件,默的一个名为Resource.resx
默认的一个声明要为public;
程序集信息/非特定语言选择默认的(一般为english)。
2、项目属性文件csproj(用文本编辑器打开)
添加非特定语言外要支持的语言:
- <SupportedCultures>zh-CN;jp</SupportedCultures>
3、作成包装类(参考MSGN示例)如:LocalizedStrings
4、App.xaml中(注意加粗部分替换成你的相应内容):
- <Application.Resources>
- <local:<strong>LocalizedStrings</strong> xmlns:local ="clr-namespace:<strong>SilverlightApplicationLocale</strong>" x:Key="<strong>LocalizedStrings</strong>" />
- </Application.Resources>
5、程序引用(注意加粗部分替换成你的相应内容):
- <Button Content="{Binding Path=<strong>Resource.Hello</strong>, Source={StaticResource <strong>LocalizedString</strong>s }}"
6、通过引用的HTML传递local信息:
- <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
- <param name="source" value="RichEdit.xap"/>
- <param name="onError" value="onSilverlightError" />
- <param name="background" value="white" />
- <param name="minRuntimeVersion" value="4.0.50826.0" />
- <param name="autoUpgrade" value="true" />
- <strong> <param name="culture" value="ja" />
- <param name="uiculture" value="ja" /></strong>
- <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
- <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="获取 Microsoft Silverlight" style="border-style:none"/>
- </a>
- </object>
PS:
若程序动态改变区域:
- private void Application_Startup(object sender, StartupEventArgs e)
- {
- CultureInfo c = new CultureInfo("zh-CN");
- Thread.CurrentThread.CurrentUICulture = c;
- Thread.CurrentThread.CurrentCulture = c;
- }