Multisite Language Switcher 0.1

Nach meinem recht erfolgreichen Speech auf dem Wordcamp 2011 in Mailand war klar, dass der von mir eingeschlagene Weg, WPML aus meinen Blogs zu verbannen und das Multsite-Feature von WordPress zu benutzen, um eine mehrsprachige Website zu betreiben, nicht nur für mich interessant ist. Der einzige Haken bestand darin, dass eines der wichtigsten Merkmale zu implementieren war:

Die Relationen zwischen den mehrsprachigen Artikeln und Seiten sollten mindestens herzustellen sein. In den letzten Tagen hatte ich einige freie Zeit, die ich dann auch sinnvoll für eine Lösung dieses „Problems“ nutzen konnte. Gestern habe ich dann die erste Version des Multisite Language Switcher, welche bereits einen ordentlichen Funktionsumfang besitzt, um mit einer mehrsprachigen Installation durchstarten zu können, ins WordPress-System übertragen.

Ich hoffe nun, dass sich ein paar Interessierte finden lassen, die das Projekt ebenfalls voran bringen wollen, indem sie das Plugin einfach nutzen und mir von eventuellen Probleme berichten, Vorschläge für Verbesserungen machen oder auch Übersetzungen zukommen lassen. Die Sprachfiles für de_DE und it_IT gibt es bereits. Im Ordner languages unterhalb des Plugin-Verzeichnisses befindet sich eine Datei mit dem Namen default.pot, aus der sich die Übersetzungsfiles ableiten lassen.

Wer damit Problem hat, kann mir gerne eine Nachricht zukommen lassen. Ich generiere dann einfach eine entsprechende .po-Datei, die sich beispielsweise mit Poedit bearbeiten lässt. Falls ihr auf euren Blogs über das Plugins schreiben wollt, könnt ihr auch gern einen Trackback zu diesem Artikel schicken, damit ich weiß, wo zu diesem Thema diskutiert wird und wo ich mich gegebenenfalls mit einbringen kann.

Ich werde folgendes noch einmal gesondert in einer entsprechenden Unterseite abhandeln. Bis dahin müssen erst einmal die folgenden Ausführungen ausreichen:

Installation

Das Plugin erwartet, dass es in einer Multisite mit mehren Blogs in verschiedenen Sprachen installiert wird. Wer damit noch nicht soviel anfangen kann, sollte den Artikel Create A Network lesen, welcher eine Vielzahl an Informationen enthält und auch schrittweise durch die Installation führt. Nach dem Download des Multisite Language Switcher muss die geladene Datei im Verzeichnis wp-content/plugins/ eurer WordPress-Installation entpackt werden. Bis zu diesem Punkt unterscheidet sich die Installation des Plugins nicht von der üblichen Vorgehensweise. Die Aktivierung des Plugins kann dann durch den Network-Admin für alle Blogs oder vom Blog-Admin für jedes einzelne Blog vorgenommen werden.

Einstellungen

Die Konfiguration des Plugin (in Einstellungen -> Multisite Language Switcher) ist recht einfach gehalten, muss aber für jedes Blog einmal durchgeführt werden. Dadurch kann zum Beispiel zu jedem Blog in der Beschreibung der native Sprachname festgehalten werden (dies über die Sprachangabe in einer separaten Tabelle zu mappen, erschien mir noch nämlich noch umständlicher).

msls-options

Über die Anzeige kann die Ausgabe gesteuert werden. So kann man im Augenblick zwischen Flagge und Beschreibung, Nur Flagge und Nur Beschreibung wählen. In den restlichen 4 Feldern kann man nach Bedarf Text oder HTML-Code hinzufügen, um die Ausgabe noch weiter anzupassen. Ich selbst zeige eine Flagge mit der nativen Sprachbeschreibung an und gebe dies als Listen-Element aus.

Flaggen sind übrigens bereits im Paket enthalten. Im Unterverzeichnis flags befinden sich Icons im PNG-Format, die von Mark James stammen.

Zuordnungen der Artikel bzw. Seiten herstellen

Begibt man sich dann in die Bearbeitungsoberfläche der Artikel bzw. Seiten sieht man in der Seitenleiste eines bestehenden Posts oder nach dem ersten Abspeichern eines Posts eines neues Element, welches vom Multisite Language Switcher erzeugt wurde.

msls-edit

In der Select-Box gleich neben der entsprechenden Flagge kann man – je nach Typ des Posts – Seiten oder Artikel aus dem jeweiligen „Nachbarblog“ auswählen und so eine Verbindung zwischen den Posts herstellen. Dies muss nur in einem der Posts gemacht werden. Die anderen Blogs werden ebenfalls aktualisiert, wenn sich da etwas ändern sollte.

Ausgabe im Template

Bei diesem Punkt bin ich noch etwas unsicher, wo die Reise hingeht. Eventuell kommen da noch ein paar Hinweise aus der Community, wo sich das Plugin automatisch einhängen soll, beispielsweise als Widget in der Sidebar, unter dem Content usw. Im Augenblick besteht nur die Möglichkeit die Ausgabe im Code des Themas selbst einzubauen. Ich selbst habe dies in hier im Blog so gelöst, indem ich die Datei header.php folgenden Code-Schnipsel eingebaut habe:

<?php if (function_exists("the_msls")) the_msls(); ?>

Have fun!

119 Gedanken zu „Multisite Language Switcher 0.1“

  1. Ich finde es schöner, wenn man für jede Sprache tatsächlich eine eigene Seite aufbaut.

    Solche Switcher sind mir suspekt. Da würde ich bestimmt irgendwann den überblick verlieren.

  2. @Stefan Ich hab das Gefühl, dass Du Dir die Lösung nicht genau angesehen bzw. den Text nur überflogen hast.

    Das Blog hier beispielsweise ist eine Multsite Installation. Für jede Sprache ist ein Blog aufgesetzt. Der Multisite Language Switcher verwaltet lediglich die Beziehungen zwischen den Übersetzugen …

  3. Ein sehr praktisches System. Werd ich mir für mein aktuelles Projekt mal merken. Wenn ich dran denke, berichte ich über meine Erfahrungen! Danke für den Artikel!

  4. Wir testen gerade den Multi-site switcher für die Website. Website wird mit networkmode in zwei Blogs betrieben. 1. „Root“ für die Deutsche Variante und 2. Unterverzeichnis „EN“ für die Englische Variante. Habe aber das Problem das das Plugin nur „ganz richtig“ funktioniert wenn jede Sprache in einem Unterverzeichnis angelegt ist. d. h. es gibt dann „Root-Verzeichnis“, DE-Verzeichnis und EN-Verzeichnis. Jetzt muß man mit einer Weiterleitung arbeiten. Gibt es eine Mögichkeit dass das Plugin auch das „Rootverzeichnis“ akzeptiert und trotzdem ohne Einschränkungen arbeiten. Derzeit kann man es zwar verwenden doch wenn man z. B. einmal von Deutsch auf English switches ist die Flagge weg und man kann nicht mehr zurückschalten. Wäre schön wenn das trotzdem funktioniert.

  5. @Martin Danke für Deinen Kommentar. Ich gehe davon aus, dass Du aktuelle Version benutzt, richtig? Ich habe eine ähnliche Konfiguration in diesem Blog hier zu laufen: Deutsch im Root und Italienisch im Unterverzeichnis.

    Eine Einschränkung der aktuellen Versionen ist, dass man jedes Blog im Netzwerk konfigurieren muss. Ich nehme an, dass das bei Deiner englischen Version noch nicht gemacht ist. Kannst Du das mal prüfen?

  6. Habe den Php-Code im Header untergebracht, sodass er oben im Template des Themes angezeigt wird. Funktioniert OK.
    Wenn du sagst, das man jeden Blog im Netzwerk konfigurieren muss, meinst du damit das Plugin selbst, oder was genau müßte ich noch konfigurieren? Wie gesagt Plugin funktioniert gut nur der switch von Deutsch (Root) auf English (Unterverzeichnis) funktioniert nur einmal, dann ist oben die Flagge weg und man kann nicht mehr auf Deutsch zurück „switchen“. Wenn das noch kappen würde dann wäre es der Hammer, denn das Plugin ist super.

    Vielleicht gibst du mir noch einen Tipp was du mit jedes Blog im Netzwerk konfigurieren genau meinst. Danke

  7. @Martin Ja, ich meine die Einstellungen des Plugin selbst. Im Dashboard der englischen Version in Settings > Multisite Language Switcher kannst Du die Konfiguration abspeichern. In Deinem Fall gelangst Du am einfachsten über /en/wp-admin/options-general.php?page=MslsAdmin dorthin.

    Im Moment ist das wohl noch nicht so klar, weil sich das Plugin nie darüber beschwert, wenn keine Konfiguration vorliegt. Das wird sich in der nächsten Version aber schon ändern.

    Ich habe mir die Seite eben mal angesehen, die Du mit verlinkt hast. Die Einstellungen sind möglicherweise nicht das Problem. Benutzt Du für beide Blogs das selbe Thema? Falls nicht, wäre im englischen Thema noch die Änderung zu machen, die Du in dem anderen Thema gemacht hast.

  8. Benutze für beide Blogs das selbe Theme. Wenn ich im Englischen Blog einen Text eingebe (Text/HTML before the list) dann wird mir dieser sogar nach dem Umschalten angezeigt, aber die Flagge ist weg. Komisch. Ich habe eigentlich beide Plugins eingestellt. Müsste funktionieren. Es funktioniert auch alles solange man jeden Blog in einem Unterverzeichnis hat. Nur mit dem Blog im (Root) klappte es nicht. Kann es mit der Funktion zusammenhängen? Findet er da den Pfad zurück in den root nicht mehr wenn er im Unterverzeichnis ist?

  9. ok, die FUNKTION (php insert für den Header) hat er jetzt hier gelöscht, aber ich hoffe du weist was ich mit dem Ausdruck (Funktion) meine. Der Code-Schnipsel für den Header meine ich

  10. Ich glaube, da gibt es ein anderes Problem. Vielleicht lässt sich das ja herausfinden. Hast Du vielleicht für den Admin 2 Blogs auf Deutsch und eines auf Englisch eingerichtet? Das kann durchaus ein Problem darstellen. Es gibt da mehrere Möglichkeiten das zu umgehen. Beispielsweise kann man hier auch mit einem zusätzlichen Blog-Admin arbeiten … am besten ist es, wenn Du Dich per Mail bei mir meldest. Vielleicht kannst Du mir die Konfiguration da noch etwas genauer erklären und musst hier keine Einzelheiten preisgeben.

  11. Hi Dennis

    Erstmal möchte ich mich bedanken für dieses Super Plugin 🙂 Installation ist selbstredend und Konfiguration wohl eigentlich auch. Trotzdem hab ich folgendes Problem:
    Ich habe bei mir lokal auf dem Rechner eine Multisite installiert, dann dein Plugin. Im Root-Verzeichnis hab ich die deutsche Version, englische läuft dann über „…/en“. Jetzt wird mir aber im Admin-Bereich immer nur die englische, bzw. amerikanische Flag angezeigt. Wo kann ich einstellen, das ich die deutsche Flag sehe, wenn ich im englischen Blog, bzw. Seitenverwaltung bin?

    Für allfällige Hilfe bedanke ich mich schon mal im Voraus!

    Liebe Grüsse aus der Schweiz

    Tanja

    1. Ich glaube, dass ich da noch etwas nacharbeiten muss, um das etwas klarer herauszustellen. Das Plugin sucht nach allen Blogs, die dem Admin des aktuellen Blogs zugeordnet sind. Es ist beim Einrichten bereits darauf zu zu achten, dass immer die gleiche E-Mail verwendet wird. Man kann das hinterher aber auch in der Konfiguration einstellen. Das ist nur etwas hakeliger.

  12. Hi Dennis

    Ich habe überall die gleiche Email-Adresse eingetragen.
    Ich konnte es jetzt aber umgehen, in dem ich nochmals alles neu installiert habe und 2 neue Blogs hinzugefügt hab mit den Unterverzeichnissen en und de. So klappt es auch ohne Probleme.

    Diese Lösung ist für mich in Ordnung, somit kann ich trotzdem dein Plugin benutzen 🙂

    Danke für deine Antwort!

    Liebe Grüsse
    Tanja

  13. Hi Dennis,

    erstmal vielen Dank für das tolle Plugin. Habe es auf http://www.sitd.de im Einsatz und bin bis jetzt sehr zufrieden.

    Allerdings würde ich mir noch eine Funktion wünschen, geplante Artkel schon verknüpfen zu können. Ist das machbar bzw. geplant?

    1. Ich hab das noch nicht getestet, allerdings sehe ich keinen Grund, warum das nicht funktionieren sollte. Gib mir doch einfach Bescheid, wenn Du das ausprobiert hast. 😉

  14. Hi Dennis,

    Is there a way to connect the blog sections among the sites?

    I mean linking the ‚Posts page‘ set from the Reading Settings.

    Settings >> Reading Settings >> Front page displays,
    Front page (works, as it’s the root directory)
    &
    Posts page (does not work – redirects to main page).

    Using MSLS 0.95 and WP 3.3RC2

  15. Thanks Dennis, I’m looking forward to this.

    Idea suggestion:
    What would you say about allowing the network admin to keep a list of manual overrides by permalinks?

    It could be something like a table in the backend containing as many columns as the installed blogs.
    The user could input permalinkA into column A, permalinkB into column B etc… and this setting would override any other logic of the plugin so that when visiting domain.com/permalinkA, the plugin outputs available links as defined in said table (domain.com/en/permalinkB, domain.com/fr/permalinkC etc).

    Perhaps it’s an inefficient way to handle things but it would provide a quick and dirty solution for cases that are not yet covered by the plugin.

  16. hi!

    danke für Dein klasse plugin!

    allerdings wird der msls nicht angezeigt, sobald ich bei den reading settings eine statische seite eintrage, obwohl der aufruf im dazugehörenden template vorhanden ist.

    danke für Deine hilfe,
    thomas.

  17. That is interesting to know thanks though not what I was suggesting.

    Because as they say a picture is worth a thousand words I prepared a mockup of my suggestion here: http://i.imgur.com/NtFna.png

    According to these settings, if visitor is on domain.com/fr/blog/ the plugin output will be domain.com/blog/ for English, domain.com/de/blog/ for German etc.

    If visitor is on custom post type archive page of domain.com/de/cptbucher/ the plugin will output domain.com/cptbooks/ for English, domain.com/fr/cptlivres/ for French etc.

    If on custom post type archive page of domain.com/cptnews/, the plugin will output domain.com/it/cptnotizie/ for Italian but because no values set for the rest of the languages it will output default links output for these, which – at the current plugin version – are the base sites‘ urls domain.com/fr/ for French, domain.com/de/ for German.

  18. OK, I got it. Redirection is the last thing I’d like to add to the Multisite Language Switcher. May be that I’ll make some kind of interface so somebody can write and add functionalities like that to the plugin.

  19. Hallo!

    Ich würde dich gerne loben können, allerdings habe ich das Plugin noch nicht testen können.

    Wie Martin und Tanja über mir auch, scheint das Plugin nicht zu funktionieren, wenn ich eine Seite im Rootverzeichnis und eine bei /de/ (wie es bei mir aktuell der Fall ist) liegen habe.Ich kann problemlos von dem Englischen (=Rootverzeichnis) nach /de/ springen, nur zurück klappt es nicht mehr. Kannst du mir helfen das Problem zu lösen?

    Wenn ich endlich von diesem bescheuertem qTranslate wegkommen kann, wäre ich dir sehr dankbar!

    1. @Alexander Ich hab‘ ein ähnliches Setup. Ich gehe davon aus, dass Du den Multisite Language Switcher in den Optionen des /de/-Blogs noch nicht aktiviert hast.

  20. @realloc ich habe meinserver.com/de/wp-admin/options-general.php?page=MslsAdmin ausgefüllt mit den Optionen wie sie hier zu sehen sind: http://derp.co.uk/ef581

    Das meintest du doch? Darüber hinaus ist die Englische Version der Seite (also ohne /de/) auf Englisch auch eingestellt.

    Woran könnte es noch liegen?

    Danke!

  21. OK, nur um sicher zu sein: Wir reden vom Backend oder vom Frontend? Hast Du das Widget in beiden Blogs aktiv (falls wir vom Frontend sprechen)?

  22. Nein, leider nicht. Das englische kann ja auch auf das Deutsche auch zugreifen, das Deutsche halt nicht auf das Englische 🙁

    1. @Alexander Ich müsste das sehen, um zu verstehen, was da passiert. Falls das eine vorstellbare Lösung für Dich sein könnte, dass ich mich bei Dir einlogge, schick‘ mir einfach eine Mail.

  23. Ich habe dir mal „super admin privileges“ gegeben. Ist ja noch nichts drauf und ich habe den blog extra aufgesetzt um mehr von nginx + wordpress und deinem Plugin zu zu erfahren 🙂

    Vielen Dank im Voraus!

  24. Zwei kleine Verbesserungsvorschläge:

    – Mit zunehmender Anzahl an Posts wird die alphabetische Sortierung der Artikel im Drop-Down-Menü zum Problem. Könnte man hier vielleicht eine antichronologische Sortierung einführen? Das sollte ja kein großes Problem darstellen.

    – Nicht jeder Artikel wird sofort in allen Sprachversionen zur Verfügung stehen. Schön wäre es daher, auch im Text einer anderen Sprachversion selbst schnell und einfach einen Link zu einer anderen Sprachversion erstellen zu können, z.B. durch etwas wie .

    1. Vielen Dank für die interessanten Vorschläge. Vielleicht hättest Du auch Lust, die beiden Sachen bei den Issues auf GitHub zu schreiben? Ich bin gerade dabei, die ganzen Vorschläge, Bugmeldungen und „Feature requests“ dort zu sortieren, um für einen besseren Überblick zu sorgen.

  25. Hallo Dennis,

    Plugin funktioniert bei mir sehr gut. Ich habe es z.B. auf einer Projektwebseite opsiconsult.com und opisconsult.de im Einsatz. Der englische Blog ist hierbei die Root und der deutsche Blog ein „Unterblog“.
    Ich würde gern wissen, wie ich die automatische Textausgabe am Ende der Posts beeinflussen kann. Ich hätte es gern so, dass in der jeweiligen Sprache ein Hinweis zum Switchen gegeben wird. Im Moment ist alles auf englisch, im deutschen Blog wäre natürlich ein Text ala „Dieser Artikel ist auch auf englisch vorhanden“ sinnvoller. Gäbe es auch zudem eine Möglichkeit, dort mit Flaggen zu arbeiten bzw. dies als Backend-Option einstellbar zu machen?

    Gruss

    Lars M.

    1. Hallo Lars,

      ja, das kommt in der nächsten Version, die in den kommenden Tagen erscheinen wird. Ich hatte die fehlende Übersetzung leider völlig übersehen. Das mit der Flagge in der Ausgabe unter dem Content war – glaube ich – auch bei den Feature-Requests auf GitHub dabei.

      Cheers,
      Dennis.

  26. Vielen Dank für die rasche Antwort. Ist ja gut zu wissen, dass die nächste Version dem Rechnung tragen wird.
    Ich gestehe aber auch gleichzeitig das Multipress Plugin von Inpsyde zu verwenden. In der Kombi mit dem MLS kann man aber fast einen stabilen und sauber getrennten mehrsprachigen Webauftritt unter WordPress fahren, obwohl mich das Multisite manchmal arg zum Fluchen bringt. Aber das sind andere Geschichten … :o)

    1. Ich habe mir Multilingual Press noch nicht genauer angesehen und kann als nichts dazu sagen. Inwiefern ergänzen sich die Plugins? Ich dachte immer, dass beide mehr oder weniger das Gleiche tun.

  27. Bei einem Großteil der Aufgaben gibt es Überschneidungen, das ist richtig.

    Multipress legt (für vergessliche Redakteure hervorragend) nach Publishing eines Posts auch einen Post gleichen Inhalts in den gekoppelten Blogs an (als Draft). Die Verbindung zwischen beiden oder mehreren Posts nach außen hin stelle ich dann mit dem ML-Switcher her. Das finde ich bei Deinem Plugin besser gelöst.
    Es ist alles natürlich eine Frage, wie schnell und in welche Richtung sich die Plugins entwickeln. Bis jetzt ist es aber so, dass man bei Mehrsprachigkeitslösungen auf Multisite Ebene sehr häufig das Duo Multipress/MLS genannt bekommt, um auch von WPML und qtranslate wegzukommen.

  28. Hi,

    ersteinmal vielen Dank für das PlugIn, ich habe es erfolgreich getestet und werde es wohl auch einsetzen.

    Eine Frage habe ich jedoch noch: Ich würde das Backend für meine beiden Blogs gern in der gleichen Sprache (deutsch) belassen, die Inhalte dann aber je Blog in einer unterschiedlichen Sprache pflegen (DE/EN). Leider ändert sich mit der Sprachumstellung im englischen Blog auch die Flagge für die Verbindung und im Frontend.

    Wäre es nicht möglich, in den MLS-Optionen für jeden Blog die Sprache/Flagge einzustellen, also unabhängig von der BE-Sprache zu sein?

  29. hallo,

    danke für das tolle plugin, bei mir werden die links vom msls aber leider falsch gerendert, ein der link von /blog auf die englische seite führt zu /en/category/blog statt zu /en/blog.
    blog ist bei mir sowohl eine seite als auch eine kategorie.

    hab das in der version 0.9.5. mal insofern behoben, als dass ich in der /includes/MslsOptions.php in der function create ab line 72 die entsprechenden funktionen in der if und elseif-abfrage auskommentiert hab:

    if ( is_search() || is_404() ) { // is_home() || is_front_page() ||
    return new MslsOptions();
    }
    elseif ( is_tag() || is_tax() ) { // is_category() ||
    return MslsTaxOptions::create();
    }

    In der Version 0.9.6 geht das leider nicht mehr, beim o.a. auskommentieren ist der ganze msls-link weg, wenn ich die kommentare wegnehme, wird der link wieder falsch gerendert.

    was kann ich hier tun?
    danke für Deine hilfe,
    tp.

  30. Hallo. Diese Plugin hat früher gut funktioniert. Jetzt habe ich aber ein Problem. Ich will 3 Sprachen verlinken in Multisite. Ich habe die MSLS Einstellungen bei allen 3 gleich gemacht. 2 von 3 erkennen alle 3. Die dritte erkennt die anderen 2 nicht, sondern gibt die Meldung: To achieve maximum flexibility, you have to configure each blog separately. Ich habe schon vieles probiert (Plugin deinstalliert, Datenbank von den msls Dateien gereinigt) und ich weiss nicht, woran das liegt. Ich würde mich freuen, wenn du mir helfen könntest. Vielen Dank. Damian

    1. @Damian Kontrolliere bitte, ob alle 3 Blogs den gleichen Admin haben! Vorher wurde das über die eMail-Adresse geregelt. In der neuen Version wird die eingebaute Funktionalität von WordPress genutzt.

  31. @realloc – danke für die Antwort. Ich habe das geprüft. Alle 3 Blogs haben den gleichen Admin. Bei Einstellungen -> Allgemein ist die E-Mail-Adresse bei allen gleich und in Network Admin -> Sites -> Users ist der Administrator auch immer gleich. Hast du noch Ideen, woran es liegen kann?

  32. @realloc – meinst du Settings -> Multisite Language Switcher -> Main settings? Die Einstellungen dort sind genau gleich wie bei den anderen, ausser Bei „Description“ wo English steht. Ich habe das Häckchen aus dem Checkbox „Exclude this blog from output“ entfernt. Dann auf „Update“ gedrückt. Oder meinst du was anderes mit „Konfiguration“?

  33. es ist ganz komisch bei mir. Ich habe andere Blogs im gleichen Network auch konfiguriert für msls und manche erkennen alle anderen, während andere, die von den anderen erkannt werden, nur 3 oder 4 andere anerkennen. Insgesamt habe ich 21 Blogs im Network. Davon habe ich (nur zum ausprobieren) ungefähr 8 für msls aktiviert. Bei allen bin ich Administrator, obwohl bei manchen Blogs auch zusätzliche Benutzer als Admin registriert sind.

  34. @Damian Ah, ich verstehe. Ich nehme an, dass das Problem entsteht, wenn es mehr als 1 Admin gibt und sich da eventuell etwas überschneidet. Die Lösung ist im Augenblick vielleicht nicht perfekt, aber Du könntest das hier versuchen: Change the blog collection. Ich werde mir das mal im Code etwas genauer ansehen…

  35. @realloc – Danke, das war jetzt die Lösung. Ich habe den Code in die Child-Theme functions.php Datei hinein kopiert und array( 1, 2, ) mit den jeweiligen Blog-ids ersetzt. Nun funktioniert es wieder. Danke für die Unterstützung.

  36. Hi Damian,

    wenn man im Archiv-Kalender auf einen Tag klickt, kommt folgende Meldung:
    require_once(/srv/www/vhosts/blog.kuka-systems.com/httpdocs/wp-content/plugins/multisite-language-switcher/includes/MslsOptionsQueryDay.php): failed to open stream: No such file or directory in /srv/www/vhosts/blog.kuka-systems.com/httpdocs/wp-content/plugins/multisite-language-switcher/MultisiteLanguageSwitcher.php on line 47 Fatal error: require_once(): Failed opening required ‚/srv/www/vhosts/blog.kuka-systems.com/httpdocs/wp-content/plugins/multisite-language-switcher/includes/MslsOptionsQueryDay.php‘ (include_path=‘.:/usr/share/php5:/usr/share/php5/PEAR‘) in /srv/www/vhosts/blog.kuka-systems.com/httpdocs/wp-content/plugins/multisite-language-switcher/MultisiteLanguageSwitcher.php on line 47

    Die Datei MslsOptiosnQueryDay.php ist aber im ZIP der 0.9.6 gar nicht enthalten…
    Bitte um dringende Hilfe.

    Liebe Grüsse

    Jörn

    1. Das sieht so aus, als wenn es sich hierbei um einen Bug handelt. Ich werde mir das Ende der Woche ansehen, wenn ich wieder im Office bin.

  37. @realloc -Prima Tool, aber wie Joern schon schreibt gibt es Probleme mit dem Kalender (WP 3.4.1). Ich habe mal im includes Verzeichnis nach geschaut und kam zu den Schluß das die MslsOptionsDay.ph wohl besser MslsOptionsQueryDay.php heissen sollte. Also habe ich Sie umbeannt und schon macht der Kalender kein Problem mehr. Ob das tatsäcjlich die Lösung ist kann ich natürlich nicht sagen, aber es sieht danach azs.

    Ein offizelles Statement wäre hilfreich

    Danke

    Liebe Grüße
    Peter

  38. Hallo Dennis!
    Mir gefällt das Plugin wirklich sehr gut! Dank für die gute Arbeit!
    Bei einer Test-Installation hat sich ein Gemütsknoten gebildet.
    Es gibt 3 Subblogs (DE = primär; EN = /en und FR = /fr)
    Problemfall ist lediglich die primäre (DE) Installation. Dort wird behauptet, es gäbe keine anderen fremdsprachigen Blogs. In der EN und FR Ebene tauchen allerdings jeweils alle 3 Sprachen wie gewünscht auf (auch DE).
    Als Tipp fürs Debugging: Es klemmt nach meinem laienhalften Eindruck bei der Variable $blogs , die für den primären Blog ungünstige Werte annimmt.

    Hinweis: Es könnte sein, dass das MSLS-Plugin im Vorfeld versehentlich netzwerkweit aktiviert war. In den .._options-Datenbank-Tabellen finde ich keine Anhaltspunkte.
    Version = 0.9.7
    Wäre toll, wenn sich der Knoten lösen ließe!
    Danke.

    1. Ja, nur mit der Benutzerführung bin ich noch nicht so zufrieden. 😉

      Wenn Du ich im Setup der Blogs befindest (/wp-admin/options-general.php?page=MslsAdmin, /en… und /fr…), siehst Du da auch jeweils alle Blogs? Wenn nicht, einfach mal immer die Konfiguration speichern.

      1. Doch, doch! Konfiguration ist mehrfach gespeichert worden. Und wie geschrieben klappt es ja in /en und /fr – aber in der (primären) Hauptebene / halt nicht 🙁
        /en zeigt EN | FR | DE
        /fr ebenso
        / zeigt nur DE
        Eben ein sehr merkwürdiger Gemütsknoten … im Umfeld von $blog->get()
        Dank für die schnelle Antwort!

  39. Hast Du da eventuell mehrere Admins für die Blogs? Es gibt in der aktuellen Version noch einen blöden Bug. Nehmen wir mal an, dass Du 2 Admins hast: A und B. A kann nur auf den Hauptblog zugreifen, B aber auf alle 3, dann zeigt sich das Bug.

    1. So isses! Der Knoten hat sich mit diesem Tipp gelöst!!
      Admin A (der erste Super-Admin überhaupt) war nicht in /en und /fr als Admin unterwegs..
      Nun als Admin für die weiteren Subblogs hinzugefügt … alles klaro!
      Merci!!!

  40. Hallo realloc,

    ich habe den gleichen Fehler, der hier schon beschrieben wurde: Bei einem Klick auf einen Kalendertag wird folgende Fehlermeldung ausgegeben:

    Warning: require_once(/.../httpdocs/wp-content/plugins/multisite-language-switcher/includes/MslsOptionsQueryDay.php): failed to open stream: No such file or directory in /.../httpdocs/wp-content/plugins/multisite-language-switcher/MultisiteLanguageSwitcher.php on line 47 Fatal error: require_once(): Failed opening required '/.../httpdocs/wp-content/plugins/multisite-language-switcher/includes/MslsOptionsQueryDay.php' (include_path='.:/usr/share/php5:/usr/share/php5/PEAR') in /.../httpdocs/wp-content/plugins/multisite-language-switcher/MultisiteLanguageSwitcher.php on line 47

    Gibt es schon eine Lösung oder einen Workaround ? Der Blog ist live und das sorgt beim Kunden für böse Kommentare …

  41. Hallo,

    habe in der Version 0.9.8 das Problem, dass der MSLS beim Switching der Kategorien bei der falschen Kategorie das /blog anhängt. Habe 2 Sites, eine im / und eine in /de. Beim Switching von über den MSLS verknüpften Posts funktioniert es dagegen, der Fehler tritt nur bei den Kategorien auf.

    Gruß, Uwe

  42. Ja, nach der Anleitung habe ich das auch gemacht.:-) Hat auch alles funktioniert, es funktioniert auch jetzt alles – bis auf den Switch (ich meine damit den Klick auf die Flagge/Sprache) bei verknüpften Kategorien. Dieser funktioniert bei verknüpften Seiten und Posts wunderbar, nur bei den Kategorien kommt er ins Schleudern.

  43. Wenn vorher alles funktioniert hat und jetzt die Permalinks nicht mehr sitzen, bedeutet das wahrscheinlich, dass da irgendein anderes Plugin (oder etwas, was Du nach dem Switcher aktiviert hast) stört.

    Auf meinem Testblog gibt es in dieser Hinsicht keine Probleme: http://test.lloc.de/category/a-category/a-subcategory/

    Möglicherweise reicht es, wenn Du den Step mit den Permalinks wiederholst. Ansonsten würde es ganz hilfreich sein, wenn Du einen URL postest. Vielleicht fällt mir ja was auf.

  44. Vielen Dank für die Anleitung, bisher funktioniert alles bis auf eine Kleinigkeit 🙂

    Mein Problem steckt im Widget. Ich habe zwei Domains gemappt „beispiel.com“ und beispiel.de“. Die beispiel.de ist als Blog beispiel.com/de eingerichtet.

    Im Widget erscheinen nun auf der beispiel.de im Widget links zu „beispiel.de/contentxyz“ und zu „beispiel.com/contentxyz“. Auf beispiel.com allerdings geht der link auf „beispiel.com/de/contentxyz“. Kann ich das irgendwie ändern, dass hier auch auf „beispiel.de/contentxyz“ gelinkt wird?

    Hoffe es ist verständlich was ich meine.

    Vielen Dank!

    1. @Nico Ich habe auch so ein Setup hier laufen. Schau mal bitte nach, ob beide Domains als primary aufgesetzt sind (Netzwerkverwaltung > Settings > Domain Mapping). Ich bin mir sicher, dass so ein Verhalten vom Mapper hervorgerufen wird, was man aber mit der richtigen Konfiguration unterbindet.

      1. ja, beispiel.de ist auf primary gesetzt. beispiel.com kann ich nicht auf primary setzen, da hier das Menü „Domain Mapping“ nicht besteht, ich nehme an da dies eh die Main Site ist?

  45. Was mir gerade in den Sinn kommt, ist, dass es doch noch einen Unterschied zwischen meinem und Deinem Setup gibt. Ich habe die Blogs als Subdomains aufgesetzt. Wenn ich länger darüber nachdenke, ergibt es sogar Sinn, dass es diesen Seiteneffekt bei Deinem Setup geben könnte…

    1. Naja, rein technisch funktioniert ja auch alles, nur ästhetisch ist es nicht so schön. Aber das ist jammern auf hohem Niveau, bin ja glücklich das alles läuft. Hätte ja nur sein können, dass das leicht zu fixen ist. 🙂

  46. Hi,

    Great plugin! However when I activate the plugin, my visual editor disappears, and the other widgets on the page as well. This happens with posts and pages. Any thoughts?

    Cheers,
    Henk

      1. Hello Dennis,

        No I don’t. When I turn all the other plugins off and I activate the multi language switcher, it works fine. As soon as I activate another plugin, the visual editor disappears.

        Cheers,
        Henk

  47. Hallo Dennis,

    erstmal vielen Dank für dein grandioses Plugin. Ich habe eine WP Installation damit eingerichtet und der Wechsel zwischen den Sprachen ist auch für etwas unbedarftere Nutzer keine große Hürde.

    Eine kleines Problem habe ich jedoch: Bei mir werden aus irgendeinem Grund auch dir URLs bei den Kategorien falsch gerendert. Aber nur in eine Richtung; beim Wechsel der Gesamtübersicht von Englisch auf Deutsch (Main Site) erhalte ich die korrekte Adresse. Anders herum wird aber noch ein /blog/ in /blog/englisch/category/XXX eingebaut, obwohl die korrekte URL /englisch/category/XXX heissen müsste. Hast du eine Idee wie ich das fixen kann?

    Vielen Dank!
    Johannes

    1. OK, danke.

      Nun zu Deinem Problem:

      Mach zuerst /wp-admin/network/site-settings.php?id=1 auf und suche nach „Permalink Structure“. In dem Feld nimmst Du einfach das „/blog“ heraus und speicherst dann. Danach machst Du /wp-admin/options-permalink.php auf, was dazu führt, dass die Permalinks neu geladen werden. Hier nichts abspeichern, nur anschauen!

  48. there is a bug for post which is coustom post type, post_type is book, main blog url is „http://webtoolservice.com/wp361/blog/book/test-c/“, language is ja, another is „http://webtoolservice.com/wp361/us/book/test-cc/“, language is us, default page/post from wp worked fine.

  49. Hallo Dennis, vielen Dank fuer Zeit und Geduld und Deine tolle Arbeit!
    Leider habe ich ein Problem mit dem Plugin. Selbstgeschustert glaube ich, denn am Anfang funktionierte es: Fuer /it/ Seite wird deutsche Flagge gezeigt.
    Hauptseite deutsch, zweite Seite Pfad /it/, ein Admin ein Benutzer. What to do?
    Ich weiss das Problem gab’s jetzt schon oefter, ich habe die Loesung aber leider nicht gerallt, falls es denn das gleiche Problem war. Vielen herzlichen Dank im Voraus, Dietrich

  50. Hallo Dennis

    Ich habe bei meiner Testsite das Problem, dass sich die Homepage der englischen Version nicht aufrufen lässt. Bei beiden Sites, der deutschsprachigen und der englischsprachigen, habe ich als Startseite eine statische Seite definiert. Während es auf der deutschen funktioniert, geht der Klick auf Logo und „English“ in ein leeres Verzeichnis. Hat dies mit dem Plugin zu tun, mit Einstellungen – oder vielleicht doch eher mit meiner Multisite Installation?

    Vielen Dank für Feedback schon im Voraus.
    Schöne Grüsse aus Zürich
    Peter

    1. Das mit dem leeren Verzeichnis und dem Klick auf das Logo verstehe ich noch nicht ganz. Wo genau landest Du nach dem Klick? Was ist da zu sehen? Eine Meldung mit dem Fehler 404?

  51. Es scheint so, als wenn sich dort tatsächlich ein Verzeichnis befindet. Bei der Multisite sorgt WordPress selbst (virtuell) für die Verzeichnisse. Das sollte also gelöscht werden – ist ja eh leer.

  52. Hallo,
    ich betreibe einen kleinen Shop mit derzeit ca.120 Produkten, weitere folgen…

    Im September habe ich WPML gekauft und seither Stunden mit Problemen mit WPML, mit verlorenen Verbindungen zu den Übersetzungen, doppelten Übersetzungen, Konflikten mit anderen Plugins und vielem mehr verbracht habe, habe ich mich heute entschlossen, WPML abzuschalten. Im Support Forum gibt es inzwischen über 10 Seiten Konflikte allein aus den letzten 24 Stunden.

    Kann ich mit Multisite Language Switcher WPML ersetzen? Ich bin kein Programmierer, kann lediglich die Bausteine von WP zusammenfügen. Brauche ich für das Plugin spezielle Kenntnisse (Code)? Funktioniert das Plugin auch bei Produkten in einem Woocommerce Shop? (GermanMarket für die Rechtssicherheit habe ich schon installiert)
    Wenn ich es richtig verstanden habe, besteht bei diesem Plugin nicht die Gefahr, dass wie bei WPML die Verbindungen zur Übersetzung verloren gehen?
    Gibt es bekannte Konflikte mit anderen Plugins (ich habe über 30 im Shop)
    Kann man vielleicht die Übersetzungen importieren, oder wie wechsele ich am besten?
    Danke, Ole

  53. Hallo Ole,

    ja, ich glaube der Multisite Language Switcher stellt eine gute Alternative dar. Für das Plugin benötigt man eine Multisite. Wenn die Einrichtung einer solchen kein Problem darstellt, bist Du schon einen Schritt weiter. An sich gibt es auch keine Probleme mit anderen Plugins. Da Du aber schon WooCommerce angesprochen hast, ist der Thread hier vielleicht ganz interessant für Dich:

    https://wordpress.org/support/topic/page-link-issue?replies=17

    Es gibt auch ein Plugin, dass den Umstieg erleichtern will. Schau einfach mal hier nach:

    http://wordpress.org/plugins/wpml2wpmsls/

    Gruß,
    Dennis.

  54. Hi,
    ich bin von dem Plugin sehr angetan. Allerdings zeigt es bei mir eine etwas kuriose Ausgabe. Es gibt die DE-Site im Root und die EN-Site unter der en Subdomain. Im Widget erscheint immer die falsche Flagge zum Link. Die Beschreibung passt. Also beim deutschen Beitrag steht als Link „English“ neben der deutschen Flagge, der Verweis führ korrekt zum englischen Content. Umgekehrt dasselbe Problem.
    Auch im Backend erscheint mir das nicht ganz koscher.
    Bei deutschen Beiträgen steht rechts „Übersetzung im DE-Blog bearbeiten“ und die deutsche Flagge. Klick führt zum entsprechenden englischen Artikel… und umgekehrt.
    Wo hab ich gepennt?

    Vielen Dank vorab,
    Martin

  55. Hallo Dennis,

    zunächst mal herzlichen Dank für deinen grandiosen Plugin!

    Was ich leider nicht finden konnte, war eine Möglichkeit, jeweils den Quellcode des ursprünglichen Posts in den Editor zu kopieren.

    Gibt es da eine Möglichkeit, einen Button einzublenden? Gerne auch per PHP….

    Herzlichen Dank,
    Stefan.

  56. Hallo,

    ich habe das Plugin bei einer momentan 2sprachigen Seite mit verschiedenen Content-Typen (Posts, Pages, Projects) im Einsatz. Anfangs funktionierte alles wunderbar aber während der Arbeit am Projekt veränderte sich etwas, von dem ich nicht weiß, wo ich suchen soll, um den Fehler zu beheben. Bei Posts und Pages geht alles weiter wie bisher. Bei Projects verweist der Link Fond der französischen (z.Bsp. http://www.mintyachts.com/fr/projects/motoryacht-andalu/ ) zur Hauptseite jetzt immer auf
    http://www.mintyachts.com/projects/motoryacht_40ft/ obwohl das Verzeichnis
    http://www.mintyachts.com/blog/projects/motoryacht_40ft/ lautet.

    Würde mich über Hilfe sehr freuen.

  57. Hi,

    ich hatte am 01.09. ein Problem gepostet und finde diesen Post nun nicht mehr, um die mgl Antwort zu lesen. Wo kann der gelandet sein? Hier gehen die Einträge „nur“ bis zum 16.09. – was mir etwas lange her erscheint.

    VG

    Holger

    1. Der Kommentar war noch nicht freigegeben. 😉

      Als erstes solltest Du in die Permalinks schauen (nur schauen, damit WordPress die Regeln neu lädt): /fr//wp-admin/options-permalink.php. Falls das nicht hilft, solltest Du kontrollieren, ob bei der Registrierung des Custom Post Type Project der Parameter redirect verändert wurde.

    1. Eine Neuinstallation kann das Problem auch nicht beheben, Holger. Es wird nichts bei der Installation getan, dass eine Neuinstallation rechtfertigen würde. Was da jetzt genau schief läuft, kann ich so nicht beantworten, ohne das wir den Artikel hier sprengen. Schicke mir am besten eine Mail, dann besprechen wir den Rest weiter…

  58. Vielen Dank erstmal für das tolle Plugin!
    Ich habe jetzt die verschiedenen Seiten angelegt (Deutsch und Dänisch) und wollte die thematisch passenden Seiten nun untereinander „verlinken“, also, dass man wenn man z.B. auf der dt. Seite „Restaurants“ anklickt, dass man dann bei der dänischen Übersetzung landet. Allerdings gehen die Einstellungen beim Klick auf „Aktualisieren“ immer wieder verloren. Was kann ich da tun?
    Vielen Dank schonmal

      1. Ich habe unter Einstellungen –> Multisite Language Switcher –> Sprache des Blogs nur die Sprachen Deutsch und American English zur Auswahl. Meinst Du das?

  59. Lieber Dennis,

    vielen Dank für das tolle Plugin!!!!! Es läuft alles wunderbar!

    Nur eine kleine Schönheitskorrektur würde ich gerne vornehmen:
    Bei mir wird der Hinweis „Der Artikel ist auch in französischer Sprache verfügbar.“ leider auf der Beitragsseite nicht angezeigt. Auf den Seiten der Einzelbeiträge schon.

    Hast du mir einen Tipp, wie ich diesen Hinweis auf der Beitragsseite unter jedem Artikel, der eine französische Version hat, anzeigen kann?

    Vielen lieben Dank
    Dorothée

  60. Hallo Dennis

    Ich habe eine Webseite, die in drei Sprachen (en, de und it) verfügbar sein soll. Nun habe ich die Englische Version als Root mit Endung .ch/, die deutsche mit .ch/de und die italienische mit .ch/it jeweils als Unterseiten.

    Jetzt gibt es folgendes Problem: Von der deutschen und italienischen Seite kann ich problemlos über das Widget auf die anderen Sprachen wechseln, nicht aber von der englischen Seite zu den anderen. Wenn ich beispielsweise auf DE klicke wird in der Adresszeile zwar ein /de angehängt aber geladen wird die deutsche Seite nicht. Hast du da eine Lösung?

    Danke und Grüsse
    Nik

      1. Dies war anfangs so. Habe aber bereits beiden superadmins zugriff für alle seiten gewährt bevor ich die Frage hier gestellt habe und es funktioniert noch immer nicht.

          1. Referenzuser ist auf allen Seiten derselbe eingestellt. Habe auch versucht alle auf den anderen User umzustellen, aber leider klappt es immer noch nicht.

Schreibe einen Kommentar

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