* The UserCryptPassword and UserComparePassword hooks are no longer called. Any extensions
using them must be updated to use the Password Hashing API.
* $wgCompiledFiles has been removed.
+* $wgSortSpecialPages was removed, the listing on Special:SpecialPages is
+ now always sorted.
=== New features in 1.24 ===
* Added a new hook, "WhatLinksHereProps", to allow extensions to annotate
setPreloadedText() from EditPage.php. (deprecated since 1.21)
* Removed global functions wfArrayLookup(), wfArrayMerge(), wfDebugDieBacktrace()
and wfTime(). (deprecated since 1.22)
+* Microsoft Internet Explorer 6 is now a "grade C" browser, meaning that
+ JavaScript is no longer executed in this browser. The IEFixes script, which
+ existed purely to provide support for MSIE versions below 7 and which was
+ conditionally loaded for those browsers, was also removed.
==== Renamed classes ====
* CLDRPluralRuleConverter_Expression to CLDRPluralRuleConverterExpression
MEDIAWIKI_LOAD_URL ?= http://localhost/w/load.php
-kss: nodecheck
-# FIXME: Use more up-to-date Ruby version
-
+kss: kssnodecheck
# Generates CSS of mediawiki.ui and mediawiki.ui.button using ResourceLoader, then applies it to the
# KSS style guide
$(eval KSS_RL_TMP := $(shell mktemp /tmp/tmp.XXXXXXXXXX))
@command -v xdg-open >/dev/null 2>&1 || { open ${PWD}/static/index.html; exit 0; }
@xdg-open ${PWD}/static/index.html
-nodecheck:
- @scripts/nodecheck.sh
+kssnodecheck:
+ @scripts/kss-node-check.sh
--- /dev/null
+#!/usr/bin/env bash
+
+if command -v npm > /dev/null ; then
+ npm install
+else
+ # If npm isn't installed, but kss-node is, exit normally.
+ # This allows setting it up on one machine, and running it on
+ # another (e.g. Tools Labs execution nodes) that doesn't have npm
+ # installed. However, "npm install" still needs to be run
+ # occasionally to keep kss updated.
+
+ KSS_NODE="${BASH_SOURCE%/*}/../node_modules/.bin/kss-node"
+ if ! [ -x "$KSS_NODE" ] ; then
+ echo "Neither kss-node nor npm are installed."
+ echo "To install npm, see http://nodejs.org/"
+ echo "When npm is installed, the Makefile can automatically"
+ echo "install kss-node."
+ exit 1
+ fi
+fi
+++ /dev/null
-#!/usr/bin/env bash
-if command -v npm > /dev/null ; then
- npm install
-else
- echo "You need to install Node.JS!"
- echo "See http://nodejs.org/"
- exit 1
-fi
--- /dev/null
+<!DOCTYPE html>
+<html lang="en" dir="ltr">
+<head>
+ <meta charset="utf-8">
+ <!--
+ The jquery.confirmable module uses some additional modules and files
+ for internationalization support. These are omitted here for simplicity.
+ -->
+ <script type="text/javascript" src="../../resources/lib/jquery/jquery.js"></script>
+ <link rel="stylesheet" href="../../resources/src/jquery/jquery.confirmable.css">
+ <script type="text/javascript" src="../../resources/src/jquery/jquery.confirmable.js"></script>
+ <style>
+ body {
+ font: small sans-serif;
+ }
+ .mw-rollback-link a,
+ .mw-unwatch-link a,
+ .mw-thanks-thank-link a {
+ background: #ccf;
+ }
+ </style>
+</head>
+<body>
+ <h2>Introduction</h2>
+
+ <p>The jquery.confirmable module provides a simple inline confirmation script for potentially destructive or uncancellable actions.</p>
+
+ <p>Possible uses include confirmable "rollback" links in histories, confirmable "unwatch" links on watchlists, or confirmable "thanks" links (provided by the Echo extension).</p>
+
+ <p>Shown below is a demo of how each of those could work on history and watchlist entries, in an LTR and RTL language. The enhanced links are highlighted in blue.</p>
+
+ <h2>Examples</h2>
+
+ <h3>LTR (English)</h3>
+
+ <p>Watchlist:</p>
+
+ <ul lang="en" dir="ltr">
+ <li class="mw-line-even mw-changeslist-line-not-watched">
+ (<a href="#">diff</a> | <a href="#">hist</a>)
+ <span class="mw-changeslist-separator">. .</span>
+ <span class="mw-title"><a href="#" class="mw-changeslist-title">Example page</a></span>; <span class="mw-changeslist-date">13:38</span>
+ <span class="mw-changeslist-separator">. .</span>
+ <span class="mw-plusminus-neg">(-130)</span>
+ <span class="mw-changeslist-separator">. .</span>
+ <a href="#" class="mw-userlink">Example user</a>
+ <span class="mw-usertoollinks">(<a href="#">Talk</a> | <a href="#">contribs</a> | <a href="#">block</a>)</span>
+ <span class="comment">(example edit)</span>
+ <span class="mw-rollback-link">[<a href="https://www.mediawiki.org/wiki/Random_ideas_for_rollback_to_be_shelved_and_forgotten_about">rollback</a>]</span>
+ (<span class="mw-unwatch-link"><a href="#">unwatch</a></span>)
+ </li>
+ </ul>
+
+ <p>History:</p>
+
+ <ul lang="en" dir="ltr">
+ <li>
+ <span class="mw-history-histlinks">(cur | <a href="#">prev</a>)</span>
+ <input type="radio" style="visibility: hidden;" /><input type="radio" checked />
+ <a href="#" class="mw-changeslist-date">13:38, 28 October 2013</a>
+ <span class='history-user'>
+ <a href="#" class="mw-userlink">Example user</a>
+ <span class="mw-usertoollinks">(<a href="#">Talk</a> | <a href="#">contribs</a> | <a href="#">block</a>)</span>
+ </span>
+ <span class="mw-changeslist-separator">. .</span>
+ <span class="history-size">(1,654 bytes)</span>
+ <span class="mw-plusminus-neg">(-130)</span>
+ <span class="mw-changeslist-separator">. .</span>
+ <span class="comment">(example edit)</span>
+ (<span class="mw-rollback-link"><a href="https://www.mediawiki.org/wiki/Random_ideas_for_rollback_to_be_shelved_and_forgotten_about">rollback 1 edit</a></span> | <span class="mw-history-undo"><a href="#">undo</a></span> | <span class="mw-thanks-thank-link"><a href="#">thank</a></span>)
+ </li>
+ </ul>
+
+ <script type="text/javascript">
+ $( 'ul[lang="en"] .mw-rollback-link a' )
+ .confirmable({ i18n: { confirm: 'Are you sure you want to rollback?' } });
+ $( 'ul[lang="en"] .mw-unwatch-link a' )
+ .confirmable({ handler: function(){ alert('Unwatched!') } });
+ $( 'ul[lang="en"] .mw-thanks-thank-link a' )
+ .confirmable({ handler: function(){ alert('Thanked!') } });
+ </script>
+
+ <h3>RTL (Hebrew)</h3>
+ <!-- All of the Hebrew text below has been basically pulled out of my hat. -->
+
+ <p>Watchlist:</p>
+
+ <ul lang="he" dir="rtl">
+ <li class="mw-line-even mw-changeslist-line-not-watched">
+ (<a href="#">הבדל</a> | <a href="#">היסטוריה</a>)
+ <span class="mw-changeslist-separator">. .</span>
+ <span class="mw-title"><a href="#" class="mw-changeslist-title">דף דוגמה</a></span>; <span class="mw-changeslist-date">13:38</span>
+ <span class="mw-changeslist-separator">. .</span>
+ <span class="mw-plusminus-neg">(-57)</span>
+ <span class="mw-changeslist-separator">. .</span>
+ <a href="#" class="mw-userlink">דוגמא אדם</a>
+ <span class="mw-usertoollinks">(<a href="#">שיחה</a> | <a href="#">תרומות</a> | <a href="#">חסימה</a>)</span>
+ <span class="comment">(עריכה לדוגמה)</span>
+ <span class="mw-rollback-link">[<a href="https://www.mediawiki.org/wiki/Random_ideas_for_rollback_to_be_shelved_and_forgotten_about">שחזור</a>]</span>
+ (<span class="mw-unwatch-link"><a href="#">הפסקת מעקב</a></span>)
+ </li>
+ </ul>
+
+ <p>History:</p>
+
+ <ul lang="he" dir="rtl">
+ <li>
+ <span class="mw-history-histlinks">(נוכחית | <a href="#">קודמת</a>)</span>
+ <input type="radio" style="visibility: hidden;" /><input type="radio" checked />
+ <a href="#" class="mw-changeslist-date">23:41, 12 במאי 2012</a>
+ <span class='history-user'>
+ <a href="#" class="mw-userlink">דוגמא אדם</a>
+ <span class="mw-usertoollinks">(<a href="#">שיחה</a> | <a href="#">תרומות</a> | <a href="#">חסימה</a>)</span>
+ </span>
+ <span class="mw-changeslist-separator">. .</span>
+ <span class="history-size">(1,762 בתים)</span>
+ <span class="mw-plusminus-neg">(-57)</span>
+ <span class="mw-changeslist-separator">. .</span>
+ <span class="comment">(עריכה לדוגמה)</span>
+ (<span class="mw-rollback-link"><a href="https://www.mediawiki.org/wiki/Random_ideas_for_rollback_to_be_shelved_and_forgotten_about">שחזור עריכה אחת</a></span> | <span class="mw-history-undo"><a href="#">ביטול</a></span> | <span class="mw-thanks-thank-link"><a href="#">תודה</a></span>)
+ </li>
+ </ul>
+
+ <script type="text/javascript">
+ var hebrewI18n = {
+ confirm: 'האם ברצונך להמשיך?',
+ yes: 'כן',
+ no: 'לא',
+ }
+
+ $( 'ul[lang="he"] .mw-rollback-link a' )
+ .confirmable({ i18n: $.extend( {}, hebrewI18n, { confirm: 'האם ברצונך לשחזר?' } ) });
+ $( 'ul[lang="he"] .mw-unwatch-link a' )
+ .confirmable({ i18n: hebrewI18n, handler: function(){ alert('Unwatched!') } });
+ $( 'ul[lang="he"] .mw-thanks-thank-link a' )
+ .confirmable({ i18n: hebrewI18n, handler: function(){ alert('Thanked!') } });
+ </script>
+ <style type="text/css">
+ /* This is normally handled by CSSJanus. */
+ ul[dir=rtl] .jquery-confirmable-button {
+ margin-left: 0;
+ margin-right: 1ex;
+ }
+ </style>
+</body>
+</html>
+
'SiteStatsInit' => 'includes/SiteStats.php',
'Skin' => 'includes/Skin.php',
'SkinTemplate' => 'includes/SkinTemplate.php',
+ 'SkinFallback' => 'includes/SkinFallback.php',
+ 'SkinFallbackTemplate' => 'includes/SkinFallback.php',
'SquidPurgeClient' => 'includes/SquidPurgeClient.php',
'SquidPurgeClientPool' => 'includes/SquidPurgeClient.php',
'StatCounter' => 'includes/StatCounter.php',
*
* @since 1.24
*/
-$wgFallbackSkin = 'vector';
+$wgFallbackSkin = 'fallback';
/**
* Specify the names of skins that should not be presented in the list of
*/
$wgSpecialPageGroups = array();
-/**
- * Whether or not to sort special pages in Special:Specialpages
- */
-$wgSortSpecialPages = true;
-
/**
* On Special:Unusedimages, consider images "used", if they are put
* into a category. Default (false) is not to count those as used.
$wgSkipSkins[] = $wgSkipSkin;
}
+// Register a hidden "fallback" skin
+$wgValidSkinNames['fallback'] = 'Fallback'; // SkinFallback
+$wgSkipSkins[] = 'fallback';
+
if ( $wgLocalInterwiki ) {
array_unshift( $wgLocalInterwikis, $wgLocalInterwiki );
}
--- /dev/null
+<?php
+/**
+ * Skin file for the fallback skin.
+ *
+ * The structure is copied from the example skin (mediawiki/skins/Example).
+ *
+ * @since 1.24
+ * @file
+ */
+
+/**
+ * SkinTemplate class for the fallback skin
+ */
+class SkinFallback extends SkinTemplate {
+ var $skinname = 'fallback', $template = 'SkinFallbackTemplate';
+
+ /**
+ * Add CSS via ResourceLoader
+ *
+ * @param $out OutputPage
+ */
+ function setupSkinUserCss( OutputPage $out ) {
+ parent::setupSkinUserCss( $out );
+ $out->addModuleStyles( 'mediawiki.skinning.interface' );
+ }
+}
+
+/**
+ * BaseTemplate class for the fallback skin
+ */
+class SkinFallbackTemplate extends BaseTemplate {
+ /**
+ * @return array
+ */
+ private function findInstalledSkins() {
+ global $wgStyleDirectory;
+
+ // Get all subdirectories which might contains skins
+ $possibleSkins = scandir( $wgStyleDirectory );
+ $possibleSkins = array_filter( $possibleSkins, function ( $maybeDir ) {
+ global $wgStyleDirectory;
+ return $maybeDir !== '.' && $maybeDir !== '..' && is_dir( "$wgStyleDirectory/$maybeDir" );
+ } );
+
+ // Only keep the ones that contain a .php file with the same name inside
+ $possibleSkins = array_filter( $possibleSkins, function ( $skinDir ) {
+ global $wgStyleDirectory;
+ return is_file( "$wgStyleDirectory/$skinDir/$skinDir.php" );
+ } );
+
+ return $possibleSkins;
+ }
+
+ /**
+ * Inform the user why they are seeing this skin.
+ *
+ * @return string
+ */
+ private function buildHelpfulInformationMessage() {
+ global $wgDefaultSkin, $wgValidSkinNames;
+
+ $installedSkins = $this->findInstalledSkins();
+ $enabledSkins = $wgValidSkinNames;
+ $enabledSkins = array_change_key_case( $enabledSkins, CASE_LOWER );
+
+ if ( $installedSkins ) {
+ $skinsInstalledText = array();
+ $skinsInstalledSnippet = array();
+
+ foreach ( $installedSkins as $skin ) {
+ $normalizedKey = strtolower( $skin );
+ $isEnabled = array_key_exists( $normalizedKey, $enabledSkins );
+ if ( $isEnabled ) {
+ $skinsInstalledText[] = $this->getMsg( 'default-skin-not-found-row-enabled' )
+ ->params( $normalizedKey, $skin )->plain();
+ } else {
+ $skinsInstalledText[] = $this->getMsg( 'default-skin-not-found-row-disabled' )
+ ->params( $normalizedKey, $skin )->plain();
+ $skinsInstalledSnippet[] = "require_once \"\$IP/skins/$skin/$skin.php\";";
+ }
+ }
+
+ return $this->getMsg( 'default-skin-not-found' )->params(
+ $wgDefaultSkin,
+ implode( "\n", $skinsInstalledText ),
+ implode( "\n", $skinsInstalledSnippet )
+ )->parseAsBlock();
+ } else {
+ return $this->getMsg( 'default-skin-not-found-no-skins' )->params(
+ $wgDefaultSkin
+ )->parseAsBlock();
+ }
+ }
+
+ /**
+ * Outputs the entire contents of the page. No navigation (other than search box), just the big
+ * warning message and page content.
+ */
+ public function execute() {
+ $this->html( 'headelement' ) ?>
+
+ <div class="warningbox">
+ <?php echo $this->buildHelpfulInformationMessage() ?>
+ </div>
+
+ <form action="<?php $this->text( 'wgScript' ) ?>">
+ <input type="hidden" name="title" value="<?php $this->text( 'searchtitle' ) ?>" />
+ <h3><label for="searchInput"><?php $this->msg( 'search' ) ?></label></h3>
+ <?php echo $this->makeSearchInput( array( "id" => "searchInput" ) ) ?>
+ <?php echo $this->makeSearchButton( 'go' ) ?>
+ </form>
+
+ <div class="mw-body" role="main">
+ <h1 class="firstHeading">
+ <span dir="auto"><?php $this->html( 'title' ) ?></span>
+ </h1>
+
+ <div class="mw-body-content">
+ <?php $this->html( 'bodytext' ) ?>
+ <?php $this->html( 'catlinks' ) ?>
+ </div>
+ </div>
+
+ <?php $this->printTrail() ?>
+ </body></html>
+
+ <?php
+ }
+}
* @file
*/
-define( 'MW_LC_VERSION', 2 );
-
/**
* Class for caching the contents of localisation files, Messages*.php
* and *.i18n.php.
* as grammatical transformation, is done by the caller.
*/
class LocalisationCache {
+ const VERSION = 2;
+
/** Configuration associative array */
private $conf;
# Add cache dependencies for any referenced globals
$deps['wgExtensionMessagesFiles'] = new GlobalDependency( 'wgExtensionMessagesFiles' );
$deps['wgMessagesDirs'] = new GlobalDependency( 'wgMessagesDirs' );
- $deps['version'] = new ConstantDependency( 'MW_LC_VERSION' );
+ $deps['version'] = new ConstantDependency( 'LocalisationCache::VERSION' );
# Add dependencies to the cache entry
$allData['deps'] = $deps;
"Filipinayzd"
]
},
+ "config-title": "Pabutang ka MediaWiki $1",
"config-information": "Impormasyon",
"config-your-language": "A kanimong sarita:",
"config-wiki-language": "Sarita ka Wiki:",
"config-db-host-oracle": "Database ka TNS:",
"config-db-wiki-settings": "Mibdiron adin wiki",
"config-db-name": "Ngaran ka database:",
+ "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
"config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+ "config-charset-mysql4": "MySQL 4.0 backwards-compatible UTF-8",
"config-db-port": "Port ka database:",
"config-db-schema": "Skema para sa MediaWiki:",
"config-sqlite-dir": "Direktoryo ka data sa SQLite:",
"config-oracle-def-ts": "Dating tablescape:",
"config-oracle-temp-ts": "Temporaryong tablescape:",
+ "config-type-mysql": "MySQL (o compatible)",
"config-type-mssql": "Microsoft SQL Server",
"config-header-mysql": "MySQL settings",
"config-header-postgres": "PostgreSQL settings",
"config-header-mssql": "Microsoft SQL Server settings",
"config-mysql-innodb": "InnoDB",
"config-mysql-myisam": "MyISAM",
+ "config-mysql-binary": "Binary",
"config-mysql-utf8": "UTF-8",
+ "config-site-name": "Ngaran ka wiki",
+ "config-site-name-blank": "Ibutang a ngaran ka site.",
+ "config-project-namespace": "Bibutangan ka proyekto:",
+ "config-ns-generic": "Proyekto",
"config-ns-other-default": "MyWiki",
"config-admin-password": "Password:",
"config-admin-password-confirm": "Password ulit:",
"config-admin-email": "Email address:",
"config-profile-wiki": "Bukas na wiki",
"config-profile-private": "Pribadong wiki",
+ "config-license-pd": "Pampublikong Domain",
+ "config-email-sender": "Pabalik na email adres:",
"config-logo": "URL ko logo:",
"config-cc-again": "Pumili dayday...",
"config-install-step-done": "tapus na",
+ "config-install-user-alreadyexists": "Agko na ka user na \"$1\"",
+ "config-install-user-create-failed": "Sala a ginigibong user na \"$1\": $2",
"config-help": "tabang"
}
"authors": [
"Peter Alberti",
"Christian List",
- "Tjernobyl"
+ "Tjernobyl",
+ "Thomsen"
]
},
"config-page-language": "Sprog",
"config-page-name": "Navn",
"config-page-options": "Indstillinger",
"config-page-install": "Installer",
+ "config-page-complete": "Færdig",
+ "config-page-restart": "Genstarte installation",
+ "config-page-readme": "Læs mig",
+ "config-page-copying": "Kopiering",
+ "config-page-upgradedoc": "Opgradering",
+ "config-page-existingwiki": "Eksisterende wiki",
+ "config-help-restart": "Vil du rydde alle gemte data, du har indtastet og genstarte installationen?",
+ "config-restart": "Ja, genstarte den",
+ "config-env-php": "PHP $1 er installeret.",
+ "config-db-type": "Databasetype:",
+ "config-db-host": "Database vært:",
+ "config-db-name": "Databasenavn:",
+ "config-mysql-old": "MySQL $1 eller nyere kræves. Du har $2.",
"config-header-mysql": "MySQL-indstillinger",
"config-header-postgres": "PostgreSQL-indstillinger",
"config-header-sqlite": "SQLite-indstillinger",
* @return bool|ResultWrapper Result or false (for Recentchangeslinked only)
*/
public function doMainQuery( $conds, $opts ) {
- global $wgAllowCategorizedRecentChanges;
-
$dbr = $this->getDB();
$user = $this->getUser();
);
// Build the final data
- if ( $wgAllowCategorizedRecentChanges ) {
+ if ( $this->getConfig()->get( 'AllowCategorizedRecentChanges' ) ) {
$this->filterByCategories( $rows, $opts );
}
* @return array
*/
private function getFeedQuery() {
- global $wgFeedLimit;
$query = array_filter( $this->getOptions()->getAllValues(), function ( $value ) {
// API handles empty parameters in a different way
return $value !== '';
} );
$query['action'] = 'feedrecentchanges';
- if ( $query['limit'] > $wgFeedLimit ) {
- $query['limit'] = $wgFeedLimit;
+ $feedLimit = $this->getConfig()->get( 'FeedLimit' );
+ if ( $query['limit'] > $feedLimit ) {
+ $query['limit'] = $feedLimit;
}
return $query;
* @param FormOptions $opts
*/
public function outputChangesList( $rows, $opts ) {
- global $wgRCShowWatchingUsers, $wgShowUpdatedMarker;
-
$limit = $opts['limit'];
- $showWatcherCount = $wgRCShowWatchingUsers
+ $showWatcherCount = $this->getConfig()->get( 'RCShowWatchingUsers' )
&& $this->getUser()->getOption( 'shownumberswatching' );
$watcherCache = array();
$rc = RecentChange::newFromRow( $obj );
$rc->counter = $counter++;
# Check if the page has been updated since the last visit
- if ( $wgShowUpdatedMarker && !empty( $obj->wl_notificationtimestamp ) ) {
+ if ( $this->getConfig()->get( 'ShowUpdatedMarker' ) && !empty( $obj->wl_notificationtimestamp ) ) {
$rc->notificationtimestamp = ( $obj->rc_timestamp >= $obj->wl_notificationtimestamp );
} else {
$rc->notificationtimestamp = false; // Default
* @param int $numRows Number of rows in the result to show after this header
*/
public function doHeader( $opts, $numRows ) {
- global $wgScript;
-
$this->setTopText( $opts );
$defaults = $opts->getAllValues();
$t = $this->getPageTitle();
$out .= Html::hidden( 'title', $t->getPrefixedText() );
- $form = Xml::tags( 'form', array( 'action' => $wgScript ), $out );
+ $form = Xml::tags( 'form', array( 'action' => wfScript() ), $out );
$panel[] = $form;
$panelString = implode( "\n", $panel );
$extraOpts = array();
$extraOpts['namespace'] = $this->namespaceFilterForm( $opts );
- global $wgAllowCategorizedRecentChanges;
- if ( $wgAllowCategorizedRecentChanges ) {
+ if ( $this->getConfig()->get( 'AllowCategorizedRecentChanges' ) ) {
$extraOpts['category'] = $this->categoryFilterForm( $opts );
}
* @return string
*/
function optionsPanel( $defaults, $nondefaults, $numRows ) {
- global $wgRCLinkLimits, $wgRCLinkDays;
-
$options = $nondefaults + $defaults;
$note = '';
}
# Sort data for display and make sure it's unique after we've added user data.
- $linkLimits = $wgRCLinkLimits;
+ $linkLimits = $this->getConfig()->get( 'RCLinkLimits' );
$linkLimits[] = $options['limit'];
sort( $linkLimits );
$linkLimits = array_unique( $linkLimits );
- $linkDays = $wgRCLinkDays;
+ $linkDays = $this->getConfig()->get( 'RCLinkDays' );
$linkDays[] = $options['days'];
sort( $linkDays );
$linkDays = array_unique( $linkDays );
# No match, generate an edit URL
$title = Title::newFromText( $term );
if ( !is_null( $title ) ) {
- global $wgGoToEdit;
wfRunHooks( 'SpecialSearchNogomatch', array( &$title ) );
wfDebugLog( 'nogomatch', $title->getFullText(), 'private' );
# If the feature is enabled, go straight to the edit page
- if ( $wgGoToEdit ) {
+ if ( $this->getConfig()->get( 'GoToEdit' ) ) {
$this->getOutput()->redirect( $title->getFullURL( array( 'action' => 'edit' ) ) );
return;
* @param string $term
*/
public function showResults( $term ) {
- global $wgDisableTextSearch, $wgSearchForwardUrl, $wgContLang, $wgScript;
+ global $wgContLang;
$profile = new ProfileSection( __METHOD__ );
$search = $this->getSearchEngine();
$out = $this->getOutput();
- if ( $wgDisableTextSearch ) {
- if ( $wgSearchForwardUrl ) {
- $url = str_replace( '$1', urlencode( $term ), $wgSearchForwardUrl );
+ if ( $this->getConfig()->get( 'DisableTextSearch' ) ) {
+ $searchFowardUrl = $this->getConfig()->get( 'SearchForwardUrl' );
+ if ( $searchFowardUrl ) {
+ $url = str_replace( '$1', urlencode( $term ), $searchFowardUrl );
$out->redirect( $url );
} else {
$out->addHTML(
array(
'id' => ( $this->profile === 'advanced' ? 'powersearch' : 'search' ),
'method' => 'get',
- 'action' => $wgScript
+ 'action' => wfScript(),
)
)
);
}
private function getPageGroups() {
- global $wgSortSpecialPages;
-
$pages = SpecialPageFactory::getUsablePages( $this->getUser() );
if ( !count( $pages ) ) {
}
/** Sort */
- if ( $wgSortSpecialPages ) {
- foreach ( $groups as $group => $sortedPages ) {
- ksort( $groups[$group] );
- }
+ foreach ( $groups as $group => $sortedPages ) {
+ ksort( $groups[$group] );
}
/** Always move "other" to end */
}
public function checkExecutePermissions( User $user ) {
- global $wgReadOnlyFile;
-
parent::checkExecutePermissions( $user );
# If the lock file isn't writable, we can do sweet bugger all
- if ( !file_exists( $wgReadOnlyFile ) ) {
+ if ( !file_exists( $this->getConfig()->get( 'ReadOnlyFile' ) ) ) {
throw new ErrorPageError( 'lockdb', 'databasenotlocked' );
}
}
}
public function onSubmit( array $data ) {
- global $wgReadOnlyFile;
-
if ( !$data['Confirm'] ) {
return Status::newFatal( 'locknoconfirm' );
}
+ $readOnlyFile = $this->getConfig()->get( 'ReadOnlyFile' );
wfSuppressWarnings();
- $res = unlink( $wgReadOnlyFile );
+ $res = unlink( $readOnlyFile );
wfRestoreWarnings();
if ( $res ) {
return Status::newGood();
} else {
- return Status::newFatal( 'filedeleteerror', $wgReadOnlyFile );
+ return Status::newFatal( 'filedeleteerror', $readOnlyFile );
}
}
}
function getQueryInfo() {
- global $wgCountCategorizedImagesAsUsed;
$retval = array(
'tables' => array( 'image', 'imagelinks' ),
'fields' => array(
'join_conds' => array( 'imagelinks' => array( 'LEFT JOIN', 'il_to = img_name' ) )
);
- if ( $wgCountCategorizedImagesAsUsed ) {
+ if ( $this->getConfig()->get( 'CountCategorizedImagesAsUsed' ) ) {
// Order is significant
$retval['tables'] = array( 'image', 'page', 'categorylinks',
'imagelinks' );
* @return bool Success
*/
private function outputThumbFromStash( $file, $params ) {
- // this global, if it exists, points to a "scaler", as you might find in
+ $flags = 0;
+ // this config option, if it exists, points to a "scaler", as you might find in
// the Wikimedia Foundation cluster. See outputRemoteScaledThumb(). This
// is part of our horrible NFS-based system, we create a file on a mount
// point here, but fetch the scaled file from somewhere else that
// happens to share it over NFS.
- global $wgUploadStashScalerBaseUrl;
-
- $flags = 0;
- if ( $wgUploadStashScalerBaseUrl ) {
+ if ( $this->getConfig()->get( 'UploadStashScalerBaseUrl' ) ) {
$this->outputRemoteScaledThumb( $file, $params, $flags );
} else {
$this->outputLocallyScaledThumb( $file, $params, $flags );
* @return bool Success
*/
private function outputRemoteScaledThumb( $file, $params, $flags ) {
- // This global probably looks something like
+ // This option probably looks something like
// 'http://upload.wikimedia.org/wikipedia/test/thumb/temp'. Do not use
// trailing slash.
- global $wgUploadStashScalerBaseUrl;
- $scalerBaseUrl = $wgUploadStashScalerBaseUrl;
+ $scalerBaseUrl = $this->getConfig()->get( 'UploadStashScalerBaseUrl' );
if ( preg_match( '/^\/\//', $scalerBaseUrl ) ) {
// this is apparently a protocol-relative URL, which makes no sense in this context,
"logentry-rights-rights": "$1 {{GENDER:$1|зьмяніў|зьмяніла}} прыналежнасьць $3 да групы з $4 на $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$1|зьмяніў|зьмяніла}} прыналежнасьць $3 да групаў",
"logentry-rights-autopromote": "$1 {{GENDER:$1|быў аўтаматычна пераведзены|была аўтаматычна пераведзеная}} з групы $4 ў $5",
+ "logentry-upload-upload": "$1 {{GENDER:$2|загрузіў|загрузіла}} $3",
+ "logentry-upload-overwrite": "$1 {{GENDER:$2|загрузіў|загрузіла}} новую вэрсію $3",
"rightsnone": "(няма)",
"feedback-bugornote": "Калі Вы гатовы падрабязна апісаць тэхнічную праблему, калі ласка [$1 паведаміце пра памылку]. \nУ адваротным выпадку, Вы можаце выкарыстоўваць простую форму пададзеную ніжэй. Ваш камэнтар будзе дададзены на старонку «[$3 $2]», разам з Вашым іменем удзельніка і выкарыстоўваемым браўзэрам.",
"feedback-subject": "Тэма:",
"changeemail-password": "Хьан пароль «{{SITENAME}}» проектан:",
"changeemail-submit": "Хийца email",
"changeemail-cancel": "Цаоьшу",
+ "changeemail-throttled": "Хьо дукха гӀиртира.\nДехар до, собар де $1 юха гӀортале.",
"resettokens": "Токенаш кхоссар",
"resettokens-text": "Хьан йиш ю токенаш кхосса, цара йиш хуьлуьйту цхьаболу долара хаамашна тӀекхача, уьш ю хьан дӀаяздар ца вовшахтесна. \n\nХьона иза оьшу, ахьа хьай токенаш цхьам гучу яьхна елахь я хьан аккаунт йохийна елахь.",
"resettokens-no-tokens": "Кхосса токенаш яц.",
"blankarticle": "<strong>ДӀахьедар:</strong> Ахьа кхуллуш йолу агӀо еса ю.\nЮху кнопка «{{int:savearticle}}» тӀетаӀаяхь, агӀо цхьа чулацам боцуш кхуллур ю.",
"anoneditwarning": "'''Тергам бе''': Ахьа хьай цӀарца тадарш деш дац. Хьан IP-адрес дӀаяздина хира ду хӀокху агӀон истори чу.",
"anonpreviewwarning": "''Системин чу цагӀахь хьан IP-адрес агӀона истори чу дӀаяз лур ду.''",
+ "missingsummary": "'''Дагадаийтар.''' Ахьа хийцамаш лаьцна доца яздина дац. Кнопка «{{int:savearticle}}» юху тӀетаӀича хийцамах лаьцна хӀума доцуш Ӏалашбира бу.",
"missingcommenttext": "Дехар до дӀаязбе хайн хаам лахахь.",
+ "missingcommentheader": "'''Дагадаийтар.''' Ахьа хӀокху къамелан дӀахьедар/корта билгал бина бац. Кнопка «{{int:savearticle}}» юху тӀетаӀича хийцамах лаьцна хӀума доцуш Ӏалашбира бу.",
"summary-preview": "Цуьнах лаьцна хирду:",
"subject-preview": "Коьрта могӀа хира бу:",
"blockedtitle": "Декъашхочун блоктоьхана",
"logentry-rights-rights": "$1 {{GENDER:$2|хийцина}} $3 бакъо $4 → $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|хийцина}} хӏокхуна $3 бакъо",
"logentry-rights-autopromote": "$1 {{GENDER:$2|вара|яра}} автоматически {{GENDER:$2|сихьа ваьлла|сихьа яьлла}} $4 $5 чу",
+ "logentry-upload-revert": "$1 {{GENDER:$2|чуяьккхина}} $3",
"rightsnone": "(яц)",
"feedback-bugornote": "Хьайн техникин халонах лаьцна яздан хӀума делахь, дехар до, [$1 хаам бе тхоьга].\nДацахь хьан йиш ю хӀокху атта кепаца «[$3 $2]» агӀонг къамел тӀетоха хьан декъашхочун цӀарца, кхин лелош йолу браузер билгал еш.",
"feedback-subject": "Къамел:",
"Søren Løvborg",
"Tjernobyl",
"Urhixidur",
- "아라"
+ "아라",
+ "Thomsen"
]
},
"tog-underline": "Understreg henvisninger:",
"uploadwarning": "Advarsel",
"uploadwarning-text": "Vær venlig at ændre filbeskrivelsen nedenfor og prøv igen.",
"savefile": "Gem fil",
- "uploadedimage": "lagde \"[[$1]]\" op",
- "overwroteimage": "lagde en ny version af \"[[$1]]\" op",
"uploaddisabled": "Desværre er funktionen til at lægge filer op afbrudt på denne server.",
"copyuploaddisabled": "Upload via URL er slået fra.",
"uploaddisabledtext": "Oplægning af filer er deaktiveret.",
"watchlist-details": "Du har $1 {{PLURAL:$1|side|sider}} på din overvågningsliste (ekskl. diskussionssider).",
"wlheader-enotif": "E-mail-underretning er slået til.",
"wlheader-showupdated": "Sider, der er ændret siden dit sidste besøg, er vist med '''fed skrift'''.",
- "wlnote2": "Nedenfor ses ændringerne i {{PLURAL:$1|den sidste time|de sidste <strong>$1</strong> timer}} op til den $2 kl. $3.",
+ "wlnote": "Nedenfor ses {{PLURAL:$1|den seneste ændring|de seneste '''$1''' ændringer}} i {{PLURAL:$2|den sidste time|de sidste '''$2''' timer}} op til den $3 kl. $4.",
"wlshowlast": "Vis de seneste $1 timer $2 dage $3",
"watchlist-options": "Indstillinger for overvågningslisten",
"watching": "Tilføjer overvågning …",
"logentry-rights-rights": "$1 {{GENDER:$2|änderte}} die Gruppenzugehörigkeit für $3 von $4 zu $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|änderte}} die Gruppenzugehörigkeit für $3",
"logentry-rights-autopromote": "$1 wurde automatisch von $4 zu $5 {{GENDER:$2|zugeordnet}}",
+ "logentry-upload-upload": "$1 {{GENDER:$2|lud}} $3 hoch",
+ "logentry-upload-overwrite": "$1 {{GENDER:$2|lud}} eine neue Version von $3 hoch",
+ "logentry-upload-revert": "$1 {{GENDER:$2|lud}} $3 hoch",
"rightsnone": "(–)",
"feedback-bugornote": "Sofern du detailliert ein technisches Problem beschreiben möchtest, melde bitte [$1 einen Fehler].\nAnderenfalls kannst du auch das untenstehende einfache Formular nutzen. Dein Kommentar wird, zusammen mit deinem Benutzernamen und der Version des von dir verwendeten Webbrowsers sowie Betriebssystems, auf der Seite „[$3 $2]“ hinzugefügt.",
"feedback-subject": "Betreff:",
"tog-watchdefault": "Zûnta al pàgini e i file mudifichê int i tgnû 'd ôc specêl.",
"tog-watchmoves": "Zûnta al pàgini e i file spustê int i tgnû 'd ôc specêl.",
"tog-watchdeletion": "Zûnta al pàgini e i file scanşlê int i tgnû 'd ôc specêl.",
+ "tog-watchrollback": "Zûta al pàgini in dóv' ó fât al ritōren a la pàgina 'd préma a i tgnû 'd ôc specêl",
"tog-minordefault": "Sògna ògni mudéfica cme céca (sōl cme pre-stabilî)",
"tog-previewontop": "Fà vèder còl ch' ò fât sōver la caşèla ed mudéfica e mìa sòta.",
"tog-previewonfirst": "Fà vèder còl ch' ò fât almēno 'na vôlta préma 'd salvêr",
"preview": "Guêrda préma",
"showpreview": "Guêrda préma 'd salvêr",
"showdiff": "Guêrda i cambiamèint",
+ "blankarticle": "<strong>Atèinti:</strong>la pàgina che t'é drē fêr la gh'à gnînto dèinter. S' ét tōren a schisêr in sém a \"{{int:savearticle}}\", la pàgina la srà fât sèinsa gnînto dèinter.",
"anoneditwarning": "'''Atensiòun:''' Ingrès mìa fât. Al tó indirés IP al srà sgnê int la stòria ed cla pàgina chè.",
"anonpreviewwarning": "\"An n'é mìa stê fât l'ingrès. Mèinter es sêlva la pàgina, l'indirés IP al srà sgnê int la stòria 'd la pàgina.\"",
"missingsummary": "'''Atensiòun:''' an n'é mìa stê precişê al mutîv de sté mudéfica. S'es tōrna a clichêr insém a \"{{int:savearticle}}\" la mudéfica la gnirà salvêda cun al mutîv vōd.",
"rev-deleted-event": "(asiòun dal log armôsa)",
"rev-deleted-user-contribs": "(nòm utèint o indirés IP armôs - mudéfica lughêda da la stòria)",
"rev-deleted-text-permission": "Cla versiòun ché 'd la pàgina l'é stêda <strong> scanşlêda </strong>. \nConsultêr al [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} log dal canşladûri] per nōv particulêr.",
+ "rev-suppressed-text-permission": "Cla versiòun ché 'd la pàgina l'é stêda <strong> scanşlêda </strong>. Consultêr al [{{fullurl:{{#Special:Log}}/ suppress |page={{ FULLPAGENAMEE }}}} log dal canşladûri] per nōv particulêr.",
"rev-deleted-text-unhide": "Cla versiòun ché 'd la pàgina l'é stêda <strong> scanşlêda </strong>. Consultêr al [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} log dal canşladûri] per nōv particulêr.\nS' l' é necesâri a j aministradōr a gh'é incòra permés [$1 ed guardêr cla versiòun ché].",
"rev-suppressed-text-unhide": "Cla versiòun ché 'd la pàgina l'é stêda <strong> scanşlêda </strong>. Consultêr al [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} log dal canşladûri] per nōv particulêr.\nS' l' é necesâri a j aministradōr a gh'é incòra permés [$1 ed guardêr cla versiòun ché].",
"rev-deleted-text-view": "Cla versiòun ché 'd la pàgina l'é stêda <strong> scanşlêda </strong>. J aministradōr a pōlen incòra guardêrla; \nconsultêr al [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} log dal canşladûri] per nōv particulêr.",
"powersearch-togglenone": "Nisûn",
"powersearch-remember": "Arcôrda la siēlta per êtri sèirchi ch'é vō fêr",
"search-external": "Sèirca fâta fōra",
+ "searchdisabled": "La sèirca intêrna ed {{SITENAME}} l'a funsiòuna mìa; int al mèinter a s' pōl pruvêr a druvêr un mutōr ed sèirca d'ed fōra cme Google. (A gh' è da nutêr però che còl che gh'é dèinter in {{SITENAME}} che es câten in chi mutōr a prém èser mìa arnuvê.)",
+ "search-error": "É sucès un erōr mèinter a's fêva la sèirca:$1",
"preferences": "Preferèinsa",
"mypreferences": "Preferèinsi",
"prefs-edits": "Mudéfichi fâti:",
+ "prefsnologintext2": "Es prèiga ed $1 per impustêr al preferèinsi 'd l'utèint.",
"prefs-skin": "Aspèt grâfich (skin)",
"skin-preview": "Guêrda préma",
"datedefault": "Nisóna preferèinsa",
+ "prefs-labs": "Funsiòun adâti in sperimèint",
+ "prefs-user-pages": "Pàgini utèint",
+ "prefs-personal": "Prufîl utèint",
+ "prefs-rc": "Ûltmi mudéfichi",
+ "prefs-watchlist": "Tgnîr sòt ôc",
+ "prefs-watchlist-days": "Nómer ed dé da fêr vèder int i tgnû 'd ôc specêl:",
+ "prefs-watchlist-days-max": "Mâsim $1 {{PLURAL:$1|dé}}",
"saveprefs": "Sêlva",
"prefs-editing": "Caşèla 'd mudéfica",
"rows": "Rîghi",
"hidetoc": "hide",
"collapsible-collapse": "Collapse",
"collapsible-expand": "Expand",
+ "confirmable-confirm": "Are {{GENDER:$1|you}} sure?",
+ "confirmable-yes": "Yes",
+ "confirmable-no": "No",
"thisisdeleted": "View or restore $1?",
"viewdeleted": "View $1?",
"restorelink": "{{PLURAL:$1|one deleted edit|$1 deleted edits}}",
"action-pagelang": "change the page language",
"log-name-pagelang": "Change language log",
"log-description-pagelang": "This is a log of changes in page languages.",
- "logentry-pagelang-pagelang": "$1 {{GENDER:$2|changed}} page language for $3 from $4 to $5."
+ "logentry-pagelang-pagelang": "$1 {{GENDER:$2|changed}} page language for $3 from $4 to $5.",
+ "default-skin-not-found": "Whoops! The default skin for your wiki (<code>$wgDefaultSkin</code>), <code>$1</code>, is not available.\n\nYour installation seems to include the following skins. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable them and choose the default.\n\n$2\n\n; If you have just installed MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected.\n:* Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory].\n:* Download the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n: Doing this should not interfere with your git repository if you're a MediaWiki developer.\n\n; If you have just upgraded MediaWiki:\n: MediaWiki 1.24 and newer no longer automatically enables installed skins (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). You can paste the following lines into <code>LocalSettings.php</code> to enable all currently installed skins:\n\n<pre>$3</pre>\n\n; If you have just modified <code>LocalSettings.php</code>:\n: Double-check the skin names for typos.",
+ "default-skin-not-found-no-skins": "Whoops! The default skin for your wiki (<code>$wgDefaultSkin</code>), <code>$1</code>, is not available.\n\nYou have no installed skins.\n\n; If you have just installed MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected.\n:* Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory].\n:* Download the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n: Doing this should not interfere with your git repository if you're a MediaWiki developer. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable skins and choose the default.\n",
+ "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (enabled)",
+ "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''disabled''')"
}
"hidetoc": "ocultar",
"collapsible-collapse": "Contraer",
"collapsible-expand": "Expandir",
+ "confirmable-confirm": "¿Estás {{GENDER:$1|seguro|segura}}?",
+ "confirmable-yes": "Sí",
+ "confirmable-no": "No",
"thisisdeleted": "¿Ver o restaurar $1?",
"viewdeleted": "¿Quieres ver $1?",
"restorelink": "{{PLURAL:$1|una edición borrada|$1 ediciones borradas}}",
"blocklist-userblocks": "Ocultar bloqueos de cuenta",
"blocklist-tempblocks": "Ocultar bloqueos temporales",
"blocklist-addressblocks": "Ocultar bloqueos de una sola dirección IP",
- "blocklist-rangeblocks": "Ocultar bloqueos de rango",
+ "blocklist-rangeblocks": "Ocultar bloqueos por intervalo",
"blocklist-timestamp": "Fecha y hora",
"blocklist-target": "Destino",
"blocklist-expiry": "Caduca",
"logentry-rights-rights": "$1 modificó los grupos a los que pertenece $3: de $4 a $5",
"logentry-rights-rights-legacy": "$1 modificó los grupos a los que pertenece $3",
"logentry-rights-autopromote": "$1 ha sido {{GENDER:$2|promocionado|promocionada}} automáticamente de $4 a $5",
+ "logentry-upload-upload": "$1 {{GENDER:$2|subió}} $3",
+ "logentry-upload-overwrite": "$1 {{GENDER:$2|subió}} una nueva versión de $3",
+ "logentry-upload-revert": "$1 {{GENDER:$2|subió}} $3",
"rightsnone": "(ninguno)",
"feedback-bugornote": "Si estás preparado para describir en detalle un problema técnico, [$1 informa de un bug] por favor.\n\nEn otro caso, puedes usar el siguiente formulario. Tu comentario será añadido a la página [$3 $2], junto con tu nombre de usuario y el navegador que usas.",
"feedback-subject": "Asunto:",
"tog-watchdefault": "صفحهها و پروندههایی که ویرایش میکنم به فهرست پیگیریهایم افزوده شود",
"tog-watchmoves": "صفحهها و پروندههایی که منتقل میکنم به فهرست پیگیریهایم افزوده شود",
"tog-watchdeletion": "صفحهها و پروندههایی که حذف میکنم به فهرست پیگیریهایم افزوده شود",
+ "tog-watchrollback": "افزودن صفحاتی که واگردانی کردم برای فهرست پیگیریهایم",
"tog-minordefault": "همهٔ ویرایشها به طور پیشفرض به عنوان «جزئی» علامت بخورد",
"tog-previewontop": "پیشنمایش قبل از جعبهٔ ویرایش نمایش یابد",
"tog-previewonfirst": "پیشنمایش هنگام اولین ویرایش نمایش یابد",
"uploadwarning": "هشدار بارگذاری",
"uploadwarning-text": "لطفاً توضیحات پرونده را در زیر تغییر دهید و دوباره تلاش کنید.",
"savefile": "ذخیرهٔ پرونده",
- "uploadedimage": "«[[$1]]» را بارگذاری کرد",
- "overwroteimage": "نسخه جدیدی از «[[$1]]» را بارگذاری کرد",
"uploaddisabled": "بارگذاری غیرفعال است.",
"copyuploaddisabled": "بارگذاری از طریق نشانی اینترنتی غیرفعال است.",
"uploaddisabledtext": "امکان بارگذاری پرونده غیرفعال است.",
"nolicense": "هیچ کدام انتخاب نشدهاست",
"licenses-edit": "گزینههای مجوز ویرایش",
"license-nopreview": "(پیشنمایش وجود ندارد)",
- "upload_source_url": "(یک نشانی اینترنتی معتبر و قابل دسترسی برای عموم)",
- "upload_source_file": "(پرÙ\88Ù\86دÙ\87â\80\8cاÛ\8c در راÛ\8cاÙ\86Ù\87Ù\94 Ø´Ù\85ا)",
+ "upload_source_url": "(شما یک پرونده انتخاب از یک URL معتبر و دسترس عموم انتخاب کردید)",
+ "upload_source_file": "(پرÙ\88Ù\86دÙ\87â\80\8cاÛ\8c از راÛ\8cاÙ\86Ù\87Ù\94 Ø´Ù\85ا اÙ\86تخاب شدÙ\87â\80\8cاست)",
"listfiles-delete": "حذف",
"listfiles-summary": "این صفحهٔ ویژه تمام پروندههای بارگذاریشده را نمایش میدهد.",
"listfiles_search_for": "جستجو به دنبال نام پرونده چندرسانهای:",
"watchlist-details": "بدون احتساب صفحههای جداگانهٔ بحث، {{PLURAL:$1|$1 صفحه|$1 صفحه}} در فهرست پیگیریهای شما قرار {{PLURAL:$1|دارد|دارند}}.",
"wlheader-enotif": "آگاهسازی رایانامهای فعال است.",
"wlheader-showupdated": "صفحههایی که پس از آخرین بازدید شما تغییر کردهاند '''پررنگ''' نمایش داده شدهاند.",
- "wlnote": "در زیر {{PLURAL:$1|تغییری|$1 تغییری}} که در {{PLURAL:$2|ساعت|$2 ساعت}} گذشته انجام شده موجود است، تاریخ آخرین بازیابی: $3، $4",
+ "wlnote": "در زیر {{PLURAL:$1|تغییری|<strong>$1</strong> تغییری}} که در {{PLURAL:$2|ساعت|<strong>$2</strong> ساعت}} گذشته انجام شده موجود است، تاریخ آخرین بازیابی: $3، $4",
"wlshowlast": "نمایش آخرین $1 ساعت $2 روز $3",
"watchlist-options": "گزینههای پیگیری",
"watching": "پیگیری...",
"logentry-rights-rights": "$1 عضویت $3 را از گروه $4 به $5 {{GENDER:$2|تغییر داد}}",
"logentry-rights-rights-legacy": "$1 گروه عضویت $3 را {{GENDER:$2|تغییر داد}}",
"logentry-rights-autopromote": "$1 به طور خودکار از $4 به $5 {{GENDER:$2|ارتقاء داد}}",
+ "logentry-upload-upload": "$1 {{GENDER:$2|بارگذاری کرد}} $3",
+ "logentry-upload-overwrite": "$1 یک نسخهٔ جدید {{GENDER:$2|بارگذاریکرد}} $3",
+ "logentry-upload-revert": "$1 {{GENDER:$2|بارگذاری کرد}} $3",
"rightsnone": "(هیچ)",
"feedback-bugornote": "اگر آمادهاید تا مشکلی فنی را با جزئیاتش شرح دهید لطفاً [$1 یک ایراد گزارش دهید]. در غیر این صورت میتوانید از فرم سادهٔ زیر استفاده کنید. نظر شما به همراه نام کاربری و مرورگرتان به صفحهٔ «[$3 $2]» افزوده خواهد شد.",
"feedback-subject": "موضوع:",
"underline-never": "Ei koskaan",
"underline-default": "Ulkoasun tai selaimen oletustapa",
"editfont-style": "Muokkauskentän kirjasintyyppi",
- "editfont-default": "Selaimen oletus",
+ "editfont-default": "Selaimen vakioasetus",
"editfont-monospace": "Tasalevyinen kirjasin",
"editfont-sansserif": "Sans-serif-kirjasin",
"editfont-serif": "Serif-kirjasin",
"mergehistory-from": "Lähdesivu:",
"mergehistory-into": "Kohdesivu:",
"mergehistory-list": "Sivuhistoria, joka voidaan yhdistää",
- "mergehistory-merge": "Seuraavat versiot sivusta [[:$1]] muutokset voidaan yhdistää sivuun [[:$2]]. \n\nVoit valita, mitä versioita yhdistetään. Pallomerkillä valitaan vain ne versiot, jotka on luotu määriteltynä ajankohtana tai sitä ennen.\nOta huomioon, että jos käytät navigaatiolinkkejä, tekemäsi valinta poistuu.",
+ "mergehistory-merge": "Seuraavat versiot sivusta [[:$1]] voidaan yhdistää sivuun [[:$2]]. \n\nValintamerkin sijoituksella voit yhdistää vain ne versiot, jotka on luotu valittuna ajankohtana tai sitä ennen (listassa alaspäin). \nOta huomioon, että jos käytät navigaatiolinkkejä, tekemäsi valinta poistuu.",
"mergehistory-go": "Etsi muokkaukset, jotka voidaan yhdistää",
"mergehistory-submit": "Yhdistä versiot",
- "mergehistory-empty": "Ei liitettäviä muutoksia.",
+ "mergehistory-empty": "Mitään versioita ei voida yhdistää.",
"mergehistory-success": "$3 {{PLURAL:$3|versio|versiota}} sivusta [[:$1]] yhdistettiin onnistuneesti sivuun [[:$2]].",
- "mergehistory-fail": "Muutoshistorian liittäminen epäonnistui. Tarkista määritellyt sivut ja versiot.",
+ "mergehistory-fail": "Sivuhistorioiden yhdistämistä ei voida suorittaa. Tarkista lähde- ja kohdesivujen nimet sekä versioiden aikamääritys.",
"mergehistory-fail-toobig": "Sivuhistorian yhdistämistä ei voi tehdä, koska enemmän kuin sallittu määrä $1 {{PLURAL:$1|versio|versiota}} siirrettäisiin.",
"mergehistory-no-source": "Lähdesivua $1 ei ole olemassa.",
"mergehistory-no-destination": "Kohdesivua $1 ei ole olemassa.",
- "mergehistory-invalid-source": "Lähdesivulla pitää olla kelvollinen nimi.",
- "mergehistory-invalid-destination": "Kohdesivulla pitää olla kelvollinen nimi.",
- "mergehistory-autocomment": "Yhdisti sivun [[:$1]] sivuun [[:$2]]",
+ "mergehistory-invalid-source": "Lähdesivun nimen pitää olla kelvollinen.",
+ "mergehistory-invalid-destination": "Kohdesivun nimen pitää olla kelvollinen.",
+ "mergehistory-autocomment": "Ak: Yhdisti sivun [[:$1]] sivuun [[:$2]]",
"mergehistory-comment": "Yhdisti sivun [[:$1]] sivuun [[:$2]]: $3",
"mergehistory-same-destination": "Lähde- ja kohdesivut eivät voi olla samat",
"mergehistory-reason": "Syy:",
"group-bot": "botit",
"group-sysop": "ylläpitäjät",
"group-bureaucrat": "byrokraatit",
- "group-suppress": "häivytysoikeuden käyttäjät",
+ "group-suppress": "häivyttäjät",
"group-all": "(kaikki)",
"group-user-member": "{{GENDER:$1|käyttäjä}}",
"group-autoconfirmed-member": "{{GENDER:$1|automaattisesti hyväksytty käyttäjä}}",
"group-bot-member": "{{GENDER:$1|botti}}",
"group-sysop-member": "{{GENDER:$1|ylläpitäjä}}",
"group-bureaucrat-member": "{{GENDER:$1|byrokraatti}}",
- "group-suppress-member": "{{GENDER:$1|häivytysoikeuden käyttäjä}}",
+ "group-suppress-member": "{{GENDER:$1|häivyttäjä}}",
"grouppage-user": "{{ns:project}}:Käyttäjät",
"grouppage-autoconfirmed": "{{ns:project}}:Automaattisesti hyväksytyt käyttäjät",
"grouppage-bot": "{{ns:project}}:Botit",
"upload_source_file": "(valitsemasi tiedosto omasta tietokoneestasi)",
"listfiles-delete": "poista",
"listfiles-summary": "Tämä toimintosivu näyttää kaikki tallennetut tiedostot.",
- "listfiles_search_for": "Nimihaku",
+ "listfiles_search_for": "Etsi tiedoston nimellä:",
"imgfile": "tiedosto",
"listfiles": "Tiedostoluettelo",
"listfiles_thumb": "Pienoiskuva",
"filerevert-success": "'''[[Media:$1|$1]]''' on palautettu takaisin [$4 versioon, joka luotiin $2 kello $3].",
"filerevert-badversion": "Tiedostosta ei ole luotu versiota kyseisellä ajan hetkellä.",
"filedelete": "Poistetaan tiedosto $1",
- "filedelete-legend": "Tiedoston poisto",
- "filedelete-intro": "Olet poistamassa tiedoston '''[[Media:$1|$1]]''' ja kaiken sen historian.",
+ "filedelete-legend": "Poista tiedosto",
+ "filedelete-intro": "Olet poistamassa tiedoston '''[[Media:$1|$1]]''' ja lisäksi koko sen muokkaushistorian.",
"filedelete-intro-old": "<span class=\"plainlinks\">Olet poistamassa tiedoston '''[[Media:$1|$1]]''' [$4 päivämäärällä $2 kello $3 luotua versiota].</span>",
"filedelete-comment": "Syy:",
"filedelete-submit": "Poista",
"movetalk": "Siirrä myös keskustelusivu",
"move-subpages": "Siirrä kaikki alasivut (enintään $1)",
"move-talk-subpages": "Siirrä kaikki keskustelusivun alasivut (enintään $1)",
- "movepage-page-exists": "Sivu $1 on jo olemassa ja sitä ei voi automaattisesti korvata.",
+ "movepage-page-exists": "Sivu $1 on jo olemassa ja sen päälle ei voida automaattisesti siirtää.",
"movepage-page-moved": "Sivu $1 on siirretty nimelle $2.",
"movepage-page-unmoved": "Sivua $1 ei voitu siirtää nimelle $2.",
"movepage-max-pages": "Enimmäismäärä sivuja on siirretty, eikä enempää siirretä enää automaattisesti.\n$1 {{PLURAL:$1|sivu|sivua}} siirrettiin.",
"export-pagelinks": "Sisällytä linkkien kohteina olevat sivut syvyydelle:",
"allmessages": "Järjestelmäviestit",
"allmessagesname": "Nimi",
- "allmessagesdefault": "Oletusarvo",
- "allmessagescurrent": "Nykyinen arvo",
+ "allmessagesdefault": "Viestin tekstin perusmuoto",
+ "allmessagescurrent": "Viestin teksti tällä hetkellä",
"allmessagestext": "Tämä on luettelo järjestelmäviesteistä, jotka ovat saatavilla MediaWiki-nimiavaruudessa.\nJos haluat muokata MediaWikin yleistä kotoistusta, käy [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWikin kotoistussivuilla] ja sivustolla [//translatewiki.net translatewiki.net].",
"allmessagesnotsupportedDB": "Tämä sivu ei ole käytössä, koska <tt>$wgUseDatabaseMessages</tt>-asetus on pois päältä.",
"allmessages-filter-legend": "Suodata",
"logentry-newusers-autocreate": "Käyttäjätunnus $1 {{GENDER:$2|luotiin}} automaattisesti",
"logentry-rights-rights": "$1 {{GENDER:$2|muutti}} käyttäjän $3 oikeudet ryhmistä $4 ryhmiin $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|muutti}} käyttäjän $3 jäsenyyttä ryhmässä",
- "logentry-rights-autopromote": "$1 {{GENDER:$2|muutettiin}} automaattisesti ryhmistä $4 ryhmiin $5",
+ "logentry-rights-autopromote": "Käyttäjän $1 oikeudet {{GENDER:$2|muuttuivat}} automaattisesti ryhmistä $4 ryhmiin $5",
+ "logentry-upload-upload": "$1 {{GENDER:$2|tallensi}} tiedoston $3",
+ "logentry-upload-overwrite": "$1 {{GENDER:$2|tallensi}} uuden version tiedostosta $3",
+ "logentry-upload-revert": "$1 {{GENDER:$2|tallensi}} tiedoston $3",
"rightsnone": "(ei oikeuksia)",
"feedback-bugornote": "Jos voit kuvailla teknisen ongelman tarkasti – [$1 ilmoita ohjelmointivirheestä].\nMuussa tapauksessa voit käyttää alla olevaa helpompaa lomaketta. Kommenttisi lisätään sivulle [$3 $2], ja siinä on mukana käyttäjätunnuksesi.",
"feedback-subject": "Otsikko",
"api-error-illegal-filename": "Tiedoston nimi ei kelpaa.",
"api-error-internal-error": "Sisäinen virhe: jotain meni vikaan tallennuksesi käsittelyssä.",
"api-error-invalid-file-key": "Sisäinen virhe: tiedostoa ei löytynyt välikaisvarastosta.",
- "api-error-missingparam": "Sisäinen virhe: pyynnöstä puutuu parametrejä.",
+ "api-error-missingparam": "Sisäinen virhe: pyynnöstä puutuu parametreja.",
"api-error-missingresult": "Sisäinen virhe: ei voitu varmistaa, että tallennus onnistui.",
"api-error-mustbeloggedin": "Sinun pitää olla kirjautunut sisään, jotta voisit tallentaa tiedostoja.",
"api-error-mustbeposted": "Sisäinen virhe: HTTP POST-pyyntö edellytetty.",
"logentry-rights-rights": "$1 {{GENDER:$2|a modifié}} l'appartenance au groupe pour $3 de $4 à $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|a modifié}} l'appartenance au groupe pour $3",
"logentry-rights-autopromote": "$1 {{GENDER:$2|a été promu}} automatiquement de $4 à $5",
+ "logentry-upload-upload": "$1 {{GENDER:$2|a téléchargé}} $3",
+ "logentry-upload-overwrite": "$1 {{GENDER:$2|a téléchargé}} une nouvelle version de $3",
+ "logentry-upload-revert": "$1 {{GENDER:$2|a téléchargé}} $3",
"rightsnone": "(aucun)",
"feedback-bugornote": "Si vous êtes prêt à décrire un problème technique en détail, veuillez [$1 signaler un bogue].\nSinon, vous pouvez utiliser le formulaire simplifié ci-dessous. Votre commentaire sera ajouté à la page « [$3 $2] », avec votre nom d'utilisateur.",
"feedback-subject": "Objet :",
"hidetoc": "הסתרה",
"collapsible-collapse": "הסתרה",
"collapsible-expand": "הצגה",
+ "confirmable-confirm": "האם {{GENDER:$1|ברצונך}} להמשיך?",
+ "confirmable-yes": "כן",
+ "confirmable-no": "לא",
"thisisdeleted": "לשחזר או להציג $1?",
"viewdeleted": "להציג $1?",
"restorelink": "{{PLURAL:$1|גרסה מחוקה אחת|$1 גרסאות מחוקות}}",
"logentry-rights-rights": "$1 {{GENDER:$2|שינה|שינתה}} את ההרשאות של $3 מ$4 ל$5‏",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|שינה|שינתה}} את ההרשאות של $3",
"logentry-rights-autopromote": "$1 קודם אוטומטית מ$4 ל$5",
+ "logentry-upload-upload": "$1 {{GENDER:$2|העלה|העלתה}} את $3",
+ "logentry-upload-overwrite": "$1 {{GENDER:$2|העלה|העלתה}} גרסה חדשה של $3",
+ "logentry-upload-revert": "$1 {{GENDER:$2|העלה|העלתה}} את $3",
"rightsnone": "(כלום)",
"feedback-bugornote": "אם אתם מוכנים לתאר בעיה טכנית בפרטים, אנא [$1 דווחו באג].\nאחרת, תוכלו להשתמש בטופס הפשוט שלהלן. הערתכם תתווסף לדף \"[$3 $2]\", יחד עם שם המשתמש שלכם.",
"feedback-subject": "נושא:",
"Malafaya",
"Thakurji",
"아라",
- "Soul Train"
+ "Soul Train",
+ "Filipinayzd"
]
},
"tog-underline": "Jorr ke niche line khicho:",
"talkpagelinktext": "Baat",
"specialpage": "Khaas Panna",
"personaltools": "Aapan aujaar",
- "postcomment": "Nawaa section",
"articlepage": "Content waala panna ke dekho",
"talk": "Salah",
"views": "Bichar",
"externaldberror": "Koi bahaari database authentication error hai, nai to aap ke bahaari account badle ke adhikar nai hai.",
"login": "Log in karo",
"nav-login-createaccount": "Log in karo/ nawaa account banao",
- "loginprompt": "Login kare ke khatir {{SITENAME}} cookies ke laabu kare ke chaahi.",
"userlogin": "Log in karo/ nawaa account banao",
"userloginnocreate": "Log in karo",
"logout": "Log out",
"saveprefs": "Save karo",
"restoreprefs": "Sab default settings ke pahile jaise karo (sab vibhag me)",
"prefs-editing": "Badaltaa hai",
- "rows": "Line:",
+ "rows": "Taytay:",
"columns": "Column:",
"searchresultshead": "Khojo",
"stub-threshold": "Threshold ke khatir <a href=\"#\" class=\"stub\">stub link</a> formatting (bytes):",
"uploadwarning": "Upload ke baare me chetauni",
"uploadwarning-text": "Meharbani kar ke file ke baaare me aur jankari ke niche badal ke aur fir se kosis karo.",
"savefile": "File ke save karo",
- "uploadedimage": "\"[[$1]]\" ke upload kar dewa gae",
- "overwroteimage": "\"[[$1]]\" ke nawaa version ke upload karaa gais hai",
"uploaddisabled": "Uploads ke disable kar dewa gais hai",
"copyuploaddisabled": "URL se upload kare pe rok lagae dewa gais hae.",
"uploaddisabledtext": "File uploads ke disable kar dewa gais hai.",
"watchlist-details": "{{PLURAL:$1|$1 panna|$1 panna}} pe dhyan dewa jae hai, baat waala panna ke chhorr ke.",
"wlheader-enotif": "E-mail notification ke enable kar dewa gais hai.",
"wlheader-showupdated": "Panna jiske aap ke pichhla visit ke ke baad badal dewa gais hia ke '''bold''' me dekhawa jaawe hai.",
+ "wlnote": "Niche ke {{PLURAL:$1|pahile waala badlao hai| pahile '''$1''' badlao hai}} pichhle {{PLURAL:$2|ghanta|'''$2''' ghanta}} me as of $3, $4..",
"wlshowlast": "Pichhla $1 ghanta $2 din $3 ke dekhao",
"watchlist-options": "Dhyan suchi ke options",
"watching": "Dekhtaa...",
"listgrouprights-addgroup-self-all": "az összes csoportot hozzáadhatja a saját fiókjához",
"listgrouprights-removegroup-self-all": "az összes csoporból eltávolíthatja a saját fiókját",
"listgrouprights-namespaceprotection-namespace": "Névtér",
- "trackingcategories-nodesc": "Nincs leírás.",
+ "trackingcategories-nodesc": "Nem található leírás.",
"trackingcategories-disabled": "A kategória le van tiltva",
"mailnologin": "Nincs feladó",
"mailnologintext": "Ahhoz hogy másoknak e-mailt küldhess, [[Special:UserLogin|be kell jelentkezned]] és meg kell adnod egy érvényes e-mail címet a [[Special:Preferences|beállításaidban]].",
"logentry-rights-rights": "$1 {{GENDER:$2|huet}} d'Gruppen zou deenen de Benotzer $3 gehéiert vu(n) $4 op $5 geännert",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|huet}} d'Gruppen zou deenen de Benotzer $3 gehéiert geännert",
"logentry-rights-autopromote": "De Benotzer $1 {{GENDER:$2|krut}} d'Benotzerrechter automatesch vu(n) $4 op $5 geännert",
+ "logentry-upload-upload": "$1 huet $3 {{GENDER:$2|eropgelueden}}",
+ "logentry-upload-overwrite": "$1 huet eng nei Versioun vu(n) $3 {{GENDER:$2|eropgelueden}}",
+ "logentry-upload-revert": "$1 huet $3 {{GENDER:$2|eropgelueden}}",
"rightsnone": "(keen)",
"feedback-bugornote": "Wann Dir bereet sidd fir en technesche Problem am Detail ze beschreiwen da [$1 mellt w.e.g. e Feeler (Bug)].\nSoss kënnt Dir den einfache Formulär hei drënner benotzen. Är Bemierkung gëtt op d'Säit \"[$3 $2]\" derbäigesat, zesumme mat Ärem Benotzernumm an dem Numm vum Browser deen Dir benotzt.",
"feedback-subject": "Sujet:",
"editinginterface": "<strong>زئنار دئن:</strong> شما داریت بلگه ای نه که سی بیه ویرایشت می کید.",
"cascadeprotected": "ای بلگه د ویرایشت محافظت بیه سی یه که {{جمی:$1|وه بلگه یه |ونو بلگه یان}} که ها دش د :\n$2",
"namespaceprotected": "شما حقی سی ویرایشت بلگه یایی که هان د نومجا <strong>$1</strong> ناریت.",
+ "customcssprotected": "شما سی ویرایشت ای بلگه سی اس اس اجازه ناریت سی یه که میزونکاری دونسمنیا شخصی یه کاریار هنی ها د وه.",
+ "customjsprotected": "شما سی ویرایشت ای بلگه جاوا اسکریپت اجازه ناریت سی یه که میزونکاری دونسمنیا شخصی یه کاریار هنی ها د وه.",
"mycustomcssprotected": "شما حق ناریت ای بلگه سی اس اس نه ویرایشت بکید",
"mycustomjsprotected": "شما حق ناریت ای بلگه جاوا اسکریپت نه ویرایشت بکید",
"myprivateinfoprotected": "شما حق ناریت دونسمنیا خصوصی نه ویرایشت بکید",
"mypreferencesprotected": "شما حق ناریت ویجگی یا هنی تونه ویرایشت بکید",
"ns-specialprotected": "بلگیا ویجه نتونن ویرایشت بوئن",
+ "titleprotected": "ای دیارگر د دروس بیئن وه دس [[کاریار:$1|$1]].\n نهاگری بیه.\nدلیلش ونه\"<em>$2</em>\".",
+ "filereadonlyerror": "نبوئه جانیا \"$1\" آلشت بکیتو سی یه که اماییه گه \"$2\" فقط د حال و بال حننیه.\n\nدیوونداری که یه نه قلف کرده موئه د واشکافت \"$3\" بکیتو.",
"invalidtitle-knownnamespace": "نوم نامعتور سی نوم جا \"$2\" و نیسه \"$3\"",
"invalidtitle-unknownnamespace": "نوم نامعتور سی شماره نومجا ناشناس $1 و نیسه \"$2\"",
"exception-nologin": "نبوئه وارد بوئيد",
+ "exception-nologin-text": "شما وارد [[ویجه:وامین اومائن کاریار|وامین اومائن]] بوئیت سی یه تونستویت که د ای بلگه یا کنشت دسرسی داشتویت.",
"exception-nologin-text-manual": "خواهشمنیدم که $1 تونسه بوئه د ای بلگه دسرسی داشتوه یا کاری انجوم بیئه.",
+ "virus-badscanner": "سازواره گن:ویروس ناشناس:<em>$1</em>",
"virus-scanfailed": "زل بیئن شکست حرد($1)",
"virus-unknownscanner": "ويروس كش ناآشگار",
+ "logouttext": "<strong>شما هنی نریتته وه در.</strong>\n\nد ویرتو با که ویرگه نهو انجومیارتو نه پاکسا نکیت، سی یه پاره ای د بلگه یا ممکنه جوری نشو دئه بوئن چی یه که منیستی شما هنی هایین وامین.",
"welcomeuser": "خوش اومايت،$1!",
+ "welcomecreation-msg": "حساوتو دروس بیه.\nد ویرتو نروئه که{{نوم دیارگه}} [[Special:Preferences|preferences]] خوتونه آلشت بکیت",
"yourname": "نوم کاریاری:",
"userlogin-yourname": "نوم كاروری",
"userlogin-yourname-ph": "نوم کاریاری تو نه وارد بكيد",
"userlogin-signwithsecure": "د وصل بيئن امن استفاده كو",
"yourdomainname": "پوشگیر شما:",
"password-change-forbidden": "شما نتونید پاسوردیانه د ای ویکی آلشت بکید",
+ "externaldberror": "اشتوایی د ارتواط وا رسینه گا پیش اومائه یا ینه که شما اجازه وه هنگوم سازی حساو خارجی تونه ناریت.",
"login": "اومائن",
"nav-login-createaccount": " اومائن د سيستم/راس كردن حساو",
"userlogin": " اومائن د سيستم/راس كردن حساو",
"passwordremindertitle": "پاسورد موقت تازه سی {{SITENAME}}",
"noemail": "هیچ نشونی ایمیلی سی کارور $1 ضفط نبیه.",
"noemailcreate": "شما باید یه نشونی نومه معتور فراهم بکید",
+ "passwordsent": "یه گل پاسورد هنی سی تیرنشون انجانامه ای که \"$1\" واش ثوت نام کرده بی کل بیه.\nخواهش میکیم هنی رویئت وامین و اوسه بئریتش.",
+ "blocked-mailpassword": "نها آی پی شما سی ویرایشت گرته بیه، و",
"mailerror": "خطا داره کل موئه:$1",
"emailauthenticated": "نشونی انجومانامه تونه د $2 سی 3$ مئکم بیه.",
"emailconfirmlink": "نشونی ايملتو نه محكم بكيد",
"prefs-i18n": "جهون ولاتمنی",
"prefs-signature": "امضا",
"prefs-dateformat": "شلک وخت",
+ "prefs-timeoffset": "جا وه جایی زمونی",
"prefs-advancedediting": "گزینه یا عمومی",
"prefs-editor": "ويرايشتگر",
"prefs-preview": "پیش سیل",
"prefs-advancedwatchlist": "گزینه یا پیشکرده",
"prefs-displayrc": "گزینه یا نه نشو بیه",
"prefs-displaywatchlist": "گزینه یا نه نشو بیه",
+ "prefs-tokenwatchlist": "نشو",
"prefs-diffs": "فرخیا",
"email-address-validity-valid": "نشونی ایمیل دیار بیه خوئه",
"email-address-validity-invalid": "یه گل نشونی ایمیل خو وارد بکید",
"action-createpage": "راس کردن بلگیا",
"action-createtalk": "بلگه یا چک چنه نه راس بکید",
"action-createaccount": "حساو ای کارور نه راس بکید",
+ "action-history": "ویرگار ای بلگه نه بوینیت",
"action-minoredit": "ای ویرایشت نه چی یه حیرده ویرایشت نشو بیئت",
"action-move": "لی بلگه جا وه جا کو",
"action-move-subpages": "ای بلگه و زیر بلگه یاشه جا وه جا بکید",
"recentchanges-label-minor": "يه ويرايشت كؤچكيه",
"recentchanges-label-bot": "ای ويرايشت نه يه بوت انجوم ديئه",
"recentchanges-label-unpatrolled": "ای ويرايشت هنی تيه واداشت نبيه",
+ "recentchanges-label-plusminus": "انازه بلگه وه شمار ای بایتیا آلشت کرده.",
"recentchanges-legend-heading": "'''میراث:'''",
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (همچنو بوینیت [[ویجه:بلگیا تازه|نوم گه بلگیا تازه]])",
"rcnotefrom": "د هار آلشتیا د $2 هیئن(د بال د $1 نشون دئه بیه)",
"uploadnologin": "وارد نبیه",
"uploadnologintext": "لطفن $1 سی سوارکرد جانیایا.",
"uploaderror": "خطا د سوار کردن",
+ "upload-permitted": "جورا جانیا مجاز:$1.",
+ "upload-preferred": "جورا جانیا مجاز:$1.",
+ "upload-prohibited": "جورا جانیا مجاز:$1.",
"uploadlogpage": "سوارکرد",
"filename": "نوم فایل",
"filedesc": "چكسته",
"filestatus": "حال و بال کپی رایت",
"filesource": "سرچشمه:",
"ignorewarnings": "د هر زنهار تیه پوشی کو",
+ "filename-toolong": "نوم جانیا شایت گپتر د 240 بایت نبا.",
"badfilename": "نوم جانیا د \"$1\" آلشت بیه.",
"empty-file": "فایلی که دئی ته حالی بیه.",
"file-too-large": "فایلی که دئی ته فره گپ بی.",
"unknown-error": "یه گل خطا نادیار ری ون کرده.",
"tmp-create-error": "نبوئه جانیا موقتی نه راس بکیتو.",
"tmp-write-error": "خطا د نیسنن جانیا موقتی.",
+ "uploadwarning": "هشدار سوارکرد",
"savefile": "جانیا نه اماییه کو",
"uploaddisabled": "سوار کردن د کار نئ.",
"copyuploaddisabled": "سوار کردن وا یو آر ال د کار نئ.",
"uploaddisabledtext": "سوار کرد فایلیا د کار نئ.",
"uploadinvalidxml": "ایکس ام الی که سوار بیه نبوئه نوتیج با.",
+ "uploadvirus": "د ای جانیا ویروس هئ!\nجزیات:$1",
"upload-source": "سرچشمه فایل",
"sourcefilename": "سرچشمه نوم جانیا:",
"sourceurl": "سرچشمه يو آر ال:",
"upload-success-msg": "سوارکرد شما سی [$2] خوو بی.وه د ایچه هئش:[[:{{ns:file}}:$1]]",
"upload-failure-subj": "مشگل د سوارکردن",
"upload-failure-msg": "یه گل مشلگل د سوارکردتو سی [$2] بی:$1",
+ "upload-warning-subj": "هشدار سوارکرد",
"upload-proto-error": "پروتکل نادروس",
"upload-file-error": "خطا مینونه",
"upload-misc-error": "خطا سوار کرد ناشناخته",
"upload-too-many-redirects": "ای یو آر ال د ورگیرنه واگردونیا فرئی هئ",
+ "upload-http-error": "یه گل خطا اچ تی تی پی پیش اومائه:$1",
"upload-copy-upload-invalid-domain": "ورداشتن سوارکردیا د ای پوشگئر د دسرس نئ.",
"backend-fail-notexists": "فایل $1 وجود ناره.",
+ "backend-fail-invalidpath": "\"$1\" ره خوئی سی امائیه کردن نئ.",
"backend-fail-delete": "نبوئه جانیا $1 پاکسا بوئه",
"backend-fail-describe": "نبوئه گپ دونسمنیا سی جانیا\"$1\" آلشت بوئه.",
+ "backend-fail-alreadyexists": "جانیا \"$1\" ایسه هیئش.",
"backend-fail-store": "نبوئه جانیا \"$1\" د \"$2\" امبار بوئه.",
+ "backend-fail-copy": "نبوئه جانیا $1 د $2 ورداشته بوئه",
"backend-fail-move": "نبوئه جانیا \"$1\" د \"$2\" جا وه جا بوئه",
"backend-fail-opentemp": "نبوئه جانیا موقتی وا بوئه.",
"backend-fail-writetemp": "نبوئه د جانیا موقتی چی بنیسیت.",
+ "backend-fail-closetemp": "نبوئه جانیا موقتی بسته با.",
"backend-fail-read": "نبوئه جانیا\"$1\" حنه بوئه.",
+ "backend-fail-create": "نبوئه د جانیا\"$1\" نوشته با.",
"lockmanager-fail-closelock": "نبوئه قلف جانیا سی \"$1\" بسه بوئه.",
"lockmanager-fail-openlock": "نبوئه قلف جانیا سی \"$1\" وا بوئه.",
+ "uploadstash": "اماییه جا سوارکرد",
+ "uploadstash-clear": "پاک کردن جانیایا اماییه بیه",
+ "uploadstash-nofiles": "شما هیژ جانیا اماییه بیه ای ناریت.",
"uploadstash-refresh": "نومه گه جانیایا نه د نو تازه کو",
+ "invalid-chunk-offset": "جا وه جایی نامعتور برشت",
"img-auth-accessdenied": "دسرسی منع بی",
"img-auth-nofile": "فایل $1 وجود ناره.",
"http-invalid-url": "یو آر ال نامعتور:$1",
"filepage-nofile": "چنو فایلی وا ای نوم نئ.",
"uploadnewversion-linktext": "یه گل نسقه تازه د ای جانیا سوار بکید",
"shared-repo-from": "د $1",
+ "filerevert": "د سرگرتن سی $1",
+ "filerevert-legend": "د سرگرتن جانیا",
"filerevert-comment": "دليل:",
"filerevert-submit": "ورگنین",
"filedelete": "$1 پاکسا کو",
"doubleredirects": "واگردونیا دوتایی",
"double-redirect-fixed-move": "[[$1]]جا وه جا بیه .\nوه خودکارونه وه روز بیه و ایسه وه د[[$2]] واگردونی بیه.",
"double-redirect-fixer": "تعمیر کننه واگردونی",
+ "brokenredirects": "واگردونیا بی سرانجوم",
"brokenredirectstext": "واگردونیا نهاتر د بلگه یایی که وجود نارن هوم پیوند بینه.",
"brokenredirects-edit": "ویرایشت",
"brokenredirects-delete": "پاكسا كردن",
"withoutinterwiki": "بلگه یایی که هوم پیوند زون نارن",
"withoutinterwiki-legend": "پیشون",
"withoutinterwiki-submit": "نشون دائن",
+ "fewestrevisions": "بلگه یایی که کمتری وانئری نه دارن",
"nbytes": "$1{{جمی:$1|بايت|بایتیا}}",
"ncategories": "$1{{جمی:$1|دسه|دسه يا}}",
"ninterwikis": "$1 {{جمی:$1|مئن ویکی|مئن ویکیا}}",
"nlinks": "$1 {{جمی:$1|هوم پیوند|هوم پیوندیا}}",
"nmembers": "$1 {{PLURAL:$1|اندوم|اندوميا}}",
"nmemberschanged": "$1 → $2 {{جمی:$2|اندوم|اندومیا}}",
+ "nrevisions": "$1 {{جمس:$1|وانئری|وانئریا}}",
"nviews": "$1 {{جمی:$1|دیئن|دیئنیا}}",
"nimagelinks": "$1 {{جمی:$1|بلگه|بلگيا}} استفاده بیه",
"ntransclusions": "$1 {{جمی:$1|بلگه|بلگيا}} استفاده بیه",
"mostlinkedtemplates": "چوئه یایی که بیشتر هوم پیوند بینه",
"mostcategories": "بلگه یا که بیشتر دسه بنی بینه",
"mostimages": "فایلیایی که بیشتر هوم پیوند بینه",
+ "mostinterwikis": "بلگه یایی که بیشتری مینجا ویکی نه دارن",
+ "mostrevisions": "بلگه یایی که بیشتری وانئری نه دارن",
"prefixindex": "همه بلگيا وا پيشون",
"shortpages": "بلگه یا کؤچک",
"longpages": "بلگه یا گپ",
"protectedpages-unknown-performer": "کارور ناشناس",
"listusers": "نوم گه کارور",
"listusers-editsonly": "فقط کاروریایی که ویرایشت می کن نشو بیه",
+ "listusers-creationsort": "سرجاخودگری د اساس گات دروس بیین",
+ "listusers-desc": "سرجاخودگری د اساس گپ د کؤچک",
"usereditcount": "$1{{جمی:$1|ویرایشت|ویرایشتیا}}",
"usercreated": "{{جنسیت:$3|راس بیه}}د $1 at $2",
"newpages": "بلگيا نو",
"booksources": "سرچشمه يل كتاو",
"booksources-search-legend": "پی جوری سی سرچشمه یا کتاو",
"booksources-go": "رو",
+ "specialloguserlabel": "انجومکار:",
"log": "نیسنن رخ ونیا",
"all-logs-page": "همه پهرستنومه یا عمومی",
"allpages": "همه بلگيا",
"nextpage": "بلگه نهایی($1)",
"prevpage": "بلگه دمایی($1)",
+ "allpagesfrom": "بلگه یای که د شرو بینه نشو بیه:",
+ "allpagesto": "بلگه یایی که د تموم بینه نشو بیه.",
"allarticles": "همه بلگيا",
+ "allinnamespace": "همه بلگه یا($1 نوم جا)",
"allpagessubmit": "رو",
+ "allpagesprefix": "بلگه یایی که پس نوم دارن نشو بیه:",
"allpagesbadtitle": "عنوان بلگه حاسته بیه معتور نی،یا یه گل مئن زونی یا مئن ویکی عنوان غلطه.\nیه شایت شومل یکی با یا بیشتر کاراکتریا نبوئه که سی ای موضوعیا استفاده بوئن",
+ "allpages-bad-ns": "{{نوم دیارگه}} د ای نوم جا نئ \"$1\".",
"allpages-hide-redirects": "واگردونیا قام بیه",
"cachedspecial-refresh-now": "دیئن آخری.",
"categories": "دسه يا",
+ "special-categories-sort-count": "سرجاخودگری د اساس شمارشت",
+ "special-categories-sort-abc": "سرجاخودگری د اساس الفبا",
"deletedcontributions": "هومیاریا پاکسا بیه کارور",
"deletedcontributions-title": "هومیاریا پاک بیه کارور",
"sp-deletedcontributions-contribs": "هومیاریا",
+ "linksearch": "هوم پیوند پی جوری خارجی",
+ "linksearch-pat": "سازه یار پی جوری:",
"linksearch-ns": "نوم جا:",
"linksearch-ok": "پی جوری",
"linksearch-line": "$1 داره د $2 هوم پیوند بوئه",
+ "listusersfrom": "کاریاریایی که د شرو بینه نشو بیه:",
"listusers-submit": "نشو دئن",
"listusers-noresult": "هیچ کاروری پیدا نبی",
"listusers-blocked": "(قلف بيه)",
"activeusers": "نوم گه کاروریا کارکو",
+ "activeusers-from": "کاریاریایی که د شرو بینه نشو بیه:",
"activeusers-hidebots": "بوتیا قام کو",
"activeusers-hidesysops": "دیوون داریا نه قام کو",
"activeusers-noresult": "هیچ کاروری پیدا نبی",
+ "listgrouprights": "حقوق گرو کاریاری",
+ "listgrouprights-key": "Legend:\n* <span class=\"listgrouprights-granted\">دئه بیه د سمت راست</span>\n* <span class=\"listgrouprights-revoked\">انجوم شیو بیه د سمت راست</span>",
"listgrouprights-group": "دسه",
"listgrouprights-rights": "حقوقیا",
+ "listgrouprights-helppage": "هومیاری:حقوق گرو",
"listgrouprights-members": "(نوم گه اندومیا)",
+ "listgrouprights-addgroup": "{{جمی:$2|گرویا|گرویا}} اضاف بکیتو: $1",
+ "listgrouprights-removegroup": "{{جمی:$2|گرویا|گرویا}} ورداریت: $1",
"listgrouprights-addgroup-all": "همه گرویا نه اضاف کو",
"listgrouprights-removegroup-all": "همه گرویا نه وردار",
"listgrouprights-addgroup-self": " {{جمی:$2|گروه|گرویا}} نه د حساو: $1 اضاف کو",
+ "listgrouprights-removegroup-self": "{{جمی:$2|گرویا|گرویا}} نه د حساو ورداریت: $1",
+ "listgrouprights-addgroup-self-all": "همه گرویا نه د حساو خوشو اضاف بکیت",
+ "listgrouprights-removegroup-self-all": "همه گرویا نه د حساو خوشو ورداریت",
+ "listgrouprights-namespaceprotection-namespace": "نوم جا",
+ "trackingcategories-name": "نوم پیغوم",
+ "trackingcategories-disabled": "دسه ناکشتگر بیه",
"mailnologin": "هیپچ نشونی یی کل نبیه",
"emailuser": "ای كارور نه ايميل كو",
"emailuser-title-target": "ایمیل سی ای {{جنس:$1|کارور}}",
"defemailsubject": "{{نوم سیل جا}} ایمیل د کارور \"$1\"",
"usermaildisabled": "ایمیل کارور د کار افتائه",
"noemailtitle": "هیچ نشونی ایمیلی نئ",
+ "emailtarget": "یه گل نوم کاریاری سی پذریشتگر وارد بکیت",
"emailusername": "نوم كاروری:",
"emailusernamesubmit": "دئن",
"emailfrom": "د:",
"emailccsubject": " پیغومتو سی $1:$2 ورداشته بی",
"emailsent": "ایمیل کل بیه",
"emailsenttext": "پیغوم ایمیلی تو کل بیه.",
+ "usermessage-summary": "رئتن د سامونه پیغوم",
"usermessage-editor": "پیغوم فرسن سیستم",
"watchlist": "سیل برگ",
"mywatchlist": "سیل برگ",
"watchlistfor2": "سي $1 $2",
+ "nowatchlist": "شما هیچی د سیل برگ خوتو ناریت",
"watchnologin": "وارد نبیه",
+ "addwatch": "اضاف کردن د سیل برگ",
+ "removewatch": "جا وه جا کردن د سیل برگ",
+ "removedwatchtext": "بلگه\"[[:$1]]\" د [[Special:سیل برگ|سیل برگ خوتو]] جا وه جا بیه.",
+ "removedwatchtext-short": "بلگه \"$1\" د سیل برگ جا وه جا بیه.",
"watch": "سيل كردن",
"watchthispage": "ديئن ای بلگه",
"unwatch": "ديه نبيه",
"unwatchthispage": "واداشتن دیئن",
"notanarticle": "مینونه هیچ بلگه ای نئ",
+ "notvisiblerev": "آخری وانئری که د دس یه کاریار هنی انجوم بیه پاکسا بیه.",
"watchlist-details": "{{جمی:$1|$1 بلگه|$1 بلگیا}} د سیل برگتو هیش بلگه قسه کردن نی .",
"wlheader-enotif": "وارسیاری ایمیل فعال بیه.",
"wlheader-showupdated": "بلگه یایی که د آخرین کرتی که شما دشو دیئن کردیته آلشت بینه د <strong>توپر</strong>نشون دئه بینه",
"deleteotherreason": "دليليا هنی:",
"deletereasonotherlist": "دلیل هنی",
"deletereason-dropdown": "* دلیلیا پاکسا کردن رسم بیه\n** اسپم\n** خراوکاری\n** رعایت نبین کپی رایت\n** درحاست نیسنه\n** نهاورگشت شکست حرده",
+ "delete-edit-reasonlist": "دلیلیا پاکسا کردنه نه ویرایشت بکید",
"rollbacklink": "ورگشتن",
"sessionfailure-title": "شکست حردن نشینگه",
"protectlogpage": "حفاظت کردن",
"modifiedarticleprotection": "ریتراز حفاظت د \"[[$1]]\" آلشت بیه",
"protect-title": "ریتراز حفاظت د \"$1\" آلشت بیه",
"prot_1movedto2": "[[$1]] د [[$2]] جا وه جا بی",
+ "protectcomment": "دلیل:",
"protect-default": "همه کاروریا اجازه دارن",
"protect-othertime": "وخت هنی:",
+ "protect-othertime-op": "گات هنی",
+ "protect-otherreason-op": "دلیل هنی",
"protect-expiry-options": "1 ساعت:1 ساعت,1 روز:1 روز,1 هفته:1 هفته,2 هفته:2 هفته,1 ما:1 ما,3 ما:3 ما,6 ما:6 ما,1 سال:1 سال,بی حساو:بی حساو",
"restriction-type": "دسرسی:",
+ "minimum-size": "انازه کمترونه",
+ "maximum-size": "انازه بیشترونه",
+ "pagesize": "(بایتیا)",
"restriction-edit": "ويرايشت",
"restriction-move": "جاوه جا بوئيت",
"restriction-create": "راس كردن",
"whatlinkshere-filters": "فيلتريا",
"block": "منع کارور",
"blockip": "منع کارور",
+ "ipaddressorusername": "نوم نشون آی پی يا نوم كاروری:",
"ipbreason": "دليل:",
"ipbemailban": "نهاگرتن کاریار د کل کردن انجومانامه",
"ipbother": "وخت هنی:",
"unblocklink": "بی قطی",
"change-blocklink": "اجازه نديئن سی آلشت",
"contribslink": "هومكاری",
+ "emaillink": "انجومانامه نه کل کو",
"blocklogpage": "قلف",
"blocklogentry": " [[$1]] وا یه گل وخت تموم بیئن $2 و $3 قلف بیه",
"block-log-flags-nocreate": "حساو راس کردن عاجز بیه.",
"block-log-flags-nousertalk": "نبوئه بلگه چک چنه خوتونه ویرایشت بکید",
+ "proxyblocker": "قلف کننه پروکسی",
"lockdb": "قلف کردن رسینه گا",
"unlockconfirm": "هره، مه واقعند میهام که رسینه گا وا بوئه.",
+ "lockbtn": "قلف کردن رسینه گا",
"unlockbtn": "رسینه گا قلف نبیه",
"lockdbsuccesssub": "رسینه گا د خوئی قلف بیه",
"move-page": "$1 جا وه جا کو",
+ "move-page-legend": "بلگه نه جا وه جا کو",
"movenotallowed": "شما وه جا وه جا کردن بلگه دسرسی ناریت",
"movenotallowedfile": "شما وه جا وه جا کردن جانیایا دسرسی ناریت",
"movepagebtn": "بلگه جا وه جا کو",
+ "pagemovedsub": "د خوئی جا وه جا بیه",
"movepage-moved-redirect": "یه گل واگردونی دروس بیه.",
"movelogpage": "جاوه جا کردن",
"movelogpagetext": "د هار یه گل نوم گه د جا وه جایی یا بلگه هئ",
+ "movereason": "دلیل:",
"revertmove": "لرستن",
"delete_and_move": "پاکسا و جا وه جا بوئه",
"export": "وه صحرا ديئن بلگيا",
+ "export-addcat": "اضاف کو",
+ "export-addns": "اضاف كو",
"export-download": "ذخیره کردن جانیا",
+ "export-templates": "شامل چوئه یا",
+ "allmessages": "سامونه پیغومیا",
"allmessagesname": "نوم",
"allmessagesdefault": "سفارشت متنی پيش فرض",
+ "allmessages-filter-legend": "فیلتر",
+ "allmessages-filter-all": "همه",
+ "allmessages-filter-modified": "آلشت بیه",
+ "allmessages-prefix": "فیلتر بیه وا نهاون:",
"allmessages-language": "زون:",
"allmessages-filter-submit": "رو",
+ "allmessages-filter-translate": "والرن",
"thumbnail-more": "گپ كردن",
"filemissing": "گم بیئن جانیا",
"thumbnail_error": "خطا د راس بیئن بن کلئکی:$1",
"logentry-rights-rights": "$1 {{GENDER:$2|го измени}} групното членство на $3 од $4 во $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|го измени}} групното членство во $3",
"logentry-rights-autopromote": "$1 автоматски {{GENDER:$2|унапреден|унапредена}} од $4 во $5",
+ "logentry-upload-upload": "$1 {{GENDER:$2|ја подигна}} $3",
+ "logentry-upload-overwrite": "$1 {{GENDER:$2|подигна}} нова верзија на $3",
+ "logentry-upload-revert": "$1 {{GENDER:$2|ја подигна}} $3",
"rightsnone": "(нема)",
"feedback-bugornote": "Ако сте спремни подробно да го опишете техничкиот проблем, тогаш [$1 пријавете грешка]. \nВо спротивно, послужете се со едноставниот образец подолу. Вашиот коментар ќе стои на страницата „[$3 $2]“, заедно со корисничкото име и прелистувачот што го користите.",
"feedback-subject": "Наслов:",
"hidetoc": "ukryj",
"collapsible-collapse": "Zwiń",
"collapsible-expand": "Rozwiń",
+ "confirmable-confirm": "Jesteś {{GENDER:$1|pewny|pewna}}?",
+ "confirmable-yes": "Tak",
+ "confirmable-no": "Nie",
"thisisdeleted": "Pokazać lub odtworzyć $1?",
"viewdeleted": "Zobacz $1",
"restorelink": "{{PLURAL:$1|jedną usuniętą wersję|$1 usunięte wersje|$1 usuniętych wersji}}",
"logentry-rights-rights": "$1 modificou os privilégios do utilizador $3 de $4 para $5",
"logentry-rights-rights-legacy": "$1 alterou os grupos de $3",
"logentry-rights-autopromote": "$1 foi automaticamente {{GENDER:$2|promovido|promovida}} de $4 a $5",
+ "logentry-upload-upload": "$1 {{GENDER:$2|carregou}} $3",
+ "logentry-upload-overwrite": "$1 {{GENDER:$2|carregou}} uma nova versão de $3",
+ "logentry-upload-revert": "$1 {{GENDER:$2|carregou}} $3",
"rightsnone": "(nenhum)",
"feedback-bugornote": "Se está pronto para descrever um problema técnico em detalhe, por favor, [$1 comunique o defeito].\nCaso contrário, pode facilmente usar o formulário abaixo. O seu comentário será adicionado à página \"[$3 $2]\", junto com o seu nome de utilizador e o navegador que está a usar.",
"feedback-subject": "Assunto:",
"hidetoc": "This is the link used to hide the table of contents\n\n{{Identical|Hide}}",
"collapsible-collapse": "{{Doc-actionlink}}\nThis is the link used to collapse a collapsible element. (used as plaintext. No wikitext or html is parsed.)\n\nSee also:\n* {{msg-mw|Collapsible-expand}}\n{{Identical|Collapse}}",
"collapsible-expand": "{{Doc-actionlink}}\nThis is the link used to expand a collapsible element (used as plaintext. No wikitext or html is parsed.)\n\nSee also:\n* {{msg-mw|Collapsible-collapse}}\n\nSee the following example:\n{{Identical|Expand}}",
+ "confirmable-confirm": "Question asking the user to confirm a potentially uncancellable action.\n\"Yes\" and \"No\" buttons are displayed beside it.\n\nSee also:\n* {{msg-mw|confirmable-yes}}\n* {{msg-mw|confirmable-no}}",
+ "confirmable-yes": "{{Doc-actionlink}}\nText of a button that will confirm triggering of a potentially uncancellable action.\n\nSee also:\n* {{msg-mw|confirmable-confirm}}\n* {{msg-mw|confirmable-no}}",
+ "confirmable-no": "{{Doc-actionlink}}\nText of a button that will cancel triggering of a potentially uncancellable action.\n\nSee also:\n* {{msg-mw|confirmable-confirm}}\n* {{msg-mw|confirmable-yes}}",
"thisisdeleted": "Message shown on a deleted page when the user has the undelete right. Parameters:\n* $1 - a link to [[Special:Undelete]], with {{msg-mw|restorelink}} as the text\nSee also:\n* {{msg-mw|viewdeleted}}",
"viewdeleted": "Message shown on a deleted page when the user does not have the undelete right (but has the deletedhistory right).\n\nParameters:\n* $1 - a link to [[Special:Undelete]], with {{msg-mw|restorelink}} as the text\nSee also:\n* {{msg-mw|thisisdeleted}}",
"restorelink": "This text is always displayed in conjunction with the {{msg-mw|thisisdeleted}} message (View or restore $1?). The user will see\nView or restore <nowiki>{{PLURAL:$1|one deleted edit|$1 deleted edits}}</nowiki>? i.e ''View or restore one deleted edit?'' or\n''View or restore n deleted edits?''",
"action-pagelang": "{{Doc-action|pagelang}}",
"log-name-pagelang": "Display entry for log name for changes in page language in Special:Log.",
"log-description-pagelang": "Display description for log name for changes in page language in Special:Log.",
- "logentry-pagelang-pagelang": "{{Logentry}}\nAdditional parameters:\n* $4 - old language code, or \"[def]\" (hard-coded)\n* $5 - new language code, or \"[def]\" (hard-coded)"
+ "logentry-pagelang-pagelang": "{{Logentry}}\nAdditional parameters:\n* $4 - old language code, or \"[def]\" (hard-coded)\n* $5 - new language code, or \"[def]\" (hard-coded)",
+ "default-skin-not-found": "Message shown when the default skin for this MediaWiki installation can not be found.\n\nParameters:\n* $1: skin identifier for the default skin\n* $2: list of installed skins, composed using {{msg-mw|default-skin-not-found-row-enabled}} and {{msg-mw|default-skin-not-found-row-disabled}}\n* $3: code snippet to use to enable installed skins",
+ "default-skin-not-found-no-skins": "Message shown when the default skin for this MediaWiki installation can not be found and the installation has no skins at all.\n\nParameters:\n* $1: name of the default skin",
+ "default-skin-not-found-row-enabled": "One row of the list of installed skins shown as a part of {{msg-mw|default-skin-not-found}}, for an enabled skin.\n\nParameters:\n* $1: skin identifier\n$2: human-readable skin name",
+ "default-skin-not-found-row-disabled": "One row of the list of installed skins shown as a part of {{msg-mw|default-skin-not-found}}, for a disabled skin.\n\nParameters:\n* $1: skin identifier\n$2: human-readable skin name"
}
"logentry-rights-rights": "$1 {{GENDER:$2|a schimbat}} apartenența la grup pentru $3 de la $4 la $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|a schimbat}} apartenența la grup pentru $3",
"logentry-rights-autopromote": "$1 {{GENDER:$2|a fost promovat|a fost promovată}} în mod automat de la $4 la $5",
+ "logentry-upload-upload": "$1 {{GENDER:$2|a încărcat}} $3",
+ "logentry-upload-overwrite": "$1 {{GENDER:$2|a încărcat}} o nouă versiune pentru $3",
+ "logentry-upload-revert": "$1 {{GENDER:$2|a încărcat}} $3",
"rightsnone": "(niciunul)",
"feedback-bugornote": "Dacă sunteți pregătit să descrieți o problemă tehnică în detaliu vă rugăm să [$1 raportați un bug].\nÎn caz contrar, puteți utiliza formularul de mai jos. Comentariul dumneavoastră va fi adăugat pe pagina „[$3 $2]”, împreună cu numele de utilizator și numele navigatorului pe care îl folosiți.",
"feedback-subject": "Subiect:",
"logentry-rights-rights": "$1 {{GENDER:$2|изменил|изменила}} членство в группах для $3 с $4 на $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|изменил|изменила}} членство в группах для $3",
"logentry-rights-autopromote": "$1 был{{GENDER:$2||а}} автоматически переведен{{GENDER:$2||а}} из $4 в $5",
+ "logentry-upload-upload": "$1 загрузил{{GENDER:$2||а}} $3",
+ "logentry-upload-overwrite": "$1 загрузил{{GENDER:$2||а}} новую версию $3",
+ "logentry-upload-revert": "$1 загрузил{{GENDER:$2||а}} $3",
"rightsnone": "(нет)",
"feedback-bugornote": "Если вы готовы подробно описать техническую проблему, пожалуйста, [$1 сообщите об ошибке].\nВ противном случае вы можете использовать данную простую форму. Ваш комментарий будет добавлен на страницу «[$3 $2]» вместе с вашим именем участника и используемым браузером.",
"feedback-subject": "Тема:",
"logentry-rights-rights": "$1 je {{GENDER:$2|spremenil|spremenila|spremenil(-a)}} uporabniške pravice uporabnika $3 z $4 na $5",
"logentry-rights-rights-legacy": "$1 je {{GENDER:$2|spremenil|spremenila|spremenil(-a)}} uporabniške pravice uporabnika $3",
"logentry-rights-autopromote": "$1 je {{GENDER:$2|bil samodejno povišan|bila samodejno povišana|bil(-a) samodejno povišan(-a)}} z $4 na $5",
+ "logentry-upload-upload": "$1 je {{GENDER:$2|naložil|naložila|naložil(-a)}} $3",
+ "logentry-upload-overwrite": "$1 je {{GENDER:$2|naložil|naložila|naložil(-a)}} novo različico $3",
+ "logentry-upload-revert": "$1 je {{GENDER:$2|naložil|naložila|naložil(-a)}} $3",
"rightsnone": "(nobeno)",
"feedback-bugornote": "Če ste pripravljeni podrobno opisati tehnično težavo, vložite [$1 poročilo o hrošču].\nV nasprotnem primeru lahko uporabite preprost obrazec spodaj. Vašo pripombo bomo dodali na stran »[$3 $2]«, skupaj z vašim uporabniškim imenom in podatkom o brskalniku, ki ga uporabljate.",
"feedback-subject": "Zadeva:",
"logentry-rights-rights": "$1 {{GENDER:$2|ändrade}} gruppmedlemskapet för $3 från $4 till $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|ändrade}} gruppmedlemskapet för $3",
"logentry-rights-autopromote": "$1 {{GENDER:$2|befordrades}} automatiskt från $4 till $5",
+ "logentry-upload-upload": "$1 {{GENDER:$2|laddade upp}} $3",
+ "logentry-upload-overwrite": "$1 {{GENDER:$2|laddade upp}} en ny version av $3",
+ "logentry-upload-revert": "$1 {{GENDER:$2|laddade upp}} $3",
"rightsnone": "(inga)",
"feedback-bugornote": "Om du är redo att beskriva ett tekniskt problem detaljerat, var god [$1 rapporterar en bugg].\nAnnars kan du använda det enkla formuläret nedan. Din kommentar kommer att läggas till på sidan \"[$3 $2]\", tillsammans med ditt användarnamn och vilken webbläsare du använder.",
"feedback-subject": "Ämne:",
"versionrequiredtext": "Bu sayfayı kullanmak için MediaWiki'nin $1 sürümü gerekmektedir. [[Special:Version|Sürüm sayfasına]] bakınız.",
"ok": "Tamam",
"pagetitle-view-mainpage": "{{SITENAME}}",
+ "backlinksubtitle": "←$1",
"retrievedfrom": "\"$1\" adresinden alındı.",
"youhavenewmessages": "$1 {{PLURAL:$3|var}} ($2).",
"youhavenewmessagesfromusers": "{{PLURAL:$3|Başka bir kullanıcıdan|$3 kullanıcıdan}} $1 var ($2).",
"logentry-rights-rights": "$1 {{GENDER:$1|змінив|змінила}} членство в групах для $3 із $4 на $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$1|змінив|змінила}} членство в групах для $3",
"logentry-rights-autopromote": "$1 було автоматично переведено із $4 в $5",
+ "logentry-upload-upload": "$1 {{GENDER:$2|завантажив|завантажила}} $3",
+ "logentry-upload-overwrite": "$1 {{GENDER:$2|завантажив|завантажила}} нову версію $3",
+ "logentry-upload-revert": "$1 {{GENDER:$2|завантажив|завантажила}} $3",
"rightsnone": "(нема)",
"feedback-bugornote": "Якщо ви готові описати технічні проблеми в деталях, будь ласка, [$1 повідомте про помилку].\nАбо можете використати форму нижче. Ваш коментар буде додано на сторінку \"[$3 $2]\", разом з іменем користувача.",
"feedback-subject": "Тема:",
"windows-nonascii-filename": "箇wiki弗支持文件名用特別個字符。",
"uploadwarning": "上载警告",
"savefile": "保存文件",
- "uploadedimage": "上传 \"[[$1]]\"",
"sourcefilename": "源文件:",
"destfilename": "目标文件名:",
"watchthisupload": "關注箇文件",
"아라",
"Mywood",
"Impersonator 1",
- "Duolaimi"
+ "Duolaimi",
+ "TianyinLee"
]
},
"tog-underline": "链接下划线:",
"mainpage": "首页",
"mainpage-description": "首页",
"policy-url": "Project:方针",
- "portal": "社å\8cºä¸\93页",
+ "portal": "社å\8cºä¸»页",
"portal-url": "Project:社区专页",
"privacy": "隐私权政策",
"privacypage": "Project:隐私权政策",
"logentry-rights-rights": "$1{{GENDER:$2|更改}}$3的用户组自$4至$5",
"logentry-rights-rights-legacy": "$1更改$3的用户组",
"logentry-rights-autopromote": "$1被自动地{{GENDER:$2|提升}}自$4至$5",
+ "logentry-upload-upload": "$1{{GENDER:$2|上传了}}$3",
+ "logentry-upload-overwrite": "$1{{GENDER:$2|上传了}}$3的新版本",
+ "logentry-upload-revert": "$1{{GENDER:$2|上传了}}$3",
"rightsnone": "(无)",
"feedback-bugornote": "如果你准备好详细描述一个技术问题,请[$1 报告bug]。或者你可以使用下面的简单表格。你的评论将被添加至页面“[$3 $2]”,附有你的用户名。",
"feedback-subject": "主题:",
"../../resources/src/jquery/jquery.checkboxShiftClick.js",
"../../resources/src/jquery/jquery.client.js",
"../../resources/src/jquery/jquery.colorUtil.js",
+ "../../resources/src/jquery/jquery.confirmable.js",
"../../resources/src/jquery/jquery.footHovzer.js",
"../../resources/src/jquery/jquery.getAttrs.js",
"../../resources/src/jquery/jquery.hidpi.js",
'jquery.colorUtil' => array(
'scripts' => 'resources/src/jquery/jquery.colorUtil.js',
),
+ 'jquery.confirmable' => array(
+ 'scripts' => array(
+ 'resources/src/jquery/jquery.confirmable.js',
+ 'resources/src/jquery/jquery.confirmable.mediawiki.js',
+ ),
+ 'messages' => array(
+ 'confirmable-confirm',
+ 'confirmable-yes',
+ 'confirmable-no',
+ ),
+ 'styles' => 'resources/src/jquery/jquery.confirmable.css',
+ 'dependencies' => 'mediawiki.jqueryMsg',
+ ),
// Use mediawiki.cookie in new code, rather than jquery.cookie.
'jquery.cookie' => array(
'scripts' => 'resources/lib/jquery/jquery.cookie.js',
"Xiaomingyan",
"Yfdyh000",
"Zhangjintao",
- "乌拉跨氪"
+ "乌拉跨氪",
+ "Great Brightstar"
]
},
"ooui-outline-control-move-down": "下移项",
"ooui-outline-control-move-up": "上移项",
"ooui-outline-control-remove": "删除项",
"ooui-toolbar-more": "更多",
- "ooui-dialog-message-accept": "好",
+ "ooui-dialog-message-accept": "确定",
"ooui-dialog-message-reject": "取消",
"ooui-dialog-process-error": "发生一些错误",
"ooui-dialog-process-dismiss": "解除",
/*!
- * OOjs UI v0.1.0-pre (dd294dc785)
+ * OOjs UI v0.1.0-pre (0e50d2e336)
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2014 OOjs Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2014-07-30T23:10:53Z
+ * Date: 2014-08-06T12:56:55Z
*/
.oo-ui-dialog-content > .oo-ui-window-head,
.oo-ui-dialog-content > .oo-ui-window-body,
/*!
- * OOjs UI v0.1.0-pre (dd294dc785)
+ * OOjs UI v0.1.0-pre (0e50d2e336)
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2014 OOjs Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2014-07-30T23:10:53Z
+ * Date: 2014-08-06T12:56:55Z
*/
.oo-ui-dialog-content > .oo-ui-window-head,
.oo-ui-dialog-content > .oo-ui-window-body,
/*!
- * OOjs UI v0.1.0-pre (dd294dc785)
+ * OOjs UI v0.1.0-pre (0e50d2e336)
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2014 OOjs Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2014-07-30T23:10:53Z
+ * Date: 2014-08-06T12:56:55Z
*/
( function ( OO ) {
// Properties
this.loading = null;
this.config = config;
+ this.dir = null;
// Initialize
this.$element
win = this.$element.prop( 'contentWindow' );
doc = win.document;
- // Figure out directionality:
+ // Cache directionality
this.dir = OO.ui.Element.getDir( this.$element ) || 'ltr';
// Initialize contents
doc.write(
'<!doctype html>' +
'<html>' +
- '<body class="oo-ui-frame-content oo-ui-' + this.dir + '" dir="' + this.dir + '">' +
+ '<body class="oo-ui-frame-content oo-ui-' + this.getDir() + '" dir="' + this.getDir() + '">' +
'</body>' +
'</html>'
);
return this;
};
+/**
+ * Get the directionality of the frame
+ *
+ * @return {string} Directionality, 'ltr' or 'rtl'
+ */
+OO.ui.Frame.prototype.getDir = function () {
+ return this.dir;
+};
+
/**
* Container for elements.
*
/*!
- * OOjs UI v0.1.0-pre (dd294dc785)
+ * OOjs UI v0.1.0-pre (0e50d2e336)
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2014 OOjs Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2014-07-30T23:10:53Z
+ * Date: 2014-08-06T12:56:55Z
*/
/* Textures */
--- /dev/null
+.jquery-confirmable-button {
+ /* Automatically flipped */
+ margin-left: 1ex;
+}
+
+.jquery-confirmable-wrapper {
+ /* Line breaks within the interface text are unpleasant */
+ white-space: nowrap;
+ /* Hiding the original text when it slides to the left */
+ overflow: hidden;
+}
+
+.jquery-confirmable-wrapper,
+.jquery-confirmable-element,
+.jquery-confirmable-interface {
+ /* We need inline-block to be able to size the elements and calculate their dimensions */
+ display: inline-block;
+ /* inline-block elements in this context align to baseline by default */
+ vertical-align: bottom;
+}
+
+.jquery-confirmable-element {
+ transition: margin 250ms cubic-bezier(0.2, 0.8, 0.2, 0.8);
+}
+
+.jquery-confirmable-interface {
+ transition: width 250ms cubic-bezier(0.2, 0.8, 0.2, 0.8);
+}
--- /dev/null
+/**
+ * jQuery confirmable plugin
+ *
+ * Released under the MIT License.
+ *
+ * @author Bartosz Dziewoński
+ *
+ * @class jQuery.plugin.confirmable
+ */
+( function ( $ ) {
+ var identity = function ( data ) {
+ return data;
+ };
+
+ /**
+ * Enable inline confirmation for given clickable element (like `<a />` or `<button />`).
+ *
+ * An additional inline confirmation step being shown before the default action is carried out on
+ * click.
+ *
+ * Calling `.confirmable( { handler: function () { … } } )` will fire the handler only after the
+ * confirmation step.
+ *
+ * The element will have the `jquery-confirmable-element` class added to it when it's clicked for
+ * the first time, which has `white-space: nowrap;` and `display: inline-block;` defined in CSS.
+ * If the computed values for the element are different when you make it confirmable, you might
+ * encounter unexpected behavior.
+ *
+ * @param {Object} [options]
+ * @param {string} [options.events='click'] Events to hook to.
+ * @param {Function} [options.wrapperCallback] Callback to fire when preparing confirmable
+ * interface. Receives the interface jQuery object as the only parameter.
+ * @param {Function} [options.buttonCallback] Callback to fire when preparing confirmable buttons.
+ * It is fired separately for the 'Yes' and 'No' button. Receives the button jQuery object as
+ * the first parameter and 'yes' or 'no' as the second.
+ * @param {Function} [options.handler] Callback to fire when the action is confirmed (user clicks
+ * the 'Yes' button).
+ * @param {string} [options.i18n] Text to use for interface elements.
+ * @param {string} [options.i18n.confirm] Text to use for the confirmation question.
+ * @param {string} [options.i18n.yes] Text to use for the 'Yes' button.
+ * @param {string} [options.i18n.no] Text to use for the 'No' button.
+ *
+ * @chainable
+ */
+ $.fn.confirmable = function ( options ) {
+ options = $.extend( true, {}, $.fn.confirmable.defaultOptions, options || {} );
+
+ return this.on( options.events, function ( e ) {
+ var $element, $text, $buttonYes, $buttonNo, $wrapper, $interface, $elementClone,
+ interfaceWidth, elementWidth, rtl, positionOffscreen, positionRestore, sideMargin;
+
+ $element = $( this );
+
+ if ( $element.data( 'jquery-confirmable-button' ) ) {
+ // We're running on a clone of this element that represents the 'Yes' or 'No' button.
+ // (This should never happen for the 'No' case unless calling code does bad things.)
+ return;
+ }
+
+ // Only prevent native event handling. Stopping other JavaScript event handlers
+ // is impossible because they might have already run (we have no control over the order).
+ e.preventDefault();
+
+ rtl = $element.css( 'direction' ) === 'rtl';
+ if ( rtl ) {
+ positionOffscreen = { position: 'absolute', right: '-9999px' };
+ positionRestore = { position: '', right: '' };
+ sideMargin = 'marginRight';
+ } else {
+ positionOffscreen = { position: 'absolute', left: '-9999px' };
+ positionRestore = { position: '', left: '' };
+ sideMargin = 'marginLeft';
+ }
+
+ if ( $element.hasClass( 'jquery-confirmable-element' ) ) {
+ $wrapper = $element.closest( '.jquery-confirmable-wrapper' );
+ $interface = $wrapper.find( '.jquery-confirmable-interface' );
+ $text = $interface.find( '.jquery-confirmable-text' );
+ $buttonYes = $interface.find( '.jquery-confirmable-button-yes' );
+ $buttonNo = $interface.find( '.jquery-confirmable-button-no' );
+
+ interfaceWidth = $interface.data( 'jquery-confirmable-width' );
+ elementWidth = $element.data( 'jquery-confirmable-width' );
+ } else {
+ $elementClone = $element.clone( true );
+ $element.addClass( 'jquery-confirmable-element' );
+
+ elementWidth = $element.width();
+ $element.data( 'jquery-confirmable-width', elementWidth );
+
+ $wrapper = $( '<span>' )
+ .addClass( 'jquery-confirmable-wrapper' );
+ $element.wrap( $wrapper );
+
+ // Build the mini-dialog
+ $text = $( '<span>' )
+ .addClass( 'jquery-confirmable-text' )
+ .text( options.i18n.confirm );
+
+ // Clone original element along with event handlers to easily replicate its behavior.
+ // We could fiddle with .trigger() etc., but that is troublesome especially since
+ // Safari doesn't implement .click() on <a> links and jQuery follows suit.
+ $buttonYes = $elementClone.clone( true )
+ .addClass( 'jquery-confirmable-button jquery-confirmable-button-yes' )
+ .data( 'jquery-confirmable-button', true )
+ .text( options.i18n.yes );
+ if ( options.handler ) {
+ $buttonYes.on( options.events, options.handler );
+ }
+ $buttonYes = options.buttonCallback( $buttonYes, 'yes' );
+
+ // Clone it without any events and prevent default action to represent the 'No' button.
+ $buttonNo = $elementClone.clone( false )
+ .addClass( 'jquery-confirmable-button jquery-confirmable-button-no' )
+ .data( 'jquery-confirmable-button', true )
+ .text( options.i18n.no )
+ .on( options.events, function ( e ) {
+ $element.css( sideMargin, 0 );
+ $interface.css( 'width', 0 );
+ e.preventDefault();
+ } );
+ $buttonNo = options.buttonCallback( $buttonNo, 'no' );
+
+ // Prevent memory leaks
+ $elementClone.remove();
+
+ $interface = $( '<span>' )
+ .addClass( 'jquery-confirmable-interface' )
+ .append( $text, $buttonYes, $buttonNo );
+ $interface = options.wrapperCallback( $interface );
+
+ // Render offscreen to measure real width
+ $interface.css( positionOffscreen );
+ // Insert it in the correct place while we're at it
+ $element.after( $interface );
+ interfaceWidth = $interface.width();
+ $interface.data( 'jquery-confirmable-width', interfaceWidth );
+ $interface.css( positionRestore );
+
+ // Hide to animate the transition later
+ $interface.css( 'width', 0 );
+ }
+
+ // Hide element, show interface. This triggers both transitions.
+ // In a timeout to trigger the 'width' transition.
+ setTimeout( function () {
+ $element.css( sideMargin, -elementWidth );
+ $interface.css( 'width', interfaceWidth );
+ }, 1 );
+ } );
+ };
+
+ /**
+ * Default options. Overridable primarily for internationalisation handling.
+ * @property {Object} defaultOptions
+ */
+ $.fn.confirmable.defaultOptions = {
+ events: 'click',
+ wrapperCallback: identity,
+ buttonCallback: identity,
+ handler: null,
+ i18n: {
+ confirm: 'Are you sure?',
+ yes: 'Yes',
+ no: 'No'
+ }
+ };
+}( jQuery ) );
--- /dev/null
+/*!
+ * jQuery confirmable plugin customization for MediaWiki
+ *
+ * This file serves to inject our localised messages into it.
+ */
+
+( function ( mw, $ ) {
+ $.fn.confirmable.defaultOptions.i18n = {
+ confirm: mw.message( 'confirmable-confirm', mw.user ).text(),
+ yes: mw.message( 'confirmable-yes' ).text(),
+ no: mw.message( 'confirmable-no' ).text()
+ };
+}( mediaWiki, jQuery ) );
ua = navigator.userAgent;
}
- // MediaWiki JS or jQuery is known to have issues with:
+ // Browsers with outdated or limited JavaScript engines get the no-JS experience
return !(
- // Internet Explorer < 6
- ( ua.indexOf( 'MSIE' ) !== -1 && parseFloat( ua.split( 'MSIE' )[1] ) < 6 ) ||
+ // Internet Explorer < 7
+ ( ua.indexOf( 'MSIE' ) !== -1 && parseFloat( ua.split( 'MSIE' )[1] ) < 7 ) ||
// Firefox < 3
( ua.indexOf( 'Firefox/' ) !== -1 && parseFloat( ua.split( 'Firefox/' )[1] ) < 3 ) ||
// BlackBerry < 6
+++ /dev/null
-/**
- * IE fixes javascript loaded by wikibits.js for IE <= 6.0
- */
-/*global isMSIE55:true, doneIETransform:true, doneIEAlphaFix:true */
-/*global hookit:true, fixalpha:true */
-( function ( mw, $ ) {
-
-var expandedURLs, hasClass;
-
-// Also returns true for IE6, 7, 8, 9 and 10. createPopup is removed in IE11.
-// Good thing this is only loaded for IE <= 6 by wikibits.
-// Might as well set it to true.
-isMSIE55 = ( window.showModalDialog && window.clipboardData && window.createPopup );
-doneIETransform = false;
-doneIEAlphaFix = false;
-
-hookit = function () {
- if ( !doneIETransform && document.getElementById && document.getElementById( 'bodyContent' ) ) {
- doneIETransform = true;
- fixalpha();
- }
-};
-
-if ( document.attachEvent ) {
- document.attachEvent( 'onreadystatechange', hookit );
-}
-
-// png alpha transparency fixes
-fixalpha = function ( logoId ) {
- // bg
- if ( isMSIE55 && !doneIEAlphaFix ) {
- var bg, imageUrl, linkFix, logoa, logospan, plogo;
- plogo = document.getElementById( logoId || 'p-logo' );
- if ( !plogo ) {
- return;
- }
-
- logoa = plogo.getElementsByTagName('a')[0];
- if ( !logoa ) {
- return;
- }
-
- bg = logoa.currentStyle.backgroundImage;
- imageUrl = bg.substring( 5, bg.length - 2 );
-
- doneIEAlphaFix = true;
-
- if ( imageUrl.substr( imageUrl.length - 4 ).toLowerCase() === '.png' ) {
- logospan = logoa.appendChild( document.createElement( 'span' ) );
-
- logoa.style.backgroundImage = 'none';
- logospan.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + imageUrl + ')';
- logospan.style.height = '100%';
- logospan.style.position = 'absolute';
- logospan.style.width = logoa.currentStyle.width;
- logospan.style.cursor = 'hand';
- // Center image with hack for IE5.5
- if ( document.documentElement.dir === 'rtl' ) {
- logospan.style.right = '50%';
- logospan.style.setExpression( 'marginRight', '"-" + (this.offsetWidth / 2) + "px"' );
- } else {
- logospan.style.left = '50%';
- logospan.style.setExpression( 'marginLeft', '"-" + (this.offsetWidth / 2) + "px"' );
- }
- logospan.style.top = '50%';
- logospan.style.setExpression( 'marginTop', '"-" + (this.offsetHeight / 2) + "px"' );
-
- linkFix = logoa.appendChild( logoa.cloneNode() );
- linkFix.style.position = 'absolute';
- linkFix.style.height = '100%';
- linkFix.style.width = '100%';
- }
- }
-};
-
-if ( isMSIE55 ) {
- // ondomready
- $( fixalpha );
-}
-
-// Expand links for printing
-hasClass = function ( classText, classWanted ) {
- var i = 0, classArr = classText.split(/\s/);
- for ( i = 0; i < classArr.length; i++ ) {
- if ( classArr[i].toLowerCase() === classWanted.toLowerCase() ) {
- return true;
- }
- }
- return false;
-};
-
-window.onbeforeprint = function () {
- var allLinks, contentEl, expandedLink, expandedText, i;
-
- expandedURLs = [];
- contentEl = document.getElementById( 'content' );
-
- if ( contentEl ) {
- allLinks = contentEl.getElementsByTagName( 'a' );
-
- for ( i = 0; i < allLinks.length; i++ ) {
- if ( hasClass( allLinks[i].className, 'external' ) && !hasClass( allLinks[i].className, 'free' ) ) {
- expandedLink = document.createElement( 'span' );
- expandedText = document.createTextNode( ' (' + allLinks[i].href + ')' );
- expandedLink.appendChild( expandedText );
- allLinks[i].parentNode.insertBefore( expandedLink, allLinks[i].nextSibling );
- expandedURLs[i] = expandedLink;
- }
- }
- }
-};
-
-window.onafterprint = function () {
- for ( var i = 0; i < expandedURLs.length; i++ ) {
- if ( expandedURLs[i] ) {
- expandedURLs[i].removeNode( true );
- }
- }
-};
-
-}( mediaWiki, jQuery ) );
var msg,
win = window,
ua = navigator.userAgent.toLowerCase(),
- isIE6 = ( /msie ([0-9]{1,}[\.0-9]{0,})/.exec( ua ) && parseFloat( RegExp.$1 ) <= 6.0 ),
onloadFuncts = [];
/**
return l;
};
-if ( isIE6 ) {
- win.importScriptURI( mw.config.get( 'stylepath' ) + '/common/IEFixes.js' );
-}
-
}( mediaWiki, jQuery ) );
'</table>'
);
$table.tablesorter();
- assert.equal( 0,
- $table.find( '#A2' ).prop( 'headerIndex' ),
- 'A2 should be a sort header'
+ assert.equal( $table.find( '#A2' ).prop( 'headerIndex' ),
+ 0,
+ 'A2 should not be a sort header'
);
- assert.equal( 1, // should be 2
- $table.find( '#C1' ).prop( 'headerIndex' ),
+ assert.equal( $table.find( '#C1' ).prop( 'headerIndex' ),
+ 1,
'C1 should be a sort header, but will sort the wrong column'
);
} );
'</tbody></table>' );
$table.tablesorter();
- assert.equal( 2, $table.find( 'tr:eq(1) th:eq(1)').prop('headerIndex'), 'Incorrect index of sort header' );
+ assert.equal( $table.find( 'tr:eq(1) th:eq(1)').prop('headerIndex'),
+ 2,
+ 'Incorrect index of sort header' );
}
);
'Mozilla/5.0 (Macintosh; I; Intel Mac OS X 10_6_7; ru-ru) AppleWebKit/534.31+ (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1',
// Opera 11+
'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.10',
- // Internet Explorer 6+
- 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)',
+ // Internet Explorer 7+
'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; en-US)',
'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; Media Center PC 4.0; SLCC1; .NET CLR 3.0.04320)',
'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0)',
'Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17'
],
// Supported: Uncompatible, serve basic content
- gradeB: [
- // Internet Explorer < 6
+ gradeC: [
+ // Internet Explorer < 7
'Mozilla/2.0 (compatible; MSIE 3.03; Windows 3.1)',
'Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)',
'Mozilla/4.0 (compatible; MSIE 5.0; Windows 98;)',
'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
+ 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)',
// Firefox < 3.6
'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2',
'Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.8.1.1) Gecko/20070311 Firefox/2.0.0.1',
);
} );
- QUnit.test( 'isCompatible( Grade B )', testcases.gradeB.length, function ( assert ) {
- $.each( testcases.gradeB, function ( i, ua ) {
+ QUnit.test( 'isCompatible( Grade C )', testcases.gradeC.length, function ( assert ) {
+ $.each( testcases.gradeC, function ( i, ua ) {
assert.strictEqual( isCompatible( ua ), false, ua );
}
);