Last updated 28 January 2015. Created on 15 September 2011.
Edited by jhodgdon, Francewhoa, batigolix, LeeHunter. Log in to edit this page.


  • There are two main methods to choose from to configure a multilingual Drupal website:
    1.   Entity Translation is the newer method
    2.   Content Translation is the older method
  • Entity Translation is now in Drupal 8 core. It is available for both Drupal 7 and 8. With an upgrade path from Drupal 7 to 8;
  • Content Translation is available for both Drupal 6 and 7;
  • Below is the documentation for Entity Translation



The Entity Translation module allows entities (such as nodes) to be translated into different languages. Entity Translation provides field-level translation, so that site builders can select which fields should be translatable. It provides a UI for users to translate these fields into other languages. Entity Translation is now in Drupal 8 core. With an upgrade path from Drupal 7 to 8. Entity Translation is not a replacement for the Internationalization (i18n) package, which includes many other important multilingual features such as multilingual taxonomies, menus, and blocks.

Use Cases

Entity Translation is particularly useful for content that should be language-independent and should always exist in all languages in the same state. Entities that include membership signups (groups), workflow status (issues), or that are involved in transactions (products) are good candidates for Entity Translation.


When using Entity Translation, you need to use the Title module to allow entity titles to be translated. Note: Don't confuse the Entity Translation module with the Field translation module. The Field translation module allows for translation of field settings, such as the field's title and description, and is part of the Internationalization (i18n) package.

Looking for support? Visit the forums, or join #drupal-support in IRC.


BigJonMX’s picture

I came to this page as I am coming straight to Drupal 7. Apparently Entitly Translation is the 7&8 method, Content Translation is the 6 method. At no point did anyone say I need internationalization. So do I need it, if so , why? (and yes, I've spend hours reading about all this!)

PascalAnimateur’s picture

I've just recently discovered entity_translation, but up until now I have managed to implement decent multilingual support with a combination of these modules:
i18n : translate blocks, menus, system variables, etc (except fields!)
i18n_contrib : hreflang support, entity reference synchronization
title : make 'title' a normal field
localize_fields : translate field labels (I use this module instead of i18n_fields)
l10n_client : on-page translation
l10n_update : update translations from

From what I understand, entity_translation plays the same role as i18n_fields / localize_fields but with a better, more complete interface (even if it's still in beta), so you'd still need some parts of i18n (ex: i18n_variable) for complete multilingual support (say, to translate the site slogan).

ciss’s picture

entity_translation translates field values, while i18n_field allows you to translate field properties (like field label, description, option labels).
i18n's primary field is the translation of interface strings (that is, text not stored as part of an entity).

velhonoja’s picture

I made this diagram when i was studying/trying to figure out what is the "right" way to make multilingual site. I add it here just in case someone finds it helpful (assuming information is correct?).

mikebrooks’s picture

Entity Translation is now in Drupal 8 core, however the module in D8 is named Content Translation (Machine name: content_translation). Reference:

Internationalization (i18n) is also in Drupal 8 core, but likewise you won't see a module called i18n. The modules are Language (Machine name: language), Interface Translation (Machine name: locale), and Configuration Translation (Machine name: config_translation).

For the Extend administration page (/admin/modules), these four modules are grouped in the Multilingual package, not in the Core package.