[Eskaliert zum WPML-Entwicklerteam] Wpml string translation causes fatal error
Dies ist das technische Support-Forum für WPML – das mehrsprachige WordPress-Plugin.
Mitlesen können alle, doch nur WPML-Kunden können hier Fragen veröffentlichen. Das WPML-Team antwortet im Forum an 6 Tagen pro Woche, 22 Stunden am Tag.
Es ist definitiv ein Problem zwischen Borlabs Cookie, Brevo und WPML, nur leider kann ich es auf einer neuen Test Site bislang nicht bestätigen.
Auf einer lokalen Kopie der Website habe ich aller Inhalte und Übersetzungen entfernt und der Fehler erscheint weiterhin, wenn ich alleine mit Borlabs Cookie, Brevo und WPML teste.
Sobald ich allerdings alle Taxonomien aus der Datenbank entferne, verschwindet der Fehler.
Woran dies nun genau liegt, kann ich aktuell noch nicht sagen, aber es scheint einen Taxonomie-Eintrag in der Datenbank zu geben, der dieses Problem verursacht.
Laut Fehlermeldung ist es möglicherweise ein Eintrag, dem ein Pflichtfeld, wie zum Beispiel der Title, fehlt und das führt zu dem Fehler.
Ich werde versuchen den entsprechenden Eintrag zu identifizieren, benötige dazu aber noch mehr Zeit.
OK, ich lag nach weiterem Prüfen mit meiner vorherigen Annahme daneben, konnte aber nun bestätigen, dass der Fehler verschwindet, wenn ich unter WPML > Stringübersetzung die folgende Funktion deaktiviere:
---
WPML can detect untranslated strings and automatically register them for translation. WPML will register any untranslated strings encountered while browsing the site.
- Untranslated strings that I encounter while logged in
---
Stelle ich hier "Disable auto register of untranslated strings" ein, verschwindet der Fehler. Ich habe die Funktion nun auf deiner Website deaktiviert.
Diese Funktion sucht nach Strings während man im Frontend navigiert und wenn diese aktiviert ist, gibt es auf der Website anscheinend ein Problem beim Einlesen der Strings, die auf den Seiten angezeigt werden.
Deaktiviere ich die Borlabs Cookie Option "Borlabs Cookie-Status" verschwindet der Fehler ebenfalls.
Diese Option konnte wir auf meiner Test Site leider nicht aktivieren, weil der Lizenzschlüssel dazu eingegeben werden muss.
Seltsamerweise funktionierte die Lizenz aber auf der lokalen Kopie, welche ich von der Website angelegt hatte und hier kann ich das Problem bestätigen.
---
Dies ist folglich ein Compatilbity Problem zwischen Borlabs Cookie und WPML. Ich berate nun mit dem Compatibility Team, wie wir diesbezüglich weiter vorgehen sollten.
Hier aktualisiere die Funktion readAllRawGettextStringsFromHtmlScriptTags:
private function readAllRawGettextStringsFromHtmlScriptTags( \DOMDocument $dom, string $html ): array {
// We cannot read here with xpath - script tags contain code from the JS template engines and some html will be broken.
// (For example some elements will miss closing tags).
$pattern = '/<script.*?type="text\/(?:html|template)".*?>([\s\S]*?)<\/script>/i';
preg_match_all( $pattern, $html, $matches );
$scriptHtmls = [];
foreach ( $matches[1] as $match ) {
if ( !empty($match) ) {
$scriptHtmls[] = $match;
}
}