There are 4 multilingual modules that come with Drupal ‘out of the box’.
- Language – The Language modules provides the basic functionality for the other 3 modules. Language allows the site administrators to select the languages available on the site and how they should be selected and applied to content. This includes: Selecting the languages that are available on the site and selecting a default language for a particular user.
- Interface Translation – The Interface Translation module allows site administrators to translate the interface of the Drupal site. This includes: Translating Messages, labels, and admin menu items and Importing/Exporting translation settings.
- Content Translation – The Content Translation module allows users to translate individual entities such as: Taxonomy Terms, Nodes, Blocks. Users can select which Entity Type, Bundles or Fields can be translated. A default language can also be selected for Bundles.
- Configuration Translation – The Configuration Translation module allows configuration elements to be translated and exported including: Field Labels and Descriptions, Bundle Names and Descriptions and the text used in Views.
Once the above Modules have been enabled, by navigating to Configuration -> Languages you will be able to enable the languages you wish to have on the site. From this page, you can view currently installed languages, set the default language and add new.
To add a language click ‘Add New’. Here you can select a language from the dropdown or add a custom one that has a W3C Language tag.
In Configuration -> Languages -> Detection and Selection we can configure when the site should display in a particular language. These options include the URL, the Browser or the User. The Language module comes with a block that can be added to one of the page regions for a user to easily change the site language, I have added this block in the video below.