Rather than building the link in JS, which is delayed until the JS
code loads, we build it in PHP and hide it from no-JS users with CSS.
Change-Id: If0c3a4dc137d8bf6cf24957dd063bd0a39791d2e
'mw' are '$' are globals, always have been, and aren't going
anywhere. They're every bit as real as their longer versions.
If anything, the longer ones are less "real" or 'stable" because
they're not used internally by RL and easier to accidentally
replace or override. For anecdotes and history, see 91f950d6b0.
Change-Id: I526fb8c961d9477992d88f2780a0ff4cbdc51923
It is created, unconditionally fired only once (right after creation),
and then used only with add(), which becomes a synchronous
self-call.
I've searched in Wikimedia Git and Codesearch, and found no uses
of `logEventQueue` or `mw.uls.eventlogger` outside this file.
Change-Id: I3832bcb409fc919c2078e583d50e20413dede163
Notable changes:
* First query global preferences to detect if global language setting
is in use. If there is no global language setting, or if GlobalPreferences
extension is not installed, it will fall back to changing the language
as usual. If global language setting is found, it will add an override
instead.
* If a local override is added, the undo tooltip is different and links to
the global preferences page. The task design shows mw.notify style popup
located on a bottom right corner (LTR). I deviate from the design and
re-use the old undo tooltip with a different message instead, for
consistency. The message is chosen depending on whether local storage
value `uls-gp` is set to '1' (set in mw.uls.changeLanguage).
* I removed one use of deprecated mediawiki.api.options module. One other
use still remains.
* I changed tooltip text generation from html acrobatics to use
mw.message.parseDom. Because of that I also had to move the click handler
to avoid buildup of click handlers.
* In message documentation fixed acronym -> autonym.
Bug: T198206
Change-Id: Ie2ed792e222be919522bd1cdea98042515a0619d
* In mw.uls.addPreviousLanguage, jQuery.map was used for what is
essentially filtering, not mapping. Filtering was used to remove
one element from array. Use Array.prototype.splice instead.
* In mw.uls.getFrequentLanguageList, replace:
- jQuery.each with Array.prototype.forEach
- jQuery.inArray with Array.prototype.indexOf
- jQuery.grep with Array.prototype.filter
Change-Id: Id2208b3c89e982f91f49981d18e588ae8ce3b130
Sometimes new languages don't appear in wgULSLanguages.
For these cases, read their autonym from ULS's own langdb.
Otherwise they are not shown at all.
Bug: T198080
Change-Id: I2bef16811c6a0bdaef5db94719d7b76fe00c6e04
Since we added .i18n() call to upstream, it started overwriting
our text from the default data-i18n. Change data-i18n instead.
Bug: T188860
Change-Id: Ib7e9fb9590ace9c2a4ce2e2afb5a740ae4346be6
SPDX released version 3 of their license list (<https://spdx.org/licenses/>),
which changed the FSF licenses to explicitly end in -only or -or-later
instead of relying on an easy to miss + symbol.
Bug: T183858
Change-Id: Id75a37eab27282ca7797fa3e6ceb92750c59477f
The module 'jquery.i18n' was removed in 1312b905f2 because it is
already in core. The mapping from mw.libs.pluralRuleParser to
window.pluralRuleParser is not needed here anymore.
Change-Id: I00993d43578368ba3ebc1f4055cabf4904e45783
It's now possible to tab to "display settings" and "input settings"
and access them with enter or space. Also escape can now be used
to close the settings screen.
The ULS trigger in interlanguage position is a button to get
native accessibility features.
Also removed `mw.hook( 'mw.uls.settings.open' ).fire( 'uls' );` as
it didn't seem very useful and there wasn't immediately obvious
place to put it. The existing click handler could be removed because
the settings dialog themselves place event listeners.
The patch is a bit longer than strictly necessary because the CSS
was mess (rules in different modules, poorly organized) and I had
to bring related rules together to understand them.
Bug: T52793
Change-Id: Id37c2665b1c97b81ef57be27a1abfae0db6b34d5
If the language settings window is not visible, all calculations
will go wrong and page will scroll to 0 position.
So call scrollIntoView only when the element is visible.
The $.fn.scrollIntoView defined in jquery.uls core may be unnecessary
now since it is available natively on DOM elements.
Bug: T178188
Change-Id: I461fa9eb7c51cd277bebd3a04cfcc0eed9793c4e
* Not updated from upstream; last release is buggy as per upstream.
* Punjabi language has good font support in all modern operating
systems.
Bug: T180422
Change-Id: I323953b4c6293df89034f05e0c2e13a96b42dc34
* Store prefixes and infixes separately in the data
* First match language code, then prefixes, then infixes
* Try to use suggestion either in user language or autonym first
* use formatversion=2 to avoid escaping Unicode
Using Language::fetchLanguageName might can have a small
performance impact. On the other hand there is now check
to skip languages we already found, avoiding some fuzzy
matching.
This is in a preparation for a change in jquery.uls to use
the search API more, while trying to reduce the amount of
weird autocompletion suggestions we show to the user.
Bug: T73891
Change-Id: Id94c5352d9a591969bf90144d1d2d5e758d08301
* Unknown upstream
* Not updated for years
* ne has better support in operating systems
* Non-default font for ne
Bug: T180422
Change-Id: Ife0b81e4db3bc069752d89c53f4690ddcfad7ef3
TTF files are not removed, the entries for them from the repo
is removed. Generated CSS will also skip ttf.
TTF format is not required for any browser now a days.
https://caniuse.com/#feat=woff
Change-Id: I018e74f6a50e63f55adeca480c03124092fba015
* These fonts are with no upstream now and little known among
Tamil users.
* Tamil is very well supported in all operating systems
now a days.
* Also reduce the metadata size for fontrepo
Change-Id: I4e7afb6476a4714f8d87bd2a048309b732883b2f
* I maintain these fonts in upstream and there we several releases
since these fonts were added.
* Malayalam has better support in operating systems compared to 2012
when these fonts were added.
* Reduce font metadata size for wikipedia pages when webfonts are
enabled.
Change-Id: Ie5b54cc866b1c67849b094a9701b2c80d876b55f
* The languages covered by these fonts are now available in all
operating systems.
* These fonts are not updated for years in our repo
* Saves the amount of font repo data we deliver for *every wikipedia
page* when webfonts is enabled
Change-Id: Ia0f1b6acc4cf8b7a354671bea47b58425ab8c08e
Moving apply and cancel buttons to align with padded edge of dialog
in order for resembling “final” state of buttons better.
Bug: T175295
Change-Id: I96b8b6dc3a3fca907a8f5d2923a19b0f86172c61
Making `#language-settings-dialog` carry the same CSS class
`.language-settings-dialog` to be able to override it in theme styles
more sanely. Follow-up to Id9c8652820641d6.
Bug: T175295
Change-Id: I1aa69f8701ed6d6cb2ed59cabf11332f2a10d21f
The tooltips include the title of the target article
and the name of the language in the user's language.
Bug: T160976
Change-Id: If3dd416e4a6f13b7b1366d30a1a3807a505346cb
when appearing on right side of screen
Languageselect was mostly fixed in 354378, but I forgot the
settings ones, so the triangle just disappears when
switching dialogs currently. This follows up on that and
properly fixes it.
Sidebar callouts now appear toward content regardless of
where they're appearing from, or the language
directionality. Triangles are now consistently alligned to
the top of the callout (same position in languageselect and
compact language links) to avoid issues with it appearing
over a scrollbar.
Sideways callout triangles (carets) are consolidated into a
single rendering approach and mixin across compact language
links and toolbox language selector.
Bug: T161586
Change-Id: I7717e26525ac527ede486796f49083ed40ee7d4f
This fixes the same issue as 1d395d4966,
but for the little language change popup (shown after you change the
language) instead of the main interface.
Change-Id: I28d3e8baeebf4619f4f810869c8a2a3fb60496d9
Follow-up to 1d395d4966. We were
measuring the wrong $window, which happened to work right most
of the time but wasn't correct.
Change-Id: I50f91623b304f43be58ebac844d507757f56db45
For interlanguage toggle, interlanguage position is no longer assumed to be a
left sidebar, and is determined on the fly in order to appear correctly
regardless of where it is, and not go off the side of the page. This works
across most skins, and regardless of language directionality.
Does not necessarily resolve issues with interlanguage links appearing in the
middle of the page (header/footer), or the callout just plain not fitting for
other reasons (mobile devices).
bug: T161586
Change-Id: Icd55498a945e12c0ff79ba891c094d60ce791115