|
Inhaltsverzeichnis
SprachverwaltungSprachverwaltung, Textverwaltung, zwei Wörter für die selbe Sache: Es geht hier darum, dass es möglich sein soll, DSAo-Md später in verschiedene Sprachen übersetzen zu können. Weiterhin ist es ein Vorteil, alle Texte an einem Ort zu haben, um einen besseren Überblick zu behalten und sie aus dem Quelltext selbst heraus zu halten. Dazu gibt es die Sprachverwaltung. Sie wird von der Klasse Zend_Translate dargestellt und in der Klasse Dsao_Application_Resource_Translator initialisiert. Speziell für DSAo-Md wurde die Klasse Dsao_Translate_Adapter_Array geschrieben, die ein Lazy-Load, also ein Nachladen der Sprachdateien erlaubt und das System damit flexibler macht. Zusammenfassung
/devel/data/lang/*Die Verzeichnisstruktur der Sprachdateien sieht folgendermaßen aus:
Die Namenskonventionen von Message-IDs werden im Programmierstandards abgedeckt. Dsao_Application_Resource_TranslatorHier wird die Sprachverwaltung initialisiert. Es werden dabei Sprachdateien für das Standardlayout geladen. Verschiedene Dinge sind hier noch auskommentiert und sollten in Zukunft ersetzt / wieder aktiviert werden. Dsao_Translate_Adapter_ArrayUnser eigener Adapter. Es wird versucht, nicht gefundene Message-IDs zu laden. Außerdem ist eine Liste der zur Verfügung stehenden Sprachen abrufbar. Texte übersetzenDie Verwendung von Texten in JavaScript wird im Javascript abgedeckt. Im Controller und ModellIm Controller und Modell kann ein Text einfach folgendermaßen übersetzt, also die Message-ID in den eigentlichen Text umgewandelt werden: $this->getTranslate()->_('message_id'); In Templates$this->translate('message_id'); Überall sonstWenn gerade das Translate-Objekt nicht direkt erreichbar ist, so kann jederzeit über die Registry darauf zugegriffen werden: Dsao_Registry::get('Zend_Translate')->_('message_id'); Bei häufiger Benutzung sollte jedoch eine Variable mit der Referenz des Objekts ausgestattet werden, da der Aufruf der Registry dafür zu zeitintensiv ist. |