Enable content translation

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.

Drupal 8

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.

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.

Comments

Please make sure that all languages have their path prefix set-up (Home › Administer › Site configuration › Languages > Edit > Path Prefix). This will prevent you from getting ugly "Page not found" error messages for translated pages that are accessed using path aliases.

This guide states "this (“Translation” ) tab allows translations to be added or edited using a specialized editing form that also displays the content being translated."

However in my case from the translation tab you create a new node with a different node ID and may have different settings (taxonomy, publishing options etc may be different from the original). There is no "specialized edit form".

Am I missing something? Or this part of the guide does not apply to drupal 6.x?

If I want to translate a "story" node, then when I click on "translate" tab, and enter the translation and save it, now I have TWO stories showing up on my frontpage because both these are different nodes.

Do I have to remember to manually turn off "promoted to front page" each time I'm translating content?

If translation tab is not appearing when you the node, the problem is with settings. You have to enable this setting for each content type.
Go to content management > content types and then edit the content type for which you want the tab. Then in the "workflow settings" under "Multilingual support" check "Enabled, with translation" option and then check.

Thanks Shinh, you saved me from self hair removal.
Still, i got an issue about the theme used while translating, when i click the tab, it switches to my frontend theme (also my default),
which is quite annoying...

Any suggestion?

*edit
I did not set the admin theme for editing content
and had to style the forms correctly in my frontend theme.

I have "Enabled, with translation" checked under Workflow Settings > Multilingual for the selected Content Type. I view a page of that content type and still do not see the Translate tab. ...any other ideas? Additionally, I am using the default Garland theme.

How can I translate the menu.?
this module only translate the content but it will be good if it can translate the menu too
example "About us" in english, then when you click for french it should show "A propos "
maybe it's me that doesn 't know how to do it :)

this is excatly what I was looking for, too, but I just can't find the way to
"within that menu item, select the language for what you want it to display."

I have Drupal 6, and got everything else done fine, so could this be about site themes (a different theme for admin and another for users)?
Or am I missing something about editing a menu item, because at the Edit menu item form (admin/build/menu/item/itemnumber/edit) I have only fields for Path, Menu link title and Description, boxes for Enabled and Expanded, and dropdown lists for Parent item and Weight.

If you ever want to change any of the built-in words/sentences in Drupal default, for ex - the description of the node types in add/node/page, then you will have to use the 'translation interface'.

If you have a lot of words that need changing (it will actually show you how much percentage of the site is translated to your language), then I'd suggest exporting the .po file, filling it in with the proper translation and then importing it back and voila, you have your multi-lingual site.

All translations I have done so far, are working fine. This really is a great feature in Drupal, I can have a real multilingual site, with fairly little effort.

Translating the Menus and "normal" Block works like clock-work, too, after I read the instructions to create an own menu / block for each language, and then separate them with "Show only on listed pages" setting, using path prefix.

The problem is only with content types that require the setting Identification => Make a listing page for this content type, in order to work the way I want them to.
For this content type, (at the admin/content/node-type/) I have selected:Workflow settings => Multilingual support: Enabled, with translation, andMultilanguage options => Normal - All enabled languages will be allowed

Translating the content itself works fine, of course, but the listing page gets a new list item of every translated page of that type.
I want to separate the different languages to two different listings pages, one language per list.

I think there must be a way to fix this, but just can't seem to see how. Please, help!

I think that I have followed all the advice above, but end up with the same articles appearing in both English and French Sites, i.e. the English article and the translated French one. Any ideas where I have gone wrong?

A supplementary question is on Menu translation. I have installed Openpublish and the primary menus partially change when the language is changed. A number of terms however remain in English. I have used menu translate and added the translations into the fr.po files. Again what I am doing wrong?

All help gratefully received to avoid damaging myself on these brick walls

I think that I have followed all the advice above, but end up with the same articles appearing in both English and French Sites, i.e. the English article and the translated French one. Any ideas where I have gone wrong?

I have found out that it is possible to resolve the problem. After reading the comments on http://drupal.org/node/1029724 I realised that some other control not associated with language setting should solve the problem, if it was solvable. The only one that I could think of was Views.

The solution is
Add an extra filter to Views for the content type.
The filter is node translated: equal to one of current language and no language.

Et voila tout est en ordre!

I hope that some one else will benefit from the pain that I have endured.

Just double checking but when you goto admin/build/translate does it show your language (fr) as having 100% translation? If not, that may be the problem. You can easily change Drupal's built-in strings from there.

Working with Openpublish I have found it very difficult to build a topics OP menu in 2 languages. Even if I set the translation of a menu item it keeps displaying in the other language menu. I was wondering how you fixed this Riverrat?

So far, so good - I've got it working in principle with a site running English as "first language" and German second, using the "de" path prefix. The problem I'm running into now is that the prefix is also automagically added to image references, leading to the images not being found.

E.g. if I have an image in the English page living at /sites/default/files/images/image.jpg and have a German translation of the page referencing the same image, it's not found because the generated path for it is /de/sites/default/images/image.jpg. I have tried working around that by creating a de directory and linking to ../sites from within it, or by creating a symbolic link "de" in the drupal directory, but both approaches created other problems. And it shouldn't be that way in the first place. What am I missing?

Hello, by this I am able to translate nodes in any language but the problem I am facing is if I am displaying a node at my homepage ,it does not translate body of node because it creates a new node for each translation and hence it is not giving me uniform solution.It only changes language at that particular node only.Kindly help me to get out of this.

I am sorry if I am asking something stupid. But what my confusion is :

I have installed Locale & Content Translation module. Set the appropriate permission. Added & enabled the Arabic Language. Then from Translate interface section I have imported the ar.po file. Then in Multilingual support section checked "Enabled, with Translation" for basic page.

Now when I am creating a basic page content I am getting the Translate Tab. But when I am clicking the Add Translation link it doesn't automatically translating the node title / body into Arabic language.

My question is to get the translated version of the page do I need to provide the translated content? Or there is any way to get the English content body translated automatically?

I have gone through all the available tutorials and instructions and issues but still my translation not working. everything working fine but not translation of the content.
System environmental information
1. Drupal 7.32
2. PHP 5.4.2
3. Apache 2.2.22
4. working on localhost

Issus: when I am translating a node it is creating separate node but it is saving in English as original language, when switching to other language like Japanese http://localhost:81/drupallang/ja/page3 it don’t translate into Japanese but display in English, even if I create a node on other Language it create English content.
Thanks in advanced

Thank you. I have a situation here where I want to display content in two languages at a time , like multilingual page. However while adding the content , the content must be added for one language and same content is translated to other language .
I have another another doubt. When site was searched for a keyword in one language and result is shown for one language. Can the translated versions of that result page can be shown in results too?

For example site is searched for 'xyz' and if 'xyz' exists in one of the nodes in English then it's shown in results. The translated version of node doesn't contain 'xyz' , but I want the translated versions of the node that contains 'xyz' also should be listed in result pages too. Can this be possible?

The internationalization module in Drupal 7 used to provide a class in body e.g. i18n-en for English language/ i18n-fr for French. However in Drupal 8, there is no such class provided to distinguish between different languages. How can I apply different styles for different languages in Drupal 8?