Mehrsprachige Website in PHP.
...vor einigen Wochen wollte ich in eins meiner Projekte die Option hinzufügen dass der User die Website direkt in seiner Browsersprache sieht, oder aber auch die Möglichkeit hat auf andere vorhandene Sprache umzuschalten. Dafür hab ich euch eine Anleitung geschrieben...
Als erstes brauchen wir eine eine 'language.php' Datei.
In diese Datei kommen die Funktionen um die Browsersprache auszulesen, um eine andere Sprache zu setzen, um Cookie mit einer anderen Sprache zu lesen und zuletzt um die richtige Sprachdatei zu laden.
Diese datei wird in eurer .php seite ganz oben included, direkt nach dem < ?php tag.
<?php
//Die funktion zum erkennen der Sprache im Browser.
//Wenn keine Sprache erkannt wird, wird Englisch verwendet.
function language($default='de'){
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
$language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
$default = $language;
}
}
//Eine andere Sprache setzen und auslesen falls Cookie vorhanden ist.
if (isset($_GET['SETLANG'])) {
$duration = 1000 * 60 * 60 * 24 * 365;
setCookie("language", $_GET['SETLANG'], time()+$duration);
$lang = $_GET['SETLANG'];
} else {
if (isset($_COOKIE['language'])) {
$language = $_COOKIE['language'];
} else {
$language = language();
}
}
//Laden der neuen Sprachdatei.
if (file_exists("lang/$language.php")) {
include("lang/$language.php");
} else {
include('lang/de.php');
}
?>
Diese 'language.php' Datei wird in eurer 'index.php' oder in jeder PHP-Datei included, je nachdem wie Ihr eure Seite baut.
<?php
include('language.php');
...
?>
Als nächstes erstellen wir das Verzeichniss 'lang' wo unsere Sprachdateien reinkommen.
Jetzt erstellen wir eine Standard Sprachdatei, z.B. 'de.php' für Deutsch.
<?php
$lang = Array(
'menu_search' => "Suchen",
'menu_partner' => "Partner Seiten",
'menu_contact' => "Kontakt",
'menu_settings' => "Einstellungen",
'welcome_text' => "Willkommen bei meiner neuen Seite!"
);
?>
Wie es zu erkennen ist, bauen wir eine einfache PHP-Datei mit Array's.
Genau so müssen auch andere Sprachdateien aussehen.
Der Sprachdateiname muss immer mit dem LänderCode beginnen, anschliessend die Dateierweitterung '.php'
Hier ein paar Beispiele für andere Sprachdateinamen:
Für Englisch: en.php
Für Polnisch: pl.php
Für Türkisch: tr.php
Für Spanisch: es.php
usw...
Eine liste mit LänderCodes findet Ihr z.B. hier: Country names and code elements in der dritten spalte.
Beachtet bitte, die Sprachdateinamen müssen kleingeschrieben werden.
Um eine andere Sprache zu setzen, braucht ihr einfach nur ein link auf die aktuele seite zu setzen mit der variable 'SETLANG=en'... hier ein Beispiel:
<a href="/index.php?SETLANG=en">English</a><br>
<a href="/index.php?SETLANG=pl">Polski</a><br>
<a href="/index.php?SETLANG=es">Espaniol</a><br>
Zum schluss kommt das einbinden in die Seite.
Eigentlich müsst Ihr nur ganz normal die Arrays Variablen ausgeben:
<?php
...
echo $lang['welcome_text'];
...
?>
Ich denke das wars... Falls ihr etwas nicht versteht oder ich Fehler gemacht habe, schreib bitte einfach ein Kommentar. Ansonnsten viel spass damit.
hat dir dieser Artikel gefallen?
Oktober 8th, 2011
People normally pay me for this and you are giinvg it away!