| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: 20799 -->
- <sect1 id="zend.translate.introduction">
- <title>Einführung</title>
- <para>
- <classname>Zend_Translate</classname> ist die Lösung des Frameworks für mehrsprachige
- Anwendungen.
- </para>
- <para>
- In mehrsprachigen Anwendungen muß der Inhalt abhängig von der Sprache des Benutzers
- in verschiedene Sprachen übersetzt und angezeigt werden.
- <acronym>PHP</acronym> bietet bereits mehrere Wege, um solche Probleme zu lösen, 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 Standardsprache:</emphasis>
- Die Standardsprache eines Benutzers kann nicht ohne tiefere Kenntnisse
- über die Hintergründe der Webbrowser erkannt 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> zu verwenden und nicht
- die <acronym>PHP</acronym>-eigenen Funktionen. Die Vorteile von
- <classname>Zend_Translate</classname> sind unter anderem:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Unterstützt mehrere Quellformate:</emphasis>
- <classname>Zend_Translate</classname> unterstützt verschiedene Quellformate,
- 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 Quellformate werden auf die gleiche Art und Weise
- gehandhabt, so dass zum Beispiel bei einem Wechsel des Quellformats
- von Gettext zu TMX nur eine einzelne Zeile im Code
- zu ändern ist, um den anderen Adapter zu spezifizieren.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Erkennung der Standardsprache 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 Betrieb. Was wir also prinzipiell
- machen, ist die Übersetzung unseres Strings, den wir ausgeben wollen,
- so dass die View die korrekt übersetzte Ausgabe produziert.
- Sonst müssten wir für jede Sprache eine eigene View schreiben und
- das würde niemand machen wollen. Normalerweise sind mehrsprachige Sites
- sehr einfach in ihrem Aufbau. Es sind hierbei nur vier 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 Quelldatei auf der Basis des Codes erzeugen;</para></listitem>
- <listitem><para>Die Quelldatei in die gewünschten Sprachen übersetzen.</para></listitem>
- </orderedlist>
- <para>
- Die folgenden Abschnitte leiten durch alle vier Schritte.
- Sie sollten sorgfältig studiert werden, um eigene mehrsprachige
- Web Anwendungen erstellen zu können.
- </para>
- </sect2>
- </sect1>
|