Heute haben wir die erste öffentliche Beta einer komplett neuen String-Übersetzung veröffentlicht, die alle Datenbankaufrufe zur Übersetzung von Strings im Frontend und im WordPress-Admin-Bereich vermeidet.
Die Funktionsweise der String-Übersetzung in WPML hat sich im Laufe der Jahre geändert. Unser Ziel war es immer, es Ihnen zu ermöglichen, jeden Text auf Ihrer Website zu übersetzen und den Server so wenig wie möglich zu belasten.
In den letzten Jahren sind Plugins und Themes größer geworden und verwenden viel mehr übersetzbare Strings. Eine typische Admin-Seite, die einen Page-Builder, WooCommerce und mehrere andere große Plugins öffnet, könnte über 30.000 Strings aus der Datenbank laden. Dieses Wachstum bei der Anzahl der übersetzbaren Strings hat Websites mit der String-Übersetzung langsamer gemacht. WPML ermöglicht es Ihnen, alles auf der Seite zu übersetzen, und wenn es diese vielen Strings filtert, werden die CPU und die Datenbank belastet.
Heute sind wir mit einer neuen Version bereit, die die Funktionsweise der String-Übersetzung komplett ändert. Diese neue Version bringt zwei wichtige Änderungen mit sich:
- Nur Strings verarbeiten, die Sie übersetzen möchten
- Sich auf .mo-Dateien stützen, um Übersetzungen anzuwenden
Die erste Änderung bedeutet, dass die Tabelle der String-Übersetzung standardmäßig nicht alle Texte aller Plugins und des Themes enthält. Für die überwiegende Mehrheit der Websites bringen Themes und Plugins ihre eigenen .mo-Dateien mit guten und vollständigen Übersetzungen mit. Es besteht für WPML keine Notwendigkeit, all diese Strings zu filtern (und übersetzbar zu machen). Wenn Sie die Übersetzung von Texten aus einem Plugin überschreiben möchten, können Sie dies weiterhin tun. Sie können auswählen, welche Plugins Sie möchten, und WPML wird die davon stammenden Strings registrieren.
Die zweite große Änderung bedeutet, dass WPML für die Übersetzung keines Strings die Datenbank aufruft. WPML kompiliert .mo-Dateien für Ihre Übersetzungen und lässt WordPress diese laden. Die Größe dieser .mo-Dateien hängt von der Anzahl der Strings ab, die Sie übersetzen. Auf den meisten Servern ist das Laden einer Datei deutlich schneller als das Laden mehrerer Einträge aus der Datenbank (die Datenbank ist für viele Websites der Performance-Engpass).
Erstellung der .mo-Dateien
Die WPML String-Übersetzung übernimmt die Erstellung und Pflege der .mo-Dateien automatisch. Dies geschieht jedes Mal, wenn Sie einen String auf der Seite WPML -> String-Übersetzung übersetzen.
Nach dem Upgrade auf diese Beta müssen Sie die Dateien jedoch zum ersten Mal erstellen.
Wenn Ihre Website vor dem Upgrade übersetzte Strings hatte, sehen Sie nach der Aktualisierung der String-Übersetzung auf jeder Admin-Seite den folgenden Dialog:
Sie können die .mo-Dateien neu erstellen, wenn beim Testen der Beta etwas schiefgeht.
Gehen Sie dazu wie folgt vor:
- Gehen Sie zu WPML -> Support.
- Klicken Sie auf den Link Fehlerbehebung.
- Scrollen Sie zum Ende der Seite und klicken Sie auf Show custom MO Files Pre-generation dialog box.
- Laden Sie die Seite neu (dieser Schritt wird in der endgültigen Version nicht mehr nötig sein).
- Der Dialog, mit dem Sie die .mo-Dateien neu erstellen können, wird angezeigt.
Die Ergebnisse
Diese Version läuft bereits auf all unseren Live-Websites (WPML.org, Toolset.com und ICanLocalize.com). Sie funktioniert reibungslos und die Server laufen einwandfrei. Die String-Übersetzung war nie ein wesentlicher Faktor für die Performance unserer Websites, daher verwenden wir andere Websites für die Performance-Analyse.
Wir haben Dutzende von Websites von Kunden erhalten, bei denen die String-Übersetzung viel mehr ins Gewicht fiel. Auf all diesen Websites können wir bestätigen, dass die Serverauslastung durch die String-Übersetzung praktisch auf null gesunken ist. Diese Websites laden jetzt in etwa der halben Zeit wie zuvor (Hurra!).
Aktueller Entwicklungsstatus
Diese Beta ist bereit für Ihre Tests. Der einzige Vorbehalt ist, dass sie noch nicht auf Multisite-Installationen funktioniert. Wenn Sie eine (reguläre) WordPress-Einzelwebsite-Installation haben und vermuten, dass Sie Performance-Probleme aufgrund der String-Übersetzung haben, testen Sie diese Beta. Wir werden diese Beta einige Wochen lang laufen lassen und in der Zwischenzeit Kundenfeedback sammeln. Wir werden die Unterstützung für Multisite vervollständigen, während wir weitere Kunden-Websites analysieren.
Wenn Sie zu dieser Beta gewechselt sind und immer noch erhebliche Performance-Probleme im Zusammenhang mit WPML haben, möchten wir Ihre Website sehen. Wir finden möglicherweise andere Bereiche mit Performance-Problemen, die wir beheben müssen. Wir möchten sicherstellen, dass zu dem Zeitpunkt, an dem dies in die Produktionsphase geht, niemand mehr Performance-Probleme im Zusammenhang mit WPML hat. Unser Ziel ist es, WPML 4.3 in der ersten Septemberhälfte für den Live-Betrieb zu veröffentlichen.
Herunterladen und ausprobieren
Denken Sie daran, dass diese Version noch nicht auf Multisite-Installationen funktioniert!Es ist OK, sie auf Entwicklungswebsites und auf Live-Websites zu verwenden, aber mit einiger Vorsicht.
Automatisches Update
Um diese Beta zu erhalten, gehen Sie zu Plugins -> Installieren und klicken Sie auf den Tab Kommerziell:

Aktivieren Sie auf dieser Seite den Beta-Kanal und aktualisieren Sie die Plugins automatisch.
Besuchen Sie unsere Seite über die Installation von Beta-Versionen von WPML für weitere Details.
Um die automatischen Updates zu erhalten oder zum Beta-Kanal zu wechseln, müssen Sie Ihre Website registrieren.
Manuelles Update
Sie können das Update auch manuell durchführen.
Befolgen Sie dazu die Anweisungen unter WPML manuell aktualisieren (auch wenn sich dies auf eine alte Version von WPML bezieht, ist der Vorgang genau derselbe).
Feedback?
Nachdem Sie diese Beta von WPML ausprobiert haben, würden wir uns über Ihr Feedback freuen. Bitte teilen Sie uns alle Informationen mit, die Sie können. Wir möchten wissen, wenn diese Beta Performance-Probleme behebt und ob es noch verbleibende Performance-Probleme gibt, um die wir uns kümmern müssen.
Hinterlassen Sie Ihre Kommentare und wir werden uns bei Ihnen melden.
Update – 2019-08-16
Wir haben eine neue Beta veröffentlicht, die die folgenden Probleme behebt:
- Inkompatibilität mit WPML Multilingual & Multicurrency for WooCommerce: Sie können entweder die aktuelle Version oder die in dieser Version enthaltene Beta von WPML Multilingual & Multicurrency for WooCommerce installieren.
- Schlechte Performance beim Speichern des Beitrags mit einer großen Anzahl benutzerdefinierter Felder.
Bisher bekannte Probleme
Wir arbeiten noch am Feinschliff einiger Teile. Stand heute ist dies die Liste der bekannten Probleme:
- Multisite wird noch nicht unterstützt.
- Das Löschen von Strings aus der String-Übersetzung aktualisiert die generierte .mo-Datei nicht.
- Das Löschen aller Strings einer Domain löscht die generierte .mo-Datei nicht.
- Nach dem Löschen aller Strings einer Domain löscht die Neuerstellung der .mo-Dateien (siehe „Erstellung der .mo-Dateien“ oben, um herauszufinden, wie die Dateien neu erstellt werden) die entsprechende .mo-Datei nicht.
- Übersetzte Admin-Texte gaben in der Funktion icl_translate das Original zurück (betrifft WPML Multilingual & Multicurrency for WooCommerce: „Custom subject of new order emails isn’t translated“).

