Separate Vector skin from core
This makes it behave exactly like a custom skin, with the caveat that it is still hardcoded in several places :(, most notably lots of skinStyles in Resources.php, the installer and some tests. * Renamed directory to reflect skin name. * Split skin classes to separate PHP files. * Removed core autoloader entries for skin classes. * Changed the hack in Setup.php to require_once the skin PHP file, as the skin is now registered there. * Extracted skin-specific localisation messages. * Extracted skin-specific resources. Did not touch skinStyles yet. * Hacked up the installer not to fall over entirely if Vector is missing. * Adjusted hardcoded paths in some more places... Change-Id: Idfffc1430790b3a104cc9835a6367137bcbf0e4e
|
|
@ -1181,8 +1181,6 @@ $wgAutoloadLocalClasses = array(
|
|||
# skins
|
||||
'MonoBookTemplate' => 'skins/monobook/MonoBook.php',
|
||||
'SkinMonoBook' => 'skins/monobook/MonoBook.php',
|
||||
'SkinVector' => 'skins/vector/Vector.php',
|
||||
'VectorTemplate' => 'skins/vector/Vector.php',
|
||||
);
|
||||
|
||||
class AutoLoader {
|
||||
|
|
|
|||
|
|
@ -606,7 +606,7 @@ $wgDeferredUpdateList = array();
|
|||
// These lines should eventually be placed in skins' meta definition files, and loaded by a
|
||||
// require_once for each skin file generated by the installer and placed in LocalSettings.php.
|
||||
$wgValidSkinNames['monobook'] = 'MonoBook';
|
||||
$wgValidSkinNames['vector'] = 'Vector';
|
||||
require_once "$wgStyleDirectory/Vector/Vector.php";
|
||||
|
||||
wfProfileOut( $fname . '-globals' );
|
||||
wfProfileIn( $fname . '-extensions' );
|
||||
|
|
|
|||
|
|
@ -124,6 +124,12 @@ class WebInstallerOutput {
|
|||
* @return string
|
||||
*/
|
||||
public function getCSS() {
|
||||
// Horrible, horrible hack: the installer is currently hardcoded to use the Vector skin, so load
|
||||
// it here. Include instead of require, as this will work without it, it will just look bad.
|
||||
global $wgResourceModules;
|
||||
global $wgStyleDirectory;
|
||||
include_once "$wgStyleDirectory/Vector/Vector.php";
|
||||
|
||||
$moduleNames = array(
|
||||
// See SkinTemplate::setupSkinUserCss
|
||||
'mediawiki.legacy.shared',
|
||||
|
|
@ -146,6 +152,10 @@ class WebInstallerOutput {
|
|||
foreach ( $moduleNames as $moduleName ) {
|
||||
/** @var ResourceLoaderFileModule $module */
|
||||
$module = $resourceLoader->getModule( $moduleName );
|
||||
// One of the modules will be missing if Vector is unavailable
|
||||
if ( !$module ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Based on: ResourceLoaderFileModule::getStyles (without the DB query)
|
||||
$styles = ResourceLoader::makeCombinedStyles( $module->readStyleFiles(
|
||||
|
|
|
|||
|
|
@ -150,19 +150,7 @@
|
|||
"faqpage": "Project:FAQ",
|
||||
"sitetitle": "{{SITENAME}}",
|
||||
"sitesubtitle": "",
|
||||
"vector-action-addsection": "Add topic",
|
||||
"vector-action-delete": "Delete",
|
||||
"vector-action-move": "Move",
|
||||
"vector-action-protect": "Protect",
|
||||
"vector-action-undelete": "Undelete",
|
||||
"vector-action-unprotect": "Change protection",
|
||||
"vector-view-create": "Create",
|
||||
"vector-view-edit": "Edit",
|
||||
"vector-view-history": "View history",
|
||||
"vector-view-view": "Read",
|
||||
"vector-view-viewsource": "View source",
|
||||
"actions": "Actions",
|
||||
"vector-more-actions": "More",
|
||||
"namespaces": "Namespaces",
|
||||
"variants": "Variants",
|
||||
"navigation-heading": "Navigation menu",
|
||||
|
|
@ -2475,7 +2463,6 @@
|
|||
"interlanguage-link-title-nonlangonly": "$1",
|
||||
"common.css": "/* CSS placed here will be applied to all skins */",
|
||||
"monobook.css": "/* CSS placed here will affect users of the MonoBook skin */",
|
||||
"vector.css": "/* CSS placed here will affect users of the Vector skin */",
|
||||
"print.css": "/* CSS placed here will affect the print output */",
|
||||
"noscript.css": "/* CSS placed here will affect users with JavaScript disabled */",
|
||||
"group-autoconfirmed.css": "/* CSS placed here will affect autoconfirmed users only */",
|
||||
|
|
@ -2485,7 +2472,6 @@
|
|||
"group-bureaucrat.css": "/* CSS placed here will affect bureaucrats only */",
|
||||
"common.js": "/* Any JavaScript here will be loaded for all users on every page load. */",
|
||||
"monobook.js": "/* Any JavaScript here will be loaded for users using the MonoBook skin */",
|
||||
"vector.js": "/* Any JavaScript here will be loaded for users using the Vector skin */",
|
||||
"group-autoconfirmed.js": "/* Any JavaScript here will be loaded for autoconfirmed users only */",
|
||||
"group-user.js": "/* Any JavaScript here will be loaded for registered users only */",
|
||||
"group-bot.js": "/* Any JavaScript here will be loaded for bots only */",
|
||||
|
|
@ -2558,7 +2544,6 @@
|
|||
"pageinfo-category-subcats": "Number of subcategories",
|
||||
"pageinfo-category-files": "Number of files",
|
||||
"skinname-monobook": "MonoBook",
|
||||
"skinname-vector": "Vector",
|
||||
"markaspatrolleddiff": "Mark as patrolled",
|
||||
"markaspatrolledlink": "[$1]",
|
||||
"markaspatrolledtext": "Mark this page as patrolled",
|
||||
|
|
|
|||
|
|
@ -312,19 +312,7 @@
|
|||
"faqpage": "{{doc-important|Do not translate <code>Project:</code> part.}}\n\"FAQ\" is short for \"frequently asked questions\".\n\nThis page is only linked in CologneBlue (an old skin), not in Monobook or Vector.",
|
||||
"sitetitle": "{{Ignore}}",
|
||||
"sitesubtitle": "{{Ignore}}",
|
||||
"vector-action-addsection": "Used in the Vector skin. See for example {{canonicalurl:Talk:Main_Page|useskin=vector}}",
|
||||
"vector-action-delete": "Used in the Vector skin, as the name of a tab at the top of the page. See for example {{canonicalurl:Main_Page|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}}",
|
||||
"vector-action-protect": "Tab at top of page, in vector skin\n\n{{Identical|Protect}}",
|
||||
"vector-action-undelete": "Tab at top of page, in vector skin.\n{{Identical|Undelete}}",
|
||||
"vector-action-unprotect": "Tab at top of page, in vector skin.\n{{Identical|Change protection}}",
|
||||
"vector-view-create": "Tab label in the Vector skin. See for example {{canonicalurl:Foo|useskin=vector}}\n{{Identical|Create}}",
|
||||
"vector-view-edit": "Tab label in the Vector skin. See for example {{canonicalurl:Main_Page|useskin=vector}}\n{{Identical|Edit}}",
|
||||
"vector-view-history": "Tab label in the Vector skin. See for example {{canonicalurl:Main_Page|useskin=vector}}\n{{Identical|View history}}",
|
||||
"vector-view-view": "Tab label in the Vector skin (verb). See for example {{canonicalurl:Main_Page|useskin=vector}}.\n{{Identical|Read}}",
|
||||
"vector-view-viewsource": "Tab label in the Vector skin.\n{{Identical|View source}}",
|
||||
"actions": "{{Identical|Action}}",
|
||||
"vector-more-actions": "Label in the Vector skin's menu for the less-important or rarer actions which are not shown as tabs (like moving the page, or for sysops deleting or protecting the page), as well as (for users with a narrow viewing window in their browser) the less-important tab actions which the user's browser is unable to fit in. {{Identical|More}}",
|
||||
"namespaces": "{{Identical|Namespace}}",
|
||||
"variants": "Used by the Vector skin.",
|
||||
"navigation-heading": "Heading shown above the navigation menu (sidebar) for screen-readers (or in non-standard skins).",
|
||||
|
|
@ -2637,7 +2625,6 @@
|
|||
"interlanguage-link-title-nonlangonly": "{{ignored}}Interlanguage link title. Parameters: $1 replaced with name of the target wiki (probably not a language name).",
|
||||
"common.css": "{{optional}}\nCSS applied to all users.",
|
||||
"monobook.css": "{{optional}}\nCSS applied to users using Monobook skin.",
|
||||
"vector.css": "{{optional}}",
|
||||
"print.css": "{{optional}}",
|
||||
"noscript.css": "{{optional}}",
|
||||
"group-autoconfirmed.css": "{{doc-group|autoconfirmed|css}}",
|
||||
|
|
@ -2647,7 +2634,6 @@
|
|||
"group-bureaucrat.css": "{{doc-group|bureaucrat|css}}",
|
||||
"common.js": "{{optional}}\nJS for all users.",
|
||||
"monobook.js": "{{optional}}\nJS for users using Monobook skin.",
|
||||
"vector.js": "{{optional}}",
|
||||
"group-autoconfirmed.js": "{{doc-group|autoconfirmed|js}}",
|
||||
"group-user.js": "{{doc-group|user|js}}",
|
||||
"group-bot.js": "{{doc-group|bot|js}}",
|
||||
|
|
@ -2720,7 +2706,6 @@
|
|||
"pageinfo-category-subcats": "See also:\n* {{msg-mw|Pageinfo-category-pages}}\n* {{msg-mw|Pageinfo-category-files}}",
|
||||
"pageinfo-category-files": "See also:\n* {{msg-mw|Pageinfo-category-pages}}\n* {{msg-mw|Pageinfo-category-subcats}}",
|
||||
"skinname-monobook": "{{optional}}",
|
||||
"skinname-vector": "{{optional}}",
|
||||
"markaspatrolleddiff": "{{doc-actionlink}}\nSee also:\n* {{msg-mw|Markaspatrolledtext}}\n{{Identical|Mark as patrolled}}",
|
||||
"markaspatrolledlink": "{{notranslate}}\nParameters:\n* $1 - link which has text {{msg-mw|Markaspatrolledtext}}",
|
||||
"markaspatrolledtext": "{{doc-actionlink}}\nSee also:\n* {{msg-mw|Markaspatrolleddiff}}",
|
||||
|
|
|
|||
|
|
@ -128,15 +128,6 @@ return array(
|
|||
*
|
||||
* See Vector for an example.
|
||||
*/
|
||||
'skins.vector.styles' => array(
|
||||
// Used in the web installer. Test it after modifying this definition!
|
||||
'styles' => array(
|
||||
'screen.less' => array( 'media' => 'screen' ),
|
||||
'screen-hd.less' => array( 'media' => 'screen and (min-width: 982px)' ),
|
||||
),
|
||||
'remoteSkinPath' => 'vector',
|
||||
'localBasePath' => $GLOBALS['wgStyleDirectory'] . '/vector',
|
||||
),
|
||||
'skins.monobook.styles' => array(
|
||||
'styles' => array(
|
||||
'main.css' => array( 'media' => 'screen' ),
|
||||
|
|
@ -144,19 +135,6 @@ return array(
|
|||
'remoteSkinPath' => 'monobook',
|
||||
'localBasePath' => $GLOBALS['wgStyleDirectory'] . '/monobook',
|
||||
),
|
||||
'skins.vector.js' => array(
|
||||
'scripts' => array(
|
||||
'collapsibleTabs.js',
|
||||
'vector.js',
|
||||
),
|
||||
'position' => 'top',
|
||||
'dependencies' => array(
|
||||
'jquery.throttle-debounce',
|
||||
'jquery.tabIndex',
|
||||
),
|
||||
'remoteSkinPath' => 'vector',
|
||||
'localBasePath' => $GLOBALS['wgStyleDirectory'] . '/vector',
|
||||
),
|
||||
|
||||
/* jQuery */
|
||||
|
||||
|
|
@ -1229,7 +1207,7 @@ return array(
|
|||
'scripts' => 'resources/src/mediawiki.special/mediawiki.special.js',
|
||||
'styles' => 'resources/src/mediawiki.special/mediawiki.special.css',
|
||||
'skinStyles' => array(
|
||||
'vector' => 'skins/vector/special.less', // FIXME this should use $wgStyleDirectory
|
||||
'vector' => 'skins/Vector/special.less', // FIXME this should use $wgStyleDirectory
|
||||
),
|
||||
),
|
||||
'mediawiki.special.block' => array(
|
||||
|
|
@ -1278,7 +1256,7 @@ return array(
|
|||
'styles' => 'resources/src/mediawiki.special/mediawiki.special.preferences.css',
|
||||
'position' => 'top',
|
||||
'skinStyles' => array(
|
||||
'vector' => 'skins/vector/special.preferences.less', // FIXME this should use $wgStyleDirectory
|
||||
'vector' => 'skins/Vector/special.preferences.less', // FIXME this should use $wgStyleDirectory
|
||||
),
|
||||
'messages' => array(
|
||||
'prefs-tabs-navigation-hint',
|
||||
|
|
|
|||
83
skins/Vector/SkinVector.php
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
<?php
|
||||
/**
|
||||
* Vector - Modern version of MonoBook with fresh look and many usability
|
||||
* improvements.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*
|
||||
* @file
|
||||
* @ingroup Skins
|
||||
*/
|
||||
|
||||
/**
|
||||
* SkinTemplate class for Vector skin
|
||||
* @ingroup Skins
|
||||
*/
|
||||
class SkinVector extends SkinTemplate {
|
||||
public $skinname = 'vector';
|
||||
public $stylename = 'Vector';
|
||||
public $template = 'VectorTemplate';
|
||||
|
||||
protected static $bodyClasses = array( 'vector-animateLayout' );
|
||||
|
||||
/**
|
||||
* Initializes output page and sets up skin-specific parameters
|
||||
* @param OutputPage $out Object to initialize
|
||||
*/
|
||||
public function initPage( OutputPage $out ) {
|
||||
global $wgLocalStylePath;
|
||||
|
||||
parent::initPage( $out );
|
||||
|
||||
// Append CSS which includes IE only behavior fixes for hover support -
|
||||
// this is better than including this in a CSS file since it doesn't
|
||||
// wait for the CSS file to load before fetching the HTC file.
|
||||
$min = $this->getRequest()->getFuzzyBool( 'debug' ) ? '' : '.min';
|
||||
$out->addHeadItem( 'csshover',
|
||||
'<!--[if lt IE 7]><style type="text/css">body{behavior:url("' .
|
||||
htmlspecialchars( $wgLocalStylePath ) .
|
||||
"/{$this->stylename}/csshover{$min}.htc\")}</style><![endif]-->"
|
||||
);
|
||||
|
||||
$out->addModules( array( 'skins.vector.js' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads skin and user CSS files.
|
||||
* @param OutputPage $out
|
||||
*/
|
||||
function setupSkinUserCss( OutputPage $out ) {
|
||||
parent::setupSkinUserCss( $out );
|
||||
|
||||
$styles = array( 'mediawiki.skinning.interface', 'skins.vector.styles' );
|
||||
wfRunHooks( 'SkinVectorStyleModules', array( $this, &$styles ) );
|
||||
$out->addModuleStyles( $styles );
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds classes to the body element.
|
||||
*
|
||||
* @param OutputPage $out
|
||||
* @param array &$bodyAttrs Array of attributes that will be set on the body element
|
||||
*/
|
||||
function addToBodyAttributes( $out, &$bodyAttrs ) {
|
||||
if ( isset( $bodyAttrs['class'] ) && strlen( $bodyAttrs['class'] ) > 0 ) {
|
||||
$bodyAttrs['class'] .= ' ' . implode( ' ', static::$bodyClasses );
|
||||
} else {
|
||||
$bodyAttrs['class'] = implode( ' ', static::$bodyClasses );
|
||||
}
|
||||
}
|
||||
}
|
||||
60
skins/Vector/Vector.php
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
/**
|
||||
* Vector - Modern version of MonoBook with fresh look and many usability
|
||||
* improvements.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*
|
||||
* @file
|
||||
* @ingroup Skins
|
||||
*/
|
||||
|
||||
$wgExtensionCredits['skin'][] = array(
|
||||
'path' => __FILE__,
|
||||
'name' => 'Vector',
|
||||
'url' => 'https://www.mediawiki.org/wiki/Skin:Vector',
|
||||
);
|
||||
|
||||
// Register files
|
||||
$wgAutoloadClasses['SkinVector'] = __DIR__ . '/SkinVector.php';
|
||||
$wgAutoloadClasses['VectorTemplate'] = __DIR__ . '/VectorTemplate.php';
|
||||
$wgMessagesDirs['Vector'] = __DIR__ . '/i18n';
|
||||
|
||||
// Register skin
|
||||
$wgValidSkinNames['vector'] = 'Vector';
|
||||
|
||||
// Register modules
|
||||
$wgResourceModules['skins.vector.styles'] = array(
|
||||
'styles' => array(
|
||||
'screen.less' => array( 'media' => 'screen' ),
|
||||
'screen-hd.less' => array( 'media' => 'screen and (min-width: 982px)' ),
|
||||
),
|
||||
'remoteSkinPath' => 'Vector',
|
||||
'localBasePath' => __DIR__,
|
||||
);
|
||||
$wgResourceModules['skins.vector.js'] = array(
|
||||
'scripts' => array(
|
||||
'collapsibleTabs.js',
|
||||
'vector.js',
|
||||
),
|
||||
'position' => 'top',
|
||||
'dependencies' => array(
|
||||
'jquery.throttle-debounce',
|
||||
'jquery.tabIndex',
|
||||
),
|
||||
'remoteSkinPath' => 'Vector',
|
||||
'localBasePath' => __DIR__,
|
||||
);
|
||||
|
|
@ -18,75 +18,10 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*
|
||||
* @todo document
|
||||
* @file
|
||||
* @ingroup Skins
|
||||
*/
|
||||
|
||||
if ( !defined( 'MEDIAWIKI' ) ) {
|
||||
die( -1 );
|
||||
}
|
||||
|
||||
/**
|
||||
* SkinTemplate class for Vector skin
|
||||
* @ingroup Skins
|
||||
*/
|
||||
class SkinVector extends SkinTemplate {
|
||||
public $skinname = 'vector';
|
||||
public $stylename = 'vector';
|
||||
public $template = 'VectorTemplate';
|
||||
|
||||
protected static $bodyClasses = array( 'vector-animateLayout' );
|
||||
|
||||
/**
|
||||
* Initializes output page and sets up skin-specific parameters
|
||||
* @param OutputPage $out Object to initialize
|
||||
*/
|
||||
public function initPage( OutputPage $out ) {
|
||||
global $wgLocalStylePath;
|
||||
|
||||
parent::initPage( $out );
|
||||
|
||||
// Append CSS which includes IE only behavior fixes for hover support -
|
||||
// this is better than including this in a CSS file since it doesn't
|
||||
// wait for the CSS file to load before fetching the HTC file.
|
||||
$min = $this->getRequest()->getFuzzyBool( 'debug' ) ? '' : '.min';
|
||||
$out->addHeadItem( 'csshover',
|
||||
'<!--[if lt IE 7]><style type="text/css">body{behavior:url("' .
|
||||
htmlspecialchars( $wgLocalStylePath ) .
|
||||
"/{$this->stylename}/csshover{$min}.htc\")}</style><![endif]-->"
|
||||
);
|
||||
|
||||
$out->addModules( array( 'skins.vector.js' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads skin and user CSS files.
|
||||
* @param OutputPage $out
|
||||
*/
|
||||
function setupSkinUserCss( OutputPage $out ) {
|
||||
parent::setupSkinUserCss( $out );
|
||||
|
||||
$styles = array( 'mediawiki.skinning.interface', 'skins.vector.styles' );
|
||||
wfRunHooks( 'SkinVectorStyleModules', array( $this, &$styles ) );
|
||||
$out->addModuleStyles( $styles );
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds classes to the body element.
|
||||
*
|
||||
* @param OutputPage $out
|
||||
* @param array &$bodyAttrs Array of attributes that will be set on the body element
|
||||
*/
|
||||
function addToBodyAttributes( $out, &$bodyAttrs ) {
|
||||
if ( isset( $bodyAttrs['class'] ) && strlen( $bodyAttrs['class'] ) > 0 ) {
|
||||
$bodyAttrs['class'] .= ' ' . implode( ' ', static::$bodyClasses );
|
||||
} else {
|
||||
$bodyAttrs['class'] = implode( ' ', static::$bodyClasses );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* QuickTemplate class for Vector skin
|
||||
* @ingroup Skins
|
||||
|
|
@ -162,6 +97,7 @@ class VectorTemplate extends BaseTemplate {
|
|||
<div id="content" class="mw-body" role="main">
|
||||
<a id="top"></a>
|
||||
|
||||
<div id="mw-js-message" style="display:none;"<?php $this->html( 'userlangattributes' ) ?>></div>
|
||||
<?php
|
||||
if ( $this->data['sitenotice'] ) {
|
||||
?>
|
||||
20
skins/Vector/i18n/en.json
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": []
|
||||
},
|
||||
"skinname-vector": "Vector",
|
||||
"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 */",
|
||||
"vector-action-addsection": "Add topic",
|
||||
"vector-action-delete": "Delete",
|
||||
"vector-action-move": "Move",
|
||||
"vector-action-protect": "Protect",
|
||||
"vector-action-undelete": "Undelete",
|
||||
"vector-action-unprotect": "Change protection",
|
||||
"vector-view-create": "Create",
|
||||
"vector-view-edit": "Edit",
|
||||
"vector-view-history": "View history",
|
||||
"vector-view-view": "Read",
|
||||
"vector-view-viewsource": "View source",
|
||||
"vector-more-actions": "More"
|
||||
}
|
||||
20
skins/Vector/i18n/qqq.json
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": []
|
||||
},
|
||||
"skinname-vector": "{{optional}}",
|
||||
"vector.css": "{{optional}}",
|
||||
"vector.js": "{{optional}}",
|
||||
"vector-action-addsection": "Used in the Vector skin. See for example {{canonicalurl:Talk:Main_Page|useskin=vector}}",
|
||||
"vector-action-delete": "Used in the Vector skin, as the name of a tab at the top of the page. See for example {{canonicalurl:Main_Page|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}}",
|
||||
"vector-action-protect": "Tab at top of page, in vector skin\n\n{{Identical|Protect}}",
|
||||
"vector-action-undelete": "Tab at top of page, in vector skin.\n{{Identical|Undelete}}",
|
||||
"vector-action-unprotect": "Tab at top of page, in vector skin.\n{{Identical|Change protection}}",
|
||||
"vector-view-create": "Tab label in the Vector skin. See for example {{canonicalurl:Foo|useskin=vector}}\n{{Identical|Create}}",
|
||||
"vector-view-edit": "Tab label in the Vector skin. See for example {{canonicalurl:Main_Page|useskin=vector}}\n{{Identical|Edit}}",
|
||||
"vector-view-history": "Tab label in the Vector skin. See for example {{canonicalurl:Main_Page|useskin=vector}}\n{{Identical|View history}}",
|
||||
"vector-view-view": "Tab label in the Vector skin (verb). See for example {{canonicalurl:Main_Page|useskin=vector}}.\n{{Identical|Read}}",
|
||||
"vector-view-viewsource": "Tab label in the Vector skin.\n{{Identical|View source}}",
|
||||
"vector-more-actions": "Label in the Vector skin's menu for the less-important or rarer actions which are not shown as tabs (like moving the page, or for sysops deleting or protecting the page), as well as (for users with a narrow viewing window in their browser) the less-important tab actions which the user's browser is unable to fit in. {{Identical|More}}"
|
||||
}
|
||||
|
Before Width: | Height: | Size: 143 B After Width: | Height: | Size: 143 B |
|
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 163 B |
|
Before Width: | Height: | Size: 145 B After Width: | Height: | Size: 145 B |
|
Before Width: | Height: | Size: 165 B After Width: | Height: | Size: 165 B |
|
Before Width: | Height: | Size: 135 B After Width: | Height: | Size: 135 B |
|
Before Width: | Height: | Size: 165 B After Width: | Height: | Size: 165 B |
|
Before Width: | Height: | Size: 135 B After Width: | Height: | Size: 135 B |
|
Before Width: | Height: | Size: 165 B After Width: | Height: | Size: 165 B |
|
Before Width: | Height: | Size: 145 B After Width: | Height: | Size: 145 B |
|
Before Width: | Height: | Size: 165 B After Width: | Height: | Size: 165 B |
|
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 107 B |
|
Before Width: | Height: | Size: 141 B After Width: | Height: | Size: 141 B |
|
Before Width: | Height: | Size: 484 B After Width: | Height: | Size: 484 B |
|
Before Width: | Height: | Size: 141 B After Width: | Height: | Size: 141 B |
|
Before Width: | Height: | Size: 510 B After Width: | Height: | Size: 510 B |
|
Before Width: | Height: | Size: 359 B After Width: | Height: | Size: 359 B |
|
Before Width: | Height: | Size: 204 B After Width: | Height: | Size: 204 B |
|
Before Width: | Height: | Size: 115 B After Width: | Height: | Size: 115 B |
|
Before Width: | Height: | Size: 168 B After Width: | Height: | Size: 168 B |
|
Before Width: | Height: | Size: 161 B After Width: | Height: | Size: 161 B |
|
Before Width: | Height: | Size: 96 B After Width: | Height: | Size: 96 B |
|
Before Width: | Height: | Size: 103 B After Width: | Height: | Size: 103 B |
|
Before Width: | Height: | Size: 85 B After Width: | Height: | Size: 85 B |
|
Before Width: | Height: | Size: 94 B After Width: | Height: | Size: 94 B |
|
Before Width: | Height: | Size: 214 B After Width: | Height: | Size: 214 B |
|
Before Width: | Height: | Size: 218 B After Width: | Height: | Size: 218 B |
|
Before Width: | Height: | Size: 214 B After Width: | Height: | Size: 214 B |
|
Before Width: | Height: | Size: 215 B After Width: | Height: | Size: 215 B |
|
Before Width: | Height: | Size: 125 B After Width: | Height: | Size: 125 B |
|
Before Width: | Height: | Size: 70 B After Width: | Height: | Size: 70 B |
|
Before Width: | Height: | Size: 117 B After Width: | Height: | Size: 117 B |
|
Before Width: | Height: | Size: 716 B After Width: | Height: | Size: 716 B |
|
Before Width: | Height: | Size: 624 B After Width: | Height: | Size: 624 B |
|
Before Width: | Height: | Size: 658 B After Width: | Height: | Size: 658 B |
|
Before Width: | Height: | Size: 624 B After Width: | Height: | Size: 624 B |
|
Before Width: | Height: | Size: 568 B After Width: | Height: | Size: 568 B |
|
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
|
Before Width: | Height: | Size: 640 B After Width: | Height: | Size: 640 B |
|
Before Width: | Height: | Size: 294 B After Width: | Height: | Size: 294 B |
|
Before Width: | Height: | Size: 485 B After Width: | Height: | Size: 485 B |
|
Before Width: | Height: | Size: 294 B After Width: | Height: | Size: 294 B |
|
Before Width: | Height: | Size: 642 B After Width: | Height: | Size: 642 B |
|
Before Width: | Height: | Size: 294 B After Width: | Height: | Size: 294 B |