Using WPML for Multilingual Forms

Wpml Translate Form Button
  • Description
  • FAQ
  • Screenshots
  • DEMO
  • Updates & Support

Translate your forms into multiple languages using WPML and the Formidable Multilingual add-on.

Download and install

Formidable Multilingual requires that your WPML account type includes access to the following plugins: WPML Multilingual CMS, and WPML Translation Management. These plugins are bundled with either WPML Multilingual CMS or WPML Multilingual Agency.

  1. If you haven’t already done so, install and activate Formidable Forms Pro.
  2. In your WordPress admin, go to Formidable → Add-Ons and click the Install button for the Multilingual add-on.

Translate a form

After the three WPML plugins and the Formidable Multilingual add-on are activated, you may follow the steps below to translate your forms.

  1. Go into edit a form that you would like to translate. Click on Settings and click the Translate Form button.
  2. Enter your translations. If you would like to prevent a translation from being used, uncheck the ‘Complete’ box.
    Wpml Translate Form Enter Translation
  3. Publish your form on a page and use WPML to translate the page to any other languages you would like to use.
    Wpml Translate Form Publish Page

Translate a View

To translate a View, you would need to create separate Views for each language.

  1. In your form builder, add a hidden field.
  2. Activate this code snippet and use [current_wpml_lang] as the default value for your hidden field.
  3. Create a View for the default language. For this example, use English.
  4. In the Multilingual content setup, select Make ‘Views’ translatable.
    Wpml Translate View Multilingual Content Setup
  5. Scroll down to the Advanced Settings. In the Sort & Filter section click the +Add button next to Filter Entries. Set up the filter such that Hidden field is equal to en.
    Wpml Translate View Filter Language
  6. Create a new View and select your preferred language from the right sidebar. For this example, use Spanish.
    Wpml Translate View Select Language
  7. In the Advanced Settings, set up the filter such that Hidden field is equal to es.
    Wpml Translate View Filter Language
  8. Publish your View on a page and use WPML to translate the page to the language that you would like to use.
    Wpml Translate View Publish Page
  9. In the Multilingual content setup of the page, select Make ‘Pages’ translatable.
    Wpml Translate View Multilingual Content Page Setup

Set datepicker language

Follow these steps to make the datepicker field in your form use a different locale.

  1. Open the field settings for your date field and set the locale.
  2. Go to the form translation page for this form.
  3. Select your preferred datepicker language from the dropdown for each language you are translating to.
    Set Multilingual Datepicker Language

Sending translated emails

To send the email for the correct language, you’ll need to set up multiple email form actions. Each of these emails will be sent conditionally, based on the language submitted.

  1. In your form builder, add a hidden field.
  2. Activate this code snippet and use [current_wpml_lang] as the default value for your hidden field.
    Wpml Email Hidden Field
  3. In your form Settings → General page, click the Translate Form button to add the translations for your form and publish it on a page.
  4. In your form Settings → Actions & Notifications page, create an email action for each language that you want to translate. Set them up however you’d like.
    Wpml Email Form Actions
  5. To ensure that the correct email is sent depending on the language, add conditional logic to each one. For example, use en for English and es for Spanish.
    Please note that Conditional Logic is only available in the premium version of Formidable Forms. Your conditional logic will look like this:
    Wpml Email Conditional Logic

Redirect based on site language

In order to redirect to the correct translated page after form submission, follow these steps to get the current language that the user is currently viewing.

  1. Add a hidden field to your form.
  2. Insert the following shortcode in the hidden field to get the current language.
  3. In your form’s → Settings → Redirect URL, you can add this conditional statement:

    Where x is the hidden field ID containing the current language.

  4. In your WPML settings → Language URL format, choose the Language name added as a parameter.

Set the reCaptcha language

In your Formidable → Global Settings → reCaptcha, select “Browser Default” as the reCAPTCHA Language. This will set the browser language to be used for the reCaptcha.
Wpml Recaptcha Language Browser Default


Default language always shows

If the default language is always showing after setting up and saving your translation, this is usually related to settings in WPML. It works best if the default language in the WPML settings is the same and the default language set for the string translations.

English translation not working

If you have translated your form from a default language other than English (e.g. Italian), the translations may not show up. Try the following steps to resolve the issue:

  1. Go to the WPML → String translation page and search for the string that is not translating.
  2. Select the string and change the selected string language to your site’s default language.
    Wpml String Translation Default Language

If this does not resolve the issue, please create a ticket in the help desk for assistance.

Conditional logic not working

If you have added conditional logic to a field, this may break when you translate your form to a non-default language. To resolve this issue, enable separate values in your radio, dropdown, and checkbox fields. This way, only the displayed value is translated and the conditional logic will work across languages.

Error: Call to a member function

If you see this error message, check each of the following:

  1. Are Formidable Forms, Formidable Forms Pro, and Formidable Multilingual up to date? If not, please update.
  2. Are WPML Multilingual CMS and WPML Translation Management up to date? If not, please update.
  3. Do you have the Polylang plugin installed? If so, you’ll need to choose between the two. They are currently not designed to work together.
  4. Do you have another plugin installed that uses WPML or Polylang? If so, try deactivating it to check for a conflict.

Additional customizations

These code examples can be added to a child theme’s functions.php file or the Code Snippets plugin (recommended). To learn more about how to use code examples like this, see the Formidable Hooks guide.

Get the current language

Use [current_wpml_lang] to get the current language by adding the code below.

add_shortcode( 'current_wpml_lang', 'current_wpml_lang' );
function current_wpml_lang() {
  return apply_filters( 'wpml_current_language', null );
Shopping Cart
  • Your cart is empty.
Scroll to Top