Asp经典Vbscript网页语言转换成变量
例如,我在index.asp中有语言切换器Asp经典Vbscript网页语言转换成变量,vbscript,asp-classic,Vbscript,Asp Classic,例如,我在index.asp中有语言切换器 <ul class="drop-lang_menu"> <li id="LanguageSelected"><img src="img/icons/flags/ru.png" /><a href="#">Rus</a> <ul> <
<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>
<%
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
%>
-
在这个文件中,我还提供了“登录”按钮文本翻译功能
<%=transl("Login")%>
此函数在index.asp中包含的文件function.inc中进行了说明
<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>
<%
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
%>
问题是:
Document.getElementById(“LanguageSelected”).innerText看起来像客户端Javascript。ASP是服务器端代码,在提供页面时执行,因此您需要使用querystring值或表单提交填充变量Lang
,并使用类似Lang=request(“Lang”)
使用asp更改语言(document.getElement…是javascript!):
然后,lang=request.querystring(“lang”)