I'm working on standing up a new Drupal 7 site that will have content in multiple versions, and as I'm reviewing the i18n module, I see that there are now two methods for translating content: "Content Translation" and "Entity Translation."

However, the articles I've found on this are all several years old. I would have expected that, by now, there would be consensus built around the "blessed" method of doing content translation, but I can't seem to find anything except "we're moving towards entity translation, hopefully it will be done soon," and this is all in posts that are years old--so maybe by now it is done? But I just can't find the posts saying it's ready?

So, is "Entity Translation" ready for prime-time, and it's the current method recommended by Drupal (the team)? I'm looking for an authoritative reference (e.g., post by someone on Drupal or i18n team, or a respected Drupal community member), that gives the current state of affairs for Drupal internationalization.



Let me start by stating that I am not on the i18n team, nor very involved in the development of Drupal. But I have been working with Drupal multilingual sites for over several years, where we switched to entity translation about 2 years ago. I have done the same search as you are doing now and these are my findings.

The article you've found already covers the main things, and entity translation in my opinion is more the Drupal way. The whole translation system already went into the D7 Fields API where a value is accessed like this:


Most examples will use 'und' (the value of the constant LANGUAGE_NONE) for the undefined index, but it can also contain a language code. Thus fields in D7 are already multilingual.

In my opinion the entity translation module uses this in a more effective way, where one piece of content, one node with one id is being linked to one field, which is used to serve content in several languages. Rather then having several nodes, each being in another language and linked to the others.

For us this solved problems when fetching certain nodes by id in an external system and finding out it had the wrong language etc.

I know entity translation is still in Beta, but over 2 years I never had an issue with it. Also note that at the bottom of the entity translation project page it states that it is in D8 Core now (although under the name of content translation). I've just tested this on a local machine and there is indeed one node for several languages, so it at least looks like entity translation is in place. Those things made me assume this is the Drupal way.

Hope this helps somewhat in making a decision.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.