For people like me who live and work in the United States, I must admit it can be easy sometimes to forget how diverse the languages are that are spoken and read by people all around the world. We certainly have a great many people here who speak several languages, though I imagine it is nothing like a place such as Europe for example or specifically Switzerland which has four official languages.

With the Internet being by its definition a global border-crossing apparatus for communication, support for multilingual capabilities has always been important. This importance may not have always been reflected by the state of the art in website development, but the need has always been there.

The Locale module has been a part of Drupal since around version 4 and has, for the most part, provided a mechanism by which translation file could be imported into the website to facilitate interface translations. 

Even all the way to Drupal 7, the Core did not really understand language at a general level, though some tacked on modules provided additional helpful functionality. The goal with Drupal 8 was to have Drupal core understand and work with language at every level, as a language-first kind of approach.

Improvements to Multilingual Support in Drupal 8

The new Language module in Drupal 8 is now the base layer which provides support for languages across Drupal core. Without this module, your Drupal website will just assume you are using English. The module will let you tell Drupal about various different languages and ultimately configure how they are used and presented through the Drupal website. Sub-modules like Interface Translation and Content Translation allow for having the Drupal interface or content translated into other languages, respectively.

Drupal 8 now has a more flexible language code mapping system to allow for more flexibility in recognizing language codes, since what Drupal recognizes by default isn't necessarily universal.

Another new feature is account administration page preferences, so users can have their own administration language. The Content language settings page is also the new one-stop shop for making language and translation settings changes that affect content. For example, things like content types, blocks, comments, and taxonomy terms. You can set defaults on a very granular basis for these different categories of content.

A neat thing you can do with blocks is set visibility based on language, allowing you to customize the appearance of various block components based on a user's language settings.

The Localization Update module is now included in core for Drupal 8, and this module provides an update-like report interface for notifying and grabbing updates to localization files through a batch download process. So it will automatically download and update your translations by fetching them from or any other localization server. For a new website, this will occur during the installation process. This makes it much easier to utilize interface translations provided by community members to be incorporated into your multilingual Drupal website.

This list of features is just a snapshot of some of the cool aspects of the multilingual improvements in Drupal 8 that I learned about while watching the screencast of a Drupal 8 multilingual workshop. Be sure to check out the official documentation and demo pages for the Drupal multilingual initiative to learn more about all of the new features in Drupal 8!