The Contact Form 7 for WordPress is a nice simple plugin to build contact forms fast. But when it comes to making it completely multilingual it lacks a bit.

I am currently creating a website with 13 different languages, that would mean to create the same contact form 13 times, not really practical :)

I am translating the form labels on the fly with some javascript magic, but for the messages I had to go a bit deeper.

  1. Open wp-content/plugins/contact-form-7/classes.php
  2. Go to line 800 function message
  3. Change this

    to this

    See how I wrapped the gettext function for the return, that does all the magic.
  4. Next we have to make sure that the messages are being found by localization helpers like Codestyling Localization
  5. In your theme functions.php add a translation for each of the Contact 7 Form messages
  6. The first message in the Contact 7 Form admin says: Your message was sent successfully. Thanks.

     
  7. Do not change these messages in the Contact 7 Form admin anymore or the setup will break. These updates will have to be repeated with each plugin update, unless the author does something similar.
  8. Happy translating.

Cheers
Alex