This guide is for those who were used to using Joomfish for creating multilingual Joomla! sites with the earlier versions and are now a little confused with versions 2.5 or 3, or for those who are new to Joomla!.
Install the language packs
In Joomla 2.5 go to the Extension Manager in the Administration and you will find the last button called Install Languages. In version 3 the same is in the Language Manager, find it under Extensions in the Administration area. Click the Install Language button and you will be shown all the language packs that are available for automatic downloading. Tick the one you need and press Install. There are a lot of them. Most people will for sure find the right one. If your language is not there you can try to find it from somewhere else and use the same method I described for 2.5, or if no luck, create your own language pack.
Choose your default language
Once you have all the languages you need you want to make one of them default. In the language manager under Installed-Site you will find the list of the languages you can use for the front end. Select and click default – the star in the right top corner. The small star next to the languages indicates the current default.
Configuring the languages
Still in the Language Manager press Content to get access to the configuration of the individual languages. Following the descriptions you see in the tooltips it’s pretty straight forward. Here you can set up language dependent site names, meta descriptions and keywords.
The language plugins
You will have to enable and configure a couple of plugins for your multilingual Joomla! site to work as you want it to.
System – Language Filter
Here you can set up how you want your multilingual site to behave.
- Language Selection for new Visitors. – Select if your site should show the default language for new visitors or the one that matches their browser language.
- Automatic Language Change – If your site doesn’t allow user registration you can ignore this. Otherwise turn it on.
- Item associations – Turn this on if you want to create associations of individual pages in different languages. If the user changes language on a certain page, it will go to it’s equivalent in another, if you set up the association. Otherwise it will take them to the main page of the selected language.
- Remove URL Language Code – As it says it removes the language code from the URLs of your default language. So your URL will like, lets say in English, www.yoursite.com/somepage.html instead of www.yoursite.com/en/somepage.html but the language code for the other languages will not be removed.
- Add alternate meta tags – If you enable it, which is a good idea I think, it will use those alternative tags that you configured in the Language Manager – Content settings.
System – Language Code
This you need to enable and configure if your language pack is different local than your site is. Like if your language pack’s local is Spanish, Spain but you want your site’s local to be Spanish, Argentina for example.
Ok, we are almost there.
A home page for each language
To finish activating a language you need to create a home page menu item for it. This is a little confusing at first so here is how I found it the most effective for the case that you don’t want multiple Home links on your page.
The problem is that the Joomla default home page must be set to all languages and it must be home and it can not be unpublished. There can not be more than one home pages within one menu even if they are in different languages. So to get rid of the headace I create a new menu for each language and put only a home link in it. The menu doesn’t have to be shown anywhere so I normally don’t even assign a module for it. Just leave it published without a module, it’s good enough to work.
Now we can start to translate.
If you are starting your multilingual site from zero, you have it easy. Just make everything twice, or as many times as you have languages. For example, you create a page, module or menu item, when you saved it press save as copy to keep the same settings and rewrite the content in the new language. Don’t forget to set the right language either.
If you already have the site ready in one language and you want to set up another it’s good to stick to some practical plan.
- Translate the content first – If you have categories set up start with those so you can add the articles to them when you translate them. Like above, it’s good to go through them, open and save as copy to keep their configuration, then change their content, including the meta data. Make sure to always press the Save as Copy immediately after you opened the article not to make the mistake of altering and saving the original. It’s good to change the language right after and save it before you start editing just to play double safe. Here you can also set up associations between the new and the original article. If your content structure is different in the new language than the original, translate only the pages that you need and add new ones only if they were not in the original.
- The menus next – Now that you have what to link to you can translate the menu items as well. The same advice goes as above. Here you can also set up the associations.
- And last the modules – Same procedure as before. When you have it translated don’t forget to assign them to the pages according to liking in the new language.
Finally the Language Switch module
If you haven’t yet now you should publish the Language Switch module. If you won’t display the module name you can have it set to all languages and just show the flags or the names of the languages. You can set some configurations, like to show flags or names, horizontal display or not, show active language or not etc.
That’s it. You have a multilingual Joomla 2.5, or Joomla 3 site. All this might seem a bit complicated but the fact that you can have a totally different category tree and module arrangement per language is a huge leap forward from the times of Joomfish as the only way. I hope somebody will find this useful.