asp.net2.0实现多国语言
1. 替换页面上的文字,使用LocalResources 替换。
方法: 打开你要本地化的页面,然后工具-本地资源化。然后会在项目中自动生成一个App_LocalResources文件夹,里边可以存储LocalResources的文件,然后在复制一份,将名字改成:“页面名.ascx(aspx).语言名(ko-KR/en-US).resx”.然后在这个Resources中把中文改成你需要的语言即可。例如:
10011.ascx中有一个Lable。<asp:Lable id=”lblmsg” ruan=”server” Text=”信息” meta:resourcekey="lblmsgResources1></asp:Lable>
彩色部分是你使用资源本地化后自动生成的,在资源文件中会使用到此属性
10011.ascx.resx 资源文件中应该写成 :lblmsgResources1.Text(名称) 信息(值)
10011.ascx.ko-KR.resx资源文件中应该写成:lblmsgResources1.Text(名称) 정보(值)
2. 图片按钮 ,使用LocalResources替换
如1中的一样<asp:ImageButton id=”imageButton1” runat=”server” meta:Resourceskkey=”imageButton1Resouces1” />
资源文件中应该写成:imageButton1Resources1.ImageUrl(名称) 图片路径(~/Image/图片) 如图:
这里的图片路径要用“~“来获取图片路径,如果使用(。。/)否则。Net会解析不到图片路径。
3.。替换页面当中的图片,使用全局(global)
新建资源文件后将会自动在项目中生成一个App_GlobalResources文件夹,里边有你需要的各国语言的文件如:Global.resx(中文),Global.ko-KR.resx(韩文)。
在资源文件中写入要替换的资源名。 如图:
在页面中使用<img str=”<Resources.global.btn_search>” >来读取资源文件中的路径
4.同样的,Javascript页是同样是有那个全局资源配置文件来读取资源文件
Alert(‘<Resources.global.script>’)
5.非控件字符,使用Global。Resources 即:本地资源文件不能生成的字符或字段使用Global。Resources,如图
Global.resx
Global.ko-KR.resx
页面中使用<%=Resources.Global.jine%>
登陆时下拉列表中选择语言进入 系统是:
在index.aspx。cs文件中重写InitializeCulture()这个方法,
protected override void InitializeCulture()
{
CultureInfo cultInfo = new CultureInfo(Request.Cookies["Culture"].Value); //获取当前cookie的值,也可以使用Session或querystring或
Thread.CurrentThread.CurrentCulture = cultInfo;
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
base.InitializeCulture();
}