Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort des Fachgutachters
Vorwort
1 Einleitung
2 Einführung in eZ Components
3 Die Applikationsbasis
4 Fehlerbehandlung und Debugging
5 Konfiguration
6 Datenbankanbindung
7 ORM mit PersistentObject
8 Template
9 Übersetzung
10 Benutzereingaben validieren
11 Authentifizierung
12 Bildverarbeitung
13 Archive und Dateien
14 Mail
15 Logging
16 Diagramme
17 Feeds und Caching
18 Setup
A Inhalt der Buch-CD
Stichwort
Download: - ZIP, ca. 2,7 MB
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> /eZ Components | vor >>
eZ Components von Tobias Schlitt, Kore Nordmann Das Entwickler-Handbuch
eZ Components geb., mit CD 454 S., 39,90 Euro Galileo Computing ISBN 978-3-8362-1073-7 |
| 9 Übersetzung
|  | 9.1 Komponente ezcTranslation
|  | 9.2 Qt Linguist
|  |  | 9.2.1 Das Dateiformat
|  |  | 9.2.2 Das Programm
|  | 9.3 Einbindung in die Applikation
|  |  | 9.3.1 Template-Funktion
|  |  | 9.3.2 Einfügen nicht vorhandener Übersetzungen
|  |  | 9.3.3 Templates anpassen
|  |  | 9.3.4 Parametrisierte Übersetzungen
|  |  | 9.3.5 Übersetzen
|  |  | 9.3.6 Filter
|  | 9.4 Caching von Übersetzungen
|  | 9.5 Fazit
## 9.4 Caching von Übersetzungen Sie mögen die nicht ganz unberechtigte Befürchtung hegen, dass das Erfragen der Übersetzungen bei jedem Request an Ihre Applikation aus den XML-Übersetzungsdateien einen spürbaren Performance-Nachteil mit sich bringt. In Abschnitt 1.2.2, »Was sind eZ Components?«, wurde das Konzept der Tieins vorgestellt, mit denen sich Komponenten verknüpfen beziehungsweise ihre Funktionalitäten kombinieren lassen. Für die Beschleunigung der Translation-Komponente existiert das ezcTranslationCacheTiein, das ein Translation-Cache-Backend zur Verfügung stellt, mit dem sich die einmal abgefragten Übersetzungen cachen lassen. Das folgende Beispiel integriert das Cache-Backend in die Applikation:
    try
    {
        $cacheObj = new ezcCacheStorageFileArray(
            dirname( __FILE__ ) . '/../cache/translations'
        );
        $cacheBackend = new ezcTranslationCacheBackend( $cacheObj );

        $manager = new ezcTranslationManager( $cacheBackend );
        $translationContext = $manager->getContext(
            $locale, $context
        );

        $translated = $translationContext->getTranslation( $string, $replacements );
    }
    catch ( ezcTranslationException $e )
    {
        // Use TSBackend
        // ...
    }
Listing 9.13 Übersetzungen cachen Um dies zu erreichen, initialisieren wir das Cache-Backend, bevor auf das TSBackend zugegriffen wird. Wir verwenden es nur dann, falls die Übersetzung im Cache-Backend nicht zu finden ist. Dies war in obigem Beispiel an der Position des Kommentars // Use TSBackend der Fall. Die Verwendung des Cache-Backends gestaltet sich sehr ähnlich dem bereits bekannten TSBackend. Allerdings muss hier ein Pfad für den Cache angegeben werden, der durch den Webserver schreibbar sein sollte, anstelle des nur lesbaren Pfades zu den Übersetzungsdateien. In dem Fall, dass die Übersetzung nicht oder nur in den Dateien gefunden wurde, soll der Cache aktualisiert werden. Dazu fügen wir den folgenden Code nach dem Erhalt der Übersetzung hinzu.
    // Update translation cache
    $reader = $fileBackend;
    $reader->initReader( $locale );

    $writer = $cacheBackend;
    $writer->initWriter( $locale );

    foreach ( $reader as $contextName => $contextData )
    {
        $writer->storeContext( $contextName, $contextData );
    }
Listing 9.14 Übersetzungen in den Cache schreiben Um alle Übersetzungen aus einem Backend auszulesen, muss ein Translation-Reader auf diesem initialisiert werden. Da aus dem TSBackend gelesen werden soll, wird dieser auf dem $fileBackend initialisiert. Auf dem $cacheBackend wird der Translation-Writer initialisiert, da in den Cache die im TSBackend vorhandenen Übersetzungen gespeichert werden sollen. Anschließend kann über die Kontexte aus $reader mittels foreach() iteriert werden und in $writer gespeichert werden. Bei dem darauf folgenden Request werden die Übersetzungen nun erheblich schneller aus PHP-Arrays ausgelesen und der Applikation zur Verfügung gestellt. Wenn von einem Übersetzer Änderungen an den Übersetzungsdateien vorgenommen worden sind, müssen nun aber die Caches geleert werden, was entweder durch ein einfaches Entfernen aller Dateien in cache/translations möglich ist oder durch die Methoden, welche die Cache-Komponente dafür zur Verfügung stellt und somit eine bessere Kontrolle über die Cache-Einträge bietet. ### Ihr Kommentar Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück | <top> | vor >>
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchempfehlungen
| PHP 5.3 und MySQL 5.1
| Besser PHP programmieren
| Webshops mit Magento
| Sichere Webanwendungen
| PHP 5.3 und MySQL 5.1 - Videotraining
| Apache 2
| Suchmaschinen- Optimierung für Webentwickler
| Joomla! 1.5
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de