Silverlight4 多语言实现的方法

时间就是生命。时光不会倒流,珍惜此刻,奋斗未来吧。记住你无畏青春的样貌,你未必出类拔萃,但必须与众不一样。

1:在项目中新建文件夹“Resouce”,然后再该文件夹下面新增资源文件“AppString.resx”,如果创建一个AppString.resx副本,把文件名改为对应的语言名称,

如AppString.en-US.resx。,并且把AppString.resx的访问修饰符改为Public

2:打开AppString.resx的cs文件,查看类的访问修饰符是否Public,如果不是,则改为Public。

3:打开App.xmal文件,添加以下代码,目的是用于其它的页面绑定字符内容的资源文件。

4:然后再其它页面就可以使用这个资源文件了,我这里用了三种语言

5:接下来就是语言切换了,我用的是本地存储的方式来保存用户选择的语言,新建一个类来专门负责读取当前用户选择的语言。


public class Configure
{
static System.Globalization.CultureInfo currentCulture;
public static System.Globalization.CultureInfo CurrentCulture
{
get
{

if (currentCulture == null)
{
try
{
System.IO.IsolatedStorage.IsolatedStorageSettings appSetting = System.IO.IsolatedStorage.IsolatedStorageSettings.ApplicationSettings;
if (appSetting.Contains("language"))
{
currentCulture = new System.Globalization.CultureInfo((string)appSetting["language"]);
}
}
catch (Exception e)
{
}

}
if (currentCulture == null)
{
currentCulture = new System.Globalization.CultureInfo("en-us");

}
return currentCulture;
}
set
{
currentCulture = value;
System.Threading.Thread.CurrentThread.CurrentCulture = currentCulture;
System.Threading.Thread.CurrentThread.CurrentUICulture = currentCulture;

try
{
System.IO.IsolatedStorage.IsolatedStorageSettings appSetting = System.IO.IsolatedStorage.IsolatedStorageSettings.ApplicationSettings;
if (appSetting.Contains("language"))
{
appSetting["language"] = currentCulture.Name;
appSetting.Save();
}
else
{
appSetting.Add("language", currentCulture.Name);
}

}
catch (Exception e)
{
}
}
}

}

一下是“切换”按钮的代码


private void button3_Click(object sender, RoutedEventArgs e)
{
Configure.CurrentCulture = new CultureInfo(comboBox1.SelectionBoxItem.ToString());
//if (Configure.CurrentCulture.Name == "zh-CN")
//{
// Configure.CurrentCulture = new CultureInfo("en-US");
//}
//else
// Configure.CurrentCulture = new CultureInfo("zh-CN");

}

6:最后是应用程序启动的代码,也就是读取用户保存的语言。在App.xmal.cs文件里,


private void Application_Startup(object sender, StartupEventArgs e)
{

CultureInfo culture = Configure.CurrentCulture;
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
this.RootVisual = new MainPage();
}

注意:按下切换按钮后要重新登录应用程序才能看到效果,并不是即使切换。

以上就是Silverlight4 多语言实现的方法。前面是绝路,希望在转角,梦在心中,路在脚下。更多关于Silverlight4 多语言实现的方法请关注haodaima.com其它相关文章!

您可能有感兴趣的文章
详解ASP.NET Core 中的多语言支持(Localization)

Asp.Net Core MVC项目实现多语言实例(Globalization/Localization)

ASP.NET MVC的Localization本地化多语言支持

NopCommerce架构分析之(八)多语言支持

asp.net web页面元素的多语言化(多国语化)实现分享