Lade Inhalte mit AJAX wird von vielen WordPress-Themes und -Plugins (wie WooCommerce) um Inhalte anzuzeigen und die Funktionalität zu erweitern, ohne die Seite neu zu laden. Für eine vollständig mehrsprachige Website müssen wir AJAX-Strings in WordPress übersetzen, sowie Standard-Strings aus Ihren Beiträgen und Seiten.
In WordPress sehen Sie Ajax-Strings in:
- Kassenseiten
- Mehrschritt-Formulare
- Widgets
- unendliche Scrollbalken
- Buchungsformulare
In TranslatePress, wir erkennen AJAX-Strings und Sie können sie genauso übersetzen wie Normale Zeichenkette. Aber dort, wo die Magie passiert, ist es nicht wirklich. Schauen wir uns also genauer an, wie wir dies tatsächlich implementiert haben.
Der Trick zur Übersetzung von AJAX-Strings in WordPress besteht darin, dieselbe Funktionalität für AJAX-geladene Inhalte wie für eine normale Seitenladung zu verwenden.
Das bedeutet, wir treffen keine Annahmen darüber, was das Frontend-JavaScript zur Ausgabe verwendet oder was es mit der AJAX-Antwort macht.
Wir übersetzen den Inhalt einfach, solange er HTML ist.
Gettext-Felder in AJAX-Anfrage
Gettext-Felder bereits in Übersetzungs-Tags verpackt, die vom gettext-Filter stammen. Solange das Gebietsschema in WordPress korrekt eingerichtet ist, erkennen wir alle Zeichenfolgen, die in dieser Ajax-Anfrage geladen werden.
Es besteht also eine gute Chance, dass all diese Zeichenketten bereits aus .po-Dateien für viele Plugins übersetzt erscheinen werden.
Schlussfolgerungen
Indem wir AJAX-Anfragen auf der PHP-Seite übersetzten, mussten wir keine zwei Parser (sowohl PHP als auch JS) haben. Also mehr Code-Wiederverwendung, weniger Komplexität und hoffentlich weniger Fehler.
Wir haben immer noch einen JS DOM-Änderungs-Listener, der Textänderungen erfasst, die keine AJAX-Anfragen sind, aber das ist eine Diskussion für ein anderes Mal. Er macht die Dinge ein wenig anders als der PHP-Parser, sodass wir zwar zusätzlichen Code verwalten müssen, der konzeptionell dasselbe tut, aber er hat deutlich weniger Auswirkungen auf das Gesamterlebnis.
Das fasst es ziemlich gut zusammen. TranslatePress wurde von Anfang an so konzipiert, dass Sie alles über dieselbe einfache Benutzeroberfläche übersetzen können. Die AJAX-Übersetzung stand ganz oben auf unserer To-do-Liste, und wir sind sehr zufrieden mit dem Ergebnis. Beginnen Sie also noch heute mit der Übersetzung dieser AJAX-gesteuerten Benutzeroberflächen.
Haben Sie noch Fragen zur Übersetzung von AJAX-Strings in WordPress? Lassen Sie es uns in den Kommentaren wissen!
Wenn Sie diesen Beitrag hilfreich fanden, schauen Sie sich bitte unsere an YouTube-Kanal, wo wir ständig kurze und leicht verständliche Video-Tutorials hochladen. Sie können uns auch folgen auf Facebook und Twitter um der Erste zu sein, der jedes Mal Bescheid weiß, wenn wir etwas posten.

Ich habe Probleme mit Ihrem Plugin… wenn ich meine Checkout-Felder übersetze, erhalte ich bei der Übermittlung der Bestellung in allen Sprachen einen internen Serverfehler. Können Sie mir helfen, dies zu beheben?
Bitte eröffnen Sie ein Ticket auf unserer Webseite und schildern Sie dort Ihr Problem.
Vielen Dank für Ihre Antwort. Ich kann nur ein Ticket mit einer Lizenz einreichen… Ich verwende derzeit Ihr kostenloses Plugin, daher habe ich keine Seriennummer, die ich in dieses Formular eingeben kann.
Schreib dann in die kostenlosen Foren, erkläre dort dein Problem.