AutoLingo for Joomla documentation
Version 1.1.37 · Joomla 4, 5 & 6 · PHP 8.0+
How to install, configure and use the AutoLingo Translation plugin to translate Joomla articles, categories, custom fields and menus automatically with DeepL, Google Translate, Microsoft Translator, OpenAI or DeepSeek.
Requirements
- Joomla 4.x, 5.x or 6.x, PHP 8.0 or later.
- A multilingual Joomla site: at least two published content languages (System → Manage → Content Languages) and the System - Language Filter plugin enabled.
- To link translations together (language switcher), turn on Item Associations in the Language Filter plugin.
- The plugin’s administrator screens are available in English, French and German, following your administrator account’s language.
- An API key from one provider: DeepL (Free or Pro), Google Cloud Translation, Microsoft Translator, OpenAI or DeepSeek. You pay the provider directly; we add no markup.
Installation
- Download the ZIP from the link you received after purchase.
- In the Joomla administrator, go to System → Install → Extensions and upload the ZIP.
- Go to System → Manage → Plugins, search for “AutoLingo” and enable “AutoLingo Translation” (group
content). - Open the plugin to configure it (next section).
Configuration
All settings live in the plugin (System → Manage → Plugins → AutoLingo Translation), split into tabs.
Translation provider
Pick a provider and enter its API key. If you fill in other keys, AutoLingo uses them when the selected provider runs out of quota (“Use the other providers when a quota runs out”, on by default): with free DeepL, Microsoft and Google accounts, that is about 3,000,000 free characters a month.
| Provider | Key | Notes |
|---|---|---|
| DeepL | DeepL API key | Free or Pro detected automatically (Free keys end with :fx). The only provider that supports glossaries and formality. |
| Google Translate | Google Cloud Translation API key | Native HTML translation, widest language coverage. |
| OpenAI | sk-… key | Uses gpt-4o-mini; HTML tags are preserved. |
| DeepSeek | DeepSeek API key | Uses deepseek-chat. |
| Microsoft Translator | Azure AI Translator key + region (empty for a global resource) | Free tier: 2,000,000 characters a month. |
Languages
- Source language: the language you write in (e.g.
en-GB). The list shows your published content languages. - Target languages: tick one or more languages to translate into (e.g.
fr-FR,de-DE).
Behaviour
- Auto-translate on save: on by default. Turn it off to translate only with the bulk buttons.
- Credit alert threshold (DeepL): after a translation, a warning appears in the administrator when fewer characters than this are left on your DeepL quota. 0 turns the check off.
- DeepL glossary and DeepL formality: see below.
How it works
When you save an article whose language is the source language, AutoLingo translates it into every target language. Articles set to “All” languages, and articles written in any other language, are left alone.
What gets translated
- Title, intro text, full text, meta description and meta keywords.
- Published custom fields of type Text, Textarea and Editor.
- The article’s category: if it is in the source language, it is translated (along with its parent categories) and associated. Categories set to “All” languages are shared as they are.
The translated article
- It copies the original’s publishing state, access level, author, publishing dates, images and links. It is not marked as featured.
- Its alias comes from the translated title plus a language suffix (e.g.
my-article-frfr). - It is linked to the original through Joomla associations, so the language switcher points to the right page.
Later saves
- When you edit the original, the existing translation is updated (no duplicates).
- If the text hasn’t changed, no API call is made.
- If you edited a translation by hand, AutoLingo doesn’t overwrite it: your corrections are kept.
Translation happens during the save, so saving a long article into several languages can take a few seconds. A provider error never stops the article from being saved.
Translating existing articles
For a site that already has content, use the plugin’s Existing Content tab:
- Audit counts source-language articles and missing translations, without any API call.
- Translate All Articles processes every source-language article that isn’t trashed, in batches of 5. Keep the page open until it finishes.
Unchanged articles and hand-edited translations are skipped, so running it again costs nothing extra.
Unlinked translations (sites that ran version 1.1.31 or earlier)
Up to version 1.1.31, when Item Associations was on, every save from the editor created a new translation that wasn’t linked to the original: the language switcher didn’t connect them and translated menus pointed to the original. Since version 1.1.36:
- Audit tells you how many missing translations are really unlinked ones.
- Repair Links re-links, for each article, the last translation AutoLingo wrote, without any API call. Older copies are not deleted: each appears once in the Log tab as a possible duplicate, for you to review and move to the trash.
- Simply saving the source article also repairs its link instead of creating one more copy.
- Then run Translate All Menus again so menus point to the translations.
Keeping words untranslated
Wrap a brand name, a product code or any passage that must stay as written:
[notranslate]Colibri Studio[/notranslate]: the text is kept as it is in every translation, and the markers are not shown on the site.<span translate="no">Colibri Studio</span>: standard HTML, invisible to your visitors.
Image alt and title text inside your articles is translated with the rest. AutoLingo also tells the provider what it translates (article, category, menu item), so short texts come out right.
DeepL glossary
A glossary forces a fixed translation for specific terms (brand names, industry vocabulary). It requires the DeepL provider.
- In the Behaviour tab, enter one term per line as
Source term | Target term. Lines starting with#are ignored. - Save the plugin.
- Click Sync to DeepL. One glossary is created per target language.
Sync again whenever you change the term list.
DeepL formality
Choose the tone: Default, More formal, Less formal, or Prefer formal / informal (falls back to default when the language doesn’t support it). This setting only applies with DeepL, for German, French, Italian, Spanish, Dutch, Polish, Portuguese, Russian and Japanese.
Troubleshooting
Nothing happens on save
- Is the plugin enabled?
- Is the article’s language exactly the configured source language (not “All”)?
- Is “Auto-translate on save” turned on?
- Is the API key for the selected provider filled in?
Log
The plugin’s Log tab lists the 100 most recent translations and errors (invalid key, quota exceeded, provider error), with the date, the article and the language. Turn on Errors only to see just the problems. Entries older than 30 days are deleted automatically. Include the latest rows when you contact support.
Rate limits
If DeepL answers “too many requests” (HTTP 429), AutoLingo retries automatically up to 3 times with an increasing delay.
Uninstalling
Uninstalling removes the plugin’s tables (log and translation state). Translated articles, categories and menus stay in place.
Need help?
Questions, bugs or feature requests: we reply within 24–48 h (business days).
Contact support