Re: Beta wiki extension debugging

Bryan Davis <[email protected]>
Newsgroups gmane.science.linguistics.wikipedia.technical
Message-ID <CAGrKmBJ3RoY-9qpHB33mbWkv16H35EgLzQEckVdp_RAf57mnzg@mail.gmail.com>
On Thu, Dec 11, 2025 at 7:46 AM Igal Khitron <[email protected]> wrote:
>
> Thank you, Bryan. Actually, I wrote you just to explain that there are parts that do no work. But if you're interested, here are some details.
> 1) About the language.
> The extension has the code
> // Get RTL/LTR direction for the site. We can't use String.prototype.startsWith, since
> // that is unavailable in IE11, and doesn't take multiple values anyway. Use
> // String.prototype.match with a list of the language codes that should be RTL
> // this.siteID is based on the URL form of the wiki, and we assume that wikis that are
> // meant to be RTL are in the form `⧼rtl language code⧽.*`, and any URL that does not
> // match this is for an LTR wiki. See T274602 and T274313
> const isRTL = this.siteID.match(
> /^(ar|azb|ckb|dv|fa|glk|he|ks|lrc|mzn|nqo|pnb|ps|sd|ug|ur|yi)_/
> );
> // mw-content-ltr and -rtl classes are not enough to ensure that the text is formatted
> // in the correct direction, so add a manual direction attribute. See T287649
> // We still add those classes because they are also used by jQuery.makeCollapsible
> // to know if the collapse button should be on the right or left.
> this.$feedDiv = $( '<div>' )
> .attr( 'id', 'ext-globalwatchlist-feed-site-' + this.siteID )
> .attr( 'dir', isRTL ? 'rtl' : 'ltr' )
> .addClass( 'ext-globalwatchlist-feed-site' )
> .addClass( isRTL ? 'mw-content-rtl' : 'mw-content-ltr' )
> .append(
> headerTemplate.render( headerParams ),
> $content
> );
> This is how it decides which wiki is shown in ltr div, and which wiki in rtl div. It's not ideal, of course, but we coudn't find the better way back than. And since the Patch Demo wiki URL does not have such a match for a language code, it shows everything in ltr.

This business logic in the extension is very specific to the wiki farm
implementation that is used by the Wikimedia project's content wikis
like en.wikipedia.org. A potentially more robust way to detect the
content language is via the `mw.config.get("wgContentLanguage")` (full
site) or `mw.config.get("wgPageContentLanguage")` (current page)
javascript lookups. [0][1] Similarly user's chosen interface language
should be available from `mw.config.get("wgUserLanguage")`.

[0]: https://www.mediawiki.org/wiki/ResourceLoader/Core_modules#mediaWiki.config
[1]: https://www.mediawiki.org/wiki/Manual:Interface/JavaScript#mw.config

Bryan
-- 
Bryan Davis                                        Wikimedia Foundation
Principal Software Engineer                               Boise, ID USA
[[m:User:BDavis (WMF)]]                                      irc: bd808
_______________________________________________
Wikitech-l mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.org/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.