WPML

Wir haben eine Beta für WPML 3.5 fertiggestellt. Diese Version enthält wesentliche Verbesserungen an der String-Übersetzung, sowohl bei der Funktionalität als auch bei der Performance.

Fast jede Website, die WPML verwendet, nutzt die String-Übersetzung. Sie können sich also vorstellen, dass die Verbesserung der String-Übersetzung von WPML bei unseren Prioritäten ganz weit oben steht. Diese WPML-Version widmet sich fast ausschließlich der Verbesserung der String-Übersetzung.

Schnellere und schlankere String-Übersetzung


Um Strings zu übersetzen, muss WPML die Übersetzung aus der Datenbank laden. Wir haben mit verschiedenen Ladetechniken experimentiert und es sieht so aus, als ob der Ansatz in WPML 3.5 der absolute Gewinner ist.

In früheren Versionen haben wir Folgendes versucht:

  • Nur Übersetzungen, genau dann, wenn sie benötigt werden
  • Alle Strings nach Kontext vorab laden
  • Alle Strings aus der Datenbank vorab laden

Jeder dieser Ansätze hatte seine Vor- und Nachteile. Das Problem war, dass für jede Website, die von einem dieser Ansätze profitierte, eine andere Website darunter litt.

WPML 3.5 verwendet einen neuen Ansatz zum Vorabladen von String-Übersetzungen. Es führt eine zusätzliche Tabelle, die WPML mitteilt, welche Strings für jede Seite benötigt werden. Dann lädt es genau die Strings vorab, die für diese Seite benötigt werden, unabhängig davon, zu welchem Kontext sie gehören. Der offensichtliche Vorteil dabei ist, dass weniger Strings vorab geladen werden und keine Strings geladen werden müssen, während die Seite gerendert wird. Infolgedessen sinken sowohl der Speicherverbrauch als auch die CPU-Auslastung deutlich. Der Nachteil dieses neuen Ansatzes ist ein winziger neuer PHP-Code, der nachverfolgt, welcher String wo verwendet wird. Dieser zusätzliche Code wird dank eines dedizierten Datenbankzugriffs und Cachings, das wir dafür entwickelt haben, sehr schnell ausgeführt.

Der Leistungsgewinn, den Sie erwarten können, hängt von verschiedenen Faktoren ab:

  • Die Anzahl der Strings auf Ihrer Website – je mehr Strings Sie haben, desto größer ist der Vorteil (relativ gesehen werden jetzt weniger Strings vorab geladen).
  • Die PHP-Version des Servers – PHP 7 ist weitaus effizienter als PHP 5.6. Wenn Sie noch PHP 5.x verwenden, erhalten Sie einen wesentlich deutlicheren Leistungsschub, aber Sie werden ihn auch unter PHP 7 spüren.
  • Die Anzahl der anderen Plugins, die Sie ausführen, die Menge der Inhalte, das Theme usw. – wenn Ihre Website anderen langsamen Code enthält, wird die Verbesserung der String-Übersetzung offensichtlich nicht so signifikant ausfallen.

Für unsere eigene WPML.org-Website erzielen wir die folgenden Leistungsverbesserungen:

PHP-VersionSeiteEinsparung beim SpeicherverbrauchEinsparung bei der CPU-Auslastung
PHP 5.6 Home60 %41 %
Admin-Dashboard41 %33 %
PHP 7 Home50 %16 %
Admin-Dashboard33 %15 %

Die andere große Verbesserung in WPML 3.5 ist die Möglichkeit, Links in Strings (automatisch) zu übersetzen. Was bedeutet das und warum benötigen Sie es?

Wir verwenden ‚Strings‘ für viele verschiedene Dinge. Wenn Ihr Theme beispielsweise den ‚Lead‘-Text Ihrer Startseite in einer ‚Option‘ speichert, verwendet WPML dafür die String-Übersetzung. Bisher mussten Sie Strings, die URLs enthalten, nachverfolgen und sie manuell an die übersetzten Inhalte anpassen. Wenn viele Strings Links enthalten, konnte dies eine sehr mühsame Aufgabe sein.

Jetzt verarbeitet WPML Links in der String-Übersetzung genauso, wie es Links in ‚Beiträgen‘ (Beiträge, Seiten und benutzerdefinierte Typen) verarbeitet. Wenn Sie einen String übersetzen, der einen Link enthält, passt sich dieser Link automatisch so an, dass er auf die übersetzten Inhalte verweist. Ich werde einen separaten Blogbeitrag schreiben, der zeigt, wie dies mit unserem Toolset Layouts-Plugin funktioniert.

Update 2. Aug.

Hey, wir haben eine weitere Quelle für sehr signifikante Zeitverschwendung im Admin-Bereich gefunden. Diese ist trivial und hätte schon vor einer Weile behoben werden sollen. Es gibt ein „WPML-Widget“ im WordPress-Admin-Bereich, das wahrscheinlich niemand mehr benötigt. Dieses Widget zieht Inhalte von vielen Stellen in der Datenbank sowie aktuelle Blogbeiträge von der wpml.org-Website. Das Entfernen dieses Widgets wird eine Reihe von Datenbankaufrufen sowie potenziell langsame externe Aufrufe eliminieren.

Wir kümmern uns um dieses Widget (indem wir es entfernen) und überprüfen alle externen Aufrufe, um sicherzustellen, dass sie Ihre Website nicht verlangsamen.

Herunterladen und ausprobieren


WPML 3.5 geht jetzt in die QA. Wir haben die Änderung an der String-Übersetzung bereits vollständig getestet, aber es gibt noch viel mehr zu testen, bevor wir sie als produktionsreife Version veröffentlichen können.

Wir würden uns sehr über Ihr Feedback zu dieser neuen, kommenden Version freuen. Wenn Ihre Website Leistungsprobleme im Zusammenhang mit der String-Übersetzung hat, ist diese Version genau das Richtige für Sie.

Bitte denken Sie daran, dass dies eine Beta-Version ist, probieren Sie sie also nur auf Entwicklungswebsites aus (nicht auf Live-Websites).

Diese Beta ist nur für Inhaber eines „Multilingual CMS“-Kontos verfügbar, da es hauptsächlich um Verbesserungen an der String-Übersetzung geht.

Melden Sie sich bei Ihrem WPML-Konto an und klicken Sie auf Downloads. Scrollen Sie nach unten und laden Sie das CMS Beta Package herunter. Entpacken Sie alle WPML-Komponenten, die Sie verwenden, und laden Sie sie in WordPress hoch.

Feedback?


Lassen Sie uns wissen, wie diese Version für Sie funktioniert, indem Sie hier Kommentare hinterlassen. Wenn Sie auf ein Problem stoßen, erstellen Sie einen neuen Thread im WPML-Support-Forum UND hinterlassen Sie hier einen Kommentar mit einer kurzen Beschreibung und einem Link zu diesem Thread.

Wir freuen uns auf Ihr Feedback, Ihre Fragen, Ideen und Vorschläge!

Fanden Sie das nützlich? Teilen Sie diesen Artikel: