Internationalisierung mit CakePHP’s i18n Features

Zu meiner Ankündigung, wie die i18n Features von CakePHP richtig eingebunden werden können, gibt es bei gouranga | CakePHP I18n & l10n ein gut geschriebenes und relativ umfassendes Tutorial.

Dort werden die von Cake bereitgestellten Funktionen (den Artikel Localizing your Application gibt es übrigens hier) beschrieben, wie die verschiedenen Strings der .po Dateien aus Cake heraus aufgerufen werden können.

Was in manchen unserer Projekte auch oftmals wichtig war, ist und sein wird:
Wie können dynamische Inhalte, also solche aus der Datenbank, internationalisiert werden? Statische Strings sind mit der .po-File Variante kein Problem – aber wie sieht es mit dynamischem Content aus?

Ein nützliches Tutorial für diesen Ansatz findet sich z.b. hier und der dazugehörige Teil 2 hier. Wie die Stolpersteine hier aussehen und wie CakePHP ein Speichern / Updaten von i18n Einträgen behandelt kann ich später erläutern, grundsätzlich gibt es bei dieser Herangehensweise eine weitere Tabelle im Datenbankmodell, die folgendermaßen aussieht:

CakePHP i18n Tabelle

In dieser Datenbanktabelle werden sämtliche Übersetzungen der verschiedenen Models gespeichert (die Tabelle kann also ziemlich fix ziemlich “umfangreich” werden).

Für alle, die auf dem Mac den hervorragenden und günstigen SQLEditor nutzen, gibt es hier die oben gezeigte SQS Datei, ansonsten kann die Tabelle auch im Terminal angelegt werden, indem man im Verzeichnis /console von Cake folgenden Befehl eingibt:

./cake i18n

[ einige weitere andere Infos dazu auch unter dem top-to-bottom-persistent-internationalization-Tutorial auf CakePHP.org zu finden ]

Leider können HABTM Relationships erst ab Version 1.3 mit dem Translation Behavior von Cake bedient werden, heisst also: Hier muss manuell Hand angelegt werden, sobald HABTM Relationships ins Spiel kommen.

Kleiner Seitenhinweis:
Über die Konsole kann bei Cake auch ein komplettes, sog. “Baking” stattfinden, das anhand der Datenbankkonfiguration das komplette Projekt einmal initial erstellt, mit sämtlichen Models, Controllern und Views und sämtlichen CRUD Funktionen.

Sehr gute, verschiedene Screencasts zu CakePHP (Installation, Baking,
Scaffolding, …) finden sich im Übrigen sich auf der Webseite von David Golding, seines Zeichens Verfasser des Buches “Beginning CakePHP” (das, in meinen Augen, bei weiterm nicht mit dem CakePHP Buch von O’Reilly mithalten kann).

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>