This documentation is intended for the Divi development team and web developers using Divi. It explains the process of maintaining the compatibility of the Divi Builder with WPML, which is done by updating the language configuration file.

How the integration of the Divi Builder works with WPML

To understand how the Divi builder works with WPML, let us start by creating a simple page using the Divi Builder. We will include a few modules, such as a Text Block, a Blurb, and a Call to Action.

A simple page created using the Divi builder

As you already know, these modules generate shortcodes, which wrap the content. You can see an example of this in the following screenshot:

Divi’s shortcodes wrapping the content

Our objective is to configure WPML to find the content (textual elements), such that it can display it to the user on the Translation Editor screen. To enable the Translation Editor, go to the WPML -> Translation Management page, and click on the Multilingual Content Setup tab. In the How to translate posts and pages section, select Use the translation editor option, and click Save.

Enable the Translation Editor

To translate the page we created, click on the “plus” icon found in the language meta-box on the top right.

Click the plus icon to translate the page

This will take you to the Translation Editor screen, where you can translate your page. Fill in your translated text, and choose Translation is complete for each field, then click on the Save & Close button.

Fill in the translated text and mark them as Translation is complete then click in the Save & Close button

When we view the translated page in the HTML mode, we can now see the translated strings wrapped with the page builder shortcodes.

Translated page content wrapped with the shortcodes

Updating the language configuration file

You might need to update the page builder shortcodes in the language configuration file for different reasons:

  1. adding a new shortcode to the page builder;
  2. adding a new attribute to an existing shortcode; and
  3. removing an obsolete shortcode.

You can download the language configuration file from our repository. Add the shortcodes or attributes to the existing shortcodes to the language configuration file

Page builder shortcode structure in the language configuration file

To extract strings from pages built using the Divi Builder and load them on the Translation Editor screen, we need to configure WPML to identify the shortcodes and attributes containing the strings that require translation. This is done by adding a file, called wpml-config.xml, which is typically placed in the root folder of your theme. For Divi, we are hosting the language configuration file on our servers. It is set to override the local configuration file placed in Divi’s root folder, ensuring that the configuration file is always up to date.

The wpml-config.xml file is also used to configure the following elements:

  1. Custom fields
  2. Custom taxonomies
  3. Admin texts / wp_options
  4. Language switcher configuration
  5. Page builder shortcodes

See our detailed documentation to learn more about the language configuration file structure and syntax.

As an example, let us see how we added the Call to Action shortcode to the wpml-config.xml file.

Example of the Divi builder shortcodes in the language configuration file
<shortcode>
   <tag>et_pb_cta</tag>
   <attributes>
      <attribute>title</attribute>
      <attribute>button_text</attribute>
      <attribute>button_url</attribute>
      <attribute>background_image</attribute>
      <attribute>background_video_mp4</attribute>
      <attribute>background_video_webm</attribute>
   </attributes>
</shortcode>

The structure of the above example can be broken down as follows:

  • All the shortcodes are wrapped with the shortcodes tag
  • The shortcode tag wraps all the tags belonging to one, single shortcode.
  • The tag tag defines the name of the shortcode, which in this case, is the et_pb_cta.
  • Shortcodes can have one or more attributes; hence, we wrap them in the attributes (plural) tag and use the attribute (singular) tag to define the title of each attribute. In this case, we have the title, button_text, button_url, background_image, background_video_mp4, and the background_video_webm attributes.

For shortcodes that include link attributes, you can make internal links automatically point to the translated version of that post by using the type option for the attribute. Here is an example:

Example of Divi builder shortcodes that include link attributes
<shortcode>
   <tag>et_pb_button</tag>
   <attributes>
      <attribute>button_text</attribute>
      <attribute type="link">button_url</attribute>
   </attributes>
</shortcode>

Testing the language configuration file

To test the updated language configuration file, follow these steps:

  1. Set up an installation having both Divi and WPML activated. Activate the String Translation, Translation Management, and Media Translation add-ons.
  2. You will need to override the remote language configuration file with the updated one. To do this, navigate to WPML -> Translation Management page, and click the Custom XML Configuration tab. Copy the content of your updated language configuration file to the editor, and click Save.
  3. Add the updated file to the the Custom XML configuration and Save
  4. Create a new page, and add the new module(s) to it. In case you updated some attributes for existing modules, add these to the page as well. In this example, we will assume that the Button module was newly added to the Divi Builder. Add it to the page, and Publish.
  5. Add the new module or the module that has an updated attribute to the test page
  6. Click on the plus icon to translate the page. This will take you to the Translation Editor screen.
  7. Ensure that the module textual elements are displayed on the Translation Editor screen.
  8. Fill in your translated text. Select Translation is complete for each field, then click on the Save & Close button.
  9. Add your translated text and click the Save & Close button
  10. Check the translated page on the front-end.
  11. The translated page on the front-end

The translated page shows all the translated strings, implying that the updated language configuration file is working properly. In case you are encountering any issues, please contact our compatibility development team. They will be happy to check issues related to the language configuration file.

Once done with the tests, please submit a merge request to our repository. Our compatibility developers will receive your requests and review it.