Website Translator
Vor einiger Zeit habe ich hier im Blog ein paar Übersetzungs-Plugins für Wordpress ausprobiert und mich dadurch zu einer Eigenentwicklung inspirieren lassen. Als Übersetzungs-Service wählte ich den Google-Translator, da das Ergebnis etwas überzeugender ausfiel als das von Babelfish. Allerdings ist die Qualität der Übersetzung auch hier bei weitem nicht perfekt.
Folgende Merkmale hat der Website-Translator:
- Einfache Konfiguration über die Datei “conf.php”
- Cache-Expiration lässt sich individuell einstellen
- Es werden nur die Länderflaggen ausgegeben, die Google basierend auf der eingestellten Standard Domainsprache übersetzen kann
- Übersetzte Seiten werden in länderspezifischen Subdomains ausgegeben
Den Website-Translator habe ich nicht als Wordpress-Plugin geschrieben, da er sich so einfach in jede bestehende PHP-Website integrieren lässt und nicht allein auf Wordpress beschränkt ist.
Zum erfolgreichen Betrieb benötigt der Webserver folgende Voraussetzungen:
Die nun folgende Installations-Beschreibung bezieht sich auf Wordpress.
- Die Datei “website-translator.zip” entpacken
- Das enthaltene Verzeichnis “translator” auf den Server hochladen
- In der Datei “conf.php” die erforderlichen Einstellungen vornehmen
- Über PHPmyAdmin eine neue Tabelle anlegen und die Datei “mysql_setup_translator.sql” in die mySQL Datenbank importieren
- Die Datei “index.php” ( nicht die “index.php” vom Translator ! ) im Document-Root foldendermaßen anpassen:
-
$languages = array(‘it’, ‘ko’, ‘zh’, ‘zt’, ‘pt’, ‘en’, ‘el’, ‘nl’, ‘de’, ‘fr’, ‘es’, ‘ja’, ‘ru’, ‘zh-CN’, ‘ar’);
-
// Hier wird die Website übersetzt
-
include($_SERVER[‘DOCUMENT_ROOT’] . “/translate/index.php”);
-
}
-
else{
-
// Hier im Else-Block sollte der schon vorhandene Code der "index.php" in der Standardsprache stehen
-
/* Short and sweet */
-
require(‘./wp-blog-header.php’);
-
}
- Folgender Code ist für die Darstellung der Länderflaggen verantwortlich und sollte an geeigneter Stelle in der Website eingebunden werden
-
include($_SERVER[‘DOCUMENT_ROOT’] . “/translate/flags.php”);
-
- Fertig
Die benötigte Zip-Datei kann hier runtergeladen werden.
An dieser Stelle möchte ich darauf hinweisen, daß der Entwicklungsstand des Website-Translators noch ziemlich beta ist, über Hinweise zur Verbesserung freue ich mich natürlich sehr.
Googles IP Adressen
Die IP-Adressen der Google Server sind für die Ausgabe der übersetzten Seiten von entscheidender Bedeutung.
Sollten die Links der übersetzten Seiten mit einer IP beginnen, so hilft es in der index.php folgende Zeilen zu modifizieren.
-
#=================================================
-
// Rewrite URL´s added by Google
-
# If your translated URLs contain some IP Addresses, Google might have add some new
-
# In this case, you shoul add a new Linie, including this Ip
-
# E.g. -> $GetPage = preg_replace(’/href="http:\\/\\/123\\.123\\.123\\.123\\/.*?[&|&]u=(.*?)[^>]>/’, ‘href="\\1">’, $GetPage);
-
$GetPage = preg_replace(‘/href="http:\\/\\/216\\.239\\.39\\.104\\/.*?[&|&]u=(.*?)[^>]>/’, ‘href="\\1">’, $GetPage);
-
$GetPage = preg_replace(‘/href="http:\\/\\/216\\.239\\.37\\.104\\/.*?[&|&]u=(.*?)[^>]>/’, ‘href="\\1">’, $GetPage);
-
$GetPage = preg_replace(‘/href="http:\\/\\/64\\.233\\.179\\.104\\/.*?[&|&]u=(.*?)[^>]>/’, ‘href="\\1">’, $GetPage);
-
$GetPage = preg_replace(‘/href="http:\\/\\/72\\.14\\.203\\.104\\/.*?[&|&]u=(.*?)[^>]>/’, ‘href="\\1">’, $GetPage);
-
-
#=================================================
-
Hier sollte dann nach gleichem Muster eine Zeile mit der neuen IP hinzugefügt werden.
Gerade eben ist mir z.B. eine weitere IP Adresse aufgefallen.
209.85.135.104/translate_c?hl=en&ie=UTF-8&oe=UTF-8&langpair=de%7Cen&u=http://en.software-solutions-juergens.com/board.php?sessionid%3D04412fc9da525bb2c6a81cf91351bd90
Um diese IP aus den Links zu filtern, einfach folgende Zeile unter dem eben genannten Block einfügen.
-
$GetPage = preg_replace(‘/href="http:\\/\\/209\\.85\\.135\\.104\\/.*?[&|&]u=(.*?)[^>]>/’, ‘href="\\1">’, $GetPage);
… Und fertig ist die Laube
Sollten Dir weitere IP´s bekannt sein wär es klasse, wenn Du sie hier posten würdest ![]()





















Januar 8th, 2008 at 11:08
Kann man sich das ganze schon irgendwo im Einsatz angucken ??
Januar 12th, 2008 at 13:46
Hallo Peer,
Momentan ist der Website Translator noch nicht im Einsatz, werde aber an dieser Stelle einen Link setzen sobald die Multilingual-Seite fertig ist. Ein paar kleine Bugs sind mir an dem Script noch aufgefallen, die werden dann auch gefixt sein.
Viele Grüße, Patrice
Ps. Du bist ja auch ein Flieger

Übrigens ein altes Hobby von mir, allerdings eher im Maßstab bis max 1:3 für Segelmodelle
Januar 26th, 2008 at 18:58
Eine erste Version des Website Translator ist nun im Einsatz.
Zu finden auf diesem IPhone Unlock Service Blog
Februar 2nd, 2008 at 11:49
Hallo Herr Juergens,
ich würde gern Ihren Translator nutzen.
Wie funktioniert der genau? Ich hatte nachdem ich alles soweit eingerichtet hatte die Meldung, dass Ihre Seite nicht verfügbar ist. MUSS die Verbindung bestehen? Vielleicht habe ich auch die Anpassung der config.php nicht richtig gemacht. Vielleicht könnten Sie mich bei der Einrichtung unterstützen?
Gruß Chris.
Februar 2nd, 2008 at 12:20
Ich denke, es liegt an den define(…) Eintragungen. Da weiß ich nicht, ob und wie ich da etwas andern muss (bis auf die Datenbankeinträge, die sind klar).
Das müsste doch hinzukriegen sein? Ich schicke Ihnen auch gern eine URL, damit sie sich das “vor Ort” ansehen können. Die Flags werden schon mal angezeigt.
Februar 2nd, 2008 at 12:22
Diese Meldung erhalte ich z.B., wenn ich auf die portugiesische Flagge klicke:
pt.software-solutions-juergens.com/details.php
Februar 2nd, 2008 at 19:24
Soeben habe ich eine neue Version vom Website Translator hoch geladen.
Die neue Version beinhaltet ein Bugfix, welches einen kleinen Zeilendreher und einen falschen Wert für den Datenbanknamen korrigiert.
@Chris
Das Script benötigt zwar eine Internetverbindung um den Google-Server zu requesten, allerdings wird keine Verbindung zu einem Server von mir aufgebaut.
(Nur für den Fall daß Du mit einer Offline-Umgebung, z.B. XAMPP arbeitest)
Aus Deinem Link ersehe ich, daß Du die entsprechende Zeile in der conf.php nicht angepasst hast. Um einen Anhaltspunkt zu bieten, habe ich in den entsprechenden Feldern das Beispiel “software-solutions-juergens.com” belassen, um zu verdeutlichen, was eingetragen werden muss.
Ps. Vielen Dank für den Hinweis auf den Bug
Februar 3rd, 2008 at 11:14
Das nächste Update wird die IP Adressen von Google an einer zentralen Stelle im Internet auslagern, so daß diese nicht manuell eingepflegt werden müssen.
So braucht man nicht jedesmal wenn eine neue IP auftaucht im Programmcode rum zu suchen.
Über Informationen zu neuen IP´s freue ich mich natürlich weiterhin
Gruß, Patrice