phpbar.de logo

Mailinglisten-Archive

[php] Internationalisierung...

[php] Internationalisierung...

Gereon Kremer gereon.kremer at gmail.com
Fre Jun 13 14:18:53 CEST 2008


Hi,

Ich knobel grade daran, welche Methode zur Internationalisierung (oder 
zu gut Deutsch: der Übersetzung) eines größeren Projektes wohl am 
geeignetsten ist.
Zuerst die Vorraussetzungen:
Es handelt sich um eine Art Onlineshop, d.h. sowohl "statische" 
Übersetzungen als auch "dynamische". (statisch = Infotexte usw, 
dynamisch = Artikelnamen usw)
Somit brauche ich ein System, welches es erlaubt Übersetzungen in ein 
laufendes System ohne großes technisches KnowHow einzufügen oder zu 
ändern. Im Prinzip ist ein Webinterface zur Übersetzung fast zwingend nötig.
Ausserdem kann es (oder wird es) vorkommen, dass der Datenbankserver auf 
einem anderen Rechner läuft als der Webserver.
Es wird verschiedene Templates geben (zB eine non-js-version), also 
keine Übersetzung durch templates. (Als Templateengine wird vermutlich 
Smarty benutzt...)
Zusätzlich wird das Zend-Framework benutzt.

Somit scheiden meines Erachtens alle vorhandenen Möglichkeiten mehr oder 
minder aus.
- Templates: gibt ohnehin mehrere, also bräuchte ich ein de-normal, 
de-non-js, en-normal, en-non-js, usw... nicht wirklich praktikabel. 
Ausserdem will ich die Übersetzer nicht an die Templates lassen.
- Datenbank: Eine einfache Lösung, die Texte immer aus der DB zu holen 
scheidet aus, da der SQL-Server nicht auf dem selben Rechner sitzt.
- Gettext: imho nicht wirklich für die dynamischen Änderungen geeignet. 
Vielleicht könnte man aber hier was basteln?

Also letztendlich sehe ich nur drei Möglichkeiten:
- "Cache-Server"
Auf dem Webserver laufender Dienst, der gecachte Übersetzungen 
bereitstellt und diese gegebenfalls vom DB-Server lädt. Wäre allerdings 
durch den zusätzlichen Dienst (ich bezweifel dass php dafür wirklich 
praktikabel ist :-( ) ziemlich eklig.
- Änderung an der Template Engine...
... insofern, als dass die Texte erst beim Rendern in einem Block 
geladen werden. Somit wäre es nur eine Transaktion und man könnte wieder 
die normale DB-Lösung nehmen.
- Webinterface für Gettext
wäre zZ eigentlich mein Favorit. Das Webinterface müsste halt auf dem 
Source die pot-Datei erstellen (über gettext-tools), mit diesen die 
po-Dateien aktualisieren (auch via gettext), dann allerdings selber 
diese po-Dateien lesen und bearbeiten können und schließlich wieder per 
gettext zu mo's machen. Gibt es da vielleicht bereits fertige Lösungen?

Was davon sieht für euch am realistischsten aus?
Oder gibt es vielleicht noch ganz andere tolle Systeme?

Viele Grüße,
Gereon Kremer

php::bar PHP Wiki   -   Listenarchive