Page MenuHomePhabricator

Fix language code for special wikis in SiteMatrixLookup
Closed, ResolvedPublic

Description

There is apparent inconsistency in the language codes returned by SiteLookup and other services, and our new SiteMatrixLookup implementation creates outputs which don't match the legacy service, but it's currently unknown which of the results is "correct". We will try to choose the best value, once we understand how to construct it.

Here are the results seen today on a few special wikis:

dbname$wgLanguageCodelegacy SiteLookup languagenew SiteLookup languageSiteMatrix API special lang
metawikienenmetameta
mediawikiwikienenmediawikimediawiki
aewikimediaenenenen
arbcom_nlwikinlennlnl

Acceptance criteria

  • SiteMatrixLookup language should match $wgLanguageCode for each wiki.

While we clean this up, there are some other gaps that can be filled:

  • language code is not exported by SiteExporter
  • language code is unnecessarily validated in Site.php, invoking an ad-hoc service which makes the class untestable with unit tests. Validation should be the responsibility of an input layer such as SiteImporter.

Event Timeline

awight updated the task description. (Show Details)

Change #1344535 had a related patch set uploaded (by Awight; author: Awight):

[mediawiki/core@master] Start exporting Site language code

https://gerrit.wikimedia.org/r/1344535

The tasks are related, but the SiteLookup part of the work is to correctly report $wgLanguageCode in the corresponding Site, and T301236 is about fixing incorrect $wgLanguageCode for these wikis. The fixes will be complementary: once the language code configuration is correct, then SiteLookup will be able to report the language.

awight updated the task description. (Show Details)

Change #1344600 had a related patch set uploaded (by Awight; author: Awight):

[mediawiki/extensions/SiteMatrix@master] [WIP] Return actual language code

https://gerrit.wikimedia.org/r/1344600

Change #1344608 had a related patch set uploaded (by Awight; author: Awight):

[mediawiki/core@master] [WIP] Extract service depenencies into SiteSanitizer

https://gerrit.wikimedia.org/r/1344608

Change #1344681 had a related patch set uploaded (by Awight; author: Awight):

[mediawiki/extensions/Wikibase@master] Site tests can become unit

https://gerrit.wikimedia.org/r/1344681

Change #1344683 had a related patch set uploaded (by Awight; author: Awight):

[mediawiki/extensions/SiteMatrix@master] Site tests can become units

https://gerrit.wikimedia.org/r/1344683

I finally see the punchline. T301236 is correct, the language codes are being configured incorrectly and we're silently relying on a fallback to English. What happens is that wmf-config/InitialiseSettings.php includes the $wgLanguageCode setting 'default' => '$lang', and $lang is not what it seems. This is sometimes called the "minor" part of the site name and although it's generally (not always) correct to use this for Wikipedias and other projects with language-based editions, it fails for wikis like metawiki or votewiki, where the minor part of the name is just a name and not a language.

Change #1345090 had a related patch set uploaded (by Awight; author: Awight):

[mediawiki/extensions/SiteMatrix@master] Do not respond with invalid language codes

https://gerrit.wikimedia.org/r/1345090

Change #1345090 merged by jenkins-bot:

[mediawiki/extensions/SiteMatrix@master] Do not respond with invalid language codes

https://gerrit.wikimedia.org/r/1345090

Change #1344600 abandoned by Awight:

[mediawiki/extensions/SiteMatrix@master] [WIP] Return actual language code

Reason:

fixed in I26c3309654e9101936fa378775b3717875d7533d

https://gerrit.wikimedia.org/r/1344600

Change #697110 had a related patch set uploaded (by Seanleong-wmde; author: Luca Mauri):

[operations/mediawiki-config@master] Create new http://www.mediawiki.org/xml/sitelist-1.1/ to reference sitelist-1.1.xsd

https://gerrit.wikimedia.org/r/697110

Change #697110 merged by jenkins-bot:

[operations/mediawiki-config@master] Create new http://www.mediawiki.org/xml/sitelist-1.1/ to reference sitelist-1.1.xsd

https://gerrit.wikimedia.org/r/697110

Mentioned in SAL (#wikimedia-operations) [2026-09-30T13:39:46Z] <seanleong-wmde@deploy1003> Started scap sync-world: Backport for [[gerrit:697110|Create new http://www.mediawiki.org/xml/sitelist-1.1/ to reference sitelist-1.1.xsd (T222516 T439093)]]

Mentioned in SAL (#wikimedia-operations) [2026-09-30T13:43:44Z] <seanleong-wmde@deploy1003> seanleong-wmde, lucamauri: Backport for [[gerrit:697110|Create new http://www.mediawiki.org/xml/sitelist-1.1/ to reference sitelist-1.1.xsd (T222516 T439093)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Change #1346611 had a related patch set uploaded (by Awight; author: Awight):

[operations/mediawiki-config@master] Fix xsd xml version

https://gerrit.wikimedia.org/r/1346611

Mentioned in SAL (#wikimedia-operations) [2026-09-30T13:51:48Z] <seanleong-wmde@deploy1003> Finished scap sync-world: Backport for [[gerrit:697110|Create new http://www.mediawiki.org/xml/sitelist-1.1/ to reference sitelist-1.1.xsd (T222516 T439093)]] (duration: 12m 01s)

Change #1346611 merged by jenkins-bot:

[operations/mediawiki-config@master] Fix xsd xml version

https://gerrit.wikimedia.org/r/1346611

Mentioned in SAL (#wikimedia-operations) [2026-09-30T13:54:32Z] <seanleong-wmde@deploy1003> Started scap sync-world: Backport for [[gerrit:1346611|Fix xsd xml version (T439093)]]

Mentioned in SAL (#wikimedia-operations) [2026-09-30T13:58:47Z] <seanleong-wmde@deploy1003> awight, seanleong-wmde: Backport for [[gerrit:1346611|Fix xsd xml version (T439093)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2026-09-30T14:06:05Z] <seanleong-wmde@deploy1003> Finished scap sync-world: Backport for [[gerrit:1346611|Fix xsd xml version (T439093)]] (duration: 11m 33s)

Change #1344535 merged by jenkins-bot:

[mediawiki/core@master] Start exporting Site language code

https://gerrit.wikimedia.org/r/1344535

Change #1344608 merged by jenkins-bot:

[mediawiki/core@master] Extract service dependencies into SiteSanitizer

https://gerrit.wikimedia.org/r/1344608

Change #1344681 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Site tests can become unit

https://gerrit.wikimedia.org/r/1344681

Change #1344683 merged by jenkins-bot:

[mediawiki/extensions/SiteMatrix@master] Site tests can become units

https://gerrit.wikimedia.org/r/1344683