【问题标题】:Asp-classic Vbscript webpage language switcher into variableasp-classic Vbscript网页语言切换器成变量
【发布时间】:2015-04-24 09:34:40
【问题描述】:

例如我在 index.asp 中有语言切换器

            <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")%>

该函数在 index.asp 中包含的文件 function.inc 中有说明

<%
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. Lang = Document.getElementById("LanguageSelected").innerText 似乎不起作用!那么如何获取选定的语言值并分别为每个用户翻译网页呢?
  2. 这是根据用户在网站上选择的语言进行网页翻译的正确方法吗?

【问题讨论】:

    标签: vbscript asp-classic


    【解决方案1】:
    1. 使用asp更改语言(document.getElement...是javascript!):

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

    那么,lang = request.querystring("lang")

    1. 其他方法是创建带有变量(txt_title="Titulo"、txt_button_yes="Si"、...)的文本文件(rus.asp、esp.asp、...),并根据语言包含一个或另一个文件.包含文件比查询数据库快。

    另一件事:使用 .inc 创建包含不是一个好主意,因为代码可能是可见的。请改用 .asp。

    【讨论】:

      【解决方案2】:

      Document.getElementById("LanguageSelected").innerText 看起来像客户端 Javascript。 ASP 是服务器端代码,它在提供页面时执行,因此您需要使用查询字符串值或表单提交填充变量 Lang 并使用 Lang = request("Lang") 之类的内容检索它

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多