基於WEB系統的多語言支持--ASP國際化多語言詳細方案

穩萊

基於WEB系統的多語言支持--ASP國際化多語言詳細方案


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. 英文版中狀態信息使用小寫。

 

 給當前日誌評分:
Loading Vote
正在讀取評分資料...


文章來自: Tank部落格
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相關日誌:

評論: 0 | 引用: 0 | 查看次數: -
發表評論
暱 稱:
密 碼: 遊客發言不需要密碼.
內 容:
驗證碼: 驗證碼
選 項:
雖然發表評論不用註冊,但是為了保護您的發言權,建議您註冊帳號.