- There are two main methods to choose from to configure a multilingual Drupal website:
- Entity Translation is the newer method
- 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 Content Translation (the older method)
When the Content Translation module is enabled you can translate site content into different languages. Working with the Locale module (which manages the enabled languages and provides translation for the site interface), the Content Translation module is key to creating and maintaining translated site content.
Drupal 6 and 7
Configure content translation
- Navigate to the Permissions page (Administration > User permissions in Drupal 6, or Administration > People > Permissions in Drupal 7) and assign the “translate content” permission to the appropriate user roles.
- Navigate to the Languages page(Administration > Settings > Language in Drupal 6, or Administration > Configuration > Regional and language > Languages in Drupal 7) and add and enable desired languages.
Enable translation support for a content type
- Navigate to the Content types administration page (Administration > Content > Types in Drupal 6, or Administration > Structure > Content types in Drupal 7).
- Select a content type you want translated, and select "edit", then "Workflow settings" for Drupal 6 or "Publishing options" for Drupal 7.
- At the "Multilingual support" section, select "Enabled, with translation".
- Be sure to save each content type after enabling multilingual support.
For more useful materials on configuring a multilingual site in Drupal, see Resource Guide: Configuring a Multilingual Site.
To enable content translation in Drupal 8, enable the core "Content Translation" module.
To configure: Configuration > Content language and translation ( admin/config/regional/content-language )
This module allows you to decide whether each type of content entity (node pages, comments, custom blocks, taxonomy terms, user accounts, etc.) should be translatable or not. Then, within each entity type, you can decide whether the sub-types (content types for node page content, terms in particular vocabularies for taxonomy, etc.) should be translated. And within each translatable entity sub-type, you can decide which fields should be translatable.
To Translate content:
Once you have designated certain fields of certain entity sub-types to be translatable, and you've installed at least two languages on your site, you can translate content items. Users with translate permissions will see links to "Translate" alongside where you'd normally see "Edit" links, and you'll be able to add translations for each configured language. Behind the scenes, you'll see that all the translations share the same ID (such as the node ID), and if you look at the Drupal database, you'll see that there is a table that stores information about each translation (such as the language and the node ID), and then each field stores its translated values in a separate table.