Teil 1. Mehrsprachiger Seitenbaum – WordPress Setup in mehreren Sprachen
Kategorie: Web Projektentwicklung
Denn Anfang der Reihe Mehrsprachige Websites mit WordPress als CMS macht die wohl einfachste wenn auch problematischste Lösung.
Die Idee ist naheliegend. Oftmals wird die Webseite nicht von vornherein zwei- bzw. mehrsprachig geplant, sondern die Entwicklungen führen dazu eine weitere Sprachversion hinzuzufügen.
Um nicht eine Seite auch in Deutsch nochmals aufbauen zu müssen und die Linkstruktur der Seite zu erhalten, ist es sinnvoll die neue Sprachversion zur bestehenden Seite einfach hinzuzufügen.
WordPress Seitenbaum mehrsprachig machen
Also einfach die Seitenstruktur um eine weitere Sprache ergänzen. Sie legen dazu einfach eine Hauptseite mit dem Namen „EN“ an und ordnen die Seiten, die sie auf der Sprachversion anbieten wollen dieser Seite unter.
Auf der Deutschen Seite wird die Page „EN“ nicht in die Navigation eingebunden. Stattdessen gibt es im Header oder wo gewünscht ein kleines Fahnenbildchen mit dem Link zur Seite „/en/“. Idealerweise verwendet man das Standard Feature „Menüs“ für die Einbettung der Navigation – damit kann man am einfachsten ein Menü in gewünschter Ordnung und mit den gewünschten Seiten zusammenstellen.
Möchte man es gründlich angehen, so empfiehlt es sich verschiedene Theme Templates zu kopieren und als Sprach-Templates zu duplizieren. Typische Anwendung ist zum Beispiel das Anlegen eines englischen Headers, in den sowohl der Verification Code für die Webmaster Tools, als auch statische englische Meta Tags für die Startseite der EN-Version platziert werden können.
<?php include 'header-en.php'; ?>
Durch die Lokalisierung mittels .po und .mo Sprachdateien im Verzeichnis /wp-content/languages/ können noch verschiedene Begriffe in den weiteren Template Themen Dateien übersetzt werden. Gibt es zum Beispiel Posts und Kommentare, so können die allgemeinen Textbausteine wie „Kommentar“ oder der Button „Abschicken“ mittels .po Datei automatisch übersetzt werden.
Die Vorteile:
- Ihnen steht das volle Spektrum an Plugins, Themes, etc. zur Verfügung. Es gibt keine Einschränkungen im Einsatz dieser Erweiterungen für WordPress.
- Sie haben ein System für alle Sprachversionen und müssen nicht mehrfach Wartungsarbeiten bzw. Updates durchführen.
- Aus Kundensicht ist es der einfachste Weg das bereits bekannte weiterzuführen und einfach zu ergänzen.
Die Nachteile:
- Ihre Sitemap enthält mit dieser Methode nun sowohl die deutsche, als auch die englische Sprachversionen der Seiten. Sprachenmix.
- Es gibt keine direkte Beziehung (Datenbank) zwischen den deutschen und den englischen Inhalten.
- Die Sprachversion liegt somit als Unterverzeichnis in der deutschen Sprachversion und kann bei vielen Verzeichnissen und Katalogen nicht eingetragen werden bzw. zum Linkaufbau eingesetzt werden, da Verzeichnisse nur Subdomains bzw. Domains erlauben.
- Geht es um die Ergänzung einer Sprachversion ist diese Variante möglich, ab mehreren Sprachversionen wird die Lösung jedoch unübersichtlich.
- Vorallem beim Einsatz von Artikeln (Posts) und Kategorien (Categories) kann es durchaus zu einem Durcheinander kommen. Bei Widgets müssen dann englische Kategorien auf den deutschen Seiten ausgeschlossen werden und umgekehrt.
Ideen & Tricks:
- In den meisten Sitemap Plugins können Seiten ausgeschlossen werden, bzw. manuell erzeugt werden. Handelt es sich um eine Seite, die nicht täglich neue Inhalte produziert, sondern mehr als Seite mit relativ statischen Inhalten gedacht ist, kann die Sitemap pro Sprachversion erzeugt und abgelegt werden.
- Durch den Einsatz der Custom Fields könnte man ein Feld für Artikel hinzufügen, das den „slug“ der englischen Variante des Textes enthält. So kann beim Aufbau der Seite durch abfragen des Custom Fields die Link der englischen Version ausgelesen werden und im Language Switch platziert werden.
- Mittels passender Sprach-TLD kann ein 302 Redirect gesetzt werden, die in Verzeichnisse eingetragen werden kann und für die separat und in der jeweiligen Sprachen per Linkbuilding aufgebaut werden kann. Ein 302 Redirect gibt den Inhalt einer Seite an die Domain die redirected weiter, somit entsteht auch die Chance mit der Redirect in die SERPS zu kommen. (Nicht empfehlenswert!)
- In den Google Webmaster Tools kann ein Verzeichnis mittel Lokalisierung einem Sprachraum zugewiesen werden. Somit teilt man Google mit, dass es sich zum Beispiel beim Verzeichnis /en/ um Inhalte für die englische Sprache handelt. Bei einer .at TopLevel Domain nimmt Google jedoch leider automatisch an, dass es sich generell nur um die Geolocation Deutsch – Österreich handelt.
« Einleitung – Mehrsprachige WordPress Setups
» Weiter zu Teil 2. Mehrsprachigkeit Plugins – WPML, Xili-Language, Polylang od. qTranslate
4 Antworten zu “Teil 1. Mehrsprachiger Seitenbaum – WordPress Setup in mehreren Sprachen”
Schreibe einen Kommentar
Bei allen mit * gekennzeichneten Links handelt es sich um so genannte Affiliate-Links, das heißt, dass aufgezeichnet wird, dass sie die Empfehlung oder das Plugin hier gefunden haben. Bei einem Kauf erhält der Betreiber der Webseite eine Mittlerprovision vom Anbieter der Software dafür erstattet, ihren Kosten erhöhen sich dadurch nicht. Generell spreche ich auch nur Empfehlungen für Produkte aus, die ich selbst bei Kunden oder eigenen Projekten im Einsatz habe.
Vielen Dank für den interessanten Artikel. Ich habe eine Webseite für einen Freund erstellt, der ein Bauunternehmen hat (siehe: http://any-deco.fr/). Die Webseite soll zweisprachig (französisch-englisch) sein, da damit auch englischsprachige KundInnen gewonnen werden sollen. Da der gesamte Inhalt übersetzt wird, schien mir die Idee mit der doppelten Navigation verlockend. Ich habe also ein zweites Menü, Navigation-En eingefügt, bin danach aber mit meinem WordPress-Latein am Ende. Was muss ich tun, damit ich eine doppelte Struktur habe, also einmal any-deco.fr auf Französisch und einmal any-deco.fr/En, am Besten mit einen Button auf der Startseite „any-deco.fr“ verlinkt? Gibt es eine andere, bessere Lösung?
Hallo Karin,
ja, das mit dem Seitenbaum auf Englisch passt ja schon einmal. Die Startseite der englischen Seite ist damit „deineseite.fr/en/“. Was es jetzt noch zu tun gibt ist die Navigation anzupassen.
Dafür hast du mehrere Möglichkeiten:
1.) Du passt im Theme die Funktion an, wo das Menü geladen wird.
2.) Du erstellst ein Page-Template für die englischen Seiten
3.) Du bindest die Navigation nicht über die Menu Locations, sondern über ein Widget ein.
Hier die schnellste Lösung (1.) dafür:
Im Header deines Themes gibt es irgendwo den Aufruf „“ Man könnte jetzt einfach hergeben und festlegen,
dass sowohl auf der Hauptseite „/en/“ als auch auf den unter „/en/“ eingeordneten Seiten zB „/en/about-us/“ eine andere Navigation geladen wird.
Das ginge zum Beispiel mit diesem Codeschnipsel:
Zunächst öffnest du die functions.php und fügst eine zweite Location für ein Menü ein.
if(function_exists("register_nav_menu") ){
register_nav_menu('primary', __('Menu'));
register_nav_menu('secondary', __('Menu'));
}else {}
Danach öffnest du die header.php und baust die Weiche ein, wann die englische Navigation angezeigt werden soll und wann die französische Navi.
post_parent=='ID von /en/')) {
wp_nav_menu( array('theme_location' => 'secondary', ....));
} else {
wp_nav_menu( array('theme_location' => 'primary', ....));
?>
Danach gehst du auf DESIGN > MENÜS und legst die englische Navigation an und legst über POSITION VERWALTEN fest, dass die Navi FR in primary (oberste) und die Nvai EN in (unterste) Position geladen wird. Damit sollte immer dann, wenn die Seite …/en/ oder eine Unterseite von /en/ geladen wird, auch die englische Navi geladen werden. Diese Weiche kannst du auch für weitere Sprachversionen erweitern – dazu zB eine „third“ Position in functions definieren und die IF/ELSE weiche um eine ELSEIF erweitern.
Da du die Seite mit keinem eigenen Theme betreibst, sondern mit dem Theme „TwentyThirteen“ würd ich dir raten ein ChildTheme anzulegen, damit deine Anpassung nicht beim nächsten Update wieder weg sind. (hier die Infos zum Thema Child Theme >> https://codex.wordpress.org/Child_Themes)
Ist dir das zu kompliziert, würd ich dir dringend zu einem Plugin raten, dass die Mehrsprachigkeit deiner Seite ermöglicht, da es sich bei dieser Lösung „eigentlich“ um einen Workaround handelt.
Hoffe das hilft dir mal fürs Erste weiter – melde dich sonst gerne einfach per Mail bei mir.
LG Markus
Hi, irgendwie funktioniert das aber nicht… mit den Codeänderungen in den beiden Dateien. Ich verwende logischerweise auch ein Childtheme, keine Ahnung. Wo fügt man denn die Codeschnipsel genau ein?
Gruss Christiane
Hallo Christiane,
jeweils in den Dateien der Child-Themas also header.php & functions.php
Wenn das Theme korrekt gescripted wurde, dann sollte es diese Standard
Files auch bei dir geben.
LG Markus