Page MenuHomePhabricator

Align the numerals on the language switching button to local scripts
Closed, ResolvedPublic2 Estimated Story Points

Description

https://bn.wikipedia.org/wiki/বাংলা_সংখ্যা_পদ্ধতি?languageinheader=1&uselang=bn
gives this:

obraz.png (223×1 px, 24 KB)

Bengali numeral for 3 should be displayed before the translated word for "languages".

See T283955#7142655, which was informed by a suggestion on how to fix this.

QA Results - Prod

ACStatusDetails
1T283955#7177214

Event Timeline

Jdlrobson subscribed.

Needs priority before it's put on sprint board.

Jdlrobson added a subscriber: ovasileva.

The Message object doesn't guess at how parameters should be handled but needs to be told. Message::numParams() tags the passed parameter as a number so that it can be formatted when needed. AIUI we have to change

Vector/includes/SkinVector.php
$languageButtonData = [
    // ...

    'label' => $this->msg(
        'vector-language-button-label',
        count( $this->getLanguagesCached() )
    )->escaped(),

    // ...
];

to

Vector/includes/SkinVector.php
$label = $this->msg( 'vector-language-button-label' )
    ->numParams( count( $this->getLanguagesCached() ) )
    ->escaped();

$languageButtonData = [
    // ...

    'label' => $label,

    // ...
];
phuedx removed phuedx as the assignee of this task.Jun 8 2021, 3:59 PM
phuedx subscribed.

Change 698817 had a related patch set uploaded (by Phuedx; author: Phuedx):

[mediawiki/skins/Vector@master] WIP: skin: Convert number of languages to interface language

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

Change 698817 abandoned by Phuedx:

[mediawiki/skins/Vector@master] WIP: skin: Convert number of languages to interface language

Reason:

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

Change 698817 restored by Bernard Wang:

[mediawiki/skins/Vector@master] WIP: skin: Convert number of languages to interface language

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

Change 698817 merged by jenkins-bot:

[mediawiki/skins/Vector@master] Skin: Convert number of languages to interface language

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

Edtadros subscribed.

@Jdlrobson Here's what I get without uselang=bn

Screen Shot 2021-06-21 at 9.22.24 PM.png (251×1 px, 50 KB)

With uselang=bn

Screen Shot 2021-06-21 at 9.13.59 PM.png (264×1 px, 52 KB)

I suspect something in beta is broken because I don't expect it to say "language". I tried some other beta wikis and I get an error. Here's what happens when I try goto https://he.wikipedia.beta.wmflabs.org/

Screen Shot 2021-06-21 at 9.28.50 PM.png (989×1 px, 415 KB)

I only show that so you can see the URL becomes:

https://he.wikipedia.beta.wmflabs.org/wiki/<mainpage>

Here's the full text of the error:

MediaWiki internal error.

Original exception: [YNFm1deIExsM261ykzSzkwAAABU] /wiki/%E2%A7%BCmainpage%E2%A7%BD MWException: Error: invalid magic word 'ns'
Backtrace:
from /srv/mediawiki/php-master/includes/MagicWord.php(129)
#0 /srv/mediawiki/php-master/includes/MagicWordFactory.php(230): MagicWord->load(string)
#1 /srv/mediawiki/php-master/includes/parser/Parser.php(4939): MagicWordFactory->get(string)
#2 /srv/mediawiki/php-master/includes/parser/CoreParserFunctions.php(64): Parser->setFunctionHook(string, array, integer)
#3 /srv/mediawiki/php-master/includes/parser/Parser.php(477): CoreParserFunctions::register(Parser)
#4 /srv/mediawiki/php-master/includes/parser/ParserFactory.php(181): Parser->__construct(MediaWiki\Config\ServiceOptions, MagicWordFactory, Language, ParserFactory, string, MediaWiki\SpecialPage\SpecialPageFactory, MediaWiki\Linker\LinkRendererFactory, NamespaceInfo, Monolog\Logger, MediaWiki\BadFileLookup, MediaWiki\Languages\LanguageConverterFactory, MediaWiki\HookContainer\HookContainer, MediaWiki\Tidy\RemexDriver, WANObjectCache, MediaWiki\User\UserOptionsManager, MediaWiki\User\UserFactory, MediaWikiTitleCodec)
#5 /srv/mediawiki/php-master/includes/ServiceWiring.php(1010): ParserFactory->create()
#6 /srv/mediawiki/php-master/vendor/wikimedia/services/src/ServiceContainer.php(447): Wikimedia\Services\ServiceContainer::{closure}(MediaWiki\MediaWikiServices)
#7 /srv/mediawiki/php-master/vendor/wikimedia/services/src/ServiceContainer.php(416): Wikimedia\Services\ServiceContainer->createService(string)
#8 /srv/mediawiki/php-master/includes/MediaWikiServices.php(269): Wikimedia\Services\ServiceContainer->getService(string)
#9 /srv/mediawiki/php-master/includes/MediaWikiServices.php(1205): MediaWiki\MediaWikiServices->getService(string)
#10 /srv/mediawiki/php-master/includes/OutputPage.php(2125): MediaWiki\MediaWikiServices->getParser()
#11 /srv/mediawiki/php-master/includes/OutputPage.php(1876): OutputPage->parseInternal(string, Title, boolean, boolean)
#12 /srv/mediawiki/php-master/includes/OutputPage.php(1807): OutputPage->addWikiTextTitleInternal(string, Title, boolean, boolean)
#13 /srv/mediawiki/php-master/includes/page/Article.php(1496): OutputPage->addWikiTextAsInterface(string)
#14 /srv/mediawiki/php-master/includes/page/Article.php(638): Article->showMissingArticle()
#15 /srv/mediawiki/php-master/includes/page/Article.php(561): Article->generateContentOutput(User, ParserOptions, integer, OutputPage, array)
#16 /srv/mediawiki/php-master/includes/actions/ViewAction.php(74): Article->view()
#17 /srv/mediawiki/php-master/includes/MediaWiki.php(536): ViewAction->show()
#18 /srv/mediawiki/php-master/includes/MediaWiki.php(320): MediaWiki->performAction(Article, Title)
#19 /srv/mediawiki/php-master/includes/MediaWiki.php(917): MediaWiki->performRequest()
#20 /srv/mediawiki/php-master/includes/MediaWiki.php(551): MediaWiki->main()
#21 /srv/mediawiki/php-master/index.php(53): MediaWiki->run()
#22 /srv/mediawiki/php-master/index.php(46): wfIndexMain()
#23 /srv/mediawiki/w/index.php(3): require(string)
#24 {main}

Exception caught inside exception handler: [YNFm1deIExsM261ykzSzkwAAABU] /wiki/%E2%A7%BCmainpage%E2%A7%BD MWException: Error: invalid magic word 'ns'
Backtrace:
from /srv/mediawiki/php-master/includes/MagicWord.php(129)
#0 /srv/mediawiki/php-master/includes/MagicWordFactory.php(230): MagicWord->load(string)
#1 /srv/mediawiki/php-master/includes/parser/Parser.php(4939): MagicWordFactory->get(string)
#2 /srv/mediawiki/php-master/includes/parser/CoreParserFunctions.php(64): Parser->setFunctionHook(string, array, integer)
#3 /srv/mediawiki/php-master/includes/parser/Parser.php(477): CoreParserFunctions::register(Parser)
#4 /srv/mediawiki/php-master/includes/parser/ParserFactory.php(181): Parser->__construct(MediaWiki\Config\ServiceOptions, MagicWordFactory, Language, ParserFactory, string, MediaWiki\SpecialPage\SpecialPageFactory, MediaWiki\Linker\LinkRendererFactory, NamespaceInfo, Monolog\Logger, MediaWiki\BadFileLookup, MediaWiki\Languages\LanguageConverterFactory, MediaWiki\HookContainer\HookContainer, MediaWiki\Tidy\RemexDriver, WANObjectCache, MediaWiki\User\UserOptionsManager, MediaWiki\User\UserFactory, MediaWikiTitleCodec)
#5 /srv/mediawiki/php-master/extensions/FeaturedFeeds/includes/FeaturedFeedChannel.php(50): ParserFactory->create()
#6 /srv/mediawiki/php-master/extensions/FeaturedFeeds/includes/FeaturedFeeds.php(210): MediaWiki\Extension\FeaturedFeeds\FeaturedFeedChannel->__construct(string, array, string)
#7 /srv/mediawiki/php-master/extensions/FeaturedFeeds/includes/FeaturedFeeds.php(115): MediaWiki\Extension\FeaturedFeeds\FeaturedFeeds::getFeedsQuick(string)
#8 /srv/mediawiki/php-master/includes/HookContainer/HookContainer.php(338): MediaWiki\Extension\FeaturedFeeds\FeaturedFeeds::beforePageDisplay(OutputPage, SkinVector)
#9 /srv/mediawiki/php-master/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook(string, array, array, array)
#10 /srv/mediawiki/php-master/includes/HookContainer/HookRunner.php(960): MediaWiki\HookContainer\HookContainer->run(string, array, array)
#11 /srv/mediawiki/php-master/includes/OutputPage.php(2641): MediaWiki\HookContainer\HookRunner->onBeforePageDisplay(OutputPage, SkinVector)
#12 /srv/mediawiki/php-master/includes/exception/MWException.php(193): OutputPage->output()
#13 /srv/mediawiki/php-master/includes/exception/MWException.php(231): MWException->reportHTML()
#14 /srv/mediawiki/php-master/includes/exception/MWExceptionHandler.php(104): MWException->report()
#15 /srv/mediawiki/php-master/includes/exception/MWExceptionHandler.php(185): MWExceptionHandler::report(MWException)
#16 /srv/mediawiki/php-master/includes/MediaWiki.php(570): MWExceptionHandler::handleException(MWException, string)
#17 /srv/mediawiki/php-master/index.php(53): MediaWiki->run()
#18 /srv/mediawiki/php-master/index.php(46): wfIndexMain()
#19 /srv/mediawiki/w/index.php(3): require(string)
#20 {main}

Given the blockers, let's skip QA in beta cluster, and QA this in production later today.

Test Result - Prod

Status: ✅ PASS
Environment: bnwiki
OS: macOS Big Sur
Browser: Chrome
Device: MBP
Emulated Device: NA

Test Artifact(s):

QA Steps

Visit https://bn.wikipedia.org/wiki/%E0%A6%AC%E0%A6%BE%E0%A6%82%E0%A6%B2%E0%A6%BE_%E0%A6%B8%E0%A6%82%E0%A6%96%E0%A7%8D%E0%A6%AF%E0%A6%BE_%E0%A6%AA%E0%A6%A6%E0%A7%8D%E0%A6%A7%E0%A6%A4%E0%A6%BF?languageinheader=1&uselang=bn

✅ AC1: Bengali numeral for 3 should be displayed before the translated word for "languages".

E000F85F-AD2C-426F-BC75-D3E8C8E60D9C.jpeg (1×1 px, 985 KB)

BF63AF0A-82AF-4AA8-9EEE-18D35E812AAD.jpeg (1×1 px, 251 KB)