xunt

 

WEB页面多语言支持解决方案(转)

author:Johnlen (简单就好)

首先建立语言档,在项目中加入.resx文件
例如:
message.zh-cn.resx   '简体中文
message.zh-tw.resx   '繁体中文
message.en                   '英文
..............

======================================================================
然后利用Name   --Value   键值对   填入你要在页面上显示的语言
如:
                                              name                                             value  
message.zh-cn.resx中:
                                              res_loginbname                         登陆名   :
message.zh-tw.resx中:
                                              res_loginbname                         登陸名   :
message.zh-cn.resx中:
                                              res_loginbname                         Login   Name   :



======================================================================
然后在Golbal.asax中加入多语言设定支持代码(浏览器需要支持Cookie)

        '=============================================================================================
        '   Application_BeginRequest   Event
        '
        '   The   Application_BeginRequest   method   is   an   ASP.NET   event   that   executes  
        '   on   each   web   request   into   the   portal   application.    
        '
        '   The   thread   culture   is   set   for   each   request   using   the   language
        '   settings  
        '  
        '=============================================================================================
        Sub   Application_BeginRequest(ByVal   sender   As   Object,   ByVal   e   As   EventArgs)
                Try
                        If   Not   Request.Cookies("resource")   Is   Nothing   Or   Request.Cookies("resource").Value   =   ""   Then
                                Thread.CurrentThread.CurrentCulture   =   CultureInfo.CreateSpecificCulture(Request.Cookies("resource").Value)                              
                        Else
                                Thread.CurrentThread.CurrentCulture   =   New   CultureInfo(ConfigurationSettings.AppSettings("DefaultCulture"))
                        End   If
                        Thread.CurrentThread.CurrentUICulture   =   Thread.CurrentThread.CurrentCulture
                Catch   ex   As   Exception
                        Thread.CurrentThread.CurrentCulture   =   New   CultureInfo(ConfigurationSettings.AppSettings("DefaultCulture"))
                End   Try
        End   Sub   'Application_BeginRequest

在Web.Config中加入如下代码,用于设定编码和默认语种,在Global.asax中有调用:

======================================================================
        <globalization   requestEncoding="utf-8"   responseEncoding="utf-8"   />
                <appSettings>
                                <add   key="DefaultCulture"   value="zh-cn"   />
                                <!--       zh-cn:簡體中文   zh-tw:繁體中文   en:英文         -->                
              </appSettings>



======================================================================
页面代码中使用多语言支持:

Imports   System.Resources

Public   Class   类名
        Inherits   System.Web.UI.Page
        Protected   LocRM   As   ResourceManager   =   New   ResourceManager("项目文件名.message",   GetType(类名).Assembly)

        Private   Sub   Page_Load(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load
                lblLogin.Text   =   LocRM.GetString("res_login")
        End   Sub
End   Class


======================================================================

到这里多语言支持的工作就作完了,接下来自己去慢慢Key
message.zh-cn.resx   '简体中文
message.zh-tw.resx   '繁体中文
message.en                   '英文

这几个语言档吧,这是一个痛苦的回忆!

posted on 2006-01-24 15:03  一屋不扫何以扫天下?  阅读(495)  评论(0编辑  收藏  举报

导航