Bruge SSI til flersproget hjemmeside

Tags:    asp
Skrevet af Bruger #8773 @ 15.06.2006
Jeg har nu selv på en del sider brugt en funktion til at lave siden fler-sproget, og eftersom jeg selv havde meget problem med at lave det første gang, vil jeg hjælpe alle jer andre der sidder og har brug for noget lignende.

Funktionene vi vil kigge på vil gøre sådan at du kan klikke på fx. et flag, eller et link, og så skifter sproget på hele siden.

Det vil nok være en fordel hvis du tidligere har arbejdet med, eller har kendskab til: SSI(Server Side Include) og cookies.


Vi vil i denne artikel kun bruge Dansk og Engelsk.

først skal vi have lavet nogle link til at skifte sproget, og det gør vi sådan her:

Fold kodeboks ind/udKode 

De kan fx. ligge nedderst i en menu eller hvor man nu vil placerer dem.

Så skal vi have skiftsp.asp filen:
Fold kodeboks ind/udKode 

Som der kan ses i koden bruger vi en cookie til at lægge på computeren med det valgte sprog, og den cookie varer de næste 30 dage, med mindre at man ændrer sprog, og derfor bruger vi lige en funktion i toppen af koden til at fjerne evt. eksisterende cookies.

så skal vi bare have "default.asp" til at finde ud af hvad for et sprog klienten har valgt, og hvis intet sprog er valgt, bruges standartsproget, som i dette tilfælde er dansk.
koden:
Fold kodeboks ind/udKode 

Så har vi også siden til at finde ud af hvad for et sprog der er valgt, så mangler vi bare at lave sprog-filerne og sørge for et udskrive indholdet af filerne.

først filen dansk.txt:
Fold kodeboks ind/udKode 


Og så filen engelsk.txt:
Fold kodeboks ind/udKode 

Nu har vi de to sprog filer, og de er inkluderet i default.asp, så mangler vi bare at udskrive indholdet, og det gør vi sådan her (forsiden):
Fold kodeboks ind/udKode 


Jeg håber at denne artikel var til at forstå, ellers må i kontakte mig, eller skrive en kommentar. ;)

Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (8)

User
Bruger #5779 @ 16.06.06 13:43
Og hvis brugeren af disabled cookies? ... Dette er ikke en speciel fleksibel løsning på en flersprogsproblematik.
User
Bruger #8773 @ 16.06.06 14:02
så kunne man jo evt. vælge at bruge en Session, problemet er bare, at så er det ikke det valgte sprog hver gang klienten åbner browseren. Man kunne jo også lave sådan, at når brugeren vælger et sprog, bliver det lagt i en database, sammen med klientens IP og så kan serveren også finde ud af hvad for et sprog der er valgt, og dog. Hvis man, som jeg, har en unik IP der skifter en gang imellem, så er dette heller ikke en god løsning. Men der er svært at lave en løsning hvor der ikk er et problem indblandet.
User
Bruger #4377 @ 16.06.06 19:24
Ja eller gemme en application samt ipen lidt ala: eng192.168.0.9.

Så kunne man sige Mid(eng19216809, 3) for at få fat i ipen igen. På den måde kan man tjekke hvilken ip der er gemt fra, og samtidig tjekke de første tre bogstaver for at undersøge hvilket sprog der er valgt. :)
User
Bruger #8773 @ 16.06.06 19:38
Ja, der er mange måder man kan lave det på, dette var blot et eksempel på hvordan det kunne gøres.
User
Bruger #10057 @ 06.07.06 03:05
"så kunne man jo evt. vælge at bruge en Session"

Nej det kunne du desværre ikke smarte, da sessions ikke virker, når cookies heller ikke virker...

I dette eksempel, ska vi huske på, at den processer ALLE includes selvom du laver din if sætning, dvs. har du 100 sprogfiler vil den skulle processe dem HVER gang du loader default.asp siden.

"Hvis man, som jeg, har en unik IP der skifter en gang imellem"

Det hedder ikke en unik ip, men dynamisk.. Det er jo netop IKKE unik. Men du har fat i den lange ende, da det er rigtigt at man ikk kan bruge det med ip-adresserne til meget.. Bortset fra, at et ip-span (fx 212.10.*.*) osv oftest er optaget af fx Stofanet, som kun har danske kunder, og så er chancen for at en dansk bruger får den ip, en anden har "valgt" skulle være dansk, har haft... (Kludret formuleret, er træt :P )

User
Bruger #8773 @ 14.07.06 00:55
Jeg kan godt se at det vil tage laaaang tid med 100 sprogfiler, men hvor mange mennesker har også en hjemmeside på 100 forskællige sprog. ? ikke ret mange.. Men det her var kun et eksempel på hvordan det kunne gøres. ;)
User
Bruger #8860 @ 09.08.06 23:12
Puha...
Det kan dog også gøres på en langt simplere måde - dog uden ASP. Det kræver dog en diciplineret fil-navngivning og mappe-struktur. Se hvordan de har gjort det på www.stilleben.dk
User
Bruger #10457 @ 03.09.06 13:32
man kunne jo teste på browserens sprog, og lade det være valget. Hvis den kører på dansk, så kan brugeren nok også dette, og ellers så kør på engelsk.
Du skal være logget ind for at skrive en kommentar.
t