Multi-Language

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Multi-Language

    Hallo,

    ich hab ne Website die rund 200 einzelne PHP Dateien enthält.
    Da das Projekt mehrsprachig werden soll (bis zu 7 Sprachen geplant) ist es natürlich Schwachsinn für jede Sprache einen eigenen Ordner zu erstellen (/en, /de) und jede einzelne Datei bei Änderungen bearbeiten zu müssen.

    Soll in diesem Fall ein Template-System verwendet werden? Oder gibt es Alternativen dazu? Natürlich könnte ich alle Texte in die MySQL stopfen, wäre jedoch ziemlich viel.

    chris

  • #2
    Egal was du nimmst, du wirst nicht drum herum kommen, sämtliche Scripte zu überarbeiten.

    Alternativen zum Template-System:
    - gettext ... ich kenn nur leider noch niemanden, der das sauber installieren & konfigurieren kann (hab´s selbst mal versucht, aber nur anhand der auffindbaren Dokumentation nicht geschafft)
    - eine inc.messages.php mit defines oder Variablen-Deklarationen (im Prinzip das gleiche wie gettext, nur etwas unkomfortabler in der Anwendung)

    Noch ein Tipp: wofür du dich auch immer entscheidest, denke auch an die Grafiken, die übersetzt werden müssen!
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Nun, das bedeutet im Prinzip das ich zu jeder der Dateien eine namederdatei.lang.inc.php erstellen könnte.

      In den Inhalts-Dateien setze ich dann die Variablen von der lang.inc.php ein.

      Denn wenn ich alle Texte von allen Seiten in eine Datei packen würde wäre das schon sehr groß. Noch dazu weil ja beim includen alle Variablen initialisiert werden. Wäre zu ungunsten der Performance.

      Edit: Und das mit den Bildern ist ja im Prinzip nicht so schwer zu lösen.
      Die Sprachwahl speichere ich in der aktuellen Session

      z.B.:

      PHP-Code:
      $_SESSION["user_lang"]= 'de'
      dann würde jedes Bild (also jene, die mit Text versehen sind) den Namen BILDNAME_$_SESSION[user_lang].jpg/gif haben.
      Zuletzt geändert von chrisphp; 06.09.2005, 15:41.

      Kommentar


      • #4
        Jo, der Ansatz hört sich gut an.

        Dennoch würde ich zusätzlich eine "globale" <lang>.msg.php vorschlagen, in der häufig verwendete Begriffe wie "weiter", "Suchen", Label für Datenbank-Felder etc. stehen und die dann in jedem Skript inkludiert wird.
        Damit ergibt sich eine gute Mischung, bei der denn auch nicht soviel übersetzt werden muss.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          Habe jetzt angefangen die language files zu includen.
          Jetzt bin ich draufgekommen das dann im Prinzip 1 einzige Seite aus rund 8 einzelnen PHP Dateien besteht.

          Wie stark wirkt sich das auf die Performance aus? Auch bei vielen Besuchern?

          Kommentar

          Lädt...
          X