diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..0f41379
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,5 @@
+/.storybook/
+/docs/
+/i18n/
+/node_modules/
+/vendor/
diff --git a/.eslintrc.json b/.eslintrc.json
index 2c3c2d3..4185f85 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -2,9 +2,16 @@
"root": true,
"extends": [
"wikimedia/client",
- "wikimedia/jquery"
+ "wikimedia/jquery",
+ "wikimedia/mediawiki"
],
"globals": {
- "mw": false
+ "require": "readonly",
+ "module": "readonly"
+ },
+ "rules": {
+ "one-var": "off",
+ "//": ["off", "ResourceLoader's `packageFiles` do not require wrapping but the `module` option is only available in ES6+."],
+ "no-implicit-globals": "off"
}
}
diff --git a/.gitignore b/.gitignore
index d55f48d..7ae62f2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,3 +40,8 @@ Thumbs.db
/.htaccess
/.htpasswd
.eslintcache
+
+# storybook
+/.storybook/resolve-less-imports/
+/.storybook/integration.less
+.vscode
diff --git a/.phpcs.xml b/.phpcs.xml
index 3c69313..b915cf8 100644
--- a/.phpcs.xml
+++ b/.phpcs.xml
@@ -2,6 +2,6 @@
.
-
+
diff --git a/.storybook/common.less b/.storybook/common.less
new file mode 100644
index 0000000..673dfef
--- /dev/null
+++ b/.storybook/common.less
@@ -0,0 +1,23 @@
+@import '../variables.less';
+@import 'integration.less';
+@import 'icons.less';
+
+body {
+ font-family: @font-family-sans;
+}
+
+a {
+ text-decoration: none;
+}
+
+ul {
+ padding: 0;
+}
+
+#mw-panel {
+ background-color: @background-color-secondary;
+}
+
+.printfooter {
+ display: none;
+}
diff --git a/.storybook/config.js b/.storybook/config.js
new file mode 100644
index 0000000..055d4e3
--- /dev/null
+++ b/.storybook/config.js
@@ -0,0 +1,4 @@
+import { configure } from '@storybook/html';
+
+// automatically import all files ending in *.stories.js
+configure(require.context('../stories', true, /\.stories\.js$/), module);
diff --git a/.storybook/icons.less b/.storybook/icons.less
new file mode 100644
index 0000000..4c8f73f
--- /dev/null
+++ b/.storybook/icons.less
@@ -0,0 +1,20 @@
+.mw-wiki-logo {
+ background-image: url(https://en.wikipedia.org/static/images/project-logos/enwiki-2x.png);
+ background-size: 135px auto;
+}
+
+.oo-ui-icon-bell {
+ opacity: 0.51;
+ background-image: linear-gradient(transparent,transparent),
+ url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3Ebell%3C/title%3E%3Cpath d=%22M16 7a5.38 5.38 0 0 0-4.46-4.85C11.6 1.46 11.53 0 10 0S8.4 1.46 8.46 2.15A5.38 5.38 0 0 0 4 7v6l-2 2v1h16v-1l-2-2zm-6 13a3 3 0 0 0 3-3H7a3 3 0 0 0 3 3z%22/%3E%3C/svg%3E");
+}
+
+.oo-ui-icon-tray {
+ background-image: linear-gradient(transparent,transparent),
+ url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3Etray%3C/title%3E%3Cpath d=%22M3 1a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2zm14 12h-4l-1 2H8l-1-2H3V3h14z%22/%3E%3C/svg%3E");
+}
+
+.uls-trigger {
+ background-image: linear-gradient(transparent,transparent),
+ url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E %3Ctitle%3E language %3C/title%3E %3Cpath d=%22M20 18h-1.44a.61.61 0 0 1-.4-.12.81.81 0 0 1-.23-.31L17 15h-5l-1 2.54a.77.77 0 0 1-.22.3.59.59 0 0 1-.4.14H9l4.55-11.47h1.89zm-3.53-4.31L14.89 9.5a11.62 11.62 0 0 1-.39-1.24q-.09.37-.19.69l-.19.56-1.58 4.19zm-6.3-1.58a13.43 13.43 0 0 1-2.91-1.41 11.46 11.46 0 0 0 2.81-5.37H12V4H7.31a4 4 0 0 0-.2-.56C6.87 2.79 6.6 2 6.6 2l-1.47.5s.4.89.6 1.5H0v1.33h2.15A11.23 11.23 0 0 0 5 10.7a17.19 17.19 0 0 1-5 2.1q.56.82.87 1.38a23.28 23.28 0 0 0 5.22-2.51 15.64 15.64 0 0 0 3.56 1.77zM3.63 5.33h4.91a8.11 8.11 0 0 1-2.45 4.45 9.11 9.11 0 0 1-2.46-4.45z%22/%3E %3C/svg%3E") !important;
+}
diff --git a/.storybook/webpack.config.js b/.storybook/webpack.config.js
new file mode 100644
index 0000000..1e0411b
--- /dev/null
+++ b/.storybook/webpack.config.js
@@ -0,0 +1,54 @@
+const path = require( 'path' );
+
+module.exports = {
+ module: {
+ rules: [ {
+ test: /\.js$/,
+ exclude: /node_modules/,
+ use: {
+ loader: 'babel-loader',
+ options: {
+ // Beware of https://github.com/babel/babel-loader/issues/690. Changes to browsers require
+ // manual invalidation.
+ cacheDirectory: true
+ }
+ }
+ },
+ {
+ test: /\.css$/,
+ use: [ {
+ loader: 'style-loader'
+ }, {
+ loader: 'css-loader'
+ } ]
+ },
+ {
+ test: /\.(gif|png|jpe?g|svg)$/i,
+ issuer: /\.less$/,
+ loader: 'file-loader',
+ options: {
+ paths: [
+ path.resolve( __dirname, 'components/images' )
+ ]
+ }
+ },
+ {
+ // in core some LESS imports don't specify filename
+ test: /\.less$/,
+ use: [ {
+ loader: 'style-loader'
+ }, {
+ loader: 'css-loader'
+ }, {
+ loader: 'less-loader',
+ options: {
+ relativeUrls: false,
+ paths: [
+ path.resolve( __dirname, 'resolve-less-imports' )
+ ]
+ }
+ } ]
+ },
+ ]
+ }
+};
diff --git a/.stylelintignore b/.stylelintignore
new file mode 100644
index 0000000..4880aff
--- /dev/null
+++ b/.stylelintignore
@@ -0,0 +1,5 @@
+/.storybook/
+/docs/
+/node_modules/
+/skinStyles/jquery.ui/
+/vendor/
diff --git a/.svgo.yml b/.svgo.yml
new file mode 100644
index 0000000..a1ac1f1
--- /dev/null
+++ b/.svgo.yml
@@ -0,0 +1,27 @@
+# Recommended options from:
+# https://www.mediawiki.org/wiki/Manual:Coding_conventions/SVG#Exemplified_safe_configuration
+#
+multipass: true
+plugins:
+ - cleanupIDs: false
+ - removeDesc: false
+ - removeRasterImages: true
+ - removeTitle: false
+ - removeViewBox: false
+ # If the SVG doesn't start with an XML declaration, then its MIME type will
+ # be detected as "text/plain" rather than "image/svg+xml" by libmagic and,
+ # consequently, MediaWiki's CSSMin CSS minifier. libmagic's default database
+ # currently requires that SVGs contain an XML declaration:
+ # https://github.com/threatstack/libmagic/blob/master/magic/Magdir/sgml#L5
+ - removeXMLProcInst: false
+ - sortAttrs: true
+
+# Configure the indent (default 4 spaces) used by `--pretty` here:
+# @see https://github.com/svg/svgo/blob/master/lib/svgo/js2svg.js#L6 for more config options
+#
+# Unfortunately EOL cannot be configured, svgo uses the platform's EOL marker.
+# On non-unix systems the linebreaks will be normalized to LF (unix) only at git commit, assuming `core.autocrlf` is 'true' (default) or 'input'.
+#
+js2svg:
+ pretty: true
+ indent: "\t"
diff --git a/Doxyfile b/Doxyfile
new file mode 100644
index 0000000..63b0896
--- /dev/null
+++ b/Doxyfile
@@ -0,0 +1,36 @@
+PROJECT_NAME = Vector
+PROJECT_BRIEF = "Vector is a skin for MediaWiki. Vector has been the default skin on all Wikimedia wikis since 2010."
+
+OUTPUT_DIRECTORY = docs
+HTML_OUTPUT = php
+
+# Intepret the first line of a comment as a brief description?
+JAVADOC_AUTOBRIEF = YES
+QT_AUTOBRIEF = YES
+
+WARN_NO_PARAMDOC = YES
+
+INPUT = .
+EXCLUDE_PATTERNS = doc docs vendor node_modules tests
+FILE_PATTERNS = *.php
+
+# Search through subdirectories for input files?
+RECURSIVE = YES
+
+# NOTE: USE_MDFILE_AS_MAINPAGE requires that the specified file is included as an input file.
+USE_MDFILE_AS_MAINPAGE = ./README.md
+INPUT += ./README.md
+
+HTML_DYNAMIC_SECTIONS = YES
+GENERATE_TREEVIEW = YES
+TREEVIEW_WIDTH = 250
+
+GENERATE_LATEX = NO
+
+HAVE_DOT = YES
+DOT_FONTNAME = Helvetica
+DOT_FONTSIZE = 12
+TEMPLATE_RELATIONS = YES
+
+# Makes dot run faster. Requires graphviz >1.8.10
+DOT_MULTI_TARGETS = YES
diff --git a/Gruntfile.js b/Gruntfile.js
deleted file mode 100644
index fddda64..0000000
--- a/Gruntfile.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* 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-stylelint' );
-
- grunt.initConfig( {
- eslint: {
- options: {
- reportUnusedDisableDirectives: true,
- extensions: [ '.js', '.json' ],
- cache: true
- },
- all: [
- '**/*.js{,on}',
- '!{vendor,node_modules}/**'
- ]
- },
- banana: conf.MessagesDirs,
- stylelint: {
- options: {
- syntax: 'less'
- },
- all: [
- '*.{less,css}',
- '**/*.{less,css}',
- '!node_modules/**',
- '!skinStyles/jquery.ui/**',
- '!vendor/**'
- ]
- }
- } );
-
- grunt.registerTask( 'test', [ 'eslint', 'banana', 'stylelint' ] );
- grunt.registerTask( 'default', 'test' );
-};
diff --git a/README.md b/README.md
index 85e6ff7..88942d8 100644
--- a/README.md
+++ b/README.md
@@ -1,28 +1,52 @@
Vector Skin
========================
-Configuration options
----------------------
+Installation
+------------
-### $wgVectorPrintLogo
+See .
-Logo used in print styles. Keys are `url`, `width`, and `height` (in
-pixels). Note that this solution only works correctly if the image
-pointed to by `url` is an SVG that does not specify width and height
-attributes, or its width and height match the corresponding variables
-below. Alternatively, a PNG or other type of image can be used, but
-its dimensions also need to match the corresponding variable below.
-That in turn may result in blurry images, though.
+### Configuration options
-The URL can be absolute or relative.
+See [skin.json](skin.json).
-Example configuration:
+Development
+-----------
- $wgVectorPrintLogo = [
- 'url' => 'https://en.wikipedia.org/static/images/mobile/copyright/wikipedia-wordmark-en.svg',
- 'width' => 174,
- 'height' => 27
- ];
+### Coding conventions
-* Type: `Array`
-* Default: `false`
+We strive for compliance with MediaWiki conventions:
+
+
+
+Additions and deviations from those conventions that are more tailored to this
+project are noted at:
+
+
+
+URL query parameters
+--------------------
+
+- `useskinversion`: Like `useskin` but for overriding the Vector skin version
+ user preference and configuration. E.g.,
+ http://localhost:8181?useskin=vector&useskinversion=2.
+
+Skin preferences
+----------------
+
+Vector defines skin-specific user preferences. These are exposed on
+Special:Preferences when the `VectorShowSkinPreferences` configuration is
+enabled. The user's preference state for skin preferences is used for skin
+previews and any other operation unless specified otherwise.
+
+### Version
+
+Vector defines a "version" preference to enable users who prefer the December
+2019 version of Vector to continue to do so without any visible changes. This
+version is called "Legacy Vector." The related preference defaults are
+configurable via the configurations prefixed with `VectorDefaultSkinVersion`.
+Version preference and configuration may be overridden by the `useskinversion`
+URL query parameter.
+
+### Hooks
+See [hooks.txt](hooks.txt).
diff --git a/bundlesize.config.json b/bundlesize.config.json
new file mode 100644
index 0000000..bef7f6d
--- /dev/null
+++ b/bundlesize.config.json
@@ -0,0 +1,22 @@
+[
+ {
+ "resourceModule": "skins.vector.styles.legacy",
+ "maxSize": "7.8 kB"
+ },
+ {
+ "resourceModule": "skins.vector.styles",
+ "maxSize": "8.5 kB"
+ },
+ {
+ "resourceModule": "skins.vector.icons",
+ "maxSize": "0.6 kB"
+ },
+ {
+ "resourceModule": "skins.vector.styles.responsive",
+ "maxSize": "0.6 kB"
+ },
+ {
+ "resourceModule": "skins.vector.legacy.js",
+ "maxSize": "1.7 kB"
+ }
+]
diff --git a/components/externalLinks.less b/components/externalLinks.less
deleted file mode 100644
index d8095e2..0000000
--- a/components/externalLinks.less
+++ /dev/null
@@ -1,10 +0,0 @@
-@import 'mediawiki.mixins.less';
-// External links
-.mw-parser-output {
- .external {
- background-position: center right;
- background-repeat: no-repeat;
- .background-image-svg( 'images/external-link-ltr-icon.svg', 'images/external-link-ltr-icon.png' );
- padding-right: 13px;
- }
-}
diff --git a/components/watchstar.less b/components/watchstar.less
deleted file mode 100644
index 49d4c25..0000000
--- a/components/watchstar.less
+++ /dev/null
@@ -1,53 +0,0 @@
-@import 'mediawiki.mixins.rotation';
-
-/* Watch/Unwatch Icon Styling */
-/* 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` & `#ca-watch` both carry `.mw-watchlink` as well.
- .mw-watchlink.icon a {
- margin: 0;
- padding: 0;
- display: block;
- width: 28px;
- /* This hides the text but shows the background image */
- /* Must not exceed parent's height, otherwise the background disappears on Chrome (T196610) */
- padding-top: 2.5em / 0.8125;
- height: 0;
- overflow: hidden;
- background-position: 5px 60%;
- background-repeat: no-repeat;
- }
-
- #ca-unwatch.icon a {
- .background-image-svg( 'images/unwatch-icon.svg', 'images/unwatch-icon.png' );
- }
-
- #ca-watch.icon a {
- .background-image-svg( 'images/watch-icon.svg', 'images/watch-icon.png' );
- }
-
- #ca-unwatch.icon a:hover,
- #ca-unwatch.icon a:focus {
- .background-image-svg( 'images/unwatch-icon-hl.svg', 'images/unwatch-icon-hl.png' );
- }
-
- #ca-watch.icon a:hover,
- #ca-watch.icon a:focus {
- .background-image-svg( 'images/watch-icon-hl.svg', 'images/watch-icon-hl.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;
- cursor: default;
- pointer-events: none;
- background-position: 50% 60%;
- -webkit-transform-origin: 50% 57%;
- transform-origin: 50% 57%;
- }
-}
diff --git a/composer.json b/composer.json
index 7173a6f..cd2f0b6 100644
--- a/composer.json
+++ b/composer.json
@@ -24,32 +24,31 @@
"irc": "irc://irc.freenode.org/mediawiki"
},
"require": {
- "php": ">=5.5.9",
"composer/installers": ">1.0.12"
},
"extra": {
"branch-alias": {
"dev-master": "1.x-dev"
},
- "installer-name": "Vector",
- "phan-taint-check-plugin": "2.0.1"
+ "installer-name": "Vector"
},
"require-dev": {
- "jakub-onderka/php-parallel-lint": "1.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.6.1"
+ "mediawiki/mediawiki-codesniffer": "31.0.0",
+ "mediawiki/mediawiki-phan-config": "0.10.2",
+ "mediawiki/minus-x": "1.1.0",
+ "php-parallel-lint/php-console-highlighter": "0.5.0",
+ "php-parallel-lint/php-parallel-lint": "1.2.0"
},
"scripts": {
"fix": [
- "phpcbf",
- "minus-x fix ."
+ "minus-x fix .",
+ "phpcbf"
],
"test": [
"parallel-lint . --exclude node_modules --exclude vendor",
"phpcs -p -s",
"minus-x check ."
- ]
+ ],
+ "phan": "phan -d . --long-progress-bar"
}
}
diff --git a/dev-scripts/setup-storybook.sh b/dev-scripts/setup-storybook.sh
new file mode 100755
index 0000000..30db9d5
--- /dev/null
+++ b/dev-scripts/setup-storybook.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+set -euo pipefail
+IFS=$'\n\t'
+
+mkdir -p .storybook/resolve-less-imports/mediawiki.ui
+mkdir -p docs/ui/assets/
+
+curl -sS "https://en.wikipedia.org/w/load.php?only=styles&skin=vector&debug=true&modules=ext.echo.styles.badge|ext.uls.pt|wikibase.client.init|mediawiki.skinning.interface" -o .storybook/integration.less
+curl -sSL "https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/master/resources/src/mediawiki.less/mediawiki.mixins.less?format=TEXT" | base64 --decode > .storybook/resolve-less-imports/mediawiki.mixins.less
+curl -sSL "https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/master/resources/src/mediawiki.less/mediawiki.ui/variables.less?format=TEXT" | base64 --decode > .storybook/resolve-less-imports/mediawiki.ui/variables.less
+curl -sSL "https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/master/resources/src/mediawiki.less/mediawiki.mixins.rotation.less?format=TEXT" | base64 --decode > .storybook/resolve-less-imports/mediawiki.mixins.rotation.less
+curl -sSL "https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/master/resources/src/mediawiki.less/mediawiki.mixins.animation.less?format=TEXT" | base64 --decode > .storybook/resolve-less-imports/mediawiki.mixins.animation.less
+curl -sS "https://en.m.wikipedia.org/static/images/mobile/copyright/wikipedia-wordmark-en.svg" -o "docs/ui/assets/wordmark.svg"
+curl -sS "https://en.m.wikipedia.org/static/images/mobile/copyright/wikipedia.png" -o "docs/ui/assets/icon.png"
+curl -sS "https://en.wikipedia.org/static/images/mobile/copyright/wikipedia-tagline-en.svg" -o "docs/ui/assets/tagline.svg"
diff --git a/hooks.txt b/hooks.txt
index 05f6c6b..eb14caa 100644
--- a/hooks.txt
+++ b/hooks.txt
@@ -1,12 +1,12 @@
Hooks provided by the Vector skin.
-'VectorAfterToolbox': Called after rendering the toolbox portlet (div#p-tb).
+'VectorAfterToolbox': Called after rendering the toolbox portlet (#p-tb).
You can use this to inject items (such as ads or a hit counter, for example)
from an extension.
-This is the Vector couterpart to the MonoBookAfterToolbox hook in the MonoBook
+This is the Vector counterpart to the MonoBookAfterToolbox hook in the MonoBook
skin.
-'VectorBeforeFooter': Called before the footer (div#footer) is output, but after
-div#mw-navigation has been closed.
+'VectorBeforeFooter': Called before the footer (#footer) is output, but after
+#mw-navigation has been closed.
You can use this to inject items (such as ads or a hit counter, for example)
-from an extension.
\ No newline at end of file
+from an extension.
diff --git a/i18n/ady-cyrl.json b/i18n/ady-cyrl.json
index 8b98470..22cdb92 100644
--- a/i18n/ady-cyrl.json
+++ b/i18n/ady-cyrl.json
@@ -4,12 +4,12 @@
"Adamsa123",
"Amire80",
"Celekan",
- "Siklawy",
"GR44 Luc",
- "SamGamgee",
- "SmartNart12",
+ "Highlander45temp",
"Inyzh",
- "Highlander45temp"
+ "SamGamgee",
+ "Siklawy",
+ "SmartNart12"
]
},
"vector-action-addsection": "Ӏофтхьабз",
diff --git a/i18n/aeb-arab.json b/i18n/aeb-arab.json
index f8e53b8..cd75ca0 100644
--- a/i18n/aeb-arab.json
+++ b/i18n/aeb-arab.json
@@ -1,9 +1,9 @@
{
"@metadata": {
"authors": [
- "علاء",
"Csisc",
- "Meno25"
+ "Meno25",
+ "علاء"
]
},
"vector-action-addsection": "أضف موضوعا",
diff --git a/i18n/alt.json b/i18n/alt.json
new file mode 100644
index 0000000..670ca12
--- /dev/null
+++ b/i18n/alt.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Agilight",
+ "Altai uul",
+ "HalanTul"
+ ]
+ },
+ "vector-action-addsection": "Тема кожор",
+ "vector-action-delete": "Јоголтор",
+ "vector-action-move": "Адын солыыр",
+ "vector-action-protect": "Корыыр",
+ "vector-action-undelete": "Орныктырар",
+ "vector-action-unprotect": "Корышты солыыр",
+ "vector-view-create": "Чаяалга",
+ "vector-view-edit": "Тӱзедери",
+ "vector-view-history": "Тӱӱкини кӧргӱзер",
+ "vector-view-view": "Кычырар",
+ "vector-view-viewsource": "Темдектерин кӧрӧр",
+ "vector-more-actions": "Ээчи"
+}
diff --git a/i18n/an.json b/i18n/an.json
index fef37c1..30980c6 100644
--- a/i18n/an.json
+++ b/i18n/an.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Juanpabl",
- "Carlos Cristia"
+ "Carlos Cristia",
+ "Juanpabl"
]
},
"skinname-vector": "Vector",
diff --git a/i18n/ann.json b/i18n/ann.json
new file mode 100644
index 0000000..66050cf
--- /dev/null
+++ b/i18n/ann.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Katelem"
+ ]
+ },
+ "vector-action-addsection": "Tap Ibot-ikọ gbaalek",
+ "vector-action-delete": "Chọk",
+ "vector-view-create": "Nama",
+ "vector-view-edit": "Nen̄e ge",
+ "vector-view-history": "Kpọ mfufuk",
+ "vector-view-view": "Fuk",
+ "vector-more-actions": "Ofifi sin̄"
+}
diff --git a/i18n/ar.json b/i18n/ar.json
index 89d1c04..9f6ef05 100644
--- a/i18n/ar.json
+++ b/i18n/ar.json
@@ -3,18 +3,21 @@
"authors": [
"Abanima",
"Calak",
+ "Khaled",
"Meno25",
"Mido",
"OsamaK",
"أحمد",
+ "ديفيد",
"زكريا",
- "Khaled",
- "علاء",
- "ديفيد"
+ "علاء"
]
},
"skinname-vector": "فكتور",
"vector-skin-desc": "نسخة حديثة من مونوبوك بمظهر جديد وتحسينات لسهولة الاستخدام",
+ "prefs-vector-enable-vector-1-label": "استخدم Legacy Vector",
+ "prefs-vector-enable-vector-1-help": "على مدار السنوات القليلة القادمة، سنقوم بتحديث واجهة Vector بشكل تدريجي. سيسمح لك Legacy Vector بمشاهدة الإصدار القديم من Vector (اعتبارا من ديسمبر 2019). لمعرفة المزيد حول التحديثات، انتقل إلى [[mw:Reading/Web/Desktop_Improvements|صفحة المشروع]].",
+ "vector-opt-out": "التبديل إلى الشكل القديم",
"vector.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة فكتور */",
"vector.js": "/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة فكتور */",
"vector-action-addsection": "أضف موضوعا",
diff --git a/i18n/arq.json b/i18n/arq.json
index 5491983..69d2c27 100644
--- a/i18n/arq.json
+++ b/i18n/arq.json
@@ -2,8 +2,8 @@
"@metadata": {
"authors": [
"Bachounda",
- "Oldstoneage",
- "GeekEmad"
+ "GeekEmad",
+ "Oldstoneage"
]
},
"vector-skin-desc": "طبعة جديدة تاع مونوبوك، ب شبحة جديدة و تحسانات فل إستعماليّة",
diff --git a/i18n/ary.json b/i18n/ary.json
index 05639fb..c97de7d 100644
--- a/i18n/ary.json
+++ b/i18n/ary.json
@@ -1,23 +1,24 @@
{
"@metadata": {
"authors": [
- "Enzoreg",
- "Zanatos",
"Abdeaitali",
+ "Enzoreg",
"Reda Benkhadra",
- "SADIQUI"
+ "SADI9I",
+ "SADIQUI",
+ "Zanatos"
]
},
"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": "صاوب",
- "vector-view-edit": "عدل",
+ "vector-action-delete": "حدف",
+ "vector-action-move": "حوّل",
+ "vector-action-protect": "حمي",
+ "vector-action-undelete": "لغي الحدف",
+ "vector-action-unprotect": "بدّل الحماية",
+ "vector-view-create": "أنشئ",
+ "vector-view-edit": "بدل",
"vector-view-history": "تاريخ",
"vector-view-view": "قرا",
- "vector-view-viewsource": "Ċof l-masdar",
- "vector-more-actions": "زيد"
+ "vector-view-viewsource": "شوف المصدر",
+ "vector-more-actions": "كتر"
}
diff --git a/i18n/ast.json b/i18n/ast.json
index a37970b..745c468 100644
--- a/i18n/ast.json
+++ b/i18n/ast.json
@@ -7,6 +7,7 @@
},
"skinname-vector": "Vector",
"vector-skin-desc": "Versión moderna de MonoBook, con un aspeutu frescu y munchos ameyoramientos d'usabilidá",
+ "prefs-vector-enable-vector-1-label": "Utilizar versión anticuada de Vector",
"vector.css": "/* Los CSS allugaos equí afeutarán a los usuarios del aspeutu Vector */",
"vector.js": "/* Cualesquier JavaScript que tea equí se cargará pa los usuarios del aspeutu Vector */",
"vector-action-addsection": "Amestar seición",
diff --git a/i18n/atj.json b/i18n/atj.json
index 9242427..0b73915 100644
--- a/i18n/atj.json
+++ b/i18n/atj.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Benoit Rochon",
"Amqui",
+ "Benoit Rochon",
"Jean-paul echaquan"
]
},
diff --git a/i18n/av.json b/i18n/av.json
index 97be52f..f584dfd 100644
--- a/i18n/av.json
+++ b/i18n/av.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Умар",
- "Gazimagomedov"
+ "Gazimagomedov",
+ "Умар"
]
},
"vector-skin-desc": "MonoBook'алъул цӀияб версия цияб куцгун ва цӀиял юзабилитиялгун",
diff --git a/i18n/avk.json b/i18n/avk.json
index 82f0986..502118a 100644
--- a/i18n/avk.json
+++ b/i18n/avk.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Wikimistusik",
- "Axel xadolik"
+ "Axel xadolik",
+ "Wikimistusik"
]
},
"vector-action-addsection": "Loplekura va detce",
diff --git a/i18n/azb.json b/i18n/azb.json
index f97b827..9f76374 100644
--- a/i18n/azb.json
+++ b/i18n/azb.json
@@ -1,12 +1,12 @@
{
"@metadata": {
"authors": [
+ "Alp Er Tunqa",
+ "Amir a57",
"E THP",
"Ebrahimi-amir",
- "Mousa",
- "Amir a57",
- "Alp Er Tunqa",
- "Ilğım"
+ "Ilğım",
+ "Mousa"
]
},
"vector-action-addsection": "مؤوضوع آرتیر",
diff --git a/i18n/ba.json b/i18n/ba.json
index 03a6f87..1a7b9c9 100644
--- a/i18n/ba.json
+++ b/i18n/ba.json
@@ -3,8 +3,8 @@
"authors": [
"Assele",
"Haqmar",
- "Рустам Нурыев",
- "Sagan"
+ "Sagan",
+ "Рустам Нурыев"
]
},
"skinname-vector": "Векторлы",
diff --git a/i18n/bar.json b/i18n/bar.json
index 5f7da4a..2e8ef38 100644
--- a/i18n/bar.json
+++ b/i18n/bar.json
@@ -2,14 +2,15 @@
"@metadata": {
"authors": [
"Bua333",
+ "Joe Watzmo",
"Mucalexx",
- "Joe Watzmo"
+ "WikiBayer"
]
},
"vector-action-addsection": "An Obschnitt dazua doa",
"vector-action-delete": "Leschn",
"vector-action-move": "Vaschiabm",
- "vector-action-protect": "Schitzn",
+ "vector-action-protect": "schitzn",
"vector-action-undelete": "Wiederherstön",
"vector-action-unprotect": "freigeem",
"vector-view-create": "Aufbaun",
diff --git a/i18n/bbc-latn.json b/i18n/bbc-latn.json
index fe9a284..9a4a6a4 100644
--- a/i18n/bbc-latn.json
+++ b/i18n/bbc-latn.json
@@ -2,6 +2,8 @@
"@metadata": {
"authors": [
"Daniel Harahap",
+ "NoiX180",
+ "Salomo Christian Hutajulu",
"WBT003Bugari",
"WBT006Hendra",
"WBT009Anju"
@@ -14,8 +16,9 @@
"vector-action-undelete": "unang sesa",
"vector-action-unprotect": "Uba parlindungan",
"vector-view-create": "Tompa",
- "vector-view-edit": "Paubah",
+ "vector-view-edit": "Patota",
"vector-view-history": "Patudu andorang na",
"vector-view-view": "Jaha",
- "vector-view-viewsource": "Ida haroanna"
+ "vector-view-viewsource": "Ida haroanna",
+ "vector-more-actions": "Lobian"
}
diff --git a/i18n/bci.json b/i18n/bci.json
new file mode 100644
index 0000000..f754853
--- /dev/null
+++ b/i18n/bci.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kjeanclaude"
+ ]
+ },
+ "vector-view-create": "Yi",
+ "vector-view-edit": "Klè noun",
+ "vector-view-history": "Nian laa sa",
+ "vector-view-view": "Kanngan",
+ "vector-more-actions": "Ouflè ékun"
+}
diff --git a/i18n/be.json b/i18n/be.json
index 219fbeb..a772af7 100644
--- a/i18n/be.json
+++ b/i18n/be.json
@@ -1,14 +1,16 @@
{
"@metadata": {
"authors": [
+ "Artsiom91",
"Mikalai Udodau",
"Yury Tarasievich",
"Дзяніс Тутэйшы",
- "Хомелка",
- "Artsiom91"
+ "Хомелка"
]
},
"vector-skin-desc": "Сучасная версія вокладкі Манабук, з абноўленым відам і шматлікімі зручнымі паляпшэннямі",
+ "prefs-vector-enable-vector-1-label": "Ужыць Legacy Vector",
+ "prefs-vector-enable-vector-1-help": "Цягам наступных некалькіх гадоў мы будзем паступова абнаўляць шаблон Vector. Legacy Vector дазволіць праглядаць старую версію Vector (станам на снежань 2019 года). Каб даведацца больш, перайдзіце на нашу [[mw:Reading/Web/Desktop_Improvements|старонку праекта]].",
"vector-action-addsection": "Дадаць тэму",
"vector-action-delete": "Выдаліць",
"vector-action-move": "Перанесці",
diff --git a/i18n/blc.json b/i18n/blc.json
new file mode 100644
index 0000000..f9e122e
--- /dev/null
+++ b/i18n/blc.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Muskwatch"
+ ]
+ },
+ "vector-view-edit": "qw'lasiitucw",
+ "vector-view-view": "sipaapqanu",
+ "vector-more-actions": "inic7acwlh"
+}
diff --git a/i18n/bn.json b/i18n/bn.json
index 4f62884..45c30c3 100644
--- a/i18n/bn.json
+++ b/i18n/bn.json
@@ -2,17 +2,20 @@
"@metadata": {
"authors": [
"Aftab1995",
+ "Aftabuzzaman",
"Bellayet",
"Leemon2010",
"Nasir8891",
+ "Sourav Halder",
"Tauhid16",
"Wikitanvir",
- "Aftabuzzaman",
"আফতাবুজ্জামান"
]
},
"skinname-vector": "ভেক্টর",
"vector-skin-desc": "নতুন চেহারা মনোবুকের আধুনিক সংস্করণ এবং আরো অনেক ব্যবহারযোগ্যতার উন্নতি",
+ "prefs-vector-enable-vector-1-label": "উত্তরাধিকার ভেক্টর ব্যবহার করুন",
+ "vector-opt-out": "পুরানো চেহারাতে যান",
"vector.css": "/* এখানে স্থাপিত CSS ভেক্টর আবরণ ব্যবহারকারীদের প্রভাবিত করবে */",
"vector.js": "/* এখানের যে কোন জাভাস্ক্রিপ্ট ভেক্টর আবরণ ব্যবহারকারীদের জন্য লোড হবে */",
"vector-action-addsection": "বিষয় যোগ করুন",
diff --git a/i18n/bqi.json b/i18n/bqi.json
index 92de707..157f376 100644
--- a/i18n/bqi.json
+++ b/i18n/bqi.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Mogoeilor",
- "Isevand"
+ "Isevand",
+ "Mogoeilor"
]
},
"vector-action-addsection": "داسۊن اْزاف کونین",
diff --git a/i18n/br.json b/i18n/br.json
index 08bad56..d956083 100644
--- a/i18n/br.json
+++ b/i18n/br.json
@@ -7,6 +7,8 @@
},
"skinname-vector": "Vektor",
"vector-skin-desc": "Stumm modern MonoBook freskaet e dres hag enni meur a wellaenn implijout",
+ "vector-opt-out": "Distreiñ d'an tres kozh",
+ "vector-opt-out-tooltip": "Kemmañ hoc'h arventennoù evit distreiñ da dres kozh ar gwiskadur (Vector istorel)",
"vector.css": "/* Talvezout a raio ar CSS lakaet amañ evit implijerien ar gwiskadur Vektor */",
"vector.js": "/* Kement JavaScript amañ a vo karget evit an implijerien a ra gant ar gwiskadur Vektor */",
"vector-action-addsection": "Rannbennad nevez",
diff --git a/i18n/bs.json b/i18n/bs.json
index 34be4f6..32f728f 100644
--- a/i18n/bs.json
+++ b/i18n/bs.json
@@ -3,22 +3,24 @@
"authors": [
"CERminator",
"DzWiki",
- "KWiki",
"Edinwiki",
+ "KWiki",
"Srdjan m"
]
},
"vector-skin-desc": "Moderna verzija MonoKnjige s novijim izgledom i mnogim poboljšanjima u pogledu upotrebljivosti",
"vector-action-addsection": "Dodaj temu",
- "vector-action-delete": "Obriši",
+ "vector-action-delete": "Izbriši",
"vector-action-move": "Premjesti",
"vector-action-protect": "Zaštiti",
- "vector-action-undelete": "Vrati obrisano",
+ "vector-action-undelete": "Vrati izbrisano",
"vector-action-unprotect": "Promijeni zaštitu",
"vector-view-create": "Napravi",
"vector-view-edit": "Uredi",
"vector-view-history": "Historija",
"vector-view-view": "Čitaj",
"vector-view-viewsource": "Pogledaj izvor",
+ "vector-jumptonavigation": "Idi na navigaciju",
+ "vector-jumptosearch": "Idi na pretragu",
"vector-more-actions": "Više"
}
diff --git a/i18n/btm.json b/i18n/btm.json
index e45a85b..71ff8b5 100644
--- a/i18n/btm.json
+++ b/i18n/btm.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Simartampua",
- "Apundung"
+ "Apundung",
+ "Simartampua"
]
},
"vector-action-addsection": "Baen tema",
diff --git a/i18n/bug.json b/i18n/bug.json
index b1b0f9e..cd77884 100644
--- a/i18n/bug.json
+++ b/i18n/bug.json
@@ -1,12 +1,14 @@
{
"@metadata": {
"authors": [
- "Kurniasan"
+ "Kurniasan",
+ "Notanotheramy"
]
},
"vector-action-move": "Paléccé'",
- "vector-view-create": "Ebbu",
+ "vector-view-create": "ᨆᨙᨅᨘ",
"vector-view-edit": "Padéccéng",
- "vector-view-view": "Baca",
- "vector-view-viewsource": "Ita sumber"
+ "vector-view-view": "ᨅᨌ",
+ "vector-view-viewsource": "Ita sumber",
+ "vector-more-actions": "ᨒᨕᨗᨊᨕᨙ"
}
diff --git a/i18n/ca.json b/i18n/ca.json
index dcc5dbe..b1d69d7 100644
--- a/i18n/ca.json
+++ b/i18n/ca.json
@@ -1,16 +1,16 @@
{
"@metadata": {
"authors": [
+ "Abella",
"Aleator",
"Anskar",
"Calak",
+ "Fitoschido",
"Paucabot",
"Ssola",
- "Vriullop",
"Toniher",
- "Fitoschido",
- "Abella",
- "Townie"
+ "Townie",
+ "Vriullop"
]
},
"skinname-vector": "Vector",
diff --git a/i18n/cdo.json b/i18n/cdo.json
index 9d7c44a..3b4c92f 100644
--- a/i18n/cdo.json
+++ b/i18n/cdo.json
@@ -1,9 +1,9 @@
{
"@metadata": {
"authors": [
+ "GnuDoyng",
"Yejianfei",
- "唐吉訶德的侍從",
- "GnuDoyng"
+ "唐吉訶德的侍從"
]
},
"vector-action-addsection": "Gă uâ-dà̤",
diff --git a/i18n/ce.json b/i18n/ce.json
index b72b094..b0a07fa 100644
--- a/i18n/ce.json
+++ b/i18n/ce.json
@@ -2,8 +2,8 @@
"@metadata": {
"authors": [
"Sasan700",
- "Умар",
- "Исмаил Садуев"
+ "Исмаил Садуев",
+ "Умар"
]
},
"skinname-vector": "Векторан",
@@ -15,9 +15,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-jumptonavigation": "Навигацин тӀегӀо",
"vector-jumptosearch": "Лахарна тӀегӀо",
diff --git a/i18n/ceb.json b/i18n/ceb.json
index 80a00a7..c616093 100644
--- a/i18n/ceb.json
+++ b/i18n/ceb.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Jordz",
- "Bentong Isles"
+ "Bentong Isles",
+ "Jordz"
]
},
"vector-action-addsection": "Pagdugang og topiko",
diff --git a/i18n/cnr-latn.json b/i18n/cnr-latn.json
index 272fca1..632d8f0 100644
--- a/i18n/cnr-latn.json
+++ b/i18n/cnr-latn.json
@@ -8,6 +8,7 @@
"vector-action-delete": "Izbriši",
"vector-action-move": "Premjesti",
"vector-action-protect": "Zaštiti",
+ "vector-view-create": "Napravi",
"vector-view-edit": "Uredi",
"vector-view-history": "Pregledaj istoriju",
"vector-view-view": "Čitaj",
diff --git a/i18n/co.json b/i18n/co.json
index 2698088..be2b762 100644
--- a/i18n/co.json
+++ b/i18n/co.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Paulu",
- "Jun Misugi"
+ "Jun Misugi",
+ "Paulu"
]
},
"vector-action-addsection": "Aghjunghje discussione",
diff --git a/i18n/cop.json b/i18n/cop.json
index e2d5b67..4f7b4a4 100644
--- a/i18n/cop.json
+++ b/i18n/cop.json
@@ -1,11 +1,12 @@
{
"@metadata": {
"authors": [
- "ⲁϩⲙⲉⲧ",
- "Bloomaround"
+ "Bloomaround",
+ "ⲁϩⲙⲉⲧ"
]
},
"vector-action-addsection": "ⲧⲟⲩϩⲟ ⲟⲩⲑⲉⲙⲁ",
+ "vector-action-move": "ⲕⲓⲙ",
"vector-view-create": "ⲑⲁⲙⲓⲟ",
"vector-view-edit": "ϫⲓⲛⲫⲱⲛϩ",
"vector-view-history": "ⲁⲛⲁⲩ ⲉϯϩⲓⲥⲧⲟⲣⲓⲁ",
diff --git a/i18n/crh-cyrl.json b/i18n/crh-cyrl.json
index bccf53e..e436e6d 100644
--- a/i18n/crh-cyrl.json
+++ b/i18n/crh-cyrl.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Don Alessandro",
- "Danvintius Bookix"
+ "Danvintius Bookix",
+ "Don Alessandro"
]
},
"vector-action-addsection": "Мевзу къош",
diff --git a/i18n/cs.json b/i18n/cs.json
index 163d35e..47f63e0 100644
--- a/i18n/cs.json
+++ b/i18n/cs.json
@@ -1,15 +1,19 @@
{
"@metadata": {
"authors": [
- "Mormegil",
"Dvorapa",
+ "Matěj Suchánek",
+ "Mormegil",
"Patriccck"
]
},
"skinname-vector": "Vektor",
"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“ */",
+ "prefs-vector-enable-vector-1-label": "Použít starý Vektor",
+ "prefs-vector-enable-vector-1-help": "V následujících letech budeme postupně aktualizovat vzhled Vektor. Starý Vektor vám umožní používat starou verzi Vektoru z prosince 2019. Více o aktualizacích se dozvíte na naší [[mw:Reading/Web/Desktop_Improvements|projektové stránce]].",
+ "vector-opt-out": "Přepnout na starý vzhled",
+ "vector.css": "/* Veškeré zde uvedené CSS bude načítáno uživatelům vzhledu „Vektor“ */",
+ "vector.js": "/* Veškerý zde uvedený JavaScript bude načítán uživatelům vzhledu „Vektor“ */",
"vector-action-addsection": "Přidat téma",
"vector-action-delete": "Smazat",
"vector-action-move": "Přesunout",
diff --git a/i18n/csb.json b/i18n/csb.json
index 65aa6a2..86ee501 100644
--- a/i18n/csb.json
+++ b/i18n/csb.json
@@ -2,8 +2,8 @@
"@metadata": {
"authors": [
"Kaszeba",
- "Kuvaly",
- "Kirsan"
+ "Kirsan",
+ "Kuvaly"
]
},
"vector-action-addsection": "Dodôj témã",
diff --git a/i18n/cv.json b/i18n/cv.json
index cda61b0..6421ef5 100644
--- a/i18n/cv.json
+++ b/i18n/cv.json
@@ -2,8 +2,8 @@
"@metadata": {
"authors": [
"Chavash",
- "FLAGELLVM DEI",
- "Chuvash2014"
+ "Chuvash2014",
+ "FLAGELLVM DEI"
]
},
"vector-action-addsection": "Тема хуш",
diff --git a/i18n/de-ch.json b/i18n/de-ch.json
index 8ca3910..604a6e8 100644
--- a/i18n/de-ch.json
+++ b/i18n/de-ch.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Marcell0",
- "L*E*D"
+ "L*E*D",
+ "Marcell0"
]
},
"vector-view-edit": "Bearbeiten",
diff --git a/i18n/de.json b/i18n/de.json
index f6cea42..6b03e40 100644
--- a/i18n/de.json
+++ b/i18n/de.json
@@ -9,8 +9,13 @@
},
"skinname-vector": "Vector",
"vector-skin-desc": "Stellt eine modernisierte Benutzeroberfläche bereit",
+ "prefs-vector-enable-vector-1-label": "Verwende Legacy-Vector",
+ "prefs-vector-enable-vector-1-help": "Im Laufe der nächsten Jahre werden wir den Vector-Skin schrittweise aktualisieren. Legacy-Vector wird es dir ermöglichen, die alte Version von Vector (Dezember 2019) anzusehen. Um mehr über die Aktualisierungen zu erfahren, gehe zu unserer [[mw:Reading/Web/Desktop_Improvements|Projektseite]].",
+ "vector-opt-out": "Umschalten zum bisherigen Aussehen",
+ "vector-opt-out-tooltip": "Ändere deine Einstellungen, um zum alten Aussehen der Benutzeroberfläche zurückzukehren (Legacy-Vector)",
"vector.css": "/* Das folgende CSS wird für Benutzer der Vector-Benutzeroberfläche geladen. */",
"vector.js": "/* Das folgende JavaScript wird für Benutzer der Vector-Benutzeroberfläche geladen. */",
+ "vector-action-toggle-sidebar": "Seitenleiste umschalten",
"vector-action-addsection": "Abschnitt hinzufügen",
"vector-action-delete": "Löschen",
"vector-action-move": "Verschieben",
diff --git a/i18n/din.json b/i18n/din.json
index 111db9d..4778b79 100644
--- a/i18n/din.json
+++ b/i18n/din.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Dinkawiki",
- "Amire80"
+ "Amire80",
+ "Dinkawiki"
]
},
"vector-action-addsection": "Mätë wɛ̈tnhom",
diff --git a/i18n/diq.json b/i18n/diq.json
index 8fbd8b2..5120635 100644
--- a/i18n/diq.json
+++ b/i18n/diq.json
@@ -1,33 +1,38 @@
{
"@metadata": {
"authors": [
+ "1917 Ekim Devrimi",
"Asmen",
"Calak",
- "Erdemaslancan",
- "Mirzali",
- "Gorizon",
- "Kumkumuk",
- "Gırd",
- "Velg",
- "1917 Ekim Devrimi",
"Dılmıc",
+ "Erdemaslancan",
"Gambollar",
- "Orbot707"
+ "Gorizon",
+ "Gırd",
+ "Kumkumuk",
+ "Mirzali",
+ "Orbot707",
+ "Velg"
]
},
"skinname-vector": "Vektor",
"vector-skin-desc": "Asayışo de newe be versiyonê MonoBookiyo modern ra û weşkerdışê ke şenê bıgureniyê",
+ "prefs-vector-enable-vector-1-label": "Vektorê kehani bıkarnê",
+ "prefs-vector-enable-vector-1-help": "Serre ke ma ver yenê ma dê asayışê vektori qedemeyın rocanê kerê. Kehan versiyonê kehan vektori hetana Çele 2019 mısade deyeno. Seba rocane kerdışan zêde melumati rê şırê [[mw:Reading/Web/Desktop_Improvements|pela proceyi]]",
+ "vector-opt-out": "Ravêr asayışê verêni",
+ "vector-opt-out-tooltip": "Kehan asayışê cildi şiyayışi rê eyaranê ho bıvurnê (Vektoro kehan)",
+ "vector-action-toggle-sidebar": "Toggle sidebar",
"vector-action-addsection": "Mewzu dek",
"vector-action-delete": "Bestere",
"vector-action-move": "Bıkırışe",
"vector-action-protect": "Bışevekne",
"vector-action-undelete": "Meestere",
"vector-action-unprotect": "Sıtarnayışi bıvurne",
- "vector-view-create": "Vıraz",
+ "vector-view-create": "Vıraze",
"vector-view-edit": "Bıvurne",
"vector-view-history": "Verêni bıvêne",
"vector-view-view": "Bıwane",
- "vector-view-viewsource": "Rêçi bıvin",
+ "vector-view-viewsource": "Çımeyi 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/dty.json b/i18n/dty.json
index 3a1677d..112df2d 100644
--- a/i18n/dty.json
+++ b/i18n/dty.json
@@ -1,10 +1,10 @@
{
"@metadata": {
"authors": [
+ "Nirajan pant",
"जनक राज भट्ट",
- "राम प्रसाद जोशी",
"रमेश सिंह बोहरा",
- "Nirajan pant"
+ "राम प्रसाद जोशी"
]
},
"vector-action-addsection": "विषय थपिदिय",
diff --git a/i18n/dv.json b/i18n/dv.json
index a356722..aea3c22 100644
--- a/i18n/dv.json
+++ b/i18n/dv.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Ushau97",
- "Glaisher"
+ "Glaisher",
+ "Ushau97"
]
},
"vector-action-addsection": "ޚިޔާލެއް އިތުރުކުރައްވާ",
diff --git a/i18n/dz.json b/i18n/dz.json
new file mode 100644
index 0000000..282f81b
--- /dev/null
+++ b/i18n/dz.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tshering Nidup"
+ ]
+ },
+ "vector-view-view": "ལྷག"
+}
diff --git a/i18n/ee.json b/i18n/ee.json
index 6676418..2432217 100644
--- a/i18n/ee.json
+++ b/i18n/ee.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Natsubee",
- "Aguve"
+ "Aguve",
+ "Natsubee"
]
},
"vector-action-delete": "Tutui",
diff --git a/i18n/el.json b/i18n/el.json
index 53cafeb..84ed223 100644
--- a/i18n/el.json
+++ b/i18n/el.json
@@ -4,14 +4,18 @@
"Calak",
"Crazymadlover",
"Evropi",
+ "Geraki",
+ "Nikosgranturismogt",
"Omnipaedista",
"Protnet",
"ZaDiak",
- "Geraki",
- "Nikosgranturismogt"
+ "Αντιγόνη"
]
},
"vector-skin-desc": "Σύγχρονη έκδοση του MonoBook με φρέσκια ματιά και πολλές βελτιώσεις χρηστικότητας",
+ "prefs-vector-enable-vector-1-label": "Χρήση του Legacy Vector",
+ "prefs-vector-enable-vector-1-help": "Κατά τα επόμενα χρόνια, θα αναβαθμίζουμε σταδιακά το περιβάλλον Vector. Το Legacy Vector θα σας επιτρέψει να δείτε την παλιά έκδοση του Vector (ως τον Δεκέμβριο του 2019). Για να μάθετε περισσότερα σχετικά με τις αναβαθμίσεις, μεταβείτε στη [[mw:Reading/Web/Desktop_Improvements|σελίδα του έργου]] μας.",
+ "vector-opt-out": "Εναλλαγή στην παλιά εμφάνιση",
"vector.css": "/* Το τοποθετημένο εδώ CSS θα επηρεάσει χρήστες του Vector skin */",
"vector.js": "/* Οποιοσδήποτε κώδικας JavaScript εδώ θα φορτωθεί για χρήστες που χρησιμοποιούν το Vector skin */",
"vector-action-addsection": "Προσθήκη θέματος",
@@ -25,7 +29,7 @@
"vector-view-history": "Προβολή ιστορικού",
"vector-view-view": "Ανάγνωση",
"vector-view-viewsource": "Προβολή κώδικα",
- "vector-jumptonavigation": "Πήδηση στην πλοήγηση",
+ "vector-jumptonavigation": "Μετάβαση στην πλοήγηση",
"vector-jumptosearch": "Πήδηση στην αναζήτηση",
"vector-more-actions": "Περισσότερα"
}
diff --git a/i18n/en.json b/i18n/en.json
index 8d3ce63..0459ebb 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -4,8 +4,13 @@
},
"skinname-vector": "Vector",
"vector-skin-desc": "Modern version of MonoBook with fresh look and many usability improvements, customized for GOLEM",
- "vector.css": "/* CSS placed here will affect users of the Vector skin */",
- "vector.js": "/* Any JavaScript here will be loaded for users using the Vector skin */",
+ "prefs-vector-enable-vector-1-label": "Use Legacy Vector",
+ "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]].",
+ "vector-opt-out": "Switch to old look",
+ "vector-opt-out-tooltip": "Change your settings to go back to the old look of the skin (legacy Vector)",
+ "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 */",
+ "vector-action-toggle-sidebar": "Toggle sidebar",
"vector-action-addsection": "Add topic",
"vector-action-delete": "Delete",
"vector-action-move": "Move",
diff --git a/i18n/eo.json b/i18n/eo.json
index 13a590c..ffb2878 100644
--- a/i18n/eo.json
+++ b/i18n/eo.json
@@ -2,9 +2,9 @@
"@metadata": {
"authors": [
"KuboF",
+ "Mirin",
"Objectivesea",
- "Yekrats",
- "Mirin"
+ "Yekrats"
]
},
"skinname-vector": "Vektoro",
diff --git a/i18n/es-formal.json b/i18n/es-formal.json
index a666c05..1f76612 100644
--- a/i18n/es-formal.json
+++ b/i18n/es-formal.json
@@ -1,10 +1,12 @@
{
"@metadata": {
"authors": [
+ "KATRINE1993",
"XanaG"
]
},
"vector-view-edit": "Editar",
"vector-view-history": "Ver historial",
- "vector-view-view": "Leer"
+ "vector-view-view": "Leer",
+ "vector-more-actions": "Mas"
}
diff --git a/i18n/es.json b/i18n/es.json
index aa5908d..ba11db8 100644
--- a/i18n/es.json
+++ b/i18n/es.json
@@ -5,6 +5,8 @@
"Crazymadlover",
"Dalton2",
"Fitoschido",
+ "Geryescalier",
+ "Ihojose",
"Locos epraix",
"Manuelt15",
"MarcoAurelio",
@@ -15,6 +17,9 @@
},
"skinname-vector": "Vector",
"vector-skin-desc": "Versión moderna de MonoBook, con un aspecto actualizado y muchas mejoras de usabilidad",
+ "prefs-vector-enable-vector-1-label": "Utilizar versión heredada de Vector",
+ "vector-opt-out": "Cambiar a la apariencia anterior",
+ "vector-opt-out-tooltip": "Cambie su configuración para volver al aspecto anterior de la máscara (Vector heredado)",
"vector.css": "/* El CSS colocado en esta página afectará a los usuarios que usen la apariencia \"Vector\" */",
"vector.js": "/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios que usen la apariencia Vector */",
"vector-action-addsection": "Sección nueva",
diff --git a/i18n/et.json b/i18n/et.json
index fc01b32..6ea2752 100644
--- a/i18n/et.json
+++ b/i18n/et.json
@@ -8,7 +8,9 @@
},
"skinname-vector": "Vektor",
"vector-skin-desc": "MonoBooki uuem versioon värskema väljanägemise ja mitme kasutajasõbralikuma täiendusega",
- "vector.css": "/* Siin asuv kaskaadilaadistik puudutab kõiki Vektori-kujunduse kasutajaid. */",
+ "prefs-vector-enable-vector-1-label": "Kasuta vana Vektorit",
+ "prefs-vector-enable-vector-1-help": "Tulevatel aastatel uuendame järk-järgult Vektori-kujundust. Vana Vektor võimaldab kuvada kujunduse vana versiooni (seisuga detsember 2019). Lisateavet uuenduste kohta leiad [[mw:Reading/Web/Desktop_Improvements|projekti lehelt]].",
+ "vector.css": "/* Siin asuv kaskaadilaadistik laaditakse kõigi Vektori-kujunduse kasutajate jaoks. */",
"vector.js": "/* Siin asuv JavaScript laaditakse kõigi Vektori-kujunduse kasutajate jaoks. */",
"vector-action-addsection": "Lisa teema",
"vector-action-delete": "Kustuta",
@@ -21,5 +23,7 @@
"vector-view-history": "Näita ajalugu",
"vector-view-view": "Vaata",
"vector-view-viewsource": "Vaata lähteteksti",
+ "vector-jumptonavigation": "Mine navigeerimisribale",
+ "vector-jumptosearch": "Mine otsikasti",
"vector-more-actions": "Veel"
}
diff --git a/i18n/eu.json b/i18n/eu.json
index 1fc829b..7a67904 100644
--- a/i18n/eu.json
+++ b/i18n/eu.json
@@ -1,10 +1,10 @@
{
"@metadata": {
"authors": [
- "Unai Fdz. de Betoño",
- "Xabier Armendaritz",
"Fitoschido",
- "Subi"
+ "Subi",
+ "Unai Fdz. de Betoño",
+ "Xabier Armendaritz"
]
},
"vector-skin-desc": "MonoBook-en bertsio modernoa, itxura berriarekin eta erabilgarritasun hobekuntza askorekin",
diff --git a/i18n/fa.json b/i18n/fa.json
index 5542673..6e6530d 100644
--- a/i18n/fa.json
+++ b/i18n/fa.json
@@ -1,17 +1,19 @@
{
"@metadata": {
"authors": [
+ "Alireza Ivaz",
"Calak",
+ "DEXi",
"Ebraminio",
"Huji",
+ "Ladsgroup",
"Reza1615",
- "Zack90",
- "DEXi",
- "Alireza Ivaz"
+ "Zack90"
]
},
"skinname-vector": "وکتور",
"vector-skin-desc": "نگارش مدرن مونوبوک با نمای تازه و بهینهسازیهای کاربردی",
+ "vector-opt-out": "بازگشت به ظاهر قدیمی",
"vector.css": "/* دستورات این بخش کاربرانی را که از پوستهٔ وکتور استفاده کنند تحت تاثیر قرار میدهند. */",
"vector.js": "/ * کدهای جاوااسکریپتی که در اینجا قرار میگیرند برای کاربران پوستهٔ وکتور بارگیری میشود * /",
"vector-action-addsection": "افزودن بخش",
diff --git a/i18n/ff.json b/i18n/ff.json
index ac3ee5b..cf024a8 100644
--- a/i18n/ff.json
+++ b/i18n/ff.json
@@ -5,10 +5,13 @@
]
},
"vector-action-addsection": "Ɓeydi toɓɓere",
+ "vector-action-delete": "Momtu",
"vector-action-move": "Dirtin",
+ "vector-action-protect": "Hisnu",
"vector-view-create": "Sos",
"vector-view-edit": "Taƴto",
"vector-view-history": "Yiyto aslol",
"vector-view-view": "Tar",
- "vector-view-viewsource": "Yiyto ɗaɗol"
+ "vector-view-viewsource": "Yiyto ɗaɗol",
+ "vector-more-actions": "Ɓeydu"
}
diff --git a/i18n/fi.json b/i18n/fi.json
index 5cf5a81..56657b3 100644
--- a/i18n/fi.json
+++ b/i18n/fi.json
@@ -1,19 +1,24 @@
{
"@metadata": {
"authors": [
+ "01miki10",
"Crt",
"Nedergard",
"Nike",
"Pxos",
- "SuperPete",
- "01miki10",
- "Pyscowicz"
+ "Pyscowicz",
+ "SuperPete"
]
},
"skinname-vector": "Vektori",
"vector-skin-desc": "Uudistettu versio MonoBookista raikkaalla ulkoasulla ja useilla käytettävyysparannuksilla",
+ "prefs-vector-enable-vector-1-label": "Käytä vanhaa Vektoria",
+ "prefs-vector-enable-vector-1-help": "Seuraavien muutaman vuoden aikana päivitämme Vektori-ulkoasua vaiheittain. Vanha Vektori mahdollistaa Vektorin vanhan (joulukuu 2019) version käyttämisen. Saadaksesi lisätietoa päivityksistä katso [[mw:Reading/Web/Desktop_Improvements|projektisivumme]].",
+ "vector-opt-out": "Vaihda vanhaan ulkoasuun",
+ "vector-opt-out-tooltip": "Muuta asetuksiasi palataksesi ulkoasun vanhaan versioon (vanha Vektori)",
"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-toggle-sidebar": "Näytä/piilota sivupalkki",
"vector-action-addsection": "Lisää aihe",
"vector-action-delete": "Poista",
"vector-action-move": "Siirrä",
diff --git a/i18n/fit.json b/i18n/fit.json
index 46089ae..64aadef 100644
--- a/i18n/fit.json
+++ b/i18n/fit.json
@@ -1,10 +1,12 @@
{
"@metadata": {
"authors": [
- "Mestos"
+ "Mestos",
+ "Palmtree222",
+ "Pyscowicz"
]
},
- "vector-action-addsection": "Lissää aine",
+ "vector-action-addsection": "Lissää aihe",
"vector-action-delete": "Ota poies",
"vector-action-move": "Siirä",
"vector-action-protect": "Suojaa",
@@ -14,5 +16,6 @@
"vector-view-edit": "Mookkaa",
"vector-view-history": "Näytä histuuria",
"vector-view-view": "Lue",
- "vector-view-viewsource": "Näytä lähekooti"
+ "vector-view-viewsource": "Näytä lähekooti",
+ "vector-more-actions": "Lissää"
}
diff --git a/i18n/fon.json b/i18n/fon.json
index fe9d51d..0402440 100644
--- a/i18n/fon.json
+++ b/i18n/fon.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Mahuton",
- "Amire80"
+ "Amire80",
+ "Mahuton"
]
},
"vector-action-addsection": "Gɔ́ xóta yɔ́yɔ́ ɖévo ná",
diff --git a/i18n/fr.json b/i18n/fr.json
index dbf8ee8..593686a 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -4,17 +4,25 @@
"Akeron",
"Crochet.david",
"DavidL",
+ "DePlusJean",
+ "Eneelk",
"Gomoko",
"Jean-Frédéric",
+ "Niridya",
"Od1n",
- "DePlusJean",
- "Niridya"
+ "Pamputt",
+ "Wladek92"
]
},
"skinname-vector": "Vector",
"vector-skin-desc": "Version moderne de MonoBook avec un aspect rajeuni et beaucoup d’améliorations ergonomiques",
+ "prefs-vector-enable-vector-1-label": "Utiliser l’ancienne version de Vector",
+ "prefs-vector-enable-vector-1-help": "Dans les années à venir, nous mettrons progressivement à jour l’habillage Vector. La version héritée de Vector vous permet de voir l’ancien habillage de Vector (tel qu’il était en décembre 2019). Pour en savoir plus, rendez-vous sur [[mw:Reading/Web/Desktop_Improvements|project page]].",
+ "vector-opt-out": "Basculer vers l’ancien habillage",
+ "vector-opt-out-tooltip": "Modifier vos paramètres pour revenir à l’ancien aspect de l’habillage (Vector historique)",
"vector.css": "/* Le CSS placé ici affectera les utilisateurs de l’habillage Vector. */",
"vector.js": "/* Tout code JavaScript placé ici sera chargé pour les utilisateurs de l’habillage Vector */",
+ "vector-action-toggle-sidebar": "Afficher/cacher la barre latérale",
"vector-action-addsection": "Ajouter un sujet",
"vector-action-delete": "Supprimer",
"vector-action-move": "Renommer",
diff --git a/i18n/fy.json b/i18n/fy.json
index 72aa04d..2121b7d 100644
--- a/i18n/fy.json
+++ b/i18n/fy.json
@@ -2,23 +2,31 @@
"@metadata": {
"authors": [
"Kening Aldgilles",
- "SK-luuut",
- "Robin0van0der0vliet",
+ "PiefPafPier",
"Robin van der Vliet",
- "PiefPafPier"
+ "Robin0van0der0vliet",
+ "SK-luuut"
]
},
"skinname-vector": "Vektor",
+ "vector-skin-desc": "Moderne ferzje fan MonoBoek mei in fris oansjoch en protte noflike ferbetterings",
+ "prefs-vector-enable-vector-1-label": "De âlde bewende Vektor brûke",
+ "prefs-vector-enable-vector-1-help": "Yn 'e kommende pear jier geane wy de Vektor-foarmjouwing stadichoan bywurkje. Mei 'de âlde bewende Vektor' kinne jo it oansjoch fan de âlde ferzje fan Vektor (fan desimber 2019) behâlde. Gean nei ús [[mw:Reading/Web/Desktop_Improvements|projektside]] at jo mear witte wolle oer de oanpassings.",
+ "vector-opt-out": "Alde oansjoch weromsette",
+ "vector.css": "/* Al it CSS hjirre sil foar brûkers fan de Vector-foarmjouwing laden wurde */",
+ "vector.js": "/* Al it JavaScript hjirre sil foar brûkers fan de Vector-foarmjouwing laden wurde */",
"vector-action-addsection": "Nij mêd",
- "vector-action-delete": "Fuortsmite",
+ "vector-action-delete": "Wiskje",
"vector-action-move": "Omneame",
- "vector-action-protect": "Beskermje",
- "vector-action-undelete": "Tebeksette",
- "vector-action-unprotect": "Beskerming fuorthelje",
+ "vector-action-protect": "Skoattelje",
+ "vector-action-undelete": "Wer teplak sette",
+ "vector-action-unprotect": "Befeiliging wizigje",
"vector-view-create": "Oanmeitsje",
"vector-view-edit": "Bewurkje",
- "vector-view-history": "Skiednis sjen litte",
+ "vector-view-history": "Skiednis besjen",
"vector-view-view": "Lêze",
- "vector-view-viewsource": "Besjoch de boarne",
+ "vector-view-viewsource": "Boarne besjen",
+ "vector-jumptonavigation": "Springe nei navigaasje",
+ "vector-jumptosearch": "Springe nei sykjen",
"vector-more-actions": "Mear"
}
diff --git a/i18n/gaa.json b/i18n/gaa.json
index 410911a..97aaf24 100644
--- a/i18n/gaa.json
+++ b/i18n/gaa.json
@@ -1,10 +1,10 @@
{
"@metadata": {
"authors": [
+ "Amire80",
"Flixtey",
- "Mybluberet",
"Gkbediako",
- "Amire80"
+ "Mybluberet"
]
},
"vector-action-addsection": "Kɛ mlijaa yitso afata he",
diff --git a/i18n/gl.json b/i18n/gl.json
index 14d77ee..e8a8450 100644
--- a/i18n/gl.json
+++ b/i18n/gl.json
@@ -1,13 +1,14 @@
{
"@metadata": {
"authors": [
+ "Banjo",
"Elisardojm",
"Toliño",
- "Vivaelcelta",
- "Banjo"
+ "Vivaelcelta"
]
},
"vector-skin-desc": "Versión moderna da aparencia MonoBook, cun aspecto actualizado e moitas melloras na usabilidade",
+ "prefs-vector-enable-vector-1-label": "Usar Vector Legacy",
"vector.css": "/* O CSS que se coloque aquí afectará a quen use a aparencia Vector */",
"vector.js": "/* Calquera JavaScript que haxa aquí será cargado para os usuarios que usen a aparencia Vector */",
"vector-action-addsection": "Nova sección",
diff --git a/i18n/grc.json b/i18n/grc.json
index 5a34f3e..3966efd 100644
--- a/i18n/grc.json
+++ b/i18n/grc.json
@@ -2,8 +2,8 @@
"@metadata": {
"authors": [
"Crazymadlover",
- "Omnipaedista",
- "Gts-tg"
+ "Gts-tg",
+ "Omnipaedista"
]
},
"vector-action-addsection": "Θέμα προστιθέναι",
diff --git a/i18n/ha.json b/i18n/ha.json
index 4f742ac..0a15dcf 100644
--- a/i18n/ha.json
+++ b/i18n/ha.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "DonCamillo",
- "Ammarpad"
+ "Ammarpad",
+ "DonCamillo"
]
},
"vector-action-addsection": "Sabon sashe",
diff --git a/i18n/hak.json b/i18n/hak.json
index b07f495..1d7a9da 100644
--- a/i18n/hak.json
+++ b/i18n/hak.json
@@ -2,8 +2,8 @@
"@metadata": {
"authors": [
"Anson2812",
- "Jetlag",
"Hakka",
+ "Jetlag",
"唐吉訶德的侍從"
]
},
diff --git a/i18n/he.json b/i18n/he.json
index a807dfe..fb83c54 100644
--- a/i18n/he.json
+++ b/i18n/he.json
@@ -2,14 +2,19 @@
"@metadata": {
"authors": [
"Amire80",
- "Rotemliss",
- "Guycn2"
+ "Guycn2",
+ "Rotemliss"
]
},
"skinname-vector": "וקטור",
"vector-skin-desc": "גרסה מודרנית של העיצוב \"מונובוק\" עם מראה רענן ושיפורי שמישות רבים",
+ "prefs-vector-enable-vector-1-label": "להשתמש בעיצוב וקטור הישן",
+ "prefs-vector-enable-vector-1-help": "בשנים הקרובות נעדכן בהדרגה את עיצוב וקטור. עיצוב וקטור הישן יאפשר לך לראות את הגרסה הישנה של וקטור (כפי שהיא הייתה בדצמבר 2019). למידע נוסף על העדכונים, ר' את [[mw:Reading/Web/Desktop_Improvements|דף הפרויקט שלנו]].",
+ "vector-opt-out": "מעבר למראה הישן",
+ "vector-opt-out-tooltip": "שינוי ההעדפות שלך וחזרה למראה הישן של העיצוב (וקטור ישן)",
"vector.css": "/* הסגנונות הנכתבים כאן ישפיעו על העיצוב \"וקטור\" בלבד */",
"vector.js": "/* כל הסקריפטים הנכתבים כאן ייטענו עבור מי שמשתמש בעיצוב \"וקטור\" בלבד */",
+ "vector-action-toggle-sidebar": "שינוי מצב סרגל צד",
"vector-action-addsection": "פסקה חדשה",
"vector-action-delete": "מחיקה",
"vector-action-move": "העברה",
diff --git a/i18n/hi.json b/i18n/hi.json
index 0128d7d..18a7a5f 100644
--- a/i18n/hi.json
+++ b/i18n/hi.json
@@ -1,10 +1,10 @@
{
"@metadata": {
"authors": [
+ "Sfic",
"Siddhartha Ghai",
"आलोक",
- "रोहित रावत",
- "Sfic"
+ "रोहित रावत"
]
},
"skinname-vector": "वेक्टर",
diff --git a/i18n/hr.json b/i18n/hr.json
index 8666ce8..3a11811 100644
--- a/i18n/hr.json
+++ b/i18n/hr.json
@@ -1,14 +1,18 @@
{
"@metadata": {
"authors": [
- "Ex13",
- "Tivek",
- "Bugoslav",
"BadDog",
- "MaGa"
+ "Bugoslav",
+ "Ex13",
+ "MaGa",
+ "Neptune, the Mystic",
+ "Tivek"
]
},
"vector-skin-desc": "Osuvremenjena inačica MonoBooka s obnovljenim dizajnom i mnogim poboljšanjima u upotrebljivosti",
+ "prefs-vector-enable-vector-1-label": "Rabi stari (baštinjeni) izgled imena Vector",
+ "prefs-vector-enable-vector-1-help": "Tijekom nekoliko godina osvježavat će se izgled sučelja imena Vector. Baštinjeni Vector omogućit će Vam upotrebu pregleda starije inačice Vectora (do mjeseca prosinca 2019.). Ako želite saznati više o tehnološkome osuvremenjivanju posjetite naše [[mw:Reading/Web/Desktop_Improvements|stranice projekta na MedijaWikiju]].",
+ "vector-opt-out": "Prebaci na stari izgled",
"vector-action-addsection": "Dodaj temu",
"vector-action-delete": "Izbriši",
"vector-action-move": "Premjesti",
diff --git a/i18n/hrx.json b/i18n/hrx.json
index 75249d6..10d47a9 100644
--- a/i18n/hrx.json
+++ b/i18n/hrx.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Paul Beppler",
- "Midnight Gambler"
+ "Midnight Gambler",
+ "Paul Beppler"
]
},
"vector-action-addsection": "Abschnitt hinzufüche",
diff --git a/i18n/hsn.json b/i18n/hsn.json
index 66459c3..56c4bc4 100644
--- a/i18n/hsn.json
+++ b/i18n/hsn.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "YulouCN",
- "SolidBlock"
+ "SolidBlock",
+ "YulouCN"
]
},
"vector-skin-desc": "给杂清新的样子再加上好多吧多可用性的新MonoBook",
diff --git a/i18n/hu.json b/i18n/hu.json
index f801599..392440a 100644
--- a/i18n/hu.json
+++ b/i18n/hu.json
@@ -10,6 +10,9 @@
]
},
"vector-skin-desc": "A MonoBook felület modern változata frissebb kinézettel és sok használhatóságot javító fejlesztéssel",
+ "prefs-vector-enable-vector-1-label": "Hagyományos Vector használata",
+ "prefs-vector-enable-vector-1-help": "A következő pár évben fokozatosan frissíteni fogjuk a Vector felületet. A hagyományos Vector beállítással a Vector felület régi (2019. decemberi) változatát használhatod továbbra is. A frissítésekről további információk a [[mw:Reading/Web/Desktop_Improvements|projektlapunkon]] találhatók.",
+ "vector-opt-out": "Vissza a régi megjelenéshez",
"vector.css": "/* Az ide elhelyezett CSS hatással lesz a Vector felület használóira */",
"vector.js": "/* A Vector felületet használó szerkesztők számára betöltendő JavaScriptek */",
"vector-action-addsection": "Új téma nyitása",
diff --git a/i18n/hy.json b/i18n/hy.json
index 79e4601..7007f4a 100644
--- a/i18n/hy.json
+++ b/i18n/hy.json
@@ -1,10 +1,10 @@
{
"@metadata": {
"authors": [
+ "Arman musikyan",
"Teak",
"Vadgt",
- "Xelgen",
- "Arman musikyan"
+ "Xelgen"
]
},
"skinname-vector": "Սովորական",
diff --git a/i18n/hyw.json b/i18n/hyw.json
index 86f5c72..6b8d4f1 100644
--- a/i18n/hyw.json
+++ b/i18n/hyw.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Azniv Stepanian",
"ArmenBakkalian",
+ "Azniv Stepanian",
"Rajemian",
"Դավիթ Սարոյան"
]
diff --git a/i18n/ia.json b/i18n/ia.json
index fe679fa..c7ee39c 100644
--- a/i18n/ia.json
+++ b/i18n/ia.json
@@ -5,6 +5,8 @@
]
},
"vector-skin-desc": "Version moderne de MonoBook con aspecto rejuvenescite e multe meliorationes de usabilitate.",
+ "prefs-vector-enable-vector-1-label": "Usar le version ancian de Vector",
+ "prefs-vector-enable-vector-1-help": "In le proxime annos nos va actualisar gradualmente le apparentia Vector. Il continua a esser possibile usar le version ancian de Vector (illo de decembre 2019). Pro leger plus sur le actualisationes, va a nostre [[mw:Reading/Web/Desktop_Improvements|pagina de projecto]].",
"vector.css": "/* Le CSS placiate hic afficera le usatores del apparentia Vector */",
"vector.js": "/* Omne JavaScript hic se executara pro le usatores del apparentia Vector */",
"vector-action-addsection": "Adder topico",
diff --git a/i18n/ike-latn.json b/i18n/ike-latn.json
index 6c7337b..78ab869 100644
--- a/i18n/ike-latn.json
+++ b/i18n/ike-latn.json
@@ -1,4 +1,6 @@
{
- "@metadata": [],
+ "@metadata": {
+ "authors": []
+ },
"vector-view-edit": "Suqusiqpaa"
}
diff --git a/i18n/inh.json b/i18n/inh.json
index 854c1c5..212eb80 100644
--- a/i18n/inh.json
+++ b/i18n/inh.json
@@ -1,11 +1,11 @@
{
"@metadata": {
"authors": [
- "Amire80",
- "Sapral Mikail",
- "Умар",
"Adam-Yourist",
- "ElizaMag"
+ "Amire80",
+ "ElizaMag",
+ "Sapral Mikail",
+ "Умар"
]
},
"skinname-vector": "Вéктора",
@@ -14,10 +14,10 @@
"vector-action-move": "ЦӀи хувца",
"vector-action-protect": "Лорае",
"vector-action-undelete": "Хьаметтаоттаде",
- "vector-action-unprotect": "Лорадар (гIо) хувца",
+ "vector-action-unprotect": "Лораяр хувца",
"vector-view-create": "Хьакхолла",
- "vector-view-edit": "Тоае",
- "vector-view-history": "ОагӀон хувцамаш",
+ "vector-view-edit": "Тоаде",
+ "vector-view-history": "Хувцамаш",
"vector-view-view": "Де́ша",
"vector-view-viewsource": "Хьалххе бӀаргтохара разметкага хьажар",
"vector-more-actions": "Кхы а"
diff --git a/i18n/io.json b/i18n/io.json
index cb6e8ee..c0524ad 100644
--- a/i18n/io.json
+++ b/i18n/io.json
@@ -1,11 +1,14 @@
{
"@metadata": {
"authors": [
- "Malafaya",
+ "Joao Xavier",
"Lakaoso",
- "Joao Xavier"
+ "Malafaya"
]
},
+ "prefs-vector-enable-vector-1-label": "Uzez 'Legacy Vector'",
+ "prefs-vector-enable-vector-1-help": "Dum la sequanta yari, ni gradope adoptos la vido-modelo ''Vector''. Legacy Vector permisos vu vidar l'anciena versiono di ''Vector'' (uzita til decembro 2019). Por savar pluse pri l'aktualigi, irez a [[mw:Reading/Web/Desktop_Improvements|nia pagino pri la projeto]].",
+ "vector-opt-out": "Chanjar al anciena ordino",
"vector-action-addsection": "Adjuntar topiko",
"vector-action-delete": "Efacar",
"vector-action-move": "Movar",
diff --git a/i18n/is.json b/i18n/is.json
index 6c84d1b..ee89954 100644
--- a/i18n/is.json
+++ b/i18n/is.json
@@ -4,8 +4,8 @@
"Friðrik Bragi Dýrfjörð",
"Maxí",
"Snævar",
- "Ævar Arnfjörð Bjarmason",
- "Sveinn í Felli"
+ "Sveinn í Felli",
+ "Ævar Arnfjörð Bjarmason"
]
},
"skinname-vector": "Vektor",
diff --git a/i18n/it.json b/i18n/it.json
index c1cbf76..80efe60 100644
--- a/i18n/it.json
+++ b/i18n/it.json
@@ -3,14 +3,16 @@
"authors": [
"Beta16",
"Darth Kule",
+ "Elitre",
+ "FRacco",
"Gianfranco",
"Melos",
"Pietrodn",
- "FRacco",
- "Elitre"
+ "Scompo"
]
},
"vector-skin-desc": "Versione moderna del MonoBook con un aspetto rinnovato e miglioramenti dell'usabilità, personalizzato per GOLEM",
+ "vector-opt-out-tooltip": "Cambia le tue impostazioni per ritornare alla visualizzazione della skin precedente (legacy Vector)",
"vector.css": "/* Gli stili CSS inseriti qui si applicano agli utenti che usano il tema Vector */",
"vector.js": "/* Il codice JavaScript inserito qui viene caricato dagli utenti che usano il tema Vector */",
"vector-action-addsection": "Aggiungi discussione",
diff --git a/i18n/ja.json b/i18n/ja.json
index 0a40231..917989f 100644
--- a/i18n/ja.json
+++ b/i18n/ja.json
@@ -3,18 +3,21 @@
"authors": [
"Fryed-peach",
"Marine-Blue",
+ "Otokoume",
"Penn Station",
"Shirayuki",
- "Whym",
- "青子守歌",
"Takot",
- "Otokoume"
+ "Tmv",
+ "Whym",
+ "青子守歌"
]
},
"skinname-vector": "ベクター",
"vector-skin-desc": "新しい見た目でユーザビリティが改善された、モダンバージョンのMonobook。",
+ "vector-opt-out": "以前の外観に切り替え",
"vector.css": "/* ここに記述したCSSはベクター外装の利用者に影響します */",
"vector.js": "/* ここにあるすべてのJavaScriptは、ベクター外装を使用している利用者に対して読み込まれます */",
+ "vector-action-toggle-sidebar": "サイドバーの切り替え",
"vector-action-addsection": "話題追加",
"vector-action-delete": "削除",
"vector-action-move": "移動",
diff --git a/i18n/jam.json b/i18n/jam.json
index 7200a43..1f7f49b 100644
--- a/i18n/jam.json
+++ b/i18n/jam.json
@@ -2,8 +2,8 @@
"@metadata": {
"authors": [
"Hazard-SJ",
- "Yocahuna",
- "Katxis"
+ "Katxis",
+ "Yocahuna"
]
},
"vector-action-addsection": "Ad tapik",
diff --git a/i18n/jut.json b/i18n/jut.json
index c5db4d6..fd7c736 100644
--- a/i18n/jut.json
+++ b/i18n/jut.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Jyllanj",
- "Ghiutun"
+ "Ghiutun",
+ "Jyllanj"
]
},
"vector-action-addsection": "Ny emn",
diff --git a/i18n/jv.json b/i18n/jv.json
index 19b095a..b0d8fec 100644
--- a/i18n/jv.json
+++ b/i18n/jv.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Pras",
- "NoiX180"
+ "NoiX180",
+ "Pras"
]
},
"vector-action-addsection": "Tambah rembug",
diff --git a/i18n/kab.json b/i18n/kab.json
index c2aa341..f4b1379 100644
--- a/i18n/kab.json
+++ b/i18n/kab.json
@@ -1,12 +1,13 @@
{
"@metadata": {
"authors": [
+ "Belkacem77",
"Mmistmurt",
- "Belkacem77"
+ "YouvaDjouadi"
]
},
"vector-skin-desc": "Lqem atrar n MonoBook s wudem ilemẓi akked ddeqs n usnerni ucbiḥ",
- "vector-action-addsection": "Rnud ameggay",
+ "vector-action-addsection": "Rnu-d asentel",
"vector-action-delete": "Mḥu",
"vector-action-move": "Snifel isem",
"vector-action-protect": "Mmesten",
@@ -15,7 +16,7 @@
"vector-view-create": "Rnu",
"vector-view-edit": "Ẓreg",
"vector-view-history": "Wali amazray",
- "vector-view-view": "Ɣer",
+ "vector-view-view": "Ɣeṛ",
"vector-view-viewsource": "Ẓer aɣbalu",
"vector-more-actions": "Ugar"
}
diff --git a/i18n/kea.json b/i18n/kea.json
index a88e43a..71a1f5a 100644
--- a/i18n/kea.json
+++ b/i18n/kea.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Waldir",
"Quintino Lopes Castro Tavares",
+ "Waldir",
"Waldyrious"
]
},
diff --git a/i18n/kiu.json b/i18n/kiu.json
index 3d1ab49..5c07dae 100644
--- a/i18n/kiu.json
+++ b/i18n/kiu.json
@@ -1,9 +1,9 @@
{
"@metadata": {
"authors": [
- "Mirzali",
+ "1917 Ekim Devrimi",
"Kumkumuk",
- "1917 Ekim Devrimi"
+ "Mirzali"
]
},
"vector-skin-desc": "Asayışo de newe be versiyonê MonoBookiyo modern ra û weşkerdışê ke şenê bıgureniyê",
diff --git a/i18n/kjh.json b/i18n/kjh.json
index 1ff9954..48150da 100644
--- a/i18n/kjh.json
+++ b/i18n/kjh.json
@@ -5,5 +5,8 @@
]
},
"vector-view-create": "Идебзерге",
- "vector-view-edit": "Тӱзедерге"
+ "vector-view-edit": "Тӱзедерге",
+ "vector-view-history": "Кӧрігтердің тархыны",
+ "vector-view-view": "Хығырарға",
+ "vector-more-actions": "Хоза"
}
diff --git a/i18n/kn.json b/i18n/kn.json
index fcd84f7..bfa1e07 100644
--- a/i18n/kn.json
+++ b/i18n/kn.json
@@ -3,8 +3,8 @@
"authors": [
"Ktkaushik",
"Nayvik",
- "VASANTH S.N.",
- "Omshivaprakash"
+ "Omshivaprakash",
+ "VASANTH S.N."
]
},
"vector-action-addsection": "ವಿಷಯ ಸೇರಿಸಿ",
diff --git a/i18n/ko.json b/i18n/ko.json
index 583ff84..739a86b 100644
--- a/i18n/ko.json
+++ b/i18n/ko.json
@@ -2,17 +2,19 @@
"@metadata": {
"authors": [
"ITurtle",
+ "Jay94ks",
"Kwj2772",
- "아라",
"Revi",
"Ykhwong",
- "Jay94ks"
+ "아라"
]
},
"skinname-vector": "벡터",
"vector-skin-desc": "신선해 보이고 많은 사용성이 개선된 모노북의 현대 버전",
+ "vector-opt-out": "이전 스타일로 전환",
"vector.css": "/* 이 CSS 설정은 벡터 스킨을 사용하는 사용자에게 적용됩니다 */",
"vector.js": "/* 이 자바스크립트 설정은 벡터 스킨을 사용하는 사용자에게 적용됩니다 */",
+ "vector-action-toggle-sidebar": "사이드바 토글",
"vector-action-addsection": "새 주제",
"vector-action-delete": "삭제",
"vector-action-move": "이동",
diff --git a/i18n/krc.json b/i18n/krc.json
index 834f714..3690850 100644
--- a/i18n/krc.json
+++ b/i18n/krc.json
@@ -1,9 +1,9 @@
{
"@metadata": {
"authors": [
+ "Ernác",
"Iltever",
- "Къарачайлы",
- "Ernác"
+ "Къарачайлы"
]
},
"skinname-vector": "Вектор",
diff --git a/i18n/krl.json b/i18n/krl.json
index d336cff..6b5fe49 100644
--- a/i18n/krl.json
+++ b/i18n/krl.json
@@ -1,9 +1,9 @@
{
"@metadata": {
"authors": [
- "Mashoi7",
"Ilja.mos",
"Likopiän tyttö",
+ "Mashoi7",
"Varvana"
]
},
diff --git a/i18n/ks-arab.json b/i18n/ks-arab.json
index 1f8ec54..adfb6ae 100644
--- a/i18n/ks-arab.json
+++ b/i18n/ks-arab.json
@@ -1,5 +1,7 @@
{
- "@metadata": [],
+ "@metadata": {
+ "authors": []
+ },
"vector-view-edit": "تَرتیٖب دِیُن",
"vector-view-view": "پَرُن"
}
diff --git a/i18n/ksw.json b/i18n/ksw.json
new file mode 100644
index 0000000..d3194a5
--- /dev/null
+++ b/i18n/ksw.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jaeminlovetaejoon",
+ "SawJaemin"
+ ]
+ },
+ "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": "အါထီၣ်"
+}
diff --git a/i18n/ku-latn.json b/i18n/ku-latn.json
index 811baeb..92a7cad 100644
--- a/i18n/ku-latn.json
+++ b/i18n/ku-latn.json
@@ -1,10 +1,10 @@
{
"@metadata": {
"authors": [
- "Ferhengvan",
- "Gomada",
"Bikarhêner",
- "George Animal"
+ "Ferhengvan",
+ "George Animal",
+ "Gomada"
]
},
"vector-action-addsection": "Mijarekê lê zêde bike",
diff --git a/i18n/ky.json b/i18n/ky.json
index 3513421..1f91d35 100644
--- a/i18n/ky.json
+++ b/i18n/ky.json
@@ -3,9 +3,9 @@
"authors": [
"Chorobek",
"Growingup",
+ "Janatkg",
"Ztimur",
- "Викиней",
- "Janatkg"
+ "Викиней"
]
},
"vector-action-addsection": "Тема кошуу",
diff --git a/i18n/la.json b/i18n/la.json
index ad77cd0..f344690 100644
--- a/i18n/la.json
+++ b/i18n/la.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "UV",
- "Laurentianus"
+ "Laurentianus",
+ "UV"
]
},
"vector-action-addsection": "Partem novam addere",
diff --git a/i18n/lad.json b/i18n/lad.json
index 8374031..93d5a95 100644
--- a/i18n/lad.json
+++ b/i18n/lad.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Universal Life",
- "Chabi1"
+ "Chabi1",
+ "Universal Life"
]
},
"vector-action-addsection": "Ajustar sujeto",
diff --git a/i18n/lb.json b/i18n/lb.json
index 4e054e7..506d959 100644
--- a/i18n/lb.json
+++ b/i18n/lb.json
@@ -6,6 +6,8 @@
},
"skinname-vector": "Vector",
"vector-skin-desc": "Modern Versioun vu Monobook mat frëschem Look a ville Verbesserunge vun der Benotzerfrëndlechkeet",
+ "prefs-vector-enable-vector-1-label": "Déi al-Versioun vu Vector benotzen",
+ "vector-opt-out": "An den ale Layout wiesselen",
"vector.css": "/* CSS deen hei steet huet Afloss op all Benotzer vum Ausgesinn Vector */",
"vector.js": "/* All JavaScript hei gëtt gelueden esoubal ee Benotzer d'Ausgesinn Vector benotzt */",
"vector-action-addsection": "Sujet dobäisetzen",
diff --git a/i18n/lfn.json b/i18n/lfn.json
index aa0a390..f3ecd0d 100644
--- a/i18n/lfn.json
+++ b/i18n/lfn.json
@@ -2,8 +2,8 @@
"@metadata": {
"authors": [
"Cgboeree",
- "Katxis",
- "Chabi"
+ "Chabi",
+ "Katxis"
]
},
"vector-action-addsection": "Ajunta un tema",
diff --git a/i18n/li.json b/i18n/li.json
index a3f7ed7..c2c1c6b 100644
--- a/i18n/li.json
+++ b/i18n/li.json
@@ -2,8 +2,8 @@
"@metadata": {
"authors": [
"Ooswesthoesbes",
- "Robin0van0der0vliet",
- "Robin van der Vliet"
+ "Robin van der Vliet",
+ "Robin0van0der0vliet"
]
},
"vector-skin-desc": "Modern versie van MonoBook mit e frisj uterlik en verbaeteringe op 't gebeed van gebroeksvruntjelikheid",
diff --git a/i18n/lij.json b/i18n/lij.json
index c45f3c6..03f3e7b 100644
--- a/i18n/lij.json
+++ b/i18n/lij.json
@@ -6,6 +6,11 @@
"S4b1nuz E.656"
]
},
+ "vector-skin-desc": "Verscion moderna do MonoBook co-in aspetto rinovou e di belli avantaggi inta dœuviabilitæ",
+ "prefs-vector-enable-vector-1-label": "Adœuvia o Vector vegio",
+ "prefs-vector-enable-vector-1-help": "Inti proscimi anni ciancianin agiorniemo e pelle do Vector. O Vector Legacy o te permetiâ d'amiâ a verscion vegia do Vector (do dexembre 2019). Pe saveine de ciu in scî agiornamenti vanni a-a nostra [[mw:Reading/Web/Desktop_Improvements|paggina do progetto]]",
+ "vector-opt-out": "Passa a l'aspetto vegio",
+ "vector-opt-out-tooltip": "Cangia e to impostassioin pe tornâ a-a vixoalizassion da pelle vegia (legacy Vector)",
"vector-action-addsection": "Azónzi discusción",
"vector-action-delete": "Scancella",
"vector-action-move": "Mescia",
@@ -17,5 +22,7 @@
"vector-view-history": "Cronologîa",
"vector-view-view": "Lêzi",
"vector-view-viewsource": "Vixualizza wikitesto",
+ "vector-jumptonavigation": "Sata a-a navegassion",
+ "vector-jumptosearch": "Sata a-a serchia",
"vector-more-actions": "Âtro"
}
diff --git a/i18n/liv.json b/i18n/liv.json
index b5838fb..0a9dfac 100644
--- a/i18n/liv.json
+++ b/i18n/liv.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Warbola",
- "Kengšepā"
+ "Kengšepā",
+ "Warbola"
]
},
"vector-action-addsection": "Pan jūrõ tēma",
diff --git a/i18n/lki.json b/i18n/lki.json
index 7c1cbfe..77a47ea 100644
--- a/i18n/lki.json
+++ b/i18n/lki.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Hosseinblue",
"Arash71",
+ "Hosseinblue",
"Lakzon"
]
},
diff --git a/i18n/lld.json b/i18n/lld.json
index aaf11a7..2c31a8a 100644
--- a/i18n/lld.json
+++ b/i18n/lld.json
@@ -1,10 +1,14 @@
{
"@metadata": {
"authors": [
- "Asenoner"
+ "Asenoner",
+ "Starladin"
]
},
"vector-action-addsection": "Mët leprò n tema de descuscion",
+ "vector-action-delete": "Straihëia",
+ "vector-action-move": "Spostëia",
+ "vector-action-protect": "Straverda",
"vector-view-create": "Mët adum",
"vector-view-edit": "Muda",
"vector-view-history": "Storia dl documënt",
diff --git a/i18n/lrc.json b/i18n/lrc.json
index 5e9b0e1..d727cba 100644
--- a/i18n/lrc.json
+++ b/i18n/lrc.json
@@ -1,9 +1,9 @@
{
"@metadata": {
"authors": [
- "Mogoeilor",
"Beyronvan",
- "Lorestani"
+ "Lorestani",
+ "Mogoeilor"
]
},
"vector-action-addsection": "سالفٱ اْزاف بٱکؽت",
diff --git a/i18n/lt.json b/i18n/lt.json
index ac89b12..50eb07f 100644
--- a/i18n/lt.json
+++ b/i18n/lt.json
@@ -1,13 +1,13 @@
{
"@metadata": {
"authors": [
+ "Albertas",
"Garas",
"Homo",
+ "Hugo.arg",
"Matasg",
"Perkunas",
- "Hugo.arg",
- "Tomasdd",
- "Albertas"
+ "Tomasdd"
]
},
"skinname-vector": "Vektorinė",
diff --git a/i18n/lzh.json b/i18n/lzh.json
index ab2286d..21c7956 100644
--- a/i18n/lzh.json
+++ b/i18n/lzh.json
@@ -1,9 +1,9 @@
{
"@metadata": {
"authors": [
+ "Itsmine",
"Justincheng12345",
- "Nemo bis",
- "Itsmine"
+ "Nemo bis"
]
},
"skinname-vector": "動力",
diff --git a/i18n/lzz.json b/i18n/lzz.json
index 1adad07..23d0055 100644
--- a/i18n/lzz.json
+++ b/i18n/lzz.json
@@ -3,9 +3,9 @@
"authors": [
"Bombola",
"Ceas08",
+ "Cem Rize",
"Erdemaslancan",
- "Velg",
- "Cem Rize"
+ "Velg"
]
},
"vector-action-addsection": "Konu ekle",
diff --git a/i18n/mad.json b/i18n/mad.json
new file mode 100644
index 0000000..7ed42f6
--- /dev/null
+++ b/i18n/mad.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Abdiafrizal",
+ "NoiX180"
+ ]
+ },
+ "vector-view-edit": "Sontèng",
+ "vector-view-view": "Bâcâ",
+ "vector-more-actions": "Polè"
+}
diff --git a/i18n/mai.json b/i18n/mai.json
index 8a6ae45..f85dddc 100644
--- a/i18n/mai.json
+++ b/i18n/mai.json
@@ -2,8 +2,8 @@
"@metadata": {
"authors": [
"Ggajendra",
- "Umeshberma",
"Tulsi Bhagat",
+ "Umeshberma",
"बिप्लब आनन्द"
]
},
diff --git a/i18n/map-bms.json b/i18n/map-bms.json
index 40cbfae..bff0e37 100644
--- a/i18n/map-bms.json
+++ b/i18n/map-bms.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "StefanusRA",
- "Mbrt"
+ "Mbrt",
+ "StefanusRA"
]
},
"vector-action-addsection": "Nambah topik",
diff --git a/i18n/mdf.json b/i18n/mdf.json
index 202a893..c38c5ef 100644
--- a/i18n/mdf.json
+++ b/i18n/mdf.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Numulunj pilgae",
- "Metsavend"
+ "Metsavend",
+ "Numulunj pilgae"
]
},
"vector-action-addsection": "Поладомс мезень колга корхтамс",
diff --git a/i18n/min.json b/i18n/min.json
index f60ea0c..e9ca322 100644
--- a/i18n/min.json
+++ b/i18n/min.json
@@ -3,8 +3,8 @@
"authors": [
"Iwan Novirion",
"Luthfi94",
- "VoteITP",
- "Naval Scene"
+ "Naval Scene",
+ "VoteITP"
]
},
"skinname-vector": "Vektor",
diff --git a/i18n/mk.json b/i18n/mk.json
index b98e321..ea7857a 100644
--- a/i18n/mk.json
+++ b/i18n/mk.json
@@ -7,8 +7,13 @@
},
"skinname-vector": "Векторско",
"vector-skin-desc": "Современа верзија на рувото „МоноБук“ со свеж изглед и многу подобрувања на употребливоста",
+ "prefs-vector-enable-vector-1-label": "Користи Векторско по старо",
+ "prefs-vector-enable-vector-1-help": "Во текот на следните некмолку години постепено ќе го надградуваме рувото Векторско. Неговата употреба по старо ќе ви овозможува да ја гледате старата верзија (по податок од декември 2019 г.). За да дознаете повеќе за надградбите, појдете на нашата [[mw:Reading/Web/Desktop_Improvements|проектна страница]].",
+ "vector-opt-out": "Смени на стариот изглед",
+ "vector-opt-out-tooltip": "Сменете си ги нагодувањата за да се вратите на стариот изглед на рувото (поранешното Векторско)",
"vector.css": "/* Тука поставениот CSS се однесува на корисниците на рувото „Векторско“ */",
"vector.js": "/* Тука поставениот JavaScript ќе им се вчитува на корисниците што го користат рувото „Векторско“ */",
+ "vector-action-toggle-sidebar": "Префрлање на страничник",
"vector-action-addsection": "Додај тема",
"vector-action-delete": "Избриши",
"vector-action-move": "Премести",
diff --git a/i18n/mn.json b/i18n/mn.json
index 46c736d..d9a7e8a 100644
--- a/i18n/mn.json
+++ b/i18n/mn.json
@@ -3,8 +3,8 @@
"authors": [
"Chinneeb",
"MongolWiki",
- "Wisdom",
- "Sembuk"
+ "Sembuk",
+ "Wisdom"
]
},
"vector-action-addsection": "Сэдэв нэмэх",
diff --git a/i18n/mo.json b/i18n/mo.json
index d9d3e83..2431dcf 100644
--- a/i18n/mo.json
+++ b/i18n/mo.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "TheChampionMan1234",
- "Cybernenea11"
+ "Cybernenea11",
+ "TheChampionMan1234"
]
},
"vector-action-delete": "Штерӂере",
diff --git a/i18n/mrh.json b/i18n/mrh.json
new file mode 100644
index 0000000..8d07a41
--- /dev/null
+++ b/i18n/mrh.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Laitei",
+ "Teitei Para"
+ ]
+ },
+ "vector-action-addsection": "Chôtlâhpi khô",
+ "vector-view-create": "Tao",
+ "vector-view-edit": "Taopathi",
+ "vector-view-history": "Chhichânazy palâ teih",
+ "vector-view-view": "Reih teih",
+ "vector-more-actions": "Ahluhviapa"
+}
diff --git a/i18n/mui.json b/i18n/mui.json
index 5a7480d..80d38ec 100644
--- a/i18n/mui.json
+++ b/i18n/mui.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Mahali syarifuddin",
"Jawadywn",
+ "Mahali syarifuddin",
"Masjawad99"
]
},
diff --git a/i18n/mwl.json b/i18n/mwl.json
index 5ac61e2..43d0084 100644
--- a/i18n/mwl.json
+++ b/i18n/mwl.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "MokaAkashiyaPT",
- "Athena in Wonderland"
+ "Athena in Wonderland",
+ "MokaAkashiyaPT"
]
},
"vector-action-addsection": "Nuobo cacho",
diff --git a/i18n/my.json b/i18n/my.json
index f9812c6..6bb2a90 100644
--- a/i18n/my.json
+++ b/i18n/my.json
@@ -1,6 +1,7 @@
{
"@metadata": {
"authors": [
+ "Dr Lotus Black",
"Lionslayer",
"Myanmars",
"Ninjastrikers",
@@ -18,5 +19,7 @@
"vector-view-history": "ရာဇဝင်ကြည့်ရန်",
"vector-view-view": "ဖတ်ရန်",
"vector-view-viewsource": "ရင်းမြစ်ကို ကြည့်ရန်",
+ "vector-jumptonavigation": "အညွှန်းသို့ ခုန်ကူးရန်",
+ "vector-jumptosearch": "ရှာဖွေရန် ခုန်ကူးမည်",
"vector-more-actions": "ပို၍"
}
diff --git a/i18n/nah.json b/i18n/nah.json
index d711990..4917190 100644
--- a/i18n/nah.json
+++ b/i18n/nah.json
@@ -1,12 +1,12 @@
{
"@metadata": {
"authors": [
+ "Akapochtli",
"Ricardo gs",
- "Taresi",
- "Akapochtli"
+ "Taresi"
]
},
- "vector-action-addsection": "Xicahxilti netlahtōlpepechtiliztli",
+ "vector-action-addsection": "Xicahxilti netlahtolpepechtiliztli",
"vector-action-delete": "Xicpolo",
"vector-action-move": "Xiczaca",
"vector-action-protect": "Xicpiya",
diff --git a/i18n/nan.json b/i18n/nan.json
index a4ed07b..706a51c 100644
--- a/i18n/nan.json
+++ b/i18n/nan.json
@@ -1,9 +1,10 @@
{
"@metadata": {
"authors": [
+ "A-lú-mih",
"Ianbu",
- "唐吉訶德的侍從",
- "Luuva"
+ "Luuva",
+ "唐吉訶德的侍從"
]
},
"vector-action-addsection": "Ke chi̍t-ê toān-lo̍h",
diff --git a/i18n/nap.json b/i18n/nap.json
index f93c333..ba7282d 100644
--- a/i18n/nap.json
+++ b/i18n/nap.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Chelin",
"C.R.",
+ "Chelin",
"Ruthven",
"Sannita"
]
diff --git a/i18n/nb.json b/i18n/nb.json
index c580953..e2ff942 100644
--- a/i18n/nb.json
+++ b/i18n/nb.json
@@ -3,8 +3,8 @@
"authors": [
"Danmichaelo",
"Event",
- "Nghtwlkr",
- "Jon Harald Søby"
+ "Jon Harald Søby",
+ "Nghtwlkr"
]
},
"skinname-vector": "Vector",
diff --git a/i18n/nds.json b/i18n/nds.json
index cc1d443..b6a4a86 100644
--- a/i18n/nds.json
+++ b/i18n/nds.json
@@ -1,9 +1,9 @@
{
"@metadata": {
"authors": [
+ "Servien",
"Slomox",
- "Zylbath",
- "Servien"
+ "Zylbath"
]
},
"vector-action-addsection": "Thema tofögen",
diff --git a/i18n/ne.json b/i18n/ne.json
index 916d212..88185aa 100644
--- a/i18n/ne.json
+++ b/i18n/ne.json
@@ -3,9 +3,9 @@
"authors": [
"Bhawani Gautam",
"RajeshPandey",
- "सरोज कुमार ढकाल",
"बिप्लब आनन्द",
- "राम प्रसाद जोशी"
+ "राम प्रसाद जोशी",
+ "सरोज कुमार ढकाल"
]
},
"skinname-vector": "भेक्टर",
diff --git a/i18n/nl.json b/i18n/nl.json
index b694046..791e04f 100644
--- a/i18n/nl.json
+++ b/i18n/nl.json
@@ -2,16 +2,17 @@
"@metadata": {
"authors": [
"Calak",
+ "Mainframe98",
"Romaine",
"SPQRobin",
"Siebrand",
- "Troefkaart",
"Sjoerddebruin",
- "Mainframe98"
+ "Troefkaart"
]
},
"skinname-vector": "Vector",
"vector-skin-desc": "Moderne versie van MonoBook met een fris uiterlijk en verbeteringen op het gebied van gebruiksvriendelijkheid",
+ "vector-opt-out": "Naar oude vormgeving omschakelen",
"vector.css": "/* CSS die hier wordt geplaatst heeft alleen invloed op het uiterlijk Vector */",
"vector.js": "/* JavaScript die hier wordt geplaatst heeft alleen invloed op gebruikers die het uiterlijk Vector gebruiken */",
"vector-action-addsection": "Kopje toevoegen",
diff --git a/i18n/nqo.json b/i18n/nqo.json
index a2a95a0..6295681 100644
--- a/i18n/nqo.json
+++ b/i18n/nqo.json
@@ -1,10 +1,10 @@
{
"@metadata": {
"authors": [
- "Youssoufkadialy",
- "Lanciné.kounfantoh.fofana",
+ "Babamamadidiane",
"Lancine.kounfantoh.fofana",
- "Babamamadidiane"
+ "Lanciné.kounfantoh.fofana",
+ "Youssoufkadialy"
]
},
"vector-action-addsection": "ߥߟߊ߬ߘߊ߫ ߝߙߊ߬",
diff --git a/i18n/om.json b/i18n/om.json
new file mode 100644
index 0000000..5c042df
--- /dev/null
+++ b/i18n/om.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Oromoo"
+ ]
+ },
+ "vector-action-addsection": "Mata-dure ida'i",
+ "vector-action-delete": "Balleessi",
+ "vector-action-undelete": "Hin balleessin",
+ "vector-view-create": "Uumi",
+ "vector-view-edit": "Gulaali",
+ "vector-view-history": "Seenaa laali",
+ "vector-view-view": "Dubbisi",
+ "vector-jumptosearch": "Gara barbaadutti ce'i",
+ "vector-more-actions": "Dabalata"
+}
diff --git a/i18n/pam.json b/i18n/pam.json
index 1e0a3b7..f831466 100644
--- a/i18n/pam.json
+++ b/i18n/pam.json
@@ -2,8 +2,8 @@
"@metadata": {
"authors": [
"Katimawan2005",
- "Val2397",
- "Leeheonjin"
+ "Leeheonjin",
+ "Val2397"
]
},
"vector-action-addsection": "Dagdagan ing pisasabian",
diff --git a/i18n/pl.json b/i18n/pl.json
index c1abc68..29c1492 100644
--- a/i18n/pl.json
+++ b/i18n/pl.json
@@ -1,15 +1,21 @@
{
"@metadata": {
"authors": [
+ "Chrumps",
"Matma Rex",
- "Sp5uhe",
- "Chrumps"
+ "Rail",
+ "Sp5uhe"
]
},
"skinname-vector": "Wektor",
"vector-skin-desc": "Odświeżona wersja skórki Książka, z nowym wyglądem i usprawnieniami",
+ "prefs-vector-enable-vector-1-label": "Użyj starego Wektora",
+ "prefs-vector-enable-vector-1-help": "W ciągu najbliższych kilku lat będziemy stopniowo aktualizować skórkę Wektor. Stary Wektor umożliwi ci używanie poprzedniej wersji skórki (na grudzień 2019). Aby dowiedzieć się więcej o aktualizacjach przejdź do naszej [[mw:Reading/Web/Desktop_Improvements|strony projektu]].",
+ "vector-opt-out": "Przełącz na stary widok",
+ "vector-opt-out-tooltip": "Zmień ustawienia, aby powrócić do starego wyglądu skórki (stary Wektor)",
"vector.css": "/* Umieszczony tutaj kod CSS wpłynie na wygląd skórki Wektor */",
"vector.js": "/* Umieszczony tutaj kod JavaScript zostanie załadowany wyłącznie przez użytkowników korzystających ze skórki Wektor */",
+ "vector-action-toggle-sidebar": "Przełącz panel boczny",
"vector-action-addsection": "Dodaj temat",
"vector-action-delete": "Usuń",
"vector-action-move": "Przenieś",
diff --git a/i18n/prs.json b/i18n/prs.json
index b8bf21f..c572191 100644
--- a/i18n/prs.json
+++ b/i18n/prs.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Mjbmr",
- "Ahmed-Najib-Biabani-Ibrahimkhel"
+ "Ahmed-Najib-Biabani-Ibrahimkhel",
+ "Mjbmr"
]
},
"vector-view-create": "ساختن",
diff --git a/i18n/pt-br.json b/i18n/pt-br.json
index 89b7c07..bc53f09 100644
--- a/i18n/pt-br.json
+++ b/i18n/pt-br.json
@@ -1,22 +1,27 @@
{
"@metadata": {
"authors": [
+ "!Silent",
"Cainamarques",
"Diego Queiroz",
- "Giro720",
- "Helder.wiki",
- 555,
- "He7d3r",
- "!Silent",
+ "Eduardo Addad de Oliveira",
"Felipe L. Ewald",
+ "Giro720",
+ "He7d3r",
+ "Helder.wiki",
"Opraco",
- "Eduardo Addad de Oliveira"
+ 555
]
},
"skinname-vector": "Vector",
"vector-skin-desc": "Versão moderna do MonoBook com um visual limpo e várias melhorias de usabilidade",
+ "prefs-vector-enable-vector-1-label": "Usar vetor legado",
+ "prefs-vector-enable-vector-1-help": "Nos próximos anos, atualizaremos gradualmente a capa Vector. O Vetor legado permitirá que você visualize a versão antiga do Vector (a partir de dezembro de 2019). Para saber mais sobre as atualizações, acesse nosso [[mw:Reading/Web/Desktop_Improvements|project page]].",
+ "vector-opt-out": "Mudar para aparência antiga",
+ "vector-opt-out-tooltip": "Altere suas configurações para voltar à aparência antiga da pele (vetor herdado)",
"vector.css": "/* CSS colocado aqui irá afetar usuários do tema Vector */",
"vector.js": "/* Qualquer JavaScript aqui colocado será carregado para usuários usando o tema Vector */",
+ "vector-action-toggle-sidebar": "Alternar barra lateral",
"vector-action-addsection": "Adicionar tópico",
"vector-action-delete": "Excluir",
"vector-action-move": "Mover",
diff --git a/i18n/pt.json b/i18n/pt.json
index 702c20b..c165bd1 100644
--- a/i18n/pt.json
+++ b/i18n/pt.json
@@ -1,21 +1,26 @@
{
"@metadata": {
"authors": [
+ "Athena in Wonderland",
"Crazymadlover",
"Giro720",
"Hamilton Abreu",
"Malafaya",
+ "MokaAkashiyaPT",
"Vitorvicentevalente",
"Waldir",
- "MokaAkashiyaPT",
- "Athena in Wonderland",
"Waldyrious"
]
},
"skinname-vector": "Vector",
"vector-skin-desc": "Versão moderna do MonoBook com um aspeto fresco e várias melhorias de usabilidade",
+ "prefs-vector-enable-vector-1-label": "Usar o Vector antigo",
+ "prefs-vector-enable-vector-1-help": "Durante os próximos anos iremos atualizar gradualmente o tema Vector. O Vetor antigo permitirá ver a versão antiga do tema Vector (a partir de dezembro de 2019). Para saber mais sobre as atualizações, consulte a [[mw:Reading/Web/Desktop_Improvements|página do projeto]].",
+ "vector-opt-out": "Mudar para aparência antiga",
+ "vector-opt-out-tooltip": "Alterar as suas configurações para voltar ao aspeto anterior do tema (Vector anterior)",
"vector.css": "/* Código CSS colocado aqui afectará os utilizadores do tema Vector */",
"vector.js": "/* Código Javascript colocado aqui será carregado para utilizadores do tema Vector */",
+ "vector-action-toggle-sidebar": "Alternar barra lateral",
"vector-action-addsection": "Adicionar tópico",
"vector-action-delete": "Eliminar",
"vector-action-move": "Mover",
diff --git a/i18n/qqq.json b/i18n/qqq.json
index 209eddd..b350642 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -3,20 +3,25 @@
"authors": [
"Darth Kule",
"EugeneZelenko",
- "Lloffiwr",
- "Shirayuki",
- "Umherirrender",
- "Matma Rex",
"Liuxinyu970226",
- "Raymond",
+ "Lloffiwr",
+ "Matma Rex",
"Metalhead64",
- "Tacsipacsi"
+ "Raymond",
+ "Shirayuki",
+ "Tacsipacsi",
+ "Umherirrender"
]
},
"skinname-vector": "{{name}}",
"vector-skin-desc": "{{desc|what=skin|name=Vector|url=https://www.mediawiki.org/wiki/Skin:Vector}}",
+ "prefs-vector-enable-vector-1-label": "Label for the checkbox to force Legacy Vector operation accessible via Special:Preferences. When this checkbox is enabled, the December 2019 of Vector is used. When this checkbox is disabled, the actively developed version of Vector is used instead.",
+ "prefs-vector-enable-vector-1-help": "Detail explaining the operation of the prefs-vector-enable-vector-1-label checkbox.",
+ "vector-opt-out": "Text of link that takes the user to the Special:Preferences page so they can opt-out of the latest version of Vector and go back to legacy Vector.",
+ "vector-opt-out-tooltip": "Used as the tooltip for the Vector opt-out link",
"vector.css": "{{optional}}",
"vector.js": "{{optional}}",
+ "vector-action-toggle-sidebar": "Accessibility label for the button that toggles the sidebar's visibility, as well as audible presentation for screen readers.",
"vector-action-addsection": "Used in the Vector skin. See for example {{canonicalurl:Talk:Main_Page|useskin=vector}}\n{{Identical|Add topic}}",
"vector-action-delete": "Used in the Vector skin, as the name of a tab at the top of the page. See for example {{canonicalurl:Translating:MediaWiki|useskin=vector}}\n\n{{Identical|Delete}}",
"vector-action-move": "Used in the Vector skin, on the tabs at the top of the page. See for example {{canonicalurl:Talk:Main_Page|useskin=vector}}\n\n{{Identical|Move}}",
diff --git a/i18n/rgn.json b/i18n/rgn.json
index 401915f..959fd80 100644
--- a/i18n/rgn.json
+++ b/i18n/rgn.json
@@ -1,5 +1,7 @@
{
- "@metadata": [],
+ "@metadata": {
+ "authors": []
+ },
"vector-action-addsection": "Zonta una cjacarèda",
"vector-action-delete": "Scanzèla",
"vector-action-move": "Chèmbia nòm",
diff --git a/i18n/rif.json b/i18n/rif.json
index b994ff9..baad84e 100644
--- a/i18n/rif.json
+++ b/i18n/rif.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "MoubarikBelkasim",
- "Amara-Amaziɣ"
+ "Amara-Amaziɣ",
+ "MoubarikBelkasim"
]
},
"vector-action-addsection": "ⵔⵏⵓ ⴰⵙⵏⵜⵍ",
diff --git a/i18n/ro.json b/i18n/ro.json
index 6c54a3d..9f34582 100644
--- a/i18n/ro.json
+++ b/i18n/ro.json
@@ -4,9 +4,9 @@
"AdiJapan",
"Danutz",
"Firilacroco",
+ "ImGelu",
"Minisarm",
- "Strainu",
- "ImGelu"
+ "Strainu"
]
},
"skinname-vector": "Vector",
diff --git a/i18n/roa-tara.json b/i18n/roa-tara.json
index 9760c65..50e8f74 100644
--- a/i18n/roa-tara.json
+++ b/i18n/roa-tara.json
@@ -6,8 +6,13 @@
},
"skinname-vector": "Vettore",
"vector-skin-desc": "Versione moderne de MonoBook cu 'nu sguarde aggiornate e 'nu sbuènne de miglioramende sus a l'ausabbilità",
+ "prefs-vector-enable-vector-1-label": "Ause 'u vettore andiche",
+ "prefs-vector-enable-vector-1-help": "Jndr'à le prossime anne, amma aggiornà a chiane chiane 'u skin Vector. Legacy Vector te face 'ndrucà 'a versione vecchie de Vector (partenne da decembre 2019). Pe sapè de cchiù sus a le aggiornaminde, vèje sus 'a [[mw:Reading/Web/Desktop_Improvements|pàgene d'u pruggette]] nostre.",
+ "vector-opt-out": "Passe a grafeche d'apprime",
+ "vector-opt-out-tooltip": "Cange le 'mbostaziune pe turnà rrete a 'u vecchie mode d'u skin (Vector andiche)",
"vector.css": "/* 'U CSS ca se iacchie aqquà 'u 'ndrucane le utinde d'a masckere Vettore */",
"vector.js": "/* Ogne JavaScript aqquà avène carecate pe le utinde ca ausane 'a masckere Vettore */",
+ "vector-action-toggle-sidebar": "Live e mitte 'a barre laterale",
"vector-action-addsection": "Aggiunge 'na discussiona",
"vector-action-delete": "Scangille",
"vector-action-move": "Spuèste",
diff --git a/i18n/ru.json b/i18n/ru.json
index 07fadfb..43fcff0 100644
--- a/i18n/ru.json
+++ b/i18n/ru.json
@@ -1,18 +1,23 @@
{
"@metadata": {
"authors": [
+ "Alexander Yukal",
"Ignatus",
"JenVan",
"Kaganer",
"Nemo bis",
"Okras",
- "Александр Сигачёв",
"Ole Yves",
- "Stjn"
+ "Stjn",
+ "Александр Сигачёв"
]
},
"skinname-vector": "Векторное",
"vector-skin-desc": "Современная версия MonoBook с обновлённым оформлением и многими улучшениями в юзабилити",
+ "prefs-vector-enable-vector-1-label": "Использовать Устаревшее векторное",
+ "prefs-vector-enable-vector-1-help": "В течение следующих нескольких лет мы будем постепенно обновлять тему Векторное. Устаревшее векторное позволит вам просмотреть старую версию Векторное (по состоянию на декабрь 2019 года). Чтобы узнать больше об обновлениях, перейдите на нашу [[mw:Reading/Web/Desktop_Improvements|страницу проекта]].",
+ "vector-opt-out": "Переключиться на старый вид",
+ "vector-opt-out-tooltip": "Измените настройки, чтобы вернуться к старому виду темы (Устаревшее векторное)",
"vector.css": "/* Размещённый здесь CSS будет применяться к векторной теме оформления */",
"vector.js": "/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления Vector */",
"vector-action-addsection": "Добавить тему",
diff --git a/i18n/rue.json b/i18n/rue.json
index 1b3b06f..286d31c 100644
--- a/i18n/rue.json
+++ b/i18n/rue.json
@@ -2,8 +2,8 @@
"@metadata": {
"authors": [
"Gazeb",
- "Tkalyn",
- "KHMELNYTSKYIA"
+ "KHMELNYTSKYIA",
+ "Tkalyn"
]
},
"vector-action-addsection": "Придати тему",
diff --git a/i18n/sat.json b/i18n/sat.json
index c32f059..7991369 100644
--- a/i18n/sat.json
+++ b/i18n/sat.json
@@ -2,11 +2,11 @@
"@metadata": {
"authors": [
"Albinus",
- "Samar88",
- "Srabony90",
+ "Amire80",
"Manik Soren",
"Ramjit Tudu",
- "Amire80"
+ "Samar88",
+ "Srabony90"
]
},
"vector-action-addsection": "ᱥᱟᱛᱚᱢ ᱥᱮᱞᱮᱫ",
diff --git a/i18n/sc.json b/i18n/sc.json
index 22fd72f..4d5e911 100644
--- a/i18n/sc.json
+++ b/i18n/sc.json
@@ -3,9 +3,9 @@
"authors": [
"Andria",
"Marzedu",
- "Via maxima",
+ "Taxandru",
"Uharteko",
- "Taxandru"
+ "Via maxima"
]
},
"vector-action-addsection": "Agiunghe cuntierra",
diff --git a/i18n/sco.json b/i18n/sco.json
index f8e52e8..38ceb87 100644
--- a/i18n/sco.json
+++ b/i18n/sco.json
@@ -1,11 +1,11 @@
{
"@metadata": {
"authors": [
+ "Aursani",
"Avicennasis",
"John Reid",
- "Omnipaedista",
- "Aursani",
- "Macofe"
+ "Macofe",
+ "Omnipaedista"
]
},
"vector-skin-desc": "Modern version o MonoBook wi ae fresh luik n monie uisabeelitie impruivments",
diff --git a/i18n/sd.json b/i18n/sd.json
index 7ba214d..0280d43 100644
--- a/i18n/sd.json
+++ b/i18n/sd.json
@@ -1,9 +1,9 @@
{
"@metadata": {
"authors": [
- "Sindhu",
"Aursani",
"Mehtab ahmed",
+ "Sindhu",
"Tweety"
]
},
diff --git a/i18n/sh.json b/i18n/sh.json
index 9454788..915df8c 100644
--- a/i18n/sh.json
+++ b/i18n/sh.json
@@ -1,10 +1,10 @@
{
"@metadata": {
"authors": [
- "OC Ripper",
+ "BadDog",
"Conquistador",
- "Srdjan m",
- "BadDog"
+ "OC Ripper",
+ "Srdjan m"
]
},
"vector-action-addsection": "Dodaj temu",
diff --git a/i18n/shi.json b/i18n/shi.json
index f4d30dc..d602a01 100644
--- a/i18n/shi.json
+++ b/i18n/shi.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Dalinanir",
- "Amara-Amaziɣ"
+ "Amara-Amaziɣ",
+ "Dalinanir"
]
},
"vector-action-addsection": "ⵔⵏⵓ ⴰⵙⵏⵜⵍ",
diff --git a/i18n/si.json b/i18n/si.json
index b4feebb..ad85a65 100644
--- a/i18n/si.json
+++ b/i18n/si.json
@@ -1,11 +1,11 @@
{
"@metadata": {
"authors": [
+ "Singhalawap",
"Thushara",
"දසනැබළයෝ",
"පසිඳු කාවින්ද",
- "සුරනිමල",
- "Singhalawap"
+ "සුරනිමල"
]
},
"vector-action-addsection": "මාතෘකාවක් එක්කරන්න",
diff --git a/i18n/sjd.json b/i18n/sjd.json
new file mode 100644
index 0000000..c792b53
--- /dev/null
+++ b/i18n/sjd.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Meerrahtar"
+ ]
+ },
+ "vector-action-addsection": "Лажьхэ тема",
+ "vector-action-move": "Вуайхэ нэ̄м",
+ "vector-action-protect": "Пынне",
+ "vector-view-create": "Лыһкэ",
+ "vector-view-edit": "Вуайхэ",
+ "vector-view-history": "История",
+ "vector-view-view": "Ло̄гкэ",
+ "vector-more-actions": "Вя̄л"
+}
diff --git a/i18n/sk.json b/i18n/sk.json
index 527713a..7cbb4b7 100644
--- a/i18n/sk.json
+++ b/i18n/sk.json
@@ -2,11 +2,11 @@
"@metadata": {
"authors": [
"Helix84",
- "Rudko",
- "Sudo77(new)",
"KuboF",
"Mikulas1",
- "Robert Važan"
+ "Robert Važan",
+ "Rudko",
+ "Sudo77(new)"
]
},
"skinname-vector": "Vector",
diff --git a/i18n/sl.json b/i18n/sl.json
index 4b2847f..a1dd84d 100644
--- a/i18n/sl.json
+++ b/i18n/sl.json
@@ -2,9 +2,9 @@
"@metadata": {
"authors": [
"Dbc334",
+ "Janezdrilc",
"Smihael",
- "Yerpo",
- "Janezdrilc"
+ "Yerpo"
]
},
"vector-skin-desc": "Sodobna različica MonoBook s svežim videzom in mnogimi izboljšavami uporabnosti",
diff --git a/i18n/smn.json b/i18n/smn.json
new file mode 100644
index 0000000..a97c364
--- /dev/null
+++ b/i18n/smn.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Trondtr"
+ ]
+ },
+ "vector-action-addsection": "Lasseet fáádá",
+ "vector-action-delete": "Siho",
+ "vector-action-move": "Sirde",
+ "vector-action-protect": "Suoijii",
+ "vector-view-create": "Räähti",
+ "vector-view-edit": "Mute",
+ "vector-view-history": "Čääiti historiá",
+ "vector-view-view": "Luuvâ",
+ "vector-more-actions": "Eenâb"
+}
diff --git a/i18n/sms.json b/i18n/sms.json
new file mode 100644
index 0000000..4c52692
--- /dev/null
+++ b/i18n/sms.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Yupik"
+ ]
+ },
+ "vector-view-view": "Looǥǥ"
+}
diff --git a/i18n/so.json b/i18n/so.json
index 1362fd8..32634f5 100644
--- a/i18n/so.json
+++ b/i18n/so.json
@@ -1,6 +1,7 @@
{
"@metadata": {
"authors": [
+ "Abdullahi",
"Maax"
]
},
@@ -10,9 +11,10 @@
"vector-action-protect": "Difaac",
"vector-action-undelete": "Ha tirtirin",
"vector-action-unprotect": "Bedel difaacida",
- "vector-view-create": "Sameey",
- "vector-view-edit": "Wax ka bedel",
- "vector-view-history": "Itusi taariikhda",
+ "vector-view-create": "Abuur",
+ "vector-view-edit": "Wax ka badal",
+ "vector-view-history": "Fiiri taariikhda",
"vector-view-view": "Akhri",
- "vector-view-viewsource": "Itusi xogta"
+ "vector-view-viewsource": "Itusi xogta",
+ "vector-more-actions": "Dheeraad"
}
diff --git a/i18n/sr-ec.json b/i18n/sr-ec.json
index 7580719..6366607 100644
--- a/i18n/sr-ec.json
+++ b/i18n/sr-ec.json
@@ -1,17 +1,20 @@
{
"@metadata": {
"authors": [
+ "Acamicamacaraca",
+ "BadDog",
"Milicevic01",
+ "Obsuser",
"Rancher",
"Жељко Тодоровић",
- "Михајло Анђелковић",
- "Obsuser",
- "Acamicamacaraca",
- "BadDog"
+ "Михајло Анђелковић"
]
},
"skinname-vector": "Векторско",
"vector-skin-desc": "Модерна верзија Монобука са свежим изгледом и много корисних побољшања",
+ "prefs-vector-enable-vector-1-label": "Користи стару векторску тему",
+ "prefs-vector-enable-vector-1-help": "Током неколико наредних година, постепено ћемо ажурирати векторску тему. Стара векторска тема омогућиће вам да користите ту стару верзију (од децембра 2019). Како бисте сазнали више о ажурирањима, идите на [[mw:Reading/Web/Desktop_Improvements|страницу пројекта]].",
+ "vector-opt-out-tooltip": "Промените подешавања да бисте се вратили старом изгледу теме (застарела векторска)",
"vector.css": "/* CSS постављен овде ће утицати на све кориснике векторске теме */",
"vector.js": "/* JavaScript постављен овде ће се учитати за све оне који користе векторску тему */",
"vector-action-addsection": "Додај тему",
diff --git a/i18n/sr-el.json b/i18n/sr-el.json
index e3b5e2a..1031771 100644
--- a/i18n/sr-el.json
+++ b/i18n/sr-el.json
@@ -3,10 +3,10 @@
"authors": [
"Michaello",
"Milicevic01",
+ "Obsuser",
"Rancher",
- "Жељко Тодоровић",
"Zoranzoki21",
- "Obsuser"
+ "Жељко Тодоровић"
]
},
"skinname-vector": "Vektorsko",
diff --git a/i18n/sv.json b/i18n/sv.json
index ebece26..c7082e4 100644
--- a/i18n/sv.json
+++ b/i18n/sv.json
@@ -1,18 +1,23 @@
{
"@metadata": {
"authors": [
+ "Lokal Profil",
"Martinwiss",
"Najami",
"Skalman",
- "WikiPhoenix",
- "Lokal Profil",
- "Sturban"
+ "Sturban",
+ "WikiPhoenix"
]
},
"skinname-vector": "Vector",
"vector-skin-desc": "Modern version av MonoBook med ett nytt utseende och flera användarvänlighetsförbättringar",
+ "prefs-vector-enable-vector-1-label": "Använd gamla Vector",
+ "prefs-vector-enable-vector-1-help": "Under de nästkommande åren kommer vi gradvis uppdatera utseendet Vector. Gamla Vector kommer låta dig se den gamla version av Vector (fr.o.m. december 2019). För att läsa mer om uppdateringarna, gå till vår [[mw:Reading/Web/Desktop_Improvements|projektsida]].",
+ "vector-opt-out": "Byt till gamla utseendet",
+ "vector-opt-out-tooltip": "Ändra dina inställningar för att återgå till utseendets gamla design (gamla Vector)",
"vector.css": "/* CSS som skrivs här kommer att påverka alla användare av utseendet Vector */",
"vector.js": "/* JavaScript här kommer att laddas för dem som använder utseendet Vector */",
+ "vector-action-toggle-sidebar": "Visa/dölj sidofält",
"vector-action-addsection": "Nytt ämne",
"vector-action-delete": "Radera",
"vector-action-move": "Flytta",
diff --git a/i18n/sw.json b/i18n/sw.json
index febe89b..bdfd69e 100644
--- a/i18n/sw.json
+++ b/i18n/sw.json
@@ -2,8 +2,8 @@
"@metadata": {
"authors": [
"Lloffiwr",
- "Muddyb Blast Producer",
"Muddyb",
+ "Muddyb Blast Producer",
"Yasen igra"
]
},
diff --git a/i18n/syl.json b/i18n/syl.json
new file mode 100644
index 0000000..3658641
--- /dev/null
+++ b/i18n/syl.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "এম আবু সাঈদ"
+ ]
+ },
+ "vector-view-edit": "ꠟꠦꠈ",
+ "vector-view-history": "ꠁꠔꠤꠀꠡ ꠖꠦꠈ",
+ "vector-view-view": "ꠙꠠ",
+ "vector-more-actions": "ꠀꠞꠧ"
+}
diff --git a/i18n/szl.json b/i18n/szl.json
index 74815b7..16cade9 100644
--- a/i18n/szl.json
+++ b/i18n/szl.json
@@ -3,9 +3,9 @@
"authors": [
"Britscher",
"Gaj777",
- "Przemub",
"Krol111",
"Przem(1)s",
+ "Przemub",
"Uostofchuodnego"
]
},
diff --git a/i18n/ais.json b/i18n/szy.json
similarity index 100%
rename from i18n/ais.json
rename to i18n/szy.json
diff --git a/i18n/ta.json b/i18n/ta.json
index 6c96b0a..9b76306 100644
--- a/i18n/ta.json
+++ b/i18n/ta.json
@@ -1,14 +1,14 @@
{
"@metadata": {
"authors": [
+ "ElangoRamanujam",
+ "Jayarathina",
+ "Kaartic",
+ "Kanags",
"Mayooranathan",
"Shanmugamp7",
"Surya Prakash.S.A.",
- "TRYPPN",
- "Jayarathina",
- "Kaartic",
- "ElangoRamanujam",
- "Kanags"
+ "TRYPPN"
]
},
"vector-action-addsection": "தலைப்பைச் சேர்",
diff --git a/i18n/tcy.json b/i18n/tcy.json
index 091182b..c77eaa1 100644
--- a/i18n/tcy.json
+++ b/i18n/tcy.json
@@ -1,11 +1,11 @@
{
"@metadata": {
"authors": [
+ "BHARATHESHA ALASANDEMAJALU",
+ "Kiranpoojary",
"NamwikiTL",
"VASANTH S.N.",
- "Vishwanatha Badikana",
- "Kiranpoojary",
- "BHARATHESHA ALASANDEMAJALU"
+ "Vishwanatha Badikana"
]
},
"vector-action-addsection": "ವಿಸಯೊ ಸೇರಾಲೆ",
diff --git a/i18n/th.json b/i18n/th.json
index bbf1ed3..4a325c0 100644
--- a/i18n/th.json
+++ b/i18n/th.json
@@ -1,11 +1,11 @@
{
"@metadata": {
"authors": [
+ "Ans",
+ "Geonuch",
"Horus",
"Octahedron80",
- "Woraponboonkerd",
- "Ans",
- "Geonuch"
+ "Woraponboonkerd"
]
},
"skinname-vector": "เวกเตอร์",
diff --git a/i18n/ti.json b/i18n/ti.json
new file mode 100644
index 0000000..d5d9207
--- /dev/null
+++ b/i18n/ti.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joanmp17"
+ ]
+ },
+ "vector-action-delete": "ሰርዝ",
+ "vector-action-move": "ኣንቀሳቕስ",
+ "vector-action-protect": "ተኸላኸለ",
+ "vector-view-create": "ፈጠረ",
+ "vector-view-edit": "ኣተዓራረየ",
+ "vector-view-history": "ታሪኽ ርኣይ",
+ "vector-view-view": "ኣንብብ",
+ "vector-more-actions": "ተወሳኺ"
+}
diff --git a/i18n/tly.json b/i18n/tly.json
index 235af02..9be486f 100644
--- a/i18n/tly.json
+++ b/i18n/tly.json
@@ -1,21 +1,21 @@
{
"@metadata": {
"authors": [
- "Гусейн",
"Ganbarzada",
- "Patriot Kur"
+ "Patriot Kur",
+ "Гусейн"
]
},
"vector-action-addsection": "Мывзу зијод кардеј",
- "vector-action-delete": "Рәдд кардеј",
+ "vector-action-delete": "Bısü",
"vector-action-move": "Номи дәгиш кардеј",
"vector-action-protect": "Mıdofiə karde",
"vector-action-undelete": "Бәрпо кардеј",
"vector-action-unprotect": "Мыдофијә дәгиш кардеј",
"vector-view-create": "Офәјеј",
- "vector-view-edit": "Сәрост кардеј",
+ "vector-view-edit": "Dəqiş karde",
"vector-view-history": "Тarix",
- "vector-view-view": "Һандемон",
+ "vector-view-view": "Bahand",
"vector-view-viewsource": "Дијә кардеј",
- "vector-more-actions": "həniyən"
+ "vector-more-actions": "Həniyən"
}
diff --git a/i18n/tr.json b/i18n/tr.json
index 84e2d82..4a43ad7 100644
--- a/i18n/tr.json
+++ b/i18n/tr.json
@@ -2,20 +2,26 @@
"@metadata": {
"authors": [
"Arystanbek",
+ "BaRaN6161 TURK",
"Emperyan",
"Joseph",
- "Stultiwikia",
- "Vito Genovese",
+ "Kumkumuk",
"Rapsar",
- "Kumkumuk"
+ "Stultiwikia",
+ "Vito Genovese"
]
},
- "vector-skin-desc": "MonoBook Modern versiyonu ile taze bir görünüm ve iyi bir kullanım kolaylığı",
+ "vector-skin-desc": "MonoBook modern sürümünü ile taze bir görünüm ve iyi bir kullanım kolaylığı",
+ "prefs-vector-enable-vector-1-label": "Eski Vektörü Kullan",
+ "prefs-vector-enable-vector-1-help": "Önümüzdeki birkaç yıl içinde Vektör görünümünü kademeli olarak güncelleyeceğiz. Eski Vektörün eski sürümünü görüntülemenize izin verir (Aralık 2019 itibariyle). Güncellemeler hakkında daha fazla bilgi için [[mw:Reading/Web/Desktop_Improvements|proje sayfamıza]] gidin.",
+ "vector-opt-out": "Eski görünüme geç",
+ "vector-opt-out-tooltip": "Cildin eski görünümüne geri dönmek için ayarlarınızı değiştirin (eski Vektör)",
+ "vector-action-toggle-sidebar": "Kenar çubuğunu aç/kapat",
"vector-action-addsection": "Konu ekle",
"vector-action-delete": "Sil",
"vector-action-move": "Taşı",
"vector-action-protect": "Koru",
- "vector-action-undelete": "Silinmeyi geri al",
+ "vector-action-undelete": "Geri al",
"vector-action-unprotect": "Korumayı değiştir",
"vector-view-create": "Oluştur",
"vector-view-edit": "Düzenle",
diff --git a/i18n/tt-cyrl.json b/i18n/tt-cyrl.json
index f45db39..044badb 100644
--- a/i18n/tt-cyrl.json
+++ b/i18n/tt-cyrl.json
@@ -1,11 +1,11 @@
{
"@metadata": {
"authors": [
+ "Derslek",
"Don Alessandro",
"Rinatus",
"Ильнар",
- "Рашат Якупов",
- "Derslek"
+ "Рашат Якупов"
]
},
"skinname-vector": "Сызымлы",
diff --git a/i18n/tzm.json b/i18n/tzm.json
index 7f2e333..3ac4bc5 100644
--- a/i18n/tzm.json
+++ b/i18n/tzm.json
@@ -2,6 +2,7 @@
"@metadata": {
"authors": [
"Moha",
+ "Mohamed Belarhzali",
"Tifinaghes",
"ⵕⴰⵊⵉ"
]
@@ -17,5 +18,5 @@
"vector-view-history": "ⵥⵕ ⴰⵎⵣⵔⵓⵢ",
"vector-view-view": "ⵖⵔ",
"vector-view-viewsource": "ⵥⵕ ⴰⵖⴱⴰⵍⵓ",
- "vector-more-actions": "ⵓⴳⴳⴰⵔ"
+ "vector-more-actions": "Uggar"
}
diff --git a/i18n/uk.json b/i18n/uk.json
index b3521b3..f12b1c1 100644
--- a/i18n/uk.json
+++ b/i18n/uk.json
@@ -6,15 +6,20 @@
"Base",
"Calak",
"Dim Grits",
+ "Movses",
"NickK",
+ "Piramidion",
"Prima klasy4na",
- "Тест",
"Ата",
- "Piramidion"
+ "Тест"
]
},
"skinname-vector": "Векторне",
"vector-skin-desc": "Сучасна версія MonoBook зі свіжим виглядом і багатьма зручними покращеннями",
+ "prefs-vector-enable-vector-1-label": "Використовувати стару версію",
+ "prefs-vector-enable-vector-1-help": "Протягом наступних декількох років ми поступово оновлюватимемо тему оформлення «Векторне». Стара версія цього оформлення дозволить вам бачити його таким, яким воно було станом на грудень 2019 року. Щоб дізнатись більше про ці оновлення, відвідайте нашу [[mw:Reading/Web/Desktop_Improvements|сторінку проекту]].",
+ "vector-opt-out": "Перемкнутися на старий вигляд",
+ "vector-opt-out-tooltip": "Змінити ваші налаштування щоб повернутись до оформлення Вектор",
"vector.css": "/* Розміщений тут CSS-код буде використаний в темі оформлення Векторне */",
"vector.js": "/* Розміщений тут код JavaScript буде завантажений для всіх користувачів, що використовують векторну тему оформлення */",
"vector-action-addsection": "Додати тему",
diff --git a/i18n/ur.json b/i18n/ur.json
index 4c83303..c5c5f18 100644
--- a/i18n/ur.json
+++ b/i18n/ur.json
@@ -3,13 +3,13 @@
"authors": [
"Calak",
"Istabani",
+ "Muhammad Shuaib",
"Noor2020",
+ "Obaid Raza",
"Tahir mq",
- "محبوب عالم",
"عثمان خان شاہ",
"عرفان ارشد",
- "Obaid Raza",
- "Muhammad Shuaib"
+ "محبوب عالم"
]
},
"skinname-vector": "ویکٹر",
diff --git a/i18n/uz.json b/i18n/uz.json
index 05d3d63..4a65759 100644
--- a/i18n/uz.json
+++ b/i18n/uz.json
@@ -5,8 +5,8 @@
"Arystanbek",
"Casual",
"CoderSI",
- "Sociologist",
- "Nataev"
+ "Nataev",
+ "Sociologist"
]
},
"skinname-vector": "Vektor",
diff --git a/i18n/vec.json b/i18n/vec.json
index f2db77d..19164d6 100644
--- a/i18n/vec.json
+++ b/i18n/vec.json
@@ -3,21 +3,22 @@
"authors": [
"Alunardon90",
"Candalua",
+ "Fierodelveneto",
"Frigotoni",
"GatoSelvadego",
"Vajotwo"
]
},
"vector-action-addsection": "Xonta discusion",
- "vector-action-delete": "Scanseƚa",
+ "vector-action-delete": "Descançeła",
"vector-action-move": "Sposta",
- "vector-action-protect": "Protegi",
- "vector-action-undelete": "Recupera",
+ "vector-action-protect": "Protexi",
+ "vector-action-undelete": "Recùpara",
"vector-action-unprotect": "Canbia ƚa protesion",
"vector-view-create": "Crea",
"vector-view-edit": "Canbia",
- "vector-view-history": "Varda ƚa stòria",
+ "vector-view-history": "Varda l'istorego",
"vector-view-view": "Lexi",
"vector-view-viewsource": "Varda el testo",
- "vector-more-actions": "Piassè"
+ "vector-more-actions": "Piasè"
}
diff --git a/i18n/vep.json b/i18n/vep.json
index 87c686a..dc32614 100644
--- a/i18n/vep.json
+++ b/i18n/vep.json
@@ -1,8 +1,8 @@
{
"@metadata": {
"authors": [
- "Игорь Бродский",
- "Sebranik"
+ "Sebranik",
+ "Игорь Бродский"
]
},
"vector-action-addsection": "Ližada tem",
diff --git a/i18n/vi.json b/i18n/vi.json
index b652e26..ee3aedb 100644
--- a/i18n/vi.json
+++ b/i18n/vi.json
@@ -2,15 +2,20 @@
"@metadata": {
"authors": [
"Minh Nguyen",
+ "Trần Nguyễn Minh Huy",
"Vinhtantran",
- "Withoutaname",
- "Trần Nguyễn Minh Huy"
+ "Withoutaname"
]
},
"skinname-vector": "Vectơ",
"vector-skin-desc": "Giao diện làm lại từ MonoBook có màu tươi và khả dụng hơn",
- "vector.css": "/* Mã CSS đặt ở đây sẽ ảnh hưởng đến thành viên sử dụng giao diện Vectơ */",
- "vector.js": "/* Mã JavaScript tại đây sẽ được tải khi người dùng sử dụng giao diện Vectơ */",
+ "prefs-vector-enable-vector-1-label": "Chế độ Vectơ cũ",
+ "prefs-vector-enable-vector-1-help": "Trong thời gian vài năm nữa, giao diện Vectơ sẽ được cập nhật từ từ. Chế độ Vectơ cũ cho phép bạn xem phiên bản giao diện Vectơ cũ (tính đến tháng 12 năm 2019). Tìm hiểu thêm về các thay đổi này tại [[mw:Reading/Web/Desktop_Improvements|trang dự án]].",
+ "vector-opt-out": "Chuyển sang giao diện cũ",
+ "vector-opt-out-tooltip": "Thay đổi tùy chọn để quay lại kiểu giao diện cũ (Vectơ cũ)",
+ "vector.css": "/* Tất cả mã CSS tại đây sẽ được tải khi người dùng sử dụng giao diện Vectơ */",
+ "vector.js": "/* Tất cả mã JavaScript tại đây sẽ được tải khi người dùng sử dụng giao diện Vectơ */",
+ "vector-action-toggle-sidebar": "Bật/tắt thanh bên",
"vector-action-addsection": "Thêm đề tài",
"vector-action-delete": "Xóa",
"vector-action-move": "Di chuyển",
diff --git a/i18n/wa.json b/i18n/wa.json
index a2ffa0f..8e9a443 100644
--- a/i18n/wa.json
+++ b/i18n/wa.json
@@ -1,6 +1,7 @@
{
"@metadata": {
"authors": [
+ "Reptilien.19831209BE1",
"Srtxg"
]
},
@@ -12,7 +13,7 @@
"vector-action-unprotect": "Candjî l' protedjaedje",
"vector-view-create": "Ahiver",
"vector-view-edit": "Candjî",
- "vector-view-history": "Vey l' istwere",
+ "vector-view-history": "Vey l’ istwere",
"vector-view-view": "Lére",
"vector-view-viewsource": "Vey côde sourdant",
"vector-more-actions": "Di pus"
diff --git a/i18n/wuu.json b/i18n/wuu.json
index e0d2e73..ed2d04d 100644
--- a/i18n/wuu.json
+++ b/i18n/wuu.json
@@ -8,11 +8,11 @@
},
"vector.css": "/* 放勒伊𡍲个CSS会影响用Vector皮肤个用户 */",
"vector-action-addsection": "加話題",
- "vector-action-delete": "刪",
+ "vector-action-delete": "删除",
"vector-action-move": "移动",
- "vector-action-protect": "保",
- "vector-action-undelete": "弗刪",
- "vector-action-unprotect": "换保护状态",
+ "vector-action-protect": "保护",
+ "vector-action-undelete": "取消删除",
+ "vector-action-unprotect": "更改保护",
"vector-view-create": "创建",
"vector-view-edit": "编辑",
"vector-view-history": "望历史",
diff --git a/i18n/xmf.json b/i18n/xmf.json
index 505dd76..21c5b61 100644
--- a/i18n/xmf.json
+++ b/i18n/xmf.json
@@ -4,9 +4,11 @@
"Kilavagora",
"Lika2672",
"Machirkholi",
+ "Narazeni",
"Silovan"
]
},
+ "vector-opt-out": "ჯვეში მეჯინაშა გინულა",
"vector-action-addsection": "თემაშ მიშაძინა",
"vector-action-delete": "ლასუა",
"vector-action-move": "გინოღალა",
diff --git a/i18n/yi.json b/i18n/yi.json
index 66a7960..04ae65f 100644
--- a/i18n/yi.json
+++ b/i18n/yi.json
@@ -1,9 +1,9 @@
{
"@metadata": {
"authors": [
+ "Har-wradim",
"Joystick",
- "פוילישער",
- "Har-wradim"
+ "פוילישער"
]
},
"skinname-vector": "וועקטאר",
diff --git a/i18n/yue.json b/i18n/yue.json
index 25744e6..80b79f6 100644
--- a/i18n/yue.json
+++ b/i18n/yue.json
@@ -2,9 +2,9 @@
"@metadata": {
"authors": [
"Ktchankt",
+ "Roy17",
"Waihorace",
- "Yueman",
- "Roy17"
+ "Yueman"
]
},
"skinname-vector": "Vector",
diff --git a/i18n/zgh.json b/i18n/zgh.json
index fd43302..e97f9c2 100644
--- a/i18n/zgh.json
+++ b/i18n/zgh.json
@@ -2,9 +2,9 @@
"@metadata": {
"authors": [
"Amara-Amaziɣ",
- "ⵕⴰⵊⵉ",
+ "Aslmad mohamed belarhzali",
"YesIn",
- "Aslmad mohamed belarhzali"
+ "ⵕⴰⵊⵉ"
]
},
"vector-action-addsection": "ⵔⵏⵓ ⴰⵙⵏⵜⵍ",
diff --git a/i18n/zh-hans.json b/i18n/zh-hans.json
index f2b9fd4..e9bce43 100644
--- a/i18n/zh-hans.json
+++ b/i18n/zh-hans.json
@@ -1,15 +1,18 @@
{
"@metadata": {
"authors": [
+ "500000000006城",
+ "Cwek",
"Hydra",
"Liangent",
"Liuxinyu970226",
- "Xiaomingyan",
- "Cwek"
+ "Xiaomingyan"
]
},
"skinname-vector": "Vector",
"vector-skin-desc": "提供清新的外观和许多可用性改进的现代版MonoBook",
+ "prefs-vector-enable-vector-1-label": "使用旧的矢量",
+ "prefs-vector-enable-vector-1-help": "在接下来的几年中,我们将逐步更新Vector外观。 旧版Vector将允许您查看Vector的旧版本(截至2019年12月)。 要了解有关更新的更多信息,请转到我们的[[mw:Reading/Web/Desktop_Improvements|project page]]",
"vector.css": "/* 这里放置的CSS将影响使用Vector皮肤的用户 */",
"vector.js": "/* 这里的任何JavaScript将为使用Vector皮肤的用户加载 */",
"vector-action-addsection": "添加话题",
diff --git a/i18n/zh-hant.json b/i18n/zh-hant.json
index dc1a280..5ec3158 100644
--- a/i18n/zh-hant.json
+++ b/i18n/zh-hant.json
@@ -3,16 +3,21 @@
"authors": [
"Cwlin0416",
"Justincheng12345",
- "Liuxinyu970226",
- "Mark85296341",
+ "Kly",
"LNDDYL",
- "Kly"
+ "Liuxinyu970226",
+ "Mark85296341"
]
},
"skinname-vector": "Vector",
"vector-skin-desc": "現代版的 MonoBook,有著較新穎的外觀與許多使用性的改進",
+ "prefs-vector-enable-vector-1-label": "使用先前的 Vector",
+ "prefs-vector-enable-vector-1-help": "在接下來的幾年,我們會逐步更新 Vector 外觀。先前的 Vector 能讓您觀看舊版本 Vector(截至 2019 年 12 月)。要了解更多更新方面內容,請前往我們的[[mw:Reading/Web/Desktop_Improvements|專案頁面]]。",
+ "vector-opt-out": "切換成舊外觀",
+ "vector-opt-out-tooltip": "更改您的設定來回到舊模樣主題(舊版 Vector)",
"vector.css": "/* 此 CSS 會影響使用 Vector 介面外觀的使用者 */",
"vector.js": "/* 此 JavaScript 會用於使用 Vector 介面外觀的使用者 */",
+ "vector-action-toggle-sidebar": "切換側邊欄",
"vector-action-addsection": "新增話題",
"vector-action-delete": "刪除",
"vector-action-move": "移動",
diff --git a/i18n/zh-hk.json b/i18n/zh-hk.json
index 54a69dc..c5c4515 100644
--- a/i18n/zh-hk.json
+++ b/i18n/zh-hk.json
@@ -1,8 +1,10 @@
{
"@metadata": {
"authors": [
+ "C933103",
"Wxyveronica"
]
},
+ "vector-view-view": "閱讀",
"vector-more-actions": "更多"
}
diff --git a/i18n/zu.json b/i18n/zu.json
index dd42783..8b4382d 100644
--- a/i18n/zu.json
+++ b/i18n/zu.json
@@ -1,11 +1,14 @@
{
"@metadata": {
"authors": [
+ "Fwolff",
"Irus",
- "Fwolff"
+ "Nkankane"
]
},
+ "vector-view-create": "Qamba",
"vector-view-edit": "Ukuhlela",
"vector-view-history": "Bona umlando",
- "vector-view-view": "Funda"
+ "vector-view-view": "Funda",
+ "vector-more-actions": "Okunye"
}
diff --git a/images/unwatch-icon-hl.png b/images/unwatch-icon-hl.png
deleted file mode 100644
index b7397c7..0000000
Binary files a/images/unwatch-icon-hl.png and /dev/null differ
diff --git a/images/unwatch-icon-hl.svg b/images/unwatch-icon-hl.svg
deleted file mode 100644
index c44d1e9..0000000
--- a/images/unwatch-icon-hl.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
diff --git a/images/unwatch-icon.png b/images/unwatch-icon.png
deleted file mode 100644
index b4d3d9a..0000000
Binary files a/images/unwatch-icon.png and /dev/null differ
diff --git a/images/unwatch-icon.svg b/images/unwatch-icon.svg
deleted file mode 100644
index c7ae884..0000000
--- a/images/unwatch-icon.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
diff --git a/images/watch-icon-hl.png b/images/watch-icon-hl.png
deleted file mode 100644
index 21de7cb..0000000
Binary files a/images/watch-icon-hl.png and /dev/null differ
diff --git a/images/watch-icon-hl.svg b/images/watch-icon-hl.svg
deleted file mode 100644
index 2293892..0000000
--- a/images/watch-icon-hl.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/images/watch-icon-loading.svg b/images/watch-icon-loading.svg
deleted file mode 100644
index 5b39a74..0000000
--- a/images/watch-icon-loading.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/images/watch-icon.png b/images/watch-icon.png
deleted file mode 100644
index c0396fb..0000000
Binary files a/images/watch-icon.png and /dev/null differ
diff --git a/images/watch-icon.svg b/images/watch-icon.svg
deleted file mode 100644
index b83596c..0000000
--- a/images/watch-icon.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/includes/Constants.php b/includes/Constants.php
new file mode 100644
index 0000000..0441d81
--- /dev/null
+++ b/includes/Constants.php
@@ -0,0 +1,121 @@
+
+ */
+ private $features = [];
+
+ /**
+ * A map of requirement name to the Requirement instance that represents it.
+ *
+ * The names of requirements are assumed to be static for the lifetime of the request. Therefore
+ * we can use them to look up Requirement instances quickly.
+ *
+ * @var Array
+ */
+ private $requirements = [];
+
+ /**
+ * Register a feature and its requirements.
+ *
+ * Essentially, a "feature" is a friendly (hopefully) name for some component, however big or
+ * small, that has some requirements. A feature manager allows us to decouple the component's
+ * logic from its requirements, allowing them to vary independently. Moreover, the use of
+ * friendly names wherever possible allows us to define a common language with our non-technical
+ * colleagues.
+ *
+ * ```php
+ * $featureManager->registerFeature( 'featureA', 'requirementA' );
+ * ```
+ *
+ * defines the "featureA" feature, which is enabled when the "requirementA" requirement is met.
+ *
+ * ```php
+ * $featureManager->registerFeature( 'featureB', [ 'requirementA', 'requirementB' ] );
+ * ```
+ *
+ * defines the "featureB" feature, which is enabled when the "requirementA" and "requirementB"
+ * requirements are met. Note well that the feature is only enabled when _all_ requirements are
+ * met, i.e. the requirements are evaluated in order and logically `AND`ed together.
+ *
+ * @param string $feature The name of the feature
+ * @param string|array $requirements The feature's requirements. As above, you can define a
+ * feature that requires a single requirement via the shorthand
+ *
+ * ```php
+ * $featureManager->registerFeature( 'feature', 'requirementA' );
+ * // Equivalent to $featureManager->registerFeature( 'feature', [ 'requirementA' ] );
+ * ```
+ *
+ * @throws \LogicException If the feature is already registered
+ * @throws \Wikimedia\Assert\ParameterAssertionException If the feature's requirements aren't
+ * the name of a single requirement or a list of requirements
+ * @throws \InvalidArgumentException If the feature references a requirement that isn't
+ * registered
+ */
+ public function registerFeature( string $feature, $requirements ) {
+ //
+ // Validation
+ if ( array_key_exists( $feature, $this->features ) ) {
+ throw new \LogicException( sprintf(
+ 'Feature "%s" is already registered.',
+ $feature
+ ) );
+ }
+
+ Assert::parameterType( 'string|array', $requirements, 'requirements' );
+
+ $requirements = (array)$requirements;
+
+ Assert::parameterElementType( 'string', $requirements, 'requirements' );
+
+ foreach ( $requirements as $name ) {
+ if ( !array_key_exists( $name, $this->requirements ) ) {
+ throw new \InvalidArgumentException( sprintf(
+ 'Feature "%s" references requirement "%s", which hasn\'t been registered',
+ $feature,
+ $name
+ ) );
+ }
+ }
+
+ // Mutation
+ $this->features[$feature] = $requirements;
+ }
+
+ /**
+ * Gets whether the feature's requirements are met.
+ *
+ * @param string $feature
+ * @return bool
+ *
+ * @throws \InvalidArgumentException If the feature isn't registered
+ */
+ public function isFeatureEnabled( string $feature ) : bool {
+ if ( !array_key_exists( $feature, $this->features ) ) {
+ throw new \InvalidArgumentException( "The feature \"{$feature}\" isn't registered." );
+ }
+
+ $requirements = $this->features[$feature];
+
+ foreach ( $requirements as $name ) {
+ if ( !$this->requirements[$name]->isMet() ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Register a complex requirement.
+ *
+ * A complex requirement is one that depends on object that may or may not be fully loaded
+ * while the application is booting, e.g. see `User::isSafeToLoad`.
+ *
+ * Such requirements are expected to be registered during a hook that is run early on in the
+ * application lifecycle, e.g. the `BeforePerformAction` and `APIBeforeMain` hooks.
+ *
+ * @see FeatureManager::registerRequirement
+ *
+ * @param Requirement $requirement
+ *
+ * @throws \LogicException If the requirement has already been registered
+ */
+ public function registerRequirement( Requirement $requirement ) {
+ $name = $requirement->getName();
+
+ if ( array_key_exists( $name, $this->requirements ) ) {
+ throw new \LogicException( "The requirement \"{$name}\" is already registered." );
+ }
+
+ $this->requirements[$name] = $requirement;
+ }
+
+ /**
+ * Register a requirement.
+ *
+ * A requirement is some condition of the application state that a feature requires to be true
+ * or false.
+ *
+ * @see FeatureManager::registerComplexRequirement
+ *
+ * @param string $name The name of the requirement
+ * @param bool $isMet Whether the requirement is met
+ *
+ * @throws \LogicException If the requirement has already been registered
+ */
+ public function registerSimpleRequirement( string $name, bool $isMet ) {
+ $this->registerRequirement( new SimpleRequirement( $name, $isMet ) );
+ }
+
+ /**
+ * Gets whether the requirement is met.
+ *
+ * @param string $name The name of the requirement
+ * @return bool
+ *
+ * @throws \InvalidArgumentException If the requirement isn't registered
+ */
+ public function isRequirementMet( string $name ) : bool {
+ if ( !array_key_exists( $name, $this->requirements ) ) {
+ throw new \InvalidArgumentException( "Requirement \"{$name}\" isn't registered." );
+ }
+
+ return $this->requirements[$name]->isMet();
+ }
+}
diff --git a/includes/FeatureManagement/Requirement.php b/includes/FeatureManagement/Requirement.php
new file mode 100644
index 0000000..281ae66
--- /dev/null
+++ b/includes/FeatureManagement/Requirement.php
@@ -0,0 +1,45 @@
+registerComplexRequirement(
+ * new DynamicConfigRequirement(
+ * $config,
+ * 'Sitename',
+ * 'Foo'
+ * )
+ * );
+ * ```
+ *
+ * registers a requirement that will evaluate to true only when `mediawiki/includes/Setup.php` has
+ * finished executing (after all service wiring has executed). I.e., every call to
+ * `Requirement->isMet()` reinterrogates the Config object for the current state and returns it.
+ * Contrast to
+ *
+ * ```lang=php
+ * $featureManager->registerRequirement(
+ * 'Foo',
+ * $config->get( 'Sitename' )
+ * );
+ * ```
+ *
+ * wherein state is evaluated only once at registration time and permanently cached.
+ *
+ * NOTE: This API hasn't settled. It may change at any time without warning. Please don't bind to
+ * it unless you absolutely need to
+ *
+ * @unstable
+ *
+ * @package FeatureManagement
+ * @internal
+ */
+final class DynamicConfigRequirement implements Requirement {
+
+ /**
+ * @var \Config
+ */
+ private $config;
+
+ /**
+ * @var string
+ */
+ private $configName;
+
+ /**
+ * @var string
+ */
+ private $requirementName;
+
+ /**
+ * @param \Config $config
+ * @param string $configName Any `Config` key. This name is used to query `$config` state. E.g.,
+ * `'DBname'`. See https://www.mediawiki.org/wiki/Manual:Configuration_settings
+ * @param string $requirementName The name of the requirement presented to FeatureManager.
+ * This name _usually_ matches the `$configName` parameter for simplicity but allows for
+ * abstraction as needed. See `Requirement->getName()`.
+ */
+ public function __construct( \Config $config, string $configName, string $requirementName ) {
+ $this->config = $config;
+ $this->configName = $configName;
+ $this->requirementName = $requirementName;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function getName() : string {
+ return $this->requirementName;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function isMet() : bool {
+ return (bool)$this->config->get( $this->configName );
+ }
+}
diff --git a/includes/FeatureManagement/Requirements/LatestSkinVersionRequirement.php b/includes/FeatureManagement/Requirements/LatestSkinVersionRequirement.php
new file mode 100644
index 0000000..47554de
--- /dev/null
+++ b/includes/FeatureManagement/Requirements/LatestSkinVersionRequirement.php
@@ -0,0 +1,86 @@
+skinVersionLookup = $skinVersionLookup;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function getName() : string {
+ return Constants::REQUIREMENT_LATEST_SKIN_VERSION;
+ }
+
+ /**
+ * @inheritDoc
+ * @throws \ConfigException
+ */
+ public function isMet() : bool {
+ return $this->skinVersionLookup->getVersion() === Constants::SKIN_VERSION_LATEST;
+ }
+}
diff --git a/includes/FeatureManagement/Requirements/SimpleRequirement.php b/includes/FeatureManagement/Requirements/SimpleRequirement.php
new file mode 100644
index 0000000..35fd7f1
--- /dev/null
+++ b/includes/FeatureManagement/Requirements/SimpleRequirement.php
@@ -0,0 +1,70 @@
+name = $name;
+ $this->isMet = $isMet;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function getName() : string {
+ return $this->name;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function isMet() : bool {
+ return $this->isMet;
+ }
+}
diff --git a/includes/FeatureManagement/TODO.md b/includes/FeatureManagement/TODO.md
new file mode 100644
index 0000000..017407d
--- /dev/null
+++ b/includes/FeatureManagement/TODO.md
@@ -0,0 +1,11 @@
+TODO
+====
+
+Currently the `FeatureManager` class is a very shallow interpretation of Piotr Miazga's proposed
+API and associated scaffolding classes (see https://phabricator.wikimedia.org/T244481 and
+https://gerrit.wikimedia.org/r/#/c/mediawiki/skins/Vector/+/572323/). This document aims to list
+the steps required to get from this system to something as powerful as Piotr's.
+
+1. Consider supporing memoization of those requirements (see https://gerrit.wikimedia.org/r/#/c/mediawiki/skins/Vector/+/573626/7/includes/FeatureManagement/FeatureManager.php@68)
+2. Add support for getting all requirements
+3. Add support for getting all features enabled when a requirement is enabled/disabled
diff --git a/includes/Hooks.php b/includes/Hooks.php
index cdebeae..2d4a9db 100644
--- a/includes/Hooks.php
+++ b/includes/Hooks.php
@@ -2,12 +2,18 @@
namespace Vector;
+use ExtensionRegistry;
+use HTMLForm;
+use MediaWiki\MediaWikiServices;
use OutputPage;
+use RequestContext;
+use Skin;
use SkinTemplate;
use SkinVector;
+use User;
/**
- * Hook handlers for Vector skin.
+ * Presentation hook handlers for Vector skin.
*
* Hook handler method names should be in the form of:
* on()
@@ -16,16 +22,227 @@ class Hooks {
/**
* BeforePageDisplayMobile hook handler
*
- * Make Vector responsive when operating in mobile mode (useformat=mobile)
+ * Make Legacy Vector responsive when $wgVectorResponsive = true
*
- * @see https://www.mediawiki.org/wiki/Extension:MobileFrontend/BeforePageDisplayMobile
+ * @see https://www.mediawiki.org/wiki/Manual:Hooks/BeforePageDisplay
* @param OutputPage $out
* @param SkinTemplate $sk
*/
- public static function onBeforePageDisplayMobile( OutputPage $out, $sk ) {
- // This makes Vector behave in responsive mode when MobileFrontend is installed
- if ( $sk instanceof SkinVector ) {
- $sk->enableResponsiveMode();
+ public static function onBeforePageDisplay( OutputPage $out, $sk ) {
+ if ( !$sk instanceof SkinVector ) {
+ return;
+ }
+
+ $skinVersionLookup = new SkinVersionLookup(
+ $out->getRequest(), $sk->getUser(), self::getServiceConfig()
+ );
+
+ $mobile = false;
+ if ( ExtensionRegistry::getInstance()->isLoaded( 'MobileFrontend' ) ) {
+
+ $mobFrontContext = MediaWikiServices::getInstance()->getService( 'MobileFrontend.Context' );
+ $mobile = $mobFrontContext->shouldDisplayMobileView();
+ }
+
+ if ( $skinVersionLookup->isLegacy()
+ && ( $mobile || $sk->getConfig()->get( 'VectorResponsive' ) )
+ ) {
+ $out->addMeta( 'viewport', 'width=device-width, initial-scale=1' );
+ $out->addModuleStyles( 'skins.vector.styles.responsive' );
}
}
+
+ /**
+ * Add icon class to an existing navigation item inside a menu hook.
+ * See self::onSkinTemplateNavigation.
+ * @param array $item
+ * @return array
+ */
+ private static function navigationLinkToIcon( array $item ) {
+ if ( !isset( $item['class'] ) ) {
+ $item['class'] = '';
+ }
+ $item['class'] = rtrim( 'icon ' . $item['class'], ' ' );
+ return $item;
+ }
+
+ /**
+ * Upgrades Vector's watch action to a watchstar.
+ *
+ * @see https://www.mediawiki.org/wiki/Manual:Hooks/SkinTemplateNavigation
+ * @param SkinTemplate $sk
+ * @param array &$content_navigation
+ */
+ public static function onSkinTemplateNavigation( $sk, &$content_navigation ) {
+ if (
+ $sk->getSkinName() === 'vector' &&
+ $sk->getConfig()->get( 'VectorUseIconWatch' )
+ ) {
+ $key = null;
+ if ( isset( $content_navigation['actions']['watch'] ) ) {
+ $key = 'watch';
+ }
+ if ( isset( $content_navigation['actions']['unwatch'] ) ) {
+ $key = 'unwatch';
+ }
+
+ // Promote watch link from actions to views and add an icon
+ if ( $key !== null ) {
+ $content_navigation['views'][$key] = self::navigationLinkToIcon(
+ $content_navigation['actions'][$key]
+ );
+ unset( $content_navigation['actions'][$key] );
+ }
+ }
+ }
+
+ /**
+ * Add Vector preferences to the user's Special:Preferences page directly underneath skins.
+ *
+ * @param User $user User whose preferences are being modified.
+ * @param array[] &$prefs Preferences description array, to be fed to a HTMLForm object.
+ */
+ public static function onGetPreferences( User $user, array &$prefs ) {
+ if ( !self::getConfig( Constants::CONFIG_KEY_SHOW_SKIN_PREFERENCES ) ) {
+ // Do not add Vector skin specific preferences.
+ return;
+ }
+
+ $skinVersionLookup = new SkinVersionLookup(
+ RequestContext::getMain()->getRequest(), $user, self::getServiceConfig()
+ );
+
+ // Preferences to add.
+ $vectorPrefs = [
+ Constants::PREF_KEY_SKIN_VERSION => [
+ 'type' => 'toggle',
+ // The checkbox title.
+ 'label-message' => 'prefs-vector-enable-vector-1-label',
+ // Show a little informational snippet underneath the checkbox.
+ 'help-message' => 'prefs-vector-enable-vector-1-help',
+ // The tab location and title of the section to insert the checkbox. The bit after the slash
+ // indicates that a prefs-skin-prefs string will be provided.
+ 'section' => 'rendering/skin/skin-prefs',
+ // Convert the preference string to a boolean presentation.
+ 'default' => $skinVersionLookup->isLegacy() ? '1' : '0',
+ // Only show this section when the Vector skin is checked. The JavaScript client also uses
+ // this state to determine whether to show or hide the whole section.
+ 'hide-if' => [ '!==', 'wpskin', Constants::SKIN_NAME ]
+ ],
+ Constants::PREF_KEY_SIDEBAR_VISIBLE => [
+ 'type' => 'api',
+ 'default' => self::getConfig( Constants::CONFIG_KEY_DEFAULT_SIDEBAR_VISIBLE_FOR_AUTHORISED_USER )
+ ],
+ ];
+
+ // Seek the skin preference section to add Vector preferences just below it.
+ $skinSectionIndex = array_search( 'skin', array_keys( $prefs ) );
+ if ( $skinSectionIndex !== false ) {
+ // Skin preference section found. Inject Vector skin-specific preferences just below it.
+ // This pattern can be found in Popups too. See T246162.
+ $vectorSectionIndex = $skinSectionIndex + 1;
+ $prefs = array_slice( $prefs, 0, $vectorSectionIndex, true )
+ + $vectorPrefs
+ + array_slice( $prefs, $vectorSectionIndex, null, true );
+ } else {
+ // Skin preference section not found. Just append Vector skin-specific preferences.
+ $prefs += $vectorPrefs;
+ }
+ }
+
+ /**
+ * Hook executed on user's Special:Preferences form save. This is used to convert the boolean
+ * presentation of skin version to a version string. That is, a single preference change by the
+ * user may trigger two writes: a boolean followed by a string.
+ *
+ * @param array $formData Form data submitted by user
+ * @param HTMLForm $form A preferences form
+ * @param User $user Logged-in user
+ * @param bool &$result Variable defining is form save successful
+ * @param array $oldPreferences
+ */
+ public static function onPreferencesFormPreSave(
+ array $formData,
+ HTMLForm $form,
+ User $user,
+ &$result,
+ $oldPreferences
+ ) {
+ $preference = null;
+ $isVectorEnabled = ( $formData[ 'skin' ] ?? '' ) === Constants::SKIN_NAME;
+ if ( $isVectorEnabled && array_key_exists( Constants::PREF_KEY_SKIN_VERSION, $formData ) ) {
+ // A preference was set. However, Special:Preferences converts the result to a boolean when a
+ // version name string is wanted instead. Convert the boolean to a version string in case the
+ // preference display is changed to a list later (e.g., a "_new_ new Vector" / '3' or
+ // 'alpha').
+ $preference = $formData[ Constants::PREF_KEY_SKIN_VERSION ] ?
+ Constants::SKIN_VERSION_LEGACY :
+ Constants::SKIN_VERSION_LATEST;
+ } elseif ( array_key_exists( Constants::PREF_KEY_SKIN_VERSION, $oldPreferences ) ) {
+ // The setting was cleared. However, this is likely because a different skin was chosen and
+ // the skin version preference was hidden.
+ $preference = $oldPreferences[ Constants::PREF_KEY_SKIN_VERSION ];
+ }
+ if ( $preference !== null ) {
+ $user->setOption( Constants::PREF_KEY_SKIN_VERSION, $preference );
+ }
+ }
+
+ /**
+ * Called one time when initializing a users preferences for a newly created account.
+ *
+ * @param User $user Newly created user object.
+ * @param bool $isAutoCreated
+ */
+ public static function onLocalUserCreated( User $user, $isAutoCreated ) {
+ $default = self::getConfig( Constants::CONFIG_KEY_DEFAULT_SKIN_VERSION_FOR_NEW_ACCOUNTS );
+ // Permanently set the default preference. The user can later change this preference, however,
+ // self::onLocalUserCreated() will not be executed for that account again.
+ $user->setOption( Constants::PREF_KEY_SKIN_VERSION, $default );
+ }
+
+ /**
+ * Called when OutputPage::headElement is creating the body tag to allow skins
+ * and extensions to add attributes they might need to the body of the page.
+ *
+ * @param OutputPage $out
+ * @param Skin $sk
+ * @param string[] &$bodyAttrs
+ */
+ public static function onOutputPageBodyAttributes( OutputPage $out, Skin $sk, &$bodyAttrs ) {
+ if ( !$sk instanceof SkinVector ) {
+ return;
+ }
+
+ $skinVersionLookup = new SkinVersionLookup(
+ $out->getRequest(), $sk->getUser(), self::getServiceConfig()
+ );
+
+ if ( $skinVersionLookup->isLegacy() ) {
+ $bodyAttrs['class'] .= ' skin-vector-legacy';
+ return;
+ }
+
+ if ( self::getConfig( Constants::CONFIG_KEY_LAYOUT_MAX_WIDTH ) ) {
+ $bodyAttrs['class'] .= ' skin-vector-max-width';
+ }
+ }
+
+ /**
+ * Get a configuration variable such as `Constants::CONFIG_KEY_SHOW_SKIN_PREFERENCES`.
+ *
+ * @param string $name Name of configuration option.
+ * @return mixed Value configured.
+ * @throws \ConfigException
+ */
+ private static function getConfig( $name ) {
+ return self::getServiceConfig()->get( $name );
+ }
+
+ /**
+ * @return \Config
+ */
+ private static function getServiceConfig() {
+ return MediaWikiServices::getInstance()->getService( Constants::SERVICE_CONFIG );
+ }
}
diff --git a/includes/ResourceLoaderLessModule.php b/includes/ResourceLoaderLessModule.php
deleted file mode 100644
index 5849755..0000000
--- a/includes/ResourceLoaderLessModule.php
+++ /dev/null
@@ -1,64 +0,0 @@
-getConfigFactory()->makeConfig( 'vector' );
- $printLogo = $config->get( 'VectorPrintLogo' );
- } catch ( ConfigException $e ) {
- // Config is not available when running in the context of the MediaWiki installer. (T183640)
- $printLogo = false;
- }
- if ( $printLogo ) {
- $lessVars[ 'printLogo' ] = true;
- $lessVars[ 'printLogoUrl' ] = CSSMin::buildUrlValue( $printLogo['url'] );
- $lessVars[ 'printLogoWidth' ] = intval( $printLogo['width'] );
- $lessVars[ 'printLogoHeight' ] = intval( $printLogo['height'] );
- } else {
- $lessVars[ 'printLogo' ] = false;
- }
- return $lessVars;
- }
-}
diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php
new file mode 100644
index 0000000..cddcf54
--- /dev/null
+++ b/includes/ServiceWiring.php
@@ -0,0 +1,71 @@
+ function ( MediaWikiServices $services ) {
+ return $services->getService( 'ConfigFactory' )->makeConfig( Constants::SKIN_NAME );
+ },
+ Constants::SERVICE_FEATURE_MANAGER => function ( MediaWikiServices $services ) {
+ $featureManager = new FeatureManager();
+
+ $featureManager->registerRequirement(
+ new DynamicConfigRequirement(
+ $services->getMainConfig(),
+ Constants::CONFIG_KEY_FULLY_INITIALISED,
+ Constants::REQUIREMENT_FULLY_INITIALISED
+ )
+ );
+
+ // Feature: Latest skin
+ // ====================
+ $context = RequestContext::getMain();
+
+ $featureManager->registerRequirement(
+ new LatestSkinVersionRequirement(
+ new SkinVersionLookup(
+ $context->getRequest(),
+ $context->getUser(),
+ $services->getService( Constants::SERVICE_CONFIG )
+ )
+ )
+ );
+
+ $featureManager->registerFeature(
+ Constants::FEATURE_LATEST_SKIN,
+ [
+ Constants::REQUIREMENT_FULLY_INITIALISED,
+ Constants::REQUIREMENT_LATEST_SKIN_VERSION,
+ ]
+ );
+
+ return $featureManager;
+ }
+];
diff --git a/includes/SkinVector.php b/includes/SkinVector.php
index 0ee7e73..9931533 100644
--- a/includes/SkinVector.php
+++ b/includes/SkinVector.php
@@ -22,88 +22,119 @@
* @ingroup Skins
*/
+use MediaWiki\MediaWikiServices;
+use Vector\Constants;
+use Wikimedia\WrappedString;
+
/**
* Skin subclass for Vector
* @ingroup Skins
+ * @final skins extending SkinVector are not supported
+ * @unstable
*/
class SkinVector extends SkinTemplate {
- public $skinname = 'vector';
+ public $skinname = Constants::SKIN_NAME;
public $stylename = 'Vector';
public $template = 'VectorTemplate';
- /**
- * @var Config
- */
- private $vectorConfig;
- private $responsiveMode = false;
-
- public function __construct() {
- parent::__construct( ...func_get_args() );
- $this->vectorConfig = \MediaWiki\MediaWikiServices::getInstance()->getConfigFactory()
- ->makeConfig( 'vector' );
- }
-
- /** @inheritDoc */
- public function getPageClasses( $title ) {
- $className = parent::getPageClasses( $title );
- return $className;
- }
/**
- * Enables the responsive mode
+ * @inheritDoc
+ * @return array
*/
- public function enableResponsiveMode() {
- if ( !$this->responsiveMode ) {
- $out = $this->getOutput();
- $out->addMeta( 'viewport', 'width=device-width, initial-scale=1' );
- $out->addModuleStyles( 'skins.vector.styles.responsive' );
- $this->responsiveMode = true;
- }
- }
+ public function getDefaultModules() {
+ $modules = parent::getDefaultModules();
- /**
- * Initializes output page and sets up skin-specific parameters
- * @param OutputPage $out Object to initialize
- */
- public function initPage( OutputPage $out ) {
- parent::initPage( $out );
-
- if ( $this->vectorConfig->get( 'VectorResponsive' ) ) {
- $this->enableResponsiveMode();
+ if ( $this->isLegacy() ) {
+ $modules['styles']['skin'][] = 'skins.vector.styles.legacy';
+ $modules[Constants::SKIN_NAME] = 'skins.vector.legacy.js';
+ } else {
+ $modules['styles'] = array_merge(
+ $modules['styles'],
+ [ 'skins.vector.styles', 'mediawiki.ui.icon', 'skins.vector.icons' ]
+ );
+ $modules[Constants::SKIN_NAME][] = 'skins.vector.js';
}
- $out->addModules( 'skins.vector.js' );
+ return $modules;
}
/**
- * Loads skin and user CSS files.
- * @param OutputPage $out
- */
- public function setupSkinUserCss( OutputPage $out ) {
- parent::setupSkinUserCss( $out );
-
- $out->addModuleStyles( [
- 'mediawiki.skinning.interface',
- 'skins.vector.styles',
- ] );
- }
-
- /**
- * Override to pass our Config instance to it
+ * Set up the VectorTemplate. Overrides the default behaviour of SkinTemplate allowing
+ * the safe calling of constructor with additional arguments. If dropping this method
+ * please ensure that VectorTemplate constructor arguments match those in SkinTemplate.
+ *
+ * @internal
* @param string $classname
- * @param bool|string $repository
- * @param bool|string $cache_dir
- * @return QuickTemplate
+ * @return VectorTemplate
*/
- public function setupTemplate( $classname, $repository = false, $cache_dir = false ) {
- return new $classname( $this->vectorConfig );
+ protected function setupTemplate( $classname ) {
+ $tp = new TemplateParser( __DIR__ . '/templates' );
+ return new VectorTemplate( $this->getConfig(), $tp, $this->isLegacy() );
}
/**
- * Whether the logo should be preloaded with an HTTP link header or not
- * @since 1.29
+ * Whether or not the legacy version of the skin is being used.
+ *
* @return bool
*/
- public function shouldPreloadLogo() {
- return true;
+ private function isLegacy() : bool {
+ $isLatestSkinFeatureEnabled = MediaWikiServices::getInstance()
+ ->getService( Constants::SERVICE_FEATURE_MANAGER )
+ ->isFeatureEnabled( Constants::FEATURE_LATEST_SKIN );
+
+ return !$isLatestSkinFeatureEnabled;
+ }
+
+ /**
+ * @internal only for use inside VectorTemplate
+ * @return array of data for a Mustache template
+ */
+ public function getTemplateData() {
+ $out = $this->getOutput();
+ $title = $out->getTitle();
+
+ $indicators = [];
+ foreach ( $out->getIndicators() as $id => $content ) {
+ $indicators[] = [
+ 'id' => Sanitizer::escapeIdForAttribute( "mw-indicator-$id" ),
+ 'class' => 'mw-indicator',
+ 'html' => $content,
+ ];
+ }
+
+ $printFooter = Html::rawElement(
+ 'div',
+ [ 'class' => 'printfooter' ],
+ $this->printSource()
+ );
+
+ return [
+ // Data objects:
+ 'array-indicators' => $indicators,
+ // HTML strings:
+ 'html-printtail' => WrappedString::join( "\n", [
+ MWDebug::getHTMLDebugLog(),
+ MWDebug::getDebugHTML( $this->getContext() ),
+ $this->bottomScripts(),
+ wfReportTime( $out->getCSP()->getNonce() )
+ ] ) . '