Hub managers
Language Manager
The Language Manager is where you choose which installed language the hub speaks and where you change individual pieces of wording without editing a file. It is reached from Extensions → Language Manager and has three screens, listed across the top of each of them:
| Sub-navigation | What it is for |
|---|---|
| Installed - Site and Installed - Administrator | The languages installed for each half of the hub, and which one is the default. |
| Content | Content languages, which only matter on a hub running more than one language at once. |
| Overrides | Changing the text behind any language key, per language and per half of the hub. |
On most hubs only the third screen ever gets used. Hubzero ships one language,
en-GB, so there is nothing to choose on the first screen and nothing to
declare on the second; but every hub has wording it wants to change, and the
override editor is the supported way to change it.
That is the reason to remember this component exists. Somebody points at a label on the site — a heading that says Knowledge Base when the lab has always called it the user guide, a button whose wording confuses new members, a message that names a feature the hub does not use — and asks you to change it. The text is not in an article and not in a menu item. It is a string in a language file, and Overrides is where you replace it without editing a file the next upgrade will overwrite.
What it is not
This is not a translation tool and not a content editor. An override replaces one string for one language; it does not translate anything, and it has no effect on articles, resources, group pages, or anything else a member typed. If the words you want to change appear inside a page a person wrote, edit that page. If they appear in the furniture around it — headings, buttons, notices, error messages — they come from a language file and belong here.
The install ships en-GB as the default for both the site and the
administrator interface, which is the only sensible setting on a hub with one
language installed. Nothing on the first two screens needs your attention
until a second language pack arrives.
Languages in the developers book covers the other half of the subject: where an extension's INI files live, how keys are named, and when they are loaded. Read it if you are about to write an override — you need the key, and that page explains how keys are built.
Installed languages
Installed - Site and Installed - Administrator are the same screen with
the client switched. Each lists the language packs installed for that half of
the hub, one row each, read from the extensions table and from the language's
own <tag>.xml metafile:
| Column | Meaning |
|---|---|
| Num | Row number. |
| Language | The language's name, from its metafile. |
| Language Tag | The tag, such as en-GB. This is also the directory name. |
| Location | Site or Administrator, matching the screen you are on. |
| Default | Whether this is the language that half of the hub uses. |
| Version, Date, Author, Author Email | From the metafile. |
Only enabled language packs are listed. A pack whose metafile is missing or unreadable is still shown — greyed as archived, with the tag repeated in place of the name and the metafile columns empty — but it offers no radio button, so it cannot be made the default. That state means the extensions table has a row for a language whose files are not on disk.
To change the default, select the radio button on a row and press Default in the toolbar. The setting is stored on the component itself, one value for each client, so the site and the administrator interface can differ.
The toolbar's Install Language button links to com_installer, which has
no language-specific screen; it lands on the Extension Manager's Manage
list. Install a language pack the same way as any other extension, through
Extension Manager.
Content languages
A content language is a row in a table saying "this hub publishes content in this language, under this URL code". It exists for the multilingual setup: the System - Language Filter plugin reads content languages to decide which URL prefixes are valid, and a language switcher module offers the published ones to visitors. On a single-language hub the screen has no effect on anything and can be left alone.
The list shows title, native title, language tag, URL language code, image prefix, status, ordering, access level, whether the language has a home page, and the row ID. The edit form takes:
| Field | Meaning |
|---|---|
| Title | The name shown in lists. |
| Title Native | The name in the language itself. |
| URL Language Code | Appended to the site URL — /en/ with SEF on, &lang=en with it off. Must be unique. |
| Language Tag | The exact tag of the installed language pack this row stands for. |
| Image Prefix | Prefix of the flag image the language switcher uses. |
| Status | Published, unpublished, or trashed. |
| Access | The viewing level the language is offered to. |
| Description, Metadata Options, Custom Site Name | Per-language metadata, and a site name that replaces the global one for this language. |
The component also carries a multilingual status panel, listing whether the
language filter plugin is on, how many switcher modules are published, and
whether each published content language has a home page. It is reached from
mod_multilangstatus, an administrator module, but that module's link is
wrong and the panel's own layout reads variables the controller never sets, so
it does not render usefully. Treat the feature as unfinished.
Overrides
This is the screen worth knowing. An override replaces the text behind one
language key, for one language and one half of the hub, without touching a
shipped file — so it survives an upgrade, where editing
core/components/com_blog/site/language/en-GB/en-GB.com_blog.ini would not.
Overrides are as safe as an administrative change gets. Each one is a line in a text file, it takes effect on the next page load, and deleting it puts the shipped wording straight back. Nothing is lost and nothing needs a rebuild, so this is a screen you can try things on.
Open Extensions → Language Manager → Overrides. The drop-down at the top right picks which file you are editing, as a language and location pair — English (United Kingdom) - Site, English (United Kingdom) - Administrator, and so on for every installed language. The list below shows the overrides already in that file, by Constant and Text, with a search box that matches either.
To add one, press New:
| Field | What to put in it |
|---|---|
| Language Constant | The key whose text you are replacing, such as COM_BLOG_BROWSE. |
| Text | The replacement. Keep any %s, %d or %1$s placeholders — the hub substitutes values into them, and dropping one changes what the sentence says. |
| For both locations | Only offered when editing an administrator override. Writes the same override into the site file as well, which some plugins need because their strings are loaded on both sides. The two copies are independent afterwards. |
| Language, Location, File | Read-only. They tell you which file is about to be written. |
The right-hand panel searches for a key when you do not know it. Type the text
you can see on the page, choose whether you are searching Constant names or
Value text, press Search, and click a result to drop its constant into
the form. That search runs against a database table the screen fills the first
time you use it, by reading every INI file under core/ and app/ for the
selected language — expect a pause, and a Please wait while the cache is
recreated notice, on the first search after a change of language or location.
Changing a piece of wording, start to finish
The hub's knowledge base is headed Knowledge Base, and the group that runs the hub has called the same thing the user guide since before there was a hub. You do not know the key, only the words on the screen.
- Open Extensions → Language Manager → Overrides.
- Set the drop-down at the top right to English (United Kingdom) - Site. The wording is on the public site, so it is the site file you want; the administrator file is a different file and changing it would do nothing here.
- Press New.
- In the search panel on the right, choose Value, type
Knowledge Base, and press Search. Wait through the Please wait while the cache is recreated notice the first time. - Look down the results for the constant whose value is exactly the words you
are replacing —
COM_KB— and click it. The constant drops into Language Constant. - Type
User Guideinto Text. - Select Save & Close.
- Load the knowledge base on the site and check the heading. It changes immediately; there is no cache to clear.
If it did not change, the words you saw came from a different constant. The value search often returns several near-identical strings, because the same phrase is defined by more than one extension. Go back, look for another candidate, and add a second override; a wrong override changes nothing you can see, and you can delete it.
Overrides are written to a plain INI file per language and client:
app/bootstrap/site/language/overrides/en-GB.override.ini
app/bootstrap/administrator/language/overrides/en-GB.override.ini
The translator merges that file over the shipped strings on every request, so an override takes effect immediately. Deleting an override rewrites the file without it and clears the cache.
Permissions
The Options button opens the component's permissions grid — Configure, Access Administration Interface, Create, Delete, Edit, Edit State — and nothing else. There are no other settings. The screens themselves check those rules: the override editor's Save needs Edit or Create, Delete needs Delete, and the Default button on the installed list needs Edit State.
Rewritten and checked against 2.4-main @ 009ec973b7 on 2026-09-10.