Vor kurzem bin ich in Thomas Weidners Blog auf einen Hinweis gestoßen, dass sich fehlende Übersetzungen problemlos loggen lassen. Dazu übergibt man dam Zend_Translate Objekt einfach einen Logger, in dem dann, im Falle einer fehlenden Übersetzung, eine Meldung “Untranslated message: xyz” geschrieben wird. Eine sehr praktische Möglichkeit, da bei größeren Projekten praktisch laufend neue Texte hinzugefügt und dann doch manchmal einzelne Übersetzungen vergessen werden.
In meiner zentralen Bootstrap Datei bereite ich in der Regel den Logger vor (oder hole mir den Logger aus dem Cache). Ebenfalls wird dort das Übersetzungsobjekt vorbereitet. Hier kann man also in einem Zug und ohne großen Aufwand den Logger für das Zend_Translate Objekt bekannt machen.
An dieser Stelle das Beispiel aus der Zend Framework Dokumentation:
$translate = new Zend_Translate('gettext', $path, 'de');
// Eine Log Instanz erstellen
$writer = new Zend_Log_Writer_Stream('/path/file.log');
$log = new Zend_Log($writer);
// Diese der Übersetzungs-Instanz hinzufügen
$translate->setOptions(array(
'log' => $log,
'logUntranslated' => true));
$translate->tranlate('unbekannter String');
18. April 2009 um 21:35 Uhr
Zu beachten ist dass dies nur ab Zend Framwork Version 1.8.0 beta funktioniert.
Habe das selbe mit der aktuell stabilen 1.7.8. versucht bis ich gemerkt hab dass dieses Feature noch gar nicht implementiert ist. Beim hinzufügen des Loggers wird leider keine Fehlermeldung ausgegeben daher schwer diesen Fehler zu finden.
1. Februar 2011 um 18:07 Uhr
[...] Der sauberste Weg ist es natürlich alle Schlüssel auf zu übersetzen. Beim Aufspüren von fehlenden Übersetzungen hilft Zend_Translate ebenfalls. [...]