Detailed instructions for creating a multilingual Joomla website: language installation, setting up language plugins, configuring menus and modules for language switching, along with tips for managing template styles for each language.

Extensions for Multilingual Functionality

A list of core Joomla extensions for implementing multilingual functionality:

System - Language Filter (plugin)
A plugin for filtering site content based on language. This is a critical extension that must be enabled to implement multilingual functionality.
System - Language Code (plugin)
A plugin for replacing the language code in the HTML markup of a site page to improve SEO. For instance, if the French language pack uses fr-FR but the site targets French-speaking audiences in Canada, you can enter fr-CA in the field for fr-FR, and the plugin will dynamically replace the language code.
Multilingual Associations (admin component)
A component for managing multilingual associations, which becomes available after enabling the Language Filter plugin. It simplifies the creation and editing of alternative language versions of items.
Multilingual Status (admin module)
A module that displays the status of multilingual configuration in the Status position. Information is shown in a modal window when you click on the module.
Language Switcher (site module)
A module for displaying a list of content languages when using the multilingual system. Clicking on a language switches the site to that language.
Sample Data - Multilingual (plugin)
A plugin that provides sample data for creating a multilingual site. On a live site, this plugin should be disabled and ignored thereafter.

Language Installation

Once you've decided on the necessary languages, you need to install them as follows:

Automatic installation

  1. Go to SystemInstallLanguages.
  2. Install the required languages by clicking the Install button.

Note!
If the language packages do not download automatically, they can be installed manually.

Manual Installation

  1. Download language packs from the official Joomla Language Packages website.
  2. Upload and install the files via SystemInstallExtensions.
  3. Publish the installed language in SystemManageContent Languages.

Language Settings

To access the language settings, navigate to SystemContent LanguagesDesired Language.

In most cases, you can leave everything as default, but for alternative languages, you might need to adjust the Site Name and the meta Description. This can be done in the Options tab.

Activating Language Plugins

To ensure proper functionality for a multilingual site, the relevant Joomla system plugins need to be configured and published.

  1. Go to SystemManagePlugins.
  2. Find and enable the plugins:

Plugin Settings

System - Language Filter

Default settings generally ensure proper multilingual functionality on the site. Usually, no changes are necessary.

Language Selection for new Visitors
Site language or browser language. Determines which language will be applied for site visitors: default site language, or automatically detect based on the user's browser settings.
Automatic Language Change
This option allows the site content to automatically switch languages if the user changes the site's language (affects homepage display).
Item Associations
Associations can be set for menu items in different languages, adding an alternate meta tag to inform search engines that a page has an alternative version in another language.
Add Alternate Meta Tags
Activates the addition of an alternate meta tag for menu items with associations.
Add x-default Meta Tag
If a user’s language is not represented on the site, they will be redirected to the site version set in the Language for x-default option.
x-default Language
Selects the default language to be used if the user’s language doesn’t match any installed languages.
Remove URL Language Code
Enabling this option removes the language prefix for the default site language, e.g., web.site/en. For all other languages, the prefix remains. It is generally recommended to keep the prefix for the default language, as it improves SEO and clarifies to users that the site is multilingual.
Cookie Lifetime
The language cookie duration: choose for them to expire either at session end or after a year.

System - Language Code

If your site is region-specific, you can set a language code for this region in this Joomla plugin, enhancing site visibility in search engines. If such a requirement does not apply, there is no need to configure this plugin.


Assigning Languages to Content Items

After enabling the Language Filter plugin, the Language option will become available on the editing pages of Joomla content items.

By default, the Language option for all items is set to All, making them available for all languages. Therefore, the first step is to assign a language to the existing items. This can be done quickly using the Batch Process feature.

  1. Navigate to the list of items (articles, categories, or menu items).
  2. Select all the items for which you will need to create associated items in other language(s).
  3. In the toolbar, click ActionsBatch.
  4. In the Set Language option, choose the desired language (e.g., Russian for Russian content) and click Process.
  5. Now all these items will be available when the corresponding language is enabled on the frontend (via the Language Switcher module or automatically, depending on the settings of the Language Filter plugin).

FYI
Starting with Joomla 5.2, menu items in different languages can be placed in a single menu. However, we do not recommend this approach, as managing items is easier when they are organized into separate menus corresponding to their respective languages.

Multilingual Associations

Once a language has been assigned to existing content items, you need to create versions of these items for alternative languages. This can be done using the Multilingual Associations component, which allows you to edit the content of two language versions of an item on a single page.

Attention!
The Multilingual Associations component becomes available after enabling the Language Filter plugin with the Item Associations option enabled.

  1. Go to ComponentsMultilingual Associations.
  2. In the filter, select Content Type and Language.
  3. From the displayed list of items, click on the one for which you want to create an associated item in another language.
  4. On the association editing page, select the target language for the alternative content item in the Target option.
  5. Fill in the content for the alternative item and save it.

Attention!
If all items on your site have the Language option set to All, the list of items on the Multilingual Associations page will remain empty. First, assign a specific language to the existing items.

You can also quickly create a multilingual association for an item by using the Associations button available in the toolbar on the item editing page:

To view and manage associations, use the Association tab available on the item editing page:

Creating the Language Switcher Module

To allow users to select the desired language on the frontend, you need to create the corresponding module.

  1. In ContentSite Modules, create a new Language Switcher module.
  2. Configure the module and choose its position.

Setting Module Display for Different Languages

Your site may contain modules that differ by language, so you can specify which menu items to display for each language in the module settings.

Note!
If your site uses the Advanced Module Manager, you will need to add the language to the module display conditions in this case.

Joomla Template Styles for Each Language

If your site does not use the standard Cassiopeia template, you may need to create and configure a template style for each language. This allows precise control over site elements for each language:

Be sure to specify which pages/menu items each Joomla template style is linked to.

Multilingual Status

To monitor the multilingual setup in the Joomla control panel, a special module is provided in the header area. Clicking on it opens a modal window with the relevant information. Once you have configured the multilingual system, make sure to use this feature.