- Extensions for Multilingual Functionality
- Language Installation
- Language Settings
- Activating Language Plugins
- Assigning Languages to Content Items
- Multilingual Associations
- Creating the Language Switcher Module
- Setting Module Display for Different Languages
- Joomla Template Styles for Each Language
- Multilingual Status
Detailed instructions for creating a multilingual Joomla website: language installation, setting up language plugins, configuring menus and modules for language switching, along with tips for managing template styles for each language.
Extensions for Multilingual Functionality
A list of core Joomla extensions for implementing multilingual functionality:
- System - Language Filter (plugin)
- A plugin for filtering site content based on language. This is a critical extension that must be enabled to implement multilingual functionality.
- System - Language Code (plugin)
- A plugin for replacing the language code in the HTML markup of a site page to improve SEO. For instance, if the French language pack uses fr-FR but the site targets French-speaking audiences in Canada, you can enter fr-CA in the field for fr-FR, and the plugin will dynamically replace the language code.
- Multilingual Associations (admin component)
- A component for managing multilingual associations, which becomes available after enabling the Language Filter plugin. It simplifies the creation and editing of alternative language versions of items.
- Multilingual Status (admin module)
- A module that displays the status of multilingual configuration in the Status position. Information is shown in a modal window when you click on the module.
- Language Switcher (site module)
- A module for displaying a list of content languages when using the multilingual system. Clicking on a language switches the site to that language.
- Sample Data - Multilingual (plugin)
- A plugin that provides sample data for creating a multilingual site. On a live site, this plugin should be disabled and ignored thereafter.
Language Installation
Once you've decided on the necessary languages, you need to install them as follows:
Automatic installation
- Go to System → Install → Languages.
- Install the required languages by clicking the Install button.
Manual Installation
- Download language packs from the official Joomla Language Packages website.
- Upload and install the files via System → Install → Extensions.
- Publish the installed language in System → Manage → Content Languages.
Language Settings
To access the language settings, navigate to System → Content Languages → Desired Language.
In most cases, you can leave everything as default, but for alternative languages, you might need to adjust the Site Name and the meta Description. This can be done in the Options tab.
Activating Language Plugins
To ensure proper functionality for a multilingual site, the relevant Joomla system plugins need to be configured and published.
- Go to System → Manage → Plugins.
- Find and enable the plugins:
- System - Language Code
- System - Language Filter
Plugin Settings
System - Language Filter
Default settings generally ensure proper multilingual functionality on the site. Usually, no changes are necessary.
- Language Selection for new Visitors
- Site language or browser language. Determines which language will be applied for site visitors: default site language, or automatically detect based on the user's browser settings.
- Automatic Language Change
- This option allows the site content to automatically switch languages if the user changes the site's language (affects homepage display).
- Item Associations
- Associations can be set for menu items in different languages, adding an alternate meta tag to inform search engines that a page has an alternative version in another language.
- Add Alternate Meta Tags
- Activates the addition of an alternate meta tag for menu items with associations.
- Add x-default Meta Tag
- If a user’s language is not represented on the site, they will be redirected to the site version set in the Language for x-default option.
- x-default Language
- Selects the default language to be used if the user’s language doesn’t match any installed languages.
- Remove URL Language Code
- Enabling this option removes the language prefix for the default site language, e.g., web.site/en. For all other languages, the prefix remains. It is generally recommended to keep the prefix for the default language, as it improves SEO and clarifies to users that the site is multilingual.
- Cookie Lifetime
- The language cookie duration: choose for them to expire either at session end or after a year.
System - Language Code
If your site is region-specific, you can set a language code for this region in this Joomla plugin, enhancing site visibility in search engines. If such a requirement does not apply, there is no need to configure this plugin.
Assigning Languages to Content Items
After enabling the Language Filter plugin, the Language option will become available on the editing pages of Joomla content items.
By default, the Language option for all items is set to All, making them available for all languages. Therefore, the first step is to assign a language to the existing items. This can be done quickly using the Batch Process feature.
- Navigate to the list of items (articles, categories, or menu items).
- Select all the items for which you will need to create associated items in other language(s).
- In the toolbar, click Actions → Batch.
- In the Set Language option, choose the desired language (e.g., Russian for Russian content) and click Process.
- Now all these items will be available when the corresponding language is enabled on the frontend (via the Language Switcher module or automatically, depending on the settings of the Language Filter plugin).
Multilingual Associations
Once a language has been assigned to existing content items, you need to create versions of these items for alternative languages. This can be done using the Multilingual Associations component, which allows you to edit the content of two language versions of an item on a single page.
- Go to Components → Multilingual Associations.
- In the filter, select Content Type and Language.
- From the displayed list of items, click on the one for which you want to create an associated item in another language.
- On the association editing page, select the target language for the alternative content item in the Target option.
- Fill in the content for the alternative item and save it.
You can also quickly create a multilingual association for an item by using the Associations button available in the toolbar on the item editing page:
To view and manage associations, use the Association tab available on the item editing page:
Creating the Language Switcher Module
To allow users to select the desired language on the frontend, you need to create the corresponding module.
- In Content → Site Modules, create a new Language Switcher module.
- Configure the module and choose its position.
Setting Module Display for Different Languages
Your site may contain modules that differ by language, so you can specify which menu items to display for each language in the module settings.
Joomla Template Styles for Each Language
If your site does not use the standard Cassiopeia template, you may need to create and configure a template style for each language. This allows precise control over site elements for each language:
- Menu Display: each language style can be linked to its menu, so visitors only see items matching their selected language.
- Set unique content in headers and footers: if your site has information specific to certain countries or language groups, different styles help add the needed details in header and footer areas for each language.
- Optimize user experience: different styles let you adapt the site to cultural and regional specifics, improving audience perception.
Be sure to specify which pages/menu items each Joomla template style is linked to.
Multilingual Status
To monitor the multilingual setup in the Joomla control panel, a special module is provided in the header area. Clicking on it opens a modal window with the relevant information. Once you have configured the multilingual system, make sure to use this feature.
Terms used:
Frontend, Plugin, Extension, Template style, Language, HTML, SEO, Cookie, Menu, Cassiopeia