ska inkludera en fil, men det kan variera lite beroende på vilka val användaren har gjort, provade så här först... efter som include är ssi så körs det före asp koden alltså går det inte att blanda asp och ssi... Det går ej att dynamiskt inkludera filer. Inkluderingen sker när sidan kompileras (körs första gången). Du kan skriva typ: Kan man inte använda en if-sats istället för case? eller blir effekten densamma? Samma effekt. Tycker Case satsen är snyggare och mer lätt överskådlig än if-satsen. Case satsen är oxå snabbar, men försumbart, mot en ifsats då det är en upprepad jämförelse. Ett värde som skall jämföras mot många. I case satsen hämtas det bara en gång. Tror oxå att det kan cachas för jämförelserna. server.execute funkar tyvärr inte, och if/case satser vill jag helst inte ha eftersom det blir onödigt många och belastar servern onödigt mycket...och så vet jag inte hur många det ska vara, kan variera... >lang.asp innehåller enbart en massa variabler. . . <code> <code> jojo, men det är MYCKET mer än bara "logga ut" i include filen, vill inte göra 500 if satser ju Du gör ju inte en ifsats för varje ord utan en för varje språk. Men det bästa om du har många språk vore att spara ett språk i varsin fil med ett ord per rad och sedan läsa in just den filen med FSO, men jag har tyvärr inte tid att skriva ett sådant exempel nu...=( okej, för det där med if satser är egentligen inte bra alls, eftersom man ska kunna lägga till nya språk (language packs) allt eftersom Lite förslag som använder en textfil som resursfil. Varje rad motsvarar en entry:problem med #include
<code>
<!-- #include file=language\lang_<%=lang%>\lang.asp -->
</code>
ganska logiskt så funkade ju inte, men har provat en massa andra sätt ochså, men får det inte riktigt att funka, :)
nå tips?
eller går det att inkludera en fil på något annat sätt i asp än med #include ?Sv: problem med #include
testa:
<code>
Server.Execute("language\lang_"& lang &"\lang.asp")
</code>Sv: problem med #include
<code>
<%
Select Case lang
case "sv"
%><!-- #include file=language\lang_sv\lang.asp --><%
case "en"
%><!-- #include file=language\lang_en\lang.asp --><%
End Select
%>
</code>
I praktiken inkluderas samtliga include filer men det fungerar. Om include-filerna inte innehåller någon asp-kod så kan du göra på annat sätt.
/TommySv: problem med #include
<% If Request.QueryString("lang") = "sv" Then %>
<!--#include file="language\lang_sv\lang.asp"-->
<% ElseIf Request.QueryString("lang") = "en" Then %>
<!--#include file="language\lang_en\lang.asp"-->
<% End If %>
//TomasSv: problem med #include
Sv: problem med #include
lang.asp innehåller enbart en massa variabler. . .Sv: problem med #include
Då var det klurigare... Server.Execute exekverar filen helt separat och du kan inte använda dej av ev. konstanter som du har definerat där. Ett alternativ kan ju vara att spara alla variabler i en "vanlig textfil" som du sedan läser in med FSO till en array, beroende på vilket sp¨råk du har valöt läser du in olika filer.
/JohanSv: problem med #include
<%
swe_txtlogout = "Logga Ut"
eng_txtlogout = "Logout"
%>
</code>
har lagt till så att det står så där i Samma include fil just nu, och om man väljer engelska så ska det skrivas ut Logout, men jag får det inte att funka, jag vet inte om jag är för trött för att tänka eller vad det är...
<code>
<%=lang & "_txtlogout"%>
</code>
är ett av de alternativ som jag provat, funkar ju inte, hur ska jag skriva för att den ska hämta från include filen och inte skriva ut eng_txtlogout som den gör just nu...Sv: problem med #include
<%
if lang = "swe" Then
txtlogout = "Logga Ut"
Elseif lang = "eng" Then
txtlogout = "Logout"
End if
%>
...
<%=txtlogout%>
</code>
/JohanSv: problem med #include
Sv: problem med #include
<code>
if lang = "swe" Then
txtlogout = "Logga Ut"
txtlogin = "Logga In"
Elseif lang = "eng" Then
txtlogout = "Logout"
txtlogin = "Login"
End if
</code>
/JohanSv: problem med #include
Sv: problem med #include
<code>
<%
Dim FSO
Dim File
Dim Values
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.OpenTextFile(Server.MapPath("language\Page_" & lang & ".txt"))
Values = Split(File.ReadAll, vbCrLf)
File.Close
Set File = Nothing
Set FSO = Nothing
%>
<html>
<head>
<title><%=Values(1)%></title>
</head>
....osv
<html>
</code>