# Browserweiche für Sprache



## Flextone (28. Januar 2008)

Hi

derzeit suche ich eine Browserweiche um Benutzer nach dem Land in dem die sich befinden innerhalb einer Seite zu redirecten.

Ich finde viele Sachen, aber nicht genau das was ich versuche zu finden 

Kann man irgendwie einen Wert ermitteln, beispielsweise ein "de" oder "nl" ?

Ich wäre euch dankbar, wenn ihr mir helfen würdet.


----------



## Gumbo (28. Januar 2008)

Möchtest du wissen in welchem Land er sich befindet oder welche Sprache er bevorzugt? Land und Sprache sind nämlich zwei unterschiedliche Dinge.


----------



## tobee (28. Januar 2008)

Bei selhHTML gibt es darüber einen guten Artikel


----------



## Flextone (28. Januar 2008)

Was wäre besser?

Browsersprache oder Land?

Ich denke Land oder?


----------



## Gumbo (28. Januar 2008)

Das kommt darauf an, wofür diese Information verwendet werden soll (Internationalisierung oder Lokalisierung).

Ein Beispiel zur Verdeutlichung: Wenn ich mich in einem fremdsprachigen Land aufhalte und von dort aus ins Internet gehe, möchte ich, wenn ich beispielsweise die Google-Startseite aufrufe, die deutschsprachige Version sehen und nicht die in der jeweiligen Landessprache (von denen es dann auch noch mehrere geben kann).
Wenn ich allerdings beispielsweise bei Ikea nach irgendwelchen Produkten suche, möchte ich nur über die Verfügbarkeit der Produkte in den Finialen in meiner Nähe informiert werden und nicht ob sie in irgendeiner Filiale verfügbar sind.
Beim ersten Beispiel ist also die Sprache, beim letzten mein derzeitiger Standpunkt entscheidend.


----------



## Flextone (28. Januar 2008)

Es geht da drum innerhalb einer 2-sprachigen Webseite eine Weiche zu haben, das holländische User direkt in den holländischen Teil geleitet werden.


----------



## Gumbo (28. Januar 2008)

… weil die jeweiligen Inhalte sprachbezogen oder standortbezogen sind? Das ist ja gerade die entscheidende Frage.

Vielleicht waren meine Beispiel nicht deutlich genug. Worin genau unterscheiden sich die deutschen und niederländischen Inhalte? Sind sie niederländischen Inhalte beispielsweise nur auf die Niederlande bezogen (lokale Inhalte) und die deutschen auf Deutschland? Oder sind die Inhalte gleich und nur die Sprachen unterscheiden sich?


----------



## Flextone (28. Januar 2008)

Habe nun folgendes gemacht:


```
<?php
	$lang =  $_SERVER['HTTP_ACCEPT_LANGUAGE'];
	$new_lang = explode(",",$lang);
	
	if($_SERVER['REQUEST_URI'] == "/index.php"){
		if($new_lang[0] == 'nl-nl'){
			header("LOCATION: http://meine domain/dhddh.html");
		}else{
			header("LOCATION: http://meine domain/dhdhd.html");
		}
	}
?>
```

Nur weiß ich nicht ob es nl-nl heißt, bei meine Browser steht ja de-de.

Derzeit funktioniert die Weiche aber.

Kann man eine Liste im Netz beziehen, wo die Inhalte von $new_lang[0] definiert sind?


----------



## Gumbo (28. Januar 2008)

Der erste Teil bezeichnet die Sprache, der zweite die Region. „nl-nl“ heißt also Niederländisch wie es in den Niederlanden gesprochen wird („de-de“ analog dazu).
Wenn du also die Sprache ermitteln willst, benötigst du nur den ersten Teil von „_xx_-_yy_“. Denn es kann auch vorkommen, dass nur die Sprache angegeben ist.
Zudem solltest du den Präferenzparameter „q“ berücksichtigen. So ist „en;q=0.8, de“ mit „en;q=0.8, de;q=1“ äquivalent, was Deutsch als bevorzugte Sprache bezeichnet.

Aber du kannst dich glücklich schätzen, dass auch dies ein bereits behandeltes Thema ist. Und so gibt es dafür auch bereits eine passende Funktion:  parseAcceptLanguageList().


----------



## R00Ki3 (28. Januar 2008)

Dies muß ja nicht über den Browser laufen.
Es gibt ja auch noch geoip...
Was ich zuletzt benutzt habe findest du unter dieser adresse.
http://www.maxmind.com/


----------



## Gumbo (28. Januar 2008)

Wenn der Standort zur Lokalisierung benötigt wird, ist mit der im Browser eingestellten Sprache tatsächlich nicht viel zu machen. Doch vom Standort darf aber nicht auf die bevorzugte Sprache geschlossen werden. Denn Sprache und Standort sind zwei unterschiedliche Dinge, die nichts miteinander zu tun haben müssen. (Siehe [post=1561873]meine Beispiel[/post].)


----------

