Mehrsprachige Webseite / Multilinguale website
lima-city → Forum → Die eigene Homepage → Homepage Allgemein
all
break
code
datei
datenbank
deutsche webseite
entsprechenden texte
externen datei
http
login
page
platzhalter
sprache
standard
stelle
string
textbaustein
url
verwenden
webseite
-
Hallo
Ich hatte schon lange mal geplant meine webseite in mehreren Sprachen anzubieten.
Ich stelle mir da so vor:
webseite.com (zur Sprachauswahl)
en.webseite.com (englische webseite)
fr.webseite.com (französische webseite)
de.webseite.com (deutsche webseite)
it.webseite.com (italienische webseite)
ja.webseite.com (japanische webseite)
ko.webseite.com (koreanische webseite)
es.webseite.com (spanische webseite)
Ich möchte auch nicht einfach die dateien kopieren, damit ich 7 mal die gleiche webseite habe mit anderer Sprache, sondern möchte die sprachen in einer externen datei haben und die webseite selber (ohne text) von allen seiten aufgerufen wird.
Zudem möchte ich das die Sprachauswahl als Cookie gespeichert wird.
Die ganzen webseiten dateien sind schon in php.
Also kurz un knapp:
Sprachenauswahl auf hauptseite > webseite.com
Subdomain für die sprachen z.B. en.webseite.com
Cookies zum speichern der webseitesprache
Ich hoffe da kann mir jemand helfen
LG Horsti12™ DER Wolkenhändler Horsti12™ THE Clouddealer
Beitrag zuletzt geändert: 15.11.2014 22:11:51 von remakekart12 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hallo remakekart12,
das klingt doch soweit schonmal gut. was brauchst du denn noch ?
natürlich kannst du die verschiedenen texte in einer txt-datei oder php-datei als array verpackt ablegen, ich würde es allerdings gleich mit einer datenbank umsetzen da es für den gebrauch um einiges leichter zu handhaben ist.
da du ja eh verschiedene subdomains als sprachidentifizierung benutzt wäre das cookie wohl nur dazu da den user bei einem erneuten besuch deiner seite gleich an der sprachauswahl vorbeizuschleusen. cookies sind einfach zu implementieren: http://www.php-einfach.de/tuts_php_cookies.php
du könntest via mod_rewrite (.htaccess) alle unterstützten subdomains auf eine zentrale ressource (php-datei) umleiten in der du die uri nach subdomain und pfad auswertest und die entsprechende ausgabedatei includierst (include/require) in der meinetwegen platzhalter für die textbausteine vorhanden sind (z.b.:"<textbaustein 53>").
damit du nicht die platzhalter sondern die entsprechenden texte in der sprache ausgegeben bekommst könntest du vor dem include den php-ausgabepuffer aktivieren (ob_start) so das die ausgabe der includierten datei nicht direkt ausgegeben sondern diese in einem string zwischengespeichert wird (ob_get_contents). in diesem string könntest du dann den dort enthaltenen codes der textbausteine durch die richtigen texte die du aus der datenbank beziehst (SELECT text_de FROM textbausteine WHERE id="53") ersetzen (str_replace). jetzt noch den ausgabepuffer wieder deaktivieren (ob_end_clean) und den veränderten string ausgeben (echo)
natürlich könntest du anstatt der platzhalter-ersetzungen auch gleich in den existierenden php-dateien die entsprechenden texte aus der datenbank holen.
denke dran das du wohl am besten überall utf8 als zeichensatz nimmst damit es keine probleme mit besonderen schriftzeichen gibt...
lg hechma -
Cookies hat hechma ja schon erklärt, allerdings könnte man die Browsersprache direkt als Vorteinstellung verwenden.
vergleiche diesen Code:
<?php $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); switch ($lang){ case "fr": //echo "PAGE FR"; include("index_fr.php");//include check session FR break; case "it": //echo "PAGE IT"; include("index_it.php"); break; case "en": //echo "PAGE EN"; include("index_en.php"); break; default: //echo "PAGE EN - Setting Default"; include("index_en.php");//include EN in all other cases of different lang detection break; } ?>
Wenn man statt den verschieden includes auf die subdomains weiterleitet, ist es für den User wesentlich einfacher/angenehmen.
Von http://stackoverflow.com/questions/3770513/detect-browser-language-in-php -
grashuepfer schrieb:
allerdings könnte man die Browsersprache direkt als Vorteinstellung verwenden.
Eine denkbar schlechte Lösung!
Die, als Standard angebotene Sprache sollte nie von Kriterien abhängig sein, die der User nicht zwangsläufig beeinflussen kann.
Man stelle sich den schlimmsten Fall vor: Ein User muß in einem Land, dessen Sprache (schlimmer noch Schrift) er nicht beherrscht, einen lokalen PC nutzen, um im Web zu surfen. Die Automatik würde ihm vermutlich die Landessprache anbieten, so daß er eventuell nicht mal in der Lage wäre, die Navigation zu bedienen.
Bessere Alternative: Als Standard der Sprachauswahl wird die Sprache angeboten, die die Hauptzielgruppe der betreffenden Seite nutzt, im allgemeinsten Fall eventuell auch Englisch.
Der User kann dann selbst aus einer Anzahl angebotener Sprachen nach eigener Vorliebe auswählen. Diese Auswahl wird in den Sitzungsdaten gespeichert (z.B. via Cookie). Ist, wie z.B. hier bei Lima, die vollständige Nutzung der Seite von einem Login abhängig, sollte die Sprachpräferenz des Users in den Userdaten abgelegt und beim Login ausgewählt werden.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage