基于WEB系统的多语言支持--ASP国际化多语言详细方案

发表于:2007-06-30来源:作者:点击数: 标签:
基于Web的系统的多语言支持 1.ASP部分 a.建立语言包 1.在各个子系统建立语言包目录 , 如BBS-- language --Simplified ---Traditional ---English 2 为每个ASP,js,HTC 建立语言文件,如ACMBBStopic.asp.lang ,treeview.htc.lang , 用来存放语言全局变量。 如目
              基于Web的系统的多语言支持

1.ASP部分  
        a.建立语言包
                1.在各个子系统建立"语言包"目录 ,
                如BBS--> language -->Simplified
                                                --->Traditional
                                                --->English
                2 为每个ASP,js,HTC 建立语言文件,如ACMBBStopic.asp.lang ,treeview.htc.lang ,
                 用来存放语言全局变量。
如目录Language\English\ ACMBBSShow.asp.lang
Public  Const  LangRollway="reverse roll"
Public  Const  LangInvaildUser="invaild user"
Public  Const  LangMailbox="mail box"
Public  Const  LangSysSetup="system setup"
Public  Const  LangACMBBS="Acer BBS"
Public  Const  LangBulltn="Acer bulltin"
Public  Const  LangPersnSetup="personal setting"
Public  Const  LangPublicTools="Public Tools"
如目录Language\ Simplified \ ACMBBSShow.asp.lang
Public  Const  LangRollway="反向滚动"
Public  Const  LangInvaildUser="非法用户"
Public  Const  LangMailbox="邮件资料夹"
Public  Const  LangSysSetup="系统设置"
Public  Const  LangACMBBS="明碁网咖"
Public  Const  LangBulltn="公告栏"
Public  Const  LangPersnSetup="个人设定"
Public  Const  LangPublicTools="群组工具"
               语言全局变量命名规则;        
                             必须是VBscript 变量定义方式        Public  Const  
                              变量名为 :                    "Lang" + Message Descption
        
        b.     设定Global.asa
SUB Session_OnStart   
     Session.CODEPAGE="1252"                      ‘’1252En      ‘’950繁体   ‘’936简体
     Session.Contents("Language")="EngLish"    ‘’EngLish  ‘’Traditional  ‘’Simplified
     Session.Contents("StrCharset")="big5"             ‘’iso-8859-1  ‘’big5  ‘’gb2312
End Sub
        c.   引用语言包
           1.建立 BBS--> language -->script  目录, IncludeLang.vbs
           2.在各个asp,js,HTC头部             
            <Script language=vbscript runat="server" src="./Language/script/IncludeLang.vbs"></Script>
            <% call IncludeLangFile("acmMainPageshow.asp.lang",Session.Contents("Language"))%>
           3.使用思想  
o                   将 *.lang 等语言包用Function GetFileContents 读到变量中,
o                   使用vbscript中EXECUTE方法在Server执行
IncludeLang.vbs 内容如下

‘’//‘’*********************************************************
‘’// ‘’ Purpose: open include 文件
‘’// ‘’ Inputs:   strIncludeFile 路径
‘’// ‘’ Returns:  All Text
‘’//‘’*********************************************************

Function GetFileContents(strIncludeFile)
  On Error Resume Next
  Dim objFSO
  Dim objText
  Dim strPage  
  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")  
  Set objText = objFSO.OpenTextFile(Server.MapPath(strIncludeFile))  
  GetFileContents= objText.ReadAll
  objText.Close
  Set objText = Nothing
  Set objFSO = Nothing
  IF Err Then
   Response.Write "Error open this language package  file<<" & strIncludeFile & ">>!"
Response.End
   END IF
End Function

‘’//‘’*********************************************************
‘’// ‘’ Purpose: 动态 include 文件
‘’// ‘’ Inputs:   strIncludeFile 路径,语言种类
‘’// ‘’ Returns:  执行变量到全局变量
‘’//‘’*********************************************************
Function IncludeLangFile(StrFileName,Language)
On Error Resume Next
dim StrLangPackagePath
dim StrLanguagePath
StrLanguagePath=Language
StrLangPackagePath="./Language/" & StrLanguagePath & "/" & StrFileName
Execute(GetFileContents(StrLangPackagePath))
  IF Err Then
    Response.Write "Error Include this language package  file<<" & strIncludeFile & ">>! check the file‘’s  syntax"
  Response.End
END IF
End Function
2.图片部分
                 为带有汉字图片建立 BBS--> language -->simplified-->Image
                                                                                    --->traditional-->Image
                                                                                    --->English -->Image
                  动态Include
                    <img src="language/Session.Contents("Language"))/image/AAA.gif">


3.COM部分
           使用resource file 控制语言版本,由系统自动判断语言版本

注意: resource file 简体字码必须在简体机器输入,繁体字码必须在繁体机器输入


4.其他

             多语言版本参考规则﹕
        1.英文翻译长度尽量与汉语长度相当。
        2.要符合各个版本的语言习惯。
        3.英文版中Title ,text标签文本﹐按钮文本﹐select option 中英文单词 首字母大写,但
            介词﹐连词 ,冠词 使用小写。    
        4. 英文版中缩写全部使用大写。
        5. 英文版中check ,radio ,英文首字母大写.
        6. 英文版中状态信息使用小写。

原文转自:http://www.ltesting.net