Joomla Tutorials and Blog Posts

Multi-language Sites in Joomla

July 15, 2011 | Written by Ed Andrea

Joomla includes a basic way to implement a multi-language site. This doesn't replace other multi-language content management like, Joomfish, for example. You can find a complete list of these in the JED.

What you can do is activate the language switcher module, and let visitors switch the joomla core labels and headings to their preferred language. You will need to download and install specific language packs for each language you want to use. You can find the language packs in the JED.

1. Activate the Language Filter Plugin and set basic site options.

tutuploads1._NEW_to_1.7_-_Activate_the_Language_Filter_Plugin_and_s.png

New to Joomla 1.7 go to Extensions>Plug-in Manager and find the System-Language Filter Plugin and click on the name to edit it.

2. NEW option - Automatic Language Change

tutuploads2._NEW_option_-_Automatic_Language_Change.png

Choose the site language or try to detect the users browser settings and it will automatically switch to that language. Set Automatic Language Change to "Yes"

NEW to 1.7: You can now associate menu items in different languages. If a menu item is not associated, the behavior will be the same as in 1.6, that is, redirect to the home page in the language concerned.

3. Open the Language Manager and add to Content.

tutuploadstutuploads1._Open_the_Language_Manager.png

Start out by going to Extensions>Language Manager

4. Go to the Content tab to start configuring your languages.

tutuploadstutuploads2._Go_to_the_Content_tab..png

Click on the "Content " tab.

5. View the default as an example.

tutuploadstutuploads3._View_the_default_as_an_example..png

You will only see "Englisth (UK). Click on the name and look at the way this one is configured. You'll be doing the additional ones in a similar manner

tutuploadstutuploadsmedia_1310762849957.png

Title = The name of the language as it will appear in the dropdown lists when assigning the language to an item. This Title will also be used by the langswitcher module in front-end when flags are not used.

Title Native = A title in any language desired by the admin to be displayed in the Content Language list.

URL Language Code= This Language Code will be appended to the site url. When SEF is enabled, one will get http://mysite.com/en/. If SEF is disabled the suffix &lang=en will be appended at the end of the URL. Note the Language Code must be unique among all the languages.

Image Prefix = Prefix of the image file for this language when using the "Use image flags" Language Switcher basic option. Example: if 'en' is chosen, then the image shall be en.gif. Images and CSS for this module are in media/mod_languages/
Users can add any image/flag there with any prefix. Example: pt_br for the Brazilian flag.

Language Tag = Enter here the language tag example: en-GB for English (UK). This should be the exact prefix used for the language installed or to be installed.

Published = Whether this content language is published or not. If published, it will display as a choice in the Language Switcher module in frontend.

To work OK, the specific site language must be installed. But, you can prepare contents in a specific Content Language without even installing the language concerned. You can complete this process and install the language packs when you need to.

Metadata (Not pictured) These metadata definitions will override Global Configuration Metadata in Multilanguage configuration for each language used.

6. Add A new language

tutuploadstutuploads4._Add_A_new_language.png

Simply click the "New" Icon and you'll see the form, but everything will be blank. In the one below you can see how it was set up for the German language.

Repeat this step for each language you are going to use.

7. Configure the new language.

tutuploadstutuploads5.__Configure_the_new_language..png

You can get the image prefix from the images already loaded into /public_html/yourjoomladirectory/media/mod_languages/images
And the language tag is the name of the folder that has the language files after you upload them. You will find them in /language

8. Activate the System-Laguage Filter

tutuploadstutuploads6._Activate_the_System-Laguage_Filter.png

Go back to the Extensions menu and go to the Plug-in Manager. Locate the System - Language Filter by scrolling or using the search box. Make sure it is enabled.

9. Go back to the main menu and create a new menu item for each language.

tutuploadstutuploads7._Go_back_to_the_main_menu_and_create_a_new_menu_item_fo.png

You need to create a menu item for each language, including English. Main home page link will use 'All" in the language designation. At least one button has to be designated to use "All" and you won't be able to change the main home page language selection.

tutuploadstutuploadsmedia_1310768531711.png

You can name the pages anything you want and they do not need to be published. If everything is going well, you'll see the flags. You can also make detailed menu assignments when you set the parameters in the menu item.

10. When you create the menu item, choose the language and set it as a default.

tutuploadstutuploads8._When_you_create_the_menu_item__choose_the_language_and.png

You need to have a page for each language you use, and you need to have it be the default page for that language. So check the "Yes" in Default Page. This will not change the main default page which is on the main menu. These pages will be hidden.

Choose the language for this page in the Language drop down

You can also set the template style for this language if you need multiple designs. For example, you might want a each language section to have it's own header, colors and layout.

11. Make Menu Associations

tutuploads11._Make_Menu_Associations.png

For example: When a menu item is tagged to fr-FR, and is associated to a menu item tagged en-GB, if the language switcher module is present on the page, clicking on the en-GB flag/name redirects to the en-GB menu item. You will only see this option in the slider if you chose "Yes" to Menu Associations in step 1, when you activated and configured the plugin.

12. Go to the Module Manager and enable the Language Switcher module.

tutuploadstutuploads9._Go_to_the_Module_Manager_and_enable_the_Language_Switc.png

There will be a default copy there already.

You can activate this one, and/or create additional copies for inclusion on different pages or positions.

tutuploadstutuploadsmedia_1310763233288.png

13. Set the module parameters

tutuploadstutuploads10._Set_the_module_parameters.png

It's just like any other module. Pay attention to the position, though. It installs with a default position, that may not be on your template. Be sure it is published in a visible position.

NEW to 1.7

tutuploadsNEW_to_1.7.png

New to Joomla 1.7: is an option for a dropdown menu instead of the country flags. If you prefer a text, set this to yes.

14. Set module page assignments.

tutuploadstutuploads11._Set_module_page_assignments..png

You must have the module assigned at least to the default language home pages.

15. Check the language setting on your default home page.

tutuploadstutuploads12._Check_the_language_setting_on_your_default_home_page..png

The actual site home page should have the language set to "All" at least one page on the site has to be set to "All"

16. Go back Extensions>Extension Manager to upload your language packs.

tutuploadstutuploads13._Go_back_ExtensionsExtension_Manager_to_upload_your_la.png

You can do this before, or after, creating the Language Content entries. If you add new languages at a later time be sure to go through the process for the new language.

17. Upload the language package files.

tutuploadstutuploads14._Upload_the_language_package_files._There_will_be_two..png

You can find language packs at http://extensions.joomla.org/extensions/languages/translations-for-joomla

You may see two zip files, one for admin and one for site. Sometimes they are combined in a single package. Just be sure to carefully check the download pages to make sure you get the right one. Be careful not to confuse the language pack with the full foreign language distribution, which is a fully translated Joomla installation, not just an add on language.

18. Success!

tutuploadstutuploads15._Success_.png

You will know you are successful if you see the language switcher module in your desired location, and the flags, or text dropdown, are visible. When you click on them you'll see the alternate translation.


 

Comments  

 
#1 Ajmal 2011-07-20 23:32
Thanks for the quick run through with the language options.

I got some questions; does this method work for all extensions or only those installed from language pack?

I wish Joomla! think off a better, easier and lesser steps on getting and managing the language part of it.

Looks like there are too many things involved, but yet the result is only,

"Joomla 1.7 includes a basic way to implement a multi-language site. This doesn't replace other multi-language content management like, Joomfish, for example."

From personal experience, it gives the impression if the URL doesn't contain the item ID or menu ID (dynamic URLs that Joomla! always magically create) of that specific language, say from example above German with ID 2 , the intended language will not show/come up. Right?
 
 
#2 Tina 2011-07-20 23:57
I havent used joomfish but is the new multi-language feature on J1.7 same as joomfish? Or what is the difference?
 
 
#3 Tobby 2011-07-21 09:38
Thanks Ed Andrea, nice description.
Maybe you could mention that if using the menu association you of course should add the language switcher to all pages concerned. If you also include a description how to hide the All languages Home menu it's perfect. It took me some time to find this out. I use a not visible position for this.
@Ajmal I think you mix different issues. Language packs have not much with multilungal sites to do. If you need multilingual pages you have too look for extensions that handle it. e.g. The Joomla core Articles(Conten t) does.
@Tina At the moment you have to keep track of the different contibutions in different languages on the site by your own. I hope the menu associations are only a first step. With JoomFish you really add translations. Those are stored in separate database tables.
 
 
#4 abdelouahed 2011-07-22 09:14
thank you,nice description
 
 
#5 Jens 2011-07-23 16:08
Very nice breakdown of the new language functionalities . Congrats!

I hope someone could help me with one strange problem regarding step 11 (Make Menu Associations). I upgraded my site from joomla 1.6.3 to joomla 1.7 and everything works but this new option is not shown when editing the menu items... also if you create new ones...

Does anybody have an idea how to solve this? Every help or hint is highly appreciated since this would be a great feature to use.

Thx in Advance!

Jens.
 
 
#6 Gerasan 2011-07-24 10:04
Hello Andrea,

thanks for nice tutorial. That worked like this on my Joomla 1.6.3 site. But after a update to 1.7 it is not possible anymore to set menu-items as Language-Hompages within one menu. The error "A menu should contain only one Default home" appears. Any ideas why? I don't need to create a entire menu for each language, isn't it?

Thanks for any advice.
 
 
#7 J-F Bohemier 2011-07-25 11:22
I got the same error... I had to create one menu for each language, and assign the default in each menu
 
 
#8 epsi 2011-08-03 09:25
1.7 require one menu group for each language.

forum.joomla.org/.../
info-graf.fr/.../...
 

Add comment