29. oktober 2013 - 09:05Der er
27 kommentarer og 1 løsning
script til valg af Dansk, Engelsk el. Svensk landing site
Har side payvend.com som er Dansk, nu skal der skal laves en Engelsk og Svensk udgave. Jeg vil gerne have et script i header der sender svenske besøgende direkte til svensk forside og ligeså de engelske.
så du skal lave en startside der bare kalder denne api, og deler svaret i DK, SV, alle andre=UK - landet gemmes i en session-variabel, og evt cookie så det huskes næste gang bruger kommer forbi. Der bør også være mulighed for at vælge sprog/land fra fx overskriften på siderne.
jeg har fundet en lidt lettere vej http://www.developershome.com/wap/detection/detection.asp?page=readHeader så er det bare accept_language = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") og teste på da/sv/alt andet koden skal være det første der sker på fx index.asp. Jeg ved ikke, om du vil lave helt adskilte sider til hvert sprog, eller om det er fælles opbygning, og kun tekster, der skiftes ud.
prøv med dette i starten af index.asp <% strlang = lcase(request("lang")) If strlang <> "dk" and strlang <> "se" and strlang <> "uk" Then strlang = lcase(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")) if strlang = "da" then Response.Redirect("http://www.payvend.com/?lang=dk") if strlang = "se" then Response.Redirect("http://www.payvend.com/?lang=se") else Response.Redirect("http://www.payvend.com/?lang=uk") end if end if %>
hvis sprog er kendt (dk, se, uk) så ok - ellers finder den en af dem og loader sig selv igen, så sprog er valgt. Alle andre end de tre vil bare reloade siden.
hvis det er index.php, så har du valgt forkert kategori - men det er nogenlunde det samme - dette er dog asp, og virker kun der. Vend tilbage med navn på index-filden.
så skal du bare lige kopiere linjerne fra #5 ind i starten af koden på default.asp dvs det skal ligge som de første linjer - brug en alm editor til det - notebook kan klare det.
alt mellem stregerne (du manglede de første 3 linjer) ---------------- <% strlang = lcase(request("lang")) If strlang <> "dk" and strlang <> "se" and strlang <> "uk" Then strlang = lcase(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")) if strlang = "da" then Response.Redirect("http://www.payvend.com/?lang=dk") if strlang = "se" then Response.Redirect("http://www.payvend.com/?lang=se") else Response.Redirect("http://www.payvend.com/?lang=uk") end if end if %> ----------------
typisk skal du med et ftp-program (en stifinder på nettet) logge ind på dit domæne, og hente filen til din pc. Så retter du i den, og uploader den igen via ftp.
Hold da op de der Scannet er lidt tunge at danse med!
De skriver til mig: "Da det er et cms system kan vi ikke gå ind og ændre i den direkte i asp filen." og "Dertil skal det nævnes at i ikke kan bruge asp kode, men istedet skal bruge javascript kode. En anden ting i lige have med er at hvis i laver den på nedenstående måde, så vil det ikke virke optimalt, fordi så snart man er inde på siden og går ind på en underside så har siden ikke language tagget med længere, og så vil du bare blive redirected om til forsiden istedet for at komme ind på undersiden pga scriptet."
(nedestående måde = med den du skitserede)
Er det mon rigtigt? eller har de ikke forstået hvad jeg vil?
Jeg kender ikke CMS-systemet, men det er da muligt, at det selv finder ud af sprog hvis der er lavet sider på flere sprog. Typisk vil den så have en default-værdi (fx engelsk) og nogle flag-ikoner, hvor bruger vælger at skifte til fx dansk. Det valg gemmes så i cookie på brugers pc, så den kører det valgte fremover.
det bliver ikke så godt, da den så kun kan teste på browserens sprog. Vi kan nok gå ud fra, at fx en firefox på dansk også er hjemhørende i dk - men der er jo en helt del der kører med engelsk programpakke på maskinen, og der vil den så vælge uk-versionen som standard.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.