Sprachabfrage des Browsers
screeenpx
- javascript
Hallo
ich suche ein JavaScript das eine Sprachabfrage des
Browsers vornimmt und dann je nachdem einen entsprechende Weiterleitung gibt.
ähnlich dem Beispiel für Browsertypabfrage:
<script LANGUAGE="JavaScript">
<!--
var browser = navigator.appName
if (browser == "Microsoft Internet Explorer")
seite=("seite_für_MS.html");
else
seite=("seite_für_net.html");
window.location=seite
//-->
</script>
Danke schonmal im voraus für help
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
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 ???
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
Hi,
wie schreibe ich das php so um das er bei zB englischer Spracheinstellung auf ein EN-Verzeichnis weiterleitet ???
- kann leider noch nich php:
Lesen bildet ;-) - [1]
01 <?php
---->8---- *snip*
69 // die gefundene Sprache zurückgeben
70 return $current_lang;
Zuerst entfernst du die Zeilennummern. Dann ist in der Variablen $current_lang die Sprache des Browsers gespeichert, welche du dann z.B. mit einer if-Abfrage auslesen kannst. Mit der Funktion header() [2] (Stichwort: header("Location...")) kannst du dann schließlich einen Redirect-Header an den Browser senden, welcher daraufhin den angegebenen URI laden sollte.
[1] http://php.net/manual/de
[2] http://www.php.net/manual/de/function.header.php
Grüße aus Darmstadt,
Benjamin
Hi
ich suche ein JavaScript das eine Sprachabfrage des
Browsers vornimmt und dann je nachdem einen entsprechende Weiterleitung gibt.
Guck mal im Archiv unter http://forum.de.selfhtml.org/archiv/2003/4/42858/, isbd. http://forum.de.selfhtml.org/archiv/2003/4/42858/#m234256 dürfte interessant sein, wenn du die Möglichkeit hast PHP zu benutzen.
Zu JavaScript vielleicht <file:///debian/home1/data/docs/selfhtml80/javascript/objekte/navigator.htm#language>?
Schöne Grüße
Johannes
Hi
danke aber das löst nich soganz das problem ..
» Hi
ich suche ein JavaScript das eine Sprachabfrage des
Browsers vornimmt und dann je nachdem einen entsprechende Weiterleitung gibt.
Guck mal im Archiv unter http://forum.de.selfhtml.org/archiv/2003/4/42858/, isbd. http://forum.de.selfhtml.org/archiv/2003/4/42858/#m234256 dürfte interessant sein, wenn du die Möglichkeit hast PHP zu benutzen.
Zu JavaScript vielleicht <file:///debian/home1/data/docs/selfhtml80/javascript/objekte/navigator.htm#language>?Schöne Grüße
Johannes
Hi
<file:///debian/home1/data/docs/selfhtml80/javascript/objekte/navigator.htm#language>?
Jetzt ist es mir auch mal passiert. Hab auf meine lokale Platte verlinkt. Es muss natürlich http://selfhtml.teamone.de/javascript/objekte/navigator.htm#language heißen. Nichts für ungut.
Schöne Grüße
Johannes
Hi
<file:///debian/home1/data/docs/selfhtml80/javascript/objekte/navigator.htm#language>?
Jetzt ist es mir auch mal passiert. Hab auf meine lokale Platte verlinkt. Es muss natürlich http://selfhtml.teamone.de/javascript/objekte/navigator.htm#language heißen. Nichts für ungut.Schöne Grüße
Johannes
hey danke, denke damit komme ich weiter
Gruß Ilja