Documentation: Autolanguage plugin
Changelog
Autolanguage PRO plugin - v2.6.0 5 6
2 September 2026
- Addition: new "Fields to Update" option for articles, categories, menu items, modules, tags and mail templates. Set it to "Only the selected fields" and an update of an existing translation writes nothing but the fields ticked under "Translatable Fields". Until now every unselected field was copied over from the source item in its original language, so a finished set of translations could not be given a meta description without their title and text being replaced by the source text at the same time. In this mode tags, custom fields, the workflow stage and the module menu assignment of the existing translation are left alone as well. The default keeps the previous behaviour
- Fix: a translation is no longer lost when it comes out longer than the field it has to fit in. Joomla stores an article title in 255 characters, and Russian, Spanish and Portuguese generally run longer than the English original, so a title close to that limit failed with "Data too long for column title" and that language was skipped while the others went through. Every translated value is now shortened to what the field holds, counted in characters so accented and Cyrillic text is measured correctly, and the log names the field and the language that was shortened. Applies to articles, categories, menu items, modules, tags and mail templates
- Fix: long API keys were cut off while you pasted them. Since 2.5.0 the key fields are hidden password fields, and Joomla gives such a field a limit of 99 characters unless the extension says otherwise, so the browser silently dropped everything past the 99th character. An Anthropic key is 108 characters and an OpenAI project key is longer still, so those never arrived complete and the service answered with an authorisation error. All nine key fields now allow 255 characters. Enter your key again if you added or changed one under 2.5.0
- Fix: custom field values on articles and categories were translated even with "Custom Fields" left unticked under "Translatable Fields". The setting is now honoured: the values are still copied to the translation, but in their original language, which is what the option has always described
Autolanguage plugin - v2.6.0 5 6
2 September 2026
- Addition: new "Fields to Update" option for articles, categories, menu items, modules, tags and mail templates. Set it to "Only the selected fields" and an update of an existing translation writes nothing but the fields ticked under "Translatable Fields". Until now every unselected field was copied over from the source item in its original language, so a finished set of translations could not be given a meta description without their title and text being replaced by the source text at the same time. In this mode tags, custom fields, the workflow stage and the module menu assignment of the existing translation are left alone as well. The default keeps the previous behaviour
- Fix: a translation is no longer lost when it comes out longer than the field it has to fit in. Joomla stores an article title in 255 characters, and Russian, Spanish and Portuguese generally run longer than the English original, so a title close to that limit failed with "Data too long for column title" and that language was skipped while the others went through. Every translated value is now shortened to what the field holds, counted in characters so accented and Cyrillic text is measured correctly, and the log names the field and the language that was shortened. Applies to articles, categories, menu items, modules, tags and mail templates
- Fix: long API keys were cut off while you pasted them. Since 2.5.0 the key fields are hidden password fields, and Joomla gives such a field a limit of 99 characters unless the extension says otherwise, so the browser silently dropped everything past the 99th character. An Anthropic key is 108 characters and an OpenAI project key is longer still, so those never arrived complete and the service answered with an authorisation error. All nine key fields now allow 255 characters. Enter your key again if you added or changed one under 2.5.0
- Fix: custom field values on articles and categories were translated even with "Custom Fields" left unticked under "Translatable Fields". The setting is now honoured: the values are still copied to the translation, but in their original language, which is what the option has always described
Autolanguage PRO plugin - v2.5.0 5 6
1 September 2026
- Addition: new "API timeout" option in the Service tab sets the maximum duration of a single translation request for all drivers (10-600 seconds, default 180)
- Security: batch translation now checks whether you actually have rights on the component you are translating, so it can no longer be used to create content somewhere you have no access to
- Security: API keys are now hidden fields in the configuration screen instead of plain readable text
- Security: after a batch translation without a selection you are returned to a checked page instead of an unverified web address
- Security: error messages from the translation services are no longer written to the log with their full response, which could contain your content
- Security: the helper plugin for update logging is only installed when the update server supplies a valid checksum for it, and only from the Joomill update server
- Fix: nested categories deeper than one level were created inside the source language tree instead of under their translated parent. Associations created during a translation run were only written to the database at the very end of the request, so a child could not yet see the translation of the parent that had just been created in the same run. The plugin now keeps those associations available for the rest of the request. The same fix applies to nested menu items, nested tags, articles placed in an associated category, module menu assignments and translated links in articles, modules and mail templates
- Fix: a batch translation now processes categories, menu items and tags top down instead of in the order the list view happened to post them, so a parent is always translated before its children
- Fix: API keys pasted from a provider's website are now cleaned of invisible characters. Copying a key from a styled page can drag along a non-breaking space, a zero width space, a byte order mark or a line break, none of which are visible in the input field and none of which were removed before. Such a key was rejected as unauthorised by every service, and for DeepL it also broke the detection of the `:fx` suffix, which sent a Free key to the Pro endpoint. Applies to all translation services
- Fix: the subject line of a YOOtheme Builder form is translated again. The list of translatable YOOtheme properties held `email_subjec` instead of `email_subject`, so that one property never matched anything and always kept its source language
- Fix: a translation run no longer leaves fields in their source language when the translation service briefly refuses more requests. Every field is sent as its own request, so a batch of a few articles into several languages reaches the rate limit of Google or Microsoft quickly, and until now such a field silently kept its original text. A refused request is now repeated up to three times, waiting the delay the service itself asks for, and the message names the limit instead of quoting the raw error from the service. A field that still fails keeps its original text and is updated by running the translation again. Refusals that waiting cannot solve, such as an exhausted monthly quota or an invalid key, are not repeated
- Fix: translations no longer fail with "Connection Error: Operation timed out after 30002 milliseconds" on OpenAI. The cURL request timeout was hardcoded (30 seconds for OpenAI) and is unaffected by the PHP max_execution_time setting
- Fix: the PRO-only settings in the free version showed an upgrade badge with no text next to it. Joomla puts every field description behind the inline help toggle, which leaves the badge without the one sentence explaining what it unlocks. Those fields now render their own description, always visible
- Fix: the model dropdowns for OpenAI, Mistral, Anthropic, Gemini, xAI and DeepSeek, and the DeepL credits notice, showed "Error: Plugin settings not found (Check DB name)" while the plugin was still disabled. They asked Joomla for the plugin, which only hands back enabled ones, instead of reading the saved settings. The message also pointed at the database prefix, which had nothing to do with it
- Change: when a category has no translated parent, the translation is placed at root level of the target language instead of inside the source language tree, and a warning is written to the log. Menu items and tags already behaved this way and now log the same warning
- Change: all translation drivers now also set an explicit 15 second connect timeout, so an unreachable API endpoint fails fast instead of consuming the full request timeout
Autolanguage plugin - v2.5.0 5 6
1 September 2026
- Addition: new "API timeout" option in the Service tab sets the maximum duration of a single translation request for all drivers (10-600 seconds, default 180)
- Security: batch translation now checks whether you actually have rights on the component you are translating, so it can no longer be used to create content somewhere you have no access to
- Security: API keys are now hidden fields in the configuration screen instead of plain readable text
- Security: after a batch translation without a selection you are returned to a checked page instead of an unverified web address
- Security: error messages from the translation services are no longer written to the log with their full response, which could contain your content
- Security: the helper plugin for update logging is only installed when the update server supplies a valid checksum for it, and only from the Joomill update server
- Fix: nested categories deeper than one level were created inside the source language tree instead of under their translated parent. Associations created during a translation run were only written to the database at the very end of the request, so a child could not yet see the translation of the parent that had just been created in the same run. The plugin now keeps those associations available for the rest of the request. The same fix applies to nested menu items, nested tags, articles placed in an associated category, module menu assignments and translated links in articles, modules and mail templates
- Fix: a batch translation now processes categories, menu items and tags top down instead of in the order the list view happened to post them, so a parent is always translated before its children
- Fix: API keys pasted from a provider's website are now cleaned of invisible characters. Copying a key from a styled page can drag along a non-breaking space, a zero width space, a byte order mark or a line break, none of which are visible in the input field and none of which were removed before. Such a key was rejected as unauthorised by every service, and for DeepL it also broke the detection of the `:fx` suffix, which sent a Free key to the Pro endpoint. Applies to all translation services
- Fix: the subject line of a YOOtheme Builder form is translated again. The list of translatable YOOtheme properties held `email_subjec` instead of `email_subject`, so that one property never matched anything and always kept its source language
- Fix: a translation run no longer leaves fields in their source language when the translation service briefly refuses more requests. Every field is sent as its own request, so a batch of a few articles into several languages reaches the rate limit of Google or Microsoft quickly, and until now such a field silently kept its original text. A refused request is now repeated up to three times, waiting the delay the service itself asks for, and the message names the limit instead of quoting the raw error from the service. A field that still fails keeps its original text and is updated by running the translation again. Refusals that waiting cannot solve, such as an exhausted monthly quota or an invalid key, are not repeated
- Fix: translations no longer fail with "Connection Error: Operation timed out after 30002 milliseconds" on OpenAI. The cURL request timeout was hardcoded (30 seconds for OpenAI) and is unaffected by the PHP max_execution_time setting
- Fix: the PRO-only settings in the free version showed an upgrade badge with no text next to it. Joomla puts every field description behind the inline help toggle, which leaves the badge without the one sentence explaining what it unlocks. Those fields now render their own description, always visible
- Fix: the model dropdowns for OpenAI, Mistral, Anthropic, Gemini, xAI and DeepSeek, and the DeepL credits notice, showed "Error: Plugin settings not found (Check DB name)" while the plugin was still disabled. They asked Joomla for the plugin, which only hands back enabled ones, instead of reading the saved settings. The message also pointed at the database prefix, which had nothing to do with it
- Change: when a category has no translated parent, the translation is placed at root level of the target language instead of inside the source language tree, and a warning is written to the log. Menu items and tags already behaved this way and now log the same warning
- Change: all translation drivers now also set an explicit 15 second connect timeout, so an unreachable API endpoint fails fast instead of consuming the full request timeout
Autolanguage PRO plugin - v2.4.2 5 6
1 August 2026
- Fix: when Translation Method is set to Batch, "Update Existing Translations" is now always treated as Yes for every content type and the option is hidden from the config screen (it only applies to, and is only shown for, the Upon Saving method)
- Change: dlid prefix to key
- Change: PHP file headers updated to the standard Joomla docblock copyright format; code style only, no functional changes
- Change: full code style pass against the Joomla CMS phpcs ruleset (PSR-12): phpcbf auto-fixes for indentation, line endings, brace placement and whitespace, plus phpcs annotations for deliberate exceptions (`_JEXEC` guards, legacy global class names, legacy API naming). Code style only, no functional changes
- Language: es-ES language (thanks to Andrés Restrepo | alamarte.com)
Autolanguage plugin - v2.4.2 5 6
1 August 2026
- Fix: when Translation Method is set to Batch, "Update Existing Translations" is now always treated as Yes for every content type and the option is hidden from the config screen (it only applies to, and is only shown for, the Upon Saving method)
- Change: PHP file headers updated to the standard Joomla docblock copyright format; code style only, no functional changes
- Change: full code style pass against the Joomla CMS phpcs ruleset (PSR-12): phpcbf auto-fixes for indentation, line endings, brace placement and whitespace, plus phpcs annotations for deliberate exceptions (`_JEXEC` guards, legacy global class names, legacy API naming). Code style only, no functional changes
- Language: es-ES language (thanks to Andrés Restrepo | alamarte.com)
Autolanguage PRO plugin - v2.4.1 5 6
8 July 2026
- Addition: Downloads from the Joomill update server now include diagnostic request headers with site and environment information
Autolanguage plugin - v2.4.1 5 6
8 July 2026
- Addition: Downloads from the Joomill update server now include diagnostic request headers with site and environment information
Autolanguage PRO plugin - v2.4.0 5 6
2 July 2026
- Addition: The Help button now links to the Joomill documentation page
- Addition: Support for plugin lazy loading
- Addition: Review request banner
- Change: The installer script now implements InstallerScriptInterface
- Fix: Bug in #__history table (Joomla 5 only)
Autolanguage plugin - v2.4.0 5 6
2 July 2026
- Addition: The Help button now links to the Joomill documentation page
- Addition: Support for plugin lazy loading
- Change: The installer script now implements InstallerScriptInterface
- Fix: Bug in #__history table (Joomla 5 only)
Autolanguage plugin - v2.3.0 5 6
8 June 2026
- Change: Updated to current Joomla standards for forward compatibility.
- Security: Added CSRF protection to the batch translate action.
- Security: Hardened redirect handling to prevent open-redirect issues.
- Fix: Various stability and compatibility fixes across all translation engines.
Autolanguage PRO plugin - v2.3.0 5 6
8 June 2026
- Addition: Custom translation instructions for AI engines Tell the AI how to translate: set the tone of voice, keep brand names or product terms untranslated, or enforce a regional spelling. Works with OpenAI, Anthropic (Claude), Gemini, Mistral, DeepSeek and xAI (Grok).
- Addition: DeepL Translation Memory support. Reuse your saved DeepL translations for more consistent results.
- Addition: DeepL custom instructions and glossary improvements including improved HTML tag handling for cleaner translated content.
- Change: Smarter DeepL language handling. Formality and custom instructions are now only sent for the languages DeepL actually supports, so translating into other languages keeps working instead of failing.
- Change: OpenAI model compatibility. Support for newer models that only accept the default temperature setting.
- Change: Updated to current Joomla standards for forward compatibility.
- Security: Added CSRF protection to the batch translate action.
- Security: Hardened redirect handling to prevent open-redirect issues.
- Fix: Various stability and compatibility fixes across all translation engines.
Autolanguage PRO plugin - v2.2.0 5 6
17 May 2026
- Addition: Deepseek as a translation engine
- Fix: Prevent "MySQL server has gone away" error by extend MySQL session timeout and implement reconnection logic
Autolanguage PRO plugin - v2.1.0 5 6
11 April 2026
- Addition: Dictionary support
- Addition: Mistral AI as a translation engine with model selection
- Addition: Google Gemini as a translation engine
- Addition: xAI / Grok as a translation engine
- Fix: Refine Autolanguage conditions to block YOOtheme template pages when using 'save' translation method.
Autolanguage plugin - v2.1.0 5 6
11 April 2026
- Addition: Dictionary support PRO version only
- Addition: OpenAI / ChatGPT as a translation engine with model selection
- Addition: Mistral AI as a translation engine with model selection
- Addition: Google Gemini as a translation engine PRO version only
- Addition: xAI / Grok as a translation engine PRO version only
- Fix: Refine Autolanguage conditions to block YOOtheme template pages when using 'save' translation method.
Autolanguage plugin - v2.0.0 5 6
14 March 2026
- Addition: Batch Translate mode
- Addition: Loggerservice
Autolanguage PRO plugin - v2.0.0 5 6
14 March 2026
- Addition: Batch Translation mode
- Addition: Anthropic Claude as a translation engine with model selection
- Addition: YOOtheme Pro: translation of JSON-embedded content with layout preserved
- Addition: Configurable default status (published / unpublished / draft) for all content types
- Addition: Download ID field in the install package for automatic updates
- Fix: Module translations now correctly linked via com_modules.module context (ready for Joomla 6.1)
- Change: Settings screen: clearer field layout and conditional visibility
- Change: Language selection list is more concise and user-friendly
Autolanguage PRO plugin - v1.1.0 5 6
14 February 2026
- Addition: Add Target Languages in Configuration
- Addition: Add manual language filtering support on an item-by-item basis
- Addition: DeepL: Show remaining credits after processing option
- Addition: Enhanced Debugging & Logs
Autolanguage plugin - v1.0.1 5 6
12 February 2026
- Fix: HTML entities
Autolanguage PRO plugin - v1.0.2 5 6
12 February 2026
- Fix: HTML entities
Autolanguage PRO plugin - v1.0.1 5 6
8 February 2026
- Change: Deepl formality to prefer more or less to avoid error messages
Autolanguage PRO plugin - v1.0.0 5 6
8 February 2026
- Addition: First release
Autolanguage plugin - v1.0.0 5 6
8 February 2026
- Addition: First release