webForumDet fria alternativet

Flera språk?

ASP

9 svar · 410 visningar · startad av Fredde Mannen

Medlem sedan nov. 20014 054 inlägg
Frågan#1

Jag undrar hur man skall bygga upp en kommersiell hemsida på som skall vara på flera språk, Svenska, Engelska, Tyska och ev. Finska.

Hur skall jag gå till väga, har funderat på att bygga upp flera exemplar av den svenska sidan för att sedan översätta den, men det känns alldeles för jobbigt vid uppdateringar av sidan.

Så då beslutade jag mig för att bygga upp den med ASP mot Access Databas eller MS SQL.

Känns som att det blir lättare att uppdatera, men ett tidkrävande jobb innan man når sitt mål, någon som kan ge lite vägledning på hur jag skall bygga upp sidan resp. databasen.

Medlem sedan sep. 20026 425 inlägg
#2

Du kan ju använda cookies tillsammans med databasen. Du har kanske en tabell som heter tbl_lang med bland annat kolumnerna sve, eng, ger, fin och för varje ny text du skriver in i databasen så skriver du samma på resterande språk. När användaren väljer ett språk på sidan sätter du en cookie på dennes dator, en cookie med ex. värdet sve för svenska, eng för engelska etc. I SQL-strängen när du ska presentera text för användaren skriver du något liknande:

SQL="SELECT falt1,falt2 FROM tbl_lang WHERE lang=" & Request.Cookies("vilket") & ""

Troligtvis blir dina SQL-strängar lite mer avancerade, men bygg på. Förhoppningsvis kommer en del andra med bra föreslag också!

Medlem sedan nov. 20014 054 inlägg
#3

Med cookies, jag det kan ju vara att överväga...

Satt och funderade på hur jag skall bygga upp menyn, kom fram till en fast meny, alltså inte databas kopplad.

Jag stör mig i bland på ASP, om man jämför med PHP. I php kan man inkludera t ex. en språk-fil som inkluderas beroende på vilket språk besökaren väljer:

I php:

<?php
if($_GET['lang'] == "") {
include("/spf-filer/sve.spf");
} else {
include("/spf-filer/".$_GET['lang'].".spf");
}
?>

I Asp, hittar jag ingen vettig lösning, för man kan ju inte göra så här:

<%
If(Request.QueryString("lang") = "") Then
%>
<!--#include virtual="/spf-filer/sve.spf"-->
<%
else 
%>
<!--#include virtual="/spf-filer/<%=Reuqest.QueryString("lang")%>"-->
<%
End if
%>

Det jag är ute efter är en lösning för de fasta texterna, som:

Läs mera..
Tillbaka
Hjälp

Read more..
Go back
Help

Hittar inget vettigt, någon?

Medlem sedan aug. 20003 575 inlägg
#4

Använd

Server.Execute("/spf-filer/<%=Reuqest.QueryString("lang"))
Medlem sedan juni 20019 519 inlägg
#5

Jag gör min i databas kopplad med request.querystring("language") men om du inte känner för det och vill köra som du vill med include:

      <%
           Set Obj = CreateObject("Scripting.FileSystemObject")
If Obj.FileExists(Server.MapPath("include/" & Trim(LCase(Request.QueryString("link"))) & ".asp")) Then
                     Server.Execute "" & Trim(LCase(Request.QueryString("language"))) & ".asp" 
                Else
                     Server.execute "english.asp"
                End if
           Set Obj = Nothing
      %>
Medlem sedan nov. 20014 054 inlägg
#6

Nickemannen skrev:

Använd

Server.Execute("/spf-filer/<%=Reuqest.QueryString("lang"))

Oki,

Medlem sedan juni 200032 967 inlägg
#7

Tänk bara på att använder man Server.Execute så exekveras filen, som namnet antyder. Det är alltså inte tal om någon inkludering.

Medlem sedan juni 20019 519 inlägg
#8

Fredde Mannen: Kom ihåg om du inte använder den kod jag postade är att man måste ha en querystring alltid.. :e fast det går ju att lösa på många andra sätt också:

dim language
language = request.querystring("language")
if language = "" then
language = "english"
end if

Server.Execute("/spf-filer/<%=language))
Medlem sedan nov. 20017 144 inlägg
#9

@nders skrev:

Tänk bara på att använder man Server.Execute så exekveras filen, som namnet antyder. Det är alltså inte tal om någon inkludering.

Vad betyder det i vidare bemärkning?

Medlem sedan sep. 20026 425 inlägg
#10

Jesper T skrev:

@nders skrev:

Tänk bara på att använder man Server.Execute så exekveras filen, som namnet antyder. Det är alltså inte tal om någon inkludering.

Vad betyder det i vidare bemärkning?

Vad det betyder? Jo, när du använder SSI och Server Side Includes inkluderas en sida på den befintliga sidan och finns liksom kvar i minnet. Med Server.Execute exekverar man en sida och sen är det inte så mycket mer med det. Server.Execute är skonsammare mot servern. (eller hyn, om ni så vill :e )..

251 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)