Internationalisierung mit dem Zend Framework
07. Januar 2009Normalerweise verwende ich zu Implementierung der Mehrsprachigkeit auf Webseiten die gettext Funktionalität. Die Internationalisierung mit dem Zend Framework unterstützt neben gettext auch noch andere Formate.
TMX Format
Insbesondere die Möglichkeit, die Sprachdateien in TMX Format zu verwenden, finde ich sehr praktisch. Dadurch entfällt das Editieren und Kompilieren der Sprachdateien in einem PO Editor.
Die TMX Datei kann mit jeden XML Editor bearbeitet werden uns sieht ungefähr so aus:
<?xml version=”1.0″ encoding=”UTF-8″?>
<tmx version=”2.0″ xmlns=”http://www.lisa.org/tmx20″>
<header adminlang=”en” creationtool=”locale4j” creationtoolversion=”1.1″ o-tmf=”unknown” segtype=”block” />
<body>
<tu tuid=”intro1″>
<tuv xml:lang=”en”>
<seg>Englisch</seg>
</tuv>
<tuv xml:lang=”de”>
<seg>Deutsch</seg>
</tuv>
</tu>
Zend_Locale und Zend_Translation
In der Kombination mit der Zend_Locale und Zend_Translation hat man mit diesen kurzen Code Zeilen ein Objekt zum Übersetzten der Texte. Die Zend_Lokale sorgt automatisch dafür, dass die vom Benutzer bevorzugte Sprache verwendet wird.
$locale = new Zend_Locale();
$defaultlanguage = 'de';
$translate = new Zend_Translate('tmx',
'../languages/messages.tmx',
$locale,
array('disableNotices'=>true)
);
if (!$translate->isAvailable($locale->getLanguage())) {
$translate->setLocale($defaultlanguage);
}
Wenn man das Translate Objekt dem View hinzufügt, kann man in den Templates einfach darauf zugreifen:
<p><?=$this->translate->_('intro1');?></p>
Zend_Locale_Format
Mit der Klasse Zend_Locale_Format kann man Zahlen und Datum passend zu der Lokale anzeigen.
echo Zend_Locale_Format::toFloat(13547.3655,array('precision' => 2,));
So kann man auf für kleine Seiten sehr schnell eine mehrsprachige Webseite zur Verfügung stellen.
Tags: PHP, zend-framework
Der Beitrag wurde am Mittwoch, den 07. Januar 2009 um 19:00 Uhr veröffentlicht und wurde unter Internet, PHP abgelegt. du kannst die Kommentare zu diesen Eintrag durch den RSS 2.0 Feed verfolgen. du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.