Navigation überspringen

Dieses Thema ist gelöst. Hier finden Sie eine Beschreibung des Problems und der Lösung.

Problem:
Der Kunde hatte Schwierigkeiten mit der Übersetzung eines Custom Fields vom Kadence Shop Kit, speziell des Salutation Fields (Herr / Frau / Divers). Das Label wurde übersetzt, aber nicht der Wert.
Solution:
Ein Entwickler hat den Code dementsprechend angepasst.

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.

Heute stehen keine Supporter zur Arbeit im German-Forum zur Verfügung. Sie können gern Tickets erstellen, die wir bearbeiten werden, sobald wir online sind. Vielen Dank für Ihr Verständnis.

Schlagwörter: 

Dieses Thema enthält 16 Antworten, hat 2 Stimmen.

Zuletzt aktualisiert von Marcel Vor 1 Woche, 1 Tag.

Assistiert von: Marcel.

Verfasser Beiträge
April 16, 2024 unter 1:55 pm #15525959

simonA-16

Hallo

Wir haben gesehen, dass WPML einen String nicht korrekt übersetzt. Beim einem Custom Field von Kadence Shop Kit, unserem Salutation Field (Herr / Frau / Divers), wird nur das Label und nicht der Wert übersetzt. Können Sie uns helfen, das Problem zu beheben?
versteckter Link

Wir können Zugriff auf eine Staging Seite geben um das Problem zu veranschaulichen.

Freundliche Grüsse
Simon Aschwanden

April 16, 2024 unter 2:07 pm #15526088

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+02:00)

Hallo,

wo genau wird der String definiert? Haben Sie den Code im Screenshot selbst erstellt oder ist dies, was Kadence Shop Kit im Frontend als Sourcecode generiert? Der Strings sollten ansonsten in der String Translation Tabelle für eine Übersetzung verfügbar sein, sofern die Strings von den Autoren mit getText() calls für eine Übersetzung vorbereitet wurden.

Sollten Sie die Strings nicht finden, aktivieren Sie bitte unterhalb der WPML String Translation Tabelle die "Auto register" Option und öffnen Sie im Frontend ein Produkt/Seite, wo der String sichtbar ist. WPML wird nun versuchen, den getText() Call automatisch zu registrieren. Aktualisieren Sie danach die String Translation Tabelle und prüfen Sie, ob neue Einträge der gesuchten Strings vorhanden sind.

Funktioniert es damit?

Viele Grüße
Marcel

April 16, 2024 unter 2:19 pm #15526261

simonA-16

Hallo Marcel

Danke für deine schnelle Antwort. Die Übersetzungen sind korrekt gesetzt in WPML Strings translations: versteckter Link

Den Code habe ich von meinem Entwickler der das Troubleshooting gemacht hat.

Freundliche Grüsse
Simon

April 16, 2024 unter 6:26 pm #15527910

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+02:00)

Hallo Simon,

also wenn die Strings über ein Backend eingegeben/definiert wurden, hilft uns der Source-Code aus dem Screenshot hier nicht. Wie genau wurden diese Texte definiert? Gibt es im Kadence ein Eingabefeld dafür irgendwo im Backend?

Wenn dies nur via Code definiert wäre, sind die Strings nicht in einen PHP getText() call gepackt und es wäre daher zu erwarten, dass diese nicht übersetzt werden können. Dann wären scheinbar die Strings und der Code unterschiedliche Dinge.

Aber ich vermute hier eher ersteres, wie genau wurden diese definiert?

Bitte um Info

Viele Grüße
Marcel

April 18, 2024 unter 7:38 am #15535772

simonA-16

Hallo Marcel

Würde es helfen, wenn ich dir Zugang zu einer Staging Seite geben würde? Dann kannst du dir das Problem anschauen.

Freundliche Grüsse
Simon

April 18, 2024 unter 4:19 pm #15540136

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+02:00)

Hallo Simon,

gerne! Ich würde mir das gerne direkt auf Ihrer Seite ansehen. Dazu bräuchte ich bitte temporären Zugriff (WP-Admin und FTP) auf Ihre Seite, vorzugsweise zu einer Test/Staging Seite, an der das Problem nach Möglichkeit repliziert wurde.

Die dafür benötigten Felder finden Sie unterhalb des Kommentarbereichs. Die Informationen, die Sie eingeben, sind privat, d.h. nur Sie und ich können sie sehen und haben Zugriff darauf.

WICHTIG
Bitte erstellen Sie eine Sicherungskopie der Site-Dateien und der Datenbank, bevor Sie uns Zugang gewähren.
-Wenn Sie die wp-admin/FTP-Felder nicht sehen, bedeutet dies, dass Ihre Post- und Website-Login-Daten ÖFFENTLICH gemacht werden. Posten Sie Ihre Website-Details NICHT, wenn Sie die erforderlichen wp-admin/FTP-Felder nicht sehen. Wenn Sie das nicht tun, bitten Sie mich, die private Box zu aktivieren. Die private Box sieht wie folgt aus:
versteckter Link

Viele Grüße
Marcel

April 19, 2024 unter 4:56 pm #15544737

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+02:00)

Hallo Simon,

es gab in der Option-Tabelle 10 weitere Strings mit "Herr", welche noch nicht registriert waren. Ich habe alle registriert und mit einer Nummer gekennzeichnet, keiner wird davon jedoch in der Bestellung im Backend übernommen.

Das Problem scheint mir hier im Code von Kadence Shop Kit zu liegen. Es gab in der Vergangenheit bereits ein "ähnliches" Problem, wo unsere API bei einer Abfrage zur Rückgabe der aktuellen Sprache eingebunden werden musste. Dies hat Kadence nach unserer Meldung in deren Code integriert: https://wpml.org/forums/topic/split-size-chart-is-not-working-well-for-fr-and-eng-sides/. Dies könnte hier im Backend ebenso der Fall sein, was ggf. Anpassungen seitens der Autoren erfordert.

Ich würde Ihnen zuerst empfehlen, dies direkt an den Kadence Support zu melden, da dieses Add-On offiziell nicht mit WPML kompatibel ist (also "Kadence Shop Kit" Add-On).

Sollten Sie dort nichts erreichen, geben Sie mir bitte Bescheid. Dann können Sie das Plugin hier auf dieser Sandbox installieren und versuchen, das Problem von Grund auf nachzustellen: versteckter Link. Wir werden dann versuchen, mögliche Workarounds dafür zu finden, um diese an die Autoren zu übermitteln.

Viele Grüße
Marcel

April 22, 2024 unter 8:22 am #15548581

simonA-16

Hallo Marcel

Alles klar. Unser Developer hat versucht einen fix zu machen für dieses Problem. Kannst du dir das kurz auf der Staging anschauen?

Ansonsten werde ich ein Ticket bei Kadence eröffnen.

Gruss
Simon

April 22, 2024 unter 10:13 am #15549507

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+02:00)

Hallo Simon,

das PW für meinen User scheint nun geändert zu sein. Ich aktiviere wieder das private Eingabefeld.

Viele Grüße
Marcel

April 22, 2024 unter 1:22 pm #15550729

simonA-16

HI Marcel

Hier noch der Code:

/**Checkout Salutation **/
add_filter( 'woocommerce_checkout_fields', 'customize_checkout_fields_based_on_language', 99 );

function customize_checkout_fields_based_on_language( $fields ) {

$current_language = ICL_LANGUAGE_CODE;

$salutation_options = array(
'de' => array(
'Frau' => __('Frau', 'kadence'),
'Herr' => __('Herr', 'kadence'),
'Divers' => __('Divers', 'kadence')
),
'fr' => array(
'Madame' => __('Madame', 'kadence'),
'Monsieur' => __('Monsieur', 'kadence'),
'Divers' => __('Divers', 'kadence')
)
);

if (isset($salutation_options[$current_language])) {
$fields['billing']['billing_salutation']['options'] = $salutation_options[$current_language];
$fields['shipping']['shipping_salutation']['options'] = $salutation_options[$current_language];
}

return $fields;
}

April 22, 2024 unter 1:34 pm #15550868

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+02:00)

Hallo,

danke für die Info. Dies würde so funktionieren, die Testbestellung funktioniert: versteckter Link. Ich würde jedoch empfehlen die WPML API, anstatt der PHP Konstante zu verwenden:

apply_filters( 'wpml_current_language', null );

Warum? Die Konstante ICL_LANGUAGE_CODE wird definiert, wenn WPML geladen wird.
Konstanten können danach nicht mehr geändert werden, d.h. wenn es einen Code-Wechsel der Sprache gibt, wird dies nicht in dieser Konstante reflektiert. Außerdem wird sie bei AJAX-Anfragen einen falschen Wert haben ... kurz gesagt, wir könnten dies als "die von WPML während der Initialisierung erkannte Sprache" bezeichnen. Der Filter auf der Hand ist genauer, es wird immer den richtigen Wert haben.

Sie können Ihren Code an die Kadence Autoren weiterleiten, damit dies in deren Plugin dementsprechend angepasst wird.

Viele Grüße
Marcel

April 26, 2024 unter 9:06 am #15569474

simonA-16

Hallo Marcel

Habe noch folgendes gesehen, was das Problem lösen könnte. Beim String ist die default Übersetzung bereits Deutsch also zum Beispiel "Herr". Default Language steht da zwar Englisch. Zusätzlich sind beide Übersetzungen korrekt eingetragen. Wir haben gesehen bei einer anderen Übersetzung, dass wenn Deutsch dann gesetzt ist, ein Problem auftritt. Wir können nun probieren, DE rauszunehmen und schauen, ob die Übersetzung funktioniert. Kannst du das kurz testen.

Schick mir nochmals die Login form, dann erstelle ich dir nochmals ein Login.

versteckter Link

April 26, 2024 unter 9:28 am #15569607

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+02:00)

Hallo,

dies ist nur die Sprache in jener der String registriert wurde. Dies können Sie ganz einfach über den Button darunter auf Deutsch ändern: https://wpml.org/documentation/getting-started-guide/string-translation/how-to-change-the-source-language-of-strings/. Hierzu ist kein Seitenzugriff notwendig.

Viele Grüße
Marcel

April 26, 2024 unter 10:13 am #15570031

simonA-16

Hallo Marcel

Alles klar. Hab ich gemacht. Hat nichts gebracht :). Klärs nun mit Kadence mit dem Fix.

April 26, 2024 unter 10:59 am #15570302

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+02:00)

Hallo,

geht in Ordnung!

Viele Grüße
Marcel

Dieses Ticket ist jetzt geschlossen. Wenn Sie ein WPML-Kunde sind und diesbezüglich Hilfe benötigen, eröffnen Sie bitte ein neues Support-Ticket.