| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 17175 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.translate.introduction">
- <title>Einführung</title>
- <para>
- <classname>Zend_Translate</classname> ist die Lösung des Framework's für mehrsprachige
- Applikationen.
- </para>
- <para>
- In mehrsprachigen Applikationen muß der Inhalt in verschiedene Sprachen übersetzt,
- und der Inhalt angezeigt werden, abhängig von der Sprache des Benutzers.
- <acronym>PHP</acronym> bietet bereits mehrere Wege um solche Probleme zu behandeln, trotzdem
- zeigt die Verwendung von <acronym>PHP</acronym> einige Probleme:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Unzureichende <acronym>API</acronym>:</emphasis>
- Es gibt keine <acronym>API</acronym> die für die verschiedenen Quellen identisch
- ist. Die Benutzung von Gettext zum Beispiel ist sehr kompliziert.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>PHP unterstützt nur Gettext und Arrays:</emphasis>
- <acronym>PHP</acronym> selbst bietet nur Unterstützung von Arrays oder Gettext.
- Alle anderen Quellen müssten händisch programmiert werden, weil es keinen
- eingebauten Support hierfür gibt.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Keine Erkennung der Standard Sprache:</emphasis>
- Die Standard Sprache eines Benutzers kann nicht ohne tiefere Kenntnisse
- über die Hintergründe der Web Browser erkannt und benutzt werden.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Gettext ist nicht Threadsicher:</emphasis>
- <acronym>PHP</acronym>'s Gettext Bibliothek ist nicht Threadsicher und sollte nicht
- in Multithreaded Umgebungen verwendet werden. Das ist ein Problem der
- verwendeten Gettext Bibliothek und nicht von <acronym>PHP</acronym> selbst. Aber es
- ist ein bekanntes und noch immer vorhandenes Problem.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- <classname>Zend_Translate</classname> hat keines der oben angesprochene Probleme. Deswegen
- wird empfohlen <classname>Zend_Translate</classname> statt der <acronym>PHP</acronym>
- eigenen Funktionen zu verwenden. Die Vorteile von <classname>Zend_Translate</classname> sind
- unter anderem:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Unterstützt mehrere Quell Formate:</emphasis>
- <classname>Zend_Translate</classname> unterstützt verschiedene Quell Formate,
- natürlich auch die welche von <acronym>PHP</acronym> unterstützt werden und andere
- Formate wie zum Beispiel TMX und CSV Quellen.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Threadsicheres Gettext:</emphasis>
- Der Gettext Reader von <classname>Zend_Translate</classname> ist Threadsicher. Er
- kann ohne Probleme in Multithreaded Umgebungen verwendet werden.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Einfache und einheitliche <acronym>API</acronym>:</emphasis>
- Die <acronym>API</acronym> von <classname>Zend_Translate</classname> ist sehr
- einfach und benötigt nur eine handvoll von Funktionen. So ist sie einfach zu lernen
- und einfach zu warten. Alle Quell Formate werden auf die gleiche Art und Weise
- gehandhabt, sodas wenn zum Beispiel der Wechsel des Quell Formats
- von Gettext zu TMX notwendig wird, nur eine einzelne Zeile im Code
- zu Ändern ist um den anderen Adapter zu spezifizieren.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Erkennung der Standard Sprache des Benutzers:</emphasis>
- Die bevorzugte Sprache des Benutzers der auf die Site zugreift kann durch
- <classname>Zend_Translate</classname> erkannt und automatisch verwendet werden.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Automatische Erkennung der Quelle:</emphasis>
- <classname>Zend_Translate</classname> kann mehrere Quelldateien erkennen und
- integrieren und zusätzlich das zu verwendende Gebietsschema erkennen abhängig vom
- Verzeichnis oder Dateinamen.
- </para>
- </listitem>
- </itemizedlist>
- <sect2 id="zend.translate.introduction.adapters">
- <title>Beginnen wir mit der Mehrsprachigkeit</title>
- <para>
- Beginnen wir mit dem Mehrsprachigen Business. Was wir also prinzipiell
- machen ist die Übersetzung unseres Strings, den wir ausgeben wollen,
- sodas die View die korrekte Übersetzte Ausgabe produziert.
- Sonst müssten wir für jede Sprache eine eigene View schreiben, und
- das würde keiner machen wollen. Normalerweise sind mehrsprachige Sites
- sehr einfach in Ihrem Aufbau. Es sind hierbei nur 4 Schritte zu befolgen:
- </para>
- <orderedlist numeration='arabic'>
- <listitem>
- <para>
- Den Adapter auswählen der Benutzt werden soll;
- </para>
- </listitem>
- <listitem>
- <para>
- Die View erzeugen und <classname>Zend_Translate</classname> in den Code
- integrieren;
- </para>
- </listitem>
- <listitem>
- <para>
- Die Quell Datei vom Code erzeugen;
- </para>
- </listitem>
- <listitem>
- <para>
- Die Quell Datei in die gewünschten Sprachen übersetzen.
- </para>
- </listitem>
- </orderedlist>
- <para>
- Die folgenden Abschnitte leiten durch alle vier Abschnitte.
- Sie sollten sorgfältig studiert werden um eigene Mehrsprachige
- Web Applikationen erstellen zu können.
- </para>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|