[Resolved] Translating the DIVI Engine Form Builder
This thread is resolved. Here is a description of the problem and solution.
Problem: The client was unable to translate certain elements of a form built with DIVI Engine, including buttons, placeholders, and required messages, despite previously adding a custom XML configuration.
Solution: We advised the client to modify the existing XML configuration by adding specific attributes to handle the translation of default texts such as 'Submit', 'Next', and 'Prev'. This involves changing these default texts to something else in the original language to make them translatable. Here is the updated XML configuration snippet:
<wpml-config>
<shortcodes>
<!-- alle Formfelder (Text, Textarea, Select, Checkbox etc.) -->
<shortcode>
<tag>de_fb_form_field</tag>
<attributes>
<!-- Beschriftung & Placeholder -->
<attribute>field_title</attribute>
<attribute>field_placeholder</attribute>
<!-- Beschreibung/Infotext unter dem Feld -->
<attribute>description_text_text</attribute>
<!-- Dropdown‑Platzhaltertext -->
<attribute>select_placeholder_text</attribute>
<!-- Inhalt von Content‑Feldern (Text oder HTML) -->
<attribute encoding="allow_html_tags">html_content_editor</attribute>
<!-- Optionslisten als JSON -->
<attribute encoding="json">select_options</attribute>
<attribute encoding="json">checkbox_options</attribute>
<!-- Optional: Radiobutton‑Optionen, falls im Einsatz -->
<attribute encoding="json">radio_options</attribute>
<!-- Optional: eigener Hinweis bei Pflichtfeldern -->
<attribute>required_message</attribute>
<attribute>forgot_password_text</attribute>
<!-- Change the default text in the original language to make it work, e.g. Please enter a valid email address -->
<attribute>email_message</attribute>
<!-- Multi‑Step: Weiter/Zurück‑Buttons -->
<!-- Change the default text in the original language to make it work, e.g. Back / Forward -->
<attribute>step_prev_text</attribute>
<attribute>step_next_text</attribute>
</attributes>
</shortcode>
<!-- gesamtes Formular: Submit‑Button, generische Placeholder etc. -->
<shortcode>
<tag>de_fb_form</tag>
<attributes>
<attribute>title</attribute>
<!-- Change the default text in the original language to make it work, e.g. Send -->
<attribute>submit_button_text</attribute>
<attribute>field_placeholder</attribute>
<attribute>redirect_url_after_submission</attribute>
<attribute>ajax_submit_button_text</attribute>
<attribute>field_placeholder</attribute>
<!-- Optional: Erfolgs‑ und Fehlermeldungen (not tested) -->
<attribute>success_message</attribute>
<attribute>error_message</attribute>
<attribute>processing_text</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>
Additionally, we suggested contacting the plugin author to ensure their code adheres to standard WordPress methods for making text translatable, as detailed in our documentation: https://wpml.org/documentation/support/how-to-use-gettext/
If this solution does not resolve the issue or seems outdated, we recommend opening a new support ticket. We also highly suggest checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. For further assistance, please visit our support forum.
This is the technical support forum for WPML - the multilingual WordPress plugin.
Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.
Background of the issue:
I am trying to translate the buttons and placeholders of the Formbuilder of DIVI Engine on my site hidden link. Previously, Maiya provided a Custom XML Configuration to solve this issue, but now other fields that were translated before, like checkboxes, have disappeared. Fields with text or HTML content, descriptions, error messages, dropdown select fields, and buttons are still missing. Maiya suggested adding a custom XML configuration to WPML to recognize these strings for translation in the Advanced Translation Editor. I followed the steps provided, but it didn't work.
Symptoms:
Other fields that were translated before, like checkboxes, have disappeared. Fields with text or HTML content, descriptions, error messages, dropdown select fields, and buttons are still missing.
I can’t determine the code without actually checking the plugin or page content and its fields — that’s why I asked if you could reproduce it there. Once you do, I can inspect the database and create the correct XML for you.
Please let me know once that’s done.
There’s also a similar issue that was reported previously — you can try using the XML shared there:
Sorry, I didn´t see your second message with your explanation to DIVI.
I didn´t appear then.
But I could replicate the error on the sandbox.
Without the XML Configuration the ATE will show this field and I can translate it, but the field for the button is missing.
I could find almost all fields with the help of the agent of ChatGPT.
But still the buttons are not translatable. It is a Multistep Form.
Also the required message is missing and the redirection URL.
I am working again here and not in the sandbox. hidden link
<wpml-config>
<shortcodes>
<!-- alle Formfelder (Text, Textarea, Select, Checkbox etc.) -->
<shortcode>
<tag>de_fb_form_field</tag>
<attributes>
<!-- Beschriftung & Placeholder -->
<attribute>field_title</attribute>
<attribute>field_placeholder</attribute>
<!-- Beschreibung/Infotext unter dem Feld -->
<attribute>description_text_text</attribute>
<!-- Dropdown‑Platzhaltertext -->
<attribute>select_placeholder_text</attribute>
<!-- Inhalt von Content‑Feldern (Text oder HTML) -->
<attribute encoding="allow_html_tags">html_content_editor</attribute>
<!-- Optionslisten als JSON -->
<attribute encoding="json">select_options</attribute>
<attribute encoding="json">checkbox_options</attribute>
<!-- Optional: Radiobutton‑Optionen, falls im Einsatz -->
<attribute encoding="json">radio_options</attribute>
<!-- Optional: eigener Hinweis bei Pflichtfeldern -->
<attribute>required_message</attribute>
</attributes>
</shortcode>
<!-- gesamtes Formular: Submit‑Button, generische Placeholder etc. -->
<shortcode>
<tag>de_fb_form</tag>
<attributes>
<attribute>submit_button_text</attribute>
<attribute>field_placeholder</attribute>
<attribute>ajax_submit_button_text</attribute>
<attribute>field_placeholder</attribute>
<!-- Multi‑Step: Weiter/Zürück‑Buttons -->
<attribute>next_button_text</attribute>
<attribute>previous_button_text</attribute>
<!-- Optional: Erfolgs‑ und Fehlermeldungen -->
<attribute>success_message</attribute>
<attribute>error_message</attribute>
<attribute>processing_text</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>
I could find out about the submit button after I tried your XML.
You have to use another word for "SUBMIT" but not the default option. Then it is working.
There is an option redirects in the formbuilder.
I added the URL now on the sandbox but it doesn´t show up in the translation editor.
Yes. This works in the sandbox but not in the live page.
Maybe it is that issue that URLs don’t always show up in the ATE?
Option is set for showing all links.