RTC bug PR-6.0-dev Pending

User tests: Successful: Unsuccessful:

avatar joomdonation
joomdonation
1 Feb 2026

Pull Request for Issue # .

Summary of Changes

In Joomla 5.4 and earlier, language passed via lang variable is always used (takes highest priority) in language filter plugin (see https://github.com/joomla/joomla-cms/blob/5.4-dev/plugins/system/languagefilter/src/Extension/LanguageFilter.php#L412).

In Joomla 6.0, due to the change in this PR #43858, if Remove URL Language Code parameter set to Yes in System - Language Filter plugin, Joomla will use default language if it could not detect language from sef URL, not respect the language passed in lang variable when it is passed. This PR just fixes that wrong (backward incompatible) change.

Testing Instructions

  • Uses Joomla 6.0 (any version)
  • Setup a multilingual website with two languages (default is English and one additional language like German). You can Sample Data - Multilingual to setup test site faster if needed.
  • Go to System -> Plugins, find System - Language Filter plugin, set Remove URL Language Code parameter to Yes
  • Access to homepage of your site and appends ?lang=de to URL, for example http://localhost/joomla/index.php?lang=de

Actual result BEFORE applying this Pull Request

  • The site in default language (English in this case is displayed). It ignore the language passed in lang variable (when lang is passed, site should be displayed in the passed language - German in this example, same behavior with Joomla 5.4 and earlier)

Expected result AFTER applying this Pull Request

  • Site is displayed in the expected language passed via lang variable in URL (German in this example) like in Joomla 5.4 and earlier Joomla version

Link to documentations

Please select:

  • Documentation link for docs.joomla.org:

  • No documentation changes for docs.joomla.org needed

  • Pull Request link for manual.joomla.org:

  • No documentation changes for manual.joomla.org needed

avatar joomdonation joomdonation - open - 1 Feb 2026
avatar joomdonation joomdonation - change - 1 Feb 2026
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 1 Feb 2026
Category Front End Plugins
avatar exlemor
exlemor - comment - 1 Feb 2026

@joomdonation is it because my test website is in a subfolder that

https://www.domain.com/_j6b2n/index.php?lang=fr - shows French version
https://www.domain.com/_j6b2n/index.php?lang=en - shows English version

WITHOUT the PR applied while having the System - Language Filter plugin --> set Remove URL Language Code parameter to Yes or is it because I have the Language Filter settings set this way (beyond the Remove URL Language Code set to Yes I mean)

ScreenFloat Shot of Safari on 2026-02-01 at 20-16-08

Thanks for the clarification :)

avatar joomdonation
joomdonation - comment - 2 Feb 2026

Thanks @exlemor for testing. No, sub-folder is not effected because that happens on my local Joomla installation, too and I can clearly see the issue by code reading. It is strange that it is working OK on your test site. Just want to be sure, the site is a fresh Joomla 6 installation (because the issue only happens with Joomla 6, it works well on Joomla 5.4 and earlier)

avatar ceford ceford - test_item - 3 Feb 2026 - Tested successfully
avatar ceford
ceford - comment - 3 Feb 2026

I have tested this item ✅ successfully on 130a29a


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/46810.

avatar mariantanase mariantanase - test_item - 3 Feb 2026 - Tested successfully
avatar mariantanase
mariantanase - comment - 3 Feb 2026

I have tested this item ✅ successfully on 130a29a

Site is displayed correctly in the expected language passed via lang variable in URL, in my case italian language (/index.php?lang=it).
Thanks


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/46810.

avatar exlemor
exlemor - comment - 3 Feb 2026

Thanks @exlemor for testing. No, sub-folder is not effected because that happens on my local Joomla installation, too and I can clearly see the issue by code reading. It is strange that it is working OK on your test site. Just want to be sure, the site is a fresh Joomla 6 installation (because the issue only happens with Joomla 6, it works well on Joomla 5.4 and earlier)

Hi @joomdonation, it is a Joomla 6 Nightly Site from the day before, and I just retested and it works without the PR applied. :/

avatar joomdonation
joomdonation - comment - 4 Feb 2026

Hi @joomdonation, it is a Joomla 6 Nightly Site from the day before, and I just retested and it works without the PR applied.

That's strange because I can see the issue, both by actual test and code reading :). @Fedik @Hackwar You two worked on the most recent changes for the plugin, would be great if you could do a code review for this PR. Thanks.

avatar Fedik
Fedik - comment - 4 Feb 2026

Hm, I do not see how this changes may work.

The default lang will be overrided in few line down, when it is correct:

// The language was set both per SEF path and per query parameter. Query parameter takes precedence
if ($lang && isset($this->sefs[$sef])) {
$uri->setVar('lang', $lang);
$router->setTainted();
}

With your changes for URL with ?lang=foobar the default language will not be set.

I did not tested, just looking the code. Maybe I missed something.

avatar joomdonation
joomdonation - comment - 4 Feb 2026

The default lang will be overrided in few line down, when it is correct:

For a none SEF URL like https://domain.com/index.php?option=com_name&task=do_something&lang=de for example, $sef is empty, so isset($this->sefs[$sef]) return false, so lang is not set in that block

In my specific case, there is AJAX post request made to a none SEF url like above, the wrong language is use and cause wrong behavior.

avatar Fedik
Fedik - comment - 4 Feb 2026

Okay, then it seems makes sense.

avatar joomdonation
joomdonation - comment - 4 Feb 2026

Okay, then it seems makes sense.

Thanks

avatar joomdonation joomdonation - change - 4 Feb 2026
Status Pending Ready to Commit
avatar joomdonation
joomdonation - comment - 4 Feb 2026

RTC


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/46810.

avatar Bodge-IT Bodge-IT - change - 4 Feb 2026
Labels Added: RTC bug PR-6.0-dev
avatar Bodge-IT Bodge-IT - change - 5 Feb 2026
Status Ready to Commit Fixed in Code Base
Closed_Date 0000-00-00 00:00:00 2026-02-05 11:10:25
Closed_By Bodge-IT
avatar Bodge-IT Bodge-IT - close - 5 Feb 2026
avatar Bodge-IT Bodge-IT - merge - 5 Feb 2026
avatar Bodge-IT
Bodge-IT - comment - 5 Feb 2026

Thanks for the fix @joomdonation and thanks @mariantanase and @ceford for time offered for testing

avatar joomdonation
joomdonation - comment - 5 Feb 2026

Thanks to all !

Add a Comment

Login with GitHub to post a comment