Multilingual jDownloads using Falang - July 2025
Introduction
It is assumed that you have successfully installed the Falang Component as described in article Multilingual Site with Falang
Continuing on from that article, this article describes adding language views to jDownloads. Switching which language an item is shown in the front end is by using the Falang Language Switcher. For illustrative purposes French and German language views are used.
Falang is compatible with both Joomla 4 and Joomla 5. The following notes are based on FaLang 5.20.
Continuing on from that article, this article describes adding language views to jDownloads. Switching which language an item is shown in the front end is by using the Falang Language Switcher. For illustrative purposes French and German language views are used.
Falang is compatible with both Joomla 4 and Joomla 5. The following notes are based on FaLang 5.20.
Add support for jDownloads
There are five content types in jDownloads:
(1) Categories and sub categories;
(2) Downloads;
(3) Licenses;
(4) Layouts.
(5) User Limits
Each of these is treated below. The first action however is installing the relevant jDownloads Language files.
In the examples, French and German are used to illustrate the Falang translation process. The jDownloads German translation is complete and the French translaion is substantially complete.
(1) Categories and sub categories;
(2) Downloads;
(3) Licenses;
(4) Layouts.
(5) User Limits
Each of these is treated below. The first action however is installing the relevant jDownloads Language files.
In the examples, French and German are used to illustrate the Falang translation process. The jDownloads German translation is complete and the French translaion is substantially complete.
General Discussion And Examples
jDownloads has Categories, Downloads, Licenses, Layouts and User Group Limits that require translations.
The jD categories are like Article categories complete with sub categories A Download has a title, an alias, permissions, access level, user access, a publication status, a language attribute and it is located in a jD category. Optionally it may also have descriptions, symbols, images, previews, price, licence and many other items. All of these are stored in the database.
A Download includes a downloadable file. The downloadable file itself is not in the database. In most cases it is stored on your site in a sub-directory of the jDownloads directory, but it may also be stored on an external site, see downloads on external site (opens in new window/tab) for more information.
For a particular jD category and Download then with Falang the same file will be downloaded irrespective of the current language. This is the norm for multilingual sites. That is in the translation process we are not concerned with the actual downloadable file.
With Components such as jDownloads, Falang adopts a different strategy to effect translations in the front end. Basically, a Language Switcher changes which component language file is shown.
The jD categories are like Article categories complete with sub categories A Download has a title, an alias, permissions, access level, user access, a publication status, a language attribute and it is located in a jD category. Optionally it may also have descriptions, symbols, images, previews, price, licence and many other items. All of these are stored in the database.
A Download includes a downloadable file. The downloadable file itself is not in the database. In most cases it is stored on your site in a sub-directory of the jDownloads directory, but it may also be stored on an external site, see downloads on external site (opens in new window/tab) for more information.
For a particular jD category and Download then with Falang the same file will be downloaded irrespective of the current language. This is the norm for multilingual sites. That is in the translation process we are not concerned with the actual downloadable file.
With Components such as jDownloads, Falang adopts a different strategy to effect translations in the front end. Basically, a Language Switcher changes which component language file is shown.
In this example, as illustrated opposite, we have a jDownloads main category, called Test Dir with two subcategories called 'pdf files', with 2 published Downloads, and 'zip files', with 4 published Downloads.

The three images opposite all reference the same actual Download when shown in the jD Download Details view in the Front End.
Using the Farlang Language Switcher

Only the language of the descriptive text giving the 'name' of the data changes. That is there is nothing to change in jDownloads itself.
Note: Sometimes when showing French then a text string may still be shown in English. This is because the French jDownloads translation is not itself complete at the time of writing.



Install jDownloads language packs
First please note that installing a language for jDownloads, or any other non-core component, does not use the Install Languages in the Joomla Extensions Manager. That is just for installing languages for Joomla! itself.
Basically the process is to download the appropriate jDownloads language pack and then install as if it were a regular extension.
Also note that the same translations are used for both jDownloads 3.9 and jDownloads 4.x
Basically the process is to download the appropriate jDownloads language pack and then install as if it were a regular extension.
Also note that the same translations are used for both jDownloads 3.9 and jDownloads 4.x
Find jDownloads Language Translations
The first step is to go to the jDownloads documentation site (opens in a new tab/window) and then click on the Translations menu item as illustrated opposite.

Each Downloads language translation file has all the language content for the Component, all the modules and all the plugins.
Note the restriction in red text - we are trying to resolve this.
The language files are listed below this message.
Note the restriction in red text - we are trying to resolve this.
The language files are listed below this message.

Just scroll down to find the required language and click on the Title of that language.
Each language pack is a zip file with about 50 language files in it. These are for the component, modules and plugins that form jDownloads.

After selecting the required language, French in this example, you will then see a list of the various translation parts of jDownloads, followed by a 'bar' indicating how much of each individual part has been translated as indicated opposite.

Some translations may be incomplete. What happens is that if a particular language string is missing then jDownloads uses the corresponding one from the English language pack. From time to time you should recheck the jDownloads language files to see if they have been updated.
Scroll down to the

After clicking on it, you will be able to Save the zip file in a suitable folder on your device by clicking on the

Personally, I use a folder called 'jD Language Files'.
As indicated above, the zip file contatains numerous files, one for the Component, one for each module and one for each plugin.

Install jD languages
The downloaded language pack is self- installing.
So use the normal Install as you would for any extension as indicated opposite.
Do NOT use the 'Install Languages'
Use



Now repeat for the other languages, one at a time.

When a language has been installed a succes message such as below is shown.

Note that the German language files are already installed in jDownloads. So in this example only the French language needed to be installed.
The specific jDownloads language files are now in place.
The specific jDownloads language files are now in place.
These are organised by the language codes so for example the French language file for the component would be in 'administrator/language/fr-FR/fr-FR.com_jdownloads.ini' and similarly the Top Module language is in 'administrator/language/fr-FR/fr-FR.mod_jdownloads_top.ini' . However that is of no concern here.
Translate jDownloads Content
To make a translation then in the Joomla backend menu click on




This brings up the main translation starting point for all translations . There are two pulldowns



First select the target Language using the

Next use the

There are five specific jDownloads items as illustrated opposite..


jD Categories
In
select
, then
. In the
pulldown choose
This opens up a list of all the jD Categories and sub Categories. The untranslated elements have a
in the State column.







Click on the Title of the Category you wish to translate which in this example is jD category Dated Cats.
Use the
buttons to copy the reference items to the Target items.
Then copy each Target item to your choosen translation sevice. Paste the translated result over the Engish in the right hand side.
Use the

Then copy each Target item to your choosen translation sevice. Paste the translated result over the Engish in the right hand side.

In this exampe there are only two items to translate, the Title and the Description.
The translated version appears as shown opposite. Do not forget to Publish.
Now repeat the process for the French language.

Translating Downloads
Translating Downloads follows the same general sequence as translating the jD Categories.
Again in
select
and then
. At top right select the language, which in this example is German.
In the
select Downloads.
Again in



In the

The Downloads are listed alphabetically.
Click on the Title of the Download you wish to translate which in this example is Download '001-24-service-sheet'.
Click on the Title of the Download you wish to translate which in this example is Download '001-24-service-sheet'.

In general there are 3 items to translate: Title, Version and Description.
In this example only the Title existed.
Again remember to publish.
It is more efficient in time to switch to the other language(s).
In this example only the Title existed.
Again remember to publish.
It is more efficient in time to switch to the other language(s).

Translating Licenses
Similarly translating Licenses follows the same general sequence as translating the jD Categories.
Again in
select
and then
. After choosing the languages select 
Again in




This shows the list of Licenses. Two of them have already been translated.
To translate a License click on its name.
In this example we will use the 'GNU/LGPL' license.

This is the view where the


Here the English text in the right hand side, the Target side, has been copied and then translated into German using an external translation service.
The resultant translation was then copied back into the Target Side.
It was also set as published. Then exit by using Save& Close.
Repeat the process using French.

Translating Layouts
The Layouts translation is a little different. There are 23 different Layouts but usually only one from each of the six sections is used.
Farlang offer translation facilities for all 23 layouts but obviously you only need to translate those you need.
Farlang offer translation facilities for all 23 layouts but obviously you only need to translate those you need.
After specifying the language and selecting jDownloads Layouts then to translate a specific layout click on its name.
In this example we are translating Files Layout Full Info. As before click on the

Note that each section of the layout may need expanding

To translate the Layouts then click on
then on
. This opens up the translation panel. At the top first click on the
pull down and select
. Next on the
pulldown select
, which are the Layouts.






This lists all the jDownloads Layouts in alphabetical order.
The small red button in the State Column inicates that a layout has not been translated.
You maybe tempted to only translate the layouts you are currently using, but if you do find a need for one of your untranslated tempates it means rembering how to do it or finding the right place in this article!
Personally I translate all of them as it is all then done

To initiate a layout translation click on the layout name in the form above. Here we are translating the 'Alternate Files Layout.
At the initial step the target side is empty and the status is unpublished. So click on the 'transfer' buton
to copy each item in turn from the Reference side to the Target side.
There are 4 'code' blocks and 3 'text' blocks.
The code blocks do not need translation. But if the text bolcks are not empty then those blocks will need actual tranlation.
For reference all the text reqiured by the 'code blocks' are already in the jD Language files.
Finally ensure you set to published

There are 4 'code' blocks and 3 'text' blocks.
The code blocks do not need translation. But if the text bolcks are not empty then those blocks will need actual tranlation.
For reference all the text reqiured by the 'code blocks' are already in the jD Language files.
Finally ensure you set to published

This is the view before we have actually replaced the English on the Righthand side with the French translations.
Usually as the Layout text, the Layout header text, the Layout subheader text and the Layout footer text do not require any translation.

Remember to set


The completed parts will all be listed as shown opposite. They all have green tick in the Status Column
Below them are the list of the remaining Layouts, which have a red dot in the Status Column.
Personally I find it simpler to complete one language at a time.

The image opposite shows the English frontend view at the top of a set of Downloads using the 'Files Layout Full Information' layout.

The image opposite shows the same result after selecting French with the the Falang Language Switcher.

Translating User Groups Limits
In this example we will use the Registered User Group. In jDownloads click on User Group settings. This brings up the list User Groups. So in this example click on the Registered group. This shows a view with three tabs
Click on Group Settings and then ensure that the option 'View User Limits' is set to Yes.
Beneath that is the structure of the actual Limits Message. This uses what are called 'placeholder variables' such as {files_daily_label}, {files_weekly_label}, and so on. To set the actual limit values click on the Limits tab.

Click on Group Settings and then ensure that the option 'View User Limits' is set to Yes.
Beneath that is the structure of the actual Limits Message. This uses what are called 'placeholder variables' such as {files_daily_label}, {files_weekly_label}, and so on. To set the actual limit values click on the Limits tab.
This consists of several pairs of messages. Typically a limit value and a User Message. It is the User Message that will be translated.
Note that the user Messages may start with the tags {en-GB} and end with {/en-GB} .
All of these tags need removing from your translations.
Note that the user Messages may start with the tags {en-GB} and end with {/en-GB} .
All of these tags need removing from your translations.

To translate the User Limits text then click on
then on
. This opens up the translation panel. At the top first click on the
pull down and select
. Next on the
pulldown select
.






This shows a page with 10 sections for the user limits text.
Actually one limit has already been translated so the ID starts at 2

Looking at the page after 3 translations gives a view as shown opposite.
The translated items are shown at the bottom

To initiate a Translation, click on the small box as indicated by arrow 1.
Next Click on


Use the
to copy the English text to the right hand side as shown opposite.
Next take a copy of the English text and use your translation facilty to get the Fench. equivalent.
Ensure you remove {en-GB} and {/en-GB} from the translation text.

Next take a copy of the English text and use your translation facilty to get the Fench. equivalent.
Ensure you remove {en-GB} and {/en-GB} from the translation text.

Copy the translation over the English text.
Set to
. Then use the
button.
Repeat the process for the remaining untranslated Limits messages.
When done repeat the whole process for German.
Set to


Repeat the process for the remaining untranslated Limits messages.
When done repeat the whole process for German.

Translating Modules
jDownloads has several modules that add facilities in the front end.
To find the Modules then in the Joomla Adminisration main menu click on
. Then in the
section click on
. Then in the search bar enter jDownloads
and click on the search button. This brings up a view of the jD modules, some of which are shown opposite. Note in particular the Falang column which has
indicating that no translation has been carried out yet.






Here we will use the jDownloads Tree Module. It is assumed here that the Tree module has been 'setup' for regular jDownloads use. If this is not the case then please refer to article Tree Module (opens in a new window/tab) on setting up the Tree Module.
To go directly to say the the French translation click on
To go directly to say the the French translation click on

Next use the
to copy the English text on the left to the right, copy the text to your translation service and replace the English with the French. Set to Published, the use Save & Cose. The staus symbol for French in now
. Now repeat for German.



The views of the Tree module in each language are shown below.



ColinM February 2025, Updated May 2025, July 2025