Almost every multilingual site has some untranslated content. This has always been a problem when using WPML, as untranslated content doesn’t show up in other languages. Let’s see if we can do something about it.
WPML keeps strict separation between languages. Every post or page is unique in the database and includes content in its own language only.
When switching languages, WPML displays only content in that language.
This means that the site’s navigation will show only pages, categories and posts in the current language. If you switch to content in another language, the language switches and now you see the navigation in that language. Clicking on other links will lead you to content in the other language.
Different Languages for Content and Navigation is Problematic
Folks have asked us to allow showing content in one language but keep the navigation in another. This is super-problematic and we don’t see a way to do it.
It means hooking to a gazillion places and making WordPress think it’s on a different page than it actually is. It will add a huge amount of code and increase the number of database queries significantly.
Instead – Auto-Duplicate Untranslated Content
While we can’t show content in one language and navigation in another, we can certainly duplicate content to all languages. This is what I’m thinking about:
- The Translation Dashboard screen will have a new button for duplicating content. Instead of just ‘send to translation‘, it will also have ‘duplicate content‘. This means that you can use all the filtering power of the Translation Dashboard to choose what you want to duplicate.
- When you duplicate content, WPML will automatically adjust links in the duplicated posts and pages. This means that inline links will retain the current language.
- WPML will show duplicate and translated content differently. This way, if you later decide to translate content that you duplicated, you can still locate it and send to translation.
We will also a way to tell WPML to auto-duplicate new or updated content. This will save you the hassle of going through the Translation Dashboard every time you create or change something.
Pros
There’s no performance penalty – all this operation is done in the WordPress Admin once, and not every time visitors come to your site. For me, this is the major advantage.
It will work – this change doesn’t require any additional filtering or hooking and is not sensitive to future changes in WordPress. It’s also theme-friendly.
It’s selective – you decide which content to duplicate and when.
Cons
It’s not a fully automated solution in the sense that you tell WPML to do it once and it just happens.
Duplicate content will sit in your database and increase its size (but it’s not as bad as it sounds). The WordPress revisions system takes far more memory than this and is not a big deal either.
What do you think?
This is a fairly big job and we’ve been hesitant about it. Now that we have more developers, we can tackle greater challenges.
Before we jump on this, I’d like to see what you’re thinking and make sure that we’re not forgetting anything. Leave your comments and lets see!
Please, jump!
This idea sounds great and could be really helpful for my site. Please definitely work on it.
Dear friends,
I was looking for a solution for this problem yesterday, and finally your staff member told me about this blog post. I’m happy that you’re aware of the problem and I hope that you’ll come out soon with the a solution. Since I’m not a programmer, I thought, that it shouldn’t be too complicated to change the “WPML-> Languages->Blog posts to display: All posts (display translation if it exists or posts in default language otherwise.)” option into a “display translation if exists or posts in ORIGINAL language otherwise” option. But since you say it is, I will be happy with your solution. I have just a little remark: WPML is multilingual, not bilingual, so please make the solution multiplying, not just duplicating the posts. I’m creating my second portal in four languages (the first was with typo3), and the multilingual part is by far the most challenging and laborious one. So I would like to thank you again for the good work and wish you good luck and high jumps onto this milestone of WPML.
Cheers, Pascal
It’s easy to change the label of that control, but very complicated to actually make it work
Once we have this new option, we’ll probably discontinue the blog ‘all posts’ option, as it will become irrelevant.
When I say ‘duplicate’, I mean copy to all languages, not necessarily to only one language.
Yes, please!
In my opinion it’s a good thing to only show what’s translated in the chosen language. My English and Dutch content is always different and being local oriented the English is secondary – and less content.
Excellent! Please add this much-needed feature.
You make a valid point. The revision system adds much more to the DB than this awesome idea of a duplication across all languages option ever would.
The ability to have un-translated post types simply duplicated across all languages would be a huge help, and the best solution my my opinion for handeling mixed language content without dealing with crazy db calls and url rewrite trickery.
Thank you WPML!
One more though: It would be very smart to allow the user to choose which post types should be duplicated. Not just default to duplicating all not-translated post types, as post types can be used as something other than a typical post/page content element.
I would like to ask you what impact is going to have the duplicate content in SEO point of view?
Duplicate logic is bad for SEO. We will need to ensure that the search engines know that it is duplicate and to point to where the original is. Then, there is no harm.
Have you finally implemented the solution you describe for this problem of duplicate content ? Thank you.
Yes. It’s implemented in WPML. See here:
http://wpml.org/2011/12/wpml-2-4-2-content-duplication-and-wysiwyg-custom-fields/
Great idea! Pls go for it!
Yes ths would be great.
I would love to see WPML implement a solution for this problem, and I think you are on to the right track.
Having digged in a bit deeper recently on a project I understand the complications you have to face, but I think you are the team to do it.
I look forward to hearing more about what and when, it would be a perfect solution to a problem I am facing right now for a customer.
Keep up the good work.
I vote absolutely, positively, definitely YES.
Please.
I have had to write small admin scripts to do this for me on client sites with 100′s if not 1000′s of items, some of which will never be translated but MUST show in the default language.
A very big +1 on this feature!
Yes, please. If this feature is implemented, I will come back and use WPML. I stopped using it precisely because of this problem.
Just right now we need it very bad for our multilingual (4 lang.) multi-site network.
One of the sections (blog) is important but contains only the content in native language. We don’t want to hide it, but to duplicate it manually every time for every language seems not to be the greatest solution.
Thank you for your thoughts about this ‘problem’ and good luck!
To buy your plug-in was one of the best decisions i’ve made so far.
Your support and your big ambition make many people very happy.
We are running a website with 4 languages and it is really difficault to get everything translated wel
We have a lot of problems with unussual non wordpress related strings
It would be best to open threads about specific issues in our forum and let our support people try to help you with them.
This feature is an important one, and it would be great to have.
the “duplicate content” button will have a very good impact on users around the world who also had the problem of functionality because translations ware not existent.
Congrats for the WPML, is a realy great tool.
I was reading this thread but I’m a bit confused. I don’t have (yet) your plugin. I just wanted to confirm two things:
1 – If I want to write a post let’s say in Polish, should I leave the content for English blank? And what happens when people switch from the Post in Polish to English? Will they get some kind of a message saying “This article is only available in [Name of the language]
2- How will the translated browser url look like? Will it be http://www.example.com/pl
Thank you.
This new functionality in WPML allows the same content to appear in several languages. Each language get its own URLs.
I think I wasn’t clear (:
I’m not interested in having English content on the Polish website. So, what happens when I only have content in Polish for a certain post?
What will display there?
Thanks
Is this functionality already implemented? I can’t seem to find it..
Ah found it, however, I’d like to copy the taxonomies, I see this isn’t possible yet (I’m talking about 300+ taxonomies which need translations). Is there any way I can do this?
Taxonomies will be copied together with the posts that belong to them. If you don’t have any post that holds these taxonomy terms, create a dummy one. Include all the taxonomy with that post and duplicate it. Then, you can delete that post. That dummy post can start as draft too.
Hi,
This is working for categories but not for tags.
Running v2.4.2
Any advise on batch duplicating all my tags from a language to another?
Regards.
Tazintosh.