Lokalisierung von Modellen mit cakePHP

logo cakephp

cakePHP hat die schöne Funktionalität eine PHP Anwendung komplett zu lokalisieren. Dafür werden .po Dateien mit gettext benutzt. Möchte man aber Meldungen bei den Regeln der Modelle lokalisieren, steht man vor einem kleinen Problem.

Schreibt man die Meldungen gleich mit der Lokalisierung bekommt man leider nur einen Fehler, da cakePHP an dieser Stelle noch nicht versteht, dass es die Meldung aus der .po Datei holen muss.

PHP Code
1

Um solch eine Funktionalität zu erhalten müssen wir eine eigene AppModel Klasse erzeugen. Dazu legen wir einfach eine Datei app_model.php im app/ Pfad an und überschreiben die leere von cakePHP mitgelieferte Klasse.

PHP Code
1

cakePHP nutzt nun automatisch unsere eigene Klasse statt der im Framework mitgelieferten. Nun können wir unsere Modelle für die Lokalisierung bereit machen, in dem wir einfach die Methode zum erzeugen der Fehlermeldungen ändern.

PHP Code
1

Dmait wird automatisch bei jeder Fehlermeldung die Übersetzung statt der Originalen Zeichenkette genutzt. Ist irgendetwas nicht übersetzt, ist dies auch nicht schlimm, dann gibt die Übersetzung die Originale Zeichenkette zurück. 

Das Model sieht dann mit veränderter invalidate() Funktion wie folgt aus:

PHP Code
1

Dann bleibt nur noch viel Erfolg beim Lokalisieren zu wünschen 😉

Schreibe einen Kommentar

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