Released on:

WPML 3.5 focuses on String Translation, adding new functionality and improving performance.

Faster String Translation

String Translation in WPML 3.5 looks the same, but behind the scenes it works differently. WPML will keep track of which strings are used on different pages. It will pre-load the necessary strings from the database for each page.

This way, there’s only one database query to load all the strings that a page needs and this database query is fully optimized (loads the minimal number of strings needed).

The benefit this gives depends on the size of the site and, especially, the number of strings in your database.

Sites with a lot of stings benefit the most. With WPML 3.5, each page will load a fraction of the strings in the database.

Translation for Links in Strings

he other major improvement in WPML 3.5 is the ability to translate links in strings (automatically).

We use ‘strings’ for many different things. For example, if your theme stores the ‘lead’ text of your homepage in an ‘option’, WPML will use String Translation for it. Until now, you would need to keep track of strings that have URLs and adjust them to translated content manually. If many strings have links, this could be a very tiring task.

Now, WPML handles links in String Translation, the same as it handles links in ‘posts’ (posts, pages and custom types). When you translate any string that has any link, that link would automatically adjust to point to the translated content. I’ll write a separate blog post that shows how this works with our Toolset Layouts plugin.

Other Changes

Fixes in WPML core

  • Fixed canonicals for non translatable posts, as well as for duplicated posts
  • Fixed XML-RPC API call to set the language of a newly created post (metaWeblog.newPost , wp.newPost , and wp.newPage ).

WPML Translation Management 2.2.2


  • Fixed a compatibility issue with ACF repeater fields
  • Fixed word count for translatable custom fields.
  • Resolved a compatibility issue with a change in WP_Http introduced in WP 4


  • Added a button in Translation Dashboard to refresh language pairs available for professional translation
  • Improved messages when sending jobs to professional translation fails

WPML String Translation 2.4

Besides the major improvements to performance and link translation, this release fixes a minor bug:

  • Fixed getting translated string when icl_t is called directly after icl_register_string.

Sticky Links 1.4.0

Actually, the ability to translate links in String is coming from the update of the Sticky Links plugin. So, this is the major new feature in this release.

WPML SL 1.4.0 also fixes:

  • Fix problem with RTL display in admin pages when plugin is activated network wide

GravityForms Multilingual 1.3.11

  • Fixed bug with post category field registration.

Download and Update

You can get this release directly to the WordPress admin or download and install manually. To receive automatic updates, you need to register WPML on your site. Then, visit the Plugins or Updates admin pages. To download manually, visit your account and go to Downloads. Follow the installation and upgrade instructions for complete details.

When you update WPML, be sure to update together all the components that you are using. Don’t use a mixture of new and older versions.

Feedback? Need Help?

We love feedback. To make a suggestion, ask a question or give an idea, leave your comment here. If you need technical support and help troubleshooting problems, please use our technical support forum.

8 Responses to “3.5.0”

  1. Hi hello,

    i had some problems with enfold theme( after installing all of pages gones and nothing could be find) and for this reasons i disinstall and download last version and insatll agian.
    now i dont have configuartion botton on my dashbord. so what can i do?

    could you help me?

  2. I have issues with Enfold as well.

    I used to have all the language flags display on the homepage instead of just the current one and that was the issue.

    So I was given the following code to add to the functions.php file:

    function avia_remove_main_menu_flags(){
    remove_filter( ‘wp_nav_menu_items’, ‘avia_append_lang_flags’, 20, 2 );
    remove_filter( ‘avf_fallback_menu_items’, ‘avia_append_lang_flags’, 20, 2 );
    remove_action( ‘avia_meta_header’, ‘avia_wpml_language_switch’, 10);

    This code worked well until the latest Enfold upgrade, which I downloaded today. I always had to paste the code in the functions.php after every theme update, yet this time it doesn’t work.

    I’ll post a ticket as well, but just wanted you guys to know.

  3. Sir, I like this plugin a lot. But i have an issue, I have installed it and it’s showing me the option of taxonomy translator while all the tutorials are related to the String installation. and other point I had used the plugins for the table/calculated field forms when i try to translate that pages it’s nto translating and some short-codes have been used in my website so how to translate the content embedded in teh short-codes?

    Thank you very much.

    • The features that you’re mentioning are separate. WPML has a dedicated page for translating taxonomy, under WPML->Taxonomy translation. There’s a separate page for translating strings – WPML->String Translation. For String Translation to appear, you need to install WPML String Translation. It’s included in the Multilingual CMS and Lifetime accounts and available from your Downloads page.

      About shortcodes, WPML today supports a number of page builders and will allow you to translate the “texts” without seeing all this shortcode mess. I wrote about it here:

      It would be great it you could join this discussion, tell us which page builder you’re using and show what you’re seeing.


Leave a Reply

Please leave here comments about this page only.
For technical support and feature suggestions, head to our forum. We are waiting there!

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>