Luraguttn Skrevet 9. april 2011 Del Skrevet 9. april 2011 (endret) Heisann, jeg prøver og finne et script som redirecter deg til en spesiell url avhengig av språket på pcen. Fant en .htaccess måte og gjøre dette på, men den satt bare chrome i en loop, og sendte deg til /en uansett hvilket språk du hadde. Noen som har en enkel måte og fikse dette på? Eksempel: Norsk OS, sender besøkende til http://eksempel.org/no En_gb OS, sender besøkende til http://eksempel.org/en En_US OS, sender besøkende til http://eksempel.org/us osv osv.. Noen som har noen råd? Endret 10. april 2011 av Luraguttn Lenke til kommentar
4588pkdkrikue5c Skrevet 10. april 2011 Del Skrevet 10. april 2011 (endret) Eg skreiv noko heilt pleint no. Du kan lage fleire "cases" hvis du vil det selvfølgeleg. Sikkert fleire måter å gjere det på, men eg tykkjer dette er enklast med PHP. <?php $lang = explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"] ) ; switch ($lang[0]) { case "nn-no": $sprak = "nynorsk"; break; case "nb-no": $sprak = "bokmal"; break; default: $sprak = "english"; break; } header("Location: index.php?lang=$sprak"); ?> Redigert: Dette går på nettleser språk, du kan jo naturlegvis sjekke dette opp mot IP, men det krever jo ein del meir kode. Med det sagt, la brukeren få velge sjølve óg. Hugs å ta med nokre flag på nettstaden slik at dei kan overstyre automatikken. Kan jo vere at nokon norske nytter ein anna nettlesar til dømes. Lukke til, håper eg forstod deg rett Endret 10. april 2011 av steffenz Lenke til kommentar
Ernie Skrevet 10. april 2011 Del Skrevet 10. april 2011 Jeg tror det kan være en fordel å gå igjennom alle elementene før man setter en «default» verdi. Det kan fort hende at førstevalget er et «ukjent» språk, mens andrevalget er noe annet enn engelsk. Lenke til kommentar
Luraguttn Skrevet 10. april 2011 Forfatter Del Skrevet 10. april 2011 (endret) Eg skreiv noko heilt pleint no. Du kan lage fleire "cases" hvis du vil det selvfølgeleg. Sikkert fleire måter å gjere det på, men eg tykkjer dette er enklast med PHP. <?php $lang = explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"] ) ; switch ($lang[0]) { case "nn-no": $sprak = "nynorsk"; break; case "nb-no": $sprak = "bokmal"; break; default: $sprak = "english"; break; } header("Location: index.php?lang=$sprak"); ?> Redigert: Dette går på nettleser språk, du kan jo naturlegvis sjekke dette opp mot IP, men det krever jo ein del meir kode. Med det sagt, la brukeren få velge sjølve óg. Hugs å ta med nokre flag på nettstaden slik at dei kan overstyre automatikken. Kan jo vere at nokon norske nytter ein anna nettlesar til dømes. Lukke til, håper eg forstod deg rett Så for at brukerene skal havne i mapper, så må jeg bare endre location: til /$språk for at de skal komme til mapper ? Edit: Endret litt på koden nå slikt den skal passe mitt format, men når jeg laster filen opp skjer ingenting. Koden er: <?php $lang = explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"] ) ; switch ($lang[0]) { case "nb-no": $sprak = "no"; break; case "en-gb": $sprak = "en"; break; default: case "en-us": $sprak = "us"; break; } header("Location: /$sprak/"); ?> Ser du noen feil? Endret 10. april 2011 av Luraguttn Lenke til kommentar
4588pkdkrikue5c Skrevet 10. april 2011 Del Skrevet 10. april 2011 Nei ikkje egentleg. Er dette det einste du har i fila? Hvis du har noko som helst som printes ut, vil ikkje header fungere Lenke til kommentar
Luraguttn Skrevet 10. april 2011 Forfatter Del Skrevet 10. april 2011 Nei ikkje egentleg. Er dette det einste du har i fila? Hvis du har noko som helst som printes ut, vil ikkje header fungere Fikk hjelp av en via MSN vil og fikse koden litt. Nye koden ble: <?php ob_start(); $lang = explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"] ) ; switch ($lang[0]) { case "nb-NO": $sprak = "no"; break; case "en-GB": $sprak = "en"; break; default: $sprak = "us"; break; } header("Location: /".$sprak."/"); ?> Takk for hjelpen Lenke til kommentar
4588pkdkrikue5c Skrevet 10. april 2011 Del Skrevet 10. april 2011 Åja, mogleg det er forskjellig frå versjon til versjon. Koden fungerte iallefall hos meg sånn som du skreiv tidlegare. Berre hyggeleg å hjelpe. Hugs at dette berre er ein "prototype", og høyr på kva Ernie sa tidligare i tråden. Noko som ser innlysande lett ut, kan vise seg å vere vanskeleg nokre gongar. Lukke til, å berre spørr om eg kan hjelpe med noko meir Lenke til kommentar
Gjest Slettet+9871234 Skrevet 10. april 2011 Del Skrevet 10. april 2011 (endret) Ser at oppgaven er løst og koden er enkel. Jeg trenger samme løsning på en av mine siter og lurer på om det er den beste og profesjonelle måten å gjøre det på? Man ser jo ofte at om man besøker en kjent engelskspråklig site, så havner man automatisk på en side med norsk tekst. Personlig vil jeg foretrekke en php fremfor en JS løsning på grunn av sikkerhet etc. Om man bruker en Apache server er vel også en .htaccess løsning enda sikrere? Endret 10. april 2011 av Slettet+9871234 Lenke til kommentar
4588pkdkrikue5c Skrevet 10. april 2011 Del Skrevet 10. april 2011 (endret) Ein veg å gå kan jo vere å sjekke opp mot IP, samt sekundærspråk. Som du ser i kodesnutten eg skreiv har eg nytta explode() til å berre få fram første språkval. Sjekk opp to av desse (i min kodesnutt finner du då neste linje ved lang[1]. Videre sjekker ein geografisk stad av IP, det ville eg gjort. Kva er då sannsynet for at vedkommende kan vere norsk? Sikkert fleire måter å gjere det på, men personleg tykkjer eg det er nok om ein i tillegg har moglegheit for at brukaren kan velje språk i etterkant (overstyre automatikken). Det kan óg vere hensiktsmessig å lagre ein cookie (eventuelt SESSION om du ikkje vil bruke Javascript) på språkvalet. Redigert: Kommer ikkje på fleire måter i validere språket på. Men kom gjerne med tips her. Det meste kan ein fikse med PHP, eventuelt samen med Javascript til å berekne sannsyn. Endret 10. april 2011 av steffenz Lenke til kommentar
Gjest Slettet+9871234 Skrevet 10. april 2011 Del Skrevet 10. april 2011 Videre sjekker ein geografisk stad av IP, det ville eg gjort. Skal kanskje ikke levere skreddersøm for personer som vil være annonyme og hackere. Les her: http://www.webproworld.com/webmaster-forum/threads/97509-Getting-a-visitors-real-Ip-address. Lenke til kommentar
4588pkdkrikue5c Skrevet 10. april 2011 Del Skrevet 10. april 2011 Det var ein lang kode! Eg tykkjer personleg om når eg kan velje sjølve i tilegg. Mange ganger ynkjer eg å ha sider på engelsk, sjølv om eg er norsk. Diffor tykkjer eg ikkje dette trenger å vere så utruleg "absolutt". Ein må kunne velje, og språkvalet går berre på kva språk ein har foretrukket. Har ein til dømes engelsk språk på nettleseren kan det tyde på fleire ting: - At brukaren ikkje gadd å finne norsk versjon, og er likegyldig. - At vedkommende er i Noreg, men ikkje foretrekk norsk. - Eller at vedkommende ikkje er i Noreg (Captain Obvious). Med geografisk lokasjon (utfrå IP) kan ein luke ut den siste, og eventuelt den første. Resten får vere opp til brukaren sjølve. Tykkjer eg då. Berre har ein språkveljar lett tilgjengeleg. No veit eg ikkje kva publikum du henvender deg til, men dei fleste nytter verken proxy, eller er hackere. Så det trur eg ikkje du trenger og bekymre deg for mykje for. Og om dei gjer er det mest sannsynleg ikkje komplett idiotar - noko som tilseier at dei greier å skifte språket sjølve. Det er måten eg ville løyst det på, så ikkje ta det som noko fasitsvar Lenke til kommentar
Gjest Slettet+9871234 Skrevet 10. april 2011 Del Skrevet 10. april 2011 Og om dei gjer er det mest sannsynleg ikkje komplett idiotar - noko som tilseier at dei greier å skifte språket sjølve. Det er måten eg ville løyst det på, så ikkje ta det som noko fasitsvar Google translate. Annonyme bruker nok den tjenesten ofte. Har sett (med forbehold om rekkeføge) noen gå via Latin->Engelsk->Annet språk for å finne riktig(e) ord etc. Lenke til kommentar
Milktea Skrevet 10. april 2011 Del Skrevet 10. april 2011 Sette førstevalg av språk ut fra geografisk lokalisasjon er vel kanskje greit nok, ment rent ellers er det å sette språk på grunnlag av IP ganske lite hyggelig mot brukerne. Hater å få omdirigering til norske utgaver av nettsider når jeg ikke vil dit, eller på språk jeg ikke kan hvis jeg er i utlandet, til tross for at både nettleseren og operativsystemet bruker engelsk. Når det kommer til implementasjon er vel ikke mod_rewrite så dumt? F.eks. skrive om http://example.com/english/ til http://example.com/index.php?lang=english og bare ta det derfra. Lenke til kommentar
4588pkdkrikue5c Skrevet 10. april 2011 Del Skrevet 10. april 2011 Enig med deg. Det er det eg prøver å seie. Lenke til kommentar
Ernie Skrevet 10. april 2011 Del Skrevet 10. april 2011 Ser at oppgaven er løst og koden er enkel. Jeg trenger samme løsning på en av mine siter og lurer på om det er den beste og profesjonelle måten å gjøre det på? Nei. Det å benytte «Accept-Language»-headeren i HTTP er den korrekte måten å gjøre det på, men parsingen her er ikke avansert nok. Ta en titt på seksjon 14.4 av RFC2616 for mer info. W3C har blant annet den liggende ute her: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html Her vil man se at det blant annet finnes en kvalitetsfaktor som angir hvor ønsket et gitt språk faktisk er, og man kan dermed danne en prioritert liste over språk brukeren ønsker tilbake. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå