hi danke für den Tip,
aber
wie schreibe ich das php so um das er bei zB englischer Spracheinstellung auf ein EN-Verzeichnis weiterleitet ???
- kann leider noch nich php:
01 <?php
02 // Browsersprache ermitteln
03 function lang_getfrombrowser ($allowed_languages, $default_language, $lang_variable = null, $strict_mode = true) {
04 // $_SERVER['HTTP_ACCEPT_LANGUAGE'] verwenden, wenn keine Sprachvariable mitgegeben wurde
05 if ($lang_variable === null) {
06 $lang_variable = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
07 }
08
09 // wurde irgendwelche Information mitgeschickt?
10 if (empty($lang_variable)) {
11 // Nein? => Standardsprache zurückgeben
12 return $default_language;
13 }
14
15 // Den Header auftrennen
16 $accepted_languages = preg_split('/,\s*/', $lang_variable);
17
18 // Die Standardwerte einstellen
19 $current_lang = $default_language;
20 $current_q = 0;
21
22 // Nun alle mitgegebenen Sprachen abarbeiten
23 foreach ($accepted_languages as $accepted_language) {
24 // Alle Infos über diese Sprache rausholen
25 $res = preg_match ('/^([a-z]{1,8}(?:-[a-z]{1,8})*)'.
26 '(?:;\s*q=(0(?:.[0-9]{1,3})?|1(?:.0{1,3})?))?$/i', $accepted_language, $matches);
27
28 // war die Syntax gültig?
29 if (!$res) {
30 // Nein? Dann ignorieren
31 continue;
32 }
33
34 // Sprachcode holen und dann sofort in die Einzelteile trennen
35 $lang_code = explode ('-', $matches[1]);
36
37 // Wurde eine Qualität mitgegeben?
38 if (isset($matches[2])) {
39 // die Qualität benutzen
40 $lang_quality = (float)$matches[2];
41 } else {
42 // Kompabilitätsmodus: Qualität 1 annehmen
43 $lang_quality = 1.0;
44 }
45
46 // Bis der Sprachcode leer ist...
47 while (count ($lang_code)) {
48 // mal sehen, ob der Sprachcode angeboten wird
49 if (in_array (strtolower (join ('-', $lang_code)), $allowed_languages)) {
50 // Qualität anschauen
51 if ($lang_quality > $current_q) {
52 // diese Sprache verwenden
53 $current_lang = strtolower (join ('-', $lang_code));
54 $current_q = $lang_quality;
55 // Hier die innere while-Schleife verlassen
56 break;
57 }
58 }
59 // Wenn wir im strengen Modus sind, die Sprache nicht versuchen zu minimalisieren
60 if ($strict_mode) {
61 // innere While-Schleife aufbrechen
62 break;
63 }
64 // den rechtesten Teil des Sprachcodes abschneiden
65 array_pop ($lang_code);
66 }
67 }
68
69 // die gefundene Sprache zurückgeben
70 return $current_lang;
71 }
72 ?>
Hi,
ich suche ein JavaScript
was passiert dann ohne?
das eine Sprachabfrage des Browsers vornimmt und dann je nachdem einen entsprechende Weiterleitung gibt.
Idealwerweise lässt du dies deinen Server entscheiden:
http://www.google.at/search?q=content+negotiation+sprache
http://aktuell.de.selfhtml.org/tippstricks/php/httpsprache/ähnlich dem Beispiel für Browsertypabfrage:
<script LANGUAGE="JavaScript">
Nope. Es heißt <script type="text/javascript">
var browser = navigator.appName
Darin kann alles und nichts stehen -- es ist somit unzuverlässig.
Grüße,
Roland