Andrea: Mehrsprachigkeit mit PHP

Hallo zusammen,

ich möchte mit PHP eine mehrsprachige Homepage erstellen. Da ich so was noch nie gemacht habe und in Sachen PHP selber noch Newbie bin steh ich da etwas auf dem Schlauch.

Daher meine Frage an Euch:

Gibt es da so etwas wie ein Framework mit dessen Hilfe man Mehrsprachigkeit realisieren kann?

Wie würde man die Texte halten? In einer Datenbank oder, wie bei Java/Struts (falls das jemand kennt), in einem Ressource-Bundle.

Ich würde mir das wie folgt vorstellen: man verwendet im PHP-Code Platzhalter, die dann zur Laufzeit ausgewertet werden und im Ressource-Bundle dann nachgeschlagen werden.

z.B.
<p> <? {irgendEinTextPlatzhalter} ?> </p>

Im Ressource-Bundle würde dann stehen:
irgendEinTextPlatzhalter = Hallo Welt

Daraus wird dann der HTML-Quellcode:
<p>Hallo Welt</p> generiert.

Für Eure Hilfe bedanke ich mich schon im Voraus.
Liebe Grüße
Andrea

  1. Hallo,

    Ja eigentlich genau so wie du es machst nur in der PHP Syntax

    <p> <? {irgendEinTextPlatzhalter} ?> </p>

    <p> <? echo $language['hello_world']; ?> </p>

    irgendEinTextPlatzhalter = Hallo Welt

    $language = array(
      'hello_world' => 'Hallo Welt',
    );

    Ich habe dafür ein Array gewählt, man kann sich da natürlich auch andere methoden einfallen lassen.

    <p>Hallo Welt</p> generiert.

    Grüße
    Jeena Paradies

    --
    Open- vs. Closed Source Software - Verdienstmöglichkeiten | Jlog | Gourmetica Mentiri
    1. Hallo Jeena,

      danke für die schnelle Antwort.

      <p> <? echo $language['hello_world']; ?> </p>

      $language = array(
        'hello_world' => 'Hallo Welt',
      );

      Ich verstehe allerdings noch nicht so ganz wo hier nun die verschiedenen Sprachversionen reinkommen.

      Dieses Array wäre doch dann eigentlich in einer separaten php-include Datei, oder?

      Kannst Du mir Deinen Lösungsansatz vielleicht anhand den Sprachen de und en etwas genauer erklären?

      Danke
      Gruss
      Andrea

      1. Hallo,

        » Kannst Du mir Deinen Lösungsansatz vielleicht anhand den Sprachen de und en etwas genauer erklären?
        Ah ja, ähm stimmt sieht man nicht wirklich direkt. Dann versuche ich es halt noch einmal ;-).

        -------------------

        <?php  
        // Datei mit dem Namen language.de.php  
        $language = array(  
         'hello_world' => 'Hallo Welt',  
         'its_me'      => 'Ich bin es!',  
        );  
        ?>
        

        -------------------

        <?php  
        // Datei mit dem Namen language.en.php  
        $language = array(  
         'hello_world' => 'Hello World',  
         'its_me'      => "It's me!",  
        );  
        ?>
        

        -------------------

        <?php  
        // Datei die die Ausgabe macht mit dem Namen about.php  
        // Sie wird durch http://example.org/about.php?lang=de aufgerufen  
        // wobei entweder de oder en übergeben werden.  
          
        $lang = $_GET['lang'];  
        if($lang != "en") $lang = "de"; // hier wird die default Sprache angegeben  
        include_once('language.'.$lang.'.php');  
        ?>
        

        <h1>[code lang=php]<?php echo $language['hello_world']; ?></h1>
        <p><?php echo $language['its_me']; ?></p> [/code]

        -------------------

        Ich hoffe das wurde jetzt ein bischen klarer :-).

        Grüße
        Jeena Paradies

        --
        Open- vs. Closed Source Software - Verdienstmöglichkeiten | Jlog | Gourmetica Mentiri
        1. Hallo Jeena,

          Ich hoffe das wurde jetzt ein bischen klarer :-).

          Das hat mir weiter geholfen. Vielen Dank.

          Gruss
          Andrea

  2. Hallo,

    ich hab bis jetzt ganz gute Erfahrung mit Translation2@PEAR gemacht

    mfg
    Twilo