Skip to content

Joomla Languages — Multilingual Site Setup and Language Management

DodaTech Updated 2026-06-27 12 min read

In this tutorial, you'll learn how Joomla language management works — installing site and administrator languages, creating content language associations, adding a language switcher, and building a complete multilingual site using Joomla's built-in system.

What You'll Learn

  • How Joomla handles languages for site and administrator interfaces
  • How to install additional languages (Extensions > Language(s) > Install Languages)
  • How to set the default language for site and admin
  • How to create content languages (Languages > Content Languages)
  • How content language associations work for articles, categories, and menu items
  • How to use the Language Switcher module (mod_languages)
  • The complete multilingual workflow
  • How SEF URLs work in multilingual sites
  • The System — Language Filter plugin

Why It Matters

Multilingual capability is one of Joomla's strongest features. Unlike WordPress, which needs expensive plugins like WPML or Polylang for multilingual content, Joomla handles everything natively. No extra cost, no compatibility issues, no performance overhead from third-party translation plugins. For any site serving multiple languages, this built-in feature saves time, money, and complexity.

Real-World Use

A tourism board launches a Joomla site serving four languages: English, French, German, and Spanish. They install the language packs, create content languages for each, write articles in each language with associations linking them together, and add a language switcher module in the header. Visitors click a flag to switch languages, and Joomla shows the correct version of each page. The entire multilingual setup uses core Joomla features — no extensions required.

Learning Path

flowchart LR
  A["Plugins"] --> B["Languages
You are here"]:::current B --> C["Essential Extensions"] C --> D["User ACL"] classDef current fill:#38bdf8,color:#0f172a,stroke-width:2px

Language Types

Joomla distinguishes between two types of languages:

Type Description Example
Site Language The language displayed to visitors on the frontend Visitors see text in French
Administrator Language The language used in the admin interface You manage the site in German
Content Language A language assigned to content items (articles, categories, menus) French articles, English articles

Installing Languages

Installing Site and Administrator Languages

  1. Go to System > Manage > Language(s) > Installed — Site or Installed — Administrator
  2. Click the Install Languages button in the toolbar
  3. A window opens with available languages
  4. Find your language (search by name or language code)
  5. Check the box and click Install
# Steps to install a language pack
# System > Manage > Language(s) > Installed - Site
# Click "Install Languages" button
# Search for "French" or "fr-FR"
# Check the French language pack
# Click "Install"
# Joomla downloads and installs the translation

Alternatively, you can download language packs from the Joomla Extensions Directory and install them via Extensions > Manage > Upload Package File.

Setting Default Language

After installing languages, set which one is the default:

# Set default site language
# System > Manage > Language(s) > Installed - Site
# Find the language you want as default
# Click the star icon to make it the default

The default language is the one visitors see when no language preference is set.

Content Languages

Content languages define the languages available for your content. They are different from installed site languages.

# Create content languages
# System > Manage > Language(s) > Content Languages
# Click "New"

Content Language Fields

Field Description Example
Title Language display name English (United Kingdom)
Title in Native Language Name in the language itself English (United Kingdom)
Language Tag Language code used internally en-GB
Language Image Flag image (stored in /media/mod_languages/images/) gb.png
SEF Prefix URL prefix for this language en
Access Access level for this language Public
Description Optional description

SEF Prefix

The SEF prefix is the URL segment for this language. For example:

# English page
/en/about-us

# French page
/fr/a-propos

# German page
/de/uber-uns

The SEF prefix is only visible when the System — Language Filter plugin is enabled.

Content Language Associations

Associations link corresponding content across languages. When a Visitor switches from English to French, Joomla uses associations to find the French version of the same page.

Associating Articles

When editing an article, the Associations tab shows all content languages. For each language, you select the associated article:

# Steps to associate articles
# 1. Create the English article and save it
# 2. Create the French article and save it
# 3. Open the English article, go to Associations tab
# 4. For the French language, click Select and choose the French article
# 5. Save the English article
# 6. Repeat for the French article (associate back to English)

The association is bidirectional — linking English to French also links French to English.

Associating Categories

Categories must be associated per language too:

# Steps to associate categories
# 1. Create an English category (e.g., "News")
# 2. Create a French category (e.g., "Actualites")
# 3. Open the English category, go to Associations tab
# 4. Select the French category
# 5. Save

Associating Menu Items

Menu items also need associations. This is essential for the language switcher to work correctly.

# Steps to associate menu items
# 1. Create an English menu item for "About Us"
# 2. Create a French menu item for "A Propos"
# 3. Open the English menu item, Associations tab
# 4. Select the French menu item
# 5. Save

Language Switcher Module

The Language Switcher (mod_languages) lets visitors change the site language.

# Add Language Switcher module
# Extensions > Modules > New > Site Modules > Language Switcher
# Set title (typically "Language Switcher" or leave blank)
# Select position (header, sidebar, or topbar)
# Configure options:
#   - Show active language: Yes
#   - Show language name: Yes or No (flags only)
#   - Display as dropdown: Yes or No
#   - Use image flags: Yes
# Assign to all pages or specific menu items
# Save

The Language Switcher works by passing the lang parameter in URLs. When a visitor clicks a language, Joomla loads the associated content for that language.

Multilingual Workflow

Here is the complete workflow for building a multilingual Joomla site:

Step 1: Install Languages

Install the site language packs you need (e.g., en-GB, fr-FR, de-DE).

Step 2: Enable the Language Filter Plugin

# Enable System - Language Filter
# Extensions > Plugins > System - Language Filter
# Enable: Yes
# Method: After Language Switcher (recommended)
# SEF Mode: Yes (for /en/ URLs)
# Save

Step 3: Create Content Languages

Create content languages for each language you want to support.

Step 4: Create Categories and Associations

Create categories for each language and associate them.

Step 5: Create Articles and Associations

Create articles in each language and associate them.

Step 6: Create Menus and Associations

Create a menu for each language (or use a single menu with language filtering). Associate menu items across languages.

Step 7: Add Language Switcher Module

Add mod_languages to a visible position.

Step 8: Test

Visit the site in each language and verify:

  • URLs show the correct SEF prefix (/en/, /fr/)
  • Content displays in the correct language
  • Language switcher works correctly
  • Associated content loads when switching languages
flowchart TD
  A["Install Language Packs"] --> B["Enable Language Filter Plugin"]
  B --> C["Create Content Languages"]
  C --> D["Create Categories per Language"]
  D --> E["Create Articles with Associations"]
  E --> F["Create Menu Items with Associations"]
  F --> G["Add Language Switcher Module"]
  G --> H["Test All Languages"]

SEF URLs for Multilingual

With the Language Filter plugin enabled and SEF mode turned on, URLs follow this pattern:

# Without language filter
example.com/about-us

# With language filter (SEF mode)
en/about-us
fr/a-propos
de/uber-uns

The SEF prefix comes from the Content Language's SEF Prefix field.

You have two approaches for multilingual menus:

Approach 1: One Menu Per Language

Create separate menus (e.g., "English Main Menu", "French Main Menu"). Each menu contains only items for that language. Assign each menu to the correct language in the menu module.

Pros: Clean separation, easier management per language. Cons: More menu modules to manage.

Approach 2: Single Menu with Language Filtering

Create one menu with all items. In the System — Language Filter plugin, enable "Language Selection for Menu Items". Joomla shows only menu items matching the current language.

Pros: Single menu module, simpler setup. Cons: Menu items from all languages appear in the list, which can be confusing.

Translation Workflow

Content translation requires you (or a translator) to create each language version manually. Joomla does not provide automatic translation — it manages the associations, not the translation itself.

# Realistic translation workflow
# 1. Create English article "About Us" in English category
# 2. Copy the article text to a document
# 3. Translate to French
# 4. Create French article "A Propos" in French category
# 5. Associate English and French articles
# 6. Verify links and display

Third-party extensions like Joom!Fish or Falang can help manage translation workflows, but core Joomla handles the display and switching natively.

Common Mistakes

  1. Not enabling the Language Filter plugin: You install languages and create content languages, but the site always shows the default language. The System — Language Filter plugin must be enabled for multilingual URLs and language switching.

  2. Forgetting to associate content: You create articles in English and French but the language switcher does not work. Articles must be associated via the Associations tab. Without associations, Joomla cannot find the corresponding article in another language.

  3. Not creating separate categories per language: You create one "News" category and put both English and French articles in it. Now the category blog shows articles from both languages mixed together. Create separate categories for each language.

  4. Incorrect SEF prefix configuration: You set the SEF prefix to "english" instead of "en". URLs become example.com/english/about-us instead of /en/about-us. Keep prefixes short using standard language codes.

  5. Not associating menu items: The language switcher highlights correct languages but clicking a language loads the default page instead of the correct translation. Each menu item must have corresponding menu item associations.

Practice Questions

  1. What is the difference between an installed language and a content language? Answer: An installed language is a translation pack for the Joomla interface (frontend and backend text). A content language defines a language for your content (articles, categories, menus). You need both — installed languages for the UI and content languages to organize multilingual content.

  2. How does Joomla find the correct article when a visitor switches languages? Answer: When languages are associated, Joomla stores the relationship in the database. When a visitor switches via the Language Switcher, Joomla finds the associated article in the target language and loads it. If no association exists, the site loads the default page.

  3. What role does the System — Language Filter plugin play in multilingual sites? Answer: The Language Filter plugin routes URLs with language prefixes (/en/, /fr/), filters menu items to show only the current language, and handles content association lookups when switching languages. Without this plugin, multilingual features do not work.

  4. Challenge: Build a complete bilingual Joomla site in English and French. Install both language packs. Create content languages for en-GB and fr-FR. Create two categories per language (News/Actualites and Blog/Bloc). Write at least two articles per category in each language. Associate all articles, categories, and menu items. Create a menu structure with Home, News, and Blog items in each language. Add a language switcher module. Enable the Language Filter plugin with SEF mode. Test navigation between languages.

FAQ

Is multilingual built into Joomla core?

Yes. Joomla is the only major CMS with fully built-in multilingual support. You can install language packs, create content languages, associate articles across translations, and add a language switcher — all without installing any extension.

Does Joomla automatically translate content?

No. Joomla manages content associations — it connects related articles across languages so visitors can switch between versions. The actual translation must be done by a human or a third-party translation service.

How do I add flags to the language switcher?

The Language Switcher module has an option to show image flags. Joomla includes flag images for most countries. If your language's flag is missing, add the PNG image to /media/mod_languages/images/ with the language code as the filename.

Can I use different templates for different languages?

Yes. You can assign different template styles to different language-specific menu items. This lets you have completely different layouts for each language version of your site.

Do I need separate menu items for each language?

Yes. Each language needs its own menu items pointing to its own articles and categories. These menu items are then associated with each other through the Associations tab.

Mini Project

Your task: Build a three-language site for an international hotel chain.

  1. Install language packs for English, French, and German.
  2. Create content languages for en-GB, fr-FR, and de-DE with SEF prefixes en, fr, de.
  3. Enable the System — Language Filter plugin.
  4. Create three sets of categories (one per language): Rooms/Chambres/Zimmer, Dining/Restauration/Speisen, Contact/Contact/Kontakt.
  5. Write at least one article per category per language (9 articles total).
  6. Associate all articles across languages.
  7. Create three menus (one per language) with associated menu items.
  8. Add the Language Switcher module in the header.
  9. Test full navigation: start in English, switch to French, verify URLs and content change correctly.

This project simulates a real-world multilingual site — the hotel chain example is a common Joomla use case.

What's Next

Now that you can build multilingual sites, you are ready to learn about the most essential Joomla extensions:

Continue to Lesson 24: Essential Extensions — Learn about Akeeba Backup, JCE, K2, RSForm, and other must-have extensions.

Related lessons:

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro