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.

  1. Die Datei “website-translator.zip” entpacken
  2. Das enthaltene Verzeichnis “translator” auf den Server hochladen
  3. In der Datei “conf.php” die erforderlichen Einstellungen vornehmen
  4. Über PHPmyAdmin eine neue Tabelle anlegen und die Datei “mysql_setup_translator.sql” in die mySQL Datenbank importieren
  5. Die Datei “index.php” ( nicht die “index.php” vom Translator ! ) im Document-Root foldendermaßen anpassen:
    [code lang="php"]
    $host_arr = explode(".", $_SERVER['HTTP_HOST']);
    $languages = array('it', 'ko', 'zh', 'zt', 'pt', 'en', 'el', 'nl', 'de', 'fr', 'es', 'ja', 'ru', 'zh-CN', 'ar');
    if(in_array($host_arr[0], $languages)){
    // 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 */
    define('WP_USE_THEMES', true);
    require('./wp-blog-header.php');
    }[/code]
  6. Folgender Code ist für die Darstellung der Länderflaggen verantwortlich und sollte an geeigneter Stelle in der Website eingebunden werden
    [code lang="php"]
    include($_SERVER['DOCUMENT_ROOT'] . "/translate/flags.php");
    [/code]
  7. Fertig

Die benötigte Zip-Datei kann hier runtergeladen werden.

… Und fertig ist die Laube ;)

11 Responses to “Website Translator”

  1. Peer Says:

    Kann man sich das ganze schon irgendwo im Einsatz angucken ??

  2. leTrice Says:

    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

  3. leTrice Says:

    Eine erste Version des Website Translator ist nun im Einsatz.
    Zu finden auf diesem IPhone Unlock Service Blog :)

  4. Chris Says:

    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.

  5. Chris Says:

    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.

  6. Chris Says:

    Diese Meldung erhalte ich z.B., wenn ich auf die portugiesische Flagge klicke:

    pt.software-solutions-juergens.com/details.php

  7. leTrice Says:

    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 :)

  8. loco Says:

    Kann nur Peers Frage wiederholen:
    Kann man sich das ganze schon irgendwo im Einsatz angucken ??

    Der IPhone Unlock Service Blog scheint ja nicht mehr online zu sein.

  9. Patrice Juergens Says:

    Hi loco,

    Bisher ist mir von einer weiteren Verwendung auf www.birdgallery.eu bekannt.
    Chris hat den Translator hier auf die Software “images4u” gepflanzt.

  10. weeke Says:

    Ok this is super !!!

  11. Server Says:

    Hi,

    hat eventuell noch jemand ein Beispiel für eine WordPress Umsetzung?

    Lg

Leave a Reply

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

© 2010 » Website Translator - [ SEO ] [ Web - Development ] by Software | Solutions | Juergens