JOOKER's Blog Gebildet ist der, der weiss, wo er findet, was er nicht weiss.

24Aug/111

Mehrsprachige Website in PHP.

mehrsprachige weibsite 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.

VN:F [1.9.14_1148]
Rating: 0 (from 2 votes)

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

veröffentlicht unter: PHP Kommentar schreiben
Kommentare (1) Trackbacks (0)
  1. People normally pay me for this and you are giinvg it away!

    VA:F [1.9.14_1148]
    Rating: 0 (from 0 votes)

Leave a comment

(required)


*

Trackbacks are disabled.