sprachenweiche
Roger
- php
0 David Tibbe0 wahsaga0 Roger0 David Tibbe0 wahsaga
0 Chris0 Tobias Kloth0 Roger
0 Roger
moin!
bisher hatte ich bei einer seite immer eine weiche eingebaut, die anhand der eingestellten browsersprache in das jeweilige verzeichnis verweist. allerdings hat sich diese methode als äußerst ungenau herausgestellt:
$tlang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
if (preg_match("/en/i", $tlang)) {$lang="en";}
elseif (preg_match("/fr/i", $tlang)) {$lang="fr";}
elseif (preg_match("/es/i", $tlang)) {$lang="es";}
else {$lang="de";}
header("Location: http://".$_SERVER['SERVER_NAME']."/".$lang."/");
kann ich das noch ein wenig verfeinern?
(schon allein mit dem safari, bei dem alles deutsch eingestellt wird, wird "en" gefunden. opera und mozallia hab ich nur ne englische version - hier verstehe ich ja evtl. auch, warum auch hier "en" gesetzt wird.)
ich habe da sicherlich nur einen denkfehler drin...
ich glaub es liegt daran, dass nicht die allererste angabe gesucht wird, sondern zuerst, ob en vorkommt. wenn ja, auch bei q=0.5 wird es akzeptiert...
bevor der vorschlag kommt: auf den seiten gibt es nat. auch noch zusätzlich ein link, mit dem man die sprache auswählen kann.
gruß.
roger.
Hallo Roger,
ich glaub es liegt daran, dass nicht die allererste angabe gesucht wird, sondern zuerst, ob en vorkommt. wenn ja, auch bei q=0.5 wird es akzeptiert...
So ist es. Schaue nicht nur nach, welche Sprachen erwünscht werden, sondern auch, wie sehr welche Sprache. Liefere dann die mit dem höchsten q-Wert aus.
Grüße
David
hi,
(schon allein mit dem safari, bei dem alles deutsch eingestellt wird, wird "en" gefunden. opera und mozallia hab ich nur ne englische version - hier verstehe ich ja evtl. auch, warum auch hier "en" gesetzt wird.)
das hat eigentlich überhaupt nichts miteinander zu tun.
auch in einer englischen programmversion eines browsers sollte durchaus einstellbar sein, welche sprachen der benutzer bei _webseiten_ bevorzugt.
die sprache des interface ist ohne jeglichen belang.
gruß,
wahsaga
moin!
hm, ich habe aber in keinen der browser keine möglichkeit gefunden, diese einzustellen. bin ich blind, oder ist diese option zu sehr versteckt?
gruß.
roger.
Hallo Roger,
hm, ich habe aber in keinen der browser keine möglichkeit gefunden, diese einzustellen. bin ich blind, oder ist diese option zu sehr versteckt?
Ich hab gerade kein Opera da, aber ich bin mir sehr sicher, dass die Einstellung unter "Preferences" -> "Language" ist.
Grüße
David
Hallo David,
Ich hab gerade kein Opera da, aber ich bin mir sehr sicher, dass die Einstellung unter "Preferences" -> "Language" ist.
unter Tools -> "Preferences..." (bzw. Alt+p) -> Languages, richtig :-)
Grüße aus Nürnberg
Tobias
hi,
hm, ich habe aber in keinen der browser keine möglichkeit gefunden, diese einzustellen. bin ich blind, oder ist diese option zu sehr versteckt?
opera wurde bereits beschrieben, im IE ist es internet optionen -> sprachen, und im mozilla/firefox ... weiß ich es gerade auch nicht :-)
gruß,
wahsaga
Hallo wahsaga,
opera wurde bereits beschrieben, im IE ist es internet optionen -> sprachen, und im mozilla/firefox ... weiß ich es gerade auch nicht :-)
Firefox: Tools -> "Options..." -> Bereich "General" -> Button "Languages..."
Grüße aus Nürnberg
Tobias
hi,
bevor der vorschlag kommt: auf den seiten gibt es nat. auch noch zusätzlich ein link, mit dem man die sprache auswählen kann.
ist aber die sicherste möglichkeit.
ich hatte hier im archiv oder in dem von selfphp mal eine browser weiche für die sprache gefunden, die war recht umfangreich und wird sicher auch so weit möglich funktioniert haben, finde aber den link nicht mehr.
warum lässt du den user das nicht einfach selber auswählen, wenn du ihn das leben einfacher machen willst kannst du ja seine auswahl in einem cookie hinterlegen, so dass er nicht jedesmal wieder neu wählen muss.
es kann ja keiner wissen wer hinter welchem browser sitzt, allein in schulen oder unis sitzen etliche leute hinter browsern die auf deutsch eingestellt sind aber viel lieber eine andere sprache wählen würden.
viele grüße,
chris
Hallo Roger,
ich glaub es liegt daran, dass nicht die allererste angabe gesucht wird, sondern zuerst, ob en vorkommt. wenn ja, auch bei q=0.5 wird es akzeptiert...
du möchtest dir http://aktuell.de.selfhtml.org/tippstricks/php/httpsprache/index.htm anschauen.
bevor der vorschlag kommt: auf den seiten gibt es nat. auch noch zusätzlich ein link, mit dem man die sprache auswählen kann.
brav :-)
Grüße aus Nürnberg
Tobias
moin!
du möchtest dir http://aktuell.de.selfhtml.org/tippstricks/php/httpsprache/index.htm anschauen.
ui!
lohnt es sich wohl doch ab und zu mal in die tipps und tricks zu sehen ;)
bevor der vorschlag kommt: auf den seiten gibt es nat. auch noch zusätzlich ein link, mit dem man die sprache auswählen kann.
brav :-)
(_nicht_doppeldeutig:) *schwanzwedel*
gruß.
roger.
moin!
ich habe das jetzt eigentlich nur um ein zeichen geändert:
if (preg_match("/^en/i", $tlang)) {$lang="en";}
elseif (preg_match("/^fr/i", $tlang)) {$lang="fr";}
elseif (preg_match("/^es/i", $tlang)) {$lang="sp";}
else {$lang="de";}
da bei den spracheneinstellungen in den browsern nun die standardsprache (des browsers - nicht des users ;)) an erster stelle steht, dürfte die abfrage imho genügen.
gruß.
roger.