2014-08-07 11:38:34 +00:00
{
"@metadata" : {
"authors" : [ ]
} ,
2015-09-28 09:42:39 +00:00
"skinname-vector" : "Vector" ,
2021-09-09 22:13:48 +00:00
"skinname-vector-2022" : "Vector 2022" ,
2014-08-07 11:38:34 +00:00
"vector-skin-desc" : "Modern version of MonoBook with fresh look and many usability improvements" ,
[Special:Preferences] [PHP] Add skin version user preference and configs
Add a Vector-specific user preference to Special:Preferences for
toggling skin version, either Legacy Vector or the latest Vector.
The presentation of the new preference section and the default values
for anonymous, new, and existing accounts are configurable via
$wgVectorShowSkinPreferences, $wgVectorDefaultSkinVersion (to be used by
the feature manager in T244481),
$wgVectorDefaultSkinVersionForExistingAccounts, and
$wgVectorDefaultSkinVersionForNewAccounts. These configurations default
to the fullest experience so that third-party configuration is minimal.
See skin.json for details. The configurations are each tested in
VectorHooksTest.php.
When presentation is enabled, the new preference appears as a checkbox;
enabled is Legacy mode and disable is latest. There are a number of
unfortunate details:
- Showing and hiding a checkbox is supported by OOUI. Showing and hiding
a whole section (Vector skin preferences, in this case) is not so this
additional client JavaScript functionality is added in Core (see
Iaf68b238a8ac7a4fb22b9ef5d6c5a3394ee2e377).
- Stylization as a checkbox is wanted. However, the implied storage type
for OOUI checkboxes is a boolean. This is not wanted in the event that
another skin version is added (e.g., '3' or 'alpha'). As a workaround,
the preference is converted from a boolean to a version string ('1' or
'2') on save in Hooks::onPreferencesFormPreSave() and from a version
string to a checkbox enable / disable string ('1' or '0') in
onGetPreferences(). There a number of test cases to help cover these
concerning details.
Documentation for overriding the skin version as a URL query parameter
is provided in anticipation of T244481.
Bug: T242381
Bug: T245793
Depends-On: Iaf68b238a8ac7a4fb22b9ef5d6c5a3394ee2e377
Depends-On: Ifc2863fca9cd9efd11ac30c780420e8d89e8cb22
Change-Id: I177dad88fc982170641059b6a4f53fbb38eefad6
2020-01-23 21:53:09 +00:00
"prefs-vector-enable-vector-1-label" : "Use Legacy Vector" ,
2020-03-20 21:04:04 +00:00
"prefs-vector-enable-vector-1-help" : "Over the next few years, we will be gradually updating the Vector skin. Legacy Vector will allow you to view the old version of Vector (as of December 2019). To learn more about the updates, go to our [[mw:Reading/Web/Desktop_Improvements|project page]]." ,
Add opt-out link to Sidebar for Vector/Logged-in Users Without Abstractions
This commit is singularly focused on adding a link to the sidebar for
Vector, logged-in users. It does the bare minimum to fulfill the
requirements of T243281.
Additionally, it will help to answer the question "Do we need to use
abstractions (other than maybe different templates) to separate Legacy
Vector from Vector" by intentionally leaving out any abstractions in
order to make it easier to compare with a follow-up patch
(Ib2ef15180df73360cc1de25b893e49d415d23e1a) which does use abstractions.
It is a good thing to question whether or not we need addtional
abstractions in VectorTemplate and if they will help us as unnecessary
abstractions can have the opposite effect and just lead to further
frustrations down the road.
Therefore, I urge you, the reviewer, to let me know your thoughts! If
abstractions are viewed as not making our lives any easier, the
follow-up patches may be completely discarded and that's totally okay
with me. :) I think it's a good think to talk about now though.
Important changes:
* The VectorTemplate constructor was changed to allow injecting the
config, templateParser, and isLegacy boolean (only the config was
allowed before this commit). According to MediaWiki's Stable Interface
Policy, "Constructor signatures are generally considered unstable unless
explicitly declared stable for calling" [3]. Given that VecorTemplate's
constructor is not marked as stable, it is justified to do this without
warning according to the policy.
* Due to the above, the 'setTemplate' method is no longer needed and was
marked as deprecated.
* VectorTemplateTest was made to adapt to the new VectorTemplate
constructor. Additionally, it now extends from
MediaWikiIntegrationTestCase which my intelliphense server can pick up.
I *think* MediaWikiTestCase is just an alias to
MediaWikiIntegrationTestCase [1] and MediaWikiTestCase file was renamed
to MediaWikiIntegrationTestCase in [2], but I'm willing to change it
back if there is pushback to this.
Open questions:
* What are VectorTemplate's responsibilities? To me, it acts right now
as a controller (because it echos the full HTML string from the
template), a model (because SkinTemplate::prepareQuickTemplate sets data
on it which it later retrieves through `$this->get()`), a presenter
(because it adds data tailored for a web-centric view), and a view
(because it renders HTML strings instead of letting the view/template be
solely responsible for that). Arguably, some business logic might be
mixed in there as well (because it checks to see if a User is logged
in/has necessary permissions to show x which my changes here add to).
This might not be a problem if we keep VectorTemplate relatively small,
but will it remain this way as we progress further in Desktop
Improvements?
* How do we write tests for VectorTemplate without exposing unnecessary
public methods? For example, if I want to test the `getSkinData()`
method to see what state will be sent to the template, how should I do
this? One option might be to use `TestingAccessWrapper` to expose these
private methods which is what
`VectorTemplateTest::testbuildViewsProps()` does. Another option is to
accept this method as public. Is there a better way? Keep in mind that
even with access to this method, there might be many things to mock.
[1] https://github.com/wikimedia/mediawiki/blob/0030cb525be6cabc1d63de80586b2017d4bbe354/tests/common/TestsAutoLoader.php#L64
[2] Ie717b0ecf4fcfd089d46248f14853c80b7ef4a76
[3] https://www.mediawiki.org/wiki/Stable_interface_policy
Bug: T243281
Change-Id: I0571b041bcd7f19bec9f103fa7bccdd093f6394d
2020-03-17 20:21:33 +00:00
"vector-opt-out" : "Switch to old look" ,
2020-05-04 23:37:41 +00:00
"vector-opt-out-tooltip" : "Change your settings to go back to the old look of the skin (legacy Vector)" ,
2020-02-19 22:10:42 +00:00
"vector.css" : "/* All CSS here will be loaded for users of the Vector skin */" ,
"vector.js" : "/* All JavaScript here will be loaded for users of the Vector skin */" ,
2020-03-30 20:07:35 +00:00
"vector-action-toggle-sidebar" : "Toggle sidebar" ,
2021-12-07 20:28:58 +00:00
"vector-languages" : "Languages" ,
2021-09-21 07:49:12 +00:00
"vector-language-button-aria-label" : "Go to an article in another language. Available in {{PLURAL:$1|$1 language|$1 languages}}" ,
2021-02-01 22:51:28 +00:00
"vector-language-button-label" : "{{PLURAL:$1|$1 language|$1 languages}}" ,
2021-12-07 20:28:58 +00:00
"vector-language-redirect-to-top" : "On this Wikipedia the language links are at the top of the page across from the article title. [[#p-lang-btn|Go to top]]." ,
2021-09-14 22:56:54 +00:00
"vector-language-variant-switcher-label" : "Change language variant" ,
2014-08-07 11:38:34 +00:00
"vector-action-addsection" : "Add topic" ,
"vector-action-delete" : "Delete" ,
"vector-action-move" : "Move" ,
"vector-action-protect" : "Protect" ,
"vector-action-undelete" : "Undelete" ,
"vector-action-unprotect" : "Change protection" ,
"vector-view-create" : "Create" ,
"vector-view-edit" : "Edit" ,
"vector-view-history" : "View history" ,
"vector-view-view" : "Read" ,
"vector-view-viewsource" : "View source" ,
Re-implement and improve mw-jump links with pure CSS
* Improve their accessibility by giving both links
a full label "Jump to x" and "Jump to y" instead
of "Jump to: ", "x", "y".
This also makes things much better for localisation, for which
we generally discourage use of concatenation.
* Use pure CSS for the toggling of the visibility on focus,
instead of relying on JavaScript. Especially given the
JS comes form core's 'jquery.mw-jump' module, which is
considered technical debt per T195256. Alternatively,
that could be copied to vector.js, but pure CSS
is possible, so why not.
* Use plain <a> links in the HTML instead of wrapped in a <div>.
This solves the long-standing problem whereby the margin
between #contentSub and #mw-content-text had to be awkwardly
negated and overridden in core and on various to make sure that
the wrapper itself would become visible as needed, in a way that
has margin around this. This whole problem doesn't apply when
simply using inline links that aren't part of the regular flow
with .mixin-screen-reader-text. On focus, the individually
focussed link appears in regular flow, without the need for
any custom styles.
* This uses :not(:focus) to naturally make it render in the default
way on focus, and visibibly hidden/clipped otherwise.
This is supported in IE9+ and Android 2+.
There is a way to make it work with CSS2 for IE7-8, by applying
the mixin to '.mw-jump-link' only and then undoing all of
'position', 'width', 'height', 'clip', and 'margin' on :focus.
But I'm not sure that's worth it here. The fallback in IE7-8
for not supporting ":not(:focus)" is that the accessibility
link is simply visible always, which seems like a good fallback
for accessibility, and doesn't hurt anything.
Bug: T195256
Change-Id: Icaadb290f692b3617688d32cbb66dfb007f1c82c
2018-05-21 16:28:07 +00:00
"vector-jumptonavigation" : "Jump to navigation" ,
"vector-jumptosearch" : "Jump to search" ,
2020-09-08 23:20:58 +00:00
"vector-jumptocontent" : "Jump to content" ,
2020-09-11 20:50:04 +00:00
"vector-more-actions" : "More" ,
2021-05-07 21:56:29 +00:00
"vector-search-loader" : "Loading search suggestions" ,
2021-09-30 20:52:16 +00:00
"vector-searchsuggest-containing" : "Search for pages containing <strong class=\"wvui-typeahead-search__suggestions__footer__text__query\">$1</strong>" ,
2021-09-24 17:04:05 +00:00
"vector-intro-page" : "Help:Introduction" ,
2021-05-07 21:56:29 +00:00
"vector-anon-user-menu-pages" : "Pages for logged out editors" ,
2021-06-02 22:57:43 +00:00
"vector-anon-user-menu-pages-learn" : "learn more" ,
2021-08-25 20:16:33 +00:00
"vector-anon-user-menu-pages-label" : "Learn more about editing" ,
2021-08-25 15:24:58 +00:00
"vector-personal-more-label" : "User links" ,
"vector-main-menu-tooltip" : "Main menu" ,
2021-08-30 22:27:15 +00:00
"tooltip-vector-anon-user-menu-title" : "More options" ,
"vector-menu-checkbox-expanded" : "expanded" ,
"vector-menu-checkbox-collapsed" : "collapsed"
2014-08-07 11:38:34 +00:00
}