MudGuard: Idee zur Mehrsprachigkeit

Beitrag lesen

Hi,

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.
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.

Schlechte Idee, weil Wörter mehrere Übersetzungen haben können, je nach Zusammenhang.
z.B. kann die Übersetzung für "Kette" in die englische Sprache mal "chain" oder "necklace" oder "linkage" oder "string" oder ... sein.
Oder umgekehrt, "line" kann mal "Linie" und mal "Zeile" oder auch "Strecke" oder sein.

Wenn man vom konkreten Text unabhängige Schlüssel verwendet, kann man auch für mehrere Wortbedeutungen die passenden Übersetzungen angeben (indem man als Schlüssel z.B. 'kette_halskette' verwendet und dafür dann deutsch 'Kette' und englisch 'necklace' hinterlegt), wenn aber das Wort aus Sprache 1 der Schlüssel sein soll, hat man bei mehrdeutigen Wörtern ein Problem ...

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.