Setting up a Multilingual site in Joomla 5 -January 2025
Introduction
Before attempting to setup jDownloads as multilingual it is of course necessary to set up Joomla as a mulilingual.
This article just describes setting up Joomla as multilingual.
As from Joomla 4.3.4 setting up a multi-language version of Joomla has been made even simpler. A click on a link sets up all the required multilingual items. Further it also generates examples of multilingual menus and content.
The ablity to add extra languages to Joomla has been available for a long time. Obviously when viewing content such as articles in a particular language one does not wish to see the articles from other languages mixed up in the list. And of course there needs to be a simple way for users to dynamically select the relevant language. Again most sites are public so language selection cannot require being logged in.
To meet these needs a multilingual site needs a menu for each language. Also for content each language needs a matching article category, and each language needs matching articles. Also the relevant categories and articles need to be associating accross languages. For example if we have an article Category called 'Articles en français' whose language setting is French and another one called 'Articles in English' then the two article Categories need to be associated. The same applies to the relevant articles themselves.
Doing this is not difficult but it is very tedious setting up this infrastructure and sometimes challenging getting it right if you are doing this for the first time.
Aditiononally one needs to set up the 'language plugins'. Again not difficult but easily missed.
But now adding the multilanguage menus, example multilingual categories and multilingual articles, and activating the relevant plugins is available from a button! This article takes you through the steps of the automation process.
This article just describes setting up Joomla as multilingual.
As from Joomla 4.3.4 setting up a multi-language version of Joomla has been made even simpler. A click on a link sets up all the required multilingual items. Further it also generates examples of multilingual menus and content.
The ablity to add extra languages to Joomla has been available for a long time. Obviously when viewing content such as articles in a particular language one does not wish to see the articles from other languages mixed up in the list. And of course there needs to be a simple way for users to dynamically select the relevant language. Again most sites are public so language selection cannot require being logged in.
To meet these needs a multilingual site needs a menu for each language. Also for content each language needs a matching article category, and each language needs matching articles. Also the relevant categories and articles need to be associating accross languages. For example if we have an article Category called 'Articles en français' whose language setting is French and another one called 'Articles in English' then the two article Categories need to be associated. The same applies to the relevant articles themselves.
Doing this is not difficult but it is very tedious setting up this infrastructure and sometimes challenging getting it right if you are doing this for the first time.
Aditiononally one needs to set up the 'language plugins'. Again not difficult but easily missed.
But now adding the multilanguage menus, example multilingual categories and multilingual articles, and activating the relevant plugins is available from a button! This article takes you through the steps of the automation process.
Install Joomla
Joomla is installed in just three simple steps:
1. Select the installation language and the name of the site as shown opposite. Then click on

1. Select the installation language and the name of the site as shown opposite. Then click on


2. Set up login data as shown opposite then click on



3. Finally set the Database configuration as shown opposite. Then click on 



Whislt Joomla is being installed there are several 'progress' messages.
When done you get a 'Joomla site is ready' message together with the opportunity to install additional languages.
So click on the
button to start the process.
Note if you are installing on XAMPP or similar then you may get a warning as below about the installation folder:
Just remove the installation folder manually.

When done you get a 'Joomla site is ready' message together with the opportunity to install additional languages.
So click on the

Note if you are installing on XAMPP or similar then you may get a warning as below about the installation folder:


Add Additional Languages
After clicking on the
button a list of all the available languages is shown as illustrated opposite.
Tick the the box,
, alongside the required languages. Then scroll to the bottom of the list and click in the
button.
Again on XAMPP you may get a message such as
.
If you miss the initial 'Add Languages' or decide to add an extra language later then go to
and in the
section click on
This allows you to add the relevant Joomla! content languages.



Tick the the box,


Again on XAMPP you may get a message such as

If you miss the initial 'Add Languages' or decide to add an extra language later then go to






In this example three extra languages were added, giving four in total. This makes the illustration of setting up a multilingual site more realistic.
Arabic wasa choosen as one of the languages because it is a 'right to left' language.
To proceed click on the

If you are installing on XAMPP or similar then you may get a warning as below:

Just remove the installation folder manually. And click on the

You will be asked to login

Setup Multilingual site
1. Publish Languages
Go to
and in the
section select '
'.
Publish the required languages by clicking on the relevant
.



Publish the required languages by clicking on the relevant


2.Install Multilingual Sample Data
Select the
and find the Multilingual Sampe Data panel as shown opposite. Click on Install. 


This then shows a panel such as opposite. So click on the
button.
This will go through several steps and when done it will return to the Home menu. At the top of the view there will be a message



This will go through several steps and when done it will return to the Home menu. At the top of the view there will be a message


3.Content Language Plugins Enabled
To see these go to the
menu and in the
section select
. In the Search Bar select 'Language'. This will show three plugins as illustrated opposite.
Enable the 'System - Language Code' plugin as it is shows which languages are installed
The 'System - Language Filter' filters the displayed content so that only the current language items are included.
The 'Web Services - Langages' plugin adds language routes to the API for your website.



Enable the 'System - Language Code' plugin as it is shows which languages are installed
The 'System - Language Filter' filters the displayed content so that only the current language items are included.
The 'Web Services - Langages' plugin adds language routes to the API for your website.

4.Menus
A main menu is created for each language as ilustrated opposite.
The relevant menu and its associated module is shown in the front end in the 'side bar right' position.
There is also a 'regular' Main Menu. This needs to have a menu item 'List All Categories'
as it is used by jDownloads just as a 'single language' site.

5.Example Categories
The system creates a sample Article Category for each language.
The language is of course set appropriately.
More significantly each category has been Associated with the relevant other language categories.

The language is of course set appropriately.
More significantly each category has been Associated with the relevant other language categories.

6.Example Articles
Similarly example multilingual aricles, one for each language, are created.
Again the language has been set and the articles are associated as shown opposite.

Again the language has been set and the articles are associated as shown opposite.

7.Language Switcher - Frontend
As part of the multilingual facilites, a language switcher module is created with the default front end location as position sidebar-right. This shows the 'flags' of the available languages
. The current language is English as indicated by the faintly highlighted back ground. There are several parameters that you can adjust to suit your needs. The main use is to allow the User to select their own language and to rapidly switch between languages.

The front end will now look something like the image shown opposite.

ColinM 21 September 2023, modified Feb 2024, November 2024, January 2025