Choosing and installing multilingual modules

Last updated on
1 July 2024

Specific version(s)

This page is for Drupal 8, 9, 10 and 11.

Drupal's Multilingual improvements

When you install Drupal, the first thing you need to choose is the base language for the installation. The installer will attempt to make the reasonable choice based on your browser language, and should display the page in your browser language. If you are making a multilingual site, choose one of the languages that you want to use as installation language, and preferably not English (a non-English choice will cause some modules you'll need to be installed).

Unlike Drupal 7 and earlier, Drupal 8 and later site does not need to have English installed at all.

Drupal's Multilingual components

Unlike previous versions of Drupal, most of the functionality that you need to build a multi-lingual site is provided by the following 4 modules in Drupal core, rather than a suite of many contributed modules. To enable these modules, you'll need to go to the "Extend" administration page.

Language module

Located at core/modules/language/language.module [Drupal 10 API] [Drupal 11 API]

The base module needed for any non-English or multi-lingual site.
Allows users to configure languages and how page languages are chosen, and apply languages to content.

Provides the following functionality:

  • Enable any non English language for your site's content (one or more)
  • We can assign a language to everything: nodes, users, views, blocks, menus
  • Two special type languages (Not specified/Not applicable)
  • URL negotiation enabled by default
  • Browser language detection made configurable with external language codes
  • Fallback to selected language if language detection fails
  • Admin interface language selection option per user

Core Issue Queue for Drupal's core language related issues

Locale (Interface Translation) module 

Located at core/modules/locale/locale.module [Drupal 10 API] [Drupal 11 API]

Translates the built-in user interface, your added modules and themes.

  • Automated downloads & updates
  • English customizable/removable, no more need to use English as the default language
  • Built-in translation UI revamped for easier editing
  • Plural version editable on an integrated interface
  • Custom (local) translations are protected and exportable

Content Translation module

Located at core/modules/content_translation/content_translation.module [Drupal 10 API] [Drupal 11 API]

Allow users to translate content entities.
Allows you to translate your site content, including pages, taxonomy terms, blocks, etc., into different languages.

  • Field-level configurability
  • Applies to all content
  • Views integrated
  • Exposed language information via search API
  • Per-language content access

Configuration Translation

Located at core/modules/config_translation/config_translation.module [Drupal 10 API] [Drupal 11 API]

Provides a translation interface for configuration.
Allows you to translate text that is part of the configuration, such as field labels, the text used in Views, etc.

  • All configuration is translatable (roles, text formats, blocks, views, panels, etc.)
  • Built-in responsive translation interface
  • All shipped are pre-translatable on localize.drupal.org

Drupal's Multilingual configuration

Continue onto Chapter 10 - Making your site multilingual in the user guide.

Other resources

SLIDES

If you want to reproduce a workshop at your company, a Drupal event or a meetup, please do so. We have some slides on Google Docs that you can copy and fork for your local needs.
https://docs.google.com/presentation/d/1rHtwt3O_QWvd0d1kETp7vULDm7P8ksjh...

TUTORIALS

The team recorded the Multilingual Workshops held on Drupal events.

And some other very good presentations from Drupal Cons:

Testing Drupal Multilingual

Specific version(s)

This chapter is for Drupal 8 only and outdated.

We have prepared a multilingual Drupal demonstration distribution with sample data (and raw Google Translated sample text, be warned) to try.

You can download this distro or more simple, try it on simplytest.me