Hallo,
Habe meine Internetseite so eingerichtet dass Perl bei den meisten Usern erkennt auf welche Sprache der PC eingerichtet ist.
Bei Deutsch steht also : de
Aber was bedeudet? : de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
: de,en;q=0.5
: de-de,de;q=0.5
Das, was Du da bekommst sind die Inhalte des HTTP-Response-Headers Accept-Language. Das q= steht für "quality factor". Ohne Angabe ist der 1 oder 100%.
Im Beispiel
de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
bedeutet das: Der Browser ist so eingestellt, dass er Deutsch aus Deutschland 100%-ig akzeptiert, wenn das nicht vorhanden, dann US-Englisch zu 50% und sonstiges Englisch zu 30%.
Reicht bei englisch nicht nur en und bei Deutschland de ?
Bei Englisch keinesfalls. Es gibt schon Unterschiede zwischen US-Englisch (en-us), Brittischem Englisch (en-gb) und Autralischem Englisch (en-au). Beim Deutschen wäre es zu diskutieren, wie groß der Unterschied zwischen de-de und de-at ist ;-).
und was bedeudet die 0.3 bis 0.8
siehe oben (quality factor)
und was ist q=0
Damit könnte per Browsereinstellung eine Sprache definitiv abgewählt werden. Unter dem Motto: ...,eo;q=0,... Esperanto will ich nicht.
und warum ist de mit us und de manchmal vermischt?
Weil man im Browser mehrere bevorzugte Sprachen einstellen kann. (IE: Internetoptionen-Allgemein-Sprachen, FF: Einstellungen-Erweitert-Sprachen bearbeiten).
Beachte Beim Auswerten dieser Header aber besonders, dass dies _Browser_-Einstellungen sind und _nicht_ unbedingt _Nutzer_-Einstellungen sein müssen. Manchmal kann man diese Einstellungen als Nutzer gar nicht anpassen (Firmen-Netz, Internetkaffee). Besser ist es deshalb, meiner Meinung nach, mehrere Sprachen per Verlinkung anzubieten.
viele Grüße
Axel