Docs & Support

Learn about all the Formidable features and get support from our amazing customer success team.

WPML

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

Download and install

To access this add-on, ensure you have the Business license or above.
  1. If you haven't already, install and activate the current version of Formidable Forms Premium on your WordPress site.
  2. After confirming your Formidable Forms license, proceed to the Formidable → Add-Ons page and toggle on the WP Multilingual add-on.
    Install the WP Multilingual add-on in WordPress
  3. Download and install the WPML core plugin and WPML String Translation add-on.

Formidable Forms makes advanced site building simple. Launch forms, directories, dashboards, and custom WordPress apps faster than ever before.

Translate a Form

After you activate WPML and the Formidable Multilingual add-on, follow the steps below to translate your forms.

  1. Edit the form you want to translate, switch to the form Settings tab, and click the Translate Form button.
    Clicking the translate button in the Formidable WPML dashboard
  2. Enter your translations and click the Update button. If you prefer not to use a translation, uncheck the Complete checkbox.
    Entering form translation in Formidable WPML dashboard
  3. Embed your form on a page and publish it.
  4. Once published, go to WPML → Translation Dashboard. Select the page where your form is embedded.
    Select form for translation in WPML Translation Dashboard
  5. Scroll down to Step 2 and select the translation method for each target language. You can translate automatically, by yourself, with your team of translators, or with translation services.

    For the best translations, WPML recommends using its proprietary AI translator, Private Translation Cloud (PTC). This AI has the ability to analyze a site's contex to ensure that translations are accurately adapted to your industry and target audience. WPML backs this service with a quality guarantee, offering a refund if users are not satisfied with the results.


  6. You can check the cost of automatic translation before you begin. WPML will show you how many credits are needed for the selected content and the total cost in euros. For example, a single credit costs €0.00059. This means translating a short "Contact Us" page into three languages would cost approximately €0.25.
    Automatically translate the form content in WPML Translation Dashboard
  7. Click the Translate button to send your page for translation.
  8. If you chose a review option, you can find the translations under WPML → Translations. From there, you can review and publish them to your site.

    You can edit any translation at any time if you need to make a change. Simply visit the translated page on the front end while you're logged in, and click Edit Translation which will take you directly to WPML’s Advanced Translation Editor.

Translation settings

  • Pagination. If there are more strings than fit on one page, translation settings are shown on multiple pages. Use Screen Options to change the number of items displayed per page.
    Change pagination elements in WPML Translation page
  • Search. Use the Search box to find content or strings on the translations page.
    Search translation strings in WPML Translation page

Translate a View

To translate Views, you need to create separate Views for each language. To make each View display entries in a single language, we will use the View filtering options covered in the steps below.

  1. If you still need to, create a View for your default language, embed it on a page, and publish it.
  2. Once published, go to WPML → Translation Dashboard. Select the page where your View is embedded, then scroll down and select the translation method for each target language. Click the Translate button to send your page for translation.
    Select View for translation in WPML Translation Dashboard
  3. Go to WPML → Translation and enter your translations.
  4. Edit the form you want to translate and add a Hidden field. We’ll use this to filter the language. Activate this code snippet and set [current_wpml_lang] as the Default Value of your hidden field.
    Set [current_wpml_lang] as the default Value of your hidden field
  5. Switch to the form Settings tab, click the Translate Form button, and translate your hidden field value to your secondary language two-letter codes (e.g., Spanish). Then, click the Update button to save your changes.
    Entering View translation in Formidable WPML dashboard
  6. Next, create a View for each one of your languages. To make each View display entries in a single language, click Filter entries and set Hidden equals the language code you want to filter.
    Add filter in Formidable View dashboard
  7. Embed each View on the matching language version of your page. For example, we're adding a View to our Spanish page version here.
    Embed WPML translated View on selected page
  8. Once the page loads, click Edit anyway in the popup that appears, review your page, and hit Update to publish your View.
    Publish WPML translated View

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

Translate success message

To translate the success message displayed after form submission, you must create a confirmation action for each language. The confirmation actions will be triggered based on the language submitted.

  1. To get the current language, add a hidden field in your form.
  2. Activate this code snippet and use [current_wpml_lang] as the default value for your hidden field.
    WPML hidden field
  3. In your form Settings → Actions & Notifications page, create a confirmation action for each language you want to translate. Select the Show Message button to customize the message and add in your translation.
    WPML Confirmation Action
  4. Add conditional logic to each confirmation action to ensure the correct success message is sent depending on the language. For example, use en for English and fr for French. Your conditional logic will look like this:
    WPML Confirmation

Redirect based on site language

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

  1. Activate this code snippet to get the current language.
  2. Add a hidden field to your form and insert [current_wpml_lang] as the default value.
    WPML Email hidden field
  3. Go to the form Settings → Actions & Notifications page and select the Confirmation action.
    WPML On Submit Form Action
  4. Click the Redirect to URL button. In the Redirect URL box, enter the URL where you want users to be redirected, followed by ?lang=[x].
    WPML Redirect URL language

    http://site.com/thank-you/?lang=[x]

    Replace x with the ID of the hidden field containing the current language.


  5. In your WPML → Languages → Language URL format, choose the Language name added as a parameter.
    WPML language URL format

Redirect Login Form

If you have added a Login form using the User Registration add-on, you might be redirected to the default language after logging in or logging out. To set up a redirect to the language you want to use, you could do the following:

  1. Go to your Login page and click Edit Translation. For this example, the default language is Spanish, and the second language is English.
    WPML Login Form Translation
  2. Insert the login shortcode on your page.
    [frm-login redirect="/en/login/" logout_redirect="/en/login/"]

    WPML Login Form Redirect

  3. If you have set your WPML Language URL format to set the Language name as a parameter, your shortcode could look like this instead:
    [frm-login redirect="/login/?lang=en" logout_redirect="/login/?lang=en"]

    WPML Login Form Redirect Param

Set the reCaptcha language

Go to Formidable → Global Settings → reCaptcha and select Browser Default as the reCAPTCHA Language. This will set the browser language to be used for the reCaptcha.
WPML reCAPTCHA Language browser default

Translate values in custom HTML

If you have content in the form Settings → Customize HTML page that you want to translate, follow the instructions below to get started.

  1. Activate this code snippet to get the current language.
  2. Surround the content with frm-condition to only show it if the current language matched. Use current_wpml_lang as the source.
  3. For example, if the current language is French and you want to display its translated value, your final shortcode may look something like:
    [frm-condition source=current_wpml_lang equals="fr"]Afficher le contenu[/frm-condition]

    Replace fr with your selected language.


Troubleshooting

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 translated a form that uses a default language other than English (Italian, e.g.), the translations may not show up. Try the following steps to resolve the issue.

    1. Go to WPML → String translation and search for the texts that show up untranslated.
    2. Select the string and change its language to your site's default language.
      WPML English string translation not working
    3. Now, try translating the strings in question once more.

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 its necessary components (e.g. String Translation) 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 );
}
Was this article helpful? *

This article may contain affiliate links. Once in a while, we earn commissions from those links. But we only recommend products we like, with or without commissions.

In this article

    We have a small, but amazing team of dedicated people who are committed to helping you achieve your goals and project requirements.


    Copyright © 2025 Strategy11, LLC. Formidable Forms® is a registered trademark Strategy11, LLC.

    Join 400,000+ using Formidable Forms to create form-focused solutions fast. Get Formidable Forms