Wie ich meine Website mit einem KI-Agenten und TranslatePress übersetze und wo er Fehler gemacht hat

03.10.2026

Warum ich damit angefangen habe

fixops.pro hat vier Sprachen: Englisch als Hauptsprache sowie Deutsch, Griechisch und Ukrainisch. Jede Seite, jede Formularbeschriftung und jeden Kategorienamen von Hand zu übersetzen dauert lange, und die automatische Übersetzung des Plugins klingt oft trocken und ungenau. Ich wollte einen anderen Ansatz ausprobieren: die Routinearbeit an einen KI-Agenten abgeben und die Kontrolle selbst behalten.

Diese Forschungsnotiz beschreibt, wie das funktioniert, was dabei herauskam und welche Fehler mir unterwegs aufgefallen sind.

Ein Experiment mit Claude

Ich nutze KI schon lange in meiner Arbeit und wollte sehen, wie weit ich mit Claude von Anthropic bei einer konkreten Aufgabe kommen kann: einer mehrsprachigen WordPress-Website. Mir ging es nicht darum, ein Modell „einen Absatz übersetzen“ zu lassen, sondern es in einen echten Prozess einzubinden: Es soll selbst unübersetzte Strings finden, das Ergebnis dorthin schreiben, wo das Plugin es erwartet, und dabei die Website nicht beschädigen.

Wie es technisch funktioniert

TranslatePress selbst registriert in WordPress nur einige wenige Einstellungsaktionen (zum Beispiel die Liste der Sprachen), und standardmäßig sind sie für Agenten über MCP nicht geöffnet. Aktionen zum Lesen und Schreiben der Übersetzungen selbst gibt es nicht. Diesen fehlenden Teil habe ich als kleines Plugin geschrieben: TranslatePress AI Bridge. Es fügt der Website „Abilities“ für die Arbeit mit dem Wörterbuch hinzu, und Agenten verbinden sich von dort aus.

Website-Ebene: WordPress Abilities

Seit WordPress 6.9 hat der Kern eine Abilities API: Ein Plugin deklariert kleine Operationen mit einer Beschreibung ihrer Ein- und Ausgaben. Mein Plugin deklariert sieben davon:

AbilityWas sie tut
get-stringsGibt Wörterbuch-Strings einer gewählten Sprache seitenweise zurück. Standardmäßig nur unübersetzte.
register-page-stringsLädt eine Seite in der Zielsprache, damit TranslatePress ihre Strings ins Wörterbuch aufnimmt.
save-translationsSchreibt Paare aus „ID und Übersetzung“ über die eigene Abfrageschicht von TranslatePress.
get-excluded-selectors und update-excluded-selectorsLiest und ändert die Liste „Diese Selektoren nicht übersetzen“.
purge-stringsLöscht unnütze unübersetzte Strings anhand von ID oder regulärem Ausdruck.
translate-via-apiÜbersetzt unübersetzte Strings mit Claude über den im Plugin hinterlegten API-Schlüssel.

Verbindungsebene: MCP

Das Model Context Protocol verbindet solche Abilities als Werkzeuge mit einem KI-Agenten. Auf der Website läuft der MCP Adapter, der die markierten Abilities veröffentlicht. Der Agent fragt zuerst die Website, was sie kann und welche Parameter jede Aktion hat, und ruft sie erst dann auf.

Im Chat sage ich also zu Claude „Übersetze die Strings ins Griechische“, und er liest das Wörterbuch, übersetzt und schreibt das Ergebnis selbst. Ich muss nicht den visuellen TranslatePress-Editor öffnen und auf dessen admin-ajax Anfragewarteschlange warten.

Autonome Ebene: mein eigener Anthropic-API-Schlüssel

Die Arbeit über einen Chat bedeutet, dass ich dabeisitzen und zusehen muss. Damit die Website selbstständig übersetzen kann, ohne Client und ohne offene MCP-Sitzung, habe ich dem Plugin Unterstützung für die Anthropic API hinzugefügt, mit meinem eigenen Schlüssel (Anthropic stellt dem Schlüsselinhaber die Kosten in Rechnung). Es gibt drei Wege, einen Lauf zu starten:

  • eine Schaltfläche in den Plugin-Einstellungen;
  • ein WP-CLI-Befehl: wp trpab translate --lang=de_DE --dry-run, danach derselbe ohne --dry-run;
  • die translate-via-api -Funktion oder die integrierte Engine „Claude (Anthropic API)“ in der automatischen Übersetzung von TranslatePress.

Standardmäßig verwendet das Plugin das Modell claude-haiku-4-5 sendet 40 Strings pro Anfrage und höchstens 200 Strings pro Lauf. In den Einstellungen lassen sich ein Glossar und Stilhinweise festlegen, zum Beispiel „Website schreiben, nicht Webseite“. Der Schlüssel kann liegen in wp-config.php, in einer Umgebungsvariablen oder verschlüsselt in der Datenbank. Die letzte Option zeigt den Schlüssel nie wieder an.

Vertrauensmodell

Ich habe das Vertrauen so aufgebaut, dass der Agent Fehler machen kann, ohne große Folgen zu verursachen:

  • Berechtigungen. Dieselben wie beim TranslatePress-Editor (manage_options standardmäßig).
  • Maschinenstatus. save-translations speichert Übersetzungen mit dem Status „maschinell“ und überschreibt standardmäßig niemals Strings, die ein Mensch geprüft hat.
  • Testlauf. Schreiben, Löschen und API-Übersetzung laufen standardmäßig als Testläufe und zeigen, was passieren würde, ohne etwas zu ändern.
  • Nur die eigene Website. register-page-strings ruft nur URLs der eigenen Domain der Website auf.
  • Sicherung. Vor Massenoperationen brauchen Sie eine Kopie der wp_trp_dictionary_* Tabellen.

Das Prinzip ist einfach: Der Agent schlägt vor und schreibt, ich lege die Regeln fest, prüfe das Ergebnis und treffe die Entscheidungen.

Was schiefgelaufen ist

Müll im Wörterbuch

Sobald der Agent die erste Seite registriert hatte, füllte sich das Wörterbuch mit viel Ballast:

  • Symbolnamen (check_circle, gpp_bad, volunteer_activism). Das ist die Schrift Material Symbols, bei der ein Symbol als Text angegeben wird, und das Plugin hielt ihn gewissenhaft für Wörter;
  • Vorlagentext von Divi wie Lorem ipsum und „Your content goes here“;
  • Testbeiträge wie „Hello world!“;
  • die Lauftextzeile in der Kopfzeile: Sie wird Buchstabe für Buchstabe getippt, und jede Zwischenversion (checking client-c.io … res, … resp, … respo) wurde zu einem eigenen String;
  • Zahlen und eine Zeitzone wie 18ms und GMT+2.

In jeder Sprache sammelten sich etwa fünfzig solcher Strings. Ich habe sie mit einem regulären Ausdruck entfernt, zuerst als Testlauf, der genau zeigt, was gelöscht würde, und erst dann wirklich.

Aber das Aufräumen des Wörterbuchs behandelt nur das Symptom. Die Ursache liegt woanders, deshalb habe ich zwei Dinge getan:

  • Ich habe die Container mit dynamischem Inhalt zu den Ausnahmen des Plugins hinzugefügt (#tickerText, [data-count-to], .notranslate);
  • Ich habe die Symbole aus dem Text ins CSS verlegt: Statt eines Wortes im Markup wird das Symbol jetzt per content im Stylesheet gezeichnet. Das Plugin sieht diesen Text nicht, deshalb tauchen die Strings nicht mehr auf.

IDs sind nicht gemeinsam

Derselbe englische Satz hat in jeder Sprache eine andere Nummer. Mein griechisches Wörterbuch war gegenüber dem deutschen um Dutzende IDs versetzt. Wendet man die ID-Liste einer Sprache auf eine andere an, wird die Übersetzung in die falschen Strings geschrieben. Deshalb holt sich der Agent für jede Sprache eine neue Liste.

Der Cache zeigt die alte Seite

Ich habe die Übersetzungen gespeichert, die Seite geöffnet und Englisch gesehen. Die Ursache war der LiteSpeed-Cache, der eine gespeicherte Kopie auslieferte. Um zu prüfen, ob die Übersetzungen vorhanden sind, habe ich die Seite mit einem beliebigen Parameter in der URL abgerufen, was den Cache umgeht. Nach dem Leeren des Caches passte alles.

Seiten ohne Beiträge werden nicht übersetzt

Die Kategorie „Off the Grid“ war angelegt, hatte aber noch keine Beiträge, und ihre Seite lieferte einen 404-Fehler. Strings mit ihrem Namen erschienen erst im Wörterbuch, als die Kategorie auf anderen Seiten angezeigt wurde.

Wo die KI Fehler gemacht hat

Das ist der wichtigste Teil. Die Übersetzungen wirkten flüssig, aber als ich sie sorgfältig noch einmal las, fand ich echte Fehler.

Im Griechischen:

  • ein nicht existierendes Wort statt „ich habe angefangen“ (im Text stand „Ύργισα“ statt „Ξεκίνησα“);
  • eine Formulierung, die „Websites, die wegen Hackern verloren gehen“ bedeutet, statt „Websites, die gehackt werden“;
  • Listenpunkte endeten mit einem Semikolon. Im Griechischen ist das ein Fragezeichen, die Liste las sich also wie eine Kette von Fragen;
  • das Wort für „Programm“ statt „Unternehmen“, wo eine Agentur gemeint war;
  • mehrere Tippfehler und Kongruenzfehler.

Im Ukrainischen: ein Wort enthielt den lateinischen Buchstaben i mitten in kyrillischen Zeichen. Mit bloßem Auge ist das unsichtbar, aber eine Textsuche findet ein solches Wort nicht.

Ich habe etwa dreißig griechische Strings und einen ukrainischen String korrigiert. Das Deutsche habe ich nicht von Hand nachgelesen, und das ist eine ehrliche Schwachstelle.

Das Fazit: Eine KI-Übersetzung taugt als Entwurf, nicht als Endergebnis. Das gilt besonders für Sprachen, die man selbst nicht liest.

Wie ich die Qualität kontrolliere

  • String-Status. Jede Übersetzung wird mit dem Status „maschinell“ gespeichert. Strings, die ein Mensch geprüft hat, erhalten den Status „geprüft“, und der Agent lässt sie standardmäßig in Ruhe.
  • Testlauf. Jede Massenaktion, besonders das Löschen, läuft zuerst in einem Modus, der nichts ändert und nur eine Liste zeigt.
  • Ein Muttersprachler als Leser. Für Sprachen, die Sie nicht kennen, brauchen Sie mindestens einen Leser. Für das Griechische ist das der Schritt, den ich beim nächsten Mal früher gehen würde.
  • Prüfung der Live-Seite. Ich vertraue einem Schreibvorgang ins Wörterbuch erst, wenn ich die Übersetzung auf der Live-Seite sehe, bei umgangenem Cache.

Was Sie prüfen sollten, bevor Sie das wiederholen

  1. Lizenz und Bedingungen. Mein Plugin ist für das kostenlose TranslatePress gebaut und arbeitet über dessen eigene Abfrageschicht. Kostenpflichtige Versionen und Add-ons können eigene Nutzungsbedingungen haben. Lesen Sie diese also, bevor Sie einen KI-Agenten damit verbinden, und fragen Sie im Zweifel den Support.
  2. Wessen Texte es sind. Die Strings gehen an ein Modell. Für Ihre eigene Website ist das in Ordnung, aber Kundentexte dürfen Sie so nicht ohne Einwilligung senden.
  3. Wessen Rechnung es ist. Bei der API wird jeder Lauf über Ihren Schlüssel abgerechnet. Beginnen Sie mit einem Testlauf: Er zeigt, wie viele Strings und Tokens ein Lauf benötigen würde.
  4. Eine Sicherung. Machen Sie vor Massenoperationen eine Kopie der Wörterbuchtabellen.

Fazit

An einem Tag habe ich den Beitrag, die Oberfläche und die Kategorien in drei Sprachen übersetzt und das Wörterbuch in Ordnung gebracht. Von Hand hätte das viel länger gedauert.

Das Hauptergebnis ist aber ein anderes. Der Agent beschleunigt die Routine, die Verantwortung für die Genauigkeit bleibt beim Menschen. Ohne Prüfung wäre im griechischen Text ein Wort geblieben, das es nicht gibt.

Lassen Sie uns zusammenarbeiten

Wenn Sie eine mehrsprachige WordPress-Website brauchen, Hilfe mit TranslatePress oder einen sorgfältigen Weg, KI in solche Prozesse einzubinden, ohne an Qualität zu verlieren, melden Sie sich bei mir. Ich antworte schnell und ohne unnötige Anrufe.

Auf dieser Seite

Brauchen Sie Hilfe?

Betrifft Sie das auch auf
Ihrer eigenen Website?

Wählen Sie, was zu Ihnen passt. Jede Schaltfläche öffnet das passende Formular auf der Startseite.

01

gpp_bad

Ihre Website ist kaputt

Gehackt, abgestürzt oder nach einem Update seltsam? Beschreiben Sie in Ihren eigenen Worten, was nicht stimmt. Ich antworte in der Regel innerhalb von 30 Minuten.

02

groups

Du leitest eine Agentur

White-Label-Fixes, unsichtbar für Ihren Kunden. Sie schicken mir das Problem, ich behebe es, Sie leiten meinen Bericht weiter.

03

volunteer_activism

Sie sind eine gemeinnützige Organisation, die der Ukraine hilft

Registrierte Wohltätigkeits- und gemeinnützige Organisationen, die die Ukraine unterstützen, erhalten jeden Monat eine Stunde kostenlose WordPress-Arbeit.

Weitere Erkenntnisse

Abseits des Netzes

03.10.2026

Hallo, ich bin Alex, und das ist FixOps.pro