[Gelöst] String Übersetztung im WooCommerce Backend Fehler
Dieses Thema ist gelöst. Hier finden Sie eine Beschreibung des Problems und der Lösung.
Problem: Der Kunde versucht, einen Übersetzungsfehler im WooCommerce Bestellungsbackend zu beheben, bei dem die Lieferbedingung auf Französisch nicht korrekt von 'Free' zu 'Gratuit' übersetzt wird, obwohl die Strings korrekt übersetzt sind. Solution: Wir haben die Versandarten einzeln editiert und gespeichert. Die Ausgangssprache dieser Strings wurde auf 'Deutsch' gesetzt. Unter WPML > String-Übersetzung haben wir die betreffenden Strings gesucht und übersetzt. Es ist wichtig zu beachten, dass auf alten Bestellungen weiterhin 'Free' angezeigt wird, da dieser Wert zum Zeitpunkt der Bestellung in der Datenbank gespeichert wurde. Neue Testbestellungen zeigen jedoch die korrekte Übersetzung. Zusätzlich sollte die Adminsprache im Nutzerprofil so eingestellt sein, dass sie sich beim Wechsel der Sprache entsprechend anpasst. Weitere Informationen zur Einstellung der Adminsprache finden Sie hier: Anleitung zur Einstellung der WordPress-Administrationssprache.
Falls diese Lösung für Ihr Problem irrelevant erscheint, weil sie veraltet ist oder nicht auf Ihren Fall zutrifft, empfehlen wir Ihnen, ein neues Support-Ticket zu eröffnen. Wir empfehlen auch, die Seite mit bekannten Problemen (https://wpml.org/known-issues/) zu überprüfen, die Version der dauerhaften Lösung zu verifizieren und zu bestätigen, dass Sie die neuesten Versionen von Themes und Plugins installiert haben.
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.
Hintergrund des Themas:
Ich versuche, einen Übersetzungsfehler im Bestellungsbackend von WooCommerce zu beheben. Die Lieferbedingung auf Französisch wird nicht korrekt übersetzt. Anstelle von 'Gratuit' steht das standardmäßige Englisch 'Free'. Hier ist der Screenshot: versteckter Link. Die Strings sind jedoch korrekt übersetzt. Der Fehler ist auf der Seite versteckter Link zu sehen.
Die Symptome:
Die Lieferbedingung auf Französisch wird im WooCommerce Backend nicht korrekt übersetzt. Statt 'Gratuit' wird 'Free' angezeigt.
Fragen:
Warum wird 'Gratuit' nicht korrekt angezeigt, obwohl die Strings korrekt übersetzt sind?
Wie kann ich sicherstellen, dass die Übersetzung im WooCommerce Backend korrekt angezeigt wird?
Ja der String wird im Frontend korrekt übersetzt. Somit sehen unsere Kunden den korrekten Wert. Jedoch im Backend finde ich diesen nicht. Auch nicht mit deiner Anleitung. Soll ich dir eine Staging bereit stellen, dass du dir das anschauen kannst?
Auf meiner lokalen Test Site kann ich das Problem aktuell nicht bestätigen. Siehe Screenshot.
Ich kann gerne anbieten mir das einmal genauer anzusehen.
Ich möchte einen temporären Zugriff (wp-admin und FTP) auf die Website anfordern, um das Problem genauer zu untersuchen.
Die dafür erforderlichen Felder findst Du unterhalb des Kommentarbereichs, wenn Du dich anmelden, um die nächste Antwort zu hinterlassen. Die Informationen, die Du angibst sind privat, was bedeutet, dass nur Du und ich sie sehen und darauf zugreifen können.
WICHTIG
Lege bitte unbedingt eine Sicherungskopie der Website und der Datenbank an, bevor Du uns den Zugriff gewährst.
Wenn Du die Felder "wp-admin / FTP" nicht sehen kannst, werden Ihre Anmeldedaten für Post und Website als "PUBLIC" (Öffentlich) festgelegt. Veröffentliche die Daten NICHT, es sei denn, Du siehst die erforderlichen wp-admin / FTP-Felder.
Das private Antwortformular sieht folgendermaßen aus: versteckter Link
Klicke beim nächsten Antworten auf "I still need assistance".
Video: versteckter Link
Beachte bitte, dass wir verpflichtet sind, diese Informationen auf jedem Ticket individuell anzufordern. Wir dürfen nicht auf Zugangsinformationen zugreifen, die nicht speziell auf diesem Ticket im privaten Antwortformular übermittelt wurden.
Bitte entschuldige meine späte Antwort. Das ist so nicht ganz korrekt. Wenn du z.B. den Kunden 99207 anschaust ist der Text auf Englisch. Und Englisch ist keine Admin Sprache bei uns. Zudem wird dieser String weiterverarbeitet und sollte jeweils in der Sprache des Kunden sein. versteckter Link
Auf dem Staging kann ich es hier feststellen: versteckter Link
Die Adminsprache hat darauf hier in der Tat keine Einfluss.
Was mir dazu auffällt ist das dieser Kunde anscheinend nicht auf der Website registriert ist und deshalb verwendet WordPress English as Standard, da keine Sprache für den Nutzer in der Datenbank vorliegt.
Eigentlich sollte Deutsch als Standart hinterlegt sein ausser der Kunde wählt FR. Die meisten Kunden bestellen ohne Login und dort stimmt die Sprache. Der Fehler tritt nur auf, wenn jemand auf FR bestellt mit Gratis Lieferung.
Irgendwo ist etwas nicht korrekt übersetzt nehme ich an. Soll ich bei Kadence anfragen, ob Sie eine Lösung wissen?
Das liegt in dem Fall an WordPress. Es wird immer Englisch verwenden, wenn ein Nutzer nicht registriert ist, weil das die Standardsprache der String ist, die mit WooCommerce geliefert werden.
Wenn während der Bestellerstellung kein Sprachkontext aktiv ist (z. B. für Gastnutzer, bei denen WPML kein Benutzerprofil oder keine Browsereinstellungen verknüpfen kann), greift WordPress auf die Standardsprache des WooCommerce-Plugins zurück – Englisch, nicht auf die Sprache der Website.
WPML kann eine Nutzersprache nur dann anwenden, wenn der Nutzer dazu einen registrierten Wert in der Datenbank hat.
Ich denke nicht, dass es an dem liegt. Ich habe nachgeschaut und gesehen, dass der String früher in Deutsch anstelle von Französisch im Backend war (Somit auch bereits dort ein Übersetzungsfehler). Das kannst du z.B. bei Bestellung 94572 sehen. Zudem passiert ja dieser Übersetzungsfehler nur bei der Option "Gratis Lieferung" und nicht bei den anderen zwei Lieferarten wie Standard / Premium.
Zudem wählt der Kunde ja die Sprache wenn er auf der Seite ist. versteckter Link
Somit ist bei jeder Bestellung immer die WPML Sprache DE oder FR hinterlegt egal ob der Kunde angemeldet oder als Gast bestellt.
Ich kann das Problem auf meiner Test Site auf diese Weise nicht direkt replizieren.
Hier wird immer der deutsche String angezeigt, egal ob ich eine deutsche oder französische Bestellung mache.
Sandbox: versteckter Link
Die Anzeige dieses Strings im Admin-Bildschirm wird durch die aktive Adminsprache gesteuert und er sollte keinen Einfluss auf die E-Mails haben, die an die Kunden versendet werden.
Werden die E-Mails auf der Website korrekt versendet?
In den Emails ist die Sprache jeweils korrekt. Also die Mails, die wir erhalten. Jedoch wird dieser falsche String z.T. weiterverarbeitet in unser Buchhaltungsprogram. Das kannst du z.B. bei dieser Bestellung sehen: versteckter Link
Buchaltungsprogram mit der Rechnung die an den Kunden geht: versteckter Link
Aus Testzwecken habe ich diesen String nun entfernt.
Damit löst sich das Problem auf den alten Bestellungen leider nicht.
Ich habe daraufhin das Theme auf Twenty Twenty-Five gewechselt und alle Plugins bis auf WooCommerce und WPML inkl. Add-ons deaktiviert. Das Problem bleibt weiterhin auf den alten Bestellungen bestehen.
Lege ich allerdings nun eine neue Bestellung mit dem gleichen Produkt als Gast an, kann ich das Problem aktuell nicht mehr replizieren.
Ich sehe hier gar ein anderes Problem im Sidecart und Checkout, in welchem mir "Kostenlos" angezeigt wird, obwohl ich auf französischen Seite bin.
Suche ich nun nach dem String "Kostenlos" auf WPML String Translation, finde ich folgenden String:
Diese String ist der Ausgangssprache "Englisch" zugewiesen. Ich habe ihn nun der deutschen Ausgangssprache zugewiesen und Übersetzungen aktualisiert.
Auf meiner neuen französischen Bestellung erscheint nun der String "Kostenlos" und das obwohl ich dem französischen Shop war auch meine Profil-Sprache als Admin auf französisch eingestellt ist.
Soll bedeuten, ich sehe das Problem aktuell auf alten Bestellungen, kann es auf einer neuen Bestellung aber nicht replizieren.
Anstatt dessen, sehen wir gar den String "Kostenlos" auf der französischen Website, was unerwartet ist.
Frage:
Wenn Du unter String Translation nach "Free" inkl. Übersetzungen suchst, wird Du 9 Plugins finden, die diesen String anwenden. In Sachen WooCommerce kommt es zudem oft vor, dass Add-ons die Standard-Strings von WooCommerce überschreiben.
---
Wärest Du damit einverstanden, wenn wir einmal versuchen alle diese String zu löschen, und die Versandarten erneut abspeichern, um die korrekten String erneut zu registrieren?