diff --git a/Gruntfile.js b/Gruntfile.js index a61aa60..fddda64 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,30 +1,20 @@ -/* eslint-env node */ +/* eslint-env node, es6 */ module.exports = function ( grunt ) { var conf = grunt.file.readJSON( 'skin.json' ); grunt.loadNpmTasks( 'grunt-banana-checker' ); grunt.loadNpmTasks( 'grunt-eslint' ); - grunt.loadNpmTasks( 'grunt-jsonlint' ); grunt.loadNpmTasks( 'grunt-stylelint' ); grunt.initConfig( { eslint: { options: { reportUnusedDisableDirectives: true, + extensions: [ '.js', '.json' ], cache: true }, all: [ - '*.js', - '**/*.js', - '!node_modules/**', - '!vendor/**' - ] - }, - jsonlint: { - all: [ - '*.json', - '**/*.json', - '!node_modules/**', - '!vendor/**' + '**/*.js{,on}', + '!{vendor,node_modules}/**' ] }, banana: conf.MessagesDirs, @@ -42,6 +32,6 @@ module.exports = function ( grunt ) { } } ); - grunt.registerTask( 'test', [ 'eslint', 'jsonlint', 'banana', 'stylelint' ] ); + grunt.registerTask( 'test', [ 'eslint', 'banana', 'stylelint' ] ); grunt.registerTask( 'default', 'test' ); }; diff --git a/collapsibleTabs.js b/collapsibleTabs.js index a23520a..9800856 100644 --- a/collapsibleTabs.js +++ b/collapsibleTabs.js @@ -4,8 +4,8 @@ * @class jQuery.plugin.collapsibleTabs */ ( function () { - var isRTL = document.documentElement.dir === 'rtl', - boundEvent = false, + var boundEvent, + isRTL = document.documentElement.dir === 'rtl', rAF = window.requestAnimationFrame || setTimeout; /** @@ -50,7 +50,7 @@ // if we haven't already bound our resize handler, bind it now if ( !boundEvent ) { boundEvent = true; - $( window ).on( 'resize', $.debounce( 100, function () { + $( window ).on( 'resize', mw.util.debounce( 10, function () { rAF( $.collapsibleTabs.handleResize ); } ) ); } @@ -96,7 +96,9 @@ }, handleResize: function () { $.collapsibleTabs.instances.forEach( function ( $el ) { - var data = $.collapsibleTabs.getSettings( $el ); + var $tab, + data = $.collapsibleTabs.getSettings( $el ); + if ( data.shifting ) { return; } @@ -105,24 +107,21 @@ if ( $el.children( data.collapsible ).length && data.collapseCondition() ) { $el.trigger( 'beforeTabCollapse' ); // move the element to the dropdown menu - $.collapsibleTabs.moveToCollapsed( $el.children( data.collapsible + ':last' ) ); + $.collapsibleTabs.moveToCollapsed( $el.children( data.collapsible ).last() ); } + $tab = $( data.collapsedContainer ).children( data.collapsible ).first(); // if there are still moveable items in the dropdown menu, // and there is sufficient space to place them in the tab container if ( $( data.collapsedContainer + ' ' + data.collapsible ).length && data.expandCondition( - $.collapsibleTabs.getSettings( - $( data.collapsedContainer ).children( - data.collapsible + ':first' ) - ).expandedWidth + $.collapsibleTabs.getSettings( $tab ).expandedWidth ) ) { // move the element from the dropdown to the tab $el.trigger( 'beforeTabExpand' ); - $.collapsibleTabs - .moveToExpanded( data.collapsedContainer + ' ' + data.collapsible + ':first' ); + $.collapsibleTabs.moveToExpanded( $tab ); } } ); }, @@ -156,9 +155,8 @@ rAF( $.collapsibleTabs.handleResize ); } ); }, - moveToExpanded: function ( ele ) { - var data, expContainerSettings, $target, expandedWidth, - $moving = $( ele ); + moveToExpanded: function ( $moving ) { + var data, expContainerSettings, $target, expandedWidth; data = $.collapsibleTabs.getSettings( $moving ); if ( !data ) { @@ -171,7 +169,7 @@ expContainerSettings.shifting = true; // grab the next appearing placeholder so we can use it for replacing - $target = $( data.expandedContainer ).find( 'span.placeholder:first' ); + $target = $( data.expandedContainer ).find( 'span.placeholder' ).first(); expandedWidth = data.expandedWidth; $moving.css( 'position', 'relative' ).css( ( isRTL ? 'right' : 'left' ), 0 ).css( 'width', '1px' ); $target.replaceWith( diff --git a/components/common.less b/components/common.less index ac4415d..46c6895 100644 --- a/components/common.less +++ b/components/common.less @@ -7,7 +7,7 @@ /* Framework */ html { - font-size: @html-font-size; + font-size: @font-size-root; } html, @@ -15,44 +15,50 @@ body { height: 100%; margin: 0; padding: 0; - font-family: @content-font-family; + font-family: @font-family-sans; } body { - background-color: @menu-background-color; + background-color: @background-color-secondary; } /* Content */ .mw-body, .parsoid-body { - padding: @content-padding; - background-color: @body-background-color; - color: @content-font-color; + background-color: @background-color-base; + color: @color-base; + padding: @padding-content; direction: ltr; } -.mw-body { +.mw-body, +#mw-data-after-content { margin-left: 10em; +} + +.mw-body { /* Border on top, left, and bottom side */ - border: 1px solid @content-border-color; + border: @border-width-base @border-style-base @border-color-content; border-right-width: 0; + /* Merge the border with tabs' one (in their background image) */ + margin-top: -@border-width-base; // h1's can exist outside of mw-body-content so some heading styles // need to be defined in mw-body as well & h1, &-content h1, &-content h2 { - font-family: @content-heading-font-family; - line-height: @heading-line-height; margin-bottom: 0.25em; padding: 0; + font-family: @font-family-serif; + line-height: @line-height-heading; - /* Fallback heading font for scripts which render poorly in @content-heading-font-family. */ - /* See T73240 */ + // Fallback heading font for scripts which render poorly in `@font-family-serif`. + // See T73240 &:lang( ja ), /* See T65817 */ &:lang( he ), /* See T65843 and T65844 */ &:lang( ko ) { /* See T65827 */ - font-family: @content-heading-font-family-generic; + font-family: @font-family-sans--fallback; } /* Burmese (Myanmar) language headlines would be cropped with set `line-height` */ @@ -64,7 +70,7 @@ body { & h1, &-content h1 { - font-size: @content-heading-font-size; + font-size: @font-size-heading-1; } .firstHeading { @@ -74,8 +80,8 @@ body { .mw-indicators { float: right; - line-height: @content-line-height; - font-size: @content-font-size; + font-size: @font-size-base; + line-height: @line-height-base; /* Ensure that this is displayed on top of .mw-body-content and clickable */ position: relative; z-index: 1; @@ -91,12 +97,11 @@ body { .mw-body-content { position: relative; - line-height: @content-line-height; - font-size: @content-font-size; + font-size: @font-size-base; + line-height: @line-height-base; z-index: 0; p { - line-height: inherit; margin: 0.5em 0; } @@ -105,22 +110,22 @@ body { } h2 { - font-size: 1.5em; margin-top: 1em; + font-size: @font-size-heading-2; } h3, h4, h5, h6 { - line-height: @content-line-height; margin-top: 0.3em; margin-bottom: 0; padding-bottom: 0; + line-height: @line-height-base; } h3 { - font-size: 1.2em; + font-size: @font-size-heading-3; } h3, @@ -131,19 +136,19 @@ body { h4, h5, h6 { - font-size: 100%; /* (reset) */ + font-size: @font-size-reset; // Reset. } .toc h2 { - font-size: 100%; /* (reset) */ - font-family: @content-font-family; + font-family: @font-family-sans; + font-size: @font-size-reset; // Reset. } } /* Allow edit sections outside of mw-body-content (T160269) */ .mw-editsection, .mw-editsection-like { - font-family: @content-font-family; + font-family: @font-family-sans; } /* Hide empty portlets */ @@ -152,15 +157,16 @@ div.emptyPortlet { } ul { + // No need for PNG fallback. Fallback is browser default (a smaller, also black, circle). .list-style-image( 'images/bullet-icon.svg' ); } pre, .mw-code { - line-height: 1.3em; + line-height: @line-height-code; } /* Site Notice (includes notices from CentralNotice extension) */ #siteNotice { - font-size: 0.8em; + font-size: @font-size-site-notice; } diff --git a/components/footer.less b/components/footer.less index a8dc662..d6e1e72 100644 --- a/components/footer.less +++ b/components/footer.less @@ -9,43 +9,37 @@ list-style: none none; margin: 0; padding: 0; - - li { - color: #222; - margin: 0; - padding: 0; - padding-top: 0.5em; - padding-bottom: 0.5em; - font-size: 0.7em; - } } - #footer-icons { - float: right; - - li { - float: left; - margin-left: 0.5em; - line-height: 2em; - text-align: right; - } - } - - #footer-info { - li { - line-height: 1.4em; - } - } - - #footer-places { - li { - float: left; - margin-right: 1em; - line-height: 2em; - } - - #footer-places-disclaimer { - display: none; - } + li { + color: @color-base; + margin: 0; + padding: 0.5em 0; + font-size: @font-size-footer; + } +} + +#footer-icons { + float: right; + + li { + float: left; + margin-left: 0.5em; + line-height: @line-height-footer-buttons; + text-align: right; + } +} + +#footer-info { + li { + line-height: @line-height-footer-info; + } +} + +#footer-places { + li { + float: left; + margin-right: 1em; + line-height: @line-height-footer-buttons; } } diff --git a/components/navigation.less b/components/navigation.less index 910fe53..32a3c2c 100644 --- a/components/navigation.less +++ b/components/navigation.less @@ -1,5 +1,5 @@ @import 'mediawiki.mixins'; -@import 'personalMenu'; +@import 'personalNavigation'; @import 'search'; @import 'tabs'; @@ -17,11 +17,7 @@ #mw-page-base { height: 5em; background-position: bottom left; - background-repeat: repeat-x; - /* This image is only a fallback (for IE 6-9), so we do not @embed it. */ - background-image: url( images/page-fade.png ); - .vertical-gradient( @body-background-color, @menu-background-color, 50%, 100% ); - background-color: @body-background-color; + .vertical-gradient( @background-color-base, @background-color-secondary, 50%, 100% ); } #mw-head-base { @@ -61,53 +57,53 @@ /* Panel */ #mw-panel { - font-size: @menu-main-font-size; position: absolute; top: 60px; width: 10em; left: 0; + font-size: @font-size-nav-main; .portal { margin: 0 0.6em 0 0.7em; padding: 0.25em 0; direction: ltr; - background-position: top left; - background-repeat: no-repeat; h3 { - font-size: @menu-main-heading-font-size; - color: @menu-main-heading-color; + color: @color-nav-subtle; font-weight: normal; - margin: 0.5em 0 0 (@menu-main-body-margin-left/@menu-main-heading-font-size); + margin: 0.5em 0 0 ( @margin-left-nav-main-body / @font-size-nav-main-heading ); padding: 0.25em 0; cursor: default; border: 0; + font-size: @font-size-nav-main-heading; } .body { - margin-left: @menu-main-body-margin-left; + margin-left: @margin-left-nav-main-body; padding-top: 0; - .background-image( 'images/portal-break.png' ); + background-image: url( images/portal-separator.png ); // Support: IE 8 & 9, Fx 3.6-15, Safari 5.1-6, Chrome 10-25 + background-image: linear-gradient( to right, transparent 0, #c8ccd1 35%, #c8ccd1 70%, transparent 100% ); // Standard (Firefox 16+, IE 10+, Safari 6.1+, Chrome 26+) background-repeat: no-repeat; + background-size: 100% @border-width-base; ul { list-style: none none; margin: 0; - padding: @menu-main-body-padding; + padding-top: 0.3em; } li { - line-height: 1.125em; margin: 0; padding: 0.25em 0; - font-size: @menu-main-body-font-size; + font-size: @font-size-nav-main-body; + line-height: @line-height-nav; word-wrap: break-word; a { - color: @menu-main-body-link-color; + color: @color-link; &:visited { - color: @menu-main-body-link-visited-color; + color: @color-link--visited; } } } @@ -125,7 +121,7 @@ .body { background-image: none; - margin-left: @menu-main-body-margin-left; + margin-left: @margin-left-nav-main-body; } } } diff --git a/components/personalMenu.less b/components/personalNavigation.less similarity index 81% rename from components/personalMenu.less rename to components/personalNavigation.less index e6a9e1d..03c506b 100644 --- a/components/personalMenu.less +++ b/components/personalNavigation.less @@ -10,8 +10,8 @@ // `padding-top` instead of `margin-top` necessary for // anonymous user icon position below padding-top: 0.5em; - font-size: @font-size-menu-personal; - line-height: @line-height-menu-personal; + font-size: @font-size-nav-personal; + line-height: @line-height-nav-personal; white-space: nowrap; } } @@ -22,9 +22,9 @@ // SVG support using a transparent gradient to guarantee cross-browser // compatibility (browsers able to understand gradient syntax support also SVG) .background-image-svg( 'images/user-avatar.svg', 'images/user-avatar.png' ); - background-position: @background-position-menu-personal-icon; + background-position: @background-position-nav-personal-icon; background-repeat: no-repeat; - background-size: @line-height-menu-personal @line-height-menu-personal; + background-size: @background-size-nav-personal-icon @background-size-nav-personal-icon; // Same as `#p-personal li` above padding-top: 0.5em !important; // stylelint-disable-line declaration-no-important padding-left: 16px !important; // stylelint-disable-line declaration-no-important diff --git a/components/search.less b/components/search.less index 58b1cec..f310d79 100644 --- a/components/search.less +++ b/components/search.less @@ -9,98 +9,105 @@ .mixin-screen-reader-text; } - form, - input { - margin: 0.4em 0 0; + form { + margin: 0.5em 0 0; } } #simpleSearch { - background-color: #fff; - .background-image( 'images/search-fade.png' ); - background-position: top left; - background-repeat: repeat-x; - color: #000; display: block; + width: 13.2em; + width: 20vw; /* responsive width */ + min-width: 5em; max-width: 20em; - padding-right: 1.4em; - height: 1.4em; - margin-top: 0.65em; + height: 100%; + margin-top: 0; position: relative; min-height: 1px; /* Gotta trigger hasLayout for IE7 */ - border: 1px solid @colorGray10; - border-radius: @borderRadius; - .transition( border-color 250ms ); - &:hover { + // Styles for both the search input and the button. + input { + // Support IE6-8: Fallback for browsers, which don't support `rgba()`. + background-color: @background-color-base; + background-color: rgba( 0, 0, 0, 0 ); + color: @color-base--emphasized; + margin: 0; + } +} + +// The search input. + +#searchInput { + width: 100%; + .box-sizing( border-box ); + border: @border-width-base @border-style-base @colorGray10; + border-radius: @borderRadius; + // `padding-right` equals to `#searchbutton` width below. + padding: 0.4em @width-search-button 0.4em 0.4em; + .box-shadow( @boxShadowWidget ); + font-size: @font-size-search-input; + direction: ltr; + .transition( ~'border-color 250ms, box-shadow 250ms' ); + // Support: Webkit browsers. Undo the proprietary styles applied to `type=search` fields, + // we provide our own. + -webkit-appearance: textfield; + + #simpleSearch:hover & { border-color: @colorGray7; } - // Styles for both the search input and the button - input { - background-color: transparent; - color: #000; - margin: 0; - padding: 0; - border: 0; + &:focus, + #simpleSearch:hover &:focus { + outline: 0; + border-color: @colorProgressive; + .box-shadow( @boxShadowProgressiveFocus ); } - // The search input - #searchInput { - width: 100%; - padding: 0.2em 0 0.2em 0.2em; - font-size: 0.8125em; // equals `13px` at browser default of `16px` - direction: ltr; + .mixin-placeholder( { + color: @colorGray7; + opacity: 1; + } ); - &:focus { - outline: 0; - } - - /* stylelint-disable indentation */ - .mixin-placeholder( { - color: @colorGray7; - opacity: 1; - } ); - /* stylelint-enable indentation */ - - // Undo the styles Webkit browsers apply to type=search fields, - // we provide our own + &::-webkit-search-decoration, + &::-webkit-search-cancel-button, + &::-webkit-search-results-button, + &::-webkit-search-results-decoration { -webkit-appearance: textfield; - - &::-webkit-search-decoration, - &::-webkit-search-cancel-button, - &::-webkit-search-results-button, - &::-webkit-search-results-decoration { - -webkit-appearance: textfield; - } - } - - // The buttons. They are displayed in the same position, and if both are - // present the fulltext search one obscures the 'Go' one. - #searchButton, - #mw-searchButton { - position: absolute; - top: 0; - right: 0; - width: 1.65em; - height: 100%; - cursor: pointer; - /* Hide button text and replace it with the image. */ - text-indent: -99999px; - /* Opera 12 on RTL flips the text in a funny way without this. */ - /* @noflip */ - direction: ltr; - white-space: nowrap; - overflow: hidden; - } - - #searchButton { - .background-image-svg( 'images/search-ltr.svg', 'images/search-ltr.png' ); - background-position: center center; - background-repeat: no-repeat; - } - - #mw-searchButton { - z-index: 1; } } + +// The buttons. They are displayed in the same position, and if both are +// present the fulltext search one obscures the 'Go' one. +#searchButton, +#mw-searchButton { + position: absolute; + top: @border-width-base; + bottom: @border-width-base; + // `@border-width-base * 2` is in regards to harmonize position start and end. + right: @border-width-base; + min-width: 24px; + width: @width-search-button; + border: 0; + padding: 0; + cursor: pointer; + // Equal `font-size` to search input for `padding` calculationo. + font-size: @font-size-search-input; + /* Opera 12 on RTL flips the text in a funny way without this. */ + /* @noflip */ + direction: ltr; + /* Hide button text and replace it with the image. */ + text-indent: -99999px; + white-space: nowrap; + overflow: hidden; + z-index: 1; +} + +#searchButton { + .background-image-svg( 'images/search.svg', 'images/search.png' ); + background-position: center center; + background-repeat: no-repeat; +} + +#mw-searchButton { + z-index: 1; +} diff --git a/components/tabs.less b/components/tabs.less index 1f481c1..385ea3d 100644 --- a/components/tabs.less +++ b/components/tabs.less @@ -6,12 +6,11 @@ /* Namespaces and Views */ .vectorTabs { - display: inline-block; + // Tab separator: Outer start border (left in LTR) of tab row. + background-position: left bottom; + float: left; height: 2.5em; - /* .background-image('images/tab-break.png'); */ - background-position: bottom left; - background-repeat: no-repeat; - padding-left: 1px; + padding-left: @border-width-base; /* Navigation Labels */ h3 { @@ -27,47 +26,63 @@ } li { + // Tab fade background: Fade inside from light grey to white. + background-image: url( images/tab-normal-fade.png ); // Support: IE 8 & 9, Fx 3.6-15, Safari 5.1-6, Chrome 10-25 + background-image: linear-gradient( to top, @border-color-content--tabs-inactive 0, #e8f2f8 1px, #fff 100% ); // Support: Standard (Firefox 16+, IE 10+, Safari 6.1+, Chrome 26+) + background-position: left bottom; + background-repeat: repeat-x; float: left; - line-height: 1.125em; display: block; height: 100%; margin: 0; padding: 0; - .background-image('images/tab-normal-fade.png'); - background-position: bottom left; - background-repeat: repeat-x; + line-height: @line-height-nav; white-space: nowrap; - &.new { - a, - a:visited { - color: #a55858; - } - } - - &.selected { - a, - a:visited { - color: #222; - text-decoration: none; - } - } - - &.icon { - a { - background-position: bottom right; - background-repeat: no-repeat; - } - } - a { - color: @menu-link-color; + color: @color-link; + display: block; + height: 1.9em; + padding-left: 0.615em; // Equals `8px` at computed `font-size` of `13px` below + padding-right: 0.615em; cursor: pointer; - font-size: 0.8125em; // Equals `13px` at browser default of `16px` + font-size: @font-size-tabs; } } + .new { + a, + a:visited { + color: @color-link-new; + } + } + + .selected { + // Replace tab fade with flat color (matching top of would-be fade). + background-image: url( images/tab-current-fade.png ); + // Overwrite above in browsers that support `rgba()`. + background: rgba( 255, 255, 255, 1 ); // stylelint-disable-line declaration-block-no-shorthand-property-overrides + + a, + a:visited { + color: @color-link-selected; + text-decoration: none; + } + } + + .icon { + a { + background-position: right bottom; + background-repeat: no-repeat; + } + } + + // Tab separator: Border between tabs and outer right border. span { + background-position: right bottom; + display: inline-block; + height: 100%; + a { display: block; position: relative; @@ -83,14 +98,14 @@ h3 { span { + color: @color-nav-subtle; position: relative; display: block; - font-size: 0.8125em; padding-left: 0.615em; padding-top: 1.25em; padding-right: 16px; + font-size: @font-size-tabs; font-weight: normal; - color: #444; &:after { content: ''; @@ -109,7 +124,7 @@ &:hover span, &:focus span { - color: @content-font-color; + color: @color-base; &:after { opacity: 1; @@ -119,15 +134,15 @@ .menu { list-style: none none; - background-color: @body-background-color; + background-color: @background-color-base; clear: both; // Match the width of the dropdown "heading" (the tab) min-width: 100%; position: absolute; top: 2.5em; - left: -1px; + left: -@border-width-base; margin: 0; - border: 1px solid #a2a9b1; + border: @border-width-base @border-style-base @border-color-base; border-top-width: 0; padding: 0; box-shadow: 0 1px 1px 0 rgba( 0, 0, 0, 0.1 ); @@ -151,14 +166,6 @@ visibility: visible; } - // FIXME: `.vectorMenu ul` can be removed with purged HTML cache - ul { - list-style: none none; - padding: 0; - margin: 0; - text-align: left; - } - li { padding: 0; margin: 0; @@ -166,35 +173,48 @@ line-height: 1em; a { + color: @color-link; display: block; padding: 0.625em; white-space: nowrap; - color: @menu-link-color; cursor: pointer; - font-size: 0.8125em; + font-size: @font-size-tabs; } + } - &.selected a, - &.selected a:visited { - color: #222; - text-decoration: none; - } + .selected a, + .selected a:visited { + color: @color-link-selected; + text-decoration: none; } } #mw-head .vectorMenu h3 { + // Tab separator: Outer end (right in LTR) border of "Actions" menu. + background-position: right bottom; float: left; - .background-image('images/tab-break.png'); - background-repeat: no-repeat; - background-position: bottom right; - font-size: 1em; + font-size: @font-size-reset; height: 2.5em; + margin: 0 -@border-width-base 0 0; // `padding-right` >= `1px` effectively moves the "background border" outside of the element to // act like a real border. It is necessary for `.vectorMenu .menu` dropdown to align well. // 0.5em equals `8px` at computed `font-size` of `14px` as visually harmonically with // `padding-left` in `.vectorMenu h3 span` padding: 0 0.5em 0 0; - margin: 0 -1px 0 0; +} + +// Tab Separators +// `.vectorTabs`: Outer start border (left in LTR) of tab row. +// `.vectorTabs span`: Border between tabs and outer end (right in LTR) border. +// `#mw-head .vectorMenu h3`: // Outer end (right in LTR) border of "Actions" menu. +.vectorTabs, +.vectorTabs span, +#mw-head .vectorMenu h3 { + background-image: url( images/tab-separator.png ); + background-image: linear-gradient( to bottom, rgba( 167, 215, 249, 0 ) 0, @border-color-content 100% ); + background-repeat: no-repeat; + // Contain gradient to 1px × 100% size and draw from top to bottom-left or -right corner. + background-size: @border-width-base 100%; } // Invisible checkbox covering the dropdown menu handle diff --git a/components/watchstar.less b/components/watchstar.less index 37f0739..49d4c25 100644 --- a/components/watchstar.less +++ b/components/watchstar.less @@ -4,8 +4,8 @@ /* Only use icon if the menu item is not collapsed into the "More" dropdown * (in which case it is inside .vectorMenu instead of .vectorTabs). */ .vectorTabs { - #ca-unwatch.icon a, - #ca-watch.icon a { + // `#ca-unwatch` & `#ca-watch` both carry `.mw-watchlink` as well. + .mw-watchlink.icon a { margin: 0; padding: 0; display: block; @@ -37,9 +37,10 @@ .background-image-svg( 'images/watch-icon-hl.svg', 'images/watch-icon-hl.png' ); } - #ca-unwatch.icon a.loading, - #ca-watch.icon a.loading { - .background-image-svg( 'images/watch-icon-loading.svg', 'images/watch-icon-loading.png' ); + // Loading watchstar link class. + #ca-unwatch.icon .loading, + #ca-watch.icon .loading { + background-image: url( images/watch-icon-loading.svg ); .rotation( 700ms ); /* Suppress the hilarious rotating focus outline on Firefox */ outline: 0; @@ -49,9 +50,4 @@ -webkit-transform-origin: 50% 57%; transform-origin: 50% 57%; } - - #ca-unwatch.icon a span, - #ca-watch.icon a span { - display: none; - } } diff --git a/composer.json b/composer.json index d5f5fed..7173a6f 100644 --- a/composer.json +++ b/composer.json @@ -32,14 +32,14 @@ "dev-master": "1.x-dev" }, "installer-name": "Vector", - "phan-taint-check-plugin": "1.5.0" + "phan-taint-check-plugin": "2.0.1" }, "require-dev": { "jakub-onderka/php-parallel-lint": "1.0.0", - "mediawiki/mediawiki-codesniffer": "24.0.0", + "mediawiki/mediawiki-codesniffer": "26.0.0", "jakub-onderka/php-console-highlighter": "0.3.2", "mediawiki/minus-x": "0.3.1", - "mediawiki/mediawiki-phan-config": "0.5.0" + "mediawiki/mediawiki-phan-config": "0.6.1" }, "scripts": { "fix": [ diff --git a/i18n/aeb-arab.json b/i18n/aeb-arab.json index 01369c9..f8e53b8 100644 --- a/i18n/aeb-arab.json +++ b/i18n/aeb-arab.json @@ -16,6 +16,6 @@ "vector-view-edit": "بدّل", "vector-view-history": "ورّي الپاج", "vector-view-view": "أقرا", - "vector-view-viewsource": "اعرض المصدر", + "vector-view-viewsource": "عرض المصدر", "vector-more-actions": "زادة" } diff --git a/i18n/ar.json b/i18n/ar.json index 0695f22..89d1c04 100644 --- a/i18n/ar.json +++ b/i18n/ar.json @@ -14,7 +14,7 @@ ] }, "skinname-vector": "فكتور", - "vector-skin-desc": "نسة حديثة من مونوبوك بمظهر جديد وسهولة الاستخدام", + "vector-skin-desc": "نسخة حديثة من مونوبوك بمظهر جديد وتحسينات لسهولة الاستخدام", "vector.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة فكتور */", "vector.js": "/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة فكتور */", "vector-action-addsection": "أضف موضوعا", @@ -27,7 +27,7 @@ "vector-view-edit": "عدل", "vector-view-history": "تاريخ", "vector-view-view": "اقرأ", - "vector-view-viewsource": "اعرض المصدر", + "vector-view-viewsource": "عرض المصدر", "vector-jumptonavigation": "اذهب إلى التنقل", "vector-jumptosearch": "اذهب إلى البحث", "vector-more-actions": "المزيد" diff --git a/i18n/ary.json b/i18n/ary.json index 9eb10b5..05639fb 100644 --- a/i18n/ary.json +++ b/i18n/ary.json @@ -4,18 +4,19 @@ "Enzoreg", "Zanatos", "Abdeaitali", - "Reda Benkhadra" + "Reda Benkhadra", + "SADIQUI" ] }, - "vector-action-addsection": "Zid topic", + "vector-action-addsection": "زيد شي موضوع", "vector-action-delete": "Suprimi", "vector-action-move": "Neqel", "vector-action-protect": "Ḫami", "vector-action-undelete": "rja lhadf", "vector-action-unprotect": "Ḫiyed l-ḫimaya", - "vector-view-create": "Ĥṫareĝ", - "vector-view-edit": "Ĝedel", - "vector-view-history": "Ṫariĥ l-fiċyé", + "vector-view-create": "صاوب", + "vector-view-edit": "عدل", + "vector-view-history": "تاريخ", "vector-view-view": "قرا", "vector-view-viewsource": "Ċof l-masdar", "vector-more-actions": "زيد" diff --git a/i18n/ban.json b/i18n/ban.json index 4641011..f34caa4 100644 --- a/i18n/ban.json +++ b/i18n/ban.json @@ -2,16 +2,20 @@ "@metadata": { "authors": [ "Adi Mayndra", - "BASAbali" + "BASAbali", + "Carma citrawati", + "Joseagush", + "NoiX180" ] }, - "vector-action-addsection": "imbuhin indik wacana", - "vector-action-delete": "ngapus", - "vector-action-move": "kisidang", - "vector-action-protect": "nyaga", - "vector-view-create": "ngawe", - "vector-view-edit": "mecikang", - "vector-view-history": "indik sane lintang", - "vector-view-view": "Waca", - "vector-view-viewsource": "cingak witnyane" + "vector-action-addsection": "Tambeh topik", + "vector-action-delete": "Usap", + "vector-action-move": "Gingsirang", + "vector-action-protect": "Saib", + "vector-view-create": "Kardi", + "vector-view-edit": "Uah", + "vector-view-history": "Cingak babad", + "vector-view-view": "Wacén", + "vector-view-viewsource": "Cingak wit", + "vector-more-actions": "Lianan" } diff --git a/i18n/bcc.json b/i18n/bcc.json index f6c3c4d..fd68b4a 100644 --- a/i18n/bcc.json +++ b/i18n/bcc.json @@ -2,7 +2,8 @@ "@metadata": { "authors": [ "Mostafadaneshvar", - "RigiMahnoor" + "RigiMahnoor", + "Sultanselim baloch" ] }, "vector-action-addsection": "هور کتن عنوان", @@ -12,9 +13,9 @@ "vector-action-undelete": "ترینگ", "vector-action-unprotect": "پروتکشنء ٹگل بدئ", "vector-view-create": "شرکتن", - "vector-view-edit": "اصلاح", - "vector-view-history": "چارتن تاریح", - "vector-view-view": "وانتن", + "vector-view-edit": "ٹگلݔنگ", + "vector-view-history": "رمسءِ چارگ", + "vector-view-view": "وانگ", "vector-view-viewsource": "پیشدارگ بن جاه", - "vector-more-actions": "گیشتر" + "vector-more-actions": "گݔشتِر" } diff --git a/i18n/bcl.json b/i18n/bcl.json index 2599322..9ac5067 100644 --- a/i18n/bcl.json +++ b/i18n/bcl.json @@ -2,10 +2,11 @@ "@metadata": { "authors": [ "Filipinayzd", - "Geopoet" + "Geopoet", + "ShimunUfesoj" ] }, - "vector-action-addsection": "Idagdag an topic", + "vector-action-addsection": "Magdagdag nin pag-uulayan", "vector-action-delete": "puráon", "vector-action-move": "Ibalyó", "vector-action-protect": "Protektaran", @@ -14,7 +15,7 @@ "vector-view-create": "Magmukna", "vector-view-edit": "Liwatón", "vector-view-history": "Tanawon sa historiya", - "vector-view-view": "Basáha", + "vector-view-view": "Basáhon", "vector-view-viewsource": "Hilingón an ginikánan", "vector-more-actions": "Kadugangan" } diff --git a/i18n/bjn.json b/i18n/bjn.json index 61cb74e..07d706c 100644 --- a/i18n/bjn.json +++ b/i18n/bjn.json @@ -13,7 +13,8 @@ "vector-action-unprotect": "Palindungan", "vector-view-create": "Ulah", "vector-view-edit": "Babak", - "vector-view-history": "Tiringi halam", + "vector-view-history": "Tiringi sajarah", "vector-view-view": "Baca", - "vector-view-viewsource": "Tiringi asal mula" + "vector-view-viewsource": "Tiringi asal mula", + "vector-more-actions": "Lainnya" } diff --git a/i18n/ce.json b/i18n/ce.json index 484644b..b72b094 100644 --- a/i18n/ce.json +++ b/i18n/ce.json @@ -19,5 +19,7 @@ "vector-view-history": "АгӀона хийцамаш", "vector-view-view": "Éшар", "vector-view-viewsource": "Билглонашка хьажа", + "vector-jumptonavigation": "Навигацин тӀегӀо", + "vector-jumptosearch": "Лахарна тӀегӀо", "vector-more-actions": "Кхин" } diff --git a/i18n/cnr-latn.json b/i18n/cnr-latn.json new file mode 100644 index 0000000..272fca1 --- /dev/null +++ b/i18n/cnr-latn.json @@ -0,0 +1,15 @@ +{ + "@metadata": { + "authors": [ + "Bellatrix10" + ] + }, + "vector-action-addsection": "Dodaj temu", + "vector-action-delete": "Izbriši", + "vector-action-move": "Premjesti", + "vector-action-protect": "Zaštiti", + "vector-view-edit": "Uredi", + "vector-view-history": "Pregledaj istoriju", + "vector-view-view": "Čitaj", + "vector-more-actions": "Više" +} diff --git a/i18n/co.json b/i18n/co.json index ad84420..2698088 100644 --- a/i18n/co.json +++ b/i18n/co.json @@ -1,7 +1,8 @@ { "@metadata": { "authors": [ - "Paulu" + "Paulu", + "Jun Misugi" ] }, "vector-action-addsection": "Aghjunghje discussione", @@ -13,5 +14,6 @@ "vector-view-edit": "Mudificà", "vector-view-history": "Vede a cronolugia", "vector-view-view": "Leghje", - "vector-view-viewsource": "Vede a surghjente" + "vector-view-viewsource": "Vede a surghjente", + "vector-more-actions": "Più" } diff --git a/i18n/cs.json b/i18n/cs.json index 0c95c19..163d35e 100644 --- a/i18n/cs.json +++ b/i18n/cs.json @@ -2,11 +2,12 @@ "@metadata": { "authors": [ "Mormegil", - "Dvorapa" + "Dvorapa", + "Patriccck" ] }, "skinname-vector": "Vektor", - "vector-skin-desc": "Moderní verze MonoBooku s novějším vzhledem a vylepšenou použitelností", + "vector-skin-desc": "Moderní verze vzhledu Kniha s novějším vzhledem a vylepšenou použitelností", "vector.css": "/* Zde uvedené CSS bude ovlivňovat pouze vzhled „Vektor“ */", "vector.js": "/* Zde uvedený JavaScript bude použit pouze pro uživatele vzhledu „Vektor“ */", "vector-action-addsection": "Přidat téma", diff --git a/i18n/diq.json b/i18n/diq.json index b708a55..8fbd8b2 100644 --- a/i18n/diq.json +++ b/i18n/diq.json @@ -11,23 +11,24 @@ "Velg", "1917 Ekim Devrimi", "Dılmıc", - "Gambollar" + "Gambollar", + "Orbot707" ] }, "skinname-vector": "Vektor", "vector-skin-desc": "Asayışo de newe be versiyonê MonoBookiyo modern ra û weşkerdışê ke şenê bıgureniyê", - "vector-action-addsection": "Mewzu vıraze", + "vector-action-addsection": "Mewzu dek", "vector-action-delete": "Bestere", "vector-action-move": "Bıkırışe", "vector-action-protect": "Bışevekne", - "vector-action-undelete": "Peyser biya", + "vector-action-undelete": "Meestere", "vector-action-unprotect": "Sıtarnayışi bıvurne", - "vector-view-create": "Vıraze", + "vector-view-create": "Vıraz", "vector-view-edit": "Bıvurne", - "vector-view-history": "Verênan bıvêne", + "vector-view-history": "Verêni bıvêne", "vector-view-view": "Bıwane", "vector-view-viewsource": "Rêçi bıvin", - "vector-jumptonavigation": "Xıl de pusula", + "vector-jumptonavigation": "Xıl de be pusula", "vector-jumptosearch": "Xıl de cıgeyrayışi", - "vector-more-actions": "Tayêna" + "vector-more-actions": "Zêde" } diff --git a/i18n/eo.json b/i18n/eo.json index 730aa2c..13a590c 100644 --- a/i18n/eo.json +++ b/i18n/eo.json @@ -3,10 +3,12 @@ "authors": [ "KuboF", "Objectivesea", - "Yekrats" + "Yekrats", + "Mirin" ] }, "skinname-vector": "Vektoro", + "vector-skin-desc": "Moderna versio de MonoBook kun freŝa aspekto kaj plibonigo de uzebleco", "vector.css": "/* La jena CSS influos la paĝaspekton por uzantoj de la Vektora temo. */", "vector.js": "/* La jena Ĝavaskripto ŝargiĝos por uzantoj de la Vektora temo. */", "vector-action-addsection": "Aldoni temon", @@ -20,5 +22,7 @@ "vector-view-history": "Vidi historion", "vector-view-view": "Legi", "vector-view-viewsource": "Vidi fonton", + "vector-jumptonavigation": "Salti al navigilo", + "vector-jumptosearch": "Salti al serĉilo", "vector-more-actions": "Pli" } diff --git a/i18n/fa.json b/i18n/fa.json index 612126a..5542673 100644 --- a/i18n/fa.json +++ b/i18n/fa.json @@ -11,20 +11,20 @@ ] }, "skinname-vector": "وکتور", - "vector-skin-desc": "نسخهٔ مدرن مونوبوک با نمای جدید و بهینه‌سازی‌های کاربردی", + "vector-skin-desc": "نگارش مدرن مونوبوک با نمای تازه و بهینه‌سازی‌های کاربردی", "vector.css": "/* دستورات این بخش کاربرانی را که از پوستهٔ وکتور استفاده کنند تحت تاثیر قرار می‌دهند. */", "vector.js": "/ * کدهای جاوااسکریپتی که در اینجا قرار می‌گیرند برای کاربران پوستهٔ وکتور بارگیری می‌شود * /", "vector-action-addsection": "افزودن بخش", "vector-action-delete": "حذف", "vector-action-move": "انتقال", "vector-action-protect": "محافظت", - "vector-action-undelete": "بازیابی", + "vector-action-undelete": "احیا", "vector-action-unprotect": "تغییر سطح حفاظت", "vector-view-create": "ایجاد", "vector-view-edit": "ویرایش", "vector-view-history": "نمایش تاریخچه", "vector-view-view": "خواندن", - "vector-view-viewsource": "نمایش خاستگاه", + "vector-view-viewsource": "نمایش مبدأ", "vector-jumptonavigation": "پرش به ناوبری", "vector-jumptosearch": "پرش به جستجو", "vector-more-actions": "بیشتر" diff --git a/i18n/fi.json b/i18n/fi.json index 9d85fb1..5cf5a81 100644 --- a/i18n/fi.json +++ b/i18n/fi.json @@ -6,12 +6,14 @@ "Nike", "Pxos", "SuperPete", - "01miki10" + "01miki10", + "Pyscowicz" ] }, + "skinname-vector": "Vektori", "vector-skin-desc": "Uudistettu versio MonoBookista raikkaalla ulkoasulla ja useilla käytettävyysparannuksilla", - "vector.css": "/* Tämä sivu sisältää Vector-ulkoasua muuttavia tyylejä. */", - "vector.js": "/* Tämän sivun JavaScript-koodi liitetään Vector-tyyliin */", + "vector.css": "/* Tämä sivu sisältää Vektori-ulkoasua muuttavia tyylejä. */", + "vector.js": "/* Tämän sivun JavaScript-koodi liitetään Vektori-tyyliin */", "vector-action-addsection": "Lisää aihe", "vector-action-delete": "Poista", "vector-action-move": "Siirrä", diff --git a/i18n/fon.json b/i18n/fon.json index 96d417b..fe9d51d 100644 --- a/i18n/fon.json +++ b/i18n/fon.json @@ -1,7 +1,8 @@ { "@metadata": { "authors": [ - "Mahuton" + "Mahuton", + "Amire80" ] }, "vector-action-addsection": "Gɔ́ xóta yɔ́yɔ́ ɖévo ná", @@ -9,5 +10,5 @@ "vector-view-edit": "Wlǎn nú gɔnu nuwlǎnwlǎn ɔ", "vector-view-history": "Yín nukún ɖo ɖiɖyɔ tɛnmɛ tɛnmɛ wémá ɔ tɔn lɛ jí", "vector-view-view": "Xá", - "vector-more-actions": "susu" + "vector-more-actions": "Susu" } diff --git a/i18n/fy.json b/i18n/fy.json index 7289f30..72aa04d 100644 --- a/i18n/fy.json +++ b/i18n/fy.json @@ -8,6 +8,7 @@ "PiefPafPier" ] }, + "skinname-vector": "Vektor", "vector-action-addsection": "Nij mêd", "vector-action-delete": "Fuortsmite", "vector-action-move": "Omneame", diff --git a/i18n/gaa.json b/i18n/gaa.json index d267571..410911a 100644 --- a/i18n/gaa.json +++ b/i18n/gaa.json @@ -3,7 +3,8 @@ "authors": [ "Flixtey", "Mybluberet", - "Gkbediako" + "Gkbediako", + "Amire80" ] }, "vector-action-addsection": "Kɛ mlijaa yitso afata he", @@ -12,7 +13,7 @@ "vector-action-protect": "Yibaamɔ", "vector-view-create": "Bɔɔ", "vector-view-edit": "Tsakemɔ", - "vector-view-history": "kwɛmɔ nibii ni eho", + "vector-view-history": "Kwɛmɔ nibii ni eho", "vector-view-view": "Kanemɔ", "vector-more-actions": "Pii" } diff --git a/i18n/hyw.json b/i18n/hyw.json index 295395b..86f5c72 100644 --- a/i18n/hyw.json +++ b/i18n/hyw.json @@ -3,13 +3,14 @@ "authors": [ "Azniv Stepanian", "ArmenBakkalian", - "Rajemian" + "Rajemian", + "Դավիթ Սարոյան" ] }, "vector-action-addsection": "Աւելցնել քննարկում", "vector-action-delete": "Ջնջել", "vector-action-move": "Տեղափոխել այս էջը", - "vector-action-protect": "Պահպանել", + "vector-action-protect": "Պահել", "vector-view-create": "Ստեղծել", "vector-view-edit": "Խմբագրել", "vector-view-history": "Տեսնել պատմութիւնը", diff --git a/i18n/io.json b/i18n/io.json index 72f54b9..cb6e8ee 100644 --- a/i18n/io.json +++ b/i18n/io.json @@ -17,5 +17,6 @@ "vector-view-history": "Vidar versionaro", "vector-view-view": "Lektar", "vector-view-viewsource": "Vidar fonto", + "vector-jumptosearch": "Irez a serchilo", "vector-more-actions": "Pluse" } diff --git a/i18n/kea.json b/i18n/kea.json index a87588f..a88e43a 100644 --- a/i18n/kea.json +++ b/i18n/kea.json @@ -2,11 +2,13 @@ "@metadata": { "authors": [ "Waldir", - "Quintino Lopes Castro Tavares" + "Quintino Lopes Castro Tavares", + "Waldyrious" ] }, "vector-view-edit": "Muda", - "vector-view-history": "Konsulta istóriku", + "vector-view-history": "Odja istóriku", "vector-view-view": "Lê", + "vector-view-viewsource": "Odja kódigu-fonti", "vector-more-actions": "Más" } diff --git a/i18n/kiu.json b/i18n/kiu.json index 98ae53b..3d1ab49 100644 --- a/i18n/kiu.json +++ b/i18n/kiu.json @@ -2,7 +2,8 @@ "@metadata": { "authors": [ "Mirzali", - "Kumkumuk" + "Kumkumuk", + "1917 Ekim Devrimi" ] }, "vector-skin-desc": "Asayışo de newe be versiyonê MonoBookiyo modern ra û weşkerdışê ke şenê bıgureniyê", @@ -17,5 +18,7 @@ "vector-view-history": "Tarixi bıvêne", "vector-view-view": "Bıwane", "vector-view-viewsource": "Çımey bıvêne", + "vector-jumptonavigation": "Xıl de be pusula", + "vector-jumptosearch": "Xıl de cıgeyrayışi", "vector-more-actions": "Zêde" } diff --git a/i18n/kjh.json b/i18n/kjh.json new file mode 100644 index 0000000..1ff9954 --- /dev/null +++ b/i18n/kjh.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "Андрей Саг." + ] + }, + "vector-view-create": "Идебзерге", + "vector-view-edit": "Тӱзедерге" +} diff --git a/i18n/lad.json b/i18n/lad.json index 8819643..8374031 100644 --- a/i18n/lad.json +++ b/i18n/lad.json @@ -1,7 +1,8 @@ { "@metadata": { "authors": [ - "Universal Life" + "Universal Life", + "Chabi1" ] }, "vector-action-addsection": "Ajustar sujeto", @@ -9,8 +10,8 @@ "vector-action-move": "Taşirear", "vector-action-protect": "Guadrar", "vector-action-undelete": "Traer atrás", - "vector-action-unprotect": "Trocar proteksyon", - "vector-view-create": "Criar", + "vector-action-unprotect": "Trokar proteksyon", + "vector-view-create": "Kriar", "vector-view-edit": "Trocar", "vector-view-history": "Ver la istoria", "vector-view-view": "Meldar", diff --git a/i18n/nap.json b/i18n/nap.json index a42ac0b..f93c333 100644 --- a/i18n/nap.json +++ b/i18n/nap.json @@ -2,7 +2,9 @@ "@metadata": { "authors": [ "Chelin", - "C.R." + "C.R.", + "Ruthven", + "Sannita" ] }, "vector-skin-desc": "Verziona muderna 'e MonoBook cu n'aspetto nuovo nuovo e tante migliuramente d'uso", @@ -13,9 +15,9 @@ "vector-action-undelete": "Arrepiglia", "vector-action-unprotect": "Càgna prutezzione", "vector-view-create": "Crèa", - "vector-view-edit": "Càgna", - "vector-view-history": "Vire cronologgia", + "vector-view-edit": "Cagna", + "vector-view-history": "Vide 'a cronologgia", "vector-view-view": "Liegge", - "vector-view-viewsource": "Vere sorgente", + "vector-view-viewsource": "Vire sorgente", "vector-more-actions": "Cchiù" } diff --git a/i18n/nds-nl.json b/i18n/nds-nl.json index 09f4a4d..18a0e19 100644 --- a/i18n/nds-nl.json +++ b/i18n/nds-nl.json @@ -4,16 +4,19 @@ "Servien" ] }, + "vector-skin-desc": "Moderne versy van MonoBook mid een fris uterlik en verbeateringen up et gebeed van gebruuksvrendelikheid", "vector-action-addsection": "Ny underwarp", - "vector-action-delete": "Vortdoon", + "vector-action-delete": "Vordsmyten", "vector-action-move": "Hernömen", "vector-action-protect": "Beveiligen", - "vector-action-undelete": "Weerummeplaotsen", + "vector-action-undelete": "Weaderümmeplaatsen", "vector-action-unprotect": "Beveiliging wysigen", - "vector-view-create": "Anmaken", + "vector-view-create": "Upstellen", "vector-view-edit": "Bewarken", "vector-view-history": "Geskydenisse bekyken", "vector-view-view": "Leasen", "vector-view-viewsource": "Brontekste bekyken", + "vector-jumptonavigation": "Nå navigaty springen", + "vector-jumptosearch": "Nå söken springen", "vector-more-actions": "Meyr" } diff --git a/i18n/nqo.json b/i18n/nqo.json index 78b9a4f..a2a95a0 100644 --- a/i18n/nqo.json +++ b/i18n/nqo.json @@ -2,16 +2,18 @@ "@metadata": { "authors": [ "Youssoufkadialy", - "Lanciné.kounfantoh.fofana" + "Lanciné.kounfantoh.fofana", + "Lancine.kounfantoh.fofana", + "Babamamadidiane" ] }, "vector-action-addsection": "ߥߟߊ߬ߘߊ߫ ߝߙߊ߬", "vector-action-delete": "ߊ߬ ߖߏ߬ߛߌ߬", "vector-action-move": "ߊ߬ ߛߋ߲߬ߓߐ߫", "vector-action-protect": "ߊ߬ ߟߊߞߊ߲ߘߊ߫", - "vector-view-create": "ߟߊߘߊ߲߫", - "vector-view-edit": "ߊ߬ ߡߊߝߊ߬ߟߋ߲߬", - "vector-view-history": "ߕߊ߬ߡߌ߲߬ߣߍ߲ ߠߎ߫ ߦߌ߬ߘߊ߬", - "vector-view-view": "ߊ߬ ߞߊ߬ߙߊ߲߬", - "vector-more-actions": "ߜߘߍ߫ ߟߎ߬" + "vector-view-create": "ߊ߬ ߟߊߘߊ߲߫", + "vector-view-edit": "ߊ߬ ߡߊߦߟߍ߬ߡߊ߲߫", + "vector-view-history": "ߞߊ߬ߞߘߐ ߡߊߝߟߍ", + "vector-view-view": "ߘߐ߬ߞߊ߬ߙߊ߲߬ߠߌ߲", + "vector-more-actions": "ߡߞߊ߬ߝߏ߬ ߜߘߍ߫ ߟߎ߫" } diff --git a/i18n/osi.json b/i18n/osi.json new file mode 100644 index 0000000..eb05d79 --- /dev/null +++ b/i18n/osi.json @@ -0,0 +1,9 @@ +{ + "@metadata": { + "authors": [ + "NoiX180" + ] + }, + "vector-view-edit": "Uwah", + "vector-view-view": "Waca" +} diff --git a/i18n/pcd.json b/i18n/pcd.json index 57af67e..87c0794 100644 --- a/i18n/pcd.json +++ b/i18n/pcd.json @@ -14,5 +14,6 @@ "vector-view-edit": "Éditer", "vector-view-history": "Vir l'histoère", "vector-view-view": "Lire", - "vector-view-viewsource": "Vir l'source" + "vector-view-viewsource": "Vir l'source", + "vector-more-actions": "Pus" } diff --git a/i18n/pt.json b/i18n/pt.json index 463e188..702c20b 100644 --- a/i18n/pt.json +++ b/i18n/pt.json @@ -8,7 +8,8 @@ "Vitorvicentevalente", "Waldir", "MokaAkashiyaPT", - "Athena in Wonderland" + "Athena in Wonderland", + "Waldyrious" ] }, "skinname-vector": "Vector", diff --git a/i18n/rej.json b/i18n/rej.json new file mode 100644 index 0000000..2970c10 --- /dev/null +++ b/i18n/rej.json @@ -0,0 +1,16 @@ +{ + "@metadata": { + "authors": [ + "MFikriansori" + ] + }, + "vector-action-addsection": "Tambêak dik nêbahas", + "vector-action-delete": "Apus", + "vector-action-move": "Aliak", + "vector-action-protect": "Lindung", + "vector-view-create": "Nêa", + "vector-view-edit": "Ubêak", + "vector-view-history": "Kêliak riwayat", + "vector-view-view": "Baco", + "vector-more-actions": "Igai" +} diff --git a/i18n/sdc.json b/i18n/sdc.json index c843931..7db4d09 100644 --- a/i18n/sdc.json +++ b/i18n/sdc.json @@ -13,5 +13,6 @@ "vector-view-edit": "Mudifigga", "vector-view-history": "Vèdi isthòria", "vector-view-view": "Leggi", - "vector-view-viewsource": "Vèdi fonti" + "vector-view-viewsource": "Vèdi fonti", + "vector-more-actions": "Più" } diff --git a/i18n/sk.json b/i18n/sk.json index 887baa0..527713a 100644 --- a/i18n/sk.json +++ b/i18n/sk.json @@ -5,7 +5,8 @@ "Rudko", "Sudo77(new)", "KuboF", - "Mikulas1" + "Mikulas1", + "Robert Važan" ] }, "skinname-vector": "Vector", @@ -22,6 +23,6 @@ "vector-view-edit": "Upraviť", "vector-view-history": "Zobraziť históriu", "vector-view-view": "Čítať", - "vector-view-viewsource": "Zobraziť zdroj", + "vector-view-viewsource": "Zobraziť kód", "vector-more-actions": "Viac" } diff --git a/i18n/st.json b/i18n/st.json new file mode 100644 index 0000000..08c51e7 --- /dev/null +++ b/i18n/st.json @@ -0,0 +1,10 @@ +{ + "@metadata": { + "authors": [ + "Gustave London" + ] + }, + "vector-view-edit": "Fetola", + "vector-view-history": "sheba histori", + "vector-more-actions": "Lihlooho Tse Ling" +} diff --git a/i18n/sw.json b/i18n/sw.json index 32374eb..febe89b 100644 --- a/i18n/sw.json +++ b/i18n/sw.json @@ -3,7 +3,8 @@ "authors": [ "Lloffiwr", "Muddyb Blast Producer", - "Muddyb" + "Muddyb", + "Yasen igra" ] }, "vector-action-addsection": "Weka mada", @@ -16,5 +17,6 @@ "vector-view-edit": "Hariri", "vector-view-history": "Fungua historia", "vector-view-view": "Soma", - "vector-view-viewsource": "Tazama msimbo" + "vector-view-viewsource": "Tazama msimbo", + "vector-more-actions": "Zaidi" } diff --git a/i18n/sxu.json b/i18n/sxu.json new file mode 100644 index 0000000..c8a2232 --- /dev/null +++ b/i18n/sxu.json @@ -0,0 +1,11 @@ +{ + "@metadata": { + "authors": [ + "Jun Misugi" + ] + }, + "vector-view-edit": "Ändorn", + "vector-view-history": "Fersionsgeschischde", + "vector-view-view": "Lesn", + "vector-more-actions": "Mehr" +} diff --git a/i18n/szl.json b/i18n/szl.json index cf20475..74815b7 100644 --- a/i18n/szl.json +++ b/i18n/szl.json @@ -5,18 +5,19 @@ "Gaj777", "Przemub", "Krol111", - "Przem(1)s" + "Przem(1)s", + "Uostofchuodnego" ] }, - "vector-action-addsection": "Nowo tajla", - "vector-action-delete": "Wyćepej", - "vector-action-move": "Przećep", + "vector-action-addsection": "Przidej tymat", + "vector-action-delete": "Skasuj", + "vector-action-move": "Przeniyś", "vector-action-protect": "Zawrzij", "vector-action-undelete": "Wćep", "vector-action-unprotect": "Uodymkńij", - "vector-view-create": "Stwůrz", + "vector-view-create": "Stwōrz", "vector-view-edit": "Edytuj", - "vector-view-history": "Uobocz gyszichta", + "vector-view-history": "Pokŏż historyjõ", "vector-view-view": "Czytej", "vector-view-viewsource": "Zdrzůdłowy tekst", "vector-more-actions": "Wiyncyj" diff --git a/i18n/tly.json b/i18n/tly.json index 2866722..235af02 100644 --- a/i18n/tly.json +++ b/i18n/tly.json @@ -2,18 +2,19 @@ "@metadata": { "authors": [ "Гусейн", - "Ganbarzada" + "Ganbarzada", + "Patriot Kur" ] }, "vector-action-addsection": "Мывзу зијод кардеј", "vector-action-delete": "Рәдд кардеј", "vector-action-move": "Номи дәгиш кардеј", - "vector-action-protect": "Мыдофијә кардеј", + "vector-action-protect": "Mıdofiə karde", "vector-action-undelete": "Бәрпо кардеј", "vector-action-unprotect": "Мыдофијә дәгиш кардеј", "vector-view-create": "Офәјеј", "vector-view-edit": "Сәрост кардеј", - "vector-view-history": "Тарых", + "vector-view-history": "Тarix", "vector-view-view": "Һандемон", "vector-view-viewsource": "Дијә кардеј", "vector-more-actions": "həniyən" diff --git a/i18n/trv.json b/i18n/trv.json index 7f342d4..0b9ede1 100644 --- a/i18n/trv.json +++ b/i18n/trv.json @@ -4,11 +4,11 @@ "Iyuqciyang" ] }, - "vector-action-move": "hdlun", - "vector-view-create": "phiyug", - "vector-view-edit": "smmalu patas", - "vector-view-history": "patas endaan qmita", - "vector-view-view": "smpug patas", + "vector-action-move": "Hdlun", + "vector-view-create": "Phiyug", + "vector-view-edit": "Smmalu patas", + "vector-view-history": "Patas endaan qmita", + "vector-view-view": "Smpug patas", "vector-view-viewsource": "ida nkiya patas sspgan ka qtai", - "vector-more-actions": "knlala" + "vector-more-actions": "Knlala" } diff --git a/i18n/tyv.json b/i18n/tyv.json index f1b7519..01b5f85 100644 --- a/i18n/tyv.json +++ b/i18n/tyv.json @@ -9,11 +9,11 @@ "skinname-vector": "Вектор", "vector-action-addsection": "Тема немээр", "vector-action-delete": "Ырадыры", - "vector-action-move": "Шимчээри", + "vector-action-move": "Өскээр адаар", "vector-action-protect": "Камгалаары", "vector-action-undelete": "Эгидер", "vector-action-unprotect": "Камгалалды өскертири", - "vector-view-create": "Кылыр", + "vector-view-create": "Тургузуп кылыр", "vector-view-edit": "Эдер", "vector-view-history": "Төөгүнү көөр", "vector-view-view": "Номчуур", diff --git a/images/page-fade.png b/images/page-fade.png deleted file mode 100644 index 1262398..0000000 Binary files a/images/page-fade.png and /dev/null differ diff --git a/images/portal-break-ltr.png b/images/portal-break-ltr.png deleted file mode 100644 index 7122a07..0000000 Binary files a/images/portal-break-ltr.png and /dev/null differ diff --git a/images/portal-break-rtl.png b/images/portal-break-rtl.png deleted file mode 100644 index fca6489..0000000 Binary files a/images/portal-break-rtl.png and /dev/null differ diff --git a/images/portal-break.png b/images/portal-break.png deleted file mode 100644 index 90c3918..0000000 Binary files a/images/portal-break.png and /dev/null differ diff --git a/images/portal-separator.png b/images/portal-separator.png new file mode 100644 index 0000000..942674b Binary files /dev/null and b/images/portal-separator.png differ diff --git a/images/search-rtl.png b/images/search-rtl.png deleted file mode 100644 index ec47968..0000000 Binary files a/images/search-rtl.png and /dev/null differ diff --git a/images/search-rtl.svg b/images/search-rtl.svg deleted file mode 100644 index 637493f..0000000 --- a/images/search-rtl.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/images/search-ltr.png b/images/search.png similarity index 100% rename from images/search-ltr.png rename to images/search.png diff --git a/images/search-ltr.svg b/images/search.svg similarity index 100% rename from images/search-ltr.svg rename to images/search.svg diff --git a/images/tab-break.png b/images/tab-separator.png similarity index 100% rename from images/tab-break.png rename to images/tab-separator.png diff --git a/images/watch-icon-loading.png b/images/watch-icon-loading.png deleted file mode 100644 index 48c4703..0000000 Binary files a/images/watch-icon-loading.png and /dev/null differ diff --git a/includes/SkinVector.php b/includes/SkinVector.php index f7d6171..0ee7e73 100644 --- a/includes/SkinVector.php +++ b/includes/SkinVector.php @@ -37,6 +37,7 @@ class SkinVector extends SkinTemplate { private $responsiveMode = false; public function __construct() { + parent::__construct( ...func_get_args() ); $this->vectorConfig = \MediaWiki\MediaWikiServices::getInstance()->getConfigFactory() ->makeConfig( 'vector' ); } diff --git a/includes/VectorTemplate.php b/includes/VectorTemplate.php index f348472..58f6da8 100644 --- a/includes/VectorTemplate.php +++ b/includes/VectorTemplate.php @@ -488,9 +488,6 @@ class VectorTemplate extends BaseTemplate { $item['class'] = rtrim( 'collapsible ' . $item['class'], ' ' ); } - // We don't use this, prevent it from popping up in HTML output - unset( $item['redundant'] ); - return parent::makeListItem( $key, $item, $options ); } } diff --git a/includes/templates/index.mustache b/includes/templates/index.mustache index 60cd810..4c33b32 100644 --- a/includes/templates/index.mustache +++ b/includes/templates/index.mustache @@ -25,11 +25,11 @@
{{{html-printfooter}}}
{{/html-printfooter}} {{{html-catlinks}}} - {{{html-dataAfterContent}}}
{{{html-debuglog}}} +{{{html-dataAfterContent}}} {{! html-unported outputs
and