WordPress: Mehrsprachige Websites mit Polylang

Websites mehrsprachig anzulegen ist heute ein Muss, wenn man international aufgestellt sein möchte. Es gibt dafür verschiedene Möglichkeiten und Wege dies mit einer WordPress-Installation zu realisieren.

Zum einen kann man natürlich alle Texte auf unterschiedlichen Websites bzw. WordPress-Installationen einpflegen und auch das kann in manchen Situationen durchaus Sinn machen. Ein dafür denkbares Szenario wäre der Fall, wenn die Seiten signifikant von einander abweichen. Wenn es aber eine sehr hohe Übereinstimmung gibt, ist es sinnvoll alle Inhalte aus einer einzigen WordPress-Installation heraus zu verwalten. Das gilt durchaus auch für mehr als zwei Sprachen. Im Folgenden werde ich von einer zweisprachigen Installation ausgehen.

Eines der möglichen Plugins, die man für diesen Zweck nehmen kann ist Polylang.

Das Plugin ist schon seit 2011 verfügbar und wurde seit dem kontinuierlich weiter entwickelt und gehört damit zu den Urgesteinen der WordPress-Plugins. Zudem ist Polylang mit allen wichtigen SEO-Plugins kompatibel und ergänzt den Code um html hreflang sowie opengraph-Tags.

Installation und Einrichten

Die Installation von Polylang verläuft wie bei allen WordPress-Plugins unproblematisch. Nach der Aktivierung des Plugins hat man einen neuen Menüpunkt “Sprachen”. Hier findet man alle Einstellungsmöglichkeiten. Zum einen kann man hier die gewünschten Sprachen auswählen, die URL-Struktur für übersetzte Seiten und Beiträge und man findet auch einen Unterpunkt zum Übersetzen von Zeichenketten.

Einstellungsmöglichkeiten bei Polylang

Sprachen

Unmittelbar nach der Aktivierung des Plugins muss man die zu verwendenden Sprachen auswählen. Beim Menüpunkt Sprachen/Sprachen kann man aus über 100 verschiedenen Sprachen auswählen. Wichtig ist hierbei, dass man nicht nur die Fremdsprache(n) auswählt, sondern auch eine Standardsprache. Dieser Standardsprache kann man alle bestehenden Seiten und Beiträge zuweisen. Danach beginnt man damit die fremdsprachigen Beiträge/Seiten zuzuordnen. Wie das genau geht, werde ich weiter unten erläutern.

URL

Zunächst einmal sollte man jedoch festlegen wie die URL der fremdsprachigen Beiträge und Seiten lauten soll.

URL-Einstellungen von Polylang

Standardmäßig eingestellt und ohne weiteren Aufwand möglich ist die Option die Sprache in der URL anzeigen zu lassen

https://www.websitename.de/en/my-post/

wobei die URL des Originalbeitrags in der Standardsprache so lauten würde:

https://www.websitename.de/mein-beitrag/

Man kann aber auch problemlos komplett auf eine Anzeige der Sprache in der URL verzichten

https://www.websitename.de/my-post/

Es ist aber auch möglich eine Subdomain oder sogar eine andere Domain zu nutzen

https://www.en.websitename.de/my-post/

https://www.websitename.com/my-post/

Dafür muss die (Sub-)Domain auf die WordPress-Installation zeigen. Wie das genau funktioniert, darüber informiert man sich am besten bei seinem Provider. Im Fall von all-inkl geht das über das Login im KAS-Bereich, wo man Domains und Subdomains auf andere Ziele umleiten kann.

Zeichenketten

Mit der Übersetzung der selbst erstellten Inhalte, also der Beiträge und Seiten, aber auch der Kategorien und Schlagwörter, ist es allerdings nicht getan, denn viele Zeichenketten werden von WordPress selber ausgegeben, wie zum Beispiel den Titel der Website oder aber das Datumsformat. Polylang bietet die Möglichkeit auch diese Texte zu übersetzen. Hierbei ist es in der Praxis besonders hilfreich, dass man an dieser Stelle auch die Inhalte von Widgets übersetzen kann. So kann man an dieser Stelle auf ein zusätzliches Plugin verzichten, das einem das gezielte Platzieren von Widgets ermöglichen würde.

Beiträge und Seiten übersetzen

Um Beiträge und Seiten zu übersetzen, gibt es verschiedene Möglichkeiten. Zum einen kann man aus der Beitragsübersicht heraus mit einem Klick auf das Plus-Symbol direkt einen neuen Beitrag erstellen, der dann der Fremdsprache und diesem speziellen Beitrag zugeordnet ist.

Eine Übersetzung für einen Beitrag anlegen

Man kann aber auch aus dem Bearbeitungs-Modus eines einzelnen Beitrags eine Übersetzung anlegen. Dafür klickt man im Bearbeitungs-Modul auf das Plus-Symbol.

Sprachen-Modul

Genau so gut kann man aber auch einen neuen Beitrag anlegen und dann dort im Sprachen-Modul die gewünschte Sprache einstellen und auch den passenden Beitrag zuordnen.

Um eine Übersetzung einem bereits bestehenden Beitrag zuzuordnen, muss man lediglich einen Titel in das Textfeld eingeben und dann auf das Plus-Zeichen klicken. Falls es schon Übersetzungen gibt, also fremdsprachige Beiträge, die aber noch keinem Beitrag in der Ursprungssprache zugeordnet wurden, so werden diese in der Auswahl angezeigt.

Sprachenschalter und Menü

Damit die Besucher einer Website nun auch die übersetzten Beiträge bzw. Seiten finden, sollte man den sogenannten Sprachenschalter einbinden und auch die Menüs entsprechend anpassen.

Sprachumschalter einfügen

Den Sprachumschalter findet man entweder als Widget oder als Menüpunkt.

Sowohl beim Widget wie auch beim Menüpunkt kann man folgende Optionen, die die Darstellung beeinflussen auswählen:

  • Sprachen als Auswahlbox darstellen.
  • Die Darstellung als Text und/oder als Fahne.
  • Sie können außerdem auswählen, ob der Sprachenschalter immer zur Startseite verlinkt sein soll oder zur jeweiligen Übersetzung.
  • Zudem können Sie die aktuell angezeigte Sprache verstecken und die Option auswählen, dass nur die Sprachen angezeigt werden für die wirklich Übersetzungen vorliegen.
Sprachumschalter-Widget

Gibt es einmal keine Übersetzung aus der Standardsprache, leitet der Sprachumschalter – unabhängig von der Optionsauswahl – auf die Startseite der Fremdsprache.

Menü einfügen

Damit auf den fremdsprachigen Seiten auch die Menüs in der passenden Sprache angezeigt wird, müssen diese separat erstellt werden. Die Menüs mit den fremdsprachigen Menüpunkten müssen dann der entsprechenden Position zugeordnet werden.

Menüs platzieren

Fortgeschrittene Anpassungen

Flaggen individuell platzieren

Template-Tag

Obwohl das Platzieren des Sprachumschalters per Widget oder Menüeintrag sehr komfortabel ist und viele Möglichkeiten bietet, hat man zusätzlich die Möglichkeit den Sprachumschalter “manuell” – also per Code zu platzieren.

Zum einen geht es mit dem Template-Tag pll_the_languages:

Eine einfache Implementierung in einem Theme-Template sähe so aus:

<ul><?php pll_the_languages();?></ul>

Aber selbstverständlich kann man dem Template Tag dann noch einige Parameter festlegen, u. a. die folgenden:

  • 'dropdown'=> zeigt eine Liste an beim Wert 0 und eine Auswahl-Box beim Wert 1 (Standard: 0)
  • 'show_names' => zeigt mit dem Wert 1 die Sprachnamen an (Standard: 1)
  • 'display_names_as' => entweder ‘name’ oder ‘slug’ (Standard ist ‘name’)
  • show_flags' => zeigt mit dem Wert 1 die Flaggen an (Standard ist 0)
  • ‘hide_if_empty’ => versteckt mit dem Wert 1 die Sprachen ohne Beiträge oder Seiten (Standard ist 1)
  • 'force_home' => erzwingt mit dem Wert 1 einen Link zur Startseite (Standard ist 0)
  • 'hide_if_no_translation' => versteckt mit dem Wert 1 die Sprache, wenn es für den aufgerufenen Beitrag bzw. die angezeigte Seite keine Übersetzung gibt (Standard ist 0)
  • 'hide_current' => versteckt mit dem Wert 1 die aktuell angezeigte Sprache (Standard: 0)
  • 'post_id' => verlinkt zu der Übersetzung des Beitrags mit der angegebenen ID (Standard ist null)

So kann man z. B. den Sprachumschalter so anzeigen lassen, dass nur die Flaggen ohne Namen angezeigt werden

<ul>
<?php pll_the_languages( array( 'show_flags' => 1,'show_names' => 0 ) ); ?>
</ul>

Man hat sogar die Möglichkeit sich einen eigenen Sprachumschalter zu definieren

$translations = pll_the_languages( array( 'raw' => 1 ) );

Nähere Informationen findet man in der Dokumentation von Polylang.

Shortcode

Man kann aber auch einen eigenen Shortcode erstellen, den man dann an gewünschter Stelle platzieren kann.

Damit der Shortcode funktioniert, muss dieser in der functions.php definiert werden, zum Beispiel so:

function polylanguage_shortcode() {
ob_start();
pll_the_languages(array('show_flags'=>1,'show_names'=>0));
$flags = ob_get_clean();
return $flags;
}
add_shortcode( 'polylanguage', 'polylanguage_shortcode' );

Quelle: GitHubGist

Somit kann man den Shortcode [polylanguage] an gewünschter Stelle einfügen und kann somit den Sprachumschalter auch außerhalb eines Menüs oder Widgetbereiches platzieren.

Eigene Flaggen nutzen

Auch das Nutzen von eigenen Flaggen ist problemlos möglich. Dafür muss man die eigenen Flaggen bzw. Grafiken im Unterordner “/wp-content/polylang/” platzieren und die URL-Einstellungen erneut speichern.

Pro-Version

Das Plugin Polylang ist auch schon in der kostenfreien Version sehr umfangreich und in vielen Fällen ausreichend, aber es gibt auch eine Pro-Version. Gerade für umfangreiche Seiten kann es sich lohnen die Pro-Version zu erwerben, denn die dort drin enthaltenen Features erleichtern das Arbeiten mit den Übersetzungen.

Inhalte duplizieren

Mit der Pro-Version können z. B. übersetzte Beiträge, die gleiche URL haben wie der Beitrag in der Originalsprache. Man kann zudem Beiträge und Seiten per Klick duplizieren, so dass übersetzte Seiten schneller erstellt werden können.

Inhalte synchronisieren

Außerdem kann man die Synchronisierung verschiedener Daten vornehmen lassen. Das ermöglicht, dass Übersetzungen automatisch die gleichen Metainhalte (u. a. Datum der Veröffentlichung, benutzerdefinierte Felder, Elternseite, Beitragsformat, Beitragsbild) erhalten.

Synchronisierung verschiedener Inhalte für die Übersetzungen

Woocommerce-Unterstützung

Es gibt zudem noch Polylang-Versionen speziell für den Einsatz mit Woocommerce, eine Basisversion und eine Proversion (beide kostenpflichtig). Damit kann man Shop-Seiten, Produkte und Shop-Kategorien übersetzen. Der Lagerberbestand und Preise werden automatisch synchronisiert. Und es ermöglicht einem sogar, dass Kunden die automatisierten E-Mails von Woocommerce in ihrer Sprache erhalten.

Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienst­leistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.

Verwandte Beiträge:

3 Kommentare

  1. Vielen Dank für diesen Beitrag. Er kommt genau zur rechten Zeit, denn ich überlege mir, ob es sinnvoll wäre, meine Site auch in Englisch anzubieten.

  2. Vielen herzlichen Dank für diesen informativen Beitrag!
    Allerdings stellt sich mir immer noch die Frage, wie ich die Startseite meiner Fremdsprache festlegen kann. Da zeigt es mir immer “Page not found” an, wenn ich auf die Fremdsprachen Flagge im Menü klicke. :/

    Liebe Grüße!

Kommentare sind geschlossen.