2015-04-24 86 views
0

比如我在的index.asp語言切換ASP-經典的VBScript網頁語言切換爲變

  <ul class="drop-lang_menu"> 
       <li id="LanguageSelected"><img src="img/icons/flags/ru.png" /><a href="#">Rus</a> 
        <ul> 
         <li><img src="img/icons/flags/ru.png" /><a href="#">Rus</a></li> 
         <li><img src="img/icons/flags/lt.png" /><a href="#">Lit</a></li> 
         <li><img src="img/icons/flags/us.png" /><a href="#">Eng</a></li> 
        </ul> 
       </li> 
      </ul> 

,並在此文件中我有翻譯功能的「登錄」按鈕上的文字翻譯

<%=transl("Login")%> 

該函數在文件function.inc其中包括在的index.asp

<% 
Dim Lang 

Lang = Document.getElementById("LanguageSelected").innerText 

Function transl(TxT as String) 
    Dim d 
    d = Application("TranslateList") 
    If d = "" Then 
     d = FetchTranslateList(TxT) 
     Application("TranslateList") = d 
    End If 
    transl = d 
End Function 


Function FetchTranslateList(TxT as String) 
    Dim rs, fldName, s 
    Set rs = CreateObject("ADODB.Recordset") 
    rs.Open "select "+Lang+" from Translations where txt='"+TxT+"'", _ 
      "dsn=name;uid=sa;pwd=;" 
    s = "<select name=""Translations"">" & vbCrLf 
    Set fldName = rs.Fields("+Lang+") 
    Do Until rs.EOF 
    s = s & " <option>" & fldName _ 
      & "</option>" & vbCrLf 
    rs.MoveNext 
    Loop 
    s = s & "</select>" & vbCrLf 
    rs.Close 
    Set rs = Nothing 
    Set fldName = Nothing 
    FetchTranslateList = s 
End Function 
%> 
解釋個

問題是:

  1. 郎=的document.getElementById( 「LanguageSelected」)的innerText似乎不工作!那麼如何獲得選定的語言價值併爲每個用戶分別翻譯網頁?
  2. 這是根據用戶在網站上選擇的語言進行網頁翻譯的正確方法嗎?

回答

1
  1. 使用ASP檢索變化語言(document.getElement ...是JavaScript的!):

    <a href="index.asp?lang=rus">Rus</a></li> 
    

然後,朗=的Request.QueryString( 「郎」)

  • 其他方法是創建帶有變量(txt_title =「Titulo」,txt_button_yes =「Si」,...)的文本文件(rus.asp,esp.asp,...),並根據語言包含一個文件或另一個文件。包含文件比查詢數據庫快。
  • 另一件事:不是一個好主意,用.inc創建包含代碼可能是可見的。改用.asp。

    1

    Document.getElementById("LanguageSelected").innerText看起來像客戶端Javascript。 ASP是服務器端的代碼,它的頁面投放時執行的,所以你需要填充你的變量Lang要麼查詢字符串值或表單提交和喜歡的東西Lang = request("Lang")