Struppi: Wie setze ich am besten Mehrsprachigkeit auf Seiten um?

Beitrag lesen

Also ich mach ds bisher so:

ID    |  en            | de
------------------------------
title |  my website    | Meine Homepage

Und beim initialisieren, wird die Spalte der Sprache in ein HASH eingelesen.

%TEXT = [ ID => de ]

und die Ausgabe ist dann immer:

print TEXT{title};

In wirklichkeit ist es etwas komplizierte, da die Strings Platzhalter für printf enthalten können, so dass ich immer eine Funktion aufrufe, die eventuelle Parameter mit sprintf umwandelt. z.b.:

ID    |  en            | de
------------------------------
title |  my website    | Meine Homepage
msg   |  Hallo %s      | Hello %s

sub Text
{
my $id = shift;
return sprintf $TEXT{$id}, @_;
}

(das ist jetzt Perl, aber ich denke das ist mit PHP auch möglich )

So läßt sich auch leicht der Datensatz ändern, da man immer alle Sprachen gleichzeitig abfragen kann mit der ID, außerdem läßt sich die ID auf unique setzten dann hat man keine doppelten Texte.

Struppi.