这篇文章介绍了Silverlight4多语言实现的方法,有需要的朋友可以参考一下
1:在项目中新建文件夹"资源",然后再该文件夹下面新增资源文件" AppString.resx ",如果创建一个AppString.resx副本,把文件名改为对应的语言名称,
如AppString.en-US.resx。并且把AppString.resx的访问修饰符改为公共
2:打开AppString.resx的铯文件,查看类的访问修饰符是否公共的,如果不是,则改为公共的。
3:打开App.xmal文件,添加以下代码,目的是用于其它的页面绑定字符内容的资源文件。
4:然后再其它页面就可以使用这个资源文件了,我这里用了三种语言
5:接下来就是语言切换了,我用的是本地存储的方式来保存用户选择的语言,新建一个类来专门负责读取当前用户选择的语言。
复制代码代码如下:公共类配置{静态系统。全球化。CultureInfo当前文化公共静态系统。全球化。CultureInfo CurrentCulture { get {
if(current culture==null){ try { System .IO。隔离存储。isolatedstoragesettings应用程序设置=System .IO。隔离存储。isolatedstoragesettings。应用程序设置;if (appSetting .包含(' language '){当前区域性=新系统.全球化。区域性信息((string)appSetting[' language ']);} }捕捉(异常e) { }
} if(current culture==null){ current culture=new System .全球化。文化信息(“英美”);
}返回设置{ currentCulture=value系统穿线。线程。当前线程。当前文化=当前文化;系统穿线。线程。当前线程。currentuiculture=当前区域性;
试试{系统.IO。隔离存储。isolatedstoragesettings应用程序设置=System .IO。隔离存储。isolatedstoragesettings。应用程序设置;if (appSetting .contains(' language '){ appSetting[' language ']=当前区域性.姓名;应用程序设置.save();} else { appSetting .添加(“语言”,当前文化.姓名);}
} catch(异常e) { } } }
}
一下是"切换"按钮的代码
复制代码代码如下:私有void button3_Click(object sender,RoutedEventArgs e) { Configure .当前区域性=新文化信息(组合框1 .选择框项目。ToString());//如果(配置当前文化。name==' zh-CN ')//{//配置.当前区域性=新文化信息(' en-US ');//}//否则//配置当前文化=新文化信息(' zh-CN ');
}
6:最后是应用程序启动的代码,也就是读取用户保存的语言。在app。XML。铯文件里,
复制代码代码如下:私有void Application_Startup(对象发送方,StartupEventArgs e) {
CultureInfo culture=配置当前文化;线程当前线程。CurrentUICulture=culture线程CurrentThread。当前文化=文化;这个root visual=new main page();}
注意:按下切换按钮后要重新登录应用程序才能看到效果,并不是即使切换。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。