Navigation überspringen

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

Problem:
Wenn Sie das Problem haben, dass bei WS Forms die Formulare in der EN-Version beim Abspeichern in der DE-Version von EN auf DE zurückgesetzt werden, liegt das daran, dass der Shortcode nicht übersetzt werden kann. Dies führt dazu, dass bei erneuter Übersetzung der alte Shortcode wieder in der Übersetzung hinterlegt wird.
Solution:
Um dieses Problem zu beheben, können Sie eine Konfiguration für den Shortcode anlegen. Folgen Sie dieser Anleitung: https://wpml.org/documentation/support/language-configuration-files/translate-custom-shortcodes-with-wpml/
Hier ist ein Beispiel für die benötigte Konfiguration:

<wpml-config>
  <shortcodes>
    <shortcode>
      <tag>ws_form</tag>
      <attributes>
        <attribute>id</attribute>        
      </attributes>
    </shortcode>   
  </shortcodes>
</wpml-config>

Speichern Sie diese Konfiguration unter WPML > Einstellungen > Benutzerdefinierte XML Konfiguration (Tab).
Zusätzlich müssen Sie folgenden Code in der functions.php Ihres Child Themes hinzufügen, um Zahlen übersetzen zu können:

/**
 * Allow translating numbers
 *
 * @see https://wpml.org/forums/topic/wpbakery-post-grid-element-exclude-from-filter-list-category-reappears
 */
function wpmlsupp_7499_allow_translating_numbers( $is_translatable, $job_translate ) {
    $data = $job_translate['field_data'];
    if ( 'base64' === $job_translate['field_format'] ) {
        $data = base64_decode( $data );
    }
    if ( is_numeric( $data ) ) {
        return true;
    }
    return $is_translatable;
}
add_filter( 'wpml_tm_job_field_is_translatable', 'wpmlsupp_7499_allow_translating_numbers', 10, 2 );

Nachdem Sie diese Änderungen vorgenommen haben, bearbeiten Sie den Shortcode auf der Originalseite, fügen Sie beispielsweise ein Leerzeichen hinzu, speichern Sie die Seite und öffnen Sie den Übersetzungseditor, um nach der ID des originalen Formulars zu suchen.

Falls diese Lösung veraltet ist oder nicht auf Ihr Problem zutrifft, empfehlen wir Ihnen, ein neues Support-Ticket zu eröffnen. Überprüfen Sie auch die bekannten Probleme und stellen Sie sicher, dass Sie die neuesten Versionen Ihrer 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.

Schlagwörter: 

Dieses Thema enthält 1 Antwort, hat 0 Stimmen.

Zuletzt aktualisiert von Andreas W. Vor 2 Wochen, 1 Tag.

Assistiert von: Andreas W..

Verfasser Beiträge
April 9, 2025 at 6:30 pm #16915665

joerg-klausF

OK.
Das werde ich melden.

Und die Geschichte mit dem WS Form (in der EN Version), dass beim Abspeichern in der DE Version von EN auf DE zurückgesetzt wird.

Ich denke, dann haben wir, besser du, diesen Task hier erfolgreich geklärt.

Danke dafür.

Viele Grüße
Joerg

April 9, 2025 at 6:31 pm #16915669

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Hallo,

Wenn ich mich recht erinnere, ist das Problem mit WS Forms, dass Du die Forms hier per Shortcode in den Seiten hinterlegst und der Shortcode nicht übersetzt werden kann.

Soll bedeuten, wenn Du erneut übersetzt, wird auf der Übersetzung wieder der alte Shortcode hinterlegt.

Wir haben für WS Forms leider kein Addon, dass dies automatisch regelt.

Die Shortcodes sehen wie folgt aus:
[ws_form id="form_id"]

Man könnte hier folgendes tun:

- eine Config für den Shortcode anlegen.

Anleitung:
https://wpml.org/documentation/support/language-configuration-files/translate-custom-shortcodes-with-wpml/

Beispiel:

<wpml-config>
  <shortcodes>
    <shortcode>
      <tag>ws_form</tag>
      <attributes>
        <attribute>id</attribute>        
      </attributes>
    </shortcode>   
  </shortcodes>
</wpml-config>

Diese Config speicherst Du unter WPML > Einstellungen > Benutzerdefinierte XML Konfiguration (Tab) ab.

Diese Config wird die ID des Formulars an den WPML Übersetzungseditor übergeben, welche Du dann mit der ID des übersetzen Formulars in der Zweitsprache ersetzen musst.

Da dies ein Zahlenwert ist, müsste noch folgender Code in der functions.php Deines Child Themes hinterlegt werden:

/**
 * Allow translating numbers
 *
 * @see https://wpml.org/forums/topic/wpbakery-post-grid-element-exclude-from-filter-list-category-reappears
 */
function wpmlsupp_7499_allow_translating_numbers( $is_translatable, $job_translate ) {
    $data = $job_translate['field_data'];
	if ( 'base64' === $job_translate['field_format'] ) {
		$data = base64_decode( $data );
	}
    if ( is_numeric( $data ) ) {
    	return true;
    }
    return $is_translatable;
}
add_filter( 'wpml_tm_job_field_is_translatable', 'wpmlsupp_7499_allow_translating_numbers', 10, 2 );

Nun, editiere den Shortcode auf der originalen Seite, zum Beispiel füge dahinter ein Leerzeichen an. Speichere die Seite und öfgfne den Übersetzungseditor und suche nach der ID des originalen Formulars.

Mit freundlichen Grüßen
Andreas