Community Documentation

Multilingual Guide

Last updated March 24, 2012. Created by juan_g on October 22, 2008.
Edited by jvns, Ryan Weal, sylvain_a, August1914. Log in to edit this page.

You can configure a website to support more than one language or to support languages other than English (also known as a localized, internationalized or a multilingual website).

Drupal has two core modules which enable translation:

  1. Locale module for user interface elements (built-in system strings such as menu items, form labels, help text, and button labels such as 'Log in', 'Logout', 'Submit', 'View', 'Edit', 'Delete' etc.)
  2. Content Translation or Entity Translation (D7 contrib, D8 core) for site content (the actual user-created pages, stories, posts, etc. of the website)

The two most important contrib modules related to multilingual support are:

  1. the Internationalization package of modules (documentation) for important extensions to core functionality
  2. the Localization Update module (documentation) for automatically retrieving translations

There are also many more contributed modules for language and locale.

To quickly install an already localized version of Drupal (which currently supports over 80 languages), you can use an install profile called Localized Drupal Distribution.

For translations for Drupal core, modules and themes see http://localize.drupal.org. If you don't have a translation file for your language, you may need to translate the interface on your own. To contribute localized versions of Drupal, see Translate Drupal to your language in the Getting Involved Guide.

Basic steps for setting up a multilingual website

  1. Enable the Locale module and add the languages you need. See How to install a different language.
  2. Set up language negotiation. Until you do this, your users will not be able to switch between languages.
  3. Decide between using Entity Translation and Content translation for translating content. See Translating content into different languages for more about this.
  4. Download the Internationalization package and enable the submodules that you need. See HowTo: Basic Internationalization setup for help with this.

Drupal language-related resources

Writing code for localized modules? See the Localization API section and the Multilingual support section of the Develop for Drupal guide.

Comments

Cannot add a language

I enabled the locale Module and the content translation module on D7 website.
But still when I click on Languages to add a language, nothing happens.

Maybe I did something wrong during the installation. Don't know.
But I should be able to make my site multilingual? right?

What language did you try to

What language did you try to add?
Can you explain what steps you did exactly (what buttons and paths) when you say "But still when I click on Languages to add a language, nothing happens."
Usually there is no problem with adding additional languages.

Only adding a new language is

Only adding a new language is not enough. After adding a new language, firstly make sure that you enabled proper permissions by Configuring Content translation permissions in your admin panel. Also if you want your contents to be translated to other languages, you should Configuring content types for translation. For doing it, go to your admin -> structure -> types and then edit each content type you want to be translated ( Article or Basic page or both ) by clicking on Edit link in from of each of them you want to be translated, then publishing options choose your desired Multilingual support and save it.

Shamio

Multilingual sites

Hello,

We are using drupal 7 core with locale, i18n, language switcher and language icon module. At the start of our website development we had kept Vietnamese as the default language and were not using i18n option. Now we need to make the site available in English as well. We have following questions for it:
1) How can I change the domain/ prefix without breaking the existing urls for VI language as we have already existing content for VI? Please describe the steps to be followed.
2) When we set session language detection, what are the steps to follow so that the menu links or other links are using parameter (?language='en' or ?language='vi') as per the selection?
3) Is there anything else that has to be done or not done for these kind of changes?

Thank you in advance.

Best Regards,
Sucheta

Page status

No known problems

Log in to edit this page

About this page

Drupal version
Drupal 6.x, Drupal 7.x, Drupal 8.x
Level
Beginner, Intermediate
Audience
Site administrators
Keywords
Internationalization, Locale module, Localized Drupal Distribution, multilingual, translation
Drupal’s online documentation is © 2000-2012 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License. Comments on documentation pages are used to improve content and then deleted.