<% '************************************************************************* ' the person wants to switch languages ' If they are switching to the default laanguage, clear session language ' Otherwise load session language ' VP-ASP 5.0 ' Feb 13, 2003 '*********************************************************************** Dim Newlang, gotourl, rc NewLang=Request("LG") DoCleanseMessage Newlang Setsess ("Language"),Newlang If lcase(newlang)=lcase(getconfig("xlanglanguage")) then Setsess "LanguageSession","" else loadlanguagevariablesSession newlang end if gotourl=getsess("CurrentURl") if gotourl="" then gotourl="shopdisplaycategories.asp" end if select case gotourl case "shopdisplayproducts.asp" If getsess("pagenumber")<>"" then gotourl="shopdisplayproducts.asp?page=" & getsess("pagenumber") end if end select Response.redirect gotourl '************************************************************************ ' Set session variables for language '************************************************************************ Sub LoadLanguageVariablesSession (language) dim nodb, count dim lang, filename nodb=request("nodb") if nodb<>"" Then LoadLanguageVariablesNodb language,filename exit sub end if dim dbc,csql,rstemp,fieldname,fieldvalue dim tempname if language="" then exit sub shopopendatabase dbc If dbc.state<>adStateOpen then exit sub end if count=0 csql="select * from languages where lang='" & language & "'" set rstemp=dbc.execute(csql) If not rstemp.eof then fieldvalue= rstemp("caption") If fieldvalue=Langnodbvalue then filename=rstemp("keyword") closerecordset rstemp shopclosedatabase dbc LanguageSetVariablesNodb language, filename exit sub end if end if do while NoT rstemp.eof fieldname = rstemp("keyword") fieldvalue= rstemp("caption") If isnull(fieldvalue) then fieldvalue="" end if If fieldvalue<>"" Then tempname=fieldname & "_" & xshopid setsess tempname,fieldvalue end if rstemp.movenext count=count+1 loop rstemp.close set rstemp=nothing shopclosedatabase dbc If count>0 then Setsess "LanguageSession",language end if End sub '************************************************************************* ' we are to read language files instead of the database ' shop$language_xxxxxxx.asp and shop$language2_xxxxxxxxx.asp '*********************************************************************** Sub LanguageSetVariablesNodb (language, filename) dim strfilename, strfilename2 dim fieldnames(1000),fieldvalues(1000),fieldcount, i If filename="" then strfilename="shop$language_" & language & ".asp" strfilename2="shop$language2_" & language & ".asp" else strfilename=filename strfilename2=filename strfilename2=replace(strfilename2,"$language","$language2") end if LanguageConvertfile strfilename, fieldnames,fieldvalues, fieldcount if fieldcount=0 then exit sub for i=0 to fieldcount-1 fieldname = fieldnames(i) fieldvalue= fieldvalues(i) If fieldvalue<>"" Then tempname=fieldname & "_" & xshopid setsess tempname,fieldvalue end if next fieldcount=0 LanguageConvertfile strfilename2, fieldnames,fieldvalues, fieldcount If fieldcount=0 then exit sub for i=0 to fieldcount-1 fieldname = fieldnames(i) fieldvalue= fieldvalues(i) If fieldvalue<>"" Then tempname=fieldname & "_" & xshopid setsess tempname,fieldvalue end if next Setsess "LanguageSession",language end sub Sub Getsecondfilename (strfilename, strfilename2) dim pos, remaining pos=instr(strfilename,"_") strfilename2=mid(strfilename,1,pos-1) strfilename2=strfilename2 & "2" remaining=len(strfilename)-pos+1 strfilename2=strfilename2 & mid(strfilename,pos,remaining) 'debugwrite "Filename2=" & strfilename2 end sub Sub DoCleanseMessage(lang) dim rc lang=replace(lang,";","") cleansemessage lang, rc if len(lang)>20 or rc>0 then shoperror Getlang("langlanguage") & " " & getlang("LangDatabaseFail") end if end sub %>