Page 1

l. k In

! D C

s zu 130,- € sparen!

t bi Bis 31.03.2009: Jetz

ing-Paketen i den STRATO Webhost Profitieren Sie jetzt be rtgeschrittene lusiv-Leistungen für Fo von jeder Menge Ink ige Aktionssich sensationell günst und Profis. Sichern Sie r für kurze oftware inklusive: Nu preise und Marken-S us-XL-Paket hochwertige PowerPl Zeit erhalten Sie das elle 2,99 €/Monat!* 6 Monate für sensation

3.2009! Preis-Aktion bis 31.0 XL mit 12 Domains STRATO PowerPlus

Plus-Pakete STRATO Powerzu ) 12 Domains 6.000 MB Webspace nken 20 MySQL 5.0 Datenba Traffic unlimited

-FTP Backup Manager, Web r Unterstützung gängige t-Systeme Content-Managemen Drupal) (TYPO3, Joomla! und , Blog EasyVideo, Fotoalbum lusive Marken-Software ink

gt : ? Anruf genü Noch Fragen Mobilfunktarif) netz, abweichender (14 Cent/Min. dt. Fest

2,

6 Monate für

99

danach nur

0 18 05 - 05 50 55

d bestellen unter Jetzt informieren un

e d . o t a r t s . www * Einmalige Einrichtungsgebühr 14,90 €. Mindestvertragslaufzeit 12 Monate. Bei Software-Bestellung 6,90 € Versandkosten. Preise pro Monat inkl. MwSt.

* mtl.

24,90 €

Apache Solr • Sphinx • NetBeans, Eclipse1.5 und• Zend Studio • •TDD mit Zend Agavi • XML in PHP 5 • Architektur für Entwickler • OXID•eShop JoomFish! • Debugging im Browser Namespaces • Zend Framework Subversion Doctrine in •Symfony • Zend_Cache • SQL Injections • XML-DB Scrum• LiquiBase • AJAX &•Wikis • Joomla! 1.5 • CSS • JavaScript

g n u t s i e L e l a m i x „Ma “ ! e t i s b e W e n i e für m

INKLUSIVE!

Deutschland

www.phpmagazin.de

9,80 €

Österreich 10,80 € | Schweiz 19,20 SFr Niederlande 11,25 € | Luxemburg 11,25 €

PHP MAGAZIN 3.09

Ausgabe 01/2009

(je nach Paket mit bis

April | Mai

Ausgabe 3.09

IE und Firefox

Test-driven

Ready for Change?

DOMinant!

Die wichtigsten Tools zum Debuggen

Test-driven Development mit dem Zend Framework

Datenbankmigration mit LiquiBase

Die Verarbeitung von XML in PHP 5

OXID eShop 4 Community Edition Das flexible Open-SourceShopsystem 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

Apache Solr oder Sphinx? Volltextsuche unter PHP

Außerdem die wichtigsten

CM-Systeme, Blogs und Frameworks u.v.m.

NetBeans, Eclipse und Zend Studio Der große IDE-Vergleich

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

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!


Joomla! und Joom!Fish

Web

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

Sprachenwunder Immer wieder kommt es vor, dass ein Kunde, Freund oder auch man selbst eine Webseite erstellt, die anfangs 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 Suchmaschinen 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 Artikel erfahren Sie alles Wissenswerte, damit diese Verbesserung Ihres Angebots nicht in Frustration endet. von Alex Kempkens

E

ine Webseite mit mehreren Sprachen aufzubauen, ist mit einem Onlineshop oder einer Community-Website vergleichbar. Zunächst sind die Installation und die erste Einrichtung einfach, dann, wenn das Portal größer wird, steigen auch die Erwartungen, und spätestens wenn das Finanzamt nach einer Umsatzsteueranmeldung für das Ausland respektive EU-Länder fragt, wird es kompliziert. Wenn Sie bereits wissen, wovon ich spreche, dann können Sie jetzt gerne zur Überschrift „Vorbereitun-

www.phpmagazin.de

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

Mehrsprachige Webseiten und was dahinter steckt Für alle anderen möchte ich mit einer kurzen Einführung beginnen und erläutern, worauf wir uns jetzt einlassen wollen. Ich vergleiche eine mehrsprachige Webseite immer mit der Einführung einer neuen Dimension in die Internetpräsentation. Sobald die Sprache als ein Element in die Planung bzw.

Konzeption von Webseiten aufgenommen 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 dargestellt. 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,

PHP Magazin 3.2009

91


Web

Joomla! und Joom!Fish

Abb. 1: Extension Manager mit der Installation der Sprachdateien

dass eine Sprache häufig in einem bestimmten 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 gegebenenfalls beachten. Den häufigs-

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

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 Projekts war es von Anfang an, speziell die manuellen Übersetzungen für komplexere Webseiten zu unterstützen. Mit der Version 2.0 hat das Projektteam Ende 2008 die vollständig migrierte Version für Joomla! 1.5 veröffentlicht. Die Version basiert auf der grundsätzlich gleichen Technologie wie die der Vorgängerversionen, 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 Performanz 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 spezialisierte Erweiterungen im Joom!Fish-Club veröffentlicht. Die PDF-Version der Anwenderdokumentation und der direkte Support für die Clubmitglieder wird insbesondere bei

92

PHP Magazin 3.2009

Agenturen und Unternehmen geschätzt. Für die Mitarbeiter gibt es so eine einfache Anleitung 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 sprachspezifische Konfiguration der Menübäume, eine sprachoptimierte Version der automatischen 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 OpenSource-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 Leistungen 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 entsprechend vorzubereiten.

ist, versuchen viele Anwender diese Einfachheit auf das Thema Sprachen anzuwenden. Die einfachste Lösung ist die Installation einer Erweiterung, die dem Anwender mithilfe von Onlineübersetzungsdiensten die Webseite automatisch übersetzt. Irgendwann stellt man aufgrund eines Anwenderhinweises fest, dass diese Übersetzung die Informationen total verfälscht und man beginnt zu überlegen, wie diese Übersetzung verbessert werden kann. Dann wird schnell eine andere Erweiterung – im Umfeld von Joomla! häufig Joom!Fish – eingesetzt und das erste Problem ist behoben. Später werden Shopsysteme installiert und der Anwender wundert sich, warum die Darstellung der Produkte und Preise 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 Mehrsprachigkeit oder entsprechende Erweiterungen. 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 zwischen 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

www.phpmagazin.de


Joomla! und Joom!Fish

Web

Abb. 2: Kontrollzentrum der Erweiterung Joom!Fish

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

wender praktisch jede beliebige Kombination aus Sprachen und Inhalten aufbauen kann, ohne dabei an technische Grenzen zu stoßen. Die Benutzerfreundlichkeit hängt hier sehr stark von den Erwartungen und auch den Integrationsmö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 sicher auch im großen Maße von der Vorgehensweise abhängig, wie gearbeitet wird, und so gibt es auch hier bei den Lösungen unterschiedliche Ansätze.

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

Tabelle 1: Fragen zur grundlegenden Vorbereitung 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 Webseite zu vereinfachen. Meist ist es so, dass die Basissprache auch mit dem größten Umfang von Inhalten in Verbindung steht. Auch sind die Inhalte für diese Sprache meist einfacher verfügbar. Die Bestimmung einer Basissprache 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.

www.phpmagazin.de

PHP Magazin 3.2009

93


Web

Joomla! und Joom!Fish

Abb. 3: Konfiguration der Sprachen

Abb. 4: Übersetzung aus dem Menümanager heraus

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

• Basisinstallation von Joomla! 1.5 • Installation der Sprachdateien • Installation von Joom!Fish 2.0 • Installation der zusätzlichen Konfigurationsdateien für die Erweiterungen

• Joomla! 1.5 [2] • Joom!Fish 2.0 [1]

Die Grundlage ist eine Basisinstallation von Joomla! 1.5. Ob Sie dabei für Ihre ersten Versuche die Beispieldaten installieren oder die Inhalte einer bestehenden Webseite nutzen, ist egal. Wichtig ist wie immer eine Sicherung, wenn es eine bestehende Webseite ist. Es ist auch unerheblich, ob zusätzlich benötigte Erweiterungen vor oder nach der Installation von Joom!Fish installiert werden. Die

Zusätzlich zu den Softwarepaketen müssen wir uns den Fragen aus Tabelle 1 stellen und entsprechend beantworten. Nach dem nun die grundlegenden Fragen beantwortet sind, können wir mit der Installation beginnen. Sie wird dabei mit den folgenden Schritten durchgeführt:

94

PHP Magazin 3.2009

erforderlichen Anpassungen können jederzeit erfolgen. Es empfiehlt sich nun, die Sprachdateien [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 | Extensions | Install/Uninstall) von Joomla! (Abb. 1). Über den gleichen Manager installieren Sie auch die Erweiterung Joom!Fish. Sie liegt in einem kombinierten Paket vor und installiert automatisch alle erforder-

www.phpmagazin.de


Joomla! und Joom!Fish

Web

Impressum Web Verlag: Software & Support Verlag GmbH

Anschrift der Redaktion:

lichen Plug-ins, Module und Komponenten selbst. Nach der Installation finden Sie in dem Menü Komponenten einen neuen Eintrag für Joom!Fish mit den zusätzlichen Untermenüs für die einzelnen Funktionen innerhalb der Erweiterung. Das Kontrollzentrum (Abb. 2) ermöglicht auch den einfachen Zugriff auf die verschiedenen Funktionen der Erweiterung und darüber hinaus Informationen und Hilfestellungen für die Arbeit mit den Übersetzungen.

Konfiguration von Joomla! und Joom!Fish aufeinander abstimmen Der nächste Arbeitsschritt ist die Abstimmung der Konfigurationen auf die Antworten, die wir bei der Vorbereitung gegeben haben. Zuerst müssen wir die Basissprache innerhalb von Joomla! festlegen. Dazu verwenden Sie das Menü 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 nutzen 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 Sprache im Backend keinen Einfluss auf die Inhalte oder Übersetzungen. Sie können daher z. B. jedem Übersetzer die Sprache im Backend geben, mit der er/sie am einfachsten Arbeiten kann. Es gibt auch für die Erweiterung Joom!Fish eine Sprachdatei [5] mit der Sie die gesamte Oberfläche entsprechend übersetzt anbieten. Als zweiten Schritt müssen wir innerhalb von Joom!Fish festlegen, welche Sprachen auf der Webseite angeboten werden sollen und wie die Grundkonfiguration der einzelnen Sprachen aufgebaut sein soll. Dazu nutzen Sie bitte die Funktion Sprachen im Kontrollzentrum der Erweiterung Joom!Fish (alternativ im Menü Komponenten | Joom!Fish | Sprachen). Wenn Sie diesen 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. Passen Sie zumindest den Namen an, damit

www.phpmagazin.de

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 Übersetzungen genutzt werden, da diese bei entsprechender Konfiguration nur den angemeldeten Benutzern Ihrer Webseite angeboten werden. Joom!Fish enthält standardmäßig verschiedene Bilder von Landesflaggen. Die Standardflagge wird immer dann genutzt, wenn diese automatisch aus dem Kurznamen abgeleitet 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 Konfiguration eingetragenen Informationen wie Seitentitel, Meta-Tags und Ähnliches hier überschreiben und für jede Sprache so eine optimierte Konfiguration erstellen. Nach der Konfiguration der Sprachen sollte der Dialog in etwa wie in der Abbildung 3 dargestellt werden. Mit diesen beiden Konfigurationen ist die Grundkonfiguration für eine mehrsprachige Webseite auch schon abgeschlossen. Weiterer Bedarf für Konfigurationselemente besteht dann, wenn Sie z. B. die Inhalte weiterer Erweiterungen von Joomla! übersetzen wollen. Da jede Erweiterung sehr flexibel neue Datenbanktabellen und Inhalte beschreiben kann, ist eine Konfiguration dieser Daten für die Übersetzung erforderlich. Diese Konfiguration basiert auf entsprechenden XML-Dateien, den so genannten Content Elements oder auch Referenzdateien. Über die Funktion Referenzen konfigurieren können Sie direkt aus dem Kontrollzentrum die aktuell installierten Konfigurationen einsehen und neue hinzufügen. Da diese Referenzdateien eine gewisse Komplexität in den Abhängigkeiten besitzen, haben wir einige bereits zusammengestellt [6]. Sie erhalten diese Konfigurationsdateien in der Regel auch auf den Webseiten der jeweiligen Projekte. Wenn Sie eine neue Konfiguration benötigen, so gibt es in der Dokumentation des Projekts [7] eine entsprechende Information. Auf diese Art und Weise ist es möglich, fast

PHP Magazin Software & Support Verlag GmbH Geleitsstr. 14 60599 Frankfurt am Main Tel.: +49(0) 69 630089-0 Fax: +49(0) 69 630089-89 E-Mail: redaktion@phpmagazin.de Web: www.phpmagazin.de

Chefredaktion: Björn Schotte E-Mail: bjoern@phpmagazin.de Redaktion: Robert Lippert E-Mail: rlippert@phpmagazin.de Chefin vom Dienst: Nicole Bechtel Schlussredaktion: Nicole Bechtel, Katharina Klassen, Frauke Pesch

CD/DVD-Erstellung: Daniel Zuzek E-Mail: cd@phpmagazin.de Leitung Grafik/Produktion: Jens Mainz Layout, 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

1/3 Impressum Anzeigen

Verlagsbüro Ohm-Schmidt Herr Osmund Schmidt Schneckenburgerstr. 22 30177 Hannover Tel.: +49-(0)511-2354164 Fax: +49-(0)1805-060-336-956-69 E-Mail: Osmund@Ohm-Schmidt.de Es gilt die Anzeigenpreisliste Nr. 7

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

Aboservice Software & Support Verlag GmbH Tel.: +49 (0) 69 630089-0 Fax: +49 (0) 69 630089-89 E-Mail: abo@phpmagazin.de

Abonnementpreise Inland Ausland Student Inland Student Ausland

6 Ausgaben 6 Ausgaben 6 Ausgaben 6 Ausgaben

52,00 62,00 41,60 51,60

€ € € €

Einzelverkaufspreis Deutschland Österreich Luxemburg Schweiz

9,80 10,80 11,25 19,20

€ € € sFr

Erscheinungsweise: zweimonatlich Druck: PVA, Landau ISSN: 1619-7976 © 2009 für alle Beiträge. Alle Rechte, auch für Übersetzungen, sind vorbehalten. Reproduktionen jeglicher Art (Fotokopie, Nachdruck, Mikrofilm 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 Verlags ü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 unverlangt eingesandte Manuskripte, Abbildungen oder Quellcodes keine Gewähr. Alle Markennamen sind in der Regel eingetragene Warenzeichen der entsprechenden Hersteller oder Organisationen.

PHP Magazin 3.2009

95


Web

Joomla! und Joom!Fish

Abb. 5: Übersicht der Übersetzungen

Abb. 6: Webseite mit noch nicht übersetztem Artikel

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

Erstellung und Übersetzung der Inhalte Die Arbeit mit Inhalten in dem CMS Joomla! verändert sich durch die mehrsprachige 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 unsere Arbeit haben. Wenn wir wissen, dass die deutschen Inhalte immer vorhanden sind, können wir leichter die Überset-

96

PHP Magazin 3.2009

zungen planen. Der andere Aspekt ist, dass zusätzliche Abhängigkeiten vermieden werden. Es ist technisch natürlich möglich, zwei vollständig unabhängige Sprachversionen zu schaffen, die lediglich eine lose Kopie darstellen. Dies hat aber zur Folge, dass Änderungen in der Basissprache gegebenenfalls große Auswirkungen auf die Sekundärsprache haben. All dies ist mit Joom!Fish möglich, führt aber meist dazu, dass sehr komplexe 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-

dardmenümanager von Joomla! (Menüs | Main Menu). Ich habe in Abbildung 4 die Beispieldaten aus der Joomla!-Installation genutzt. Da wir eine Seite mit Basissprache Deutsch wünschen, müssen alle Inhalte im CMS dieser Sprache entsprechen, 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 Erweiterung Joom!Fish hat neben dem Link für die Vorschau ein spezielles Modul eingefügt, dass ein direktes Übersetzen in den verschiedenen Dialogen ermöglicht. Sie brauchen lediglich die gewünschte Sprache auszuwählen oder, wenn Sie weitere Einträge übersetzen, die Funktion erneut aufzurufen. Es erscheint ein modaler Dialog, der mit den Übersetzungsdialogen innerhalb der Erweiterung Joom!Fish identisch ist. In der Übersetzung können Sie individuell für jedes Menü die einzelnen 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 automatisch erstellt und in der Standardkonfiguration werden auch alle Parameter direkt übernommen. Sollte die direkte Übersetzung nicht für Ihre gewünschte Komponente konfiguriert sein, können Sie dies in dem Administrationsmodul anpassen oder einfach den zentralen Übersetzungsdialog (Komponenten | Joom!Fish | Übersetzung) nutzen. In diesem Dialog müssen Sie für die Übersicht der verfügbaren Übersetzung die gewünschte Zielsprache und eine Referenz zu einem Inhalt auswählen. Sie erhalten dann eine Liste aller verfügbaren Originale mit den entsprechenden Übersetzungen angeboten. Die Übersetzungen sind dabei primär mit einem Feld und den Zusatzinformationen über Ihren Status und der letzten

www.phpmagazin.de


Web

Joomla! und Joom!Fish

Bearbeitung dargestellt. Wenn sich z. B. Änderungen am Original ergeben, wird dies hier mit einem gelben Symbol dargestellt. In unserem Fall sind alle Übersetzungen 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 Standard-Template von Joomla! betrachten, werden neben der Suche (rechts oben) die beiden Flaggen aus der Sprachkonfiguration dargestellt. Mit einem einfachen 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 werden 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öffentlichte Übersetzung nicht gleich den Ausschluss des Inhalts (wie in unserem Fall des Menüeintrags) bedeuten soll. Für die Menüs ist es mit einer speziellen Ergänzung möglich, für jede Sprache individuelle Menübäume aufzubauen und zu pflegen. Die Übersetzung von Modulen wie den aktuellen Nachrichten (Latest News) erfolgt grundsätzlich auf die gleiche Art und Weise. Meist sind bei diesen Inhalten die Übersetzungen mithilfe des Joom!Fish-Dialogs Übersetzungen am schnellsten und effektivsten durchgefü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 Frontend Eines der sehr interessanten Features von Joomla! ist die Bearbeitung von Inhalten über das Frontend, also der Webseite. Einem Anwender, der nicht mit der gesamten Komplexität der Administration verwirrt werden soll, können Sie auf diese Art und Weise eine Möglichkeit geben, einfach und direkt innerhalb der Webseite zu arbeiten. Für diesen Zweck benötigt der Anwender lediglich einen Zugang

www.phpmagazin.de

zur Webseite und die entsprechenden Rechte in der Benutzerverwaltung, z. B. die Rechte des Publishers für das Erstellen und Veröffentlichen von neuen Artikeln. Joom!Fish unterstützt diese Möglichkeit, in dem auch Übersetzungen 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 Arbeit und die Pflege der Daten. Grundsätzlich 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 Menu, sofern es noch nicht übersetzt ist) auf der linken Seite können Sie einen neuen Artikel erstellen. Sie erhalten einen Dialog mit Editor und ein paar ausgewählten 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 Englisch, wobei der erste Artikel in Deutsch geschrieben ist. Ein Hinweis sagt „There is no translation available“, was uns natü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.

Fazit Der Aufbau oder die Umstellung einer mit Joomla! erstellten Webseite auf mehrsprachige Inhalte erfordert heute keine Kopie der Datenbanken oder auch komplexe Einarbeitung mehr. Die existierende Lösung auf Basis der Erweiterung Joom!Fish bietet für den Einstieg – aber auch für komplexere Anforderungen – alle Funktionen. Mit ein wenig Vorbereitung und Planung vor dem Start können Sie sich sehr einfach viele Kopfschmerzen 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.

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

Alex Kempkens Alex Kempkens ist seit 2004 Mitglied des Mambo/Joomla!-Core-Teams und arbeitet u. a. in den Bereichen der Eventorganisation 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.

PHP Magazin 3.2009

97


Joom!Fish  

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

Advertisement
Read more
Read more
Similar to
Popular now
Just for you