2010-06-15 46 views
0

我想咨询一下我做的事情。使用ASP和数据库的多语言网站

我的网站有3种语言。希伯来语(主),英语和俄语。我正在使用一个数据库有一个表与字段:ID,fieldName,1,2,3。其中1 2 3是语言。

在进入网站语言1(希伯来文),直到你选择另一全自动选择。并保存为session("currentLanguage")

我写了一个函数langstirng whice临危一个字段名,并打印acording的语言session("currentLanguage")值:

Dim languageStrings 
Set languageStrings = Server.CreateObject("ADODB.Recordset") 
languageStrings.ActiveConnection = MM_KerenDB_STRING 
languageStrings.Source = "SELECT fieldName,"&current_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 

我用它像这样:<div>langstring("header")</div>

我觉得愚蠢,我一直将查询发送到服务器上的任何和所有的网页。由于多语言表不会改变“那”,我经常想以某种方式保存当前浏览的记录集。

我期待帮助解决方案,请。

回答

1

如果他们不经常改变,为什么不只是转储字符串.asp文件?

该文件可以随时作出更改数据库被改写。

另一种选择是将缓存使用的东西在内存中的串像Caprock.Dictionary

0

另一种选择是,如果你想存储在单独的表中的语言,然后用连接语句拉出基于该信息该语言设置为的cookie或会话。

然后你从来没有检查的语言,并创建一样,你只会有一个HTML组合框与表中的语言的唯一ID值的组合框。