Navigation überspringen

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.

Dieses Thema enthält 3 Antworten, hat 0 Stimmen.

Zuletzt aktualisiert von Marcel Vor 1 Woche, 1 Tag.

Assistiert von: Marcel.

Verfasser Beiträge
Dezember 14, 2024 unter 10:34 pm #16514094

Christian Woidschuetzke

<b>Hintergrund des Themas: </b>
Ich habe eine Funktion für das Einfügen eines Links für die Herstellerangaben geschrieben. Ich habe die Funktion wegen der Übersetzung angepasst: add_action( 'woocommerce_product_meta_start', 'content_product_meta_start' ); function content_product_meta_start() { global $post; $terms = get_the_terms( $post->ID, 'product_tag' ); foreach ($terms as $term) { if( $term->slug === 'sina-spielzeug') echo __('<div class="herstellerangaben">Herstellerangaben</div>'); } }

<b>Die Symptome: </b>
Diese Funktion wird in Englisch nicht richtig übersetzt. Ich finde den String, aber die Sprachen sind vertauscht. Grundversion ist in Deutsch verfasst, aber wird als Sprache Englisch angezeigt.

<b>Frage: </b>
Warum sind die Sprachen vertauscht, obwohl die Grundversion in Deutsch verfasst ist?
Siehe Screenshot.

Dezember 16, 2024 unter 9:49 am #16516464

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

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

Hallo,

Dies kann mehrere Ursachen haben:

- fehlende Textdomain im getText() call, siehe https://wpml.org/documentation/support/translating-the-theme-you-created/#adding-gettext-calls-to-php-code.
- falls das Produkt keine Tags hat oder sina-spielzeug nicht vorhanden ist, kann der Code fehlschalagen. Sie prüfen die FUnktion nicht auf Fehler

Prüfen Sie das debug-log auf etwaige Fehler und stellen Sie sicher, dass kein Caching aktiv ist.

Diese Funktion wird in Englisch nicht richtig übersetzt. Ich finde den String, aber die Sprachen sind vertauscht.

Lt. Screenshot ist der String korrekt in Englisch mit einem englischen Begriff registriert. Sie können die Ausgangssprache jedoch immer über einen Button tauschen: https://wpml.org/documentation/getting-started-guide/string-translation/how-to-change-the-source-language-of-strings/. Damit erscheint der String mit der DE Flagge und kann zu EN übersetzt werden.

Viele Grüße
Marcel

Dezember 23, 2024 unter 1:06 am #16539119

Christian Woidschuetzke

Hallo. Entschuldige die späte Rückmeldung. Anbei nochmal Screenshots.

Ich versuche immer noch den Hook/Filter in beiden Sprachen zu übersetzen.
Leider klappt das mit der Übersetzung über die Strings nicht. Ich möchte aber auch die Funktion und das CSS nicht duplizieren und für jede Sprache anwenden müssen.

Gibt es für den Hook/Filter nicht einen Paramter, welcher sich nach der Sprache richtet?

Caching läuft über WPRocket...

Die default Sprache ist deutsch.

Vielen Dank!

Viele Grüße
Christian

Bildschirmfoto 2024-12-23 um 01.58.40.png
Bildschirmfoto 2024-12-23 um 01.54.44.png
Bildschirmfoto 2024-12-23 um 01.53.31.png
Dezember 23, 2024 unter 9:12 am #16539607

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

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

Hallo Christian,

Sie können die Funktion wpml_translate_single_string verwenden.

Allerdings wäre es empfehlenswerter, die getText()-Funktion korrekt zu implementieren, es fehlte die Textdomain.

Viele Grüße
Marcel