Speedy Translate Lite
Version 3.0.0 Stable
- Maturity
- Stable
- Released on
- Monday, 05 October 2026 14:02
The first release of Speedy Translate Lite, the free edition of Speedy Translate. It translates a whole Joomla 6 site in Joomla's own edit forms and adds nothing to your pages: no credit link, no upgrade banners, no limit on languages. It comes with everything new in Speedy Translate 3.0: a rebuilt translation engine that serves translated pages several times faster than 2.0, in a fraction of the memory; translations that know when their original has changed; hreflang tags, a language switcher with real links and translated URLs; a setup check that makes a site multilingual from the dashboard; and an import from Falang. The release also fixes several security issues of Speedy Translate 2.
Highlight: a free edition with nothing on your pages
- What it translates: articles, categories, menu items, modules, custom fields, tags, contacts, banners, news feeds and users, as well as Solidres and Restaurant Management System content. Solidshop's categories and tags are Joomla's, so it translates them too.
- Machine translation: with your own Google, DeepL or Yandex account, field by field.
- Language strings: search any language file and change a string with INI translations, saved as an override that updates do not undo.
- Nothing added: no link to us on your pages, no banners in the administrator, no limit on languages, and updates from Joomla's updater with no account or Download ID.
- Pro, when you need it: installs over Lite and keeps every translation and setting.
A faster translation engine
- Only what the page shows: a page looks up translations only for the rows it fetched, and only for the fields that have translations. 2.0 loaded every translation of each table on every request, article bodies included.
- Measured: on our benchmark site with 10,000 translated articles, a French page took 345 to 498 ms and 133 MB of memory with 2.0. With 3.0 it takes 41 to 68 ms and under 5 MB. Against Falang 6.9 free on the same site, Speedy Translate is 1.6 to 5.8 times as fast on every page measured and sends 55 to 79% fewer database queries. Lite and Pro run the same code on a visitor's page.
- Each query analysed once: which tables and columns a query reads is worked out once and kept in Joomla's cache, whatever the site's caching setting. System → Clear Cache empties it, and it is rebuilt as pages are visited.
- One database connection: Speedy Translate shares Joomla's connection instead of opening a second one, and keeps its encryption and character set settings. Emoji and other 4-byte characters no longer break on translated pages.
- Nothing extra for visitors: a visitor's page loads only the language switcher's files, without jQuery, and the flag styles of the site's own languages only. The editing scripts load only for users who can translate.
- Language files read once: each language file is parsed once per request, where 2.0 parsed some of them two or three times.
- A smaller package: Google is called directly instead of through its SDK. The package is about 3 MB instead of 8 MB, and the update removes the 30 MB of libraries 2.x left on the site.
Translating content
- Translation status: Batch translations shows each item as translated, outdated or not translated in every language. A translation keeps the original it was made from, so editing the original marks it outdated.
- Outdated in the edit form: the language tab of an outdated translation is marked. Update the translation, or tick Still right for the new original when the change does not affect it.
- Machine translation on request: clicking a language tab no longer calls the provider. Press Translate from en-GB, read the preview, then Use this translation.
- Options per language: a language stores only the module, menu item or article options it changes, so a change made later on the original reaches every language. The update tidies the option groups that 2.x stored whole.
- Fewer flag rows: options picked from a list, radio buttons, numbers and colours get no language tabs, unless a language translates them already. A Latest Articles module had 63 rows of flags.
- Modules: translatable on new installs.
com_modulesis no longer in the default Exclude components. - Users: translations of a user's custom fields are stored. Their tabs showed, but nothing was saved.
- Pages that show the wrong text: the category title on an article and in article lists is translated, the items on a tag page are translated, and a table joined twice in a query (an article's category and its parent) no longer takes the other's title.
- Aliases: an empty alias is never stored, and an alias made from a translated title follows that language's rules (German ü becomes ue). A translation that is just "0" is kept.
- Setup check: Set up your multilingual site on the dashboard installs language packs from Joomla's language server, publishes content languages, turns on the Language Filter and its hreflang tags, and publishes a language switcher, each with one click.
SEO and URLs
- hreflang: in the Speedy mode, every page lists the same page in each published language, plus x-default. The tags follow the System - Language Filter plugin's Add Alternate Meta Tags and Add x-default Meta Tag settings.
- Translated URLs: a translated article, category or tag alias gives the language its own address, with or without IDs in URLs. In 2.0 a translated article alias led to a 404 on Joomla 6. When two items share a translated alias, the category in the URL chooses between them. Contacts, news feeds and the previous and next links use the translated alias too.
- Language switcher: real links that work without JavaScript and appear in the page source, in all four layouts: drop-down, inline, pop-over and off-canvas. It no longer uses jQuery.
- Switcher and caching: the switcher is never served from the module cache. With caching on, every article under a blog linked to the first article's translations.
Machine translation
- Google: accepts a plain API key as well as a service account key. Hebrew, Norwegian and Filipino now reach Google.
- DeepL: its current list of about 120 languages (Portuguese was never translated), with English and Portuguese sent with their region: EN-GB or EN-US, PT-PT or PT-BR.
- Yandex: moves to Yandex Cloud's Translate API. Traditional Chinese is no longer sent to Yandex, which answered in Simplified Chinese.
- Long texts: cut between HTML elements, so headings, lists and tables come back whole. Google and DeepL get long texts in pieces instead of one request that could go over their limits.
- Failures: a piece that fails fails the whole translation, so nothing is saved half translated. Every provider's errors go to
administrator/logs/com_speedytranslate.errors.php, keys masked. Requests have a time limit, and a provider that is busy is asked once more.
Language strings
- Joomla 6 files: INI translations finds Joomla 6's language files, whose names have no language prefix. 2.0 missed most of them, and an override saved from one went to the wrong folder.
- Saving: the page says when a string is saved, and keeps an error in view until the row is saved again. It fits dark mode and phones, and Clear works again.
- Suggest a translation: switches between the suggestion and the original text, and says why no suggestion came. It is offered only for languages a provider can translate into.
Extensions
- Adapters of other extensions: an extension can ship its own Speedy Translate adapter through the
onSpeedyRegisterAdaptersevent, and a page loads only the adapter of its own component. - Restaurant Management System: new. Restaurants, menus, menu groups, dishes, promotions, a restaurant's emails and the texts of a dish's variants, whose prices stay the dish's.
- Solidshop: its categories and tags are translated by Speedy Translate. Solidshop translates its products itself.
- Solidres front-end forms: users who may edit in Solidres get working language tabs and translate button on the site. Other visitors, logged in or not, get neither.
- Falang import: Migrate from Falang previews what it will copy, keeps translations you already have unless you ask to replace them, and reports what it did. It is offered whenever Falang's table exists, even after Falang is removed. With Falang still installed, Speedy Translate loads before Falang's plugins.
Administration
- Dashboard: redesigned, with the tools grouped as Content translation and Language strings, a Status card and Options in the toolbar. It follows Atum's dark mode. The welcome text no longer recommends Falang.
- Administrator's language: the language menu is a drop-down in Atum's header, like the User Menu, also in the More menu and the bar at the bottom of a phone.
- Interface languages: German, Spanish, French, Italian and Dutch join English, and the Hebrew translation is complete.
- Uninstalling: removing the package removes all of its extensions. Before 3.0 it left the plugins and the site module behind, and the system plugin, without its component, stopped every page of the site and the administrator.
- A review request: the dashboard asks once for a review on the Joomla Extensions Directory. Either answer ends it.
Security
- Machine translation requests: were answered for anyone, visitors included, so a stranger could spend a site's translation credits, and the answer could carry script sent in the request. They are now answered only for logged-in users who can edit content, with a form token, and with data only.
- Saving an item: through a form without language tabs, such as a front-end form or the API, could remove its translations. A save now changes only the translations it carries.
- Translations typed in the language tabs: were stored without Joomla's text filters, so a user whose group Joomla filters could store script. They are now filtered as the item's own form filters it, and only fields Speedy Translate translates are stored.
- Batch translations list: a crafted filter could run database commands for a user with access to Speedy Translate. The list now takes only content types an adapter lists.
- Language switchers: the administrator's could print script from a crafted link. Both switchers now escape everything they print.
- Translation preview: markup in a text or in a provider's answer ran in the administrator's page. It is now shown as text.
- Associations mode: saved into the associated items without checking the user's rights. It now asks for the right to edit each item it writes.
- Editing scripts on the site: no longer reach visitors and logged-in customers who cannot edit, with the unpublished translations some of them printed into the page.
- Form tokens: every task that changes data checks one.
- Tools of paid 2.x: the syntax checker's file editor and the overrides import had issues of their own, fixed in Pro 3.0.0. Lite does not include them, and installing Lite over a paid 2.x site removes them.
Going away
- The Falang multilingual mode: removed. A site in that mode stays translated by Falang, with no language tabs in the edit forms, until you use Migrate from Falang, which then switches it to the Speedy mode.
- jQuery on visitors' pages: the language switcher and the administrator's language menu no longer use it, so Speedy Translate loads no jQuery for visitors.
- The switcher's cache options: removed, as in Joomla's own Languages module.
- PostgreSQL: no longer claimed by the manifest. It never worked.
- Old files: the update removes the files no version uses any more, from 1.x and 2.x.
Released alongside
- Speedy Translate Pro 3.0.0: adds ChatGPT, Claude and Gemini, a glossary, a provider per language, bulk translation in the background, coverage statistics, XLIFF, Smart Search in the visitor's language, adapters for commercial extensions, more language string tools, and support. It has its own changelog.
Before you upgrade
- Requirements: Joomla 6.0 or later, PHP 8.3 or later (2.x needed 8.4), and MySQL or MariaDB.
- Take a backup: the update adds two indexes to the
#__translationstable, which takes a moment on a large site, and a table for Pro's bulk translation jobs. - Over a paid 2.x site or Pro: Lite installs over either and keeps every translation and setting. It removes the files of what it does not include: ChatGPT, Claude and Gemini, a provider per language, the glossary, bulk translation, coverage, XLIFF, Smart Search, context translation, the syntax checker, the duplicate, orphan and missing finders, the overrides import and export, and the adapters for HikaShop, J2Store, JEvents, K2, SP Page Builder and Creative Contact Form. Content of those extensions shows in its original language, and a language set to an AI provider gets no machine translation, until Pro is installed again. Saving Lite's options keeps Pro's settings. It is also how a 2.x site without a Pro subscription gets the security fixes of 3.0.
- Updates: once installed, Lite updates from its own update stream, with no Download ID. The install removes Pro's update site, so an update never turns Lite back into Pro.
- Smart Search: installing Lite over Pro removes the entries Pro's Smart Search plugin made. Index again from Smart Search.
- Yandex: keys of the retired Yandex Translate API (starting
trnsl.1.1) stop working. Create an API key for a Yandex Cloud service account with the ai.translate.user role. - hreflang: needs Add Alternate Meta Tags on in the System - Language Filter plugin. The dashboard's setup check turns it on.
- Modules: a site that saved its options keeps its own Exclude components. Take
com_modulesout of it to translate modules. - Template overrides: the language switcher's layouts changed their markup, and the administrator's language menu's pop-over layout is a drop-down now. Redo overrides of either from the new layouts.
- Custom code: calls to Speedy Translate's translation service must send Joomla's form token, as a logged-in user who can edit content.
SPTTranslator::translate()takes the query's tables. Adapters placed in the component's folder still work; they can now ship with their own extension instead. - Never uninstall to switch editions: uninstalling deletes your translations. Install one package over the other.