Mailinglisten-Archive |
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