Set up a multilingual website in Joomla 4
This tutorial will show you how to set up a multilingual website in Joomla 4 using the default Cassiopeia template.
Joomla allows you to easily create a multilingual website without us having to install any third-party extension.
A multilingual Joomla website starts with installing the languages, creating different content elements and ends with publishing the content. Here are detailed steps to create a multilingual website.
Install languages
There are two ways to install languages on a Joomla website. I usually choose to install from the live server.
INSTALL LANGUAGES VIA LIVE SERVER
- To do this, I log into the Joomla admin panel and open the menu
System > Installieren > Sprachen
.

- Then I install the language I want by
Installieren
clicking the button.

There is no limit to this. It is possible to install all languages that are offered as a Joomla language pack.
INSTALL LANGUAGES MANUALLY
In addition to installation via the live server, manual installation is also possible. To do this, open the Joomla Community Translation Packages [^community.joomla.org/translations.html] website. There is a zip package for each language, which System > Installieren > Erweiterungen > Installationspaket hochladen
can be installed via .

Enable content languages
At this point, I think it is important to know the difference between content language and system language. Put simply, the system language is the one that translates the menu items in the backend or descriptive texts in the frontend, such as “Author” or “Created on:” . In contrast, the text of an article is the actual content, i.e. the content. We configure the content languages so that the content of the website is assigned to the correct language and machines also classify a text in the correct language.
- Configuring the content language is done in the menu
System > Verwalten > Sprachen > Inhaltssprachen
.

- We select all the languages in which we want to offer content or content. Typically, the content languages matched the languages installed for the system.

Activate the language plugins
In the next step we activate two plugins that are necessary to operate the multilingual website.
The System Language Filter plugin helps you display the content based on the language selection on the website. This plugin must be activated. When it comes to language recognition for new website visitors, the following points are crucial:
- The cookie from a previous visit.
- The “Language selection for new visitors” setting in this plugin.
- If applicable, the language set in the browser.
The System Language Code Plugin helps you to hide the language code in the HTML of the website. It plays an important role in search engine optimization.
Here are the steps to activate these 2 plugins:
- Go to
System > Verwalten > Plugins

- Use search terms in the search bar to find the plugins.
- Activate the two plugins:
System - Sprachfilter
andSystem - Sprachcode
.

Multilingual Content
Once the language plugins are activated, we can start adding new content for each language. As an example, I have added the languages German, Spanish and French to the pre-installed English language on the demo website in this tutorial. The most used content on a Joomla website are articles, categories and modules.
ADD NEW CATEGORIES
In order to better structure the content of the website I create a category for each content language. To create content in different languages, we need to add a new category for each language.
- Go to the menu
Inhalt > Kategorien
and create a new category. - In the right pane, select the language for the category from the Language drop-down box.
- Save the category when you have added all content
- Repeat this process for each content language.

ADD NEW ITEMS
Articles are the main content component of the website. Like most content types, they offer the ability to set the language. If All
is selected as the language, the content will be mapped to all content languages.

To create article content in different languages, we add a new article for each language.
- Go to the menu
Inhalt > Artikel
and create a new item - In the right pane, select the language for the article from the Language selection box.
- Save the article when you have added all content
- Repeat this process for each content language.
ADD NEW MODULES
We use modules to display content at a specific position on specified subpages of the website. A module can also be assigned to a content language.

On a multilingual website, we can display different modules for each language, depending on which language the content of the module is assigned to. In practice, we’ll use this later in this text to display the navigation appropriate to the content language.
Setting up the menu system for a multilingual website
ADD MENUS FOR EACH LANGUAGE
With a multilingual website, we create separate menus for each language to have better control over navigation. Below are the steps in detail:
- Navigate to
Menü > Manage
and create a new menu

- In the right pane, select the language for the menu from the Language drop-down box.
- Save the menu
- Repeat this process for each content language.

CREATE A MODULE FOR EACH MENU
A menu in Joomla is usually displayed via a module. Our goal is that the English menu – and only this – is displayed when English is selected as the content language. The same applies analogously to each additional content language. To achieve our goal, we install a module for each menu, i.e. for each content language. We assign this module to the appropriate language:
- Navigate to
Content | Site Module
and create a new Modules menu.

- Select the appropriate menu and in the right pane select the language for the module from the Language selection box.

- Save the module
- Repeat this process for each content language.
- We no longer need the main menu, which was automatically created during the installation of Joomla, and for this reason we deactivate it.

- Convince yourself that only the menu that matches the content language is displayed in the frontend at all times.

ADD MENU ITEMS FOR EACH LANGUAGE
Once the menu for each language is created, we add new menu items.
- Open the English menu and click on
Neuen Menüpunkt hinzufügen
the toolbar. - In the right pane, select the language for the menu item from the Language drop-down box. Make sure the correct menu is selected. Set the menu item as the default menu item if you wish.

- Save the menu item
- Repeat this process for each content language.
Multilingual Associations
Multilingual associations are used to redirect articles or menu items of one language to another language when we click on the language switch flag. Website visitors expect to get to the English version of an article when they switch the content language from German to English. However, this is only possible if Joomla knows which articles or menu items belong together. Language shortcuts tell Joomla this information. If we don’t set the language shortcuts, we will be redirected to a language’s default menu item when we change the content language in the frontend. This is not desired and that is why we link the content.
ASSOCIATIONS
If we add a menu item and assign a language to it, the options for associations will appear. We find these in the tab Assoziationen
. The menu items of other content languages can be selected.

Assoziationen
can also be found in other Joomla elements. For example with articles.
THE MULTILINGUAL ASSOCIATIONS – LANGUAGE ASSOCIATIONS COMPONENT
The component Mehrsprachige Assoziationen
or Sprachverknüpfungen
is a tool that makes it possible to edit associated elements side by side without having to switch back and forth. It is very convenient to create an element in several languages and to associate it at the same time. The side-by-side view allows us to edit the elements after selecting a reference element.

To get to this component, we navigate to Komponenten > Mehrsprachige Zuordnungen / Sprachverknüpfungen
.

Set default page for each language
The default page is the home page for each language. Set a default menu item in each menu. For example, if you click the Home menu item as default in the English main menu, that becomes the default menu item for English-language sites.

- Open the English main menu and let’s click on the circle icon to set the menu item as the default for that language.
- Repeat this process for each content language
Language switcher module
This language switching module displays a list of available content languages. This way you can switch back and forth between them. The prerequisite is that Joomla is used as a multilingual website and the content languages have been defined and published as explained above.
- To set up the language switcher navigate to
Content | Site Module
and create a new Language Switcher Module.

- I assign the module to the languageswitcherload position.

- Once the module is published, we can use it in the frontend.

Complete!