Introduction to Zend Framework

 Learning Zend Framework

appendix

 Zend Framework Reference


  •  Zend_Gdata
  •  Zend_Http
  •  Zend_InfoCard
  •  Zend_Json
  •  Zend_Layout
  •  Zend_Ldap
  •  Zend_Loader
  •  Zend_Locale
  •  Zend_Log
  •  Zend_Mail
  •  Zend_Markup
  •  Zend_Measure
  •  Zend_Memory
  •  Zend_Mime
  •  Zend_Navigation
  •  Zend_Oauth
  •  Zend_OpenId
  •  Zend_Paginator
  •  Zend_Pdf
  •  Zend_ProgressBar
  •  Zend_Queue
  •  Zend_Reflection
  •  Zend_Registry
  •  Zend_Rest

  •  Zend_Search_Lucene
  •  Zend_Serializer
  •  Zend_Server
  •  Zend_Service
  •  Zend_Session
  •  Zend_Soap
  •  Zend_Tag
  •  Zend_Test
  •  Zend_Text
  •  Zend_TimeSync
  •  Zend_Tool
  •  Zend_Tool_Framework
  •  Zend_Tool_Project
  •  Zend_Translate
  •  Zend_Uri
  •  Zend_Validate
  •  Zend_Version
  •  Zend_View
  •  Zend_Wildfire
  •  Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 96.1% Update 2010-11-28 - Revision 23448 - Version ZF 1.11.x

    Chapter 73. Zend_Translate

    Table of Contents

    73.1. Einführung
    73.1.1. Beginnen wir mit der Mehrsprachigkeit
    73.2. Adapters for Zend_Translate
    73.2.1. How to decide which translation adapter to use
    73.2.1.1. Zend_Translate_Adapter_Array
    73.2.1.2. Zend_Translate_Adapter_Csv
    73.2.1.3. Zend_Translate_Adapter_Gettext
    73.2.1.4. Zend_Translate_Adapter_Ini
    73.2.1.5. Zend_Translate_Adapter_Tbx
    73.2.1.6. Zend_Translate_Adapter_Tmx
    73.2.1.7. Zend_Translate_Adapter_Qt
    73.2.1.8. Zend_Translate_Adapter_Xliff
    73.2.1.9. Zend_Translate_Adapter_XmlTm
    73.2.2. Integrate self written Adapters
    73.2.3. Speedup all Adapters
    73.3. Verwendung der Übersetzungsadapter
    73.3.1. Strukturen für Übersetzungdateien
    73.4. Erstellen von Quelldateien
    73.4.1. Erstellung von Array-Quelldateien
    73.4.2. Erstellung von Gettext Quellen
    73.4.3. Erstellung von TMX Quellen
    73.4.4. Erstellung von CSV-Quellen
    73.4.5. Erstellung von INI-Quelldateien
    73.5. Additional features for translation
    73.5.1. Options for adapters
    73.5.2. Handling languages
    73.5.2.1. Automatical handling of languages
    73.5.2.2. Using a country as language
    73.5.3. Automatic source detection
    73.5.3.1. Language through naming directories
    73.5.3.2. Language through filenames
    73.5.3.2.1. Complete filename
    73.5.3.2.2. Extension of the file
    73.5.3.2.3. Filename tokens
    73.5.3.3. Ignoring special files and directories
    73.5.3.3.1. Ignore a special directory or file
    73.5.3.3.2. Ignore several directories or files
    73.5.3.3.3. Ignore specific names
    73.5.4. Routing for translations
    73.5.5. Combining multiple translation sources
    73.5.6. Checking for translations
    73.5.7. How to log not found translations
    73.5.8. Accessing source data
    73.6. Schreibweisen von Pluralformen für Übersetzungen
    73.6.1. Traditionelle Übersetzung des Plurals
    73.6.2. Moderne Übersetzungen des Plurals
    73.6.3. Pluralquelldateien
    73.6.3.1. Array-Quellen mit Pluraldefinitionen
    73.6.3.2. CSV-Quellen mit Pluraldefinitionen
    73.6.3.3. Gettext-Quellen mit Pluraldefinitionen
    73.6.4. Eigene Pluralregeln

    73.1. Einführung

    Zend_Translate ist die Lösung des Frameworks für mehrsprachige Anwendungen.

    In mehrsprachigen Anwendungen muß der Inhalt abhängig von der Sprache des Benutzers in verschiedene Sprachen übersetzt und angezeigt werden. PHP bietet bereits mehrere Wege, um solche Probleme zu lösen, trotzdem zeigt die Verwendung von PHP einige Probleme:

    • Unzureichende API: Es gibt keine API, die für die verschiedenen Quellen identisch ist. Die Benutzung von Gettext zum Beispiel ist sehr kompliziert.

    • PHP unterstützt nur Gettext und Arrays: PHP 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.

    • Keine Erkennung der Standardsprache: Die Standardsprache eines Benutzers kann nicht ohne tiefere Kenntnisse über die Hintergründe der Webbrowser erkannt werden.

    • Gettext ist nicht threadsicher: PHPs Gettext-Bibliothek ist nicht threadsicher und sollte nicht in Multithreaded-Umgebungen verwendet werden. Das ist ein Problem der verwendeten Gettext-Bibliothek und nicht von PHP selbst. Aber es ist ein bekanntes und noch immer vorhandenes Problem.

    Zend_Translate hat keines der oben angesprochene Probleme. Deswegen wird empfohlen Zend_Translate zu verwenden und nicht die PHP-eigenen Funktionen. Die Vorteile von Zend_Translate sind unter anderem:

    • Unterstützt mehrere Quellformate: Zend_Translate unterstützt verschiedene Quellformate, natürlich auch die, welche von PHP unterstützt werden und andere Formate wie zum Beispiel TMX- und CSV-Quellen.

    • Threadsicheres Gettext: Der Gettext Reader von Zend_Translate ist threadsicher. Er kann ohne Probleme in Multithreaded-Umgebungen verwendet werden.

    • Einfache und einheitliche API: Die API von Zend_Translate 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.

    • Erkennung der Standardsprache des Benutzers: Die bevorzugte Sprache des Benutzers, der auf die Site zugreift, kann durch Zend_Translate erkannt und automatisch verwendet werden.

    • Automatische Erkennung der Quelle: Zend_Translate kann mehrere Quelldateien erkennen und integrieren und zusätzlich das zu verwendende Gebietsschema erkennen abhängig vom Verzeichnis oder Dateinamen.

    73.1.1. Beginnen wir mit der Mehrsprachigkeit

    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:

    1. Den Adapter auswählen, der benutzt werden soll;

    2. Die View erzeugen und Zend_Translate in den Code integrieren;

    3. Die Quelldatei auf der Basis des Codes erzeugen;

    4. Die Quelldatei in die gewünschten Sprachen übersetzen.

    Die folgenden Abschnitte leiten durch alle vier Schritte. Sie sollten sorgfältig studiert werden, um eigene mehrsprachige Web Anwendungen erstellen zu können.

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...