apache solr oder sphinx?forum.joomfish.net/documents/pm_3.09_kempkens_joomfish.pdf · 12/2/2009...

8
Österreich 10,80 | Schweiz 19,20 SFr Niederlande 11,25 | Luxemburg 11,25 Deutschland 9,80 Ausgabe 3.09 April | Mai Namespaces • Zend Framework 1.5 • Subversion • Doctrine in Symfony • Zend_Cache • SQL Injections • XML-DB • Scrum • AJAX & Wikis • Joomla! 1.5 • CSS • JavaScript Die wichtigsten Tools zum Debuggen IE und Firefox Test-driven Development mit dem Zend Framework Ready for Change? Test-driven Datenbankmigration mit LiquiBase Die Verarbeitung von XML in PHP 5 DOMinant! OXID eShop 4 Community Edition Das flexible Open-Source- Shopsystem für B2C, B2B und Social-Commerce-Projekte NetBeans 6.5, Eclipse PDT 2.0.0 und Aptana Studio 1.2.1 Alle IDEs und Editoren auf CD Außerdem die wichtigsten CM-Systeme, Blogs und Frameworks u.v.m. www.phpmagazin.de Apache Solr oder Sphinx? NetBeans, Eclipse und Zend Studio Der große IDE-Vergleich Volltextsuche unter PHP Außerdem mit auf der CD Magento 1.2.1, Typo3 4.2.6, Joomla! 1.5.9, WordPress 2.7.1, Serendipity 1.4.1, CakePHP 1.2, Zend Framework 1.7.5 und vieles mehr! Tragfähig und skalierbar So profitieren Sie von einer guten Anwendungsarchitektur Inkl. CD!

Upload: others

Post on 17-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apache Solr oder Sphinx?forum.joomfish.net/documents/PM_3.09_kempkens_joomfish.pdf · 12/2/2009  · Test-driven Development mit dem Zend Framework Test-driven Ready for Change? Datenbankmigration

Österreich 10,80€ | Schweiz 19,20 SFrNiederlande 11,25 € | Luxemburg 11,25€ Deutschland 9,80€

Ausgabe 3.09 April | Mai

Nam

espaces • Zend Framew

ork 1.5 • Subversion • Doctrine in Sym

fony • Zend_Cache • SQL Injections • XM

L-DB • Scrum

• AJA

X & W

ikis • Joomla! 1.5 • CSS • JavaScript

Die wichtigsten Tools zum Debuggen

IE und FirefoxTest-driven Developmentmit dem Zend Framework

Ready for Change?Test-drivenDatenbankmigration mit LiquiBase

Die Verarbeitung von XML in PHP 5

DOMinant!

OXID eShop 4 Community EditionDas flexible Open-Source-

Shopsystem für B2C, B2B und Social-Commerce-Projekte

NetBeans 6.5, Eclipse PDT 2.0.0 und Aptana Studio 1.2.1

Alle IDEs und Editoren auf CD

Außerdem die wichtigsten CM-Systeme, Blogs und Frameworks u.v.m.

www.phpmagazin.de

Apache Solroder Sphinx?

NetBeans, Eclipse und Zend StudioDer große IDE-Vergleich

Volltextsuche unter PHP

Außerdem mit auf der CDMagento 1.2.1, Typo3 4.2.6, Joomla! 1.5.9, WordPress 2.7.1, Serendipity 1.4.1, CakePHP 1.2, Zend Framework 1.7.5 und vieles mehr!

Tragfähig und skalierbar So profitieren Sie von einer guten Anwendungsarchitektur

STRATO PowerPlus-Pakete

(je nach Paket mit bis zu)

12 Domains

6.000 MB Webspace

20 MySQL 5.0 Datenbanken

Traffi c unlimited

Backup Manager, Web-FTP

Unterstützung gängiger

Content-Management-Systeme

(TYPO3, Joomla! und Drupal)

EasyVideo, Fotoalbum, Blog

Marken-Software inklusive

Profi tieren Sie jetzt bei den STRATO Webhosting-Paketen

von jeder Menge Inklusiv-Leistungen für Fortgeschrittene

und Profi s. Sichern Sie sich sensationell günstige Aktions-

preise und Marken-Software inklusive: Nur für kurze

Zeit erhalten Sie das hochwertige PowerPlus-XL-Paket

6 Monate für sensationelle 2,99 €/Monat!*

www.strato.deJetzt informieren und bestellen unter

Noch Fragen? Anruf genügt:

(14 Cent/Min. dt. Festnetz, abweichender Mobilfunktarif) 0 18 05 - 05 50 55

„Maximale Leistung

für meine Website!“

INKLUSIVE!

Ausgabe 01/2009

Bis 31.03.2009: Jetzt bis zu 130,- € sparen!

Preis-Aktion bis 31.03.2009!

STRATO PowerPlus XL mit 12 Domains

mtl.

6 Monate für

danach nur €24,90

*

,2 99€

* Einmalige Einrichtungsgebühr 14,90 €. Mindestvertragslaufzeit 12 Monate. Bei Software-Bestellung 6,90 € Versandkosten. Preise pro Monat inkl. MwSt.

STR0409_Anz_Host A4 1 12.02.2009 11:04:53 Uhr

PH

P M

AG

AZIN

3.0

9

Apache Solr • Sphinx • N

etBeans, Eclipse und Zend Studio • TD

D m

it Zend • Agavi • XM

L in PHP 5 • A

rchitektur für Entwickler • O

XID eShop • LiquiB

ase • JoomFish! • D

ebugging im B

rowser

Ausgabe

PH

P M

AG

AZIN

3.0

9

Inkl.

CD!

Page 2: Apache Solr oder Sphinx?forum.joomfish.net/documents/PM_3.09_kempkens_joomfish.pdf · 12/2/2009  · Test-driven Development mit dem Zend Framework Test-driven Ready for Change? Datenbankmigration

91PHP Magazin 3.2009www.phpmagazin.de

WebJoomla! und Joom!Fish

ine Webseite mit mehreren Spra-chen aufzubauen, ist mit einem Onlineshop oder einer Com-

munity-Website vergleichbar. Zunächst sind die Installation und die erste Ein-richtung einfach, dann, wenn das Portal größer wird, steigen auch die Erwartun-gen, und spätestens wenn das Finanzamt nach einer Umsatzsteueranmeldung für das Ausland respektive EU-Länder fragt, wird es kompliziert. Wenn Sie bereits wis-sen, wovon ich spreche, dann können Sie jetzt gerne zur Überschrift „Vorbereitun-

gen und Installation“ springen, wo die Details kompakt beschrieben werden.

Mehrsprachige Webseiten und was dahinter stecktFür alle anderen möchte ich mit einer kurzen Einführung beginnen und er-läutern, worauf wir uns jetzt einlassen wollen. Ich vergleiche eine mehrspra-chige Webseite immer mit der Einfüh-rung einer neuen Dimension in die In-ternetpräsentation. Sobald die Sprache als ein Element in die Planung bzw.

Konzeption von Webseiten aufgenom-men wird, stellen sich sehr bald Fragen, z. B.: Wie können wir Nachrichten aus Sprache X so einstellen, dass diese nicht in Sprache Y dargestellt werden? Auch Probleme mit Bildern entstehen, die sich z. B. so darstellen, dass ein Mitarbeiter feststellt: Das Produkt ABC sieht aber in Land G ganz anders aus als hier dar-gestellt. Wie ändern wir das? Alle diese Fragen kommen immer wieder auf die Verbindung von Sprachen und Ländern zurück, da wir meist davon ausgehen,

Sprachenwunder

Einführung in die Erstellung mehrsprachiger Websites mit Joomla! und der Erweiterung Joom!Fish

Immer wieder kommt es vor, dass ein Kunde, Freund oder auch man selbst eine Webseite erstellt, die an-

fangs einfach fantastisch in Deutsch geschrieben ist. Mit der Zeit kommen immer mehr Interessierte und

merken höflich an, dass die Übersetzungen der Seite über die automatischen Werkzeuge von Suchmaschi-

nen oder Übersetzungsprogrammen nicht ganz so das Wahre sind. Spätestens an diesem Punkt beginnt

man zu überlegen, warum die Webseite nicht einfach mehrsprachig angelegt werden sollte. In diesem Ar-

tikel erfahren Sie alles Wissenswerte, damit diese Verbesserung Ihres Angebots nicht in Frustration endet.

von Alex Kempkens

E

Page 3: Apache Solr oder Sphinx?forum.joomfish.net/documents/PM_3.09_kempkens_joomfish.pdf · 12/2/2009  · Test-driven Development mit dem Zend Framework Test-driven Ready for Change? Datenbankmigration

www.phpmagazin.de92

Web Joomla! und Joom!Fish

PHP Magazin 3.2009

dass eine Sprache häufig in einem be-stimmten Land gesprochen wird. Nun, Sie wissen selbst, dass Deutsch nicht nur in Deutschland gesprochen wird und so müssen wir sogar die Details dieser Verbindung von Sprache und Land ge-gebenenfalls beachten. Den häufigs-

ten Fehler, den ich in unserem Projekt Joom!Fish [1], (Kasten: „Allgemeine In-formationen zum Projekt Joom!Fish“) und auch bei der Beratung erlebe, ist die fehlende Planungszeit bzw. -arbeit. Gerade weil ein Content-Management-System (CMS) wie Joomla! so einfach

ist, versuchen viele Anwender diese Ein-fachheit auf das Thema Sprachen anzu-wenden. Die einfachste Lösung ist die Installation einer Erweiterung, die dem Anwender mithilfe von Onlineüberset-zungsdiensten die Webseite automa-tisch übersetzt. Irgendwann stellt man aufgrund eines Anwenderhinweises fest, dass diese Übersetzung die Informatio-nen total verfälscht und man beginnt zu überlegen, wie diese Übersetzung ver-bessert werden kann. Dann wird schnell eine andere Erweiterung – im Umfeld von Joomla! häufig Joom!Fish – einge-setzt und das erste Problem ist behoben. Später werden Shopsysteme installiert und der Anwender wundert sich, warum die Darstellung der Produkte und Prei-se oder z. B. Lieferkosten nicht sauber angepasst werden kann. Es entsteht viel Frust, dabei hätte die Arbeit mit etwas Vorbereitung sehr vereinfacht werden können.

Für fast alle CMS-Lösungen gibt es integrierte Lösungen für die Mehrspra-chigkeit oder entsprechende Erweite-rungen. Die technische Umsetzung ist dabei unterschiedlich und reicht von sehr komplexen Lösungen bis hin zu einfachen Varianten. Grundsätzlich ist es so, dass die neue Dimension der Sprache immer eine Art Referenz zwi-schen den Daten aufbaut. Es wird z. B. in zusätzlichen Spalten die Sprache für die Inhalte gesetzt oder neue Tabellen mit der spezifischen Sprachinformation erstellt. All dies ist erforderlich, da die Abhängigkeiten zwischen der Sprache

Allgemeine Informationen zum Projekt Joom!Fish

Das Projekt Joom!Fish existierte bereits für den Vorgänger von Joomla! und ist schon seit 2003 in den ersten Versionen verfügbar. Ziel des Pro-jekts war es von Anfang an, speziell die manu-ellen Übersetzungen für komplexere Webseiten zu unterstützen. Mit der Version 2.0 hat das Projektteam Ende 2008 die vollständig mi- grierte Version für Joomla! 1.5 veröffentlicht. Die Version basiert auf der grundsätzlich glei-chen Technologie wie die der Vorgängerversi-onen, bietet aber durch die Integration in das neue Framework von Joomla! eine verbesserte Einbindung in die Prozesse und Vereinfachung der Benutzeroberflächen. Hinzu kommt, dass mit neuen Mechanismen im Caching und bei der Verarbeitung die durch den Lösungsansatz ergebenen Nachteile in Serverlast und Perfor-manz ausgeglichen wurden. Weiterhin stellt Joom!Fish eine der am meisten genutzten Erweiterungen für Joomla! dar und ist mit dem gesamten Konzept aus Open-Source-Software, freier Verfügbarkeit und Community-orientierter Entwicklung sehr beliebt.

Mitte 2008 hat das Projektteam zusätzlich einen erweiterten Support und weitere spe-zialisierte Erweiterungen im Joom!Fish-Club veröffentlicht. Die PDF-Version der Anwen-derdokumentation und der direkte Support für die Clubmitglieder wird insbesondere bei

Agenturen und Unternehmen geschätzt. Für die Mitarbeiter gibt es so eine einfache Anlei-tung zur Arbeit mit Übersetzungen, und auch komplexere Themen können innerhalb des Supports einfach besprochen und Lösungen gefunden werden. Innerhalb des Clubs werden auch spezielle Erweiterungen, z. B. die sprach-spezifische Konfiguration der Menübäume, eine sprachoptimierte Version der automati-schen SEO-URLs und auch eine Lösung für die Übersetzung aller Referenzdaten im Frontend angeboten. Alle im Club veröffentlichten Erweiterungen stehen ebenfalls unter der GPL-Lizenz, womit die Unterstützung der Open-Source-Software konsequent weitergeführt wird. Ein Clubmitglied hat so auch nach Ablauf der Mitgliedschaft die vollen Nutzungsrechte an den Erweiterungen, und Kosten entstehen nur, wenn weiterhin die zusätzlichen Leistun-gen in Anspruch genommen werden sollen.

Im Rahmen des Clubs werden den Mitgliedern auch Vorabversionen neuer Releases zur Verfü-gung gestellt. Diese Versionen bestehen meist aus Entwicklungsideen und Neuerungen, die in eine zukünftige Version einfließen werden. Die Möglichkeit, früher an die Inhalte zu kommen, stellt gerade für Dienstleister eine interessante Möglichkeit dar, Projekte mit Kunden entspre-chend vorzubereiten.

Abb. 1: Extension Mana-ger mit der Installation der Sprachdateien

Page 4: Apache Solr oder Sphinx?forum.joomfish.net/documents/PM_3.09_kempkens_joomfish.pdf · 12/2/2009  · Test-driven Development mit dem Zend Framework Test-driven Ready for Change? Datenbankmigration

www.phpmagazin.de 93

WebJoomla! und Joom!Fish

PHP Magazin 3.2009

und dem Inhalt in praktisch allen Fällen größer sind, als dies dem ersten Augen-schein nach der Fall ist. Wie oben bereits erwähnt, ist die Sprache meist ein Indi-kator für Variationen in der Informati-on, dem Produkt oder ähnlichem. Die technische Lösung muss daher sowohl die Integrität der Anwendung und Da-ten als auch die Benutzerfreundlichkeit beachten. Es ist notwendig, dass der An-

wender praktisch jede beliebige Kombi-nation aus Sprachen und Inhalten auf-bauen kann, ohne dabei an technische Grenzen zu stoßen. Die Benutzerfreund-lichkeit hängt hier sehr stark von den Er-wartungen und auch den Integrations-möglichkeiten ab. Ein Anwender, der einfach nur seine Webseite in mehreren Sprachen dargestellt haben möchte, hat ganz andere Anforderungen als ein Un-

ternehmen oder ein Community-Portal. Hier ist die Benutzerfreundlichkeit si-cher auch im großen Maße von der Vor-gehensweise abhängig, wie gearbeitet wird, und so gibt es auch hier bei den Lö-sungen unterschiedliche Ansätze.

Vorbereitungen und InstallationWie bereits angesprochen, ist ein Aufbau von mehrsprachigen Webseiten ohne

Frage Antwort & Anmerkung

Welche Sprachen sollen auf der Webseite verfügbar sein?

Wir wollen in unserem Fall Deutsch und Englisch anbieten.Für jede Sprache benötigen wir die entsprechenden Sprachpakete der Joomla!-Installation [3], die deutschen Sprachpakete werden von einem Gemeinschaftsprojekt [4] aus Deutschland, Österreich und der Schweiz betreut.

Welche der Sprachen ist die zentrale bzw. die Basissprache?

Für uns soll dies Deutsch sein.Die Antwort auf diese Frage zielt darauf ab, Ihnen die Arbeit bei den Übersetzungen bzw. dem Aufbau der Web-seite zu vereinfachen. Meist ist es so, dass die Basissprache auch mit dem größten Umfang von Inhalten in Ver-bindung steht. Auch sind die Inhalte für diese Sprache meist einfacher verfügbar. Die Bestimmung einer Basis-sprache wird es einfacher machen, den Aufbau der Seite vorzubereiten und dann die Übersetzungen zu steuern.

Welche Teile Ihrer Struktur benötigen Sie in den weiteren Sprachen und welche nicht?

In unserem Fall soll das gesamte Menü und einige Artikel übersetzt werden.Es ist häufig der Fall, dass nur ein Teil der Struktur (Navigation) übersetzt wird oder z. B. bestimmte Inhalte nur in einer Sprache verfügbar sein sollen. In diesen Fällen muss gegebenenfalls die Struktur an den Bedarf der Sprachvarianten angepasst werden, sodass automatisch die richtigen Inhalte ausgewählt werden können. Die einfachste Variante ist eine vollständige Übersetzung der Internetpräsenz.

Tabelle 1: Fragen zur grundlegenden Vorbereitung

Abb. 2: Kontrollzentrum der Erweiterung Joom!Fish

Page 5: Apache Solr oder Sphinx?forum.joomfish.net/documents/PM_3.09_kempkens_joomfish.pdf · 12/2/2009  · Test-driven Development mit dem Zend Framework Test-driven Ready for Change? Datenbankmigration

www.phpmagazin.de94

Web Joomla! und Joom!Fish

PHP Magazin 3.2009

Vorbereitung etwas ungünstig. Daher will auch ich mit diesem ersten Schritt beginnen. Bevor wir mit der eigentlichen Arbeit loslegen, benötigen wir die folgen-den Pakete für die Installation:

•Joomla!1.5[2]•Joom!Fish2.0[1]

Zusätzlich zu den Softwarepaketen müs-sen wir uns den Fragen aus Tabelle 1 stel-len und entsprechend beantworten.

Nach dem nun die grundlegenden Fra-gen beantwortet sind, können wir mit der Installation beginnen. Sie wird dabei mit den folgenden Schritten durchgeführt:

•BasisinstallationvonJoomla!1.5•InstallationderSprachdateien•InstallationvonJoom!Fish2.0•InstallationderzusätzlichenKonfigu-

rationsdateien für die Erweiterungen

Die Grundlage ist eine Basisinstallation vonJoomla!1.5.ObSiedabeifürIhreersten Versuche die Beispieldaten instal-lieren oder die Inhalte einer bestehenden Webseite nutzen, ist egal. Wichtig ist wie immer eine Sicherung, wenn es eine be-stehende Webseite ist. Es ist auch uner-heblich, ob zusätzlich benötigte Erwei-terungen vor oder nach der Installation von Joom!Fish installiert werden. Die

erforderlichen Anpassungen können je-derzeit erfolgen.

Es empfiehlt sich nun, die Sprach-dateien [4] zu installieren. Sie müssen zumindest die Sprachdateien für die Website (site) installieren, es bietet sich aber an, auch gleich die Dateien für die Administration von Joomla! mit zu nutzen. Wir nutzen dazu den Extension Manager (Administration | Extensi-ons | Install/Uninstall) von Joomla! (Abb. 1).

Über den gleichen Manager installie-ren Sie auch die Erweiterung Joom!Fish. Sie liegt in einem kombinierten Paket vor und installiert automatisch alle erforder-

Abb. 3: Konfigura-tion der Sprachen

Abb. 4: Überset-zung aus dem Menümanager heraus

Page 6: Apache Solr oder Sphinx?forum.joomfish.net/documents/PM_3.09_kempkens_joomfish.pdf · 12/2/2009  · Test-driven Development mit dem Zend Framework Test-driven Ready for Change? Datenbankmigration

www.phpmagazin.de 95PHP Magazin 3.2009

WebJoomla! und Joom!Fish

lichen Plug-ins, Module und Komponen-ten selbst. Nach der Installation � nden Sie in dem Menü Komponenten einen neuen Eintrag für Joom!Fish mit den zu-sätzlichen Untermenüs für die einzelnen Funktionen innerhalb der Erweiterung. Das Kontrollzentrum (Abb. 2) er-möglicht auch den einfachen Zugriff auf die verschiedenen Funktionen der Erwei-terung und darüber hinaus Informati-onen und Hilfestellungen für die Arbeit mit den Übersetzungen.

Konfi guration von Joomla! und Joom!Fish aufeinander abstimmenDer nächste Arbeitsschritt ist die Ab-stimmung der Kon� gurationen auf die Antworten, die wir bei der Vorbereitung gegeben haben. Zuerst müssen wir die Basissprache innerhalb von Joomla! festlegen. Dazu verwenden Sie das Me-nü Erweiterungen | Sprachen. In dem Dialog stellen wir die Sprache für die Webseite als Standard ein. Dazu wählen Sie die Zeile der Sprache aus und nut-zen die Funktion Standard (der Stern in der Toolbar oben rechts). Sie können auch die Sprache in der Administration umstellen. Dies ist für die Arbeit an einer deutschen Webseite einfacher, jedoch nicht erforderlich. Generell hat die Spra-che im Backend keinen Ein uss auf die Inhalte oder Übersetzungen. Sie können daher z. B. jedem Übersetzer die Sprache im Backend geben, mit der er/sie am ein-fachsten Arbeiten kann. Es gibt auch für die Erweiterung Joom!Fish eine Sprach-datei [5] mit der Sie die gesamte Ober ä-che entsprechend übersetzt anbieten.

Als zweiten Schritt müssen wir in-nerhalb von Joom!Fish festlegen, welche Sprachen auf der Webseite angeboten werden sollen und wie die Grundkon-� guration der einzelnen Sprachen auf-gebaut sein soll. Dazu nutzen Sie bitte die Funktion Sprachen im Kontroll-zentrum der Erweiterung Joom!Fish (alternativ im Menü Komponenten | Joom!Fish | Sprachen). Wenn Sie die-sen Dialog aufrufen, sehen Sie die Liste der installierten Sprachen im System, mit den Namen, mit welchen sie in den Sprachdateien festgelegt sind. Name stellt dabei den Anzeigenamen dar. Pas-sen Sie zumindest den Namen an, damit

sie eine saubere Darstellung auf Ihrer Webseite erhalten. Wichtig ist auch, dass sie alle Sprachen, die auf der Webseite für den Benutzer auswählbar sein sollen, auf aktiv setzen. Nicht aktive Sprachen können z. B. zum Aufbau neuer Über-setzungen genutzt werden, da diese bei entsprechender Kon� guration nur den angemeldeten Benutzern Ihrer Webseite angeboten werden. Joom!Fish enthält standardmäßig verschiedene Bilder von Landes aggen. Die Standard agge wird immer dann genutzt, wenn diese auto-matisch aus dem Kurznamen abgelei-tet werden konnte. Alternativ können Sie auch weitere Bilder verwenden und diese an Ihre Bedürfnisse anpassen. Um die Webseite konsistent in einer Sprache darzustellen, können Sie auch die in der Kon� guration eingetragenen Informa-tionen wie Seitentitel, Meta-Tags und Ähnliches hier überschreiben und für jede Sprache so eine optimierte Kon� -guration erstellen. Nach der Kon� gu-ration der Sprachen sollte der Dialog in etwa wie in der Abbildung 3 dargestellt werden.

Mit diesen beiden Kon� gurationen ist die Grundkonfiguration für eine mehrsprachige Webseite auch schon ab-geschlossen. Weiterer Bedarf für Kon� -gurationselemente besteht dann, wenn Sie z. B. die Inhalte weiterer Erweite-rungen von Joomla! übersetzen wollen. Da jede Erweiterung sehr exibel neue Datenbanktabellen und Inhalte be-schreiben kann, ist eine Kon� guration dieser Daten für die Übersetzung erfor-derlich. Diese Kon� guration basiert auf entsprechenden XML-Dateien, den so genannten Content Elements oder auch Referenzdateien. Über die Funktion Re-ferenzen konfigurieren können Sie direkt aus dem Kontrollzentrum die ak-tuell installierten Kon� gurationen ein-sehen und neue hinzufügen. Da diese Re-ferenzdateien eine gewisse Komplexität in den Abhängigkeiten besitzen, haben wir einige bereits zusammengestellt [6]. Sie erhalten diese Kon� gurationsdatei-en in der Regel auch auf den Webseiten der jeweiligen Projekte. Wenn Sie eine neue Kon� guration benötigen, so gibt es in der Dokumentation des Projekts [7] eine entsprechende Information. Auf diese Art und Weise ist es möglich, fast

Web

1/3 Impressum

Verlag:Software & Support Verlag GmbH

Anschrift der Redaktion:PHP Magazin Software & Support Verlag GmbH Geleitsstr. 1460599 Frankfurt am MainTel.: +49(0) 69 630089-0Fax: +49(0) 69 630089-89E-Mail: [email protected]: www.phpmagazin.de

Chefredaktion: Björn SchotteE-Mail: [email protected]

Redaktion: Robert LippertE-Mail: [email protected]

Chefi n vom Dienst: Nicole BechtelSchlussredaktion: Nicole Bechtel, Katharina Klassen, Frauke Pesch

CD/DVD-Erstellung: Daniel ZuzekE-Mail: [email protected]

Leitung Grafi k/Produktion: Jens MainzLayout, Titel: Daniela Albert, Kristin Brockmann, Pobporn Fischer, Melanie Hahn, Karolina Kresic, Katharina Ochsenhirt, Lena Reichwein, Maria Rudi, Patricia Schwesinger

Autoren dieser Ausgabe:Arne Blankerts, Uwe Dierolf, Ralf Eggert, Jens Grochtdreis, Timo Haberkern, Lars Jankowfsky, Alexander Kempkens, Sven Kliebenstein, Patrick Lobacher, Alexander Merz, Kore Nordmann, Ralf Schwöbel, Alexander M. Turek, Thomas Wießeckel, David Zülke

AnzeigenVerlagsbüro Ohm-SchmidtHerr Osmund SchmidtSchneckenburgerstr. 2230177 HannoverTel.: +49-(0)511-2354164 Fax: +49-(0)1805-060-336-956-69E-Mail: [email protected] gilt die Anzeigenpreisliste Nr. 7

Pressevertrieb:DPV NetworkTel.: +49 (0) 40 378456261 Web: dpv-network.de

AboserviceSoftware & Support Verlag GmbHTel.: +49 (0) 69 630089-0Fax: +49 (0) 69 630089-89E-Mail: [email protected]

AbonnementpreiseInland 6 Ausgaben 52,00 €Ausland 6 Ausgaben 62,00 €Student Inland 6 Ausgaben 41,60 €Student Ausland 6 Ausgaben 51,60 €

EinzelverkaufspreisDeutschland 9,80 €Österreich 10,80 €Luxemburg 11,25 €Schweiz 19,20 sFr

Erscheinungsweise: zweimonatlich

Druck: PVA, LandauISSN: 1619-7976

© 2009 für alle Beiträge.Alle Rechte, auch für Übersetzungen, sind vorbehalten. Re-produktionen jeglicher Art (Fotokopie, Nachdruck, Mikrofi lm oder Erfassung auf elektronischen Datenträgern) nur mit schriftlicher Genehmigung des Verlags. Jegliche Software auf der CD-ROM unterliegt den Bestimmungen des Herstellers oder der zuständigen Organisation. Eine Haftung für die Richtigkeit der Veröffentlichungen kann trotz Prüfung durch die Redaktion vom Herausgeber nicht übernommen werden. Honorierte Artikel gehen in das Verfügungsrecht des Ver-lags über. Mit der Übergabe der Manuskripte, Abbildungen eventueller Quellcodes an den Verlag erteilt der Verfasser dem Herausgeber das Exklusivitätsrecht zur Veröffentlichung. Für un ver langt eingesandte Manuskripte, Abbildungen oder Quellcodes keine Gewähr.

Alle Markennamen sind in der Regel eingetragene Warenzei-chen der entsprechenden Hersteller oder Organisationen.

Impressum

Page 7: Apache Solr oder Sphinx?forum.joomfish.net/documents/PM_3.09_kempkens_joomfish.pdf · 12/2/2009  · Test-driven Development mit dem Zend Framework Test-driven Ready for Change? Datenbankmigration

www.phpmagazin.de96

Web Joomla! und Joom!Fish

PHP Magazin 3.2009

jede Erweiterung für Joomla! auch mit Joom!Fish zu übersetzen.

Erstellung und Übersetzung der InhalteDie Arbeit mit Inhalten in dem CMS Joomla! verändert sich durch die mehr-sprachige Webseite nicht grundsätzlich. Es ist vielmehr die Vereinbarung aus der Vorbereitung, dass wir als Basissprache Deutsch verwenden wollen, die eine Auswirkung auf die Arbeit hat. Die Idee hinter dieser Vereinbarung ist, dass wir zu jeder Zeit den Überblick über unse-re Arbeit haben. Wenn wir wissen, dass die deutschen Inhalte immer vorhanden sind, können wir leichter die Überset-

zungen planen. Der andere Aspekt ist, dass zusätzliche Abhängigkeiten vermie-den werden. Es ist technisch natürlich möglich, zwei vollständig unabhängige Sprachversionen zu schaffen, die ledig-lich eine lose Kopie darstellen. Dies hat aber zur Folge, dass Änderungen in der Basissprache gegebenenfalls große Aus-wirkungen auf die Sekundärsprache ha-ben. All dies ist mit Joom!Fish möglich, führt aber meist dazu, dass sehr komple-xe Strukturen aufgebaut werden, und die wiederum benötigen weitere Planung und Vorbereitung.

In unserem Beispiel wollen wir mit den Übersetzungen der Menüs beginnen. Dazu verwenden wir einfach den Stan-

Abb. 5: Übersicht der Übersetzungen

dardmenümanager von Joomla! (Menüs | Main Menu). Ich habe in Abbildung 4 die Beispieldaten aus der Joomla!-In-stallation genutzt. Da wir eine Seite mit Basissprache Deutsch wünschen, müssen alle Inhalte im CMS dieser Sprache ent-sprechen, bevor wir mit der Übersetzung beginnen können.

Zur Übersetzung können Sie nun ganz einfach aus der Liste der Menüeinträge den gewünschten Eintrag auswählen (in Abbildung 4 ist dies der erste Eintrag Start) und die Funktion übersetzen nach aus der Menüzeile wählen. Die Er-weiterung Joom!Fish hat neben dem Link für die Vorschau ein spezielles Modul ein-gefügt, dass ein direktes Übersetzen in den verschiedenen Dialogen ermöglicht. Sie brauchen lediglich die gewünschte Spra-che auszuwählen oder, wenn Sie weitere Einträge übersetzen, die Funktion erneut aufzurufen. Es erscheint ein modaler Di-alog, der mit den Übersetzungsdialogen innerhalb der Erweiterung Joom!Fish identisch ist. In der Übersetzung können Sie individuell für jedes Menü die einzel-nen Informationen bestimmen und auch die Parameter an die geänderte Sprache anpassen. Wählen Sie in der rechten Spalte gleich den Parameter veröffentlicht aus, um Ihre Übersetzung freizugeben. Nach dem Speichern der Übersetzung kommen Sie wieder in den Menümanager zurück und können die weiteren Menüs übersetzen. Bei der Übersetzung können Sie genauso vorgehen, wie bei der Eingabe der Menüs. So wird z. B. der Alias automa-tisch erstellt und in der Standardkonfigu-ration werden auch alle Parameter direkt übernommen.

Sollte die direkte Übersetzung nicht für Ihre gewünschte Komponente kon-figuriert sein, können Sie dies in dem Administrationsmodul anpassen oder einfach den zentralen Übersetzungsdia-log (Komponenten | Joom!Fish | Über-setzung) nutzen. In diesem Dialog müs-sen Sie für die Übersicht der verfügbaren Übersetzung die gewünschte Zielspra-che und eine Referenz zu einem Inhalt auswählen. Sie erhalten dann eine Liste aller verfügbaren Originale mit den ent-sprechenden Übersetzungen angeboten. Die Übersetzungen sind dabei primär mit einem Feld und den Zusatzinforma-tionen über Ihren Status und der letzten

Abb. 6: Webseite mit noch nicht übersetztem Artikel

Page 8: Apache Solr oder Sphinx?forum.joomfish.net/documents/PM_3.09_kempkens_joomfish.pdf · 12/2/2009  · Test-driven Development mit dem Zend Framework Test-driven Ready for Change? Datenbankmigration

www.phpmagazin.de 97

WebJoomla! und Joom!Fish

PHP Magazin 3.2009

Bearbeitung dargestellt. Wenn sich z. B. Änderungen am Original ergeben, wird dies hier mit einem gelben Symbol darge-stellt. In unserem Fall sind alle Überset-zungen mit Ausnahme der für die FAQs grün und damit in Ordnung. Den Begriff „FAQ“ zu übersetzen, ist unsinnig, und im Deutschen „FUA“ zu verwenden, ist auch nicht zweckdienlich. Also können wir das lassen.

Wenn Sie nun Ihre Webseite im Stan-dard-Template von Joomla! betrachten, werden neben der Suche (rechts oben) die beiden Flaggen aus der Sprachkon-figuration dargestellt. Mit einem ein-fachen Klick auf diese Flaggen können Sie zwischen Ihren beiden Sprachen umschalten und erhalten eine Webseite mit geänderten Standardtexten (z. B. „suchen ...“ und „search ...“) und auch Ihr Menü ist bereits übersetzt. Sie wer-den feststellen, dass das Menü FAQ in beiden Sprachen verfügbar ist. Dies ist eine Besonderheit von Joom!Fish, denn die Erweiterung geht davon aus, dass eine fehlende bzw. nicht veröffentlich-te Übersetzung nicht gleich den Aus-schluss des Inhalts (wie in unserem Fall des Menüeintrags) bedeuten soll. Für die Menüs ist es mit einer speziellen Er-gänzung möglich, für jede Sprache indi-viduelle Menübäume aufzubauen und zu pflegen.

Die Übersetzung von Modulen wie den aktuellen Nachrichten (Latest News) erfolgt grundsätzlich auf die glei-che Art und Weise. Meist sind bei diesen Inhalten die Übersetzungen mithilfe des Joom!Fish-Dialogs Übersetzungen am schnellsten und effektivsten durch-geführt. Für alle anderen Komponenten oder auch Plug-ins gilt das Gleiche, und die Übersetzung ist direkt innerhalb der Erweiterung Joom!Fish möglich.

Übersetzungen im FrontendEines der sehr interessanten Features von Joomla! ist die Bearbeitung von Inhalten über das Frontend, also der Webseite. Einem Anwender, der nicht mit der ge-samten Komplexität der Administration verwirrt werden soll, können Sie auf die-se Art und Weise eine Möglichkeit geben, einfach und direkt innerhalb der Websei-te zu arbeiten. Für diesen Zweck benötigt der Anwender lediglich einen Zugang

zur Webseite und die entsprechenden Rechte in der Benutzerverwaltung, z. B. die Rechte des Publishers für das Er-stellen und Veröffentlichen von neuen Artikeln. Joom!Fish unterstützt diese Möglichkeit, in dem auch Übersetzun-gen von Artikeln auf diese Art und Weise erstellt bzw. bearbeitet werden können. Besonders bei dieser Arbeit direkt auf der Webseite gilt wieder die Empfehlung, zuerst den Artikel in der Basissprache zu erfassen. Das vereinfacht die weitere Ar-beit und die Pflege der Daten. Grundsätz-lich unterstützt Joom!Fish zwar auch die Abweichung von dieser Regel, aber das führt hier sicher zu weit, weshalb ich das Beispiel auch auf Basis der Empfehlung her aufbaue.

Im ersten Schritt wählen wir die Basissprache unserer Webseite aus (Deutsch). Im Benutzermenü (User Me-nu, sofern es noch nicht übersetzt ist) auf der linken Seite können Sie einen neuen Artikel erstellen. Sie erhalten einen Dia-log mit Editor und ein paar ausgewähl-ten Parametern darunter. Geben Sie hier bitte einen beliebigen neuen Artikel ein und wählen Sie als Sektion News und als Kategorie Latest aus. Zudem sollten Sie den Artikel so einstellen, dass er auf der Startseite dargestellt wird. Wenn Sie nun auf Englisch umschalten, erhalten Sie die Darstellung Ihrer Webseite wie in Abbildung 6. Die Webseite ist auf Eng-lisch, wobei der erste Artikel in Deutsch geschrieben ist. Ein Hinweis sagt „There is no translation available“, was uns na-türlich klar ist, da wir diese erst erstellen möchten. Auch im Modul Latest News findet sich unser Artikel automatisch wieder.

Um die Übersetzung des Artikels durchzuführen brauchen Sie jetzt nur auf die Funktion Edit (das Icon mit dem leeren Blatt und Stift bei jedem Artikel) zu klicken und den Text zu bearbeiten. In diesem Modus arbeiten Sie bereits in Ihrer Übersetzung, so wie wir dies vorhin in dem modalen Dialog bei den Menüs gemacht haben. Mit den Parametern unterhalb des Editors steuern sie hier die Übersetzung des neuen Artikels, sodass auch hier die Sicherheitsregeln je nach Benutzerrechten das Veröffentlichen von Übersetzungen einschränkt. Mitarbeiter an Ihrer Webseite können so z. B. Über-

setzungen durchführen, jedoch kann nur ein Publisher im Sinne von Joomla! diese auch veröffentlichen. Nach dem Sie die Eingabe mit Speichern abgeschlossen haben, ist Ihre Übersetzung fertig gestellt und je nach Einstellung auch bereits ver-öffentlicht.

FazitDer Aufbau oder die Umstellung einer mit Joomla! erstellten Webseite auf mehr-sprachige Inhalte erfordert heute keine Kopie der Datenbanken oder auch kom-plexe Einarbeitung mehr. Die existie-rende Lösung auf Basis der Erweiterung Joom!Fish bietet für den Einstieg – aber auch für komplexere Anforderungen – alle Funktionen. Mit ein wenig Vorberei-tung und Planung vor dem Start können Sie sich sehr einfach viele Kopfschmer-zen sparen. Weitere Informationen, Video-Tutorials für die ersten Schritte und alle Zusatzinformationen finden Sie auch auf der Projektwebseite – und wenn doch etwas fehlt, sind wir für Hinweise, Wünsche und andere Vorschläge immer offen.

ALEx KEMPKENS

Alex Kempkens ist seit 2004 Mitglied des Mambo/Joomla!-Core-Teams und arbeitet u. a. in den Bereichen der Eventorganisati-on und Sprachintegration. Die Erweiterung Joom!Fish für mehrsprachige Websites wurde von ihm entwickelt. Im Rahmen der Think Network setzt er die Erfahrungen für seine Kunden z. B. bei Entwicklerschulungen und Individuallösungen ein.

Links & Literatur

[1] www.joomfish.net/

[2] http://www.joomla.de/

[3] http://extensions.joomla.org/extensions/languages/translations-for-joomla

[4] http://www.jgerman.de/

[5] http://www.joomfish.net/de/downloads/club-downloads/folder/ 39-joomfish-translations

[6] http://joomlacode.org/gf/project/joomfish/frs/?action=FrsReleaseBrowse&frs_ package_id=395

[7] http://www.joomfish.net/de/ dokumentation/entwickler-doku/ 30-creation-of-content-elements