Vill inte påstå att jag kan asp men det är kul att sitta och luska lite. Just nu försöker jag få till en funktion för en tvåspråkig sida med ett flertal dokument. Till att börja med så kan man inte bygga upp serverside includes dynamiskt, ej heller kan man ha någon querystring i dem. ASP: include och variablar
tanken är länkar ska vara utformade såhär:
Sidan på engelska
Detta ska då leda till att innehållet i eng_main.asp inkluderas i test.asp med raden:
<%inc%><%l%>_<%page%>.asp’-->
(jag la följande kod som en variabel eftersom den inte ville acceptera aspkoden inom includetaggen: inc = ”<!--#include file=’”)
Nån som kan lotsa mig vidare? är säkert bara en klantmiss men jag får inte till det.
test.asp i helhet:
<% Session(”l”)=Request.Querystring(”l”) %>
<% Session(”page”)=Request.Querystring(”page”) %>
<%
Dim page
Dim l
Dim inc
page = Request.Querystring(”page”)
l = Request.Querystring(”l”)
inc = ”<!--#include file=’”
%>
<% If Session(”l”) = ”eng” Then %>
<!--#include file=”engelska_upp.asp”-->
<% Else %>
<!--#include file=”svenska_upp.asp”-->
<% End If %>
<%inc%><%l%>_<%page%>.asp’-->
<!--#include file=end.asp-->Sv: ASP: include och variablar
Kort och gott.
Skall du bygga en flerspråkig site finns det några vägar att gå med ASP 3.0 / Classic ASP (CASP) :)
1. Du bygger samma sida i två versioner: en för svenska och en för det andra språket, eller 3 versioner beroende på antalet språk. lägger dem i exempel:
/eng/
/swe/
Inte svårare än så.
2. Du bygger 1 variant av sidan, men där du plockar ut ALL text som skall vara kunna vara i ett annat språk och sätter dem i ex. svenska.asp , english.asp och sedan beroende på om en session eller en cookie har ex värdet SV, så inkluderar vi svenska.asp.
svenska.asp
<%
welcomeMessage = "Välkommen till min hemsida"
' osv..
%>
english.asp
<%
welcomeMessage = "Welcome to my homepage-"
' osv..
%>
Default.asp
<% if Session("sprak") = "SV" OR len(Session("sprak")) = 0 Then %>
<!--#include file="sprak/svenska.asp"-->
<% End if %>
<% if Session("sprak") = "ENG" Then %>
<!--#include file="sprak/english.asp"-->
<% End if %>
<%=welcomeMessage%>
3. Eller att du samlar allt i en databas, sedan har du en kolumn med textid ex. welcomeMessage, sedan en kolumn för texten, sedan en för typ av språk
Och skriver funktion för att hämta texten, typ något sådant här:
<%
Function GetSprakText(str, sprak)
' blablabla..
SQL = "SELECT texten FROM sprak WHERE textid='" & str & "' AND sprakid='" & sprak & "'"
Set rs = Connection.Execute(SQL)
GetSprakText = rs("texten")
End Function
%>