Webseite Mehrsprachig , wie gehts?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
ausland
code
einbinden
einzelne dateien
ermittelt quelle
index
kombination
meeting
pos
ressource
sprache
standort
string
umsetzen
url
versammlung
verzeichnis
vorgehen
zugreifen
-
Hallo Zusammen,
Ich suche nach einer möglichkeit meine Webseite sowohl in Deutsch (Wie sie jz ist) und auch in Englisch anzubieten.
Aber wie lässt sich das umsetzen , so das man 1sten auf der Seite auswählen kann & zweitens wenn möglich der Standort abgefragt wird und wenn dieser in Amerika bzw. im Ausland liegt man direkt alles in Englisch angezeigt bekommt.
LG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ressourcen + Cookies oder Header.
Da deine Website glaube ich in PHP geschrieben ist, würde ich wie folgt vorgehen:
Du legst dir ein Verzeichnis languages in deinem Hauptverzeichnis ab. Dort legst du einzelne Dateien, wie de.php oder en.php ab. In diesen definierst du jeweils ein Key-Value Array, in dem du alle deine Strings ablegst.
Sobald deine index.php aufgerufen wird, kannst du entweder aus einen Cookie oder aus dem Anfrageheader die gewünschte Sprache ermitteln und dann die jeweilige PHP Datei einbinden. Dann kannst du auf deine Strings zum Beispiel so zugreifen:
$lang["404"];
ODER:
Du speicherst dir deine ganzen Seiten zweisprachig in der DB und rufst sie dann halt entsprechend ab. Natürlich ist auch eine Kombination aus beidem möglich.
Grüße
Mator -
marvinkleinmusic schrieb:
zweitens wenn möglich der Standort abgefragt wird und wenn dieser in Amerika bzw. im Ausland liegt man direkt alles in Englisch
Normalerweise wird die Sprache des Webbrowsers abgefragt:
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) // Sind Sprachdaten vorhanden? { $_SESSION['lang'] = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2); } else // Keine Sprachdaten vorhanden! { if($_SERVER['SERVER_NAME'] == 'homepage-versammlung.tk') {$_SESSION['lang'] = 'de';} elseif($_SERVER['SERVER_NAME'] == 'homepage-meeting.tk') {$_SESSION['lang'] = 'en';} else {$_SESSION['lang'] = 'en';} }
(dieser Code ermittelt die Sprache des Browsers und falls dieser keine Sprache ausgibt, wird anhand der Domain die Sprache ermittelt. - Quelle: http://blog.wronnay.net/?p=425)
Einbinden kannst Du dann die Sprachdateien so:
if($_SESSION['lang'] == "de") { include 'lang/de.php'; } else { include 'lang/en.php'; }
-
function get_sprache()//gibt die Sprache zurück, welche unterstützt wird und mit der des Users übereinstimmt { $sprachen=array('en', 'de');//unterstützte Sprachen, als Kürzel $sprache=$_SERVER['HTTP_ACCEPT_LANGUAGE']; foreach($sprachen as $index) { $pos=strpos($sprache,$index); if($pos!==false) { $u_sprachen[$index]=$pos; } } if(isset($u_sprachen)) { asort($u_sprachen); reset($u_sprachen); return key($u_sprachen); } else//Keiner der Sprachen wird unterstützt, oder der Browser sendet keine Sprachen mit { return "en"; } }
Diese Funktion gibt die am ehesten vom User und dir unterstütze Sprache, du solltest aber trotzdem immer eine manuelle auswahl haben. Am besten du machst für deine Templatedatein einfach für jede Sprache ein Verzeichnis mit namen des sprachkützel und bindestest entsprechend ein. Die Sprachdaten am besten in einem Cookie oder wenn es schon eine gibt, in eine Session -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage