Alex: Idee zur Mehrsprachigkeit

Beitrag lesen

Hallo Leute,

ich will schon eine Zeit lang mal endlich "Mehrsprachigkeit" in mein Projekt einbauen. Mir ist da gerade eine Idee gekommen, wie das am einfachsten umzusetzen wäre. Das wollte ich einfach mal allen mitteilen und hoffe, dass der ein oder andre auch Lob, Kritik, Anregungen beisteuern mag :)

Es geht vor allem um winzige bis mittlere Textpassagen. Also von einzelnen Wörtern (z.B. Labels in einem Formular) bis zu ein paar Sätzen (Fehlermeldungen, Hinweis-/Hilfetexte etc.)

Da wird ja glaube ich meistens eine Lösung vorgeschlagen, dass man irgendwo in einem Array oder sonstwo die Texte speichert und sie z.B. über $lang['error_username'] ausgibt. Im Array wäre dann z.B. "Fehler: Sie haben einen falschen Usernamen eingegeben!" gespeichert.

Das ist mir irgendwie zu umständlich, weil ich dann immer die Array-Keys ('error_username') im Kopf haben muss bzw. immer hin und her gucken muss, was was bedeutet.

Jetzt meine Idee:

Es gibt eine Funktion lang($text)

Wenn ich z.B. eine Fehlermeldung habe, gebe ich sie so aus:
echo lang("Fehler: Sie haben einen falschen Usernamen eingegeben!");

Die Funktion guckt dann erstmal, welche Sprache die richtige ist. (Dazu habe ich mal für ein Uni-Projekt eine hübsche - und ich hoffe, gute - Language Negotiation gemacht. Aber das ist ein anderes Thema).

Wenn DE die Zielsprache ist, gibt die Funktion einfach $text zurück, so wies reinkam.

Wenn EN oder sowas die Zielsprache ist, sucht die Funktion da wo die Texte herkommen (hab mich noch nicht entschieden - Textfile, Array, DB etc.   s. auch unten) nach einem Treffer. Wenn die richtige Textpassage gefunden wurde, wird diese zurückgegeben.

Wird nichts gefunden, gibt er hilfsweise die Deutsche zurück. Gleichzeitig wird an den Admin eine Fehlermeldung geschickt, dass die entsprechende Passage nicht gefunden wurde.

Was haltet ihr davon?

Zur Text-Quelle:

Am übersichtlichsten wäre es sicher, die Wörter/Texte in einer DB zu speichern und für jeder Sprache eine Spalte zu haben. Wenn jetzt aber für jeden Begriff der auftaucht die DB angeworfen werden muss, ist das sicher lästig für die.

Ich hab mir überlegt, das ganze in der DB zu organisieren. Anschließend wird dann aus dem DB-Inhalt (bei jeder Änderung) eine statische PHP-Include-Datei generiert, wo die Daten in einen Array kommen (oder in ein Textfile).

Was haltet ihr davon?

Bin schon auf die Antworten gespannt. Da ich heute in den Urlaub fahre, werde ich mich nicht mehr lange zurückmelden können - aber ich werde es ganz bestimmt danach weiterlesen.

Gruß
Alex