“The limits of my language are the limits of my world" - Ludwig Wittgenstein, Philosopher
Recently, I came across a very interesting stat. 56% of users either spend more time on sites in their own language than they do in English or boycott English-language URLs altogether.
This was confusing, given to the fact that English IS THE MOST popular language in the world! Well, apparently it stands third behind Mandarin and Spanish!
As the internet continues to grow, more people around the world are getting familiar with it, and this means just one thing. If you need to internationalize your business for better revenue, you need to go multilingual!
For most of the CMS tools, non CMS languages and frameworks, creating a multilingual website is a challenging task with numerous pain points. However, thankfully, this is not the case with Drupal CMS.
As a platform with capabilities of delivering multilingual websites right out of the box, reaching a broader audience, targeting more locations and taking your business global with a perfect multilingual solution is the giant leap for competitive advantage.
It is a Drupal world
A multilingual website is not an easy task. Just to begin with, you will have hundreds of questions over which you might break your head. Should you display the content in native language? How will media files be handled? Will the translations fail? Will the CMS be flexible enough to handle the changes incurred by the translations?
Well, to answer all these questions and more, creating a multilingual website just got a lot easier with Drupal CMS. Having tremendously evolved from its previous versions, Drupal 9 comes with huge benefits for both the site administrators and end users with Drupal 9's multilinguistic support.
So what makes Drupal 9 your “knight in shining armour”? Let’s find out.
Multilingual is in Drupal core now
Drupal 9 has brought in a lot of changes in the implementation of multilingual sites, making it easier and less complex. In the previous versions of Drupal, one had to install extra modules just to have support for multilingual functionality. That meant a lot of extra work, more maintenance, and increased costs. Drupal 9, however, brings in multilingual support to Drupal core with 4 modules (about which we will be discussing in the later sections) thus improving your website performance.
Out of the many great features that Drupal 9 brings in for multilingual websites, field-level translations for localized content is a key aspect for better usability. With such translations, it becomes easier to show localized content in every region without having to create a huge number of new nodes. This means that content translation is possible for all types of content, like user fields, taxonomy etc.
The Drupal CMS has a very impressive list of available languages, allowing you to cover every nook and corner of the world. This list with over a hundred languages also supports languages with right-to-left text direction. Some of the default languages available are Arabic, Hebrew, Persian, Farsi and Urdu.
A highly motivated multilingual community
Drupal CMS is not just known for its amazing features, but also for those amazing people behind these features. Yes, I'm talking about the Drupal community that works selflessly to make Drupal an excellent CMS than before. The multilingual support in Drupal 9 is the cherry on top. With developers from around the world supporting the multilingual initiative, you have an extremely powerful driving force for your multilingual website!
The Core Modules
Unlike the previous versions of Drupal, most of the major functionalities and features that are necessary to build a multilingual website is offered in the 4 new modules in Drupal core. These modules replace the suite of various contributed modules, making it a lot easier for site administrators and the users. Let us dig in and learn what exactly these modules are, and the key roles that they play.
This is the base module that is required for any multilingual website. This module lets you choose from 94 languages, and allows you to assign your preferred language for everything from nodes and users to views, blocks and menus. The module also allows each user to select his own language for the admin interface and configure how page languages are chosen, and apply languages to content. Some of the other features of this module are:
- Better language selection defaults (URL negotiation enabled by default)
- Allows browser language detection, which is made configurable with external language codes.
- Has built-in Transliteration for machine names.
Interface Translation Module
The interface translation module plays the role of translating the built-in user interface, along with the modules and themes added. It also allows automatic downloads and updates and lets the user to use any translation interface available in the Drupal community (in any language supported by Drupal 9 ). English is not the default language anymore and it can be customized or even removed completely. Also, the module has built in translation UI for easier editing. Some of the other features of the interface translation module are:
- Default protected local translations.
- Plural versions are now editable on an integrated interface.
- The module also has protected custom translations which are exportable.
Content Translation Module
Content entities, site content, pages, taxonomy terms or just the blocks; as a user, you can translate any of these into different languages using the Content Translation Module. Resembling the Interface Translation Module, this module allows easy configuration of the default language of the content. Also, users can hide or display the position of language selector for an easy interface. Some of the other features of Content Translation Module include:
- Allows for field-level configurability
- Integrated Views
- Exposed language information via search API
- Allows per-language content access for better control and accessibility.
Configuration Translation Module
The Configuration Translation module translates texts that are a part of the configuration. These texts include field labels, the text used in Views etc. In short, the module offers a built-in responsive translation interface for configurations. Some of the other features of the Configuration Translation Module are:
- Everything shipped is pre-translatable on localize.drupal.org
- Availability of an overview screen for any assistance needed in the process.
Contributed Modules for a Multilingual Website on Drupal 9
Apart from these four important core modules, there are some unique contributed modules which you might consider using for your website. These contributed modules have unique features that will help your website speak your customer’s language. Let's discover some of them in this section.
Language Selection Page
It is a cool thing to allow your website visitors to choose the languages (it can be their own mother tongue) they'd like to see your site's content translated to! This module empowers your visitors by presenting them a landing page where they can choose their preferred language. As a business, when you have minimal information about the data of your visitors, (which country they are accessing your website from, or what their mother tongue is) this module provides a huge advantage.
Suppose a certain translation cannot be delivered to your website visitor in the custom language, this module provides a backup or a plan B and allows this undelivered translation to fallback to another language (specified by you). Thus, in case anything happens and the translation gets messed up, the user will still get the requested content in another familiar language or dialect.
How cool will it be if your website could detect the visitor's mother language? Well, the language cookie module identifies the visitors' mother language by basically adding a new "cookie" field to the Language Negotiation settings. This in turn will set the language on your site in accordance with the extra cookie.
IP Language Negotiation
A key module for a Drupal 9 multilingual website, this module is quite similar to the Language Cookie module. The IP Language Negotiation detects the specific country from which a visitor is accessing your website and automatically displays the content of the entire website in the respective native language.
With an on-page translator editor, this module ensures that the next time you need to fix, create or add new translations to specific pages on the website, you don't have to go through all the pages to find them precisely and add or edit the translated content. Localization Client allows easy navigation around the pages to find the targeted ones directly, and fix/edit them.