We’re ready with a new beta release, with a highly requested feature – to allow displaying untranslated content in different languages.

Remember how you’d like your blog posts to appear in different languages (but without accidentally switching language) and how you wished you didn’t have to duplicate stuff when translation is not needed?

WPML 2.4.2 does all this, and more!

We talked about it a couple of months ago and now it’s ready for your testing pleasure. It’s very difficult to display content in a different language. This causes a host of issues, especially with keeping navigation in the right language.

Instead, we’ve added a new content duplication mechanism. This will allow you to create the same content for different languages, without sweating over it. Just choose what to duplicate and WPML keeps all translations in-sync with the original.

This means that you can blog, setup products and create your portfolio in just one language and have it displayed in all language.

The new content duplication logic is part of the Translation Management module, so it’s only available if you’re using the Multilingual CMS package.

Duplicating Content from the Editor

When you edit any content (post, page or custom types), you’ll see this new set of check-boxes in the Translate yourself section. Choose the languages you want to duplicate to and click on the Duplicate button at the bottom.

Duplicating content from within the editor

WPML creates the same content in the languages you’ve selected. Whenever you edit the original, duplicates will update as well.

If you later decide to translate these duplicates yourself, click on the pencil icon to edit them. There, WPML shows you that they are duplicates. Click on the button to translate them individually and start editing.

Batch-Duplicating Using the Translation Dashboard

When you want to duplicate a large amount of content, all at once, use WPML’s Translation Dashboard.

Duplicating content via the Translation Dashboard

Choose the content to duplicate. Next to each language, there’s a new option to duplicate. Click on Send content and you’re done.

It doesn’t matter if you’re selecting content from the Translation Dashboard or from edit pages. You can later edit that content and make it independent or turn existing translations (which are actual duplicate content) into duplicates.

WPML Tells Google Where the Original Is

In case you don’t know it, WordPress has a way of telling search engines where content originates from. The rel=”canonical” tag indicates the original URL of every piece of content. This way, if it appears in several URLs, search engines know where to list it on.

Since now, WPML knows that duplicate content is indeed duplicate, it communicates this information. The rel=”canonical” tag will point to the URL of the default language.

This way, Google doesn’t mistake you for trying to SPAM it and always knows where the original content is.

Download and Test

As always, you can get Beta versions from your WPML account.

Login to your account, click on Downloads and scroll all the way down.

We’re looking for feedback about this new workflow. If you’re running a site that needs extensive content duplication, we suggest that you take this new feature for a test run and let us know how it’s working for you.

Update: Since this post, WPML includes a fully featured content duplication module, which makes it possible to show untranslated content.

29 Responses to “WPML 2.4.2 (Beta) Displays Untranslated Content”

  1. Great news!
    Does the custom field values of a post/custom post type get duplicated as well in the duplication?

  2. Hi Amir,

    How do I change languages code?
    Portuguese “pt-pt” doesn’t make much sense to me, should be “pt” only.
    I mean you guys use “es” for Spanish, not “es-spain”. This is correct once no matter how many countries speak Spanish “es” is the main. Sorry, but I just don’t like the idea of having a huge slug in my own language just because in Brazil they also speak it 😉
    Portuguese from Brazil “pt-br” is ok tho.
    Rest, awesome plugin, great work! Appreciate thx

    • This is possible, but highly un-recommended. You’ll need to change the language code in many places and probably break things.

      If you have to do this, define a NEW language and give it this code. You can do that in WPML->Languages->Edit languages.

  3. 🙂 now if you could just add an option to display a foreword such as “This post has not been translated to es yet. Here is the original article.”

    my only small hiccup is that I’ll have to enclose all of my posts in <div lang=””> blocks so that their content is correctly identified by my css no matter where they appear on the site.


    • This is a very good suggestion. We’ll add a way for you to get the language of the post, so that you can include it in the theme and tell Google and readers that you have content in a foreign language.

  4. Amir: So far so good! Just a couple of first reactions. It was not clear at first, but one MUST have the wpml-translation-management module installed and activated. Then the translation options are available under WPML > Translation Management.

    I am able to do bulk translation 20 at a time… but a few of my post types have 1000+ entries. This, does NOT work in bulk mode. And since there is no way to view, say 50 at a time, I am left with duplicating them in chunks of 20.

    I like how these are true duplicates, and will continue to reference the master content. I also find it amazing that the permalinks reflect the exact permalink of the master! No blablabla-2 for example. Well done!

    Once implemented on our dev system and the templates change to reflect the new duplicated content… the client is going to want to know when it can go live! any hints as to release schedule?

    Again, GREAT JOB.. so far.

  5. Hi !

    Does it duplicate also the featured image and the attachments ? I have a lot of post with some images I need to keep in the other language…

    And if I decide to duplicate the content, can I change just a few things in the duplicated post without changing it for the original post ?

  6. I’ve had a play with this, seems almost perfect but it appears comments made on the original post won’t sync to the duplicates. Is this likely to be implemented or am I missing some nice easy way to code this in myself?

    • Good point. I’ll add this to our todo list. It would make more sense for comments to be synchronized too. Shouldn’t be too complicated to implement.

      • Amir,

        Do you know if this will work with the Disqus comments system as well? I believe comments are based on a unique postmeta entry…

        • Scratch that. It appears to be a bit more complicated. When Disqus loads the comments for a posts, it does it based on a unique identifier that is generated by the Disqus plugin. The identifier basically consists of post id and guid in one string.

          Now, any ideas on how to get around this with duplicate content? I realize that the changes probably have to be made in the Disqus plugin, but I wanted to ask for your ideas…

          • If Disqus plugin authors are interested, we’ll be more than happy to review this together and make sure that everything works properly. Do you want to contact them and see about that?

        • I know that some people are using Disqus with WPML, but I’m not sure what they’re doing exactly. WPML uses different posts for different languages, so things should work fine, but I’m not clear about how Disqus tells which language each post is.

  7. I am new in wordpress and wpml, but my task is to build multilanguage site with the option to show or not to show translated posts. How can I identify if a post is an auto duplicated post or a real translation? Which property of the post can tell me if is is just a duplicate or real translation?
    Thank you very much for your help.

    • WPML’s Translation Management screen will show a different icon for untranslated content, duplicated content and translated content. There’s also a notice about it when you edit posts. It’s very easy to identify when content is duplicate.

      • Dear Amir,
        thank you very much for your reply. I have to identify from php code. On the home page there will be a link: show all posts / show posts in selected language. In the first case I have to get all the post (for example in the english page I have to show all the posts that are duplicates of a spanish post for example), which works fine. But when the user select “show posts in selected language”, I have to hide the duplicates of the spanish posts on the english site. So my question is, how can I identify fom php code if a post is a duplicated post.
        Thank you for your help.

    • You don’t have to install a different SEO plugin to avoid content duplication. WPML includes a link to rel canonical, telling search engines where the original content is.

      • Hi,

        I’m using wpml 2.7.1 / WP 3.5.1 and my duplicate content gets different canonical urls. If I understood correctly it should have the one and same canonical url…

        Is there something I missed ?

        Thanks !