eine Seite, aber mehrere Sprachen

Seven Secrets

Erfahrenes Mitglied
Hallo und ein frohes Fest im vorraus!

Habe jetzt mal etwas zum denken für Euch! Bin gerade dabei eine Site für ein Idependentlabel zu schreiben. Nun hat mir der Chef aufgetan, daß die Site noch in 2 weitern Sprachen erstellt werden soll (Englisch und Portugisisch). *vorfreudeimkreisspring* :( Will aber nicht die ganzen späteren Inhalte in seperate Seiten bauen, sondern alles über die gleiche Seite darstellen. Bin mit dem Grundlegendem Design jetzt soweit durch. Habe es mal zu Testzwecken hochgeladen unter: Testseite

Wie kann ich es am günstigsten bewerkstelligen. Brauche eben einen guten Ansatz.
 
Hi.

Naja, also für mich als User würde das stören, wenn ich auf ner Seite 3 verschiedene Sprachen sehen muss. Wieso machst Du nicht auf der Index sowas wie ne Sprachauswahl und verlinkst die nicht entsprechend mit index_deu.php, index_eng.php und index_port.php oder so? Oder hab ich das richtig verstanden, dass Du das vom Chef aus nicht darfst? Also eleganter würde es schon mit der Vorauswahl aussehen.

mfG ALF
 
jo da würde ich mich meinem vorredner anschliessen....
und um es zu vereinfachen, würde ich da auf Templates bauen (weiss ja nicht ob
du beim jetzigen Entwurf bereits welche verwendet hast.
Im Breich der PHP-Templateengines kann ich dir Smarty (siehe Linkliste) nur wärmstens empfehlen.
 
Das hast du auch richtig verstanden. Nur wollte ich nicht für jede Sprache alle Seiten extra machen, sondern eine Grundseite und nur den Inhalt der jeweiligen Sparche anpassen.
 
das würde ja dann schon wieder etwas in Richtung CMS gehen...
schliesslich musst du ja irgendwie wissen, WO der Text gespeichert ist
der angezeigt werden soll und WIE er an passende Ort und Stelle kommt.

Recht einfach wäre es mit einer Template engine, in dem du für jede Seite den Sprachinhalt zusammenwurstelst...

z.b.

<!-- Deutsch -->
<html>
<body>
usw
</html>


<!-- English -->

...

dann überibst du dem Template einfach die Sprache um die es sich handelt, fragst die per IF ab und somit wird der Teil des Templates nur in der Sprache in der du es haben möchstes ausgegeben.
Hat im Vergleich zum kopieren des Deutschen Templates und abändern der Sprache aber nur den Vorteil, das du nicht jede Datei für jede Sprache extra hast.
 
Ich dachte dabei an Textdatein, in denen die Texte gespeichert sind und die dann je nach globaler Sprache abgerufen werden. Nur bleibt da immernoch die Frage ob das so günstig ist?
 
Wie soll ich dann die ganze Geschicht in der Struktur umsetzen? Ich habe im Moment echt ne Denkblockade. Für die einzelnen Künstler habe ich so etwas schon mal geschrieben. Da kann ich mir ja die Grundlagen schon holen, aber wie gestalltet man dann die Navigation?

aboutus.php?action=sprache wäre einfach zu händeln. Nun fehlt mir da einfach der Ansatz!
 
Du kannst es wie folgt machen:

Du hast einen Ordner "lang" in diesem Ordner liegen pro Sprache eine Datei, meinetwegen "de.lang".
In deiner index.php befindet sich nun folgendes:

- ungetestet -
PHP:
if(isset($_GET['lang']) && $_GET['lang']!="")
{
  $time = time()+758686000; 
  setcookie("lang",$_GET['lang'],$time); 
  Header("Location: index.php");
}
else
{
  if(file_exists("languages/".$_COOKIE['lang'].".lang"))
  {
    include("languages/".$_COOKIE['lang'].".lang");
  }
  else
  {
    $_lang="de";
    $time = time()+758686000; 
    setcookie("lang",$_lang,$time);
    
    include("languages/".$_lang.".lang");
  }
}

Die Spachauswahl erfolgt nun über den Link "index.php?lang=de".
Es wird ein Cookie gesetzt und die Seite wird, falls die gewählte Sprache existiert, mit der neuen Sprachdatei geladen.
In den Sprachdateien befindet sich ein Array der wie folgt aussehen kann:

PHP:
$language = array(
'news'		=> 'Neues',
'test'        => 'Test');

Natürlich kann dieser beliebig vergrößert werden.
Jetzt kannst du, wenn alles glatt gelaufen ist, in deinen Seiten die von dir in dem $language Array definierten Variablen nutzen.

PHP:
echo $language['news'];

Ich hoffe, meine kleine Arbeit hat dir weiterhelfen können...
 
Das mit der Navigation habe ich schon gelöst! Die wird in Englisch bleiben! Ich denke mal, das versteht jeder!

Nun ist der Chef durch und hat mir mitgeteilt, das es in deutsch, englisch und portugisisch sein wird. Habe jetzt vor ne Startseite zu erstellen auf der man die Sprache gleich wählen kann und dann zusätzlich noch in der Seite wechseln kann.
DIe Textdatein werden ich dann in dei jeweilige Sprache setzen und nur Zeilen auslesen lassen für das jeweilige Thema. Nun bleibt nur die Frage, wie sage ich das der Navigation?
 
Zurück