Skip to content

Alles für WordPress, Webentwicklung — und mehr

🚀 Massenübersetzung von .po-Dateien in Lokalise über die Browser-Konsole

🚀 Massenübersetzung von .po-Dateien in Lokalise über die Browser-Konsole

Wenn ein WordPress-Theme oder -Plugin ohne russische Übersetzung ausgeliefert wird und die .po-Datei tausend oder mehr Strings enthält, wird die manuelle Übersetzung jedes einzelnen Strings in Poedit zu einem mehrtägigen Kraftakt. Für viele Kunden ist maschinelle Übersetzung völlig akzeptabel: Google Translate liefert für Oberflächenstrings brauchbare Ergebnisse, und nur ein paar Dutzend Stellen müssen manuell nachbearbeitet werden.

Das Problem: Lokalise, eine leistungsfähige Plattform für Übersetzungsmanagement, bietet keine Schaltfläche „Alles auf einmal übersetzen" von Haus aus. Sie müssen die Auto-Übersetzen-Schaltfläche von Google Translate für jeden einzelnen String separat anklicken. Genau diese Einschränkung umgehen wir: Ein kleines Skript, das in der Browser-Konsole ausgeführt wird, simuliert das Klicken dieser Schaltfläche für die gesamte String-Liste. Die Methode wurde mit Projekten von 200 bis über 3000 Strings getestet.

💡 Kurzüberblick:

  • Bereiten Sie in Poedit aus einer POT-Vorlage eine PO-Datei mit englischen Platzhalter-Übersetzungen vor.
  • Legen Sie ein Projekt in Lokalise an, laden Sie die Quelldatei hoch und fügen Sie eine Zielsprache hinzu.
  • Kopieren Sie die Schlüssel in die Zielsprache und führen Sie das Skript in der Browser-Konsole aus.
  • Berücksichtigen Sie das AJAX-Lazy-Loading: Führen Sie das Skript so oft aus, wie Lokalise neue Stapel von Strings nachlädt.

Was Lokalise ist und warum Sie es für die Übersetzung von.po-Dateien nutzen sollten

Lokalise ist ein Translation-Management-System (TMS), das .po/.pot-Dateien standardmäßig unterstützt. Die Plattform integriert Google Translate, DeepL und eine eigene KI-Engine, sodass Sie mit einem Klick eine maschinelle Übersetzung für jeden String erhalten. Der Haken: Ein Klick pro Projekt reicht nicht aus, Sie müssen die Auto-Übersetzen-Schaltfläche für jeden String einzeln betätigen.

Bei kleinen Dateien mit 50 bis 100 Strings ist das vertretbar. Aber eine echte .pot-Datei aus einem Plugin oder Theme enthält selten weniger als 500 Strings, und große Produkte (WooCommerce, Themes mit Page-Buildern) überschreiten mühelos die 2000. Das jQuery-Skript in diesem Artikel wurde genau für diese Fälle geschrieben: Es „klickt" die Übersetzen-Schaltfläche für jeden aktuell auf dem Bildschirm sichtbaren String.

Schritt 1: Erstellen Sie eine.po-Datei aus einer.pot-Datei in Poedit

Bevor Sie mit Lokalise arbeiten, benötigen Sie eine englische .po-Datei, die aus einer .pot-Vorlage generiert wurde. Laden Sie Poedit herunter und installieren Sie es, einen kostenlosen Übersetzungseditor für Windows, macOS und Linux.

Öffnen Sie die .pot-Datei des Themes oder Plugins in Poedit und klicken Sie auf die Schaltfläche „Neue Übersetzung erstellen":

Schaltfläche Neue Übersetzung erstellen in der Poedit-Anwendung

Wählen Sie im sich öffnenden Dialog Englisch aus; dies wird die Ausgangssprache für Lokalise:

Auswahl von Englisch als Übersetzungssprache im Poedit-Dialog

Klicken Sie auf „Speichern unter" und speichern Sie die Datei mit der Endung .po. Der tatsächliche Inhalt der Strings spielt in diesem Stadium keine Rolle; wir werden in Poedit nichts übersetzen, und alle Strings bleiben als Platzhalter auf Englisch.

Speichern einer PO-Datei über die Schaltfläche Speichern unter in Poedit

Sie haben nun eine .po-Datei mit den originalen englischen Strings. Fahren wir mit Lokalise selbst fort.

Schritt 2: Legen Sie ein Übersetzungsprojekt in Lokalise an

Registrieren Sie sich auf lokalise.com; die kostenlose Testphase reicht für eine einmalige Übersetzung aus. Klicken Sie nach der Anmeldung in der Bildschirmmitte auf „Projekt hinzufügen":

Schaltfläche Projekt hinzufügen auf dem Lokalise-Startbildschirm

Füllen Sie die Felder aus: Projektname (beliebig, zum Beispiel „Theme X Übersetzung") und wählen Sie Englisch als Basissprache. Lokalise verwendet diese als Quelle für die automatische Übersetzung in andere Sprachen. Klicken Sie auf „Erstellen".

Formular für neues Projekt in Lokalise mit Auswahl der Basissprache

Schritt 3: Laden Sie die vorbereitete.po-Datei hoch

Klicken Sie im frisch angelegten Projekt auf die grüne Schaltfläche mit dem Aufwärtspfeil, um eine Datei hochzuladen:

Grüne Schaltfläche Datei hochladen in einem Lokalise-Projekt

Ein Upload-Dialog erscheint. Ziehen Sie die .po-Datei per Drag & Drop hinein oder klicken Sie auf die Fläche, um eine Datei über den Windows-Explorer auszuwählen:

Dialog zum Hochladen von PO-Dateien mit Drag-and-Drop-Unterstützung in der Lokalise-Oberfläche

Wichtig: Stellen Sie die Dateisprache auf Englisch ein. Wenn die Dateisprache nicht mit der Basissprache des Projekts übereinstimmt, wird die Schaltfläche für die automatische Übersetzung von Google Translate nicht angezeigt, da die Plattform die Ausgangssprache nicht ermitteln kann.

Klicken Sie auf „Dateien importieren":

Schaltfläche Dateien importieren mit ausgewählter englischer Sprache vor dem Import

Sobald der Import abgeschlossen ist, klicken Sie auf „Zum Projekt", um den Arbeitsbereich mit der Liste der Strings zu öffnen.

Schritt 4: Zielübersetzungssprache hinzufügen

Klicken Sie auf das Plus-Symbol im Sprachenbereich, um die Sprache hinzuzufügen, in die Sie übersetzen möchten:

Schaltfläche zum Hinzufügen einer neuen Übersetzungssprache in einem Lokalise-Projekt

Wählen Sie die Sprache aus dem Dropdown-Menü. Für Russisch wählen Sie Russian:

Auswahl von Russisch aus der Dropdown-Liste in Lokalise

Schritt 5: Schlüssel in die Zielsprache kopieren

Aktuell haben Sie eine Spalte mit englischen Strings, aber die russische Spalte ist leer. Sie müssen die Schlüssel (Originalstrings) dorthin kopieren; die automatische Übersetzung wird darauf angewendet.

Wählen Sie alle Strings aus (Strg+A), klicken Sie auf die erscheinende Aktionsschaltfläche und wählen Sie „Schlüssel in Übersetzungen kopieren…". Wählen Sie im Dialog Russian aus und klicken Sie auf „Kopieren":

Dialog zum Kopieren von Übersetzungsschlüsseln ins Russische mit ausgewähltem Russisch

Die russische Spalte enthält nun englische Platzhalter-Strings, die für die automatische Übersetzung bereitstehen.

Schritt 6: Massen-Automatikübersetzung über die Browser-Konsole

Öffnen Sie die Entwicklerkonsole: Strg+Umschalt+I (Windows/Linux) oder Cmd+Option+I (macOS). Unten sehen Sie die Schaltfläche, deren Klick unser Skript simuliert. In der aktuellen Lokalise-Oberfläche sieht sie wie ein Google-Symbol aus:

Aktualisierte Schaltfläche für maschinelle Google-Übersetzung in der Lokalise-Oberfläche

Hier ist das Skript, das diese Schaltfläche für alle sichtbaren Strings „klickt":

1/* Bulk Google Translate auto-translation in Lokalise */
2jQuery(document).ready(function ($) {
3 $('span.key-function-button.machine-all.fontello-google-circle').trigger('click');
4});

Kopieren Sie den Code, fügen Sie ihn in die Konsole ein und drücken Sie die Eingabetaste. Die Strings werden nun nacheinander übersetzt.

Wichtiger Hinweis: Lokalise nutzt AJAX-Lazy-Loading und zeigt Strings in Stapeln an. Nachdem das Skript die sichtbaren Strings verarbeitet hat, scrollen Sie die Seite nach unten, um neue, noch nicht übersetzte Strings zu laden. Fügen Sie das Skript erneut in die Konsole ein und drücken Sie die Eingabetaste. Wiederholen Sie dies, bis alle Strings übersetzt sind.

Für die alte Oberflächenversion (falls die Schaltfläche für die automatische Übersetzung anders aussieht) verwenden Sie diese Variante:

Alte Version der Google-Automatikübersetzungsschaltfläche in der Lokalise-Oberfläche
1/* Simulated click on the Google translate button (old interface) */
2jQuery(document).ready(function ($) {
3 $('a.key-function-button.machine-all').trigger('click');
4});

Sobald alle Strings übersetzt sind, scrollen Sie unbedingt durch das gesamte Projekt bis zum Ende und prüfen Sie visuell, ob jeder String in der Übersetzungsspalte gefüllt ist. Übersehene Strings wurden entweder nicht geladen (scrollen Sie erneut) oder die automatische Übersetzung ist für sie fehlgeschlagen (klicken Sie die Schaltfläche manuell).

Ergebnis der Massenübersetzung von Strings in einem Lokalise-Projekt über die Browser-Konsole

Die fertige Übersetzung können Sie über die Schaltfläche Download in der Projekt-Oberfläche herunterladen. Sie erhalten eine .po-Datei, die Sie direkt in WordPress hochladen können.

Nachfolgend sehen Sie ein kurzes Video, das den vollständigen Workflow mit .po-Dateien in Lokalise zeigt, vom Upload bis zum Export:

⁉️🤔 Häufig gestellte Fragen

Das Skript übersetzt keine Strings. Was läuft falsch?

Prüfen Sie erstens, ob die Sprache der Quelldatei beim Import mit der Basissprache des Projekts übereinstimmt. Ist das Projekt auf Englisch eingestellt, die Datei wurde aber als Russisch hochgeladen, erscheint die Google-Translate-Schaltfläche nicht. Öffnen Sie zweitens die Konsole (F12) und suchen Sie nach Fehlern. Wenn jQuery undefiniert ist, hat Lokalise seine Struktur geändert und die Selektoren im Skript müssen aktualisiert werden. Stellen Sie drittens sicher, dass Sie die Schlüssel in die Zielsprache kopiert haben (Schritt 5); andernfalls gibt es nichts zu übersetzen.

Kann ich mit DeepL statt mit Google Translate übersetzen?

Ja, sofern DeepL in Ihrem Projekt aktiviert ist. Das Prinzip ist dasselbe: Die Schaltfläche für die automatische Übersetzung ändert sich, aber Sie können das Skript an einen anderen CSS-Selektor anpassen. Ermitteln Sie das DeepL-Button-Element über den Inspektor (Strg+Umschalt+C), kopieren Sie dessen Klasse oder Attribut und setzen Sie es in den Selektor $('button-selector').trigger('click') ein.

Wie viele Strings werden bei einem einzelnen Skriptdurchlauf übersetzt?

Genau so viele, wie aktuell auf dem Bildschirm angezeigt werden. Lokalise lädt Strings in Stapeln (üblicherweise 50 bis 100), daher müssen Sie das Skript nach jedem Scrollen erneut ausführen. Bei einem Projekt mit 2000 Strings rechnen Sie mit 5 bis 7 Durchläufen.

Ist es sicher, Code in die Konsole einer fremden Website einzufügen?

Das Skript tut genau eines: Es klickt programmatisch eine Schaltfläche, die Sie sonst manuell anklicken würden. Es werden keinerlei Daten irgendwohin gesendet; der Code läuft ausschließlich in Ihrem Browser und nur auf der geöffneten Lokalise-Seite. Dennoch gilt als guter Grundsatz, Code stets zu lesen, bevor man ihn in die Konsole einfügt, besonders wenn er nicht aus der offiziellen Dokumentation stammt.

Was tun, wenn einige Strings nach der Übersetzung auf Englisch bleiben?

Wahrscheinlich haben Sie die Seite nicht bis ganz nach unten gescrollt und einen der AJAX-Ladevorgänge verpasst. Scrollen Sie das Projekt bis zum äußersten Ende, warten Sie, bis alle String-Stapel vollständig geladen sind, und führen Sie das Skript erneut aus. Bleiben einzelne Strings weiterhin unübersetzt, klicken Sie die Auto-Translate-Schaltfläche für diese manuell (das kann vorkommen, wenn die Google-Translate-API für eine bestimmte Phrase einen Fehler zurückgegeben hat).

Wenn Konsolenübersetzung die eingebaute Automatisierung schlägt

Die Konsolenmethode ist kein Ersatz für einen vollständigen TMS-Workflow. Wenn Sie professionell lokalisieren, bietet Lokalise integrierte Stapelverarbeitung (Pre-Translate), Integrationen mit CAT-Tools und kontextbewusste KI-Übersetzung. Doch für die typische Aufgabe, ein einzelnes WordPress-Theme zu übersetzen und dann weiterzuziehen, liefert der Konsolenansatz Ergebnisse in 5 bis 10 Minuten, ohne tief in die Plattformdokumentation einsteigen zu müssen.

Der gesamte Prozess, von der Installation von Poedit bis zur fertigen .po-Datei, passt in drei Schritte: Datei vorbereiten, in Lokalise hochladen, Skript ausführen. Übersteigt der Umfang 500 Strings, beläuft sich die Zeitersparnis gegenüber dem manuellen Klicken der Schaltfläche für jeden einzelnen String auf Dutzende Minuten. Bei 2000+ Strings ist es der Unterschied zwischen „beim Kaffee erledigt" und „hat den halben Tag gekostet".