If you have a Drupal multilingual website, you've probably heard about the Entity Translation module, a module that allows you to translate fields in Drupal, instead of translating nodes. This means that instead of creating a node, taxonomy term, and user for each language on your site, you can create a single entity and translate the fields on it. The Entity Translation module includes a submodule that helps you upgrade to this new translation method.

Before you start, make sure you backup your database (and make sure you're doing this in a testing environment)

Installing the Modules

Download the latest version of the "Entity Translation" module and enable it along with the submodule "Entity Translation Upgrade". You'll also need to download and enable the Title module. This will allow you to turn node titles and taxonomy term names into fields, so that you can translate them as well.

Setting up the Content Type

First, you'll need to set up your content type to use entity translation method.

  1. Choose a content type to test with (we'll use a Profile content type as an example).
  2. Go to Structure > Content Types and edit your chosen content type (e.g. Profile) and click on Manage Fields.
  3. Click replace next to the title to replace it with a field.
  4. Edit each field and check its translation status (this setting is at the bottom of the page when you edit the field). For fields left untranslated, you'll only have one value for the field across all languages on your website.

Doing the Upgrade

  1. Go to Configuration > Regional and language > Entity translation.
  2. Click on Entity Translation Upgrade and choose Profile. Click Save configuration.
  3. Go to the Content page and filter to show only the Profile nodes so you can review the changes that the upgrade has made.

You'll notice that the nodes that are no in the original language have been unpublished, and that their contents has been moved over to the field translations for that node.

Testing and Adjusting

  1. Test the behaviour of node reference fields.
  2. If you want, you can go through and delete the translation nodes, after testing that the content was properly moved over to the main nodes.
  3. Go through and edit your Views, to remove unneeded language filters.
  4. In each view, replace the Title property with the Title field.
  5. Go through your menus and test that translated pages are appearing as expected. You might have to update menu items to change their language status.

Dry, Rinse, Repat

Repeat for other content types as needed. You can do multiple content types at once, but I recommend starting with one so you know what results to expect for the others.