Translate Your WordPress Contact Form

How to Translate Your WordPress Contact Forms (Step by Step)

Do you want to translate your WordPress contact forms into another language? WPForms simplifies this process as much as possible so that you can translate your contact forms and reach a global audience to keep your conversion rates high.

In this article, we’ll show you how to translate your WordPress contact forms.

Create Your WordPress Form Now

Step 1: Create a Simple Contact Form

The first thing you’ll need to do is install and activate the WPForms plugin. For more details, see this step by step guide on how to install a plugin in WordPress.

Next, you’ll need to create a form. For help with this step, see our tutorial on how to create a simple contact form as an example to get started.

Contact form loaded

You can add additional fields to your contact form by dragging them from the left hand panel to the right hand panel.

Then, click on the field to make any changes. You can also click on a form field and drag it to rearrange the order on your form.

Step 2: Translate Your Form Fields

Translating your contact form’s fields is really easy to do in WPForms.

By default, all of your forms will be in English. To change the labels for any form field, all you have to do is click on the form field in the form editor and replace the default label with the language you want to translate your form into.

Form Field Label Translation

This requires that you either know the language your translating your contact forms into, or have access to a translator.

Some popular translation tools that can help with this include:

Not sure if these online tools are accurate enough?

Well, according to the Washington Post, Google Translate is nearly as accurate as human translators. That means when it comes to simple form field translations, you’ll be okay using it or something similar.

Step 3: Translate Your Form’s Validation Messages

Validation messages are messages that appear when a required form field is left empty or someone inputs incorrect data into a form field.

Validation Message

To translate your contact form’s validation messages, go to WPForms » Settings and click on the Validation tab.

Validation Tab

From there, all you need to do is change the current validation messages, that are by default in English, to the language you’re translating your contact forms into.

Translated Validation Messages

Again, this can be done personally, using an online translation tool, or even a professional translator if need be.

Click Save Settings.

Your validation messages will now translate on your contact form.

Translated Validation Messages Examples

And there you have it! You now know how to translate your WordPress contact forms.

Create Your WordPress Form Now

Next, Translate the WPForms Admin Area

If you want to translate other WPForms pages that can be seen from the WordPress dashboard, be sure to check out this helpful tutorial on how to translate WPForms admin area, form builder, and default values.

So, what are you waiting for? Get started with the most powerful WordPress forms plugin today.

And don’t forget, if you like this article, then please follow us on Facebook and Twitter.

Using WordPress and want to get WPForms for free?

Enter the URL to your WordPress website to install.


  1. Licensed Basic WP-Form:
    We have three identical application forms to our university programs on one site, and I see how we can create three identical forms in different languages – BUT how can we setup three different Validation messages in each language, one set for each form?

    Thanks, Mark

  2. On the form it still says “First” and “Last” under the name fields. How do you translate these fields?

    1. Hi Thomas,

      These two fields are actually sub-labels and to translate them, you’ll need a little bit of custom code:

      * Customize name field properties.
      * @param array $properties
      * @param array $field
      * @param array $form_data
      * @return array
      function wpf_dev_name_field_properties( $properties, $field, $form_data ) {

      // Change sublabel values
      $properties['inputs']['first']['sublabel']['value'] = 'First';
      $properties['inputs']['middle']['sublabel']['value'] = 'Middle';
      $properties['inputs']['last']['sublabel']['value'] = 'Last';

      return $properties;
      add_filter( 'wpforms_field_properties_name' , 'wpf_dev_name_field_properties', 10, 3 );

      You can find more information about this in our developer’s guide.

      If you need help with adding this custom code to your site, please check out this tutorial by WP Beginner.

      I hope this helps! 🙂

      1. Is there any list of all sub-labels? I am particularly interested in the ‘confirm email’.

      2. Hi there- Yes you can absolutely change the text/ translation of the Email subfields by referring to this dev doc.

        Hope this helps! 🙂

      3. Does this change sub-label values for all languages? My site is bilingual (using Polylang) and I have a contact form for each language. I’d like to change the sub-label values for only my French language form.

      4. Hey Alfie – If you’d like to translate the sub-labels, you can consider taking a look at the snippet shared in our developer docs here.

    1. Hi Roshan,

      Yes, WPForms is currently translated in English, Spanish, French, German, Italian, Japanese, Hindi, Portuguese and Russian so if you change the language of your site, the plugin will automatically be translated.

      I hope this helps!

  3. I have my website in German and French using Polylang. I’m looking for an hour now how to on how to translate the validation messages and can’t find reliable info.

    I have two forms, one German and one French, but the validation messages are all the same across the forms. It makes sense as there is just one global setting for the validation.

    Now am I stupid or what do I miss? How do I translate e.g. “This field is required” in French and where do I put it?

    1. Hi George!
      The only thing in WPForms that is not currently translatable via plugins like Polylang is the validation messages (eg “This field is required”) because they are handled on-the-fly with Javascript, so the process to translate them is different. We’ve made this much simpler to adjust, however, as each message is now customizable in the settings.

      In case it’s helpful, we also have more details in this doc on translating WPForms into a single alternative language

      Additionally, we have a more technical doc that details how validation messages can be changed and used in tandem with WPML (maybe this can help in case of using Polylang too).

      I hope this helps.
      Have a good one 🙂

  4. Where can I translate the text in file uploader
    “you can upload up to (x) files”
    “Click or drag your files here”
    Cant find it in translation file

  5. Hello, I need to create a multilingual site with WordPress. I use Polylang for translations.

    I would like to use WPforms for the registration forms.

    Is it possible to translate the validation emails in several languages?

    Thank you in advance,

    1. Hey Sébastien – Here is a detailed guide on how to translate WPForms using WPML. You can similarly use the Polylang, For more help on that, you might contact Polylang support here.

      Have a good one!

  6. Hi,

    I have 2 languages English + Chinese

    I need to add chinese validation form messages when the website switch to Chinese.
    For info I am using Poylang

    The validation messages do not appear in loco translate so please help.

    1. Hi Martin,

      Yes, you can absolutely set/ change the Price in Single Item Field under Field Options > General > Item Price. Please refer to this screenshot here.

      Hope this helps 🙂

    1. Hey Martin,

      We do not have an inbuilt way to remove decimal but can be removed using this custom code. Feel free to set the decimal value to 0.

      Please Note: If you are redirecting the form to the Payment Transaction, changing the decimal values is not recommended as the payment provider identifies the price incorrectly without the respective currency’s decimal value.

      Hope this helps 🙂

Add a Comment

We're glad you have chosen to leave a comment. Please keep in mind that all comments are moderated according to our privacy policy, and all links are nofollow. Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.

This form is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.