[PHP] Multilinguale Webapplikation

Zweipunktnull

Commander
Registriert
Dez. 2004
Beiträge
2.546
Hallo!

Ich brauche mal die Hilfe von ein paar fortgeschrittenen PHP-Entwicklern.
Und zwar geht es darum, dass ich eine Webapplikation multilingual machen möchte.
Aber irgendwie komm ich mit meinen Ideen auf keinen richtig grünen Zweig.

Ich dachte an ein Array mit allen Texten.
PHP:
// Deutsche Datei:
$lang["invalid_username_password"] = "Der Benutzername und/oder das Passwort sind falsch."

// Englische Datei:
$lang["invalid_username_password"] = "The user name and/or the password are invalid."


Die Texte würden dann wiefolgt in die Templates eingebunden:
PHP:
// anhand z.b. der IP wird entweder die deutsche oder die englische sprachdatei eingebunden

$module_tpl->replace("ERROR_MESSAGE", $lang["invalid_username_password"]);
// ich verwende hier eine selbstgeschriebene template-engine


So, das war der einfache Fall, der ist ja noch gut zu realisieren.
Aber kniffliger wird es bei z.b. hierdem:

Im Moment steht z.b. an einer stelle in einem Template folgendes:
HTML:
Sie können auch direkt <a href="{URL_SHOW_FILES}">zu Ihren Dateien</a> zurückkehren.


Wie muss ich es an so stellen machen?
Natürlich konnte man nun drei Variablen machen und drei entsprechende platzhalter im template.
1. "Sie können auch direkt"
2. "zu Ihren Dateien"
3. "zurückkehren"

Aber mit so einer lösung entfernt man sich wohl meilenweit von übersichtlichkeit.
aber eine alles umspannende große variable für alles wäre auch nicht so das gelbe vom ei, dann dann käme darin ja auch zwangsweise HTML-Code drin vor, weil der ja nun mal mitten im satz steht. Mir wäre es allerdings lieb, wenn sich das vermeiden ließe. Bis jetzt kommt HTML-Code wirklich nur in Templates drin vor und das soll so eigentlich auch bleiben.

vielleicht kann mir der ein oder andere ja anregungen geben, wie man multilinguale webapplikationen erstellt. das ist ja nicht gerade ein thema, um das es in dem standard-tutorial oder buch geht.

MfG
Computer Freak
 
Zuletzt bearbeitet: (vBulletin hat gesponnen oO)
Naja eine "Lösung" wäre es dann den Text "Sie können direkt zu Ihren Dateien zürückkehren." als kompletten Text mit einer Art Markering für die URL zu speichern... so ungefär

"Sie können auch [LINK={URL_SHOWFILES}]zu Ihren Dateien[/LINK] zurückkehren."
"You may now go back to [LINK={URL_SHOWFILES}]your files[/LINK]."

Über einen regulären Ausdruck würde [LINK=...]...[/LINK] dann in einen <A HREF="...">...</A> umgewandelt und anschließend {URL_SHOW_FILES} vom Template-System geparsed...

so ungefär konnte das funktionieren, hab aber selbst wenig Erfahrung mit multilingualen Interfaces...
 
hm... stimmt, ich könnt die sprachdateien zuerst noch durch einen bbcode parser schicken...

Nur mit
You may now go back to [LINK={URL_SHOWFILES}]your files[/LINK]
wären dann natürlich schon wieder einige platzhalter und stukturen dadrinnen. für einen übersetzer, der kein bisschen programmieren kann, ist das ja schon mal nicht so dolle... und ob das performant ist weiß ich auch nicht..

Vielleicht meldet sich ja noch jemand, der damit schon erfahrungen gesammelt hat.
ich glaub nämlich, dass diese methode nicht ganz so die übliche ist - also bbcodes o.ä. in den sprachdateien einzusetzen...

EDIT: Ich bin auf eine PHP-Erweiterung names gettext gestoßen. Bin ich damit auf dem richtigen Weg?
 
Zuletzt bearbeitet:
Zurück
Oben