Database 使用ASP和数据库的多语言网站
我想咨询一下我所做的事情 我的网站有3种语言。希伯来语(主要)、英语和俄语。我使用的是一个数据库,它有一个包含以下字段的表:ID,fieldName,1,2,3。其中1 2 3是语言 进入网站后,将自动选择语言1(希伯来语),直到您选择其他语言。并保存为Database 使用ASP和数据库的多语言网站,database,asp-classic,multilingual,Database,Asp Classic,Multilingual,我想咨询一下我所做的事情 我的网站有3种语言。希伯来语(主要)、英语和俄语。我使用的是一个数据库,它有一个包含以下字段的表:ID,fieldName,1,2,3。其中1 2 3是语言 进入网站后,将自动选择语言1(希伯来语),直到您选择其他语言。并保存为会话(“currentLanguage”) 我编写了一个函数langstirng,它接收一个字段名,并根据会话(“currentLanguage”)中的语言打印值: 我是这样使用的:langstring(“header”) 我发现在任何页面上都一
会话(“currentLanguage”)
我编写了一个函数langstirng,它接收一个字段名,并根据会话(“currentLanguage”)
中的语言打印值:
我是这样使用的:langstring(“header”)
我发现在任何页面上都一直向服务器发送查询是愚蠢的。由于多语言表通常不会更改“THAT”,因此我希望以某种方式保存记录集以供当前浏览
我正在寻找此解决方案的帮助。如果它们不经常更改,为什么不将字符串转储到.asp文件中 只要在数据库中进行了更改,就可以重写此文件
另一个选项是使用类似的东西将字符串缓存在内存中。另一个选项是,如果您希望将语言存储在单独的表中,然后使用join语句根据语言设置为的cookie或会话将该信息提取出来 然后,您不必检查语言并创建组合框,就像您只需要在表中创建一个html组合框,其中包含语言的唯一ID值
Dim languageStrings
Set languageStrings = Server.CreateObject("ADODB.Recordset")
languageStrings.ActiveConnection = MM_KerenDB_STRING
languageStrings.Source = "SELECT fieldName,"¤t_Language&"FROM Multilangual"
languageStrings.CursorType = 0
languageStrings.CursorLocation = 2
languageStrings.LockType = 1
languageStrings.Open()
sub langstring(fieldName)
do while NOT(languageStrings.EOF)
if (languageStrings.fields.item("fieldName").value = fieldName) then
exit do
else
languageStrings.movenext
end if
loop
if (languageStrings.EOF) then
response.Write("***"&fieldName&"***")
else
response.Write(languageStrings.fields.item(currentLanguage+1).value)
end if
languageStrings.movefirst
end sub