Adds an option, 'enable-uls' for users to enable ULS. By default
it is enabled. Wikis can use $wgHiddenPrefs to prevent users from
disabling ULS.
Bug: 46306
Change-Id: I71b70d8ee7c3cad7f49b32e5dc494ef4fc1bdb2f
To detect whether the client can render a given string,
use a tofu detection algorithm.
If the user has an explicit font preference, do not override it.
If the user has no preference and there is a default font for a
language, see if that language can be rendered at the user's browser
using tofu detection.
If tofu is detected, apply the font.
If the element has 'autonym' class, apply Autonym font only when
that language has tofu.
Change-Id: Ib9ee9497e6bcfa7eb86f7d264e0980d8880d6b70
$wgULSNoWebfontsSelectors had default value as '#p-lang li > a'
-the interlanguage links. It does not make sense after the class
'autonym' was added to such links. That 'autonym' css class has
fontfamily definition as Autonym, sans-serif
ie, Autonym font is applied to the interlanguage links.
So, now it make sense to have default value as .autonym to
exclude from parsing.
This also fixes the problems like Bug 58374 where in random cases
the default font for the language get applied even if it has 'autonym' class.
This issue was because the js get executed before the css for .autonym class is
ready and applied. The jquery.webfonts parser will miss to detect the explicit
fontfamily 'Autonym, sans-serif' and the default font is applied.
Bug: 58374
Change-Id: I7478a58583d3b029ae8e2d63e118917499c29c30
Written in pair-programming with Ryan Kaldari.
This adds a version of webfonts initialization that is stripped
of any smart features. It only loads the basic jquery.webfonts
library and the fonts repository in a way that is usable
with the MobileFronted extension.
It is completely disabled by default.
It can be enabled by setting
$wgULSMobileWebfontsEnabled = true;
and even then it will only be enabled for users
who opted in for the mobile beta mode.
Change-Id: I488e411232a1192bbf46ae5675c701366bda9a3e
* Rename JsonMessageLoader to ULSJsonMessageLoader
* Correct the return type of mw.uls.loadLocalization
Follow up: Ic39dec1c484982fb07edd167e83794c0b5f470ee
Change-Id: I13c64a5e89ac75be8a95d951658018a78534f466
* Do not load anything unless input field is focused
* Split the setup function to smaller functions
* Introduce $wgULSImeSelectors to allow configuration and avoid
duplication of selectors in two places.
Change-Id: If5a476e66681dde9f0b72f619d35ddf6255246ac
ApiULSLocalization is still present since we have to provide live
language preview feature.
Moved the loading of json file to includes/JsonMessageLoader.php
Also moved all RL modules to includes folder.
Bug: 56509
Change-Id: Ic39dec1c484982fb07edd167e83794c0b5f470ee
This patch adds a configuration variable, '$wgULSFontRepositoryBasePath', which
specifies the base path to the font repository. By default, the variable is set
to its existing value, which is $wgExtensionAssetsPath +
'/UniversalLanguageSelector/data/fontrepo/fonts/'. However, adding a discrete
configuration variable makes it possible to configure ULS to use a custom URL
scheme that is more suitable for large static assets that change infrequently.
Change-Id: Idbe57072c4f3258757eb691e54cab5429cadcfda
__DIR__ is the more common idiom these days, and there is absolutely no
advantage (in fact, there's a slight performance penalty) to storing it in a
variable. Use alternate syntax for declaring autoload classes to avoid
exceeding line length limits or having to break lines in unsightly ways.
Change-Id: I20211539ccc17937b141331c1875f219a92b1483
* Updates jquery.webfonts from upstream
* Introduces wgULSNoWebfontsSelectors configuration variable. It
takes an array of jquery selector to which webfonts will not be
applied if defined.
Change-Id: I0dc263f84620af4077f52e18eeb0f986ff0f13b9
Add the variable $wgULSNoImeSelectors to allow custom
disabling of IME in specific elements.
Add captcha input field id to the exclusion list.
Bug: 41675
Change-Id: Ib03a20c50a4f473e6a58638b85da16659268eb09
This change introduces a new configuration variable, $wgULSEventLogging. When
set to true, ULS will register an EventLogging schema module for
<http://meta.wikimedia.org/wiki/Schema:UniversalLanguageSelector>,
making it possible to log events using `mw.uls.logEvent`. When false, the
schema module is not loaded, and `mw.uls.logEvent` is a no-op.
Change-Id: I7139e67cc2f830a6b4b3c8ff1fc72dfcdec9a699
This reverts commit 6ae0fe3e44.
The commit was duplicating the preferences in 2 places
making the syncing hard.
As per discussion with Pau, we will try alternate approach.
Bug: 48642
Change-Id: I5c97838ed875364dc35b66a3d6c33d9975b5107e
Unlike freegeoip it also works with https
Also moved the getCountryCode function to init, as it should be
available regardless of whether we load the optional geoclient
module.
Bug: 40965
Change-Id: Ia18130890d09f86a93b5b61f7da7c48fcfa480c7
This allows us to enable web fonts and input methods for all
users by disabling just the interface language selection.
Updated the documentation of the variables to make it clearer
what each does. Summary:
* Enabling: $wgULSEnable and $wgULSEnableAnon
* Workarounds: $wgULSAnonCanChangeLanguage and $wgULSLanguageDetection
Cleaned up hooks, in particular rewritten getLanguage to separate
the logged in vs. logged out steps for easier understanding.
A followup commit is needed to disable language selection UI for
anon if $wgULSAnonCanChangeLanguage is false.
Change-Id: Ia8d21c394ff5efac0ce94664710c97dc3b74ec18
ULS is disabled for anonymous users on WMF projects. But to provide
rest of the features - apis, language database, language selection for
many use cases, we need to provide a minimal ULS. RL module
ext.uls.init does that job now.
For using ULS as interface language selection tool, new RL module
ext.uls.interface is introduced. That will add UI language selection,
webfonts, ime features, if enabled.
Change-Id: I796a7c9cce0de42bf8aa06b26e383e0075dbe1dd
Allow the cache-breaking toolbar and cookie-based user language
selection features to be disabled, while still allowing Wikibase to have
its language autocompletion drop-downs on special pages.
Change-Id: Iba18f666fdcf5b87b7068ab6b1537c868c8fe861
* It can be a user preference using the ULS Input method settings
* It can be a mediaWiki configuration $wgULSIMEEnabled
Change-Id: Ic5fb4932d62ab18db5d3b10ca81c0f6bfe9fd29e