Zurück zum Blog

Verwendung von Zend_Locale und Zend_Translate

Aktuell arbeiten wir an einer Intranet-Lösung die mittels Zend-Framework umgesetzt wird. Aus gegebenen Anlass möchte ich in diesem Beitrag kurz die Verwendung von Zend_Locale und Zend_Translate vorstellen.

Warum Zend_Translate?

Aufgrund der noch strikteren Trennung von Programmcode und Inhalt, möchten wir in Zukunft nur noch Zend-Framework Applikationen mit Zend_Translate entwickeln. Auch wenn zu Beginn nur eine Sprache zum Einsatz kommt. Sehr häufig kommt es vor, das Projekte im Laufe der Zeit auf weitere Sprachen ausgedehnt werden. Weiters ist es so einfacher möglich, die Inhalte bzw. Übersetzungen über Eingabemasken einzupflegen.

Damit Zend_Translate applikationsweit verwendet werden kann, muss es zuerst in der Anwendung registriert werden. Das kann entweder über ein Controller-Plugin oder wie im folgenden Beispiel in der Bootstrap-Datei erfolgen:

protected function _initLang() {
    	
  Zend_Registry::set('Zend_Locale', new Zend_Locale());
  Zend_Registry::get('Zend_Locale')->setLocale('en_EN');
		
  $$file = APPLICATION_PATH . '/translations/';
  $file.= Zend_Registry::get('Zend_Locale')->getLanguage() . '.php';
    	
  $translate = new Zend_Translate('array', $defaultFile);
  Zend_Registry::set('Zend_Translate', $translate);
    	    	
}
Zend_Locale und Zend_Translate registrieren

Zu Beginn wird in der Registry eine Instanz mit dem Bezeichner "Zend_Locale" festgelegt. Damit die Sprache etc. vom Benutzer automatisch erkannt. Da in unserem aktuellen Projekt jedoch vorerst nur Englisch zum Einsatz kommt, wird eine Standard-Locale definiert (en_EN). Danach wird der Applikation mitgeteilt, wo die Übersetzungsdateien zu finden sind um diese in weiterer Folge ebenfalls der Registry mit dem Bezeichner "Zend_Translate" zur Verfügung stellen zu können.

Wie die Übersetzungen ausgegeben werden und weitere Details zu Zend_Translate wird in der Dokumentation des Zend-Frameworks ausführlich erläutert.

Diesen Artikel teilen

Schreiben Sie den ersten Kommentar zu diesem Artikel

Ihr Kommentar

Bitte geben Sie Ihren Namen an
Bitte geben Sie eine E-Mail Adresse an
Bitte geben Sie eine Nachricht ein
Das Ergebnis ist nicht korrekt