Introduction

Joomla 1.7 includes a basic way to implement a multi-language site.


This feature does not work as an association-type display where each content, whatever it is, has an equivalent in another language.
In 1.6 the module is set to redirect to the Default Home page for each content language.

In 1.7, was introduced a new feature that lets associate menu items to other menu items in different languages.
In this case the Language Swicher module will redirect to the associated menu items.
New in 1.7 - Associated menu items


It does not replace other multi-lingual managers extensions such as Joomfish.

This feature could be described as a way to create a Joomla multi-site filtered and displayed by language, rather than a pure translation oriented site.
One could create the same site structure on a monolingual site. The difference is that the Interface as well as the display of different menus and modules would not be language dependent.

This demo site lets you access to the back-end of the site in one of the languages proposed so as to understand how such a site shall be structured.
You just have to log here (log) and use the name/password for the available administrator language of your choice.

Languages proposed for now, are :

English (en-GB)
Name : multidemo_en
Password: multidemo_en

Français (fr-FR)
Name: multidemo_fr
Password: multidemo_fr

Español (es-ES)
Name: multidemo_es
Password: multidemo_es

Deutsch (de-DE)
Name: multidemo_de
Password: multidemo_de

Italiano (it-IT)
Name: multidemo_it
Password: multidemo_it

Македонски (mk-MK)
Name: multidemo_mk
Password: multidemo_mk

தமிழ் (ta-IN)
Name: multidemo_ta
Password: multidemo_ta

Content Languages

After installing Joomla WITHOUT sample data, you first have to create Content Languages for each language.
Once these are defined, they will be available all over Joomla User Interface.

This can be done even if the site language pack is not yet installed.
You will just have to make sure that the desired site pack is installed and enabled before launching the site.

==>Go to "Language Manager" ->"Content" tab after login in the back-end.

Enter parameters for each content language.
The URL Language Code, the Language Tag and the Image Prefix shall be unique.
The Language Tag is the language pack one (fr-FR, en-GB, de-DE, etc.).
The Title is used in the "langswitcher" module (1.6.1 and 1.6.2). The Title Native in later versions.

Default Home page assigned to "All"

Make sure you keep one Default Home page assigned to Language "All".

To prevent further confusion, rename the Default main Menu : here Main Menu-ALL.
Keep there any type of Menu item defined as Default Home page and assigned to Language "All" . Here Home-ALL.
UNPUBLISH the Menu module (here DEFAULT MAIN MENU ALL) displaying the Main Menu-ALL menu. The module itself is assigned to Language "All".

Site contents structure

A multi-lingual site has to be structured in a specific way to avoid 404 when drilling down / navigating.

1. Create, for each Content language, a ROOT parent category for each component used. Assign to the Content Language.
2. Create children categories for each root or parent category. Assign the same language used for the root category.
3. A root category and siblings assigned to Language "All" shall be structured the same way as those prepared for Content Languages.
4. Example of the structure of this site for the com_content categories.
5. Create contents in each of these categories and assign them to the same Content language as the root category.
6. Example for articles.

Use the filters in each Manager to display in function of category or/and Content Language.

Create specific menus

Create menus for each Content language.

=>Menu Manager

Create menu items for each menu.


All menu items created in a specific menu should be assigned to the same language or to language "All".
One of the menu items —in only one menu— should be defined as default home page for this language.
The menu items assigned to a specific language have to display contents assigned to the same language.
In this respect, Language "All" should be considered as any other specific language..

Example : see the mainmenuen menu and its menu items, one of them being defined as default Home page (with flag).

Résult : we have at least one menu per Content Language which contains a menu item defined as default Home page + one menu assigned to Language "All".
This last one will be chosen in an unpublished menu module assigned to Language "All".

Create menu modules

Create menu modules for each menu.

Assign these modules to the language concerned (or to Language "All") .

Example: edit mainmenu gb

A menu module assigned to Language "All" should display a menu which only contains menu items assigned to Language "All".
This module will display for all content languages.

A menu module assigned to a specific language may display a menu containing menu items assigned to the same language as well as menu items assigned to Language "All".

Display same content on different languages interfaces

There are 3 ways to display the same article (or other component content) on a part of the site assigned to a specific Content Language.

The article should be set to language "All" and originally a sibling of the Root category assigned to Language "All" (this is COMPULSORY, the root hierarchy is indispensable). See Site contents structure.

1. Create menu items — assigned to language "All" or to the specific language— displaying this article in each specific menu containing menu items set to that specific language and displayed by a menu module set also to that specific language.
Example: Lorem ipsum

2. Create a specific menu containing only menu items assigned to language "All", add a menu item set to "All" linking to this article, display the menu in a menu module set to "All".

3. Create/Copy the article in the desired specific language category and make sure the copy's assigned language is the same as the language of that category.

Assign a Content Language to modules

A Content Language may be assigned to each module.

2 possibilities :

1. Some modules, as mod_articles_categories, mod_articles_category, mod_weblinks, should only display contents to which is assigned a specific language.
The same specific Content Language has to be assigned to these modules.
Example on this site:  the mod_categories module

2. For other more generic modules, the assigned Content Language depends on the way the module is parametered.

A. If it is unnecessary to display the Title of the module (mod_footer, mod_search, mod_syndicate, etc.), and/or if some fields as 'Pre-Text' or 'Post-text' (mod_login, mod_languages, etc.) are not used, and if these modules have to be displayed for all Content Languages, language "All" will be assigned.
Example for this site: the mod_footer module.

B. In other cases, assign the desired Content Language.
Examples for this site: mod_breacrumbs (this one HAS TO BE customized, 'Text for Home Entry'), mod_languages (Pre-Text), mod_login (Title).

See the Modules Manager.