譬如我有一个登陆页面,上面有两个Label和两个Textbox,页面命名为Login.aspx,控件命名为lbl_UserName,lbl_Password,txt_UserName,txt_Password。
首先可以在网站上新建一个App_LocalResources的文件夹,然后新建一个资源文件,命名为Login.aspx.resx
命名需要跟匹配的页面名字相同。然后再新建另一个资源文件,命名为Login.aspx.zh-Cn.resx
Login.aspx.resx 这个为默认的,而Login.aspx.zh-Cn.resx这个为当浏览器默认语言设为中文的时候调用的。
打开Login.aspx.resx文件:
名称 值
LabelResource1.Text |
Username |
LabelResource2.Text |
Password |
打开Login.aspx.zh-Cn.resx文件:
名称 值:
LabelResource1.Text |
用户名 |
LabelResource2.Text |
密码 |
然后,在我们的页面代码中
把
1
<
asp:Label ID
=
"
lbl_UserName
"
runat
=
"
server
"
></
asp:Label
>
2
<
asp:Label ID
=
"
lbl_Password
"
runat
=
"
server
"
></
asp:Label
>
改为
1
<
asp:Label ID
=
"
lbl_UserName
"
runat
=
"
server
"
Text
=
"
<%$ Resources:LabelResource1.Text %>
"
></
asp:Label
>
2
<
asp:Label ID
=
"
lbl_Password
"
runat
=
"
server
"
Text
=
"
<%$ Resources:LabelResource2.Text %>
"
></
asp:Label
>
3
最后,在页面的Page属性中,加上 Culture="auto:zh-Cn" UICulture="auto:zh-Cn" ,默认设为了中文。
编译便可以看到效果,当浏览器默认语言为英文时,可以看到两个Label的显示为Username和Password。
当浏览器默认语言为中文时,可以看到两个Label的显示为用户名和密码。
-------------------------------自己新写的---------------------------------------------------------
ASP.NET里不需要这么麻烦
也不需要编译了
HttpContext.GetGlobalResourceObject("资源文件名(不写扩展名)", "要取的ID(标记)");
一句话搞定