kostenloser Webspace werbefrei: lima-city


Mehrsprachiges Script

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    eisfeld

    eisfeld hat kostenlosen Webspace.

    Hallo,
    ich plane zur Zeit ein Projekt, welches ich gerne mehrsprachig halten möchte.
    Nachdem ich nun schon aufs ausgiebigste nach Lösungsansätzen gegoogelt habe wende ich mich nun hoffnungsvoll an euch.

    Der eine Lösungsansatz wäre das ganze mit Konstanten zu realisieren.
    Sprich eine externe Datei in der die Strings mit Define definiert werden um dann, dynamisch die richtige Datei ein zu binden.

    Ein anderer, den ich mir vorstellen könnte, wäre es die ganzen Begriffe und Sätze in eine Tabelle in der Datenbank zu hinterlegen und dann via Query, die der Sprache entsprechenden Strings in ein Array zu lesen...

    Nur stellt sich mir die Frage wie es denn mit der Performance aussieht?
    Gibt es bessere Lösungen ?
    Bis zu welcher Text Menge kann man den ersten Lösungsansatz einsetzen ohne dass der Rechenaufwand zu groß wird?
    Würde mich über Anregungen freuen
    Eisfeld
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Das klassische Prinzip wäre, dass du eine Sprachdatei nach dem Format "lang/".$lang.".php" includest. natürlich musst du vorher die angegebene Sprache gegen die verfügbaren Sprachen testen und falls sie nicht verfügbar ist, $lang auf 'en' setzen. In der Languagedatei definierst du dann, wie du gesagt hast, ein Array mit den verschiedenen Strings. Der Ansatz mit der Datenbank ist aber nicht weniger gut.
  4. Ich würde mich auf jedenfall gegen eine Datenbank Lösung entscheiden da wär mir der wartungsaufwand zu groß gegenüber
    einer einfachen Datei. Eine Datei kann man auch immer noch anderen geben zum übersetzen und sie dann einfach reinstellen.
    Auf jedenfall würde ich eine gobale function machen die ich mit dem zu übersetzenden String aufrufe und die die Übersetzung zurückgibt wurde der String dann nicht gefunden kann man sich das gleich anzeigen lassen
  5. Das Stichwort lautet poedit! :-)
    Hört sich lustig an, ist aber echt praktisch.
    Mit poedit lassen sich Sprachdateien erzeugen, wie sie von vielen Anwendungen benutzt werden.
    Diese Sprachedateien nutzt man in Kombination mit "gettext". Einfach mal den Artikel bei php.net durchlesen, der erklärts sicherlich besser.
    Letztendlich steht in deinem HTML Code dann etwas in der Form:
    <html>...<? funktionsaufruf ('MY_GREETING'); ?>...</html>


    MY_GREETING wird dann je nach gewählter Sprache durch "Hello", "Hallo" etc. ersetzt.

    http://www.poedit.net
    http://de.php.net/manual/de/book.gettext.php
  6. Da sehe ich aber den Nachteil, dass man bei all den vielen kurzen Strings etwas verwirrt wird.
    Wenn man das ganze so anpasst, dass man etwas in der Art hat:
    ...<?php echo translate('Seid gegrüsst %s', 'Lucas9991'); ?>...

    Da muss man erstens für eine Sprache keine Datei erstellen und man weiss im Code, was wirklich damit gemeint ist.
    Zusätzlich kann man dann auch noch Variablen einbinden.

    Ich empfehle dafür übrigens entweder eine CSV-Datei, XML-Datei oder PHP-Datei(mit Arrays)

    Beitrag zuletzt geändert: 19.2.2010 16:37:44 von rangmar
  7. Eine weitere Möglichkeit, welche z.Zt. gerade in Joomla! 1.6 probiert wird (...): Das ganze in ini Dateien (key=value) und mit dem php eigenen ini parser geparst.
    In Joomla 1.5 wurde (ähm wird) dafür noch die Klasse JText verwendet.

    Generellbevorzuge ich als Programmierer und Übersetzer allerdings definitiv gettext und die wunderbaren po Dateien. Einziger Nachteil ist atürlich, dass sie erst noch kompiliert werden müssen..
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!