Homepage mehrsprachig mit PHP ?

ka/na

Mitglied
Hi,

wie könnte ich am besten meine Seite mehrsprachig machen?
Ich müsste aber noch in meiner index.php include befehle für meine news headline u.s.w. ausführen können.

Kennt ihr dafür ein Tutorial?
 
Zuletzt bearbeitet:
Ich wuerde ein/zwei/n Fette Arrays erstellen, und alle Sprachelemente dort reinpacken.

Im Code setzt du dann nur eine Variable ein z.b.

Code:
$deutsch['gaestebuch']  // enthaellt dann 'Gästebuch'
$englisch['gaestebuch']  // enthaellt dann 'Guestbook'

usw.
Bei vielen & grossen Texten wird das dann evtl irgendwann etwas problematisch.
Das kommt halt auf den Umfang der Seite an.

Grössere Textinhalte könntest du dann z.B. auch in Text-Dateien oder in eine Datenbank packen und je nach ausgewaehlter Sprache dann die entsprechende includen/auslesen.

Evtl gibts nen professionelleren Weg, aber so wuerde ich das aus dem Bauch raus machen.

Gruß
Frank
 
Jo danke für die Antwort, nur leider kann ich damit nicht soooviel Anfangen :rolleyes:

Ein Tutorial über sowas wäre nicht schlecht, kennt ihr eins dafür?
Mit einem Beispiel am besten.
 
Erstell dir eine neue Datei z.b. inhalte.php

erstell dort ein array z.b fuer deutsch:

da rein schreibst du alle "Wörter" die in deiner Webseite vorkommen zum Beispiel in deiner Navigation:


PHP:
$deutsch['start'] = 'Start';
$deutsch['uebermich'] = 'Über mich';
$deutsch['gaestebuch'] = 'Gästebuch';
$deutsch['forum']' = 'Forum';

// analog dazu eine zweite sprache z.b. englisch:


$englisch['start'] = 'Home';
$englisch['uebermich'] = 'About me';
$englisch['gaestebuch'] = 'Guestbook';
$englisch['forum']' = 'Board';

In eine config.php oderso schreibst du die festlegung rein welche sprache default maessig eingestellt werden soll:

$language='deu';
// mögliche sprachen : deu, eng , .... as you like

dann baust du irgendwo eine kleine Funktion die dir abhängig davon welche Sprache eingestellt wurde, den ensprechenden Inhalt ausspuckt: z.b. so:

PHP:
function content_insert($word) {

global $language; // das stellt sicher, dass die variable $language von ausserhalb der funktion verwendet wird;
global $deutsch;
global $englisch;
// .. usw


switch ($language) {
    case 'deu' :
                   {
                   $result = $deutsch[$word];
                   break;
                   }
    case 'eng':
                   {
                   $result = $englisch[$word];
                   break;
                   }
//    case ....  usw

} // end switch
return $result;
} // end function


Beim Code deiner Seite schreibst du dann eben sowas wie :

PHP:
echo '<a href="index.php">'.content_insert('Start').'</a>'; 
echo '<a href="index.php?page=uebermich">'.content_insert('uebermich').'</a>'; 
echo '<a href="index.php?page=gb">'.content_insert('gaestebuch').'</a>'; 
echo '<a href="index.php?page=forum">'.content_insert('forum').'</a>';


Also so sinngemäß :)
Hab das nich ausprobiert nun. einfach so getippert wies mir in den Sinn kam.

Hoffe das hilft dir weiter.
Gruß
Frank
 
Einfacher und weniger aufwändig (ganze Funktionen schreiben und co), wäre es, wenn man in seiner Seite ein Array nutzt, das man z.B. über $fixed_words['uebermich'] anspricht und dann nur einmal bei Aufrufen der Seite über eine If-Abfrage checkt, welche Sprache angezeicht werden soll und dann einmal kurz

$fixed_words = $deutsch; oder $fixed_words = $englisch; macht. So bleibt das ganze auch am leichtesten erweiterbar.
 
Zurück