asp.net中英文转换

本文介绍了在ASP.NET中进行中英文切换的实现方法,主要依赖于资源文件(Resources)。本地资源通过App_LocalResources文件夹,全球化资源通过App_GlobalResources。在页面中使用meta:resourcekey或<%$ Resources %>语法获取资源值。通过请求查询字符串重写InitializeCulture方法,实现语言切换。注意在母版页和用户控件中不能添加此重写方法。

一、中英文切换主要是依靠资源文件(Resources):资源文件名称格式:"页面名称加后缀.resx"

        资源文件分为本地[App_LocalResources]和全球化[App_GlobalResources]

二、实现过程:

    本地资源:1.添加文件夹[App_LocalResources]

                       2.创建以 .resx 结尾的资源文件

                       3.名称         值

                        Button1       提交

                     * 在aspx页面上获取资源文件的值 语法为: meta:resourcekey="资源文件中key值"

                      例:<asp:Button ID="Button" runat="server"  meta:resourcekey="ButtonResource1"></asp:Button>

                    * 在页面上page标签内加上UICulture="auto" 表示:自动识别浏览器语言

   

  全球化资源:1.添加文件夹[App_GlobalResources]

                        2.3.都同本地资源一样

                        4.重点是下面这个重写的方法

                    protected override void InitializeCulture()
                    {
                        string culture = Request.QueryString["curlanguage"];
                        if (!String.IsNullOrEmpty(culture))
                            { 
                                System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(culture);
                                System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(culture);

                            }

                        }

                        

                 * 页面上获取资源文件的值 语法为:<%$ Resources: 资源文件名,key名称 %>

                   例:<asp:Button ID="Button1" runat="server" Text="<%$ Resources: lanauage,Button1%>" />

                 * 页面上超链接

                    <a href="?currentculture=zh-cn">中文(中国)</a>
                    <a href="?currentculture=en-us">English</a>

                 * 在页面上page标签内加上UICulture="auto" 表示:自动识别浏览器语言


        注:还有一种获取值得方法是通过后台获取值GetGlobalResourceObject(资源文件名,key名称)

        Button1.Text = (string)GetGlobalResourceObject("language", "Button1");


        大家注意,在母版页,用户控件中是不可以添加重写方法的!





此文档是从实际项目中总结出来的,互联网上只有“在单一页面进行语言切换”的教程, 没有“一键切换”的解决方案,更没有同时把5种读取资源文件总结在一起的demo。 本文档重点 1.多种读取方式 2.一键全站切换 步骤 一:新建一个asp.net 空 web应用程序“Internationalization”(图1) 二:右键“Internationalization”--->添加--->添加ASP.NET文件夹--->App_GlobalResources 三:右键“App_GlobalResources”--->添加--->新建项--->资源文件--->GlobalLanguage.resx 四:在GlobalLanguage.resx里添加键值对.(图二) 五:连续复制“GlobalLanguage.resx”两次到“App_GlobalResources”下面,并修改名称为 GlobalLanguage.en-US.resx GlobalLanguage.zh-CN.resx 说明:(为什么会有三个文件呢?系统必须有一个默认文件“GlobalLanguage.resx”,两种语言两个文件.) 六:修改英文和中文资源文件里的键值对。 说明(网上大多做法都是把语言设置为浏览器自动识别语言, 这种方式在实际项目中一般不用,所以直接讲解用程序来控制) 七:添加language1.aspx (图3,4) 八:添加language2.aspx (图5),在设计模式下“工具”--->“生成本地资源”,会自动添加一个“App_LocalResources” 和第五步一样,添加再添加两个资源文件。 language2.aspx.zh-CN.resx language2.aspx.en-US.resx 说明(一键全站切换的实现方法有多种,这里只讲最有效的,编写一个基类,在里面设置一个全局变量lan,所有 页面都继承这个基类,再通过程序修改变量lan,用Session最简单,但是用户过多时对内存的消耗很大, 还可以用数据库和配置文件,但是最好用Cookie,所以下面以Cookie为例子) 九:新建一个母板页“language.Master”(图6,7) 十:添加language3.aspx (图8,9),必须继承Base类 十一:添加language4.aspx (图10),必须继承Base类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值