2010-06-08 13 views
5

Ich bin gerade in der Planungsphase eines ziemlich großen Projekts, das ich im Zend Framework entwickeln werde. Eines der Probleme, mit denen ich konfrontiert bin, ist, dass die Kunden nicht nur den Inhalt, sondern auch die Benutzeroberfläche übersetzen wollen. Ich benutze derzeit gettext und poedit, um meine Sprachdateien zu verwalten, aber das ist keine Option für den Kunden, da sie zum einen keinen FTP-Zugang zu der Website haben.Mysql Adapter für Zend_Translate

Daher denke ich an ein mysql-Backend mit einer Schnittstelle im Frontend, damit der Kunde seine eigenen Übersetzungen der Schnittstelle verwalten kann. Es gibt jedoch immer noch keinen mysql-Adapter für Zend_Translate.

Also, jetzt jemand von einem Adapter-Skript für Zend_Translate, so dass es mit einer MySQL-Tabelle arbeiten kann? Oder irgendwelche Argumente gegen die Verwendung von MySQL und mögliche andere Lösungen für dieses Problem?

Antwort

7

Sie können dieses Problem auf unterschiedliche Weise lösen:

Zend_Translate_Adapter Erweitern Sie Ihre eigenen zu erstellen. Alle neuen Adapter sind nur dafür verantwortlich, dass die Übersetzungen aus der Quelle stammen. Das heißt, Sie müssten nur die Übersetzungen aus der Datenbank holen. Sehen Sie sich andere Adapter an und sehen Sie, wie sie implementiert sind.

die Daten aus der Datenbank abrufen und weitergeben

Verwenden Zend_Translate_Adapter_Csv oder Ini Zend_Translate_Adapter_Array. Da das Schreiben der Übersetzungen mehr lesen würde, würde diese Lösung die Anzahl der Abfragen in der Datenbank reduzieren. Wenn der Client eine neue Sprache hinzufügt oder eine vorhandene Sprache ändert, schreiben Sie sie einfach in eine Datei, nicht in die Datenbank.

Wenn Sie sich für den Datenbankadapter entscheiden, könnten Sie die Übersetzungen irgendwie "markieren", so dass Sie auf der Homepage nur die Übersetzungen für die Homepage abrufen, auf der Kontaktseite nur die Übersetzungen für den Kontakt Seite ...

HTH!

3

Standard-Zend-Adapter handhaben Caching gut, also würde ich bei ihnen bleiben, es sei denn, Sie brauchen wirklich Datenbank.

Anstatt die Übersetzungsdaten in der Datenbank zu speichern, können Sie direkt mit den Übersetzungsdateien arbeiten (z. B. po-Vorlagen). Dies wäre die beste Wahl, wenn Sie nur neue Übersetzungszeichenfolgen hinzufügen (an Datei anhängen) müssen.

Sie können Zend_Translate's option to log untranslated messages (zu Datei oder einem beliebigen Protokolladapter, einschließlich Datenbank), verwenden und dann die Protokolle behandeln, oder sogar Listener erstellen, der die gespeicherten Zeichenfolgen übersetzt.

0
+0

Prost Mate! Inzwischen hatte ich selbst etwas Ähnliches geschrieben. – Peter

+0

Das ist ein schlechtes Beispiel, er bearbeitet: o die Framework-Dateien, doh. – markus

+0

Denken Sie an ein Framework, das keine native db-Übersetzungshilfe liefert. Ehre der Schande ist nicht das Recht von cloetensbrencht, stattdessen so genanntes Framesuck. – nerkn