WordPress Plugin qTranslate entfernen

Mit qTranslate könnt ihr euren Blog mit mehrsprachigen Inhalten füllen. Wenn ihr euch doch entscheidet, von einem mehrsprachigen Blog wieder auf eine Sprache zurückzukehren, gibt es einige Schritte zu beachten um qTranslate vollständig zu deaktivieren.


Das Plugin selbst bietet einige Einstellungsmöglichkeiten, wie dem Nutzer der mehrsprachige Content präsentiert wird. So kann man dies z.B. über Subdomains (de.wrel.de) oder Prefixe (www.wrel.de/en/ARTIKEL_PERMALINK) in der URL lösen. Was qTranslate selbst im Hintergrund macht ist, dass in dem Artikel / Seite alle aktivierten Sprachen gespeichert werden. Bei einer Impressumsseite, welche auf deutsch und englisch verfügbar ist, würde der Titel der Seite wie folgt im Hintergrund gespeichert werden:

<!--:en-->Imprint<!--:--><!--:de-->Impressum<!--:-->

Hier wird im Titel und im Inhaltsbereich der Seite der mehrsprachige Inhalt mittels den qTranslate Tags getrennt und in der Datenbank abgespeichert.

So was machen wir jetzt, wenn wir qTransalte schon erfolgreich auf unserem Blog eingesetzt haben und kommen darauf, dass der Blog hauptsächlich englische Inhalte hat? Auch die Leser sind meist nur aus englischsprachigen Ländern. Ich möchte den Blog jetzt nurnoch einsprachig halten.

Kann ich jetzt einfach qTranslate als Plugin deaktivieren und das wars? Nein das geht leider nicht so einfach. Wenn ich das Plugin nur deaktiviere und anschließend meinen Blog aufrufe, werden bei mehrsprachigen Seiten / Artikel nun alle Sprachen angezeigt. Bei unserer Impressumseite wäre das dann:

ImprintImpressum

Der deutsche und der englische Text erscheinen dann gleichzeitig. Dies kommt daher, weil wir das Plugin deaktiviert haben und der Inhalt / Titel noch immer mehrsprachig mit den Tags in der Datenbank hinterlegt ist. Das wollen wir natürlich nicht. Aber wie bekommen wir das jetzt weg?

Gleich vorab: Der Workaround hier ist nicht ganz ungefährlich. Bitte sichert euch eure Datenbank vorher! Durchgeführt selbst habe ich es bei WordPress Version 3.3. Ich musste auch erst suchen, in wie weit qTranslate in einem Blog Spuren hinterlässt. Und da bin ich auf den Post von guido gestossen. So müsst ihr einfach diese acht Queries direkt in MySQL ausführen:

UPDATE wp_posts SET post_content = case when LOCATE('<!--:en-->', post_content) > 0 then SUBSTRING(post_content, LOCATE('<!--:en-->', post_content)+10) else post_content end;
UPDATE wp_posts SET post_content = case when LOCATE('<!--:-->', post_content) > 0 then SUBSTRING(post_content, 1, LOCATE('<!--:-->', post_content)-1) else post_content end;

UPDATE wp_posts SET post_title = case when LOCATE('<!--:en-->', post_title) > 0 then SUBSTRING(post_title, LOCATE('<!--:en-->', post_title)+10) else post_title end;
UPDATE wp_posts SET post_title = case when LOCATE('<!--:-->', post_title) > 0 then SUBSTRING(post_title, 1, LOCATE('<!--:-->', post_title)-1) else post_title end;

UPDATE wp_posts SET post_excerpt = case when LOCATE('<!--:en-->', post_excerpt) > 0 then SUBSTRING(post_excerpt, LOCATE('<!--:en-->', post_excerpt)+10) else post_excerpt end;
UPDATE wp_posts SET post_excerpt = case when LOCATE('<!--:-->', post_excerpt) > 0 then SUBSTRING(post_excerpt, 1, LOCATE('<!--:-->', post_excerpt)-1) else post_excerpt end;

UPDATE wp_terms SET name = case when LOCATE('<!--:en-->', name) > 0 then SUBSTRING(name, LOCATE('<!--:en-->', name)+10) else name end;
UPDATE wp_terms SET name = case when LOCATE('<!--:-->', name) > 0 then SUBSTRING(name, 1, LOCATE('<!--:-->', name)-1) else name end;

Hier werden aus wp_posts und wp_terms die englischen Artikel behalten und alle anderen gelöscht. Ebenso werden die qTranslate Tags entfernt. Ihr könnt natürlich auch statt en auch de bei den Queries einsetzen, wenn ihr den deutschen Inhalt behalten wollt.

Wenn ihr das ausgeführt habt, könnt ihr das Plugin deaktivieren. Die Permalinks für die Artikel bleiben natürlich erhalten. Eigentlich war’s das dann schon. Das Problem, welches ich noch hatte, war wenn ich auf die Home Seite meines Blogs gegangen bin, kam statt meiner Startseite irgendein Artikel. Das hat den Grund, dass noch nicht komplett alles von qTranslate entfernt wurde. Im Hauptverzeichnis des Blogs in der .htaccess File waren noch Einträge von qTranslate vorhanden. Diese Einträge sind bei qTranslate für das Routing wie z.B. /de/impressum zuständig. Da aber das Plugin nicht mehr aktiv ist, gibt es diese Struktur auch nicht mehr und WordPress findet unter der Resource nichts mehr. Hier wird versucht einen Artikel zu finden, der mit de beginnt und auf diesen umgeleitet.

Um das zu vermeiden, müsst ihr in der .htaccess noch den qTranslate Code entfernen. Bei mir waren es folgende Zeilen:

# qtranslate fix
RewriteBase /
RewriteCond %{QUERY_STRING} ^$
#RewriteCond %{HTTP:Accept-Language} de [NC]
#RewriteRule ^$ http://www.YOURDOMAIN.com/de/ [R,L]

RewriteCond %{QUERY_STRING} ^$
RewriteCond %{HTTP:Accept-Language} en
RewriteRule ^$ http://www.YOURDOMAIN.com/en/ [R,L]

So nun ist qTranslate vollständig aus eurem Blog entfernt. Und alles sollte wieder gehen. Wenn nicht, dann habt ihr immer noch euer Backup. Ich hoffe, ich konnte euch etwas helfen.

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass der Beitrag für dich nicht hilfreich war!

Lasse uns diesen Beitrag verbessern!

Wie können wir diesen Beitrag verbessern?

Thomas Czernik

Bin ein bayerischer SEO und Web Analyst. ➤ Technical SEO ➤ Webanalyse ➤ Developer

5 Gedanken zu „WordPress Plugin qTranslate entfernen“

  1. Einmail habe ich eine neue Version von qTranslate in meiner Webseite installiert ohne vorher sicher stellen, das qTranslate compatibel mit diser Version war. Ich hatte keine backup gemacht und alles war ein Mess. Ich finde das der Entfernung von qTranslate viel zu kompliziert wird und, wie du sagst, nicht ganz ungefährlich.

    1. Hallo Sandra,

      ja leider ist nach der deaktivierung noch einiges von qtranslate in WordPress noch vorhanden. Man sollte auch nochmal schaun welche Optionen in der Datenbank gesetzt wurden und gegebenenfalls alle Links auf der Seite nochmals durchgehen.

      Lg Tom

  2. Von Qtranslate besser die Finger lassen! Zunächst ging alles wie geschmiert, bis sich herausstellte, daß man die homepage nicht übersetzen konnte. Hat wohl auch mit den Theme Options, Header Settings, zu tun. Die von catch everest (guter Service übrigens, schnelle Antworten per e-mail) sagten, Übersetzungen wären nicht ihr Job. Und qtranslate hat erst gar nicht geantwortet. Es standen jede Menge Fragen im Forum, aber keine Antworten.
    Dann generierte offenbar qtranslate ständig p tags und schließlich noch im menu leere a tags. Außerdem wurden die tabs immer unübersichtlicher.
    Ich habe alles wieder rausgelöscht (die obige Anleitung war sehr hilfreich, danke), allerdings manuell, weil wir nur ein paar statische Seiten haben. Ich habe mich dazu entschieden, die englische und die “bayerische” Version in getrennten Ordnern völlig unabhängig voneinander neu zu installieren und aufzubauen.

  3. Hallo,
    habe ebenfalls Probleme mit dem reinigen von qtranslate. Habe meine Datenbank gesichert und wpml installiert, dann qtranslate deinstaliert und das plugin qtranslate x cleanup and wpml import durchlaufen lassen, nur bei den produkten sind die tags noch vorhanden, wenn ich das qtranslate x cleanup nochmal durchlaufen lassen will, bekomm ich eine fehler meldung, Wie bekomm ich die weg??? kann wer helfen?

Schreibe einen Kommentar

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

Mit der Nutzung dieses Formulars erklärst du dich mit der Speicherung und Verarbeitung deiner Daten (Datenschutzerklärung) durch diese Website einverstanden. *

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.