Skip to main content

How to translate a Joomla template?

Each our Joomla template contains language files, which are responsible for translating the template labels in some areas at the front-end and back-end of your website. We provide Joomla templates with English language files by default but it is very simple to create a translation in any other language.

Which translations come from Joomla template files?

Joomla template parameters

In "Extensions -> Templates -> Styles -> [template-name]" you can find the template parameters. The names and descriptions of the template parameters can be found in the template files.

How to translate a Joomla template?

The names of module positions

In "Extensions -> Modules -> [module-name]" you can find the module parameters. In the module positions dropdown, you will find the names of module positions which are also located in the template language files.

How to translate template?

Coming soon page

On the coming soon page you will also find some template labels that you may wish to translate.

How to translate template?

Theme Customizer

The names of the parameters in Theme Customizer come from the template files as well.

How to translate template?

Error page

The core Joomla error page also contains some template labels.

How to translate template?

How to translate the template labels to other languages?

Step1: Download and unpack the template package

Before we start translating the template labels, download the latest template package from your download area at Joomla-Monster.com. The package name is "template-name.zip". Unpack it.

Step2: Locate the language files

Once you open the unpacked directory, you should see the template folders and files:

[template-name]  └── assets  └── cache  └── css  └── fonts  └── html  └── images  └── js  └── language  └── less  └── lib  └── tpl  └── component.php  └── error.php  └── index.html  └── index.php  └── offline.php  └── template_preview.png  └── template_thumbnail.png  └── templateDefaults.json  └── templateDetails.xml

All language files are located in the “language” directory. The is how the directory structure looks like:

language  └── en-GB       └── en-GB.tpl_[template-name].ini       └── en-GB.tpl_[template-name].sys.ini

To do our translation you need to duplicate the "en-GB" directory and change the duplicated folder and filenames to a proper language tag. In our example, we are going to make a translation for the German language which has the "de-DE" language tag. So our language directory will look as follows:

de-DE  └── de-DE.tpl_[template-name].ini  └── de-DE.tpl_[template-name].sys.ini

If you do not know what is your language tag. You can see a list of Joomla language tags here:

https://community.joomla.org/translations/joomla-3-translations.html

Step3: Translate the language files

The "de-DE.tpl_[template-name].ini" file contains labels for the template parameters, theme customizer, coming soon and error page. The "de-DE.tpl_[template-name].sys.ini" file contains labels for the names of module positions.

You can edit both files using any notepad app. Once you edit you will see a list of the template labels similar to these:

; *** global *** PLG_SYSTEM_JMFRAMEWORK_CONFIG_GLOBAL="Global" PLG_SYSTEM_JMFRAMEWORK_CONFIG_ALLPAGE_BG="Page background" PLG_SYSTEM_JMFRAMEWORK_CONFIG_ALLPAGE_BG_DESC="Choose the page background color." PLG_SYSTEM_JMFRAMEWORK_CONFIG_BASE_TEXT="Base text" PLG_SYSTEM_JMFRAMEWORK_CONFIG_BASE_TEXT_DESC="Choose the base text color." PLG_SYSTEM_JMFRAMEWORK_CONFIG_BASE_BORDER="Base border" PLG_SYSTEM_JMFRAMEWORK_CONFIG_BASE_BORDER_DESC="Choose the base border color." PLG_SYSTEM_JMFRAMEWORK_CONFIG_HEADING_COLOR="Base article title" PLG_SYSTEM_JMFRAMEWORK_CONFIG_HEADING_COLOR_DESC="Choose the base article title color." ; ****** PLG_SYSTEM_JMFRAMEWORK_CONFIG_BG="Background" PLG_SYSTEM_JMFRAMEWORK_CONFIG_TEXT="Text" PLG_SYSTEM_JMFRAMEWORK_CONFIG_BORDER="Border" PLG_SYSTEM_JMFRAMEWORK_CONFIG_MODULE_TITLE="Module title" ; *** bar *** PLG_SYSTEM_JMFRAMEWORK_CONFIG_BAR="Bar" PLG_SYSTEM_JMFRAMEWORK_CONFIG_BAR_BG_DESC="Choose the bar background color." PLG_SYSTEM_JMFRAMEWORK_CONFIG_BAR_TEXT_DESC="Choose the bar text color." PLG_SYSTEM_JMFRAMEWORK_CONFIG_BAR_SUBMENU_BG="Submenu background" PLG_SYSTEM_JMFRAMEWORK_CONFIG_BAR_SUBMENU_BG_DESC="Choose the submenu bar background color." PLG_SYSTEM_JMFRAMEWORK_CONFIG_BAR_SUBMENU_TEXT="Submenu text" PLG_SYSTEM_JMFRAMEWORK_CONFIG_BAR_SUBMENU_TEXT_DESC="Choose the submenu text background color." PLG_SYSTEM_JMFRAMEWORK_CONFIG_BAR_SUBMENU_HOVER_BG="Submenu item background hover" PLG_SYSTEM_JMFRAMEWORK_CONFIG_BAR_SUBMENU_HOVER_BG_DESC="Choose the submenu item background hover." PLG_SYSTEM_JMFRAMEWORK_CONFIG_BAR_SUBMENU_HOVER_TEXT="Submenu item text hover" PLG_SYSTEM_JMFRAMEWORK_CONFIG_BAR_SUBMENU_HOVER_TEXT_DESC="Choose the submenu item text hover."

Let's take this line as an example:

PLG_SYSTEM_JMFRAMEWORK_CONFIG_ALLPAGE_BG="Page background"

PLG_SYSTEM_JMFRAMEWORK_CONFIG_ALLPAGE_BG - this is a language constant. You do not touch this string.
Page background - this is a language value. This part you need to translate to your language.

In German "Seiten Hintergrund" means "Page Background" so my translation will look as follows:

PLG_SYSTEM_JMFRAMEWORK_CONFIG_ALLPAGE_BG="Seiten Hintergrund"

This way you need to translate all the rest language constants. It is easy, isn't it? Once you complete do not forget to save the file.

If you are using a template based on EF3 or EF4 Framework, you may find that some of the labels in the template parameters come from the framework plugin and some of them come from the template files. Why is it like that? Because many parameters are common for each template and we have moved them to the plugin. We have left in the template files only those parameters that are specific to this template. Check here on how to translate EF4 Framework plugin.

Step4: Install the template translation

Now you need to move your translation on your server to get it work. You can do this in two ways:

1) Create a new zip package of the template and install it via Extensions Manager in Joomla back-end.
or
2) Copy the translated directory (in our example it is "de-DE") to the following location on your server:

/templates/[template-name]/language/

Do not forget to check if your language is set to default in Joomla back-end. That's it.

If you would like to share your translation with others, please contact us and we will add your translation to the official package.