WP – Site übersetzen (Plugin)

Mit Hilfe vom Google-Spachservice oder dem Altavista-Sprachservice kann man die gewünschte Seite übersetzen, diesen Service kann man auch für seine eigene Website anbieten. Scott hat sich dazu ein wenig Gedanken gemacht und die URLs von Google mit ein wenig php so erweitert, dass jede aktive Seite in die jeweilige Sprache übersetzt wird. Dieses Plugin hat mir gefallen und ich habe es für die deutschen WordPress-User geändert, so dass auch wir eine Übersetzung in andere Sprachen anbieten können. Leider ist der Umfang des Übersetzungsservice bei Goggle noch nicht sonderlich umfangreich, was das Sprachangebot aus dem deutschen umfasst. Deshalb gibt es jetzt, ab Version 2.2., mehr Möglichkeiten.

Screenshot

Mit Hilfe vom Google-Spachservice oder dem Altavista-Sprachservice kann man die gewünschte Seite übersetzen, diesen Service kann man auch für seine eigene Website anbieten. Scott hat sich dazu ein wenig Gedanken gemacht und die URLs von Google mit ein wenig php so erweitert, dass jede aktive Seite in die jeweilige Sprache übersetzt wird. Dieses Plugin hat mir gefallen und ich habe es für die deutschen WordPress-User geändert, so dass auch wir eine Übersetzung in andere Sprachen anbieten können. Leider ist der Umfang des Übersetzungsservice bei Goggle noch nicht sonderlich umfangreich, was das Sprachangebot aus dem deutschen umfasst. Deshalb gibt es jetzt, ab Version 2.2., mehr Möglichkeiten.

Anforderungen:

WP-Translate(de) Version 1.1 und 2.* arbeiten mit WP 1.5 und höher.
WP-Translate(de) - Widget benötigt das Plugin Sidebar Widgets und arbeitet unter WP 2.* .

Installation des Plugins:

  1. Den Ordner im zip in euren Plugin-Ordner hochladen: /wp-content/plugins/
  2. Aktivieren des Plugin in der WP-Admin-Oberfläche
  3. Fügt
    <?php wpfb_translate(); ?>

    für Version 1.1

    <?php wpfb_translate(n); ?>

    für Version 2.* und in eurer Template, wo der Service angeboten werden soll. Hier eignet sich natürlich der Sidebar und der Footer recht gut. Für n könnt ihr 1 oder 2 einsetzen. Dabei steht 1 für vertikale und 2 für horizontale Darstellung der Flaggen.

Info:
Wer das ganze noch mit ein wenig mehr Code einbindet, kann dafür sorgen, dass keine Fehlermeldung kommt, wenn das Plugin mal abgeschaltet ist. Dazu dient eine einfache IF -Abfrage, die mir ein lieber Leser - BEN - zugesandt hat. Herzlichen Dank.


<?php if (function_exists('wpfb_translate')) : ?>
<?php wpfb_translate(n); ?>
<?php endif; ?>

Installation des Widget-Plugin:

Jetzt auch als Widget-Plugin zu haben, da ich einige Anfragen per Mail bekam.

  1. Den Ordner im zip in euren Plugin-Ordner hochladen: /wp-content/plugins/
  2. Aktivieren des Plugin in der WP-Admin-Oberfläche
  3. Nun ist, bei aktiviertem Sidebar Widgets ein weiters Widget vorhanden. In den Sidebar per Drag-Drop einfügen und Einstellungen vornehmen.

Der Sprachservice von Altavista und Worldlingo arbeitet ohne die Darstellung von Frames, so dass die Darstellung der Seite erhalten bleibt. Wer diesen Service für die Übersetzung von deutsch ins englische nutzen möchte, findet im Plugin ein wenig vorgefertigetne Code, der nur entkommentiert werden muss. Der Service mit Google kann der gelöscht oder auskommentiert werden - ab Zeile 64.



Download:



Ist die Arbeit nicht 1 Euro wert?
Jede Spende wird dankbar angenommen und ermöglicht das weitere Arbeiten an freier Software.
Möchtest du mehr oder anders spenden, so besuche meine Wunschliste.

Download als Zip-Datei: wp-translate.zip - 4 KByte

Download als Zip-Datei (Widget-Plugin): wp-translate-widget.zip - 4KByte

Historie:

  • V2.3 - valider Code - & in den Links
  • V2.4 - Bloglink angepasst, so dass es auch bei Verwendung von Unterordnern funktioniert
  • V2.5 - WordPress 2.2 tauglich, ACHTUNG: neuer Funktionsname - wpfb_translate

96 Comments

  1. mhh, hab alles so gemacht wie von dir beschrieben, nur funktionierts nicht.
    bei mir wird nur der reine Code angezeigt:
    woran kann das denn liegen?
    weiß mir keinen Rat mehr, ist ja nun wirklich nichts kompliziertes...
    ??

    Gruß Nemoflow

  2. Ups, Sorry !
    Da ist mir ein kleiner Fehler in der Install-Anleitung unterlaufen, der allerdings zu großen Auswirkungen führt.
    Es muss <?php translate(); ?> heisen und nicht < ?phptranslate(); >. Ohne das ? am Ende des php-Codes weis die Maschine natürlich nicht, was geht.

    Danke für den Hinweis.

  3. Hi,
    schönes Plugin.Nur ein kleiner Bug. Du müsstest die Download Datei von wwp-translate2(de).zip' in wp-translate2(de).zip umbennnen! Da ist ein Häckchen hinter dem zip.
    Deswegen verweigerte mein zip Programm das entpacken.

  4. Vielen Dank für den Hinweis, leider konnte ich das Problem nicht nachvollziehen. Dabei ist mir allerdings ein anderer fehelr aufgefallen, der vielleicht zu dem Problem geführt hat. Bitte versuche es nochmal.

    Liebe Grüsse Frank

  5. He Frank,
    ich entdecke ja immer mehr auf diener seite 🙂

    2 Anmerkungenzu dem Plugin:
    die Title Tags sind noch falsch - title="English to German" und english to french...

    UND
    kann man das ganze nicht in eine If-abfrage packen á la:

    das würde den seitenaufbau nicht stören, wenn das Plugin mal deaktiviert ist!

  6. @Ben:
    habe den Fehler behoben, vielen Dank für den Hinweis.

    Die Abfrage: sicher, sollte funktionieren. Habe mich damit aber nicht auseinander gesetzt. Du kannst ja den Aufruf

    <?php translate(n); ?> in eine IF THEN Abfrage legen. Das müsste gehen. Frage doch mal im WP-Forum nach, da hat sicher eine(r) eine Lösung parat. Mit fehlt ein wenig die Zeit und die Kentnisse sind nicht so überragend, dass ich es auf die schnelle hinbekomme.
    LG
  7. He Frank,

    das kann man ganz leicht selbst machen (habs vom weathericon kopiert):

    <?php if (function_exists('translate')) : ?>
      <?php translate(n); ?>
    <?php endif; ?>
    

    und fertig..
    gruß,
    Ben

  8. Hallo,
    wollte mich mal für das coole plugin bedanken!
    Laut meinen logfiles habe ich öfters englischsprachige Besucher, es könnte sich also als nützlich erweisen.

  9. Hallo, wie kann ich es anstellen dass ich die flaggen mal anzeigen lassen kannn und mal nicht? ich möchte einen Themeswitcher installieren und verschiedene Themes anzeigen lassen

  10. Die img-Tags für die Flaggen-Bilder sind direkt per html im Plugin hinterlegt. Sie werden also immer aufgerufen. Ich würde das Plugin einfach kopieren, anderer Name und Funktion und diese dann jeweils nutzen.
    Besser und sinnvoller ist es aber sicher wenn man die Flaggen per CSS einbindet. Das habe ich in dem Fall nur nicht gemacht, weil dann jeder Anwender sein CSS-File anpassen müsste und somit einige WP-user überfordert sind. Lösche einfach das img und füge dir eine ID oder class ein. Dann das Bild als Hintergrund aufgrund des IDs oder der class anzeigen.
    LG Frank

  11. Der Sozialticker bedankt sich für dieses hilfreiche Tool. Gerade in unserem Bereich, ist es wichtig, die verschiedenen Sprachen auf eine verständliche zu bringen.

    Weiter so ... der Sozialticker

  12. Kurze Frage zum Plugin. Mit welchen Tag bekomme ich es hin, das der aktuelle Beitrag (page.html) übersetzt wird.
    Habe es eingebunden in die page.html von meine Theme, aber es wird immer die Domain zurück gesprungen.
    Denke mal das ich statt etwas anderes setzen muss. Aber was? Finde keinen passenden Tag in den Template Tags.
    Kannst Du mir da weiter helfen?

  13. @Tima:
    Das Plugin liest die aktuelle Domain aus, arbeitest du vieleicht mit Frames. Mit dem page.html ist sicher ein Tippfehler, es muss in eine php-Datei eingebunden werden - page.php.
    EDIT: Habe es mir gerade auf deiner Site angesehen, läuft doch.
    LG Frank

  14. Hallo Timo:
    habe es bemerkt, es wird aber die eigentliche Domain ausgelesen. Scheinbar gibt es da ein Problem. Schalte mal testweise die Permalinks ab oder ändere auch mal direkt im Plugin Zeile 53 'http://' in Unsinn, ob dies im Link übergeben wird oder ob die Ermittlung der Domain hakt. Kannst auch mal Zeile 53 auskommentieren, so dass sie nicht wirkt.
    Gruß

  15. Hi, ich bekomme folgende Fehler angezeigt:

    Warning: Missing argument 1 for translate() in /home/www/web20/html/wp-content/plugins/wp-translate/wp-translate_de.php on line 24

    Was mache ich denn falsch ?

    Patrick

  16. Hallo Patrick,
    Du übergibst keinen Parameter, entweder 1 oder 2, siehe Beschriebung oben. Dabei steht 1 für vertikale und 2 für horizontale Darstellung der Flaggen.
    LG Frank

  17. Kleiner Hinweis:

    Die Funktion get_settings('home') wurde (zumindest bei mir) -dazu muss man sagen, dass ich 2.0.3 benutze- falsch in der PHP-Datei des Widgets falschverwendet.
    Es muss wie folgt lauten:

    Ich hoffe geholfen zu haben...ist zwar nichts schlimmes, da nur die Bilder nicht angezeigt werden, aber vllt hilft es ja dem einen oder anderen.

  18. @Peter Persiel:
    Danke schonmal für den Hinweis, obwihl ich auch unter WP 2.0.3 getestet habe. Kann ich den geänderten Code nochmal haben, der scheint verschluckt. Danke

    @SuMu:
    Die Fehler im Validator kommen durch die URL, die so nicht verstanden werden. Kannt du ignorieren. Schau es dir mit dem Validome an, der ist zuverlässiger.
    LG Frank

  19. ich habe nun das "installer plugin für plugins" installiert und es kommt der hinweis: not kompatibel mit Wp 2.03 ?
    "Min WP Version 1.5
    Max WP Version 2.0.2"

  20. Hallo SuMu,
    bitte mehr Input. Wann bekommst du die fehlermeldung, wenn du das Plugin Translate aktivieren willst oder beim Installer-Plugin?
    LG Frank

  21. hi, in der widget version fehlt der code für altavista...
    hab ihn mir aus der normalen plugin vesion rauskopiert.
    ansonsten: klasse idee!

  22. Ein super Plugin, meinen Dank an die Entwickler.
    Es stellt sich aber ein Problem, hat man die Sprache gewählt und clickt danach nochmal auf eine Flagge kommt es zu Fehlern.
    Wie könnte man es anstellen, das nach der ersten Auswahl die Flaggen ausgeblendet werden ??
    Grüße

  23. Hallo Klaus,
    man könnte über eine if-Abfrage die Domain abfragen, da sich die ja verändert, wenn man schon einmal die Übersetzung gewählt hat und dann einen neuen Link anbieten oder die Möglichkeit ausblendne.
    LG Frank

  24. Hallo Frank,
    Das habe ich versucht, indem ich die Variablen abfragen wollte. Aber meine PHP Kenntnisse sind da leider unzureichend.
    Aber wäre es nicht sinnvoll diese Sperre generell einzubauen, denn ich denke mir das andere die gleichen Probleme haben könnten. Übrigens im gleichnamigen Widget von dir ist es perfekt gelöst, dort kann man sogar wieder in die ursprüngliche Sprache zurückspringen.
    Grüße Klaus

  25. Kann es sein das es die Widget Version unter WP 2.05 nicht mehr geht ?
    Bekomme es unter Sidebar angezeigt und kann es auch einbauen. Aber in der Webseite selber erfolgt keine Anzeige.
    Habe das Widget und die Images in den widgets Ordner gelegt unter Plugin.
    Oder habe ich etwas wichtiges übersehen ?

  26. Hallo Frank,
    Liegt vermutlich an meinen neuen Beta Sidebar Widget.
    Auch mit deinem Vorschlag ohne Erfolg.... nutze ein anderes Script jetzt.
    Trotzdem nochmals vielen Dank für die schnelle Antwort.
    LG Klaus

  27. Hi!

    Das ist ein cooles Plug In. Allerdings funktioniert bei mir die 1.1. Version nur in german - english und german - french.

    Bei der 2er Version wird 2 mal german - english und 1 mal german - french angezeigt. Woran kann das liegen?

    Grüße

  28. Hallo Frank,
    super plugin, vielen Dank.
    Das einzige kleine Problem das ich habe:
    Die Flaggen werden nicht angezeigt.
    Im image folder sind sie alle drin.
    Woran kann das liegen?

  29. Frank, vielen Dank für die schnelle Reaktion. Dank der neuen Version werden die Flaggen jetzt angezeigt. Das hat super geklappt.
    Es bleibt nur noch ne "Winzigkeit", die auch nicht eilig ist:
    Die Umrandung der Flaggen sieht ein bisschen aus wie ein Trauerrand. Wenn ich die Flaggen auf meiner Seite mit denen auf Deiner Seite vergleiche, dann ist der schwarze Rand bei mir viel dicker? Woran könnte das liegen?
    Aber wie gesagt, das hat keine Eile.
    Noch mal vielen Dank für das Super plugin.

  30. Hallo!
    Klasse Plugin, funktioniert klasse, leider fehlen bei mir die Flaggen, es werden also nur Links angezeigt, keine Grafiken obwohl ich die aktuelle Version aufgespielt habe.

    Kannst du mir da weiterhelfen? 🙂

  31. Hi Frank, bei mir funktioniert die Übersetzung von Deutsch nach Englisch leider nicht so richtig; meine Seite wird zerstückelt dargestellt. Der Text verrutscht nach unten. Sieht gruselig aus. Funktioniert das plugin nicht mit WP 2.1.2?

  32. Nachtrag: Ich glaube, es liegt am Firefox Browser, denn im IE funktioniert die Übersetzung, ohne den Blog total zu zerschießen, obwohl mein blog nun nicht mehr floated, sondern linksbündig am Bildschirmrand klebt. Das nur als Hinweis. Vielleicht hast Du ja nen Tipp, woran es liegt, dass Dein plugin bei mir nicht funzt, wie es soll?

  33. Ich denke, dass es an einem Problem der Services liegt. Im Code kannst du ja auch andere anwählen, nutze Google ,wie es bei französisch auch ist, dann geht es - denk ich (siehe Anleitung).
    LG Frank

  34. Danke für Deine schnelle Antwort, Frank. Was mich wundert, ist dass es auf deiner Seite hier mit babelfish prima funktioniert, somit denke ich nicht, dass es am Service liegt. Ich habe den Fehler bei mir nicht gefunden und nutze nun erstmal google. Da ich abwechselnd deutsch und englisch schreibe, würde ich gerne die Übersetzung jeweils pro individuellem Beitrag machen, aber geht das überhaupt?

  35. Hm, dann wird es schwierig - es muss auf jeden Fall daran liegen, dass deine Seite irgend etwas nicht überträgt, im Referer.
    Wenn du für jede Seite zwei andere Sprachen anbeiten willst, dann ist das so ohne weiteres nicht möglich, du könntest aber das plugin nochmal in den plugin-Ordner kopieren, vorher die Funktion und die Datei umbennen und dann jeweils bei der Sprache, wo du schreibst, die Funktion direkt mit einem php-Plugin im Beitrag einbinden oder für jede Sprache eine eigenes Template bauen, in dem die jeweilige Translate-Funktion schon drin ist.

  36. Vielen Dank für Deinen Rat, Frank!! Mit meinen minimalen web development Kenntnissen (räusper) habe ich die Funktion umbenannt und aus der einen Datei nun zwei gemacht; einmal für die deutsche und einmal für die englische Übersetzung. Die Funktion habe ich via php im Beitrag eingebunden, so dass im englischen Beitrag die deutsche Flagge erscheint und im deutschen Beitrag die englische Flagge.
    Was ich jedoch nicht hinbekommen habe, ist, dass beim Klick auf die jeweilige Flagge auch nur der jeweilige Beitrag übersetzt wird und nicht, wie es das plugin vorsieht, die gesamte Webseite. Dazu reichen meine Kenntnisse leider nicht. Vielleicht hat ja ein Leser (oder der Autor) eine Idee?

  37. Hallo Frank,
    Wordpress 2.2 gibt an, dass das Plugin einen "fatalen Fehler" erzeugt hat. Weißt Du da schon mehr?

  38. Hy Tobbi, danke für den Hinweis, 2.2 bringt eine eigene Funktion mit, die den gleichen Namen benutzt. Habe es geändert und hochgeladen, bitte neue Version nutzen.

  39. Hallo Frank,
    danke hat funktioniert. Ein Problem habe ich aber dennoch, welches ich jedoch auch schon vorher hatte. Aufgrund fehlenden mod_Rewrite-Rechts auf meinem Server sieht meine Permalinkstruktur wie folgt aus:
    /index.php/%category%/%year%-%monthnum%-%day%-%postname%/
    So nun zum Problem: WP Translate schneidet nach index.php den restlichen Pfad ab, sodass nur ein übersetzen der Haupt-, nicht aber der Unterseiten möglich ist.

    Gibt es da eine Möglichkeit die Pfadauflösung dementsprechend zu ändern, dass es möglich ist, WP-Translate auch mit solchen Permalinks nutzen zu können?

    Danke im voraus.

    Gruß,
    Tobbi

  40. Hallo Frank,
    Ich habe gerade auf WP2.2 upgedated, toll dass Du auch dieses Plugin schon auf Vordermann gebracht hast, danke!
    Tipp: im Plugin V:2.5 selbst solltest Du noch das Einbinden korrigieren auf den neuen Funktionsnamen wpfb_translate. Das hatte ich hier überlesen...

  41. @Frank,

    gibt es denn eine Möglichkeit, das so zu "frisieren", dass die ganze Adresse übergeben wird? =)

    Gruß,
    Tobbi

  42. @Frank,
    ich habe die Zeile
    $currenturl = $_SERVER["PHP_SELF"];

    durch die Zeile

    $currenturl = $_SERVER["REQUEST_URI"]; ersetzt.

    Jetzt funktioniert es. Danke 😉

  43. Hi,
    ich habe die Version 2.3.2 von WP. Nachdem ich das Plugin vorhin aktiviert habe sehe ich leider kein neues Feld bei den Widgets.
    Woran kann das liegen?

Comments are closed.