Skip to main content

5 Steps to Build a Drupal 8 Multi-langual Site

Drupal 8 is a massive undertaking. It's already been 5 years in the making.

Why did it take so long? Partly because so many important contributed modules are now core features. Translation is a perfect example.

It used to take several contributed modules to make even a small multi-lingual Drupal 7 site. Now, you can translate everything using just the Drupal 8 core.

Here's our 5-step guide to building your first Drupal 8 multi-lingual site.

Step #1. Enable the translation modules

You will need to enable these four core Drupal modules in order to translate your site

Step #2. Translate the Drupal core

First, let's translate of the core language inside the Drupal. In this example, I'm going to add Spanish as an option on my site:

  • Go to Configuration > Languages
  • Click "Add language"

  • Choose your language and click "Add language".

Click on the percentage area, under "Interface Translation".

You'll be able to search for and manually translate all the language strings in here:

Step #3. Translate your own site set-up

  • Go to Structure > Content types, you'll see a "Translate" option for your content types:

Inside the next screen, you'll see similar "Translate" links for all your fields:

Step #4. Add content

Now we can add content to your Drupal site.

  • Go to Configuration > Content language and translation.
  • Click the box next to "Content":

  • Check the box, "Show language selector on create and edit pages".

  • Now go and add content to your site. Thanks to the "Show language selector on create and edit pages" box, you'll able to choose the language you're writing in:

  • After saving content, you'll see a "Translate" tab available:

  • Click "Add" in order to create a new version of that content item:

Congratulations! You can now start translating your Drupal site. And you didn't use a single contributed module.

Step #5. Allow users to switch between languages

  • Go to Structure > Blocks
  • Click "Place blocks"

  • Click "Place block" next to the "Language Switcher" block:

  • Click "Save block".
  • Go to the front of your site and the Language Switcher will be working:

One final nice touch is that the URLs were automatically configured. The URLs on my test site looked like this:

  • /node/1
  • /es/node/1