Including Multilingual Support in jDownloads -Febuary 2025
- Introduction
- Adding Menus
- Example Details
- Add jDownloads Menu Items
- Options - Frontend
- Associating jDownloads Menu Items
- Notes on Downloads
- Change Language with Batch
- Layout Place holder
- Language Text Selectors
- Multi Language Associations
- Creating Associations
- Using Batch to create other language Categories and Downloads
- Other Text in jDownloads views
- Brief Note on Installing jDownloads Language Packs
- Appendix: Converting an Existing Site to Multilingual
- Associating jDownloads Menu Items
Introduction
Setting up a new or converting an existing site to be a Joomla! multilingual site is now relatively straight forward.
See article Setting up A Joomla Multilingual site (opens in a new window/tab).
Another alternative is to use FaLang which does not require incorprating language packs or similar
For more details see Using Falang for multilingual sites (opens in a new window/tab).
If you have not already done that there is an excellent Joomla! 4 article https://www.joomlart.com/blog/how-to-create-a-multilingual-website-in-joomla-4-step-by-step-tutorial (opens in a separate window/tab), that takes you through the entire process of setting up a new multilingual site from scratch in a step by step manner.
It is important that you set up the Joomla! requirements including the Languages. There are multiple steps in setting up the Joomla! part.
- Installing new languages
- Enable System Language Plugins
- Create Multilingual content (articles and article categories)
- Multilingual Menus for each language
- Set default Home page for each menu
- Display on Front End
- Make Associations
- Set Language Switcher Module
If you already have an existing site that you need to convert to multilingual then there are additional notes in the Appendix below where some stages in the process are outlined. Also you may find this article on converting a unilingual site to a multilingual site (opens in a separate window/tab) helpful. Additional assistance might be to create a simple multilingual site in a test environment to see what it looks like in the backend to act as a guide.
The purpose of this article is to note the jDownloads specifics and to illustrate the results. It is assumed in this article that the Joomla! language translations are already installed.
Language packs for extensions are installed just like any other extension, they do not use the Joomla Install Language faciity. That is only used for Joomla! languages.
Please see the article on installing Language packs for jDownloads (opens in a new tab/window) or the brief note in Appendix.
This process is also decribed in the Setup a Multilingual site link above.
To see which language are installed in Joomla click on



This will show the languages that are installed in Joomla as illustrated opposite.

In a multilingual site it is preferable that all content items, which includes jDownloads Categories and Downloads, should have a specific language set. Setting the language of a content item to 'All' is however appropriate in some circumstances, a particular example might be the Uncategorised category which is often used for Downloads awaiting allocation to another category. In jDowloads the language options for Categories and Downloads are in entries Category Language and Download Language respectively.
There are some instances where text is set in the jDownloads backend so to make this language sensitive jDownloads supports the language 'plugins' like
{en-GB}some text{/en-GB}. These are described in more detail in the section Other Text.below.
In principle if a site supports say four languages then there will be:
1. four sets of menus,
2. four sets of categories,
3. four sets of Downloads.
Usually the downloadable file is independant of the site language. jDownloads supports Downloads where the downloadable file is actually in another Download.
In this example the downloadable files are in the English language Downloads.
Of course in some circumstances the downloadable file might itself be in language dependant so in that case each Download would have its own downloadable file.
In the jD 3.9 and above series the User Groups settings have been enhanced to allow 'Or from another Download' to be used in the front end.
See the article on User Groups Settings (opens in a new window/tab) for more details.

The view opposite illustrates that one download has a downloadable file (


As idicated, if you hover the mouse over the icon it will show which Download has the downloadable file and also its title.

Support for RTL languages
An example is shown opposite in Arabic Unitag.

This additional CSS file may be exported, imported or edited in the same way as any other CSS file.
In this article a multilingual site with the four languages Persian Farsi, English, French and German is setup. To clarify the language used in each menu, article, category and Download title ends with either (fa), (en), (fr) or (de) to indicate its language setting. Note again that the downloadable file may be the same for all languages. So here only the English language Downloads have a file
Adding Menus
The image opposite illustrates the Menus set up in the example described below.
It has a Main Menu and 4 'language' based menus named Main Menu(en-GB), Main Menu(fr-FR), Main Menu(de-DE) and Main Menu(fa-IR). These will be used to add relevant menu items. The 'Linked Modules' are created automatically.

Example Details



In the lists below 'xx' is either -pa-, -de-, -en- or -fr-. There are:
- 4 article categories entitled as 'Article Cat-xx'
- 4 articles, one per article category, entitled as 'Test article-xx'
- 4 top level jDownloads Categories entitled 'Test Dir-xx'
- 8 subcategories, two per language, named as 'pdf files-xx' and 'zip files-xx'
- each sub category then had 4 downloads each, again with the title ending in -xx, giving a total of 32 Downloads.
In addition to the above there are several 'All' language jDownloads Categories , subcategories and Downloads in the example site.
As an example the Downloads specifically denoted for the English language are shown below with their associations.

Add jDownloads Menu Items
When setting up menus it is helpful if you also look at article Menus -Overview and Details (opens in a new window/tab).
Note that all that each menu item has been 'associated' with its counterpart in other languages as described later.

Add List All Cats

Note this has a language setting 'All' and it is usually set as a 'Hidden' menu item. (see next section for details)
It is used by jDownloads when constructing links. It is not used by users!

Hiding a Menu Item
To make a menu item 'hidden', click on the menu item in order to edit it as shown opposite.

Then select the 'Link Type' tab and set option 'Display in Menu' to No.
After clicking the



Options - Frontend



Note: the 'Use Image Flags' option does not appear until 'Show Associations' is set to Yes.

If 'Show Associations' is set to 'Yes', the associated flags or URL Language Code will be displayed in the frontend.
The 'Use Image Flags' option also appears allowing choice of showing either the flags of associated items or the content language code.
Associating jDownloads Menu Items

Next click on the menu item you need to Associate, which in this case is 'list all categs-en'.
Note the French menu has alredy been Associated

This brings up the first stage which is to select the appropriate language, which in this example is German


This gives the view as shown opposite.
We now need to edit this to enter the German menu item details.

The items shown by green arrows were modified to give the appropriate entry.
But one item, the Ordering, which is shown with a red arrow will need changing later.
So click on the


Select Target Language, which is this example is French (fr-FR).
Then in Menu Item Type select the menu item which is
jDownloads - List My Download History as indicated opposite.
Next click on Save Target button


So repeat process for German and Fasi languages.

Notes on Downloads
It is worth noting that the title of a Download and the name of the downloadable file are not the same item and, in principle, are not related; they could be totally different.
Actually a Download has two language related items. One, which is the multilingual item, is called the 'Download Language' (in some places it might just be 'Language'). The other falls into the class of additional information and is called the 'Language for the downloadable file'. This does not necessarily relate to anything multilingual but could refer, for example, to the programming language of the file. It is the Download Language that is used with Associations. Usually the structure of a Download is the same in each language.
The exact content will obviously change, most obviously the Title of the Download will be in a different language. Items such as the symbol, the licence, the creator and so on will often be the same for all the associated Downloads. Sometimes the only difference between a Download in one language and its associated Download in another language might be the title, alias and the description.
Clearly a Download will be created in one language initially. To ensure that the corresponding Downloads in the other languages are similarly structured then using the Multilingual Create/Edit method may be more useful.
Change Language with Batch
So select all of them and then click on the

This brings up the Batch facility so use the Set Language pull down to select the target language.
Having set the language ensure that No is selected in the 'Do you want to move' - No is the default.
Then click on the

The result is shown opposite with all the relevant categories set to French.



For more information see batch processing (opens in a new widow/tab).
Layout Place holder
The jDownloads Download and Download Details layouts have a placeholder {show_association} which generates a text such as shown opposite.
If, for example, you click on the French flag,



Language Text Selectors

Multi Language Associations
Please note that you may also create multilingual Licenses.
In this article a four language site with Arabic, English, French and German items is used for demonstration examples. So there will be "flags" like

As noted in the Options above the flags, or language codes, may also appear in the Download. Actually when showing in say English then only the flags for the other languages are shown:

Creating Associations
One method is to use the Control Panel Categories


The other method is to use the Multilingual Associations

In this article to hopefully make thing clearer, Categories have titles of the style "Test Cat-XX" where the XX indicates the language of the category. Thus the top level categories are Test Cat-AR, Test Cat-EN, Test Cat-FR and Test Cat-DE. Download titles have a similar convention.
Note: This is not a requirement, it is just an attempt to simplify the explanation!
Each of these top level categories has two subcategories, one called 'pdf files-XX' and the other called 'zip files-XX'.
The pdf-files-en sub categories are illustrated opposite.

Associating jD Categories
Click on




Clicking on the name of one of the categories, say 'pdf files-EN' for example, and then selecting the Associations tab shows the other languages.

After clicking on the

Next click on the name of the category that is to be "associated" with the original category, in this example 'pdf files-DE'.

This will then go back to the Associations tab which now looks as shown on the right.

After repeating for all the languages then click on Save & Close which returns to the list of categories.
This shows that the associations have been set. Also it is sometimes useful to choose a different Category symbol for each language.

If you hover the mouse over an association it shows the name of the associated item.

Associating Downloads

There is however one other critial point, namely the downloadable file. In most instances the actual downloadable file will be the same for all languages. So when creating Dowloads in languages other than English one should use the facility to 'use file in another download'.


Using Multilingual Associations
Clicking on the

In the image opposite all the Associations for the categories for each the languages were established using the first method as described above.

Using the pull downs at the top left select Downloads and the language.
Note that no Downloads have Associations established yet.
Clicking on a Download title opens the Multilingual editing screen as shown below.

Initially the righthand side of the screen will be empty.
First use the Language pulldown


At this time there is no associated Download so the 'Create a Download' view is shown.
If a Download had already been associated in the selected language then the 'Edit' view would be shown.
But note the Select Target button, so click on it.
But note the


Click on the title of the Download that is to become associated with the Reference Download.

This returns to the Reference and Target 'double page' view.
Ensure you click on the


If you do not Save the Target then all the effort is lost!


Using Batch to create other language Categories and Downloads
- Move multiple Downloads from the present Category to another Category and set the language, access or tags of the 'moved' Downloads ;
- Copy multiple Downloads from the present Category to another Category and set the language, access or tags of the copied Downloads;
- Just set the language, access or tags of multiple Downloads
- When you COPY a Download only the Download is duplicated; no downloadable file is duplicated.
- If COPY is selected then any other selected actions are applied to the copied item but not to the original item.
- Preview Files and Images used in Downloads are held in a 'central' location with database entries indicating their location so those links are also copied.
Existing Multilingual Sites

This will bring up the batch function window. Set the required language and target category and click Process.

Remember that the downloadable files themselves will not have been copied.


If you click on the name of one of the files and select the Files Data tab you may either select a new file or select a file from another Download. This facility is available in the Front End as well as the Backend.

Using the downloadable file from the EN Download was selected in the FR, DE and PA languages prior to creating the Associations.
After all the Associations had been created, the list of Downloads is shown opposite.
The file icons in orange



Converting to Multilingual
Using the Batch facilities simplifies the whole language changeover process. The site can be up and running with an explanatory note about the changeover being carried out. The translations and adding downloadable files are readily carried out from the front end.
Other Text in jDownloads views
In User Groups Settings - Limits tab there are multiple places where making the message to the user language sensitive would be most useful. Also in User Groups settings -Group Settings tab the Waiting Time Message would be better as language sensitive.
To make these items Language sensitive jDownloads supports language 'plugin' tags such as {en-GB}...{/en-GB} for English.
To determine the language tag for a language go to Extension Manager -Language(s). This will show the list of languages installed in Joomla and the relevant language tag.


The result for each language is shown opposite



Brief Note on Installing jDownloads Language Packs
Do NOT use the Install Languages tab. Now browse for the file then Upload & Install
For a more detailed explanation see Install a jDownloads Language Pack. (opens in a new window/tab)

That is in this example the French language for Joomla! must already be installed. No warning is given if it has not been installed!
Typically you will then see a message such as opposite. You now have the jDownloads Language installed.

Appendix: Converting an Existing Site to Multilingual
These notes are based on a response by nizz0k in StackExchange
The process will require a number of steps. It is much less tedious to plan a multi-language site from the beginning, than to implement another language later. I recommend getting translations for your content in advance. These are the steps I went through to get satisfactory results.
- Install the desired Joomla! languages through Extensions -> Languages.
- Configure and add your Content Languages in the Languages Menu.
- Enable the Language Filter Plugin. Optionally add and enable the Language Code module for better SEO.
- Create Language Content categories and recreate your existing categories for each language.
- Rebuild your menus. This is probably the most involved step because you will have to recreate your Main Menu in your "Main" language and then rebuild those menus for the additional language(s) you want to add. I found that using "Saves as a Copy" was really helpful in duplicating the pages. Remember to assign menu specific home pages and associating each page with its translation. To finalize the process you will have to add modules to each menu in the menu manager.
- Translate/Add/Remap your content. You will need translations of every piece of content you want to display. Then you need to add the content, label it with the appropriate language, and associate it with the "Main language" versions. This will include creating new Language categories and subcategories. I also had to save copies and re-label a number of my modules to maintain language consistency. This also meant applying translations to a number of Custom HTML modules, and a few of my own modules.
- Add the Language Switcher Module.
- Iteratively check the site for consistency. As an FYI, any pages that don't show up in the menu it is probablybecause they not categorized in the correct language.
Associating jDownloads Menu Items
Next click on the menu item you need to Associate, which in this case is 'list all categs-en'.
Note the French menu has alredy been Associated



This gives the view as shown opposite.
We now need to edit this to enter the German menu item details.

The items shown by green arrows were modified to give the appropriate entry.
But one item, the Ordering, which is shown with a red arrow will need changing later.
So click on the


Select Target Language, which is this example is French (fr-FR).
Then in Menu Item Type select the menu item which is
jDownloads - List My Download History as indicated opposite.
Next click on Save Target button

Colin Mercer June 2019, Modified July 2021,June 2022, May 2023, January 2025, February 2025