Hallo,
bin nun schon den ganzen Tag dabei was zu finden was mich weiterbringt, hab es aber noch nicht gefunden.
Ich möchte bei Aufruf der Seite, das gleich nach eingestellter Sprache des Browsers die Seite aufgerufen wird.
Also z.B. wenn ein Engländer die Seite aufruft, soll er gleich zur englischen Version weitergeleitet werden.
Ich hatte schon rlmp_language_detection probiert, aber da funktioniert gar nichts.
Sprachwahl bei Seitenaufruf
Hallo cherry,
sowas lässt sich z.b. mit GeoIP für Apache umsetzen. Es gibt wohl auch 1-2 Extensions die ähnliche Funktionen bieten,
habe damit aber keine Erfahrung. Geh' doch einfach mal ins Extension Repository und suche nach "geoip", vielleicht findest du selst das richtige.
Ich würde vermutlich "geoip_redirect" ausprobieren und wenn das nichts ist auf Basis von "GeoIP Libraries" selbst eine kleine Funktion aufbauen
Ui, ui, ui, ist das verflixt.
Ich meine, das ich mal was in Javascript hatte!?
Gibt es noch eine andere Möglichkeit, bei Seitenaufruf dem User die Seite zu präsentieren, deren Sprache er in seinem Browser eingestellt hat?
Du könntest evtl. eine kleines Weiterleitungsskript per PHP erstellen:
...
includeLibs {
daRedirect = fileadmin/MyTinyRedirect.inc.php
}
# da hier eine anweisung mit "header" kommt sollte sie an allerallerallererster Stelle kommen um zu vermeiden, dass zu dem Zeitpunkt bereits Daten gesendet wurden. Deine Inhalte schiebst du ggf. nach page.2 oder so
page.1 = USER_INT
page.1.userFunc = user_MyTinyRedirect->goToWhereThePepperGrows
<?php
// fileadmin/MyTinyRedirect.inc.php
// Klasse MUSS uebrigens mit user_ beginnen
class user_MyTinyRedirect {
public function goToWhereThePepperGrows() {
// falls Sprachparameter "L" gesetzt ( erhaelt evtl. gewaehlte Sprache ) oder Wert fuer
// sprache nicht vorhanden bleibe auf der seite ( soll ja alles vorkommen )
if(!isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) || isset($_GET['L'])) { return true; }
switch($_SERVER['HTTP_ACCEPT_LANGUAGE']) {
case 'de': $daLanguageId = 1; break;
case 'en': $daLanguageId = 2; break;
case 'fr': $daLanguageId = 3; break;
default: $daLanguageId = 0;
}
if(isset($_GET)) {
foreach($_GET as $daKey=>$daVal) {
$daRequest[] = $daKey.'='.$daVal;
}
}
header('Location: '.$_SERVER['HTTP_HOST'].'?'.( (isset($daRequest)) ? (implode('&',$daRequest).'&L='.$daLanguageId) : ('L='.$daLanguageId)) ); die;
}
}
?>
So oder ähnlich, hab das jetzt so nicht getestet. Muss für realUrl und/oder deine Zwecke natürlich angepasset werden.
Referenzen:
php.net
w3.org
P.S.: Wenn nicht mal einer was gegen die $%"§$-Unnötige Smiley-Auto-Erkennung in Skript-Abschnitten macht renne ich irgendwann mit dem Kopf gegen die Wand 🙁