Step by step: Mehrsprachige WordPress-Multisite

Ich verweise für die Installation des Multisite Language Switcher immer gern auf den Artikel Create A Network im Codex, aber vielleicht tue ich mir nicht wirklich einen Gefallen mit dieser Vorgehensweise. Der Text dort ist vollgespickt mit technischen Details, die allesamt natürlich wichtig und interessant sind, nur verliert sich der normale Anwender möglicherweise schnell in der Masse der Informationen.

Eine WordPress Multisite läßt sich lokal nicht bzw. nur sehr umständlich installieren.

Bei einigen Fehlern, die sich in meinen Tests ergaben, konnte ich nicht auch vollständig ausschließen, dass sie eventuell genau durch dieses Manko hervorgerufen wurden, was leider die Installation einer Testumgebung auf einem meiner Webserver für mich unumgänglich machte.

Andererseits ist dies eine prima Gelegenheit für die folgende Anleitung.

In der vorher schon genannten englischsprachigen Anleitung wird auf die verschieden Möglichkeiten verwiesen, wie eine Multisite aufgesetzt werden kann, was ich mir hier erspare, weil ich eine mehrsprachige Website mit WordPress einsetzen möchte, in der die einzelnen Übersetzungen in Unterverzeichnissen residieren.

Zu diesem Zeitpunkt ist es für Websites, welche bereits länger mit WordPress laufen, nicht möglich eine derartige Installation durchzuführen. Hier bleibt nur der Modus, die ganze Geschichte über Subdomains oder mit einem entsprechenden Plugin mit verschiedenen Domains zu lösen.

Step 1

Der erste Schritt besteht darin, dass erst einmal eine ganz normale WordPress-Installation durchgeführt wird.

Es gibt jedoch bereits hier eine weitere Einschränkung, weil für eine WordPress-Multisite keine Installation in einem Unterverzeichnis möglich ist.

Ihr holt euch – wie immer – die aktuellste Installation eurer bevorzugten Quelle (beispielsweise direkt von der WordPress-Download-Seite), packt die Installation aus und übertragt diese dann mittels FTP oder SCP (je nachdem, was euer Hoster hier vorgibt) in das DocumentRoot eures Webservers. Danach muss die Datei wp-config-sample.php nach wp-config.php kopiert und bearbeitet werden. Hier tragt ihr einfach nur die Verbindungsdaten der Datenbank und einige Sicherheitsschlüssel eurer Wahl ein, speichert diese Datei, öffnet die Hauptseite eures Servers mit dem Browser, füllt die Daten im dort angezeigten Formular aus und klickt dann zum Beenden des ganzen Vorgangs auf den Button unter dem Formular. Und das war’s schon!

Damit nicht bereits hier schon die Show zu Ende ist, hier noch der Link zum Artikel WordPress in 5 Minuten installieren auf der WordPress-Deutschland-Website.

Step 2

Im nächsten Schritt muss das Multisite-Feature in der Konfiguration „erlaubt“ und das Netzwerk in der Administrationsoberfläche installiert werden.

Dafür muss zuerst eine weitere Zeile in die Datei wp-config.php hinzugefügt werden. Die Anweisung

define('WP_ALLOW_MULTISITE', true);

fügt ihr am besten gleich nach der Zeile

define('WP_DEBUG', false);

des Konfigurationsfiles ein und aktiviert so den neuen Menüpunkt Tools -> Network Setup bzw. Werkzeuge -> Netzwerk-Einstellungen, falls ihr die deutsche Version installiert habt. Dieser Menüpunkt erscheint allerdings nur, nachdem ihr euch erneut im Administrationsbereich angemeldet habt. Hier nehmt ihr dann die für euch passenden Einstellungen vor und bestätigt diese durch einen Klick auf den Button unter dem Formular.

Achtet auch darauf, falls ihr der Anleitung hier treu bleiben wollt, dass ihr die Option auswählt, welche die verschiedenen Blogs über Unterverzeichnisse publiziert.

Step 3

Der dritte Schritt sieht einige kleinere Tätigkeiten bzw. Einstellungen vor, welche die grundlegende Installation einer WordPress Multisite abschließen.

Zuerst muss ein neues Unterverzeichnis namens blogs.dir im Verzeichnis wp-content angelegt werden. Zudem muss dieses Verzeichnis auch für den Webserver beschreibbar gemacht werden, was sich auch mit einem FTP-Client bequem bewerkstelligen lässt, indem man das Recht in das Verzeichnis zu schreiben für alle hinzufügt (chmod 777 blogs.dir).

Ist das erledigt muss ein Block mit Anweisungen in die Datei wp-config.php eingefügt werden, welchen man gleich unter der letzten Änderung in diesem File platzieren kann.

Danach muss eine Datei mit dem Namen .htaccess (bei einer Neuinstallation) im Hauptverzeichnis angelegt werden, in die der Code aus dem Block eingefügt wird, der mit 3. nummeriert ist.

Zum Abschließen dieses Steps müsst ihr euch wieder neu in die Administrationsoberfläche einloggen.

Step 4

Im nächsten Schritt werden wir uns die notwendigen Sprachfiles besorgen für unserer mehrsprachigen Multisite einrichten.

Wenn ihr euch fragt, wie ihr am leichtesten an die gettext-Files kommt, die für die Übersetzung notwendig sind: Im SVN von Automattic gibt es das komplette Angebot. Jede Sprache hat dort ihr eigenes Verzeichnis. Für die deutschen Sprachfiles klickt ihr einfach auf de_DE, dann auf tags, auf 3.2 (oder eben die aktuellste Version) und auf messages. Die .po- und .mo-Files ladet ihr einfach auf euren Computer und schickt sie dann in das Verzeichnis /wp-content/languages, welches ihr einfach erstellt, falls es noch nicht vorhanden ist.

Im selben Verzeichnis (des Automattic-Servers), wo ihr die Sprachfiles geladen habt, findet ihr auch Unterverzeichnisse für die Übersetzungen der Standard-Templates. Diese Files gehören in das Verzeichnis languages des Theme-Ordners, also /wp-content/themes/twentyeleven/languages (ausgehend vom DocumentRoot eures Webservers), wenn ihr das neue Thema benutzt.

Für alle weiteren Sprachen geht ihr gleichermaßen vor.

Step 5

Nun können wir endlich die zusätzlichen Blogs einrichten, die für die Inhalte in den verschieden Sprachen zuständig sein werden.

Klickt man in der Administrationsoberfläche oben rechts auf die Begrüßung klappt ein Menü auf, welches den Punkt Network-Admin (bzw. Netzwerkadministrator bei einer deutschen Installation enthält. Nach einem Klick gelangt man in den Bereich, wo sich die Blogs nun endlich anlegen lassen.

Im Menu auf der linken Seite befindet sich der Punkt Sites (oder auch Blogs), unter dem sich der Punkt verbirgt, der uns im Augenblick interessiert. Sind dann endlich alle benötigten Blogs angelegt, gibt es nur drei wichtige Punkte zu beachten:

Jedes Blog muss einzeln im eigenen Dashboard und Einstellungen konfiguriert werden. Bereits die allgemeinen Einstellungen sind hierbei wichtig und hier findet sich auch die Einstellung der Sprache. Wer sich daran stört, dass das primäre Blog im URL im ein /blog vorangestellt wird, kann dies ändern, indem er/sie im Bereich des Netzwerkadmins die Permalink-Struktur des Blog bearbeitet (URL/wp-admin/network/site-settings.php?id=1). Nach dieser Änderung sind die Beispieldaten dieses Blogs nicht mehr erreichbar und sollten gelöscht werden, neue Inhalte werden aber von nun an mit eurer neuen korrekten Adresse ausgeliefert.

Step 6

Optional installiert ihr euch nun den Multisite Language Switcher, um die ganze Sache rund zu machen.

Ich lasse die komplette Installation auf dem Testblog vorerst stehen, sodass ihr das Ergebnis auch direkt sehen könnt. Ich habe zwei zusätzliche Blogs (deutsch und italienisch) angelegt, das primäre Blog als englischsprachige Website so bestehen lassen und für jedes dieser Blogs eine Beispielseite und einen Beispielartikel erstellt. Außerdem habe ich die Standardkategorien geändert und jeweils ein Schlagwort hingefügt.

Das Ganze ist natürlich kein starres Konstrukt, ganz im Gegenteil! An diesem Punkt sind der Fantasie keine Grenzen mehr gesetzt. Der Multisite Language Switcher fügt sich in diese Struktur ohne allzu großen Mehraufwand ein. Ist die grundlegende Konfiguration einmal gemacht, ist der spätere Aufwand kaum spürbar.

Have fun!

44 Gedanken zu „Step by step: Mehrsprachige WordPress-Multisite“

  1. Hallo !

    Vorweg – VIELEN dank für deine mühen !!
    Finde deinen Ansatz absolut richtig – multilanguage sollte im wesentlichen auf CORE elemente zugreifen (dein Ansatz über WP Multiblog) und nicht rein via plugin gemanagt werden.
    dein switcher schaut sehr interessant aus !

    habe eine Frage bez. deines ansatzes:
    wenn ich auf einer multilingualen wordpress installation zB. einen Shop, eine Gallery,… habe und zwischen diesen mittels Sprachauswahl switchen würde – wie würdest du am besten damit umgehen ?
    und: wie würde die Administration hier aussehen – hat jeder blog (pro sprache) eine eigenes admin interface für das plugin automatisch oder müsste man hier in den plugin quellcode eingreifen ?

    thanks,
    matthias

    1. Das kommt natürlich immer auf das jeweilige Plugin an. In der Regel werden sich die Plugins so verhalten, als wenn sie in „normalen“ Installationen aktiviert wurden und man hat maximal den Aufwand, die Plugins mehrfach zu administrieren. In den Code solltest Du nicht eingreifen. Wenn es wirklich ein Problem gibt, ist es besser, mit dem Entwickler Kontakt aufzunehmen und auf das Problem hinzuweisen.

  2. (sorry for not speaking German)

    Hi Dennis,

    This is the plugin I’ve been looking for. As a WPML user, probably like you, I felt it to become very questionable if I should continue using this. I did use the pay version of WPML, but I always felt that it was just not as complete and robust as I would want it to be. Your plugin just made it exactly what I wanted it to be. Love that bbPress works right out of the box as well!

    A few things (as optional plugins?) that would complete your plugin, and I REALLY do not want to sound ungrateful because I really think your plugin rocks;

    – Plugin that allows to duplicate a post or page to „the other language“ (text, media, featured image) which I find very helpful when translating a Post or Page in WPML.

    – Plugin that allows to search for untranslated gettext() items (like WPML provides) helping one to translate untranslated themes and plugins easier.

    – Plugin/Trick/Tool to migrate WPML posts

    If I knew how to create plugins then I’d most certainly would try creating something like that myself – but I’m not that knowledgable about WP. I’d be willing to discuss payment for the work 🙂

  3. @Hans

    Hi! Let me say that I am not yet (I just emailed him about a similar issue) affiliated with the creator in any way. but if he is, for any reason, not up to it, I am looking to solve some of these issues myself. We plan to use this plugin commercially in the near future and require some adjustments, most notably compatibility with the All in One SEO plugin.

    Please, to both of you, let me know how we can work together and/or help each other!

    Alex

  4. I am sorry, it was a different issue caused by some defective modification of the All in one SEO plugin!

    We are currently testing everything and it looks to be working 100% ok!

    Alex

  5. Hi,

    danke für den super Artikel. Ich habe noch ein kleines Problem den Multisite Language Swithcer zum Laufen zu bekommen. Ein Blog ist auf Deutsch eingestellt, der 2. Blog auf Englisch. Trotzdem erhalte ich beim Editieren einer Seite immer die Info „Du solltest wenigstens ein weiteres Blog in einer anderen Sprache anlegen, um einen Mehrwert durch das Plugin zu erhalten!“. Hast Du einen Tip für mich, was ich übersehen habe? Danke!

    Grüße,
    Christoph

    1. @Christoph Möglicherweise hast Du Deinen Blogs verschiedene Admins zugewiesen. Hast Du die aktuellste Version installiert?

      1. Hallo ihr beiden,

        der Fehler tritt auf, wenn du das Plugin „Multisite Language Swithcer“ nur in deiner Hauptseite aktiviert hast. Die Lösung ist, dass du das Plugin Global aktivierst über die Netzwerkverwaltung. Dann funktioniert es auch 🙂

        lg Felix

  6. Hi ,

    vielen Dank fuer diesen schritt fuer schritt . Ich bleibe an schritt 4 haengen .

    Ich wollte Grieschich installierne und Deutsch und franzoesisch .

    Ich verstehe das ich die sprach Deteien installierne muss allerdings ist die vorgehensweise nicht mehr aktuel ( normal ich hab es diese woche installiert und Version 3.4.1 )
    Wenn das klappt kann ich die „general“ einstellungen local einstellen richtig ?

    Ich bekomme unter general setting keine alternative sprache ( twentyten Theme )

    Ich wollte English als allgemeines Dashboard sprache lassen ( die einstellung habe ich gefunden in anderen artikel ) und dann EL und FR , DE installieren .

    Im Moment habe ich nur US Fahne drei mal , ich verstehe wo das problem ist aber nicht wie ich es loesen kann .

    Zudem habe ich gelesen das man den plugin auf allen Seiten installiert … aber dies ist nicht mal eine option in 3.4.1 .

    Vielen Dank fuer ideen

  7. zusatz . Schritte 1,2,3 werden in Version 3.4.1 automatisch gemacht vorrausgesetzt man waehlt die multisite option bei installation . Also habe ich diese nach neu installation nicht gemacht .

  8. @john OK, Dir fehlen noch die Sprachfiles. Wenn sich die Zeichenketten nicht verändert haben, gibt es keine neue Version. Nimm einfach die aktuellste Version, die da ist.

  9. Thanks for that because I know it is not part of the plug in technically .

    Last 2 if I may , I have „network admin “ language files as option now . It worked with the normal .po and .mo . …. should I also add the network po/mo .from Version 3.4

    And maybe a general one you could help me in a few words . The default Theme files are unique per theme or universal ?
    Thanks much appreciated

    1. I would update these files but if you let the old files online it will work as well.

      The files for the default themes are made for them. But if you use a program like poEdit which can use a translation memory they could be useful. But – to be honest – I’ve never tried this out.

  10. sorry little fast , Greek doesn’t have a Flag ( displayed broken link as flag initially now just shows US Flag BUT Posts show „EL“ so correct .)

    I think I have to manually update the flag and whatever else there is as I am working along I gather .

    The Network languages seem to not work by themselves , I can add them „in case“ it is relevant to post or pages language .

    thanks you for your time much appreciated and if I may , …. point all new guys ( like me ) to here !

    Grazie mille

  11. Vielen Dank für Deine Anleitung hat soweit funktioniert.

    Allerdings hab ich bei mir das Plugin „Multilingual Press“ installiert und teste gerade mit dem. Die Features der Pro Version klingen da recht interessant.

  12. Vielen Dank für die tolle Anleitung!
    Gibt es eine Möglichkeit, dies auf einer bestehenden Seite zu aktivieren, ohne Subdomains zu verwenden? Ich habe Step 1-3 durchgeführt, jetzt bekomme ich unter dem Punkt Network Setup nur die Option für Subdomains: „Because your install is not new, the sites in your WordPress network must use sub-domains. The main site in a sub-directory install will need to use a modified permalink structure, potentially breaking existing links.“
    Ich würde allerdings lieber Unterordner domain.com/de/, domain.com/en/ etc. verwenden.

    Danke für deine Hilfe!!

    1. @Mandy Wenn es sich um eine Seite mit einer überschaubaren Anzahl von Artikeln handelt, kannst Du eventuell über einen Export mit anschließenden Neuimport nachdenken.

      1. Danke, so hab ich’s jetzt auch gemacht. 🙂
        Alle Schritte durchgeführt, allerdings sehe ich den neuen Menüpunkt „Sites/Blogs“ nicht in der Admin-Leiste, auch nach erneutem Login nicht.
        Any idea woran das liegen könnte?

      2. Oh, jetzt funktioniert’s. Die wp-config wurde nicht aktualisiert aufm Server, why auch ever.

        Super, danke noch mal für die tolle Anleitung!! Jetzt kann’s los gehen… : )

    1. Eigentlich reicht auch ein Eintrag in der hosts Datei. Unter Windows findet sich die standardmäßig hier: %SystemRoot%\system32\drivers\etc\hosts

      dort einfach ein Eintrag wie folgenden rein:

      127.0.0.1 blog.domain.de
      127.0.0.1 http://www.anderedomain.de

      und dann noch die apache config anpassen. Im Verzeichnis sites-available gibt es für jede Domain eine Datei, in der der Virtuelle Host konfiguriert wird. Pro Domain einer:

      ServerName blog.domain.de
      DocumentRoot /verzeichnis/wo/wp/ist/blog.domain.de/html
      ….

      so kann man auch gleich mehrere Installationen auf einem Rechner lokal testen.

      1. Ich verstehe nicht ganz, worauf Du hinaus willst, Andreas. Hier im Artikel geht es um das Aufsetzen einer Multisite und nicht um das Einrichten mehrerer Einzelinstallationen. Mal ganz abgesehen davon, dass der Post 3 Jahre alt ist… 😉

  13. Danke für die tolle Anleitung, funktioniert soweit alles bis dass nach Erstellung des ersten Sub Blogs und dessen Aufruf nur
    Not Found
    The requested URL /de/wp-admin/ was not found on this server.
    kommt. 🙁

  14. Ich bin selbst drauf gestossen und wollte die Lösung für eventuelle „Sucher“ hinterlassen. 🙂

    In der httpd.conf fehlte ein AllowOverride All bzw. war ein AllowOverride none.

  15. Hi!
    Interessante Anleitung. Leider möchte ich das Plugin wieder deaktiveren und löschen. Doch ich komme seit der Installation nicht mal mehr auf den Blog oder ins Dashboard, sondern erhalte immer die Info „The plugin is only compatible with WordPress Multisite.“
    Über ftp habe ich das Plugin schon vom Server gelöscht, nützt aber nichts. Kann mir da vielleicht jemand weiterhelfen? Das wäre super.
    Danke und beste Grüße

    Nicole

    1. Schau noch einmal nach, ob Du wirklich das Plugin gelöscht hast. Normalerweise ist eine Aktivierung gar nicht möglich, wenn keine Multisite eingerichtet ist.

  16. Hallo,

    geniale Anleitung -danke!

    Ich habe jedoch meine Probleme damit. Multisite Setup hat funktioniert und ich habe nun drei Sites. (deutsch/englisch/ungarisch)
    Ich nehme an, dass der MLS seine Sprachinfos von den Einstellungen jeder Site unter „Allgemein/Sprache der Site“ bezieht. Ohne diese Einstellung geht es ja nicht, oder? (Ich meine mir wäre das Backend 3x in deutsch lieber als en/de/hu, aber das ist kein KO-Kriterium)
    Die deutschen und ungarischen Sprachdateien habe ich schon unter wp-content/languages reinkopiert aber es gibt da noch ein komisches Phänomen:
    Seite in deutsch: Flaggen hu/en (passt ja) aber unter en merkt er sich keine ausgewähte Seite.
    Seite in englisch: Flaggen hu/en (en ist falsch) wieder merkt er sich keine Seite unter en.
    Seite in ungarisch: Flaggen en/en (ein en ist falsch) komischerweise merkt er sich dort aber beide ausgewählten Seiten.

    Ich bin ein wenig verwirrt. Muss ich auch für en eine Sprache unter languages installieren und wenn ja woher bekomme ich das Paket?

    Wie setzte ich die Beschreibungen der Sprachen im MLS? de/hu/en? oder statt en us?

    Wäre super wenn ich dabei ein wenig Hilfe bekommen würde.

    Vielen Dank im Voraus.
    LG Marco

  17. Hallo, wie kann ich denn in der Multisite den language content tag von Standard en-us ändern. In der wp-config.php ist es geändert auch i10.php ebenfalls aber ohne Auswirkungen. In den Spracheinstellungen unter Einstellungen ebenfalls. In der header.php gehts ja nicht. Also wo dann….

    1. @Peter Was genau möchtest Du erreichen? An sich muss keine Einstellung der Sprache in der wp-config.php vorgenommen werden. Das Verändern von Core-Dateien ist zudem auch nicht so ratsam.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert