Merge "mediawiki.ui: checkbox: Fix gap between bevel and border"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sat, 8 Nov 2014 20:08:35 +0000 (20:08 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sat, 8 Nov 2014 20:08:35 +0000 (20:08 +0000)
102 files changed:
.rubocop.yml
.travis.yml
CREDITS
RELEASE-NOTES-1.25
composer.json
docs/hooks.txt
includes/AutoLoader.php
includes/CategoryViewer.php
includes/Cookie.php [deleted file]
includes/EditPage.php
includes/GlobalFunctions.php
includes/WebResponse.php
includes/api/ApiHelp.php
includes/api/ApiParamInfo.php
includes/api/i18n/cs.json
includes/api/i18n/de.json
includes/api/i18n/es.json
includes/api/i18n/fa.json
includes/api/i18n/fr.json
includes/api/i18n/fy.json [new file with mode: 0644]
includes/api/i18n/ja.json
includes/api/i18n/lb.json
includes/api/i18n/mk.json
includes/api/i18n/vi.json
includes/api/i18n/zh-hans.json
includes/db/Database.php
includes/installer/DatabaseUpdater.php
includes/installer/PostgresInstaller.php
includes/installer/i18n/fy.json
includes/installer/i18n/mai.json
includes/installer/i18n/nap.json
includes/libs/ArrayUtils.php [new file with mode: 0644]
includes/libs/CSSJanus.php [deleted file]
includes/libs/Cookie.php [new file with mode: 0644]
includes/logging/LogEventsList.php
includes/profiler/Profiler.php
includes/profiler/ProfilerSimpleDB.php
includes/profiler/ProfilerSimpleText.php
includes/profiler/ProfilerSimpleTrace.php
includes/profiler/ProfilerSimpleUDP.php
includes/profiler/ProfilerStandard.php
includes/profiler/ProfilerStub.php
includes/profiler/TransactionProfiler.php
includes/specials/SpecialLog.php
includes/specials/SpecialNewimages.php
includes/specials/SpecialVersion.php
includes/upload/UploadBase.php
includes/utils/ArrayUtils.php [deleted file]
includes/utils/MWFunction.php
languages/i18n/be-tarask.json
languages/i18n/bn.json
languages/i18n/cdo.json
languages/i18n/el.json
languages/i18n/eo.json
languages/i18n/fy.json
languages/i18n/hi.json
languages/i18n/hu.json
languages/i18n/ia.json
languages/i18n/is.json
languages/i18n/ka.json
languages/i18n/lrc.json
languages/i18n/mai.json
languages/i18n/ms.json
languages/i18n/nl.json
languages/i18n/pa.json
languages/i18n/pms.json
languages/i18n/ses.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/vi.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
maintenance/sql.php
maintenance/update.php
resources/Resources.php
resources/lib/oojs-ui/i18n/br.json
resources/lib/oojs-ui/i18n/de.json
resources/lib/oojs-ui/i18n/et.json
resources/lib/oojs-ui/i18n/fi.json
resources/lib/oojs-ui/i18n/fy.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/it.json
resources/lib/oojs-ui/i18n/mk.json
resources/lib/oojs-ui/i18n/pl.json
resources/lib/oojs-ui/i18n/pt.json
resources/lib/oojs-ui/i18n/ro.json
resources/lib/oojs-ui/i18n/ru.json
resources/lib/oojs-ui/i18n/vi.json
resources/lib/oojs-ui/i18n/zh-hans.json
resources/lib/oojs-ui/oojs-ui-apex.css
resources/lib/oojs-ui/oojs-ui-apex.js
resources/lib/oojs-ui/oojs-ui-apex.svg.css
resources/lib/oojs-ui/oojs-ui-mediawiki.css
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui-mediawiki.svg.css
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/themes/mediawiki/images/icons/check-constructive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/check-constructive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/check-primary.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/check-primary.svg [deleted file]
resources/lib/oojs/oojs.jquery.js
resources/src/mediawiki.special/mediawiki.special.userlogin.signup.js
tests/phpunit/includes/db/ORMTableTest.php

index cc32da4..00479d1 100644 (file)
@@ -1 +1,8 @@
 inherit_from: .rubocop_todo.yml
+
+AllCops:
+    Exclude:
+        - 'extensions/**/*'
+        - 'skins/**/*'
+        - 'tests/frontend/node_modules/**/*'
+        - 'vendor/**/*'
index 6e07653..512d735 100644 (file)
@@ -12,13 +12,29 @@ php:
   - hhvm-nightly
   - 5.3
 
+env:
+  - dbtype=mysql
+  - dbtype=postgres
+
+# TODO: Travis CI's hhvm does not support PostgreSQL at the moment.
+matrix:
+  exclude:
+    - php: hhvm-nightly
+      env: dbtype=postgres
+
 services:
   - mysql
 
 branches:
-  # Test changes in master and in Wikimedia's production branches.
+  # Test changes in master, in Wikimedia's production and in arbitrary
+  # Travis CI branches.  The latter allows developers to enable Travis
+  # CI in their GitHub fork of wikimedia/mediawiki and then push
+  # changes they like to test to branches like
+  # "travis-ci/test-this-awesome-change" without having to mess up the
+  # master and wmf/* branches and their defined meaning.
   only:
     - master
+    - /^travis-ci\/.*$/
     - /^wmf\/.*$/
 
 before_install:
@@ -27,9 +43,11 @@ before_install:
 
 before_script:
   - composer install --prefer-source --quiet --no-interaction
+  - if [ "$dbtype" = postgres ]; then psql -c "CREATE DATABASE traviswiki WITH OWNER travis;" -U postgres; fi
   - >
       php maintenance/install.php traviswiki admin
       --pass travis
+      --dbtype "$dbtype"
       --dbname traviswiki
       --dbuser travis
       --dbpass ""
diff --git a/CREDITS b/CREDITS
index e70a035..730e54d 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -1,6 +1,6 @@
 {{int:version-credits-summary}}
 <!--
-MediaWiki 1.24 is a collaborative project released under the
+MediaWiki 1.25 is a collaborative project released under the
 GNU General Public License v2. We would like to recognize the
 following names for their contribution to the product.
 -->
@@ -109,7 +109,6 @@ following names for their contribution to the product.
 * Benny Situ
 * Bergi
 * Borislav Manolov
-* Brad Jorsch
 * Brent G
 * Brianna Laugher
 * Carlin
@@ -241,7 +240,7 @@ following names for their contribution to the product.
 * Waldir Pimenta
 * William Demchick
 * Yusuke Matsubara
-* Yuvaraj Pandian T
+* Yuvi Panda
 * Zachary Hauri
 
 == Translators ==
index aa0d5a7..b649c2b 100644 (file)
@@ -180,6 +180,8 @@ changes to languages because of Bugzilla reports.
   tag, instead of after the <text> and <sha1> tags.
   The new schema version is 0.10, the new schema URI is
   <https://www.mediawiki.org/xml/export-0.10.xsd>.
+* MWFunction::call() and MWFunction::callArray() were removed, having being
+  deprecated in 1.22.
 
 == Compatibility ==
 
index 851ad41..61f30ce 100644 (file)
@@ -17,7 +17,8 @@
        },
        "require": {
                "php": ">=5.3.3",
-               "psr/log": "1.0.0"
+               "psr/log": "1.0.0",
+               "cssjanus/cssjanus": "1.1.0"
        },
        "require-dev": {
                "phpunit/phpunit": "*"
index 0eb6572..7ec6ff5 100644 (file)
@@ -1695,6 +1695,13 @@ optional localisation messages
 &$ignored Array of ignored message keys
 &$optional Array of optional message keys
 
+'LogEventsListGetExtraInputs': When getting extra inputs to display on Special:Log
+for a specific log type
+$type: String of log type being displayed
+$logEventsList: LogEventsList object for context and access to the WebRequest
+&$input: string HTML of an input element
+
+
 'LogEventsListShowLogExtract': Called before the string is added to OutputPage.
 Returning false will prevent the string from being added to the OutputPage.
 &$s: html string to show for the log extract
@@ -2474,6 +2481,11 @@ UsersPager::getQueryInfo()
 $pager: The UsersPager instance
 $query: The query array to be returned
 
+'SpecialLogAddLogSearchRelations': Add log relations to the current log
+$type: String of the log type
+$request: WebRequest object for getting the value provided by the current user
+&$qc: Array for query conditions to add
+
 'SpecialMovepageAfterMove': Called after moving a page.
 $movePage: MovePageForm object
 $oldTitle: old title (object)
index 172bd49..e89e500 100644 (file)
@@ -48,8 +48,6 @@ $wgAutoloadLocalClasses = array(
        'CollationCkb' => 'includes/Collation.php',
        'CollationEt' => 'includes/Collation.php',
        'ConcatenatedGzipHistoryBlob' => 'includes/HistoryBlob.php',
-       'Cookie' => 'includes/Cookie.php',
-       'CookieJar' => 'includes/Cookie.php',
        'CurlHttpRequest' => 'includes/HttpFunctions.php',
        'DeprecatedGlobal' => 'includes/DeprecatedGlobal.php',
        'DerivativeRequest' => 'includes/WebRequest.php',
@@ -675,8 +673,9 @@ $wgAutoloadLocalClasses = array(
        'FormatJson' => 'includes/json/FormatJson.php',
 
        # includes/libs
-       'CSSJanus' => 'includes/libs/CSSJanus.php',
-       'CSSJanusTokenizer' => 'includes/libs/CSSJanus.php',
+       'ArrayUtils' => 'includes/libs/ArrayUtils.php',
+       'Cookie' => 'includes/libs/Cookie.php',
+       'CookieJar' => 'includes/libs/Cookie.php',
        'CSSMin' => 'includes/libs/CSSMin.php',
        'GenericArrayObject' => 'includes/libs/GenericArrayObject.php',
        'HashRing' => 'includes/libs/HashRing.php',
@@ -1153,7 +1152,6 @@ $wgAutoloadLocalClasses = array(
        'UploadStashNoSuchKeyException' => 'includes/upload/UploadStash.php',
 
        # includes/utils
-       'ArrayUtils' => 'includes/utils/ArrayUtils.php',
        'CdbException' => 'includes/utils/Cdb.php',
        'CdbFunctions' => 'includes/utils/CdbPHP.php',
        'CdbReader' => 'includes/utils/Cdb.php',
index 7581ae4..f68da95 100644 (file)
@@ -136,7 +136,7 @@ class CategoryViewer extends ContextSource {
                }
 
                $lang = $this->getLanguage();
-               $langAttribs = array( 'lang' => $lang->getCode(), 'dir' => $lang->getDir() );
+               $langAttribs = array( 'lang' => $lang->getHtmlCode(), 'dir' => $lang->getDir() );
                # put a div around the headings which are in the user language
                $r = Html::openElement( 'div', $langAttribs ) . $r . '</div>';
 
@@ -515,7 +515,7 @@ class CategoryViewer extends ContextSource {
                }
 
                $pageLang = $this->title->getPageLanguage();
-               $attribs = array( 'lang' => $pageLang->getCode(), 'dir' => $pageLang->getDir(),
+               $attribs = array( 'lang' => $pageLang->getHtmlCode(), 'dir' => $pageLang->getDir(),
                        'class' => 'mw-content-' . $pageLang->getDir() );
                $list = Html::rawElement( 'div', $attribs, $list );
 
diff --git a/includes/Cookie.php b/includes/Cookie.php
deleted file mode 100644 (file)
index cb04190..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-<?php
-/**
- * Cookie for HTTP requests.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup HTTP
- */
-
-class Cookie {
-       protected $name;
-       protected $value;
-       protected $expires;
-       protected $path;
-       protected $domain;
-       protected $isSessionKey = true;
-       // TO IMPLEMENT  protected $secure
-       // TO IMPLEMENT? protected $maxAge (add onto expires)
-       // TO IMPLEMENT? protected $version
-       // TO IMPLEMENT? protected $comment
-
-       function __construct( $name, $value, $attr ) {
-               $this->name = $name;
-               $this->set( $value, $attr );
-       }
-
-       /**
-        * Sets a cookie.  Used before a request to set up any individual
-        * cookies. Used internally after a request to parse the
-        * Set-Cookie headers.
-        *
-        * @param string $value The value of the cookie
-        * @param array $attr Possible key/values:
-        *        expires A date string
-        *        path    The path this cookie is used on
-        *        domain  Domain this cookie is used on
-        * @throws MWException
-        */
-       public function set( $value, $attr ) {
-               $this->value = $value;
-
-               if ( isset( $attr['expires'] ) ) {
-                       $this->isSessionKey = false;
-                       $this->expires = strtotime( $attr['expires'] );
-               }
-
-               if ( isset( $attr['path'] ) ) {
-                       $this->path = $attr['path'];
-               } else {
-                       $this->path = '/';
-               }
-
-               if ( isset( $attr['domain'] ) ) {
-                       if ( self::validateCookieDomain( $attr['domain'] ) ) {
-                               $this->domain = $attr['domain'];
-                       }
-               } else {
-                       throw new MWException( 'You must specify a domain.' );
-               }
-       }
-
-       /**
-        * Return the true if the cookie is valid is valid.  Otherwise,
-        * false.  The uses a method similar to IE cookie security
-        * described here:
-        * http://kuza55.blogspot.com/2008/02/understanding-cookie-security.html
-        * A better method might be to use a blacklist like
-        * http://publicsuffix.org/
-        *
-        * @todo fixme fails to detect 3-letter top-level domains
-        * @todo fixme fails to detect 2-letter top-level domains for single-domain use (probably
-        * not a big problem in practice, but there are test cases)
-        *
-        * @param string $domain The domain to validate
-        * @param string $originDomain (optional) the domain the cookie originates from
-        * @return bool
-        */
-       public static function validateCookieDomain( $domain, $originDomain = null ) {
-               $dc = explode( ".", $domain );
-
-               // Don't allow a trailing dot or addresses without a or just a leading dot
-               if ( substr( $domain, -1 ) == '.' ||
-                       count( $dc ) <= 1 ||
-                       count( $dc ) == 2 && $dc[0] === ''
-               ) {
-                       return false;
-               }
-
-               // Only allow full, valid IP addresses
-               if ( preg_match( '/^[0-9.]+$/', $domain ) ) {
-                       if ( count( $dc ) != 4 ) {
-                               return false;
-                       }
-
-                       if ( ip2long( $domain ) === false ) {
-                               return false;
-                       }
-
-                       if ( $originDomain == null || $originDomain == $domain ) {
-                               return true;
-                       }
-
-               }
-
-               // Don't allow cookies for "co.uk" or "gov.uk", etc, but allow "supermarket.uk"
-               if ( strrpos( $domain, "." ) - strlen( $domain ) == -3 ) {
-                       if ( ( count( $dc ) == 2 && strlen( $dc[0] ) <= 2 )
-                               || ( count( $dc ) == 3 && strlen( $dc[0] ) == "" && strlen( $dc[1] ) <= 2 ) ) {
-                               return false;
-                       }
-                       if ( ( count( $dc ) == 2 || ( count( $dc ) == 3 && $dc[0] == '' ) )
-                               && preg_match( '/(com|net|org|gov|edu)\...$/', $domain ) ) {
-                               return false;
-                       }
-               }
-
-               if ( $originDomain != null ) {
-                       if ( substr( $domain, 0, 1 ) != '.' && $domain != $originDomain ) {
-                               return false;
-                       }
-
-                       if ( substr( $domain, 0, 1 ) == '.'
-                               && substr_compare(
-                                       $originDomain,
-                                       $domain,
-                                       -strlen( $domain ),
-                                       strlen( $domain ),
-                                       true
-                               ) != 0
-                       ) {
-                               return false;
-                       }
-               }
-
-               return true;
-       }
-
-       /**
-        * Serialize the cookie jar into a format useful for HTTP Request headers.
-        *
-        * @param string $path The path that will be used. Required.
-        * @param string $domain The domain that will be used. Required.
-        * @return string
-        */
-       public function serializeToHttpRequest( $path, $domain ) {
-               $ret = '';
-
-               if ( $this->canServeDomain( $domain )
-                               && $this->canServePath( $path )
-                               && $this->isUnExpired() ) {
-                       $ret = $this->name . '=' . $this->value;
-               }
-
-               return $ret;
-       }
-
-       /**
-        * @param string $domain
-        * @return bool
-        */
-       protected function canServeDomain( $domain ) {
-               if ( $domain == $this->domain
-                       || ( strlen( $domain ) > strlen( $this->domain )
-                               && substr( $this->domain, 0, 1 ) == '.'
-                               && substr_compare(
-                                       $domain,
-                                       $this->domain,
-                                       -strlen( $this->domain ),
-                                       strlen( $this->domain ),
-                                       true
-                               ) == 0
-                       )
-               ) {
-                       return true;
-               }
-
-               return false;
-       }
-
-       /**
-        * @param string $path
-        * @return bool
-        */
-       protected function canServePath( $path ) {
-               return ( $this->path && substr_compare( $this->path, $path, 0, strlen( $this->path ) ) == 0 );
-       }
-
-       /**
-        * @return bool
-        */
-       protected function isUnExpired() {
-               return $this->isSessionKey || $this->expires > time();
-       }
-}
-
-class CookieJar {
-       private $cookie = array();
-
-       /**
-        * Set a cookie in the cookie jar. Make sure only one cookie per-name exists.
-        * @see Cookie::set()
-        * @param string $name
-        * @param string $value
-        * @param array $attr
-        */
-       public function setCookie( $name, $value, $attr ) {
-               /* cookies: case insensitive, so this should work.
-                * We'll still send the cookies back in the same case we got them, though.
-                */
-               $index = strtoupper( $name );
-
-               if ( isset( $this->cookie[$index] ) ) {
-                       $this->cookie[$index]->set( $value, $attr );
-               } else {
-                       $this->cookie[$index] = new Cookie( $name, $value, $attr );
-               }
-       }
-
-       /**
-        * @see Cookie::serializeToHttpRequest
-        * @param string $path
-        * @param string $domain
-        * @return string
-        */
-       public function serializeToHttpRequest( $path, $domain ) {
-               $cookies = array();
-
-               foreach ( $this->cookie as $c ) {
-                       $serialized = $c->serializeToHttpRequest( $path, $domain );
-
-                       if ( $serialized ) {
-                               $cookies[] = $serialized;
-                       }
-               }
-
-               return implode( '; ', $cookies );
-       }
-
-       /**
-        * Parse the content of an Set-Cookie HTTP Response header.
-        *
-        * @param string $cookie
-        * @param string $domain Cookie's domain
-        * @return null
-        */
-       public function parseCookieResponseHeader( $cookie, $domain ) {
-               $len = strlen( 'Set-Cookie:' );
-
-               if ( substr_compare( 'Set-Cookie:', $cookie, 0, $len, true ) === 0 ) {
-                       $cookie = substr( $cookie, $len );
-               }
-
-               $bit = array_map( 'trim', explode( ';', $cookie ) );
-
-               if ( count( $bit ) >= 1 ) {
-                       list( $name, $value ) = explode( '=', array_shift( $bit ), 2 );
-                       $attr = array();
-
-                       foreach ( $bit as $piece ) {
-                               $parts = explode( '=', $piece );
-                               if ( count( $parts ) > 1 ) {
-                                       $attr[strtolower( $parts[0] )] = $parts[1];
-                               } else {
-                                       $attr[strtolower( $parts[0] )] = true;
-                               }
-                       }
-
-                       if ( !isset( $attr['domain'] ) ) {
-                               $attr['domain'] = $domain;
-                       } elseif ( !Cookie::validateCookieDomain( $attr['domain'], $domain ) ) {
-                               return null;
-                       }
-
-                       $this->setCookie( $name, $value, $attr );
-               }
-       }
-}
index fa19c78..d106da2 100644 (file)
@@ -2956,7 +2956,7 @@ HTML
                );
 
                $pageLang = $this->mTitle->getPageLanguage();
-               $attribs['lang'] = $pageLang->getCode();
+               $attribs['lang'] = $pageLang->getHtmlCode();
                $attribs['dir'] = $pageLang->getDir();
 
                $wgOut->addHTML( Html::textarea( $name, $wikitext, $attribs ) );
index bb80770..eab8031 100644 (file)
@@ -1161,7 +1161,7 @@ function wfErrorLog( $text, $file ) {
  * @todo document
  */
 function wfLogProfilingData() {
-       global $wgRequestTime, $wgDebugLogFile, $wgDebugLogGroups, $wgDebugRawPage;
+       global $wgRequestTime, $wgDebugLogGroups, $wgDebugRawPage;
        global $wgProfileLimit, $wgUser, $wgRequest;
 
        StatCounter::singleton()->flush();
index ad9f4e6..d39f884 100644 (file)
@@ -37,6 +37,22 @@ class WebResponse {
                header( $string, $replace, $http_response_code );
        }
 
+       /**
+        * Get a response header
+        * @param string $key The name of the header to get (case insensitive).
+        * @return string|null The header value (if set); null otherwise.
+        * @since 1.25
+        */
+       public function getHeader( $key ) {
+               foreach ( headers_list() as $header ) {
+                       list( $name, $val ) = explode( ':', $header, 2 );
+                       if ( !strcasecmp( $name, $key ) ) {
+                               return trim( $val );
+                       }
+               }
+               return null;
+       }
+
        /**
         * Set the browser cookie
         * @param string $name Name of cookie
@@ -150,7 +166,7 @@ class FauxResponse extends WebResponse {
         * @param string $key The name of the header to get (case insensitive).
         * @return string
         */
-       public function getheader( $key ) {
+       public function getHeader( $key ) {
                $key = strtoupper( $key );
 
                if ( isset( $this->headers[$key] ) ) {
index b33b087..5d46a07 100644 (file)
@@ -32,8 +32,6 @@
  */
 class ApiHelp extends ApiBase {
        public function execute() {
-               global $wgContLang;
-
                $params = $this->extractRequestParams();
                $modules = array();
 
index b1c092e..17773a7 100644 (file)
@@ -37,8 +37,6 @@ class ApiParamInfo extends ApiBase {
        }
 
        public function execute() {
-               global $wgContLang;
-
                // Get parameters
                $params = $this->extractRequestParams();
 
index a0751b8..f8fbdc1 100644 (file)
@@ -15,7 +15,7 @@
        "apihelp-main-param-servedby": "Zahrnout do odpovědi název hostitele, který požadavek obsloužil.",
        "apihelp-main-param-curtimestamp": "Zahrnout do odpovědi aktuální časové razítko.",
        "apihelp-main-param-origin": "Pokud k API přistupujete pomocí mezidoménového AJAXového požadavku (CORS), nastavte tento parametr na doménu původu. Musí být součástí všech předběžných požadavků, takže musí být součástí URI požadavku (nikoli těla POSTu). Hodnota musí přesně odpovídat jednomu z původů v hlavičce Origin:, takže musí být nastavena na něco jako http://en.wikipedia.org nebo https://meta.wikimedia.org. Pokud parametr neodpovídá hlavičce Origin:, bude vrácena odpověď 403. Pokud parametr odpovídá hlavičce Origin: a tento původ je na bílé listině, bude nastavena hlavička Access-Control-Allow-Origin.",
-       "apihelp-main-param-uselang": "Jazyk, který se má použít pro překlad hlášení. Seznam kódů lze načíst z [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo&siprop=languages]] nebo uveďte „user“ pro použití předvoleného jazyka aktuálního uživatele.",
+       "apihelp-main-param-uselang": "Jazyk, který se má použít pro překlad hlášení. Seznam kódů lze načíst z [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] se siprop=languages nebo uveďte „user“ pro použití předvoleného jazyka aktuálního uživatele či „content“ pro použití jazyka obsahu této wiki.",
        "apihelp-help-description": "Zobrazuje nápovědu k uvedeným modulům.",
        "apihelp-help-param-modules": "Moduly, pro které se má zobrazit nápověda (hodnoty parametrů action= a format= nebo „main“). Submoduly lze zadávat pomocí „+“.",
        "apihelp-help-param-submodules": "Zahrnout nápovědu pro submoduly uvedeného modulu.",
index df676ff..7bdc693 100644 (file)
@@ -17,7 +17,7 @@
        "apihelp-main-param-servedby": "Den von der Anfrage bereitgestellten Hostnamen in den Ergebnissen einschließen.",
        "apihelp-main-param-curtimestamp": "Den aktuellen Zeitstempel im Ergebnis einschließen.",
        "apihelp-main-param-origin": "Beim Zugriff auf die API mit einer Kreuz-Domain-AJAX-Anfrage (CORS) lege dies auf die entstehende Domain fest. Dies muss in einer beliebigen Vorfluganfrage eingeschlossen werden und deshalb ein Teil der Anfrage-URI sein (nicht der POST-Body). Dies muss genau einem der Ursprünge im Origin: header entsprechen, so muss es auf etwas festgelegt werden wie http://de.wikipedia.org oder https://meta.wikimedia.org. Falls dieser Parameter nicht dem Origin: header entspricht, wird eine 403-Antwort zurückgegeben. Falls dieser Parameter dem Origin: header entspricht und der Ursprung weißgelistet ist, wird ein Zugriffskontrolle-erlauben-Ursprung festgelegt.",
-       "apihelp-main-param-uselang": "Zu verwendende Sprache für Nachrichtenübersetzungen. Eine Liste der Codes kann von [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo&siprop=languages]] abgerufen werden oder gib „user“ an zum Verwenden der aktuellen Benutzerspracheinstellung.",
+       "apihelp-main-param-uselang": "Zu verwendende Sprache für Nachrichtenübersetzungen. Eine Liste der Codes kann von [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] mit siprop=languages abgerufen werden. Gib „user“ zum Verwenden der aktuellen Benutzerspracheinstellung oder „content“ an, um die Inhaltssprache des Wikis zu verwenden.",
        "apihelp-block-description": "Einen Benutzer sperren.",
        "apihelp-block-param-user": "Benutzername, IP-Adresse oder IP-Bereich, den du sperren willst.",
        "apihelp-block-param-expiry": "Ablaufzeit. Kann relativ (z.&nbsp;B. „5 Monate“ oder „2 Wochen“) oder absolut (z.&nbsp;B. „2014-09-18T12:34:56Z“) sein. Falls auf „unbeschränkt“ oder „niemals“ gesetzt, wird die Sperre nie ablaufen.",
        "apihelp-feedrecentchanges-example-30days": "Letzte Änderungen für 30 Tage anzeigen",
        "apihelp-feedwatchlist-description": "Gibt einen Beobachtungslisten-Feed zurück.",
        "apihelp-feedwatchlist-param-feedformat": "Das Format des Feeds.",
+       "apihelp-feedwatchlist-param-hours": "Seiten auflisten, die innerhalb dieser Anzahl Stunden ab jetzt geändert wurden.",
        "apihelp-feedwatchlist-param-linktosections": "Verlinke direkt zum veränderten Abschnitt, wenn möglich.",
        "apihelp-feedwatchlist-example-default": "Den Beobachtungslisten-Feed anzeigen",
        "apihelp-feedwatchlist-example-all6hrs": "Zeige alle Änderungen an beobachteten Seiten der letzten 6 Stunden.",
        "apihelp-options-example-complex": "Setzt alle Einstellungen zurück, dann „skin“ und „nickname“ festlegen",
        "apihelp-paraminfo-description": "Ruft Informationen über API-Module ab.",
        "apihelp-paraminfo-param-helpformat": "Format der Hilfe-Zeichenfolgen.",
+       "apihelp-parse-param-preview": "Im Vorschaumodus parsen.",
        "apihelp-parse-example-page": "Eine Seite parsen.",
+       "apihelp-parse-example-text": "Wikitext parsen.",
        "apihelp-protect-example-protect": "Schützt eine Seite",
        "apihelp-purge-param-forcelinkupdate": "Aktualisiert die Linktabellen.",
        "apihelp-query+allcategories-description": "Alle Kategorien aufzählen.",
index 5768706..ebd5f1d 100644 (file)
@@ -1,9 +1,19 @@
 {
        "@metadata": {
                "authors": [
-                       "Macofe"
+                       "Macofe",
+                       "Effy"
                ]
        },
+       "apihelp-block-description": "Bloquear usuario",
+       "apihelp-compare-param-fromtitle": "Primer título para comparar",
+       "apihelp-createaccount-description": "Crear una nueva cuenta de usuario.",
+       "apihelp-createaccount-param-name": "Nombre de usuario.",
+       "apihelp-delete-param-watch": "Añadir esta página a su lista de seguimiento",
+       "apihelp-delete-param-unwatch": "Borrar esta página de su lista de seguimiento",
+       "apihelp-edit-description": "Crear y editar páginas.",
+       "apihelp-expandtemplates-param-title": "Título de la página.",
+       "apihelp-feedrecentchanges-param-hideminor": "Ocultar cambios menores.",
        "apihelp-query+allusers-param-activeusers": "Solo listar usuarios activos en {{PLURAL:$1|el último día|los $1 últimos días}}.",
        "apihelp-query+images-description": "Devuelve todos los archivos contenidos en las páginas dadas.",
        "apihelp-query+search-param-info": "Qué metadatos devolver.",
index 0243135..265397f 100644 (file)
@@ -5,7 +5,8 @@
                        "Arash.pt",
                        "Fatemi127",
                        "Reza1615",
-                       "KhabarNegar"
+                       "KhabarNegar",
+                       "Sahehco"
                ]
        },
        "apihelp-main-param-action": "کدام عملیات را انجام دهد.",
@@ -76,6 +77,7 @@
        "apihelp-emailuser-param-subject": "موضوع هدر.",
        "apihelp-emailuser-param-text": "متن رایانه.",
        "apihelp-emailuser-param-ccme": "ارسال یک نسخه از رایانه به شما.",
+       "apihelp-expandtemplates-description": "گسترش همه الگوها در ویکی نبشته",
        "apihelp-expandtemplates-param-title": "عنوان صفحه",
        "apihelp-expandtemplates-param-text": "تبدیل برای ویکی‌متن.",
        "apihelp-feedcontributions-description": "خوراک مشارکت‌های یک کاربر را برمی‌گرداند.",
index 729b946..2077c85 100644 (file)
@@ -16,7 +16,7 @@
        "apihelp-main-param-servedby": "Inclure le nom d’hôte qui a renvoyé la requête dans les résultats.",
        "apihelp-main-param-curtimestamp": "Inclure l’horodatage actuel dans le résultat.",
        "apihelp-main-param-origin": "En accédant à l’API en utilisant une requête AJAX inter-domaines (CORS), mettre le domaine d’origine dans ce paramètre. Il doit être inclus dans toute requête de pre-flight, et ne doit donc pas faire partie de l’URI de la requête (ni du corps du POST). Il doit correspondre exactement à une des origines dans l’entête Origin: header, donc il doit être fixé avec quelque chose comme http://en.wikipedia.org or https://meta.wikimedia.org. Si ce paramètre ne correspond pas à l’entête Origin:, une réponse 403 sera renvoyée. Si ce paramètre correspond à l’entête Origin: et que l’origine est en liste blanche, un entête Access-Control-Allow-Origin sera positionné.",
-       "apihelp-main-param-uselang": "Langue à utiliser pour les traductions de message. Une liste de codes peut être analysée depuis [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo&siprop=languages]], ou en spécifiant « user » pour utiliser la préférence de langue de l’utilisateur actuel.",
+       "apihelp-main-param-uselang": "Langue à utiliser pour les traductions de message. Une liste de codes peut être analysée depuis [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] avec siprop=languages, ou en spécifiant « user » pour utiliser la préférence de langue de l’utilisateur actuel, ou en spécifiant « content » pour utiliser le langage du contenu de ce wiki.",
        "apihelp-block-description": "Bloquer un utilisateur.",
        "apihelp-block-param-user": "Nom d’utilisateur, adresse IP ou plage d’adresses IP que vous voulez bloquer.",
        "apihelp-block-param-expiry": "Durée d’expiration. Peut être relative (par ex. « 5 mois » ou « 2 semaines ») ou absolue (par ex. « 2014-09-18T12:34:56Z »). Si elle est mise à « infinite », « indefinite » ou « never », le blocage n’expirera jamais.",
        "apihelp-query+allcategories-param-prop": "Quelles propriétés récupérer :\n;size:Ajoute le nombre de pages dans la catégorie.\n;hidden:Marque les catégories qui sont cachées avec _&#95;HIDDENCAT_&#95;.",
        "apihelp-query+allcategories-example-size": "Lister les catégories avec l’information sur le nombre de pages dans chacune",
        "apihelp-query+allcategories-example-generator": "Récupérer l’information sur la page de catégorie elle-même pour les catégories commençant par « List »",
+       "apihelp-query+alldeletedrevisions-description": "Lister toutes les révisions supprimées par un utilisateur ou dans un espace de noms.",
+       "apihelp-query+alldeletedrevisions-paraminfo-useronly": "Utilisable uniquement avec $3user.",
+       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Impossible à utiliser avec $3user.",
+       "apihelp-query+alldeletedrevisions-param-start": "L’horodatage auquel démarrer l’énumération.",
+       "apihelp-query+alldeletedrevisions-param-end": "L’horodatage auquel arrêter l’énumération.",
+       "apihelp-query+alldeletedrevisions-param-from": "Démarrer la liste à ce titre.",
+       "apihelp-query+alldeletedrevisions-param-to": "Arrêter la liste à ce titre.",
+       "apihelp-query+alldeletedrevisions-param-prefix": "Rechercher tous les titres de page commençant par cette valeur.",
+       "apihelp-query+alldeletedrevisions-param-tag": "Lister uniquement les révisions marquées avec cette balise.",
+       "apihelp-query+alldeletedrevisions-param-user": "Lister uniquement les révisions par cet utilisateur.",
+       "apihelp-query+alldeletedrevisions-param-excludeuser": "Ne pas lister les révisions par cet utilisateur.",
+       "apihelp-query+alldeletedrevisions-param-namespace": "Lister uniquement les pages dans cet espace de noms.",
+       "apihelp-query+alldeletedrevisions-param-miser-user-namespace": "'''REMARQUE :''' Du fait du [https://www.mediawiki.org/wiki/Manual:$wgMiserMode mode minimal], utiliser $1user et $1namespace ensemble peut aboutir à moins de résultats renvoyés que « $1limit » avant de continuer ; dans les cas extrêmes, zéro résultats peuvent être renvoyés.",
+       "apihelp-query+alldeletedrevisions-param-generatetitles": "Utilisé comme générateur, générer des titres plutôt que des IDs de révision.",
+       "apihelp-query+alldeletedrevisions-example-user": "Lister les 50 dernières contributions supprimées par User:Exemple",
+       "apihelp-query+alldeletedrevisions-example-ns-main": "Lister les 50 premières révisions supprimées dans l’espace de noms principal",
        "apihelp-query+allfileusages-description": "Lister toutes les utilisations de fichier, y compris ceux n’existant pas.",
        "apihelp-query+allfileusages-param-from": "Le titre du fichier depuis lequel commencer l’énumération.",
        "apihelp-query+allfileusages-param-to": "Le titre du fichier auquel arrêter l’énumération.",
        "apihelp-query+contributors-param-excluderights": "Exclure les utilisateurs ayant les droits donnés. Ne pas inclure les droits accordés par les groupes implicites ou auto-promus comme *, user ou autoconfirmed.",
        "apihelp-query+contributors-param-limit": "Combien de contributeurs renvoyer.",
        "apihelp-query+contributors-example-simple": "Afficher les contributeurs dans la [[Main Page]]",
+       "apihelp-query+deletedrevisions-description": "Obtenir des informations sur la révision supprimée.\n\nPeut être utilisé de différentes manières :\n# Obtenir les révisions supprimées pour un ensemble de pages, en donnant les titres ou les ids de page. Ordonné par titre  et horodatage.\n# Obtenir des données sur un ensemble de révisions supprimées en donnant leurs IDs et leurs ids de révision. Ordonné par ID de révision.",
+       "apihelp-query+deletedrevisions-param-start": "L’horodatage auquel démarrer l’énumération. Ignoré lors du traitement d’une liste d’IDs de révisions.",
+       "apihelp-query+deletedrevisions-param-end": "L’horodatage auquel arrêter l’énumération. Ignoré lors du traitement d’une liste d’IDs de révisions.",
+       "apihelp-query+deletedrevisions-param-tag": "Lister uniquement les révisions marquées par cette balise.",
+       "apihelp-query+deletedrevisions-param-user": "Lister uniquement les révisions faites par cet utilisateur.",
+       "apihelp-query+deletedrevisions-param-excludeuser": "Ne pas lister les révisions faites par cet utilisateur.",
+       "apihelp-query+deletedrevisions-param-limit": "Le nombre maximal de révisions à lister.",
+       "apihelp-query+deletedrevisions-param-prop": "Quelles propriétés obtenir :\n;revid:Ajoute l’ID de la révision supprimée.\n;parentid:Ajoute l’ID de la révision précédente de la page.\n;user:Ajoute l’utilisateur ayant fait la révision.\n;userid:Ajoute l’ID de l’utilisateur ayant fait la révision.\n;comment:Ajoute le commentaire de la révision.\n;parsedcomment:Ajoute le commentaire analysé de la révision.\n;minor:Marque si une révision est mineure.\n;len:Ajoute la taille (en octets) de la révision.\n;sha1:Ajoute le SHA-1 (base 16) de la révision.\n;content:Ajoute le contenu de la révision.\n;tags:Balises pour la révision.",
+       "apihelp-query+deletedrevisions-example-titles": "Lister les révisions supprimées de [[Main Page]] et [[Talk:Main Page]], avec leur contenu",
+       "apihelp-query+deletedrevisions-example-revids": "Lister les informations pour la révision supprimée 123456",
        "apihelp-query+deletedrevs-description": "Lister les révisions supprimées.\n\nOpère selon trois modes :\n# Lister les révisions supprimées pour les titres donnés, triées par horodatage.\n# Lister les contributions supprimées pour l’utilisateur donné, triées par horodatage (pas de titres spécifiés).\n# Lister toutes les révisions supprimées dans l’espace de noms donné, triées par titre et horodatage (aucun titre spécifié, $1user non positionné).\n\nCertains paramètres ne s’appliquent qu’à certains modes et sont ignorés dans les autres.",
        "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Mode|Modes}} : $2",
        "apihelp-query+deletedrevs-param-start": "L’horodatage auquel démarrer l’énumération.",
        "apihelp-query+imageinfo-param-end": "Horodatage auquel arrêter la liste.",
        "apihelp-query+imageinfo-param-urlwidth": "Si $2prop=url est défini, une URL vers une image à l’échelle de cette largeur sera renvoyée.\nPour des raisons de performance si cette option est utilisée, pas plus de $1 images mises à l’échelle seront renvoyées.",
        "apihelp-query+imageinfo-param-urlheight": "Similaire à $1urlwidth.",
+       "apihelp-query+imageinfo-param-metadataversion": "Version de métadonnées à utiliser. Si « latest » est spécifié, utiliser la dernière version. Par défaut à « 1 » pour la compatibilité ascendante.",
+       "apihelp-query+imageinfo-param-extmetadatalanguage": "Quelle langue pour analyser extmetadata. Cela affecte à la fois quelle traduction analyser, s’il y en a plusieurs, et comment les choses comme les nombres et d’autres valeurs sont mises en forme.",
+       "apihelp-query+imageinfo-param-extmetadatamultilang": "Si des traductions pour la propriété extmetadata sont disponibles, les analyser toutes.",
+       "apihelp-query+imageinfo-param-extmetadatafilter": "Si spécifié et non vide, seules ces clés seront renvoyées pour $1prop=extmetadata.",
+       "apihelp-query+imageinfo-param-urlparam": "Une chaîne de paramètre spécifique à l’analyseur. Par exemple, les PDFs peuvent utiliser « page15-100px ». $1urlwidth doit être utilisé et être cohérent avec $1urlparam.",
+       "apihelp-query+imageinfo-param-localonly": "Rechercher les fichiers uniquement dans le référentiel local.",
+       "apihelp-query+imageinfo-example-simple": "Analyser les informations sur la version actuelle de [[:File:Albert Einstein Head.jpg]]",
+       "apihelp-query+imageinfo-example-dated": "Analyser les informations sur les versions de [[:File:Test.jpg]] depuis 2008",
+       "apihelp-query+images-description": "Renvoie tous les fichiers contenus dans les pages fournies.",
+       "apihelp-query+images-param-limit": "Combien de fichiers renvoyer.",
+       "apihelp-query+images-param-images": "Lister uniquement ces fichiers. Utile pour vérifier si une page donnée contient un fichier donné.",
+       "apihelp-query+images-param-dir": "La direction dans laquelle lister.",
+       "apihelp-query+images-example-simple": "Obtenir une liste des fichiers utilisés dans [[Main Page]]",
+       "apihelp-query+images-example-generator": "Obtenir des informations sur tous les fichiers utilisés dans [[Main Page]]",
+       "apihelp-query+imageusage-description": "Trouver toutes les pages qui utilisent le titre de l’image donné.",
+       "apihelp-query+imageusage-param-title": "Titre à rechercher. Impossible à utiliser avec $1pageid.",
+       "apihelp-query+imageusage-param-pageid": "ID de la page à rechercher. Impossible à utiliser avec $1title.",
+       "apihelp-query+imageusage-param-namespace": "L’espace de noms à énumérer.",
+       "apihelp-query+imageusage-param-dir": "La direction dans laquelle lister.",
+       "apihelp-query+imageusage-param-filterredir": "Comment filtrer les redirections. Si mis à nonredirects quand $1redirect est activé, cela ne s’appliquera qu’au second niveau.",
+       "apihelp-query+imageusage-param-limit": "Combien de pages renvoyer au total. Si $1redirect est activé, la limite s’applique à chaque niveau séparément (ce qui veut dire que vous pouvez obtenir jusqu’à 2 * limite résultats).",
+       "apihelp-query+imageusage-param-redirect": "Si le lien vers une page est une redirection, trouver toutes les pages qui ont aussi un lien vers cette redirection. La limite maximale est divisée par deux.",
+       "apihelp-query+imageusage-example-simple": "Afficher les pages utilisant [[:File:Albert Einstein Head.jpg]]",
+       "apihelp-query+imageusage-example-generator": "Obtenir des informations sur les pages utilisant [[:File:Albert Einstein Head.jpg]]",
+       "apihelp-query+info-description": "Obtenir les informations de base sur la page.",
        "apihelp-format-example-generic": "Mettre en forme le résultat de la requête dans le format $1",
        "apihelp-dbg-description": "Extraire les données au format de var_export() de PHP.",
        "apihelp-dbgfm-description": "Extraire les données au format de var_export() de PHP (affiché proprement en HTML).",
diff --git a/includes/api/i18n/fy.json b/includes/api/i18n/fy.json
new file mode 100644 (file)
index 0000000..8013687
--- /dev/null
@@ -0,0 +1,10 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Robin0van0der0vliet"
+               ]
+       },
+       "apihelp-login-param-name": "Brûkersnamme.",
+       "apihelp-login-param-password": "Wachtwurd.",
+       "apihelp-userrights-param-user": "Brûkersnamme."
+}
index ed02edf..46da945 100644 (file)
@@ -12,7 +12,7 @@
        "apihelp-main-param-requestid": "任意の値を指定でき、その値が結果に含められます。リクエストを識別するために使用できます。",
        "apihelp-main-param-servedby": "リクエストを処理したホスト名を結果に含めます。",
        "apihelp-main-param-curtimestamp": "現在のタイムスタンプを結果に含めます。",
-       "apihelp-main-param-uselang": "メッセージの翻訳に使用する言語です。言語の一覧は [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo&siprop=languages]] から取得できます。\"user\" を指定することで、現在の利用者の個人設定の言語を使用することもできます。",
+       "apihelp-main-param-uselang": "メッセージの翻訳に使用する言語です。コードの一覧は [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] に siprop=languages を付けることで取得できます。\"user\" を指定することで現在の利用者の個人設定の言語を、\"content\" を指定することでこのウィキの本文の言語を使用することもできます。",
        "apihelp-help-description": "指定したモジュールのヘルプを表示します。",
        "apihelp-help-param-modules": "ヘルプを表示するモジュールです (action= パラメーターおよび format= パラメーターの値、または \"main\")。\"+\" を使用して下位モジュールを指定できます。",
        "apihelp-help-param-submodules": "指定したモジュールの下位モジュールのヘルプを含めます。",
index 4040c1f..8fa5ca9 100644 (file)
@@ -40,6 +40,9 @@
        "apihelp-options-example-reset": "All Astellungen zrécksetzen",
        "apihelp-protect-example-protect": "Eng Säit spären",
        "apihelp-query+allcategories-description": "All Kategorien opzielen.",
+       "apihelp-query+alldeletedrevisions-paraminfo-useronly": "Kann nëmme mam $3user benotzt ginn.",
+       "apihelp-query+alldeletedrevisions-param-user": "Nëmme Versioune vun dësem Benotzer opzielen.",
+       "apihelp-query+alldeletedrevisions-param-excludeuser": "Versioune vun dësem Benotzer net opzielen.",
        "apihelp-query+allusers-description": "All registréiert Benotzer opzielen.",
        "apihelp-query+allusers-param-activeusers": "Nëmme Benotzer opzielen déi an de leschten $1 {{PLURAL:$1|Dag|Deeg}} aktiv waren.",
        "apihelp-query+blocks-description": "Lëscht vun de gespaarte Benotzer an IP-Adressen.",
@@ -47,6 +50,7 @@
        "apihelp-query+categories-description": "All Kategorien opzielen zu deenen dës Säit gehéiert.",
        "apihelp-query+categorymembers-description": "All Säiten aus enger bestëmmter Kategorie opzielen.",
        "apihelp-query+categorymembers-example-simple": "Déi éischt 10 Säiten aus der [[:Category:Physics]] kréien",
+       "apihelp-query+deletedrevisions-param-excludeuser": "Versioune vun dësem Benotzer net opzielen.",
        "apihelp-query+deletedrevs-param-unique": "Nëmmen eng Versioun fir all Säit weisen.",
        "apihelp-query+filearchive-example-simple": "Eng Lëscht vun alle geläschte Fichiere weisen",
        "apihelp-query+imageinfo-param-urlheight": "Ähnlech wéi $1urlwidth.",
index c6fcec7..ffd7079 100644 (file)
        "apihelp-query+backlinks-example-simple": "Прикажи врски до [[Главна страница|Главната страница]]",
        "apihelp-query+backlinks-example-generator": "Дава информации за страниците што водат до [[Главна страница|Главната страница]]",
        "apihelp-query+blocks-description": "Список на сите блокирани корисници и IP-адреси",
-       "apihelp-query+blocks-param-start": "Од кој датум и време да се почне набројувањето.",
+       "apihelp-query+blocks-param-start": "Од кој датум и време да почне набројувањето.",
        "apihelp-query+blocks-param-end": "На кој датум и време да запре набројувањето.",
        "apihelp-query+blocks-param-ids": "Список на назнаки на блоковите за испис (незадолжително)",
        "apihelp-query+blocks-param-users": "Список на корисници што ќе се пребаруваат (незадолжително)",
index ab1a1e5..30211af 100644 (file)
        "apihelp-emailuser-param-text": "Nội dung bức thư.",
        "apihelp-emailuser-param-ccme": "Gửi bản sao của thư này cho tôi.",
        "apihelp-emailuser-example-email": "Gửi thư điện tử cho thành viên “BQVWiki” với văn bản “Nội dung”",
-       "apihelp-expandtemplates-description": "Bung các bản mẫu trong văn bản wiki.",
+       "apihelp-expandtemplates-description": "Bung tất cả bản mẫu trong văn bản wiki.",
        "apihelp-expandtemplates-param-title": "Tên trang.",
-       "apihelp-expandtemplates-param-text": "Văn bản wiki để chuyển đổi.",
+       "apihelp-expandtemplates-param-text": "Văn bản wiki để bung.",
        "apihelp-help-param-helpformat": "Định dạng của văn bản trợ giúp được cho ra.",
        "apihelp-imagerotate-example-simple": "Xoay [[:Tập tin:Ví dụ.jpg]] 90 độ",
-       "apihelp-imagerotate-example-generator": "Xoay tất cả các hình ảnh trong [[:Category:Flip]] 180 độ",
+       "apihelp-imagerotate-example-generator": "Xoay tất cả các hình ảnh trong [[:Thể loại:Búng]] 180 độ",
        "apihelp-login-param-name": "Tên người dùng.",
        "apihelp-login-param-password": "Mật khẩu.",
        "apihelp-login-param-domain": "Tên miền (tùy chọn).",
-       "apihelp-login-param-token": "Token đăng nhập được lấy trong yêu cầu đầu tiên.",
-       "apihelp-login-example-gettoken": "Lấy Token đăng nhập",
+       "apihelp-login-param-token": "Dấu hiệu đăng nhập được lấy trong yêu cầu đầu tiên.",
+       "apihelp-login-example-gettoken": "Lấy dấu hiệu đăng nhập",
        "apihelp-login-example-login": "Đăng nhập",
        "apihelp-logout-example-logout": "Đăng xuất người dùng hiện tại",
        "apihelp-move-description": "Di chuyển trang.",
@@ -62,7 +62,7 @@
        "apihelp-move-param-noredirect": "Không tạo trang đổi hướng.",
        "apihelp-move-param-ignorewarnings": "Bỏ qua tất cả các cảnh báo.",
        "apihelp-opensearch-description": "Tìm kiếm trong wiki qua giao thức OpenSearch.",
-       "apihelp-opensearch-param-search": "Chuỗi để tìm kiếm.",
+       "apihelp-opensearch-param-search": "Chuỗi tìm kiếm.",
        "apihelp-opensearch-param-limit": "Đa số kết quả để cho ra.",
        "apihelp-opensearch-param-namespace": "Không gian tên để tìm kiếm.",
        "apihelp-opensearch-param-format": "Định dạng kết quả được cho ra.",
@@ -81,7 +81,7 @@
        "apihelp-purge-example-generator": "Làm mới 10 trang đầu tiên trong không gian tên chính",
        "apihelp-query-param-prop": "Các thuộc tính để lấy khi truy vấn các trang.",
        "apihelp-query-param-list": "Các danh sách để lấy.",
-       "apihelp-query-param-meta": "Các metadata để lấy.",
+       "apihelp-query-param-meta": "Siêu dữ liệu để lấy.",
        "apihelp-format-example-generic": "Định dạng kết quả truy vấn dưới dạng $1",
        "apihelp-dbg-description": "Cho ra dữ liệu dưới dạng var_export() của PHP.",
        "apihelp-dbgfm-description": "Cho ra dữ liệu dưới dạng var_export() của PHP (định dạng bằng HTML).",
index 8690a85..c53dac0 100644 (file)
@@ -18,6 +18,7 @@
        "apihelp-block-param-noemail": "阻止用户通过 wiki发送电子邮件。(要求\"blockemail\"权限)。",
        "apihelp-block-param-hidename": "从封禁日志中隐藏用户名。(需要“隐藏用户”权限)。",
        "apihelp-block-param-allowusertalk": "允许用户编辑自己的讨论页 (取决于 $wgBlockAllowsUTEdit)。",
+       "apihelp-block-param-reblock": "如果该用户已被封禁,则覆盖已有的封禁。",
        "apihelp-block-param-watchuser": "监视该用户或该 IP 的用户页和讨论页。",
        "apihelp-block-example-ip-simple": "封禁IP地址192.0.2.5三天,原因“首次罢工”",
        "apihelp-clearhasmsg-description": "清除当前用户的 hasmsg 标志。",
        "apihelp-edit-param-nocreate": "如果该页面不存在,则抛出一个错误。",
        "apihelp-edit-param-watch": "将页面加入您的监视列表。",
        "apihelp-edit-param-unwatch": "将页面从您的监视列表移除。",
+       "apihelp-edit-param-prependtext": "将该文本添加到该页面的开始。覆盖$1text。",
+       "apihelp-edit-param-appendtext": "将该文本添加到该页面的结尾。覆盖$1text。\n\n采用$1section=new来添加一个新的章节,而不是这个参数。",
+       "apihelp-edit-param-undo": "撤销此次修订。覆盖$1text、$1prependtext和$1appendtext。",
        "apihelp-edit-param-redirect": "自动解析重定向。",
+       "apihelp-edit-param-contentformat": "用于输入文本的内容串行化格式。",
+       "apihelp-edit-param-contentmodel": "新内容的内容模型。",
        "apihelp-edit-example-edit": "编辑一个页面",
        "apihelp-edit-example-prepend": "页面中预置_&#95;NOTOC_&#95;",
        "apihelp-emailuser-description": "电子邮件联系一位用户。",
@@ -75,6 +81,8 @@
        "apihelp-expandtemplates-example-simple": "展开wiki文本“<nowiki>{{Project:Sandbox}}</nowiki>”",
        "apihelp-feedcontributions-description": "返回用户贡献纲要。",
        "apihelp-feedcontributions-param-feedformat": "纲要的格式。",
+       "apihelp-feedcontributions-param-year": "起始年份(及更早)。",
+       "apihelp-feedcontributions-param-month": "起始月份(及更早)。",
        "apihelp-feedcontributions-param-deletedonly": "仅显示已删除的贡献。",
        "apihelp-feedcontributions-param-toponly": "仅仅显示那些作为最新修订的编辑。",
        "apihelp-feedcontributions-param-newonly": "仅仅显示那些作为页面创建的编辑。",
        "apihelp-help-example-recursive": "一个页面中的所有帮助",
        "apihelp-help-example-help": "帮助模块本身的帮助",
        "apihelp-help-example-query": "两个查询子模块的帮助",
+       "apihelp-imagerotate-description": "旋转一幅或多幅图像。",
+       "apihelp-imagerotate-param-rotation": "顺时针旋转图像的度数。",
+       "apihelp-imagerotate-example-simple": "90度旋转[[:File:Example.png]]",
+       "apihelp-imagerotate-example-generator": "将[[:Category:Flip]]之中的所有图像旋转180度",
        "apihelp-import-param-summary": "导入摘要。",
        "apihelp-import-param-xml": "上传的XML文件。",
        "apihelp-import-param-interwikipage": "用于跨wiki导入:导入的页面。",
        "apihelp-query+allcategories-param-from": "要作为枚举起始点的类别。",
        "apihelp-query+allcategories-param-to": "要作为枚举终止点的类别。",
        "apihelp-query+allcategories-param-limit": "要返回多少个类别。",
+       "apihelp-query+alldeletedrevisions-param-namespace": "只列出此名字空间的页面。",
        "apihelp-query+allfileusages-param-dir": "罗列所采用的方向。",
        "apihelp-query+allfileusages-example-unique": "列出唯一性的文件标题",
        "apihelp-query+allfileusages-example-unique-generator": "获取所有文件标题,并标记出缺失者",
        "apihelp-query+allpages-param-prtype": "仅限于受保护页面。",
        "apihelp-query+allredirects-description": "列出至一个名字空间的重定向。",
        "apihelp-query+allredirects-param-namespace": "要列举的名字空间。",
+       "apihelp-query+allredirects-example-unique-generator": "获得所有目标页面,标记丢失的",
+       "apihelp-query+allredirects-example-generator": "获得包含重定向的页面",
        "apihelp-query+allusers-param-witheditsonly": "只列出有编辑的用户。",
        "apihelp-query+allusers-param-activeusers": "只列出最近$1天内活跃的用户。",
        "apihelp-query+allusers-example-Y": "列出以Y开头的用户",
        "apihelp-query+pageswithprop-example-generator": "获取有关前10个使用_&#95;NOTOC_&#95;的页面的信息",
        "apihelp-query+prefixsearch-param-search": "搜索字符串。",
        "apihelp-query+prefixsearch-param-namespace": "搜索的名字空间。",
+       "apihelp-query+protectedtitles-param-namespace": "只列出这些名字空间的标题。",
        "apihelp-query+protectedtitles-example-simple": "受保护标题列表",
        "apihelp-query+querypage-param-limit": "返回的结果数。",
        "apihelp-query+querypage-example-ancientpages": "返回[[Special:Ancientpages]]的结果。",
        "apihelp-rollback-example-summary": "回退由IP用户192.0.2.5对[[首页]]做出的最近编辑,带编辑摘要“回退破坏”,并将这些编辑和回退标记为“机器人”",
        "apihelp-rsd-description": "导出一个RSD(Really Simple Discovery)架构",
        "apihelp-rsd-example-simple": "导出RSD架构",
+       "apihelp-tokens-param-type": "要请求的令牌类型。",
        "apihelp-unblock-description": "解封一位用户。",
        "apihelp-unblock-param-id": "解封时需要的封禁ID(通过list=blocks获得)。不能与$1user一起使用。",
        "apihelp-unblock-param-user": "要解封的用户名、IP地址或IP段。不能与$1id一起使用。",
index 4bb646e..34132aa 100644 (file)
@@ -1117,7 +1117,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                # Keep track of whether the transaction has write queries pending
                if ( $this->mTrxLevel && !$this->mTrxDoneWrites && $this->isWriteQuery( $sql ) ) {
                        $this->mTrxDoneWrites = true;
-                       Profiler::instance()->transactionWritingIn(
+                       Profiler::instance()->getTransactionProfiler()->transactionWritingIn(
                                $this->mServer, $this->mDBname, $this->mTrxShortId );
                }
 
@@ -1162,6 +1162,14 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                        throw new DBUnexpectedError( $this, "DB connection was already closed." );
                }
 
+               # Log the query time and feed it into the DB trx profiler
+               $queryStartTime = microtime( true );
+               $queryProfile = new ScopedCallback( function() use ( $queryStartTime, $queryProf ) {
+                       $elapsed = microtime( true ) - $queryStartTime;
+                       $trxProfiler = Profiler::instance()->getTransactionProfiler();
+                       $trxProfiler->recordFunctionCompletion( $queryProf, $elapsed );
+               } );
+
                # Do the query and handle errors
                $ret = $this->doQuery( $commentedSql );
 
@@ -3524,7 +3532,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                        $this->runOnTransactionPreCommitCallbacks();
                        $this->doCommit( $fname );
                        if ( $this->mTrxDoneWrites ) {
-                               Profiler::instance()->transactionWritingOut(
+                               Profiler::instance()->getTransactionProfiler()->transactionWritingOut(
                                        $this->mServer, $this->mDBname, $this->mTrxShortId );
                        }
                        $this->runOnTransactionIdleCallbacks();
@@ -3604,7 +3612,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                $this->runOnTransactionPreCommitCallbacks();
                $this->doCommit( $fname );
                if ( $this->mTrxDoneWrites ) {
-                       Profiler::instance()->transactionWritingOut(
+                       Profiler::instance()->getTransactionProfiler()->transactionWritingOut(
                                $this->mServer, $this->mDBname, $this->mTrxShortId );
                }
                $this->runOnTransactionIdleCallbacks();
@@ -3662,7 +3670,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                $this->mTrxPreCommitCallbacks = array(); // cancel
                $this->mTrxAtomicLevels = new SplStack;
                if ( $this->mTrxDoneWrites ) {
-                       Profiler::instance()->transactionWritingOut(
+                       Profiler::instance()->getTransactionProfiler()->transactionWritingOut(
                                $this->mServer, $this->mDBname, $this->mTrxShortId );
                }
        }
index 6e0c37f..dac4337 100644 (file)
@@ -897,6 +897,29 @@ abstract class DatabaseUpdater {
                return true;
        }
 
+       /**
+        * Set any .htaccess files or equivilent for storage repos
+        *
+        * Some zones (e.g. "temp") used to be public and may have been initialized as such
+        */
+       public function setFileAccess() {
+               $repo = RepoGroup::singleton()->getLocalRepo();
+               $zonePath = $repo->getZonePath( 'temp' );
+               if ( $repo->getBackend()->directoryExists( array( 'dir' => $zonePath ) ) ) {
+                       // If the directory was never made, then it will have the right ACLs when it is made
+                       $status = $repo->getBackend()->secure( array(
+                               'dir' => $zonePath,
+                               'noAccess' => true,
+                               'noListing' => true
+                       ) );
+                       if ( $status->isOK() ) {
+                               $this->output( "Set the local repo temp zone container to be private.\n" );
+                       } else {
+                               $this->output( "Failed to set the local repo temp zone container to be private.\n" );
+                       }
+               }
+       }
+
        /**
         * Purge the objectcache table
         */
index 6dcce23..c30a989 100644 (file)
@@ -262,11 +262,11 @@ class PostgresInstaller extends DatabaseInstaller {
                $status = Status::newGood();
                foreach ( $dbs as $db ) {
                        try {
-                               $conn = $this->openConnectionWithParams(
+                               $conn = new DatabasePostgres(
+                                       $this->getVar( 'wgDBserver' ),
                                        $user,
                                        $password,
-                                       $db,
-                                       $this->getVar( 'wgDBmwschema' ) );
+                                       $db );
                        } catch ( DBConnectionError $error ) {
                                $conn = false;
                                $status->fatal( 'config-pg-test-error', $db,
index ee29f38..1eb07b9 100644 (file)
@@ -5,7 +5,12 @@
                        "Robin0van0der0vliet"
                ]
        },
+       "config-page-language": "Taal",
        "config-page-name": "Namme",
+       "config-page-options": "Opsjes",
+       "config-ns-generic": "Projekt",
+       "config-admin-password": "Wachtwurd:",
+       "config-help": "help",
        "mainpagetext": "'''MediaWiki-program goed ynstallearre.'''",
        "mainpagedocfooter": "Rieplachtsje de [//meta.wikimedia.org/wiki/Help:Contents Ynhâldsopjefte hantlieding] foar ynformaasje oer it gebrûk fan 'e wikisoftware.\n\n== Mear help oer Mediawiki ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings List mei ynstellings]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Faak stelde fragen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglist foar oankundigings fan nije ferzjes]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index d061824..8302c03 100644 (file)
@@ -7,15 +7,15 @@
        },
        "config-information": "जानकारी",
        "config-your-language": "अहाँक भाषा:",
-       "config-your-language-help": "à¤\87नà¥\8dसà¥\8dà¤\9fल होएतकाल भाषाके चयन करू",
-       "config-wiki-language": "विà¤\95à¥\80 भाषा:",
+       "config-your-language-help": "पà¥\8dरतिसà¥\8dथापन होएतकाल भाषाके चयन करू",
+       "config-wiki-language": "विà¤\95ि भाषा:",
        "config-back": "← पाछा",
        "config-continue": "आगु चलु →",
        "config-page-language": "भाषा",
-       "config-page-welcome": "मà¥\80डियाविà¤\95à¥\80मे अहाँक स्वागत अछि!",
+       "config-page-welcome": "मà¥\87डियाविà¤\95िमे अहाँक स्वागत अछि!",
        "config-page-dbconnect": "डेटाबेसस जुडु",
-       "config-page-upgrade": "भà¥\87ल à¤\87नà¥\8dसà¥\8dà¤\9fलà¥\87सन à¤\95 नविनीकरण करु",
-       "config-page-dbsettings": "डाटाबेस",
+       "config-page-upgrade": "भà¥\87ल à¤ªà¥\8dरतिसà¥\8dथापन à¤\95à¥\87 नविनीकरण करु",
+       "config-page-dbsettings": "डाटाबेस कुंजी",
        "config-page-name": "नाम",
        "config-page-options": "विकल्प",
        "config-page-install": "स्थापित करु",
@@ -24,6 +24,6 @@
        "config-page-readme": "पढू",
        "config-page-existingwiki": "रहल विकी",
        "config-restart": "हँ, एकरा पुन: सुरु कएल जाए",
-       "mainpagetext": "'''मà¥\80डियाविकी नीक जकाँ प्रस्थापित भेल।'''",
-       "mainpagedocfooter": "समà¥\8dपरà¥\8dà¤\95 à¤\95रà¥\82 [//meta.wikimedia.org/wiki/Help:Contents User's Guide] à¤µà¤¿à¤\95à¥\80 तंत्रांशक प्रयोगक जानकारी लेल।\n\n==प्रारम्भ कोना करी==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagetext": "'''मà¥\87डियाविकी नीक जकाँ प्रस्थापित भेल।'''",
+       "mainpagedocfooter": "समà¥\8dपरà¥\8dà¤\95 à¤\95रà¥\82 [//meta.wikimedia.org/wiki/Help:Contents User's Guide] à¤µà¤¿à¤\95ि तंत्रांशक प्रयोगक जानकारी लेल।\n\n==प्रारम्भ कोना करी==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index 71b1cba..05b0eca 100644 (file)
        "config-no-db": "Nun se può truvà nu driver adatto p' 'o database! È necessario installare nu driver p' 'o PHP.\n'E furmatte 'e database ccà annanze songo suppurtate: $1.\n\nSi cumpilate PHP autonomamente, riaccunciatevello attivando nu client database, p'esempio ausannoo <code>./configure --with-mysqli</code>.\nQuanno fosse installato PHP pe' bbìa 'e nu pacchetto Debian o Ubuntu, allora avite 'a installà pure 'o pacchetto <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Attenziò''': tenite 'o SQLite $1 pe' tramente ca ce vulesse 'a verziona $2, SQLite nun sarrà a disposizione.",
        "config-no-fts3": "'''Attenziò''': SQLite è cumpilato senza 'o [//sqlite.org/fts3.html modulo FTS3], 'e funziune 'e p'ascià dinto nun sarranno a disposizione ncopp'a stu backend.",
+       "config-register-globals-error": "<strong>Errore: l'opzione PHP <code>[http://php.net/register_globals register_globals]</code> è apicciata.\nS'avesse 'a stutà pe' cuntinuà c' 'a installazione.</strong>\nVide [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] pe' n'avé n'aiuto ncopp'a comme s'avess'a ffà.",
+       "config-magic-quotes-gpc": "<strong>Fatale: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] è attivo!</strong>\nChest'opzione scassa 'e date d'input 'n modo scanusciuto.\nNun putite installare o utilizzare MediaWiki, si nun stutate st'opzione.",
+       "config-magic-quotes-runtime": "<strong>Fatale: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] è attivo!'</strong>\nSt'opzione scassa 'e date 'e na manera scanusciuta.\nNun se può installà o ausà MediaWiki si nun se stuta st'opzione.",
+       "config-magic-quotes-sybase": "<strong>Fatale: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] è attivo!'</strong>\nSt'opzione scassa 'e date 'e na manera scanusciuta.\nNun se può installà o ausà MediaWiki si nun se stuta st'opzione.",
+       "config-mbstring": "<strong>Fatale: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] è attivo!'</strong>\nSt'opzione scassa 'e date 'e na manera scanusciuta.\nNun se può installà o ausà MediaWiki si nun se stuta st'opzione.",
+       "config-safe-mode": "<strong>Warning:</strong> PHP's [http://www.php.net/features.safe-mode safe mode] è attivato.\nPutesse fà cocche probblema, specialmente si state ausanno 'a funziona 'e carrecà file e 'o supporto d' ' e funziune <code>math</code>.",
+       "config-xml-bad": "'O modulo XML 'e PHP è mancante.\nA MediaWiki servessero 'e funziune prisente dint'a stu modulo e nun faticarrà c' 'a configurazione 'e mò.\nSi se sta eseguenno Mandrake, installare 'o pacco php-xml.",
+       "config-pcre-old": "<strong>Errore fatale:</strong> s'addimanna PCRE  $1 o succiessivo.\n'O file vuosto binario PHP è acucchiato c' 'o PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Cchiù nfurmaziune].",
        "config-memory-raised": "'O valore 'e PHP <code>memory_limit</code> è $1, aumentato a $2.",
        "config-memory-bad": "<strong>Attenziò:</strong> 'o valore 'e PHP <code>memory_limit</code> è $1.\nProbabbilmente troppo basso.\n'A installazione se putesse scassà!",
        "config-ctype": "'''Errore''': 'o PHP s'adda ghienchere c' 'o supporto pe' l'[http://www.php.net/manual/it/ctype.installation.php estensione Ctype].",
        "config-imagemagick": "Truvato ImageMagick: <code>$1</code>.\n'E miniature d' 'e fiùre sarranno prisente si l'upload song'abbiàte.",
        "config-gd": "Truvata 'a bibblioteca ntegrata GD Graphics.\n'E miniature 'e ll'immaggene sarranno prisente si l'upload se song'abbiàte.",
        "config-no-scaling": "Nun se può truvà 'a bibblioteca GD o ImageMagick.\n'E miniature 'e l'immaggene sarranno stutate.",
-       "config-no-uri": "<strong>Errore:</strong> Nun se può determina l'URI 'e mmò.\nInstallazione interrotta.",
+       "config-no-uri": "<strong>Errore:</strong> Nun se può determina l'URI 'e mmò.\nInstallazione spezzata.",
        "config-using-server": "Nomme d' 'o server ca se stà ausanno \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "URL d' 'o server ca se stà ausanno \"<nowiki>$1$2</nowiki>\".",
+       "config-brokenlibxml": "'O sistema vuosto ave na combinazione 'e verziune 'e PHP e libxml2 nguacchiata ca putesse scassà 'e date 'e MediaWiki 'n manera annascunnusa e pure l'ati apprecaziune p' 'o web.\nAgghiurnate a libxml2 2.7.3 o cchiù muderno ([https://bugs.php.net/bug.php?id=45996 'o bug studiato d' 'o lato PHP]).\nInstallaziona spezzata.",
        "config-db-type": "Tipo 'e database:",
        "config-db-host": "Host d' 'o database:",
+       "config-db-host-oracle": "TNS d' 'o database:",
+       "config-db-wiki-settings": "Identifica stu wiki",
+       "config-db-name": "Nomme d' 'o database:",
+       "config-db-name-help": "Sciglite nu nomme ca identificasse 'a wiki vosta.\nNun avess'a cuntenè spazie.\n\nSi ausate nu web hosting spartuto, 'o furnitore d' 'o hosting v'avesse 'a specificà nu nomme 'e database specifico pe' ve permettere 'e crià database pe' bbìa 'e nu pannello 'e cuntrollo.",
+       "config-db-name-oracle": "Schema d' 'o database:",
+       "config-db-install-account": "Cunto utente pe' l'installazione",
+       "config-db-username": "Nomme utente p' 'o database:",
+       "config-db-password": "Password d' 'o database:",
+       "config-db-password-empty": "Avita nzertà na password pe' l'utente nuovo d' 'o database: $1.\nPure si fosse possibbele 'e crià ll'utente senza password chisto nun fosse sicuro.",
+       "config-db-username-empty": "Avita miette nu valore p' 'o \"{{int:config-db-username}}\"",
+       "config-db-wiki-account": "Account utente p' 'o funzionamento nurmale",
+       "config-db-charset": "Nzieme 'e carattere d' 'o database",
+       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binario",
+       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+       "config-charset-mysql4": "MySQL 4.0 cu compatibbelità UTF-8",
+       "config-mysql-old": "MySQL $1 o cchiù muderno è necessario. Vuje avite $2.",
        "config-db-port": "Porta d' 'o database:",
        "config-db-schema": "Schema pe' MediaWiki:",
        "config-db-schema-help": "Stu schema 'n genere sarrà buono.\nSi 'o vulite cagnà facite sulamente si ne tenite abbesuogno.",
        "config-header-oracle": "Mpustaziune Oracle",
        "config-header-mssql": "Mpustaziune 'e Microsoft SQL Server",
        "config-invalid-db-type": "'O tipo 'e database nun è buono.",
+       "config-missing-db-name": "Avita miette nu valore p' 'o \"{{int:config-db-name}}\"",
+       "config-missing-db-host": "Avita miette nu valore p' 'o \"{{int:config-db-host}}\"",
+       "config-missing-db-server-oracle": "Avita miette nu valore p' 'o \"{{int:config-db-host-oracle}}\"",
        "config-mssql-install-auth": "Sceglie 'o tipo d'autenticazziona ca s'ausarrà pe cunnettà â database, durante ll'operazziona d'istallazziona. Si piglie \"{{int:config-mssql-windowsauth}}\", 'e credenziale 'e qualunque fosse ll'utenza ca 'o webserver sta pruciessanno sarranno ausate.",
        "config-mssql-web-auth": "Sceglie 'o tipo d'autenticazziona ca 'o web server pigliarrà pe se cunnettà a 'o server 'e bbase 'e dati, durante ll'operazziona nurmale d' 'a wiki.\nSi piglie \"{{int:config-mssql-windowsauth}}\", 'e credenziale 'e qualunque fosse ll'utenza ca 'o webserver sta pruciessanno sarranno ausate."
 }
diff --git a/includes/libs/ArrayUtils.php b/includes/libs/ArrayUtils.php
new file mode 100644 (file)
index 0000000..f934021
--- /dev/null
@@ -0,0 +1,187 @@
+<?php
+/**
+ * Methods to play with arrays.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * A collection of static methods to play with arrays.
+ *
+ * @since 1.21
+ */
+class ArrayUtils {
+       /**
+        * Sort the given array in a pseudo-random order which depends only on the
+        * given key and each element value. This is typically used for load
+        * balancing between servers each with a local cache.
+        *
+        * Keys are preserved. The input array is modified in place.
+        *
+        * Note: Benchmarking on PHP 5.3 and 5.4 indicates that for small
+        * strings, md5() is only 10% slower than hash('joaat',...) etc.,
+        * since the function call overhead dominates. So there's not much
+        * justification for breaking compatibility with installations
+        * compiled with ./configure --disable-hash.
+        *
+        * @param array $array Array to sort
+        * @param string $key
+        * @param string $separator A separator used to delimit the array elements and the
+        *     key. This can be chosen to provide backwards compatibility with
+        *     various consistent hash implementations that existed before this
+        *     function was introduced.
+        */
+       public static function consistentHashSort( &$array, $key, $separator = "\000" ) {
+               $hashes = array();
+               foreach ( $array as $elt ) {
+                       $hashes[$elt] = md5( $elt . $separator . $key );
+               }
+               uasort( $array, function ( $a, $b ) use ( $hashes ) {
+                       return strcmp( $hashes[$a], $hashes[$b] );
+               } );
+       }
+
+       /**
+        * Given an array of non-normalised probabilities, this function will select
+        * an element and return the appropriate key
+        *
+        * @param array $weights
+        * @return bool|int|string
+        */
+       public static function pickRandom( $weights ) {
+               if ( !is_array( $weights ) || count( $weights ) == 0 ) {
+                       return false;
+               }
+
+               $sum = array_sum( $weights );
+               if ( $sum == 0 ) {
+                       # No loads on any of them
+                       # In previous versions, this triggered an unweighted random selection,
+                       # but this feature has been removed as of April 2006 to allow for strict
+                       # separation of query groups.
+                       return false;
+               }
+               $max = mt_getrandmax();
+               $rand = mt_rand( 0, $max ) / $max * $sum;
+
+               $sum = 0;
+               foreach ( $weights as $i => $w ) {
+                       $sum += $w;
+                       # Do not return keys if they have 0 weight.
+                       # Note that the "all 0 weight" case is handed above
+                       if ( $w > 0 && $sum >= $rand ) {
+                               break;
+                       }
+               }
+
+               return $i;
+       }
+
+       /**
+        * Do a binary search, and return the index of the largest item that sorts
+        * less than or equal to the target value.
+        *
+        * @since 1.23
+        *
+        * @param callable $valueCallback A function to call to get the value with
+        *     a given array index.
+        * @param int $valueCount The number of items accessible via $valueCallback,
+        *     indexed from 0 to $valueCount - 1
+        * @param callable $comparisonCallback A callback to compare two values, returning
+        *     -1, 0 or 1 in the style of strcmp().
+        * @param string $target The target value to find.
+        *
+        * @return int|bool The item index of the lower bound, or false if the target value
+        *     sorts before all items.
+        */
+       public static function findLowerBound( $valueCallback, $valueCount,
+               $comparisonCallback, $target
+       ) {
+               if ( $valueCount === 0 ) {
+                       return false;
+               }
+
+               $min = 0;
+               $max = $valueCount;
+               do {
+                       $mid = $min + ( ( $max - $min ) >> 1 );
+                       $item = call_user_func( $valueCallback, $mid );
+                       $comparison = call_user_func( $comparisonCallback, $target, $item );
+                       if ( $comparison > 0 ) {
+                               $min = $mid;
+                       } elseif ( $comparison == 0 ) {
+                               $min = $mid;
+                               break;
+                       } else {
+                               $max = $mid;
+                       }
+               } while ( $min < $max - 1 );
+
+               if ( $min == 0 ) {
+                       $item = call_user_func( $valueCallback, $min );
+                       $comparison = call_user_func( $comparisonCallback, $target, $item );
+                       if ( $comparison < 0 ) {
+                               // Before the first item
+                               return false;
+                       }
+               }
+               return $min;
+       }
+
+       /**
+        * Do array_diff_assoc() on multi-dimensional arrays.
+        *
+        * Note: empty arrays are removed.
+        *
+        * @since 1.23
+        *
+        * @param array $array1 The array to compare from
+        * @param array $array2,... More arrays to compare against
+        * @return array An array containing all the values from array1
+        *               that are not present in any of the other arrays.
+        */
+       public static function arrayDiffAssocRecursive( $array1 ) {
+               $arrays = func_get_args();
+               array_shift( $arrays );
+               $ret = array();
+
+               foreach ( $array1 as $key => $value ) {
+                       if ( is_array( $value ) ) {
+                               $args = array( $value );
+                               foreach ( $arrays as $array ) {
+                                       if ( isset( $array[$key] ) ) {
+                                               $args[] = $array[$key];
+                                       }
+                               }
+                               $valueret = call_user_func_array( __METHOD__, $args );
+                               if ( count( $valueret ) ) {
+                                       $ret[$key] = $valueret;
+                               }
+                       } else {
+                               foreach ( $arrays as $array ) {
+                                       if ( isset( $array[$key] ) && $array[$key] === $value ) {
+                                               continue 2;
+                                       }
+                               }
+                               $ret[$key] = $value;
+                       }
+               }
+
+               return $ret;
+       }
+}
diff --git a/includes/libs/CSSJanus.php b/includes/libs/CSSJanus.php
deleted file mode 100644 (file)
index e96baec..0000000
+++ /dev/null
@@ -1,453 +0,0 @@
-<?php
-/**
- * PHP port of CSSJanus.
- *
- * Copyright 2008 Google Inc.
- * Copyright 2010 Roan Kattouw
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @file
- */
-
-/**
- * This is a PHP port of CSSJanus, a utility that transforms CSS style sheets
- * written for LTR to RTL.
- *
- * Original code: http://code.google.com/p/cssjanus/source/browse/trunk/cssjanus.py
- *
- * @author Lindsey Simon <elsigh@google.com>
- * @author Roan Kattouw
- */
-class CSSJanus {
-       // Patterns defined as null are built dynamically by buildPatterns()
-       private static $patterns = array(
-               'tmpToken' => '`TMP`',
-               'nonAscii' => '[\200-\377]',
-               'unicode' => '(?:(?:\\[0-9a-f]{1,6})(?:\r\n|\s)?)',
-               'num' => '(?:[0-9]*\.[0-9]+|[0-9]+)',
-               'unit' => '(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)',
-               'body_selector' => 'body\s*{\s*',
-               'direction' => 'direction\s*:\s*',
-               'escape' => null,
-               'nmstart' => null,
-               'nmchar' => null,
-               'ident' => null,
-               'quantity' => null,
-               'possibly_negative_quantity' => null,
-               'color' => null,
-               'url_special_chars' => '[!#$%&*-~]',
-               'valid_after_uri_chars' => '[\'\"]?\s*',
-               'url_chars' => null,
-               'lookahead_not_open_brace' => null,
-               'lookahead_not_closing_paren' => null,
-               'lookahead_for_closing_paren' => null,
-               'lookahead_not_letter' => '(?![a-zA-Z])',
-               'lookbehind_not_letter' => '(?<![a-zA-Z])',
-               'chars_within_selector' => '[^\}]*?',
-               'noflip_annotation' => '\/\*\!?\s*@noflip\s*\*\/',
-               'noflip_single' => null,
-               'noflip_class' => null,
-               'comment' => '/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//',
-               'direction_ltr' => null,
-               'direction_rtl' => null,
-               'left' => null,
-               'right' => null,
-               'left_in_url' => null,
-               'right_in_url' => null,
-               'ltr_in_url' => null,
-               'rtl_in_url' => null,
-               'cursor_east' => null,
-               'cursor_west' => null,
-               'four_notation_quantity' => null,
-               'four_notation_color' => null,
-               'border_radius' => null,
-               'box_shadow' => null,
-               'text_shadow1' => null,
-               'text_shadow2' => null,
-               'bg_horizontal_percentage' => null,
-               'bg_horizontal_percentage_x' => null,
-       );
-
-       /**
-        * Build patterns we can't define above because they depend on other patterns.
-        */
-       private static function buildPatterns() {
-               if (!is_null(self::$patterns['escape'])) {
-                       // Patterns have already been built
-                       return;
-               }
-
-               // @codingStandardsIgnoreStart Generic.Files.LineLength.TooLong
-               $patterns =& self::$patterns;
-               $patterns['escape'] = "(?:{$patterns['unicode']}|\\[^\r\n\f0-9a-f])";
-               $patterns['nmstart'] = "(?:[_a-z]|{$patterns['nonAscii']}|{$patterns['escape']})";
-               $patterns['nmchar'] = "(?:[_a-z0-9-]|{$patterns['nonAscii']}|{$patterns['escape']})";
-               $patterns['ident'] = "-?{$patterns['nmstart']}{$patterns['nmchar']}*";
-               $patterns['quantity'] = "{$patterns['num']}(?:\s*{$patterns['unit']}|{$patterns['ident']})?";
-               $patterns['possibly_negative_quantity'] = "((?:-?{$patterns['quantity']})|(?:inherit|auto))";
-               $patterns['color'] = "(#?{$patterns['nmchar']}+|(?:rgba?|hsla?)\([ \d.,%-]+\))";
-               $patterns['url_chars'] = "(?:{$patterns['url_special_chars']}|{$patterns['nonAscii']}|{$patterns['escape']})*";
-               $patterns['lookahead_not_open_brace'] = "(?!({$patterns['nmchar']}|\r?\n|\s|#|\:|\.|\,|\+|>|\(|\)|\[|\]|=|\*=|~=|\^=|'[^']*'])*?{)";
-               $patterns['lookahead_not_closing_paren'] = "(?!{$patterns['url_chars']}?{$patterns['valid_after_uri_chars']}\))";
-               $patterns['lookahead_for_closing_paren'] = "(?={$patterns['url_chars']}?{$patterns['valid_after_uri_chars']}\))";
-               $patterns['noflip_single'] = "/({$patterns['noflip_annotation']}{$patterns['lookahead_not_open_brace']}[^;}]+;?)/i";
-               $patterns['noflip_class'] = "/({$patterns['noflip_annotation']}{$patterns['chars_within_selector']}})/i";
-               $patterns['direction_ltr'] = "/({$patterns['direction']})ltr/i";
-               $patterns['direction_rtl'] = "/({$patterns['direction']})rtl/i";
-               $patterns['left'] = "/{$patterns['lookbehind_not_letter']}(left){$patterns['lookahead_not_letter']}{$patterns['lookahead_not_closing_paren']}{$patterns['lookahead_not_open_brace']}/i";
-               $patterns['right'] = "/{$patterns['lookbehind_not_letter']}(right){$patterns['lookahead_not_letter']}{$patterns['lookahead_not_closing_paren']}{$patterns['lookahead_not_open_brace']}/i";
-               $patterns['left_in_url'] = "/{$patterns['lookbehind_not_letter']}(left){$patterns['lookahead_for_closing_paren']}/i";
-               $patterns['right_in_url'] = "/{$patterns['lookbehind_not_letter']}(right){$patterns['lookahead_for_closing_paren']}/i";
-               $patterns['ltr_in_url'] = "/{$patterns['lookbehind_not_letter']}(ltr){$patterns['lookahead_for_closing_paren']}/i";
-               $patterns['rtl_in_url'] = "/{$patterns['lookbehind_not_letter']}(rtl){$patterns['lookahead_for_closing_paren']}/i";
-               $patterns['cursor_east'] = "/{$patterns['lookbehind_not_letter']}([ns]?)e-resize/";
-               $patterns['cursor_west'] = "/{$patterns['lookbehind_not_letter']}([ns]?)w-resize/";
-               $patterns['four_notation_quantity_props'] = "((?:margin|padding|border-width)\s*:\s*)";
-               $patterns['four_notation_quantity'] = "/{$patterns['four_notation_quantity_props']}{$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s*[;}])/i";
-               $patterns['four_notation_color'] = "/((?:-color|border-style)\s*:\s*){$patterns['color']}(\s+){$patterns['color']}(\s+){$patterns['color']}(\s+){$patterns['color']}(\s*[;}])/i";
-               $patterns['border_radius'] = "/(border-radius\s*:\s*)([^;}]*)/";
-               $patterns['box_shadow'] = "/(box-shadow\s*:\s*(?:inset\s*)?){$patterns['possibly_negative_quantity']}/i";
-               $patterns['text_shadow1'] = "/(text-shadow\s*:\s*){$patterns['color']}(\s*){$patterns['possibly_negative_quantity']}/i";
-               $patterns['text_shadow2'] = "/(text-shadow\s*:\s*){$patterns['possibly_negative_quantity']}/i";
-               $patterns['bg_horizontal_percentage'] = "/(background(?:-position)?\s*:\s*(?:[^:;}\s]+\s+)*?)({$patterns['quantity']})/i";
-               $patterns['bg_horizontal_percentage_x'] = "/(background-position-x\s*:\s*)(-?{$patterns['num']}%)/i";
-               // @codingStandardsIgnoreEnd
-
-       }
-
-       /**
-        * Transform an LTR stylesheet to RTL
-        * @param string $css stylesheet to transform
-        * @param $swapLtrRtlInURL Boolean: If true, swap 'ltr' and 'rtl' in URLs
-        * @param $swapLeftRightInURL Boolean: If true, swap 'left' and 'right' in URLs
-        * @return string Transformed stylesheet
-        */
-       public static function transform($css, $swapLtrRtlInURL = false, $swapLeftRightInURL = false) {
-               // We wrap tokens in ` , not ~ like the original implementation does.
-               // This was done because ` is not a legal character in CSS and can only
-               // occur in URLs, where we escape it to %60 before inserting our tokens.
-               $css = str_replace('`', '%60', $css);
-
-               self::buildPatterns();
-
-               // Tokenize single line rules with /* @noflip */
-               $noFlipSingle = new CSSJanusTokenizer(self::$patterns['noflip_single'], '`NOFLIP_SINGLE`');
-               $css = $noFlipSingle->tokenize($css);
-
-               // Tokenize class rules with /* @noflip */
-               $noFlipClass = new CSSJanusTokenizer(self::$patterns['noflip_class'], '`NOFLIP_CLASS`');
-               $css = $noFlipClass->tokenize($css);
-
-               // Tokenize comments
-               $comments = new CSSJanusTokenizer(self::$patterns['comment'], '`C`');
-               $css = $comments->tokenize($css);
-
-               // LTR->RTL fixes start here
-               $css = self::fixDirection($css);
-               if ($swapLtrRtlInURL) {
-                       $css = self::fixLtrRtlInURL($css);
-               }
-
-               if ($swapLeftRightInURL) {
-                       $css = self::fixLeftRightInURL($css);
-               }
-               $css = self::fixLeftAndRight($css);
-               $css = self::fixCursorProperties($css);
-               $css = self::fixFourPartNotation($css);
-               $css = self::fixBorderRadius($css);
-               $css = self::fixBackgroundPosition($css);
-               $css = self::fixShadows($css);
-
-               // Detokenize stuff we tokenized before
-               $css = $comments->detokenize($css);
-               $css = $noFlipClass->detokenize($css);
-               $css = $noFlipSingle->detokenize($css);
-
-               return $css;
-       }
-
-       /**
-        * Replace direction: ltr; with direction: rtl; and vice versa.
-        *
-        * The original implementation only does this inside body selectors
-        * and misses "body\n{\ndirection:ltr;\n}". This function does not have
-        * these problems.
-        *
-        * See https://code.google.com/p/cssjanus/issues/detail?id=15
-        *
-        * @param $css string
-        * @return string
-        */
-       private static function fixDirection($css) {
-               $css = preg_replace(
-                       self::$patterns['direction_ltr'],
-                       '$1' . self::$patterns['tmpToken'],
-                       $css
-               );
-               $css = preg_replace(self::$patterns['direction_rtl'], '$1ltr', $css);
-               $css = str_replace(self::$patterns['tmpToken'], 'rtl', $css);
-
-               return $css;
-       }
-
-       /**
-        * Replace 'ltr' with 'rtl' and vice versa in background URLs
-        * @param $css string
-        * @return string
-        */
-       private static function fixLtrRtlInURL($css) {
-               $css = preg_replace(self::$patterns['ltr_in_url'], self::$patterns['tmpToken'], $css);
-               $css = preg_replace(self::$patterns['rtl_in_url'], 'ltr', $css);
-               $css = str_replace(self::$patterns['tmpToken'], 'rtl', $css);
-
-               return $css;
-       }
-
-       /**
-        * Replace 'left' with 'right' and vice versa in background URLs
-        * @param $css string
-        * @return string
-        */
-       private static function fixLeftRightInURL($css) {
-               $css = preg_replace(self::$patterns['left_in_url'], self::$patterns['tmpToken'], $css);
-               $css = preg_replace(self::$patterns['right_in_url'], 'left', $css);
-               $css = str_replace(self::$patterns['tmpToken'], 'right', $css);
-
-               return $css;
-       }
-
-       /**
-        * Flip rules like left: , padding-right: , etc.
-        * @param $css string
-        * @return string
-        */
-       private static function fixLeftAndRight($css) {
-               $css = preg_replace(self::$patterns['left'], self::$patterns['tmpToken'], $css);
-               $css = preg_replace(self::$patterns['right'], 'left', $css);
-               $css = str_replace(self::$patterns['tmpToken'], 'right', $css);
-
-               return $css;
-       }
-
-       /**
-        * Flip East and West in rules like cursor: nw-resize;
-        * @param $css string
-        * @return string
-        */
-       private static function fixCursorProperties($css) {
-               $css = preg_replace(
-                       self::$patterns['cursor_east'],
-                       '$1' . self::$patterns['tmpToken'],
-                       $css
-               );
-               $css = preg_replace(self::$patterns['cursor_west'], '$1e-resize', $css);
-               $css = str_replace(self::$patterns['tmpToken'], 'w-resize', $css);
-
-               return $css;
-       }
-
-       /**
-        * Swap the second and fourth parts in four-part notation rules like
-        * padding: 1px 2px 3px 4px;
-        *
-        * Unlike the original implementation, this function doesn't suffer from
-        * the bug where whitespace is not preserved when flipping four-part rules
-        * and four-part color rules with multiple whitespace characters between
-        * colors are not recognized.
-        * See https://code.google.com/p/cssjanus/issues/detail?id=16
-        * @param $css string
-        * @return string
-        */
-       private static function fixFourPartNotation($css) {
-               $css = preg_replace(self::$patterns['four_notation_quantity'], '$1$2$3$8$5$6$7$4$9', $css);
-               $css = preg_replace(self::$patterns['four_notation_color'], '$1$2$3$8$5$6$7$4$9', $css);
-               return $css;
-       }
-
-       /**
-        * Swaps appropriate corners in border-radius values.
-        *
-        * @param $css string
-        * @return string
-        */
-       private static function fixBorderRadius($css) {
-               $css = preg_replace_callback(self::$patterns['border_radius'], function ($matches) {
-                       $pre = $matches[1];
-                       $values = $matches[2];
-                       $numValues = count(preg_split('/\s+/', trim($values)));
-                       switch ($numValues) {
-                               case 4:
-                                       $values = preg_replace('/^(\S+)(\s*)(\S+)(\s*)(\S+)(\s*)(\S+)/', '$3$2$1$4$7$6$5', $values);
-                                       break;
-                               case 3:
-                               case 2:
-                                       $values = preg_replace('/^(\S+)(\s*)(\S+)/', '$3$2$1', $values);
-                                       break;
-                       }
-                       return $pre . $values;
-               }, $css);
-
-               return $css;
-       }
-
-       /**
-        * Negates horizontal offset in box-shadow and text-shadow rules.
-        *
-        * @param $css string
-        * @return string
-        */
-       private static function fixShadows($css) {
-               // Flips the sign of a CSS value, possibly with a unit.
-               // (We can't just negate the value with unary minus due to the units.)
-               $flipSign = function ($cssValue) {
-                       // Don't mangle zeroes
-                       if (floatval($cssValue) === 0.0) {
-                               return $cssValue;
-                       } elseif ($cssValue[0] === '-') {
-                               return substr($cssValue, 1);
-                       } else {
-                               return "-" . $cssValue;
-                       }
-               };
-
-               $css = preg_replace_callback(self::$patterns['box_shadow'], function ($matches) use ($flipSign) {
-                       return $matches[1] . $flipSign($matches[2]);
-               }, $css);
-
-               $css = preg_replace_callback(self::$patterns['text_shadow1'], function ($matches) use ($flipSign) {
-                       return $matches[1] . $matches[2] . $matches[3] . $flipSign($matches[4]);
-               }, $css);
-
-               $css = preg_replace_callback(self::$patterns['text_shadow2'], function ($matches) use ($flipSign) {
-                       return $matches[1] . $flipSign($matches[2]);
-               }, $css);
-
-               return $css;
-       }
-
-       /**
-        * Flip horizontal background percentages.
-        * @param $css string
-        * @return string
-        */
-       private static function fixBackgroundPosition($css) {
-               $replaced = preg_replace_callback(
-                       self::$patterns['bg_horizontal_percentage'],
-                       array('self', 'calculateNewBackgroundPosition'),
-                       $css
-               );
-               if ($replaced !== null) {
-                       // preg_replace_callback() sometimes returns null
-                       $css = $replaced;
-               }
-               $replaced = preg_replace_callback(
-                       self::$patterns['bg_horizontal_percentage_x'],
-                       array('self', 'calculateNewBackgroundPosition'),
-                       $css
-               );
-               if ($replaced !== null) {
-                       $css = $replaced;
-               }
-
-               return $css;
-       }
-
-       /**
-        * Callback for fixBackgroundPosition()
-        * @param $matches array
-        * @return string
-        */
-       private static function calculateNewBackgroundPosition($matches) {
-               $value = $matches[2];
-               if (substr($value, -1) === '%') {
-                       $idx = strpos($value, '.');
-                       if ($idx !== false) {
-                               $len = strlen($value) - $idx - 2;
-                               $value = number_format(100 - $value, $len) . '%';
-                       } else {
-                               $value = (100 - $value) . '%';
-                       }
-               }
-               return $matches[1] . $value;
-       }
-}
-
-/**
- * Utility class used by CSSJanus that tokenizes and untokenizes things we want
- * to protect from being janused.
- * @author Roan Kattouw
- */
-class CSSJanusTokenizer {
-       private $regex;
-       private $token;
-       private $originals;
-
-       /**
-        * Constructor
-        * @param string $regex Regular expression whose matches to replace by a token.
-        * @param string $token Token
-        */
-       public function __construct($regex, $token) {
-               $this->regex = $regex;
-               $this->token = $token;
-               $this->originals = array();
-       }
-
-       /**
-        * Replace all occurrences of $regex in $str with a token and remember
-        * the original strings.
-        * @param string $str to tokenize
-        * @return string Tokenized string
-        */
-       public function tokenize($str) {
-               return preg_replace_callback($this->regex, array($this, 'tokenizeCallback'), $str);
-       }
-
-       /**
-        * @param $matches array
-        * @return string
-        */
-       private function tokenizeCallback($matches) {
-               $this->originals[] = $matches[0];
-               return $this->token;
-       }
-
-       /**
-        * Replace tokens with their originals. If multiple strings were tokenized, it's important they be
-        * detokenized in exactly the SAME ORDER.
-        * @param string $str previously run through tokenize()
-        * @return string Original string
-        */
-       public function detokenize($str) {
-               // PHP has no function to replace only the first occurrence or to
-               // replace occurrences of the same string with different values,
-               // so we use preg_replace_callback() even though we don't really need a regex
-               return preg_replace_callback(
-                       '/' . preg_quote($this->token, '/') . '/',
-                       array($this, 'detokenizeCallback'),
-                       $str
-               );
-       }
-
-       /**
-        * @param $matches
-        * @return mixed
-        */
-       private function detokenizeCallback($matches) {
-               $retval = current($this->originals);
-               next($this->originals);
-
-               return $retval;
-       }
-}
diff --git a/includes/libs/Cookie.php b/includes/libs/Cookie.php
new file mode 100644 (file)
index 0000000..56dc6ea
--- /dev/null
@@ -0,0 +1,291 @@
+<?php
+/**
+ * Cookie for HTTP requests.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup HTTP
+ */
+
+class Cookie {
+       protected $name;
+       protected $value;
+       protected $expires;
+       protected $path;
+       protected $domain;
+       protected $isSessionKey = true;
+       // TO IMPLEMENT  protected $secure
+       // TO IMPLEMENT? protected $maxAge (add onto expires)
+       // TO IMPLEMENT? protected $version
+       // TO IMPLEMENT? protected $comment
+
+       function __construct( $name, $value, $attr ) {
+               $this->name = $name;
+               $this->set( $value, $attr );
+       }
+
+       /**
+        * Sets a cookie.  Used before a request to set up any individual
+        * cookies. Used internally after a request to parse the
+        * Set-Cookie headers.
+        *
+        * @param string $value The value of the cookie
+        * @param array $attr Possible key/values:
+        *        expires A date string
+        *        path    The path this cookie is used on
+        *        domain  Domain this cookie is used on
+        * @throws MWException
+        */
+       public function set( $value, $attr ) {
+               $this->value = $value;
+
+               if ( isset( $attr['expires'] ) ) {
+                       $this->isSessionKey = false;
+                       $this->expires = strtotime( $attr['expires'] );
+               }
+
+               if ( isset( $attr['path'] ) ) {
+                       $this->path = $attr['path'];
+               } else {
+                       $this->path = '/';
+               }
+
+               if ( isset( $attr['domain'] ) ) {
+                       if ( self::validateCookieDomain( $attr['domain'] ) ) {
+                               $this->domain = $attr['domain'];
+                       }
+               } else {
+                       throw new InvalidArgumentException( '$attr must contain a domain' );
+               }
+       }
+
+       /**
+        * Return the true if the cookie is valid is valid.  Otherwise,
+        * false.  The uses a method similar to IE cookie security
+        * described here:
+        * http://kuza55.blogspot.com/2008/02/understanding-cookie-security.html
+        * A better method might be to use a blacklist like
+        * http://publicsuffix.org/
+        *
+        * @todo fixme fails to detect 3-letter top-level domains
+        * @todo fixme fails to detect 2-letter top-level domains for single-domain use (probably
+        * not a big problem in practice, but there are test cases)
+        *
+        * @param string $domain The domain to validate
+        * @param string $originDomain (optional) the domain the cookie originates from
+        * @return bool
+        */
+       public static function validateCookieDomain( $domain, $originDomain = null ) {
+               $dc = explode( ".", $domain );
+
+               // Don't allow a trailing dot or addresses without a or just a leading dot
+               if ( substr( $domain, -1 ) == '.' ||
+                       count( $dc ) <= 1 ||
+                       count( $dc ) == 2 && $dc[0] === ''
+               ) {
+                       return false;
+               }
+
+               // Only allow full, valid IP addresses
+               if ( preg_match( '/^[0-9.]+$/', $domain ) ) {
+                       if ( count( $dc ) != 4 ) {
+                               return false;
+                       }
+
+                       if ( ip2long( $domain ) === false ) {
+                               return false;
+                       }
+
+                       if ( $originDomain == null || $originDomain == $domain ) {
+                               return true;
+                       }
+
+               }
+
+               // Don't allow cookies for "co.uk" or "gov.uk", etc, but allow "supermarket.uk"
+               if ( strrpos( $domain, "." ) - strlen( $domain ) == -3 ) {
+                       if ( ( count( $dc ) == 2 && strlen( $dc[0] ) <= 2 )
+                               || ( count( $dc ) == 3 && strlen( $dc[0] ) == "" && strlen( $dc[1] ) <= 2 ) ) {
+                               return false;
+                       }
+                       if ( ( count( $dc ) == 2 || ( count( $dc ) == 3 && $dc[0] == '' ) )
+                               && preg_match( '/(com|net|org|gov|edu)\...$/', $domain ) ) {
+                               return false;
+                       }
+               }
+
+               if ( $originDomain != null ) {
+                       if ( substr( $domain, 0, 1 ) != '.' && $domain != $originDomain ) {
+                               return false;
+                       }
+
+                       if ( substr( $domain, 0, 1 ) == '.'
+                               && substr_compare(
+                                       $originDomain,
+                                       $domain,
+                                       -strlen( $domain ),
+                                       strlen( $domain ),
+                                       true
+                               ) != 0
+                       ) {
+                               return false;
+                       }
+               }
+
+               return true;
+       }
+
+       /**
+        * Serialize the cookie jar into a format useful for HTTP Request headers.
+        *
+        * @param string $path The path that will be used. Required.
+        * @param string $domain The domain that will be used. Required.
+        * @return string
+        */
+       public function serializeToHttpRequest( $path, $domain ) {
+               $ret = '';
+
+               if ( $this->canServeDomain( $domain )
+                               && $this->canServePath( $path )
+                               && $this->isUnExpired() ) {
+                       $ret = $this->name . '=' . $this->value;
+               }
+
+               return $ret;
+       }
+
+       /**
+        * @param string $domain
+        * @return bool
+        */
+       protected function canServeDomain( $domain ) {
+               if ( $domain == $this->domain
+                       || ( strlen( $domain ) > strlen( $this->domain )
+                               && substr( $this->domain, 0, 1 ) == '.'
+                               && substr_compare(
+                                       $domain,
+                                       $this->domain,
+                                       -strlen( $this->domain ),
+                                       strlen( $this->domain ),
+                                       true
+                               ) == 0
+                       )
+               ) {
+                       return true;
+               }
+
+               return false;
+       }
+
+       /**
+        * @param string $path
+        * @return bool
+        */
+       protected function canServePath( $path ) {
+               return ( $this->path && substr_compare( $this->path, $path, 0, strlen( $this->path ) ) == 0 );
+       }
+
+       /**
+        * @return bool
+        */
+       protected function isUnExpired() {
+               return $this->isSessionKey || $this->expires > time();
+       }
+}
+
+class CookieJar {
+       private $cookie = array();
+
+       /**
+        * Set a cookie in the cookie jar. Make sure only one cookie per-name exists.
+        * @see Cookie::set()
+        * @param string $name
+        * @param string $value
+        * @param array $attr
+        */
+       public function setCookie( $name, $value, $attr ) {
+               /* cookies: case insensitive, so this should work.
+                * We'll still send the cookies back in the same case we got them, though.
+                */
+               $index = strtoupper( $name );
+
+               if ( isset( $this->cookie[$index] ) ) {
+                       $this->cookie[$index]->set( $value, $attr );
+               } else {
+                       $this->cookie[$index] = new Cookie( $name, $value, $attr );
+               }
+       }
+
+       /**
+        * @see Cookie::serializeToHttpRequest
+        * @param string $path
+        * @param string $domain
+        * @return string
+        */
+       public function serializeToHttpRequest( $path, $domain ) {
+               $cookies = array();
+
+               foreach ( $this->cookie as $c ) {
+                       $serialized = $c->serializeToHttpRequest( $path, $domain );
+
+                       if ( $serialized ) {
+                               $cookies[] = $serialized;
+                       }
+               }
+
+               return implode( '; ', $cookies );
+       }
+
+       /**
+        * Parse the content of an Set-Cookie HTTP Response header.
+        *
+        * @param string $cookie
+        * @param string $domain Cookie's domain
+        * @return null
+        */
+       public function parseCookieResponseHeader( $cookie, $domain ) {
+               $len = strlen( 'Set-Cookie:' );
+
+               if ( substr_compare( 'Set-Cookie:', $cookie, 0, $len, true ) === 0 ) {
+                       $cookie = substr( $cookie, $len );
+               }
+
+               $bit = array_map( 'trim', explode( ';', $cookie ) );
+
+               if ( count( $bit ) >= 1 ) {
+                       list( $name, $value ) = explode( '=', array_shift( $bit ), 2 );
+                       $attr = array();
+
+                       foreach ( $bit as $piece ) {
+                               $parts = explode( '=', $piece );
+                               if ( count( $parts ) > 1 ) {
+                                       $attr[strtolower( $parts[0] )] = $parts[1];
+                               } else {
+                                       $attr[strtolower( $parts[0] )] = true;
+                               }
+                       }
+
+                       if ( !isset( $attr['domain'] ) ) {
+                               $attr['domain'] = $domain;
+                       } elseif ( !Cookie::validateCookieDomain( $attr['domain'], $domain ) ) {
+                               return null;
+                       }
+
+                       $this->setCookie( $name, $value, $attr );
+               }
+       }
+}
index 8421672..c7f5e5a 100644 (file)
@@ -261,14 +261,21 @@ class LogEventsList extends ContextSource {
         * @return string
         */
        private function getExtraInputs( $types ) {
-               $offender = $this->getRequest()->getVal( 'offender' );
-               $user = User::newFromName( $offender, false );
-               if ( !$user || ( $user->getId() == 0 && !IP::isIPAddress( $offender ) ) ) {
-                       $offender = ''; // Blank field if invalid
-               }
-               if ( count( $types ) == 1 && $types[0] == 'suppress' ) {
-                       return Xml::inputLabel( $this->msg( 'revdelete-offender' )->text(), 'offender',
-                               'mw-log-offender', 20, $offender );
+               if ( count( $types ) == 1 ) {
+                       if ( $types[0] == 'suppress' ) {
+                               $offender = $this->getRequest()->getVal( 'offender' );
+                               $user = User::newFromName( $offender, false );
+                               if ( !$user || ( $user->getId() == 0 && !IP::isIPAddress( $offender ) ) ) {
+                                       $offender = ''; // Blank field if invalid
+                               }
+                               return Xml::inputLabel( $this->msg( 'revdelete-offender' )->text(), 'offender',
+                                       'mw-log-offender', 20, $offender );
+                       } else {
+                               // Allow extensions to add their own extra inputs
+                               $input = '';
+                               wfRunHooks( 'LogEventsListGetExtraInputs', array( $types[0], $this, &$input ) );
+                               return $input;
+                       }
                }
 
                return '';
@@ -557,7 +564,7 @@ class LogEventsList extends ContextSource {
                if ( $logBody ) {
                        if ( $msgKey[0] ) {
                                $dir = $context->getLanguage()->getDir();
-                               $lang = $context->getLanguage()->getCode();
+                               $lang = $context->getLanguage()->getHtmlCode();
 
                                $s = Xml::openElement( 'div', array(
                                        'class' => "mw-warning-with-logexcerpt mw-content-$dir",
index 8e5b98a..4c12b10 100644 (file)
@@ -30,9 +30,9 @@
  */
 abstract class Profiler {
        /** @var string|bool Profiler ID for bucketing data */
-       protected $mProfileID = false;
+       protected $profileID = false;
        /** @var bool Whether MediaWiki is in a SkinTemplate output context */
-       protected $mTemplated = false;
+       protected $templated = false;
 
        /** @var TransactionProfiler */
        protected $trxProfiler;
@@ -47,7 +47,7 @@ abstract class Profiler {
         */
        public function __construct( array $params ) {
                if ( isset( $params['profileID'] ) ) {
-                       $this->mProfileID = $params['profileID'];
+                       $this->profileID = $params['profileID'];
                }
                $this->trxProfiler = new TransactionProfiler();
        }
@@ -96,17 +96,17 @@ abstract class Profiler {
         * @param string $id
         */
        public function setProfileID( $id ) {
-               $this->mProfileID = $id;
+               $this->profileID = $id;
        }
 
        /**
         * @return string
         */
        public function getProfileID() {
-               if ( $this->mProfileID === false ) {
+               if ( $this->profileID === false ) {
                        return wfWikiID();
                } else {
-                       return $this->mProfileID;
+                       return $this->profileID;
                }
        }
 
@@ -125,31 +125,11 @@ abstract class Profiler {
        abstract public function profileOut( $functionname );
 
        /**
-        * Mark a DB as in a transaction with one or more writes pending
-        *
-        * Note that there can be multiple connections to a single DB.
-        *
-        * @param string $server DB server
-        * @param string $db DB name
-        * @param string $id Resource ID string of connection
-        */
-       public function transactionWritingIn( $server, $db, $id = '' ) {
-               $this->trxProfiler->transactionWritingIn( $server, $db, $id );
-       }
-
-       /**
-        * Mark a DB as no longer in a transaction
-        *
-        * This will check if locks are possibly held for longer than
-        * needed and log any affected transactions to a special DB log.
-        * Note that there can be multiple connections to a single DB.
-        *
-        * @param string $server DB server
-        * @param string $db DB name
-        * @param string $id Resource ID string of connection
+        * @return TransactionProfiler
+        * @since 1.25
         */
-       public function transactionWritingOut( $server, $db, $id = '' ) {
-               $this->trxProfiler->transactionWritingOut( $server, $db, $id );
+       public function getTransactionProfiler() {
+               return $this->trxProfiler;
        }
 
        /**
@@ -168,7 +148,7 @@ abstract class Profiler {
         * @param bool $t
         */
        public function setTemplated( $t ) {
-               $this->mTemplated = $t;
+               $this->templated = $t;
        }
 
        /**
@@ -246,27 +226,4 @@ abstract class Profiler {
                        }
                }
        }
-
-       /**
-        * Add an entry in the debug log file
-        *
-        * @param string $s String to output
-        */
-       protected function debug( $s ) {
-               if ( function_exists( 'wfDebug' ) ) {
-                       wfDebug( $s );
-               }
-       }
-
-       /**
-        * Add an entry in the debug log group
-        *
-        * @param string $group Group to send the message to
-        * @param string $s String to output
-        */
-       protected function debugGroup( $group, $s ) {
-               if ( function_exists( 'wfDebugLog' ) ) {
-                       wfDebugLog( $group, $s );
-               }
-       }
 }
index 5e62f7c..3625db6 100644 (file)
@@ -56,7 +56,7 @@ class ProfilerSimpleDB extends ProfilerStandard {
                        if ( $useTrx ) {
                                $dbw->startAtomic( __METHOD__ );
                        }
-                       foreach ( $this->mCollated as $name => $data ) {
+                       foreach ( $this->collated as $name => $data ) {
                                $eventCount = $data['count'];
                                $timeSum = (float)( $data['real'] * 1000 );
                                $memorySum = (float)$data['memory'];
index d020d1f..264845e 100644 (file)
@@ -43,18 +43,18 @@ class ProfilerSimpleText extends ProfilerStandard {
 
        public function logData() {
                $out = '';
-               if ( $this->mTemplated ) {
+               if ( $this->templated ) {
                        $this->close();
-                       $totalReal = isset( $this->mCollated['-total'] )
-                               ? $this->mCollated['-total']['real']
+                       $totalReal = isset( $this->collated['-total'] )
+                               ? $this->collated['-total']['real']
                                : 0; // profiling mismatch error?
 
-                       uasort( $this->mCollated, function( $a, $b ) {
+                       uasort( $this->collated, function( $a, $b ) {
                                // sort descending by time elapsed
                                return $a['real'] < $b['real'];
                        } );
 
-                       array_walk( $this->mCollated,
+                       array_walk( $this->collated,
                                function( $item, $key ) use ( &$out, $totalReal ) {
                                        $perc = $totalReal ? $item['real'] / $totalReal * 100 : 0;
                                        $out .= sprintf( "%6.2f%% %3.6f %6d - %s\n",
index 0dd4067..893d960 100644 (file)
@@ -34,11 +34,11 @@ class ProfilerSimpleTrace extends ProfilerStandard {
                parent::profileIn( $functionname );
 
                $this->trace .= "         " . sprintf( "%6.1f", $this->memoryDiff() ) .
-                       str_repeat( " ", count( $this->mWorkStack ) ) . " > " . $functionname . "\n";
+                       str_repeat( " ", count( $this->workStack ) ) . " > " . $functionname . "\n";
        }
 
        public function profileOut( $functionname ) {
-               $item = end( $this->mWorkStack );
+               $item = end( $this->workStack );
 
                parent::profileOut( $functionname );
 
@@ -55,7 +55,7 @@ class ProfilerSimpleTrace extends ProfilerStandard {
                        }
                        $elapsedreal = $this->getTime() - $ortime;
                        $this->trace .= sprintf( "%03.6f %6.1f", $elapsedreal, $this->memoryDiff() ) .
-                               str_repeat( " ", count( $this->mWorkStack ) + 1 ) . " < " . $functionname . "\n";
+                               str_repeat( " ", count( $this->workStack ) + 1 ) . " < " . $functionname . "\n";
                }
        }
 
@@ -66,7 +66,7 @@ class ProfilerSimpleTrace extends ProfilerStandard {
        }
 
        public function logData() {
-               if ( $this->mTemplated ) {
+               if ( $this->templated ) {
                        $contentType = $this->getContentType();
                        if ( PHP_SAPI === 'cli' ) {
                                print "<!-- \n {$this->trace} \n -->";
index 02405af..2671376 100644 (file)
@@ -45,7 +45,7 @@ class ProfilerSimpleUDP extends ProfilerStandard {
                $sock = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP );
                $plength = 0;
                $packet = "";
-               foreach ( $this->mCollated as $entry => $pfdata ) {
+               foreach ( $this->collated as $entry => $pfdata ) {
                        if ( !isset( $pfdata['count'] )
                                || !isset( $pfdata['cpu'] )
                                || !isset( $pfdata['cpu_sq'] )
index a65e53e..4825f7a 100644 (file)
  */
 class ProfilerStandard extends Profiler {
        /** @var array List of resolved profile calls with start/end data */
-       protected $mStack = array();
+       protected $stack = array();
        /** @var array Queue of open profile calls with start data */
-       protected $mWorkStack = array();
+       protected $workStack = array();
 
        /** @var array Map of (function name => aggregate data array) */
-       protected $mCollated = array();
+       protected $collated = array();
        /** @var bool */
-       protected $mCollateDone = false;
+       protected $collateDone = false;
        /** @var bool Whether to collect the full stack trace or just aggregates */
-       protected $mCollateOnly = true;
+       protected $collateOnly = true;
        /** @var array Cache of a standard broken collation entry */
-       protected $mErrorEntry;
+       protected $errorEntry;
 
        /**
         * @param array $params
@@ -77,17 +77,17 @@ class ProfilerStandard extends Profiler {
         * Add the inital item in the stack.
         */
        protected function addInitialStack() {
-               $this->mErrorEntry = $this->getErrorEntry();
+               $this->errorEntry = $this->getErrorEntry();
 
                $initialTime = $this->getInitialTime( 'wall' );
                $initialCpu = $this->getInitialTime( 'cpu' );
                if ( $initialTime !== null && $initialCpu !== null ) {
-                       $this->mWorkStack[] = array( '-total', 0, $initialTime, $initialCpu, 0 );
-                       if ( $this->mCollateOnly ) {
-                               $this->mWorkStack[] = array( '-setup', 1, $initialTime, $initialCpu, 0 );
+                       $this->workStack[] = array( '-total', 0, $initialTime, $initialCpu, 0 );
+                       if ( $this->collateOnly ) {
+                               $this->workStack[] = array( '-setup', 1, $initialTime, $initialCpu, 0 );
                                $this->profileOut( '-setup' );
                        } else {
-                               $this->mStack[] = array( '-setup', 1, $initialTime, $initialCpu, 0,
+                               $this->stack[] = array( '-setup', 1, $initialTime, $initialCpu, 0,
                                        $this->getTime( 'wall' ), $this->getTime( 'cpu' ), 0 );
                        }
                } else {
@@ -110,8 +110,8 @@ class ProfilerStandard extends Profiler {
                        'max_cpu'  => 0.0,
                        'min_real' => 0.0,
                        'max_real' => 0.0,
-                       'periods'  => array(), // not filled if mCollateOnly
-                       'overhead' => 0 // not filled if mCollateOnly
+                       'periods'  => array(), // not filled if collateOnly
+                       'overhead' => 0 // not filled if collateOnly
                );
        }
 
@@ -137,10 +137,10 @@ class ProfilerStandard extends Profiler {
        protected function updateEntry(
                $name, $elapsedCpu, $elapsedReal, $memChange, $subcalls = 0, $period = null
        ) {
-               $entry =& $this->mCollated[$name];
+               $entry =& $this->collated[$name];
                if ( !is_array( $entry ) ) {
                        $entry = $this->getZeroEntry();
-                       $this->mCollated[$name] =& $entry;
+                       $this->collated[$name] =& $entry;
                }
                $entry['cpu'] += $elapsedCpu;
                $entry['cpu_sq'] += $elapsedCpu * $elapsedCpu;
@@ -168,13 +168,13 @@ class ProfilerStandard extends Profiler {
                global $wgDebugFunctionEntry;
 
                if ( $wgDebugFunctionEntry ) {
-                       $this->debug( str_repeat( ' ', count( $this->mWorkStack ) ) .
+                       $this->debug( str_repeat( ' ', count( $this->workStack ) ) .
                                'Entering ' . $functionname . "\n" );
                }
 
-               $this->mWorkStack[] = array(
+               $this->workStack[] = array(
                        $functionname,
-                       count( $this->mWorkStack ),
+                       count( $this->workStack ),
                        $this->getTime( 'time' ),
                        $this->getTime( 'cpu' ),
                        memory_get_usage()
@@ -190,11 +190,11 @@ class ProfilerStandard extends Profiler {
                global $wgDebugFunctionEntry;
 
                if ( $wgDebugFunctionEntry ) {
-                       $this->debug( str_repeat( ' ', count( $this->mWorkStack ) - 1 ) .
+                       $this->debug( str_repeat( ' ', count( $this->workStack ) - 1 ) .
                                'Exiting ' . $functionname . "\n" );
                }
 
-               $item = array_pop( $this->mWorkStack );
+               $item = array_pop( $this->workStack );
                list( $ofname, /* $ocount */, $ortime, $octime, $omem ) = $item;
 
                if ( $item === null ) {
@@ -204,34 +204,33 @@ class ProfilerStandard extends Profiler {
                                if ( $ofname !== '-total' ) {
                                        $message = "Profile section ended by close(): {$ofname}";
                                        $this->debugGroup( 'profileerror', $message );
-                                       if ( $this->mCollateOnly ) {
-                                               $this->mCollated[$message] = $this->mErrorEntry;
+                                       if ( $this->collateOnly ) {
+                                               $this->collated[$message] = $this->errorEntry;
                                        } else {
-                                               $this->mStack[] = array( $message, 0, 0.0, 0.0, 0, 0.0, 0.0, 0 );
+                                               $this->stack[] = array( $message, 0, 0.0, 0.0, 0, 0.0, 0.0, 0 );
                                        }
                                }
                                $functionname = $ofname;
                        } elseif ( $ofname !== $functionname ) {
                                $message = "Profiling error: in({$ofname}), out($functionname)";
                                $this->debugGroup( 'profileerror', $message );
-                               if ( $this->mCollateOnly ) {
-                                       $this->mCollated[$message] = $this->mErrorEntry;
+                               if ( $this->collateOnly ) {
+                                       $this->collated[$message] = $this->errorEntry;
                                } else {
-                                       $this->mStack[] = array( $message, 0, 0.0, 0.0, 0, 0.0, 0.0, 0 );
+                                       $this->stack[] = array( $message, 0, 0.0, 0.0, 0, 0.0, 0.0, 0 );
                                }
                        }
                        $realTime = $this->getTime( 'wall' );
                        $cpuTime = $this->getTime( 'cpu' );
-                       if ( $this->mCollateOnly ) {
+                       if ( $this->collateOnly ) {
                                $elapsedcpu = $cpuTime - $octime;
                                $elapsedreal = $realTime - $ortime;
                                $memchange = memory_get_usage() - $omem;
                                $this->updateEntry( $functionname, $elapsedcpu, $elapsedreal, $memchange );
                        } else {
-                               $this->mStack[] = array_merge( $item,
+                               $this->stack[] = array_merge( $item,
                                        array( $realTime, $cpuTime,     memory_get_usage() ) );
                        }
-                       $this->trxProfiler->recordFunctionCompletion( $functionname, $realTime - $ortime );
                }
        }
 
@@ -239,7 +238,7 @@ class ProfilerStandard extends Profiler {
         * Close opened profiling sections
         */
        public function close() {
-               while ( count( $this->mWorkStack ) ) {
+               while ( count( $this->workStack ) ) {
                        $this->profileOut( 'close' );
                }
        }
@@ -261,7 +260,7 @@ class ProfilerStandard extends Profiler {
 
                $wgDebugFunctionEntry = false; // hack
 
-               if ( !count( $this->mStack ) && !count( $this->mCollated ) ) {
+               if ( !count( $this->stack ) && !count( $this->collated ) ) {
                        return "No profiling output\n";
                }
 
@@ -278,7 +277,7 @@ class ProfilerStandard extends Profiler {
         */
        protected function getCallTree() {
                return implode( '', array_map(
-                       array( &$this, 'getCallTreeLine' ), $this->remapCallTree( $this->mStack )
+                       array( &$this, 'getCallTreeLine' ), $this->remapCallTree( $this->stack )
                ) );
        }
 
@@ -339,28 +338,28 @@ class ProfilerStandard extends Profiler {
        }
 
        /**
-        * Populate mCollated
+        * Populate collated
         */
        protected function collateData() {
-               if ( $this->mCollateDone ) {
+               if ( $this->collateDone ) {
                        return;
                }
-               $this->mCollateDone = true;
+               $this->collateDone = true;
                $this->close(); // set "-total" entry
 
-               if ( $this->mCollateOnly ) {
+               if ( $this->collateOnly ) {
                        return; // already collated as methods exited
                }
 
-               $this->mCollated = array();
+               $this->collated = array();
 
                # Estimate profiling overhead
-               $profileCount = count( $this->mStack );
+               $profileCount = count( $this->stack );
                self::calculateOverhead( $profileCount );
 
                # First, subtract the overhead!
                $overheadTotal = $overheadMemory = $overheadInternal = array();
-               foreach ( $this->mStack as $entry ) {
+               foreach ( $this->stack as $entry ) {
                        // $entry is (name,pos,rtime0,cputime0,mem0,rtime1,cputime1,mem1)
                        $fname = $entry[0];
                        $elapsed = $entry[5] - $entry[2];
@@ -381,13 +380,13 @@ class ProfilerStandard extends Profiler {
                        array_sum( $overheadInternal ) / count( $overheadInternal ) : 0;
 
                # Collate
-               foreach ( $this->mStack as $index => $entry ) {
+               foreach ( $this->stack as $index => $entry ) {
                        // $entry is (name,pos,rtime0,cputime0,mem0,rtime1,cputime1,mem1)
                        $fname = $entry[0];
                        $elapsedCpu = $entry[6] - $entry[3];
                        $elapsedReal = $entry[5] - $entry[2];
                        $memchange = $entry[7] - $entry[4];
-                       $subcalls = $this->calltreeCount( $this->mStack, $index );
+                       $subcalls = $this->calltreeCount( $this->stack, $index );
 
                        if ( substr( $fname, 0, 9 ) !== '-overhead' ) {
                                # Adjust for profiling overhead (except special values with elapsed=0
@@ -403,8 +402,8 @@ class ProfilerStandard extends Profiler {
                        $this->updateEntry( $fname, $elapsedCpu, $elapsedReal, $memchange, $subcalls, $period );
                }
 
-               $this->mCollated['-overhead-total']['count'] = $profileCount;
-               arsort( $this->mCollated, SORT_NUMERIC );
+               $this->collated['-overhead-total']['count'] = $profileCount;
+               arsort( $this->collated, SORT_NUMERIC );
        }
 
        /**
@@ -422,11 +421,11 @@ class ProfilerStandard extends Profiler {
                $prof = "\nProfiling data\n";
                $prof .= sprintf( $titleFormat, 'Name', 'Calls', 'Total', 'Each', '%', 'Mem' );
 
-               $total = isset( $this->mCollated['-total'] )
-                       ? $this->mCollated['-total']['real']
+               $total = isset( $this->collated['-total'] )
+                       ? $this->collated['-total']['real']
                        : 0;
 
-               foreach ( $this->mCollated as $fname => $data ) {
+               foreach ( $this->collated as $fname => $data ) {
                        $calls = $data['count'];
                        $percent = $total ? 100 * $data['real'] / $total : 0;
                        $memory = $data['memory'];
@@ -455,28 +454,28 @@ class ProfilerStandard extends Profiler {
                // If some outer methods have not yet called wfProfileOut(), work around
                // that by clearing anything in the work stack to just the "-total" entry.
                // Collate after doing this so the results do not include profile errors.
-               if ( count( $this->mWorkStack ) > 1 ) {
-                       $oldWorkStack = $this->mWorkStack;
-                       $this->mWorkStack = array( $this->mWorkStack[0] ); // just the "-total" one
+               if ( count( $this->workStack ) > 1 ) {
+                       $oldWorkStack = $this->workStack;
+                       $this->workStack = array( $this->workStack[0] ); // just the "-total" one
                } else {
                        $oldWorkStack = null;
                }
                $this->collateData();
                // If this trick is used, then the old work stack is swapped back afterwards
-               // and mCollateDone is reset to false. This means that logData() will still
+               // and collateDone is reset to false. This means that logData() will still
                // make use of all the method data since the missing wfProfileOut() calls
                // should be made by the time it is called.
                if ( $oldWorkStack ) {
-                       $this->mWorkStack = $oldWorkStack;
-                       $this->mCollateDone = false;
+                       $this->workStack = $oldWorkStack;
+                       $this->collateDone = false;
                }
 
-               $total = isset( $this->mCollated['-total'] )
-                       ? $this->mCollated['-total']['real']
+               $total = isset( $this->collated['-total'] )
+                       ? $this->collated['-total']['real']
                        : 0;
 
                $profile = array();
-               foreach ( $this->mCollated as $fname => $data ) {
+               foreach ( $this->collated as $fname => $data ) {
                        $periods = array();
                        foreach ( $data['periods'] as $period ) {
                                $period['start'] *= 1000;
@@ -542,4 +541,27 @@ class ProfilerStandard extends Profiler {
                }
                return null;
        }
+
+       /**
+        * Add an entry in the debug log file
+        *
+        * @param string $s String to output
+        */
+       protected function debug( $s ) {
+               if ( function_exists( 'wfDebug' ) ) {
+                       wfDebug( $s );
+               }
+       }
+
+       /**
+        * Add an entry in the debug log group
+        *
+        * @param string $group Group to send the message to
+        * @param string $s String to output
+        */
+       protected function debugGroup( $group, $s ) {
+               if ( function_exists( 'wfDebugLog' ) ) {
+                       wfDebugLog( $group, $s );
+               }
+       }
 }
index 1d3b65d..e81f579 100644 (file)
@@ -54,12 +54,6 @@ class ProfilerStub extends Profiler {
                return '';
        }
 
-       public function transactionWritingIn( $server, $db, $id = '' ) {
-       }
-
-       public function transactionWritingOut( $server, $db, $id = '' ) {
-       }
-
        public function getRawData() {
                return array();
        }
index 5ee51e3..7843ac1 100644 (file)
@@ -19,6 +19,7 @@
  *
  * @file
  * @ingroup Profiler
+ * @author Aaron Schulz
  */
 
 /**
  */
 class TransactionProfiler {
        /** @var float Seconds */
-       protected $mDBLockThreshold = 3.0;
+       protected $dbLockThreshold = 3.0;
        /** @var array DB/server name => (active trx count, time, DBs involved) */
-       protected $mDBTrxHoldingLocks = array();
+       protected $dbTrxHoldingLocks = array();
        /** @var array DB/server name => list of (function name, elapsed time) */
-       protected $mDBTrxMethodTimes = array();
+       protected $dbTrxMethodTimes = array();
 
        /**
         * Mark a DB as in a transaction with one or more writes pending
@@ -48,16 +49,16 @@ class TransactionProfiler {
         */
        public function transactionWritingIn( $server, $db, $id ) {
                $name = "{$server} ({$db}) (TRX#$id)";
-               if ( isset( $this->mDBTrxHoldingLocks[$name] ) ) {
+               if ( isset( $this->dbTrxHoldingLocks[$name] ) ) {
                        wfDebugLog( 'DBPerformance', "Nested transaction for '$name' - out of sync." );
                }
-               $this->mDBTrxHoldingLocks[$name] = array(
+               $this->dbTrxHoldingLocks[$name] = array(
                        'start' => microtime( true ),
                        'conns' => array(),
                );
-               $this->mDBTrxMethodTimes[$name] = array();
+               $this->dbTrxMethodTimes[$name] = array();
 
-               foreach ( $this->mDBTrxHoldingLocks as $name => &$info ) {
+               foreach ( $this->dbTrxHoldingLocks as $name => &$info ) {
                        // Track all DBs in transactions for this transaction
                        $info['conns'][$name] = 1;
                }
@@ -69,24 +70,23 @@ class TransactionProfiler {
         * This method is only to be called by the Profiler class as methods finish
         *
         * @param string $method Function name
-        * @param float $realtime Wal time ellapsed
+        * @param float $realtime Wall time ellapsed
         */
        public function recordFunctionCompletion( $method, $realtime ) {
-               if ( !$this->mDBTrxHoldingLocks ) {
+               if ( !$this->dbTrxHoldingLocks ) {
                        // Short-circuit
                        return;
-               // @todo hardcoded check is a tad janky (what about FOR UPDATE?)
-               } elseif ( !preg_match( '/^query-m: (?!SELECT)/', $method )
-                       && $realtime < $this->mDBLockThreshold
-               ) {
+               // @todo hardcoded check is a tad janky
+               } elseif ( !preg_match( '/^query-m: /', $method ) && $realtime < 1.0 ) {
                        // Not a DB master query nor slow enough
                        return;
                }
+
                $now = microtime( true );
-               foreach ( $this->mDBTrxHoldingLocks as $name => $info ) {
+               foreach ( $this->dbTrxHoldingLocks as $name => $info ) {
                        // Hacky check to exclude entries from before the first TRX write
                        if ( ( $now - $realtime ) >= $info['start'] ) {
-                               $this->mDBTrxMethodTimes[$name][] = array( $method, $realtime );
+                               $this->dbTrxMethodTimes[$name][] = array( $method, $realtime );
                        }
                }
        }
@@ -104,28 +104,28 @@ class TransactionProfiler {
         */
        public function transactionWritingOut( $server, $db, $id ) {
                $name = "{$server} ({$db}) (TRX#$id)";
-               if ( !isset( $this->mDBTrxMethodTimes[$name] ) ) {
+               if ( !isset( $this->dbTrxMethodTimes[$name] ) ) {
                        wfDebugLog( 'DBPerformance', "Detected no transaction for '$name' - out of sync." );
                        return;
                }
                $slow = false;
-               foreach ( $this->mDBTrxMethodTimes[$name] as $info ) {
+               foreach ( $this->dbTrxMethodTimes[$name] as $info ) {
                        $realtime = $info[1];
-                       if ( $realtime >= $this->mDBLockThreshold ) {
+                       if ( $realtime >= $this->dbLockThreshold ) {
                                $slow = true;
                                break;
                        }
                }
                if ( $slow ) {
-                       $dbs = implode( ', ', array_keys( $this->mDBTrxHoldingLocks[$name]['conns'] ) );
+                       $dbs = implode( ', ', array_keys( $this->dbTrxHoldingLocks[$name]['conns'] ) );
                        $msg = "Sub-optimal transaction on DB(s) [{$dbs}]:\n";
-                       foreach ( $this->mDBTrxMethodTimes[$name] as $i => $info ) {
+                       foreach ( $this->dbTrxMethodTimes[$name] as $i => $info ) {
                                list( $method, $realtime ) = $info;
                                $msg .= sprintf( "%d\t%.6f\t%s\n", $i, $realtime, $method );
                        }
                        wfDebugLog( 'DBPerformance', $msg );
                }
-               unset( $this->mDBTrxHoldingLocks[$name] );
-               unset( $this->mDBTrxMethodTimes[$name] );
+               unset( $this->dbTrxHoldingLocks[$name] );
+               unset( $this->dbTrxMethodTimes[$name] );
        }
 }
index d3aa6c4..99704a9 100644 (file)
@@ -95,6 +95,9 @@ class SpecialLog extends SpecialPage {
                        } elseif ( $offender && IP::isIPAddress( $offender->getName() ) ) {
                                $qc = array( 'ls_field' => 'target_author_ip', 'ls_value' => $offender->getName() );
                        }
+               } else {
+                       // Allow extensions to add relations to their search types
+                       wfRunHooks( 'SpecialLogAddLogSearchRelations', array( $opts->getValue( 'type' ), $this->getRequest(), &$qc ) );
                }
 
                # Some log types are only for a 'User:' title but we might have been given
index b9d1872..bc16925 100644 (file)
@@ -59,7 +59,7 @@ class SpecialNewFiles extends IncludableSpecialPage {
                if ( !$message->isDisabled() ) {
                        $this->getOutput()->addWikiText(
                                Html::rawElement( 'p',
-                                       array( 'lang' => $wgContLang->getCode(), 'dir' => $wgContLang->getDir() ),
+                                       array( 'lang' => $wgContLang->getHtmlCode(), 'dir' => $wgContLang->getDir() ),
                                        "\n" . $message->plain() . "\n"
                                ),
                                /* $lineStart */ false,
index 6b9173f..34f434f 100644 (file)
@@ -191,8 +191,8 @@ class SpecialVersion extends SpecialPage {
                        'Alexandre Emsenhuber', 'Siebrand Mazeland', 'Chad Horohoe',
                        'Roan Kattouw', 'Trevor Parscal', 'Bryan Tong Minh', 'Sam Reed',
                        'Victor Vasiliev', 'Rotem Liss', 'Platonides', 'Antoine Musso',
-                       'Timo Tijhof', 'Daniel Kinzler', 'Jeroen De Dauw', $othersLink,
-                       $translatorsLink
+                       'Timo Tijhof', 'Daniel Kinzler', 'Jeroen De Dauw', 'Brad Jorsch',
+                       $othersLink, $translatorsLink
                );
 
                return wfMessage( 'version-poweredby-credits', MWTimestamp::getLocalInstance()->format( 'Y' ),
@@ -808,7 +808,7 @@ class SpecialVersion extends SpecialPage {
                $html .= Html::rawElement( 'td', array( 'class' => 'mw-version-ext-description' ), $description );
                $html .= Html::rawElement( 'td', array( 'class' => 'mw-version-ext-authors' ), $authors );
 
-               $html .= Html::closeElement( 'td' );
+               $html .= Html::closeElement( 'tr' );
 
                return $html;
        }
@@ -1203,7 +1203,7 @@ class SpecialVersion extends SpecialPage {
                $language = $this->getLanguage();
                $thAttribures = array(
                        'dir' => $language->getDir(),
-                       'lang' => $language->getCode()
+                       'lang' => $language->getHtmlCode()
                );
                $out = Html::element(
                                'h2',
index 079c7f8..a278652 100644 (file)
@@ -424,7 +424,7 @@ abstract class UploadBase {
         * @return mixed True of the file is verified, array otherwise.
         */
        protected function verifyFile() {
-               global $wgVerifyMimeType;
+               global $wgVerifyMimeType, $wgDisableUploadScriptChecks;
                wfProfileIn( __METHOD__ );
 
                $status = $this->verifyPartialFile();
@@ -446,6 +446,18 @@ abstract class UploadBase {
                        }
                }
 
+               # check for htmlish code and javascript
+               if ( !$wgDisableUploadScriptChecks ) {
+                       if ( $this->mFinalExtension == 'svg' || $mime == 'image/svg+xml' ) {
+                               $svgStatus = $this->detectScriptInSvg( $this->mTempPath, false );
+                               if ( $svgStatus !== false ) {
+                                       wfProfileOut( __METHOD__ );
+
+                                       return $svgStatus;
+                               }
+                       }
+               }
+
                $handler = MediaHandler::getHandler( $mime );
                if ( $handler ) {
                        $handlerStatus = $handler->verifyUpload( $this->mTempPath );
@@ -504,7 +516,7 @@ abstract class UploadBase {
                                return array( 'uploadscripted' );
                        }
                        if ( $this->mFinalExtension == 'svg' || $mime == 'image/svg+xml' ) {
-                               $svgStatus = $this->detectScriptInSvg( $this->mTempPath );
+                               $svgStatus = $this->detectScriptInSvg( $this->mTempPath, true );
                                if ( $svgStatus !== false ) {
                                        wfProfileOut( __METHOD__ );
 
@@ -1281,9 +1293,10 @@ abstract class UploadBase {
 
        /**
         * @param string $filename
+        * @param bool $partial
         * @return mixed False of the file is verified (does not contain scripts), array otherwise.
         */
-       protected function detectScriptInSvg( $filename ) {
+       protected function detectScriptInSvg( $filename, $partial ) {
                $this->mSVGNSError = false;
                $check = new XmlTypeCheck(
                        $filename,
@@ -1293,7 +1306,8 @@ abstract class UploadBase {
                );
                if ( $check->wellFormed !== true ) {
                        // Invalid xml (bug 58553)
-                       return array( 'uploadinvalidxml' );
+                       // But only when non-partial (bug 65724)
+                       return $partial ? false : array( 'uploadinvalidxml' );
                } elseif ( $check->filterMatch ) {
                        if ( $this->mSVGNSError ) {
                                return array( 'uploadscriptednamespace', $this->mSVGNSError );
diff --git a/includes/utils/ArrayUtils.php b/includes/utils/ArrayUtils.php
deleted file mode 100644 (file)
index 1e521cb..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-<?php
-/**
- * Methods to play with arrays.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- */
-
-/**
- * A collection of static methods to play with arrays.
- *
- * @since 1.21
- */
-class ArrayUtils {
-       /**
-        * Sort the given array in a pseudo-random order which depends only on the
-        * given key and each element value. This is typically used for load
-        * balancing between servers each with a local cache.
-        *
-        * Keys are preserved. The input array is modified in place.
-        *
-        * Note: Benchmarking on PHP 5.3 and 5.4 indicates that for small
-        * strings, md5() is only 10% slower than hash('joaat',...) etc.,
-        * since the function call overhead dominates. So there's not much
-        * justification for breaking compatibility with installations
-        * compiled with ./configure --disable-hash.
-        *
-        * @param array $array Array to sort
-        * @param string $key
-        * @param string $separator A separator used to delimit the array elements and the
-        *     key. This can be chosen to provide backwards compatibility with
-        *     various consistent hash implementations that existed before this
-        *     function was introduced.
-        */
-       public static function consistentHashSort( &$array, $key, $separator = "\000" ) {
-               $hashes = array();
-               foreach ( $array as $elt ) {
-                       $hashes[$elt] = md5( $elt . $separator . $key );
-               }
-               uasort( $array, function ( $a, $b ) use ( $hashes ) {
-                       return strcmp( $hashes[$a], $hashes[$b] );
-               } );
-       }
-
-       /**
-        * Given an array of non-normalised probabilities, this function will select
-        * an element and return the appropriate key
-        *
-        * @param array $weights
-        * @return bool|int|string
-        */
-       public static function pickRandom( $weights ) {
-               if ( !is_array( $weights ) || count( $weights ) == 0 ) {
-                       return false;
-               }
-
-               $sum = array_sum( $weights );
-               if ( $sum == 0 ) {
-                       # No loads on any of them
-                       # In previous versions, this triggered an unweighted random selection,
-                       # but this feature has been removed as of April 2006 to allow for strict
-                       # separation of query groups.
-                       return false;
-               }
-               $max = mt_getrandmax();
-               $rand = mt_rand( 0, $max ) / $max * $sum;
-
-               $sum = 0;
-               foreach ( $weights as $i => $w ) {
-                       $sum += $w;
-                       # Do not return keys if they have 0 weight.
-                       # Note that the "all 0 weight" case is handed above
-                       if ( $w > 0 && $sum >= $rand ) {
-                               break;
-                       }
-               }
-
-               return $i;
-       }
-
-       /**
-        * Do a binary search, and return the index of the largest item that sorts
-        * less than or equal to the target value.
-        *
-        * @since 1.23
-        *
-        * @param array $valueCallback A function to call to get the value with
-        *     a given array index.
-        * @param int $valueCount The number of items accessible via $valueCallback,
-        *     indexed from 0 to $valueCount - 1
-        * @param array $comparisonCallback A callback to compare two values, returning
-        *     -1, 0 or 1 in the style of strcmp().
-        * @param string $target The target value to find.
-        *
-        * @return int|bool The item index of the lower bound, or false if the target value
-        *     sorts before all items.
-        */
-       public static function findLowerBound( $valueCallback, $valueCount,
-               $comparisonCallback, $target
-       ) {
-               if ( $valueCount === 0 ) {
-                       return false;
-               }
-
-               $min = 0;
-               $max = $valueCount;
-               do {
-                       $mid = $min + ( ( $max - $min ) >> 1 );
-                       $item = call_user_func( $valueCallback, $mid );
-                       $comparison = call_user_func( $comparisonCallback, $target, $item );
-                       if ( $comparison > 0 ) {
-                               $min = $mid;
-                       } elseif ( $comparison == 0 ) {
-                               $min = $mid;
-                               break;
-                       } else {
-                               $max = $mid;
-                       }
-               } while ( $min < $max - 1 );
-
-               if ( $min == 0 ) {
-                       $item = call_user_func( $valueCallback, $min );
-                       $comparison = call_user_func( $comparisonCallback, $target, $item );
-                       if ( $comparison < 0 ) {
-                               // Before the first item
-                               return false;
-                       }
-               }
-               return $min;
-       }
-
-       /**
-        * Do array_diff_assoc() on multi-dimensional arrays.
-        *
-        * Note: empty arrays are removed.
-        *
-        * @since 1.23
-        *
-        * @param array $array1 The array to compare from
-        * @param array $array2,... More arrays to compare against
-        * @return array An array containing all the values from array1
-        *               that are not present in any of the other arrays.
-        */
-       public static function arrayDiffAssocRecursive( $array1 ) {
-               $arrays = func_get_args();
-               array_shift( $arrays );
-               $ret = array();
-
-               foreach ( $array1 as $key => $value ) {
-                       if ( is_array( $value ) ) {
-                               $args = array( $value );
-                               foreach ( $arrays as $array ) {
-                                       if ( isset( $array[$key] ) ) {
-                                               $args[] = $array[$key];
-                                       }
-                               }
-                               $valueret = call_user_func_array( __METHOD__, $args );
-                               if ( count( $valueret ) ) {
-                                       $ret[$key] = $valueret;
-                               }
-                       } else {
-                               foreach ( $arrays as $array ) {
-                                       if ( isset( $array[$key] ) && $array[$key] === $value ) {
-                                               continue 2;
-                                       }
-                               }
-                               $ret[$key] = $value;
-                       }
-               }
-
-               return $ret;
-       }
-}
index 3a0492d..9fb4c19 100644 (file)
 
 class MWFunction {
 
-       /**
-        * @deprecated since 1.22; use call_user_func()
-        * @param callable $callback
-        * @return mixed
-        */
-       public static function call( $callback ) {
-               wfDeprecated( __METHOD__, '1.22' );
-               $args = func_get_args();
-
-               return call_user_func_array( 'call_user_func', $args );
-       }
-
-       /**
-        * @deprecated since 1.22; use call_user_func_array()
-        * @param callable $callback
-        * @param array $argsarams
-        * @return mixed
-        */
-       public static function callArray( $callback, $argsarams ) {
-               wfDeprecated( __METHOD__, '1.22' );
-
-               return call_user_func_array( $callback, $argsarams );
-       }
-
        /**
         * @param string $class
         * @param array $args
index c043032..cc253d3 100644 (file)
        "sort-ascending": "Сартаваць па ўзрастаньні",
        "nstab-main": "Старонка",
        "nstab-user": "Старонка {{GENDER:{{BASEPAGENAME}}|ўдзельніка|ўдзельніцы}}",
-       "nstab-media": "Мэдыя",
+       "nstab-media": "Ð\9cÑ\83лÑ\8cÑ\82Ñ\8bмÑ\8dдÑ\8bÑ\8f",
        "nstab-special": "Спэцыяльная старонка",
        "nstab-project": "Старонка праекту",
        "nstab-image": "Файл",
        "api-error-stasherror": "Падчас загрузкі файла ў сховішча адбылася памылка.",
        "api-error-stashedfilenotfound": "Схаваны файл ня быў знойдзены пры спробе загрузіць яго з схованкі.",
        "api-error-stashpathinvalid": "Шлях, дзе павінен быў знаходзіцца схаваны файл, апынуўся няслушным.",
+       "api-error-stashfilestorage": "Адбылася памылка пры захаваньні файла ў схованку.",
+       "api-error-stashzerolength": "Сэрвэр ня змог схаваць файл, бо ён мае нулявы памер.",
        "api-error-timeout": "Сэрвэр не адказаў у чаканы тэрмін.",
        "api-error-unclassified": "Узьнікла невядомая памылка",
        "api-error-unknown-code": "Невядомая памылка: «$1».",
index 1b52e6e..3c29c24 100644 (file)
        "autosumm-blank": "পাতা খালি করা হয়েছে",
        "autosumm-replace": "পাতাকে '$1' দিয়ে প্রতিস্থাপিত করা হল",
        "autoredircomment": "[[$1]]-এ পুনর্নির্দেশ করা হল",
-       "autosumm-new": "$1 দিয়ে তৈরি পাতা",
+       "autosumm-new": "\"$1\" দিয়ে পাতা তৈরি",
        "autosumm-newblank": "খালি পাতা তৈরি হয়েছে",
        "size-bytes": "$1 বাইট",
        "size-kilobytes": "$1 কিলোবাইট",
index 0ca7a62..3cd8d75 100644 (file)
        "templatesusedsection": "茲蜀段使其{{PLURAL:$1|模板}}:",
        "template-protected": "(保護)",
        "template-semiprotected": "(半保護)",
-       "recreate-moveddeleted-warn": "'''注意:汝重新創建其茲蜀頁面以前已經乞刪掉了。'''\n\n汝著考慮蜀下到底是伓是合適繼續去編輯茲蜀頁。茲蜀頁其刪除記錄共移動記錄都敆嚽塊共汝看:",
+       "recreate-moveddeleted-warn": "'''注意:汝敆𡅏重新創建舊底已經乞刪唻其頁面。'''\n\n汝應該考慮蜀下繼續去編輯茲蜀頁到底是伓是合適其。茲蜀頁其刪除記錄共移動記錄都敆嚽塊:",
        "undo-summary": "取消[[Special:Contributions/$2|$2]]([[User talk:$2|Tō̤-lâung]])其$1修改",
        "cantcreateaccounttitle": "無能獃開賬戶",
        "viewpagelogs": "看茲頁其歷史",
        "confirmemail_needlogin": "汝著$1來確定汝其電子郵件地址。",
        "confirmemail_loggedin": "汝其電子郵件地址現在已經確定去了。",
        "confirmemail_body": "有人(可能是汝)敆IP地址$1𡅏已經使茲蜀萆電子郵件地址來註冊蜀萆賬戶「$2」去了。\n\n卜想確認茲蜀萆賬戶當真是汝其,固加敆{{SITENAME}}激活電子郵件特點,許敆汝其瀏覽器𡅏拍開茲蜀萆鏈接:\n\n$3\n\n如果汝*無*註冊茲賬戶,單擊茲蜀萆鏈接來取消電子郵件確認:\n\n$5\n\n茲蜀萆確認代碼會敆$4時候過期。",
-       "deletedwhileediting": "'''警告:'''茲蜀頁å·²ç¶\93æ\95\86æ±\9d編輯以å\89\8då\88ªæ\8e\89å\8e»äº\86ï¼\81",
+       "deletedwhileediting": "'''警告:'''茲蜀頁æ\95\86æ±\9d編輯以å\89\8då·²ç¶\93ä¹\9eå\88ªå\94»äº\86ï¼\81",
        "recreate": "重新開",
        "confirm_purge_button": "好",
        "imgmultipageprev": "← 前蜀頁",
index bc9d6ff..8cd1a32 100644 (file)
        "viewsourcetext": "Μπορείτε να δείτε και να αντιγράψετε τον κώδικα αυτής της σελίδας:",
        "viewyourtext": "Μπορείτε να προβάλετε και να αντιγράψετε τον κώδικα των '''επεξεργασιών σας''' σε αυτήν τη σελίδα:",
        "protectedinterface": "Αυτή η σελίδα παρέχει κείμενο διεπαφής για το λογισμικό σε αυτό το wiki, και έχει κλειδωθεί για αποτροπή τυχόν βανδαλισμού.\n\nΓια να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wikis, παρακαλούμε χρησιμοποιήστε  [//translatewiki.net/ translatewiki.net], το εγχείρημα τοπικοποίησης του  MediaWiki.",
-       "editinginterface": "'''Προσοχή:''' Επεξεργάζεστε μια σελίδα η οποία χρησιμοποιείται για να παρέχει κείμενο διεπαφής για το λογισμικό. Αλλαγές σε αυτή τη σελίδα θα επηρεάσουν την εμφάνιση της διεπαφής χρήστη για τους άλλους χρήστες. Εάν θέλετε να διορθώσετε τη μετάφραση, μπορείτε να χρησιμοποιήσετε το [//translatewiki.net/ translatewiki.net], το εγχείρημα για με τις μεταφράσεις των μηνυμάτων MediaWiki.",
+       "editinginterface": "<strong>Προειδοποίηση:</strong> Επεξεργάζεστε μια σελίδα η οποία χρησιμοποιείται για να παρέχει κείμενο διεπαφής για το λογισμικό. Αλλαγές σε αυτήν τη σελίδα θα επηρεάσουν την εμφάνιση της διεπαφής χρήστη για τους άλλους χρήστες αυτού του wiki.",
        "cascadeprotected": "Αυτή η σελίδα έχει προστατευθεί από επεξεργασία, επειδή περιλαμβάνεται {{PLURAL:$1|στην ακόλουθη σελίδα, που είναι προστατευμένη|στις ακόλουθες σελίδες, που είναι προστατευμένες}} με ενεργοποιημένη τη «διαδοχική» προστασία στο:\n$2",
        "namespaceprotected": "Δεν έχετε άδεια να επεξεργάζεστε σελίδες στον τομέα '''$1'''.",
        "customcssprotected": "Δεν έχετε δικαιώματα για να επεξεργαστείτε αυτή τη σελίδα CSS, επειδή περιέχει προσωπικές ρυθμίσεις άλλου χρήστη.",
index 7845e7b..458a3ea 100644 (file)
        "viewsourcetext": "Vi povas rigardi kaj kopii la fonton de la paĝo:",
        "viewyourtext": "Vi povas vidi kaj kopii la fonton de '''viaj redaktoj''' al ĉi tiu paĝo:",
        "protectedinterface": "Ĉi tiu paĝo provizas interfacan tekston por la programaro, kaj estas ŝlosita por malebligi misuzon.\nPor aldoni aŭ ŝanĝi tradukojn por ĉiuj vikioj, bonvolu uzi [//translatewiki.net/ translatewiki.net], la projekton por provizi tradukojn por MediaWiki.",
-       "editinginterface": "'''Atentu:''' Vi redaktas paĝon, kiu provizas interfacan tekston por la programaro.\nŜanĝoj de ĉi tiu teksto ŝanĝos aspekton de la interfaco por aliaj uzantoj de ĉi tiu vikio.\nPor aldoni aŭ ŝanĝi tradukojn por ĉiuj vikioj, bonvolu uzi [//translatewiki.net/ translatewiki.net], la projekton por provizi tradukojn por MediaWiki.",
+       "editinginterface": "<strong>Atentu:</strong> Vi redaktas paĝon, kiu provizas interfacan tekston por la programaro.\nŜanĝoj de ĉi tiu teksto ŝanĝos aspekton de la interfaco por aliaj uzantoj de ĉi tiu vikio.\nPor aldoni aŭ ŝanĝi tradukojn por ĉiuj vikioj, bonvolu uzi [//translatewiki.net/ translatewiki.net], la projekton por provizi tradukojn por MediaWiki.",
        "cascadeprotected": "Ĉi tiu paĝo estas protektita kontraŭ redaktado, ĉar ĝi estas inkludita en la {{PLURAL:$1|sekvan paĝon, kiu|sekvajn paĝojn, kiuj}} estas {{PLURAL:$1|protektata|protektataj}} kun la \"kaskada\" opcio ŝaltita sur:\n$2",
        "namespaceprotected": "Vi ne rajtas redakti paĝojn en la '''$1''' nomspaco.",
        "customcssprotected": "Vi ne rajtas redakti ĉi tiun CSS-paĝon, ĉar ĝi enhavas personajn alĝustigojn de alia uzanto.",
        "recentchanges-label-plusminus": "La paĝa grandeco ŝanĝiĝis je ĉi tiu nombro de bajtoj",
        "recentchanges-legend-heading": "'''Klarigo:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vidu ankaŭ [[Special:NewPages|liston de novaj paĝoj]])",
-       "rcnotefrom": "Malsupre estas ŝanĝoj ekde <strong>$2</strong> ({{PLURAL:$1|lasta|lastaj}} <strong>$1</strong>).",
+       "rcnotefrom": "Malsupre estas la {{PLURAL:$5|ŝanĝo|ŝanĝoj}} ekde <strong>$3, $4</strong> (montrante ĝis <strong>$1</strong>).",
        "rclistfrom": "Montri novajn ŝanĝojn ekde \"$3 $2\"",
        "rcshowhideminor": "$1 redaktetojn",
        "rcshowhideminor-show": "Montri",
        "license": "Permesiloj:",
        "license-header": "Permesiloj:",
        "nolicense": "Neniu elektita",
+       "licenses-edit": "Modifi opciojn de permesilo",
        "license-nopreview": "(Antaŭvido ne montrebla)",
-       "upload_source_url": " (valida, publike atingebla URL-o)",
+       "upload_source_url": " (via elektita dosiero de valida, publike atingebla URL-o)",
        "upload_source_file": "(dosiero elektita de via komputilo)",
        "listfiles-delete": "forigi",
        "listfiles-summary": "Ĉi tiu speciala paĝo montras ĉiujn alŝutitajn dosierojn.\nKiam oni filtras ĝin laŭ uzanto, nur la aktuala versio de la dosiero estos montrita.",
        "pager-older-n": "{{PLURAL:$1|pli malnova 1|pli malnovaj $1}}",
        "suppress": "Superrigardo",
        "querypage-disabled": "Tiu ĉi speciala paĝo estas malfunkciigita pro rendimentaj kialoj.",
+       "apihelp-no-such-module": "Modulo \"$1\" ne estis trovita.",
        "booksources": "Libroservoj",
        "booksources-search-legend": "Serĉi librofontojn",
        "booksources-search": "Serĉi",
        "delete-edit-reasonlist": "Redakti kialojn de forigo",
        "delete-toobig": "Ĉi tiu paĝo havas grandan redakto-historion, pli ol $1 {{PLURAL:$1|version|versiojn}}. Forigo de ĉi tiaj paĝoj estis limigitaj por preventi akcidentan disrompigon de {{SITENAME}}.",
        "delete-warning-toobig": "Ĉi tiu paĝo havas grandan redakto-historion, pli ol $1 {{PLURAL:$1|version|versiojn}}. Forigo de ĝi povas disrompigi operacion de {{SITENAME}}; forigu singarde.",
+       "deleteprotected": "Vi ne povas forigi ĉi tiun paĝon ĉar ĝi estis protektita.",
        "deleting-backlinks-warning": "'''Atentigo:'''\n[[Special:WhatLinksHere/{{FULLPAGENAME}}|Aliaj paĝoj]] ligas al aŭ transkludas tiun ĉi forigotan paĝon.",
        "rollback": "Restarigi antaŭan redakton",
        "rollback_short": "Malfari",
        "ipb-change-block": "Reforbari la uzanton kun ĉi tiuj preferoj",
        "ipb-confirm": "Konfirmi forbaron",
        "badipaddress": "Neniu uzanto, aŭ la IP-adreso estas misformita.",
-       "blockipsuccesssub": "Oni sukcese forbaris la adreson/nomon.",
+       "blockipsuccesssub": "Forbaro sukcesis.",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] estas forbarita. <br />\nVidu la [[Special:BlockList|liston de forbaroj]] por kontroli.",
        "ipb-blockingself": "Vi preskaŭ forbaros vin mem! Ĉu vi certas ke vi volas fari ĉi tiel?",
        "ipb-confirmhideuser": "Vi preskaŭ forbaras uzanto kun \"kaŝi uzanton\" ŝalta. Ĉi tiu kaŝi la nomon de uzanto en ĉiuj listoj ka protokoloj. Ĉu vi certas ke vi volas fari ĉi tiel?",
        "unblocked": "[[User:$1|$1]] estas restarigita.",
        "unblocked-range": "$1 estis malforbarita",
        "unblocked-id": "Forbaro $1 estas forigita.",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] estis malforbarita.",
        "blocklist": "Forbaritaj uzantoj",
        "ipblocklist": "Forbaritaj uzantoj",
        "ipblocklist-legend": "Trovi forbaritan uzanton.",
        "movepagetalktext": "La movo aŭtomate kunportos la diskuto-paĝon, se tia ekzistas, '''krom se:'''\n*Vi movas la paĝon tra nomspacoj (ekz de ''Nomo'' je ''User:Nomo''),\n*Ne malplena diskuto-paĝo jam ekzistas je la nova nomo, aŭ\n*Vi malelektas la suban ŝaltilon.\n\nTiujokaze, vi nepre permane kunigu la diskuto-paĝojn se vi tion deziras.",
        "movearticle": "Alinomigi paĝon",
        "moveuserpage-warning": "'''Averto:''' Vi preskaŭ alinomigas paĝon de uzanto. Bonvolu noti ke nur la paĝo estos alinomigita kaj la uzanto mem ''ne'' estos alinomigita.",
+       "movecategorypage-warning": "<strong>Averto:</strong> Vi baldaŭ movos kategorian paĝon. Bonvolu noti ke, nur la paĝo estos movita, kaj la paĝoj en la malnova kategorio <em>ne</em> transiros en la novan kategorion.",
        "movenologintext": "Vi nepre estu registrita uzanto kaj [[Special:UserLogin|ensalutu]] por rajti movi paĝojn.",
        "movenotallowed": "Vi ne rajtas movi paĝojn.",
        "movenotallowedfile": "Vi ne havas rajton alinomigi dosierojn.",
        "cant-move-user-page": "Vi ne rajtas movi radikajn uzanto-paĝojn.",
        "cant-move-to-user-page": "Vi ne rajtas movi paĝon al uzantopaĝo (krom al uzantosubpaĝo).",
+       "cant-move-category-page": "Vi ne rajtas movi kategoriajn paĝojn.",
+       "cant-move-to-category-page": "Vi ne rajtas movi paĝon al kategoria paĝo.",
        "newtitle": "Al nova titolo",
        "move-watch": "Atenti ĉi tiun paĝon",
        "movepagebtn": "Alinomigi paĝon",
        "tooltip-feed-atom": "Atom-fonto por ĉi tiu paĝo",
        "tooltip-t-contributions": "Rigardi la liston de kontribuoj de tiu ĉi uzanto",
        "tooltip-t-emailuser": "Sendi retmesaĝon al tiu ĉi uzanto",
+       "tooltip-t-info": "Pli da informo pri ĉi tiu paĝo",
        "tooltip-t-upload": "Alŝuti bildojn aŭ dosierojn",
        "tooltip-t-specialpages": "Listo de ĉiuj specialaj paĝoj",
        "tooltip-t-print": "Printebla versio de ĉi tiu paĝo",
        "logentry-rights-rights": "$1 ŝanĝis grupan membrecon por $3 de $4 al $5",
        "logentry-rights-rights-legacy": "$1 ŝanĝis grupan membrecon por $3",
        "logentry-rights-autopromote": "$1 estis aŭtomate {{GENDER:$2|altrangigita}} de $4 al $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|alŝutis}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|alŝutis}} novan version de $3",
        "logentry-upload-revert": "$1 {{GENDER:$2|alŝutis}} $3",
        "rightsnone": "(nenia)",
        "revdelete-summary": "redaktoresumon",
        "mediastatistics-header-multimedia": "Multmediaj",
        "mediastatistics-header-office": "Oficejaj",
        "mediastatistics-header-text": "Tekstaj",
+       "mediastatistics-header-executable": "Plenumeblaj dosieroj",
        "json-error-syntax": "Sintaksa eraro"
 }
index 26c6123..5e3d63e 100644 (file)
@@ -11,7 +11,8 @@
                        "Snakesteuben",
                        "Urhixidur",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Robin0van0der0vliet"
                ]
        },
        "tog-underline": "Keppelings ûnderstreekje:",
        "listingcontinuesabbrev": "(ferfolch)",
        "index-category": "Yndeksearre siden",
        "noindex-category": "Net-yndeksearre siden",
-       "about": "Ynfo",
+       "about": "Oer",
        "article": "Ynhâld side",
        "newwindow": "(nij finster)",
-       "cancel": "Ofbrekke",
+       "cancel": "Annulearje",
        "moredotdotdot": "Mear...",
        "mypage": "Myn side",
        "mytalk": "Myn oerlis",
        "faqpage": "Project:Faak stelde fragen",
        "namespaces": "Nammeromten",
        "variants": "Farianten",
-       "errorpagetitle": "Fout",
+       "errorpagetitle": "Flater",
        "returnto": "Werom nei \"$1\".",
        "tagline": "Ut {{SITENAME}}",
        "help": "Help",
        "permalink": "Fêste keppeling",
        "print": "Ofdrukke",
        "view": "Lêze",
-       "edit": "Feroarje",
+       "edit": "Bewurkje",
        "create": "Oanmeitsje",
        "editthispage": "Side bewurkje",
        "create-this-page": "Dizze side oanmeitsje",
        "jumptonavigation": "navigaasje",
        "jumptosearch": "sykje",
        "view-pool-error": "Ekskuseare, de tsjinners hawwe it op it stuit te drok.\nTefolle meidoggers probearje dizze side te besjen.\nWachtsje efkes foardatsto op 'e nij tagong ta dizze side probearrest te krijen.\n\n$1",
-       "aboutsite": "Oer de {{SITENAME}}",
+       "aboutsite": "Oer {{SITENAME}}",
        "aboutpage": "Project:Ynfo",
        "copyright": "Ynhâld is beskikber ûnder de $1.",
        "copyrightpage": "{{ns:project}}:Auteursrjocht",
        "badaccess-groups": "De frege hanneling is foarbehâlden oan brûkers yn {{PLURAL:$2|'e groep|ien fan de groepen}}: $1.",
        "versionrequired": "Ferzje $1 fan MediaWiki is eask",
        "versionrequiredtext": "Ferzje $1 fan MediaWiki is eask om dizze side te brûken. Mear ynfo is beskikber op 'e side [[Special:Version|softwareferzje]].",
-       "ok": "Goed",
+       "ok": "OK",
        "retrievedfrom": "Untfongen fan \"$1\"",
        "youhavenewmessages": "Jo hawwe $1 ($2).",
        "youhavenewmessagesmulti": "Jo hawwe nije berjochten op $1",
        "toc": "Ynhâld",
        "showtoc": "sjen litte",
        "hidetoc": "net sjen litte",
+       "confirmable-yes": "Ja",
+       "confirmable-no": "Nee",
        "thisisdeleted": "\"$1\" lêze of werombringe?",
        "viewdeleted": "$1 sjen litte?",
        "restorelink": "$1 wiske {{PLURAL:$1|ferzje|ferzjes}}",
        "nosuchactiontext": "De opdracht yn de URL is ûnjildich.\nMooglik hasto in typefout makke yn de URL of in ferkearde keppeling folge.\nIt soe likegoed in programmatuerflater fan {{SITENAME}} wêze kinne.",
        "nosuchspecialpage": "Unbekende side",
        "nospecialpagetext": "Jo hawwe in Wiki-side opfrege dy't net bekend is by it Wiki-programma.",
-       "error": "Fout",
+       "error": "Flater",
        "databaseerror": "Databankfout",
+       "databaseerror-error": "Flater: $1",
        "laggedslavemode": "Warskôging: Mûglik binne resinte bewurkings noch net trochfierd.",
        "readonly": "Databank is 'Net-skriuwe'.",
        "enterlockreason": "Skriuw wêrom de databank 'net-skriuwe' makke is, en hoenear't men wêr nei alle gedachten wer skriuwe kin.",
        "virus-scanfailed": "scannen is mislearre (koade $1)",
        "virus-unknownscanner": "ûnbekend antivirus:",
        "logouttext": "'''Jo binne no ôfmeld.'''\n\nGuon siden kinne noch foar it ljocht komme, krekt as wiesto noch oanmeld. Asto de cache fan dyn webblêder leechhellest feroaret dat wer.",
-       "yourname": "Jo meidochnamme:",
-       "userlogin-yourname": "Meidoggersnamme",
+       "yourname": "Brûkersnamme:",
+       "userlogin-yourname": "Brûkersnamme",
        "userlogin-yourname-ph": "Jou dyn brûkersnamme",
        "createacct-another-username-ph": "Jou dyn brûkersnamme",
-       "yourpassword": "Jo wachtwurd",
+       "yourpassword": "Wachtwurd:",
        "userlogin-yourpassword": "Wachtwurd",
        "userlogin-yourpassword-ph": "Jou dyn wachtwurd",
        "createacct-yourpassword-ph": "Jou dyn wachtwurd",
        "resetpass_forbidden": "Wachtwurden kinne net feroare wurde",
        "resetpass-no-info": "Jo moatte oanmeld wêze foar't Jo dizze side brûke kinne.",
        "resetpass-submit-loggedin": "Wachtwurd feroarje",
-       "resetpass-submit-cancel": "Ofbrekke",
+       "resetpass-submit-cancel": "Annulearje",
        "resetpass-wrong-oldpass": "It momintele of tydlike wachtwurd is ûnjildich.\nMûglik hawwe Jo Jo wachtwurd al feroare of in nij tydlik wachtwurd oanfrege.",
        "resetpass-temp-password": "Tydlik wachtwurd:",
        "passwordreset-legend": "Wachtwurd weromsette",
-       "passwordreset-username": "Meidoggernamme",
+       "passwordreset-username": "Brûkersnamme:",
        "passwordreset-domain": "Domein:",
        "passwordreset-email": "E-mailadres:",
        "passwordreset-emailtitle": "Akkountdetails op {{SITENAME}}",
        "nextrevision": "Nijere ferzje→",
        "currentrevisionlink": "Rinnende ferzje",
        "cur": "no",
-       "next": "dan",
-       "last": "doe",
+       "next": "folgjende",
+       "last": "foarige",
        "page_first": "earste",
        "page_last": "lêste",
        "histlegend": "Utlis: (no) = ferskil mei de side sa't dy no is,\n(doe) = ferskill mei de side sa't er doe wie, foar de feroaring, T = Tekstwiziging",
        "search-result-size": "$1 ({{PLURAL:$2|1 wurd|$2 wurden}})",
        "search-redirect": "(trochferwizing $1)",
        "search-section": "(seksje $1)",
+       "search-category": "(kategory $1)",
        "search-suggest": "Bedoele jo: $1",
        "search-interwiki-caption": "Susterprojekten",
        "search-interwiki-default": "$1 resultaten:",
        "timezoneregion-indian": "Yndyske Oseaan",
        "timezoneregion-pacific": "Stille Oseaan",
        "allowemail": "Lit my ek netpost fan oare meidoggers krije",
-       "prefs-searchoptions": "Sykynstellings",
+       "prefs-searchoptions": "Sykje",
        "prefs-namespaces": "Nammeromten",
        "default": "standert",
-       "prefs-files": "Triemen",
+       "prefs-files": "Triemmen",
        "prefs-custom-js": "Persoanlik JS",
        "prefs-emailconfirm-label": "Netpostbefêstiging:",
-       "youremail": "Jo netpostadres:",
-       "username": "Meidochnamme:",
+       "youremail": "E-mail:",
+       "username": "{{GENDER:$1|Brûkersnamme}}:",
        "prefs-memberingroups": "Lid fan {{PLURAL:$1|groep|groepen}}:",
        "yourrealname": "Jo wiere namme:",
        "yourlanguage": "Taal:",
        "gender-male": "Man",
        "gender-female": "Frou",
        "prefs-help-gender": "Kar: dit wurdt troch de programmatuer brûkt om de goeie oansprekfoarm te kiezen.\nDizze ynformaasje is foar oare meidoggers te sjen.",
-       "email": "E-post",
+       "email": "E-mail",
        "prefs-help-realname": "Echte namme is net ferplicht; as jo dy opjouwe kin dy namme brûkt wurde om jo erkenning te jaan foar jo wurk.",
        "prefs-help-email": "E-post is opsjoneel, mar makket it mûglik jo wachtwurd te stjoeren as jo it fergetten hawwe.\nJo kinne ek oaren de mûglikheid jaan kontakt mei jo op te nimmen troch in ferwizing op jo brûkers- en oerlisside, sûnder dat jo jo identiteit oer hoege te jaan.",
        "prefs-help-email-required": "Hjir is in e-mailadres foar nedich.",
        "action-userrights": "alle brûkersrjochten bewurkje",
        "action-userrights-interwiki": "brûkersrjochten fan brûkers fan oare wiki's bewurkje",
        "action-siteadmin": "de database ôfslute of iepenstelle",
+       "action-sendemail": "e-mail stjoere:",
        "nchanges": "$1 {{PLURAL:$1|bewurking|bewurkings}}",
+       "enhancedrc-history": "skiednis",
        "recentchanges": "Koartlyn feroare",
        "recentchanges-legend": "Opsjes foar resinte feroarings",
        "recentchanges-summary": "De lêste feroarings fan de {{SITENAME}}.",
        "unusedtemplateswlh": "oare keppelings",
        "randompage": "Samar in side",
        "randompage-nopages": "Der binne gjin siden yn'e nammeromte \"$1\".",
+       "randomincategory-category": "Kategory:",
        "randomredirect": "Samar in trochferwizing",
        "randomredirect-nopages": "Der binne gjin trochferwizings yn'e nammerûmte \"$1\".",
        "statistics": "Statistyk",
        "listusers-creationsort": "Oarderje op dei fan oanmeitsjen",
        "usereditcount": "$1 {{PLURAL:$1|bewurking|bewurkings}}",
        "newpages": "Nije siden",
-       "newpages-username": "Meidoggernamme:",
+       "newpages-username": "Brûkersnamme:",
        "ancientpages": "Alde siden",
        "move": "Werneam",
        "movethispage": "Werneam dizze side",
        "noemailtitle": "Gjin e-postadres",
        "noemailtext": "Dizze meidogger hat gjin jildich e-postadres ynsteld, of hat oanjûn gjin post fan oare meidoggers krije te wollen.",
        "nowikiemailtext": "Dizze brûker wol gjin e-mail ûntfange fan oare brûkers.",
+       "emailusername": "Brûkersnamme:",
        "email-legend": "In e-mail ferstjoere nei in oare brûker fan {{SITENAME}}",
        "emailfrom": "Fan:",
        "emailto": "Oan:",
-       "emailsubject": "Oer",
+       "emailsubject": "Ûnderwerp:",
        "emailmessage": "Berjocht:",
        "emailsend": "Stjoer",
        "emailsent": "Berjocht stjoerd",
        "minimum-size": "Min. grutte",
        "maximum-size": "Max. grutte:",
        "pagesize": "(bytes)",
-       "restriction-edit": "Wizigje",
+       "restriction-edit": "Bewurkje",
        "restriction-move": "Werneam",
        "restriction-create": "Oanmeitsje",
        "restriction-upload": "Oanbiede",
        "undelete-search-prefix": "Lit siden sjen dy't begjinne mei:",
        "undelete-search-submit": "Sykje",
        "undelete-no-results": "Gjin oerienkommende siden fûn yn it wisk argyf.",
+       "undelete-show-file-submit": "Ja",
        "namespace": "Nammeromte:",
        "invert": "Seleksje útsein",
        "blanknamespace": "(Haadnammerûmte)",
        "isredirect": "synonym",
        "istemplate": "opnaam",
        "isimage": "byld keppeling",
-       "whatlinkshere-prev": "{{PLURAL:$1|foargeande|foargeande $1}}",
+       "whatlinkshere-prev": "{{PLURAL:$1|foarige|foarige $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|folgjende|folgjende $1}}",
        "whatlinkshere-links": "← keppelings",
        "whatlinkshere-hideredirs": "$1 trochferwizings",
        "unblocklink": "lit yn",
        "change-blocklink": "blokkade feroarje",
        "contribslink": "bydragen",
+       "emaillink": "e-mail stjoere:",
        "autoblocker": "Jo wiene útsletten om't jo ynternet-adres oerienkomt mei dat fan \"[[User:$1|$1]]\". Foar it útsluten fan dy meidogger waard dizze reden jûn: \"$2\".",
        "blocklogpage": "Utslútloch",
        "blocklogentry": "\"[[$1]]\" útsletten foar $2 $3",
        "allmessagesdefault": "Standerttekst",
        "allmessagescurrent": "Tekst yn de nijste ferzje",
        "allmessagestext": "Dit is in list fan alle systeemberjochten beskikber yn de MediaWiki-nammeromte.\nSjoch: [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation], [//translatewiki.net translatewiki.net].",
+       "allmessages-language": "Taal:",
        "thumbnail-more": "Fergrutsje",
        "filemissing": "Triem net fûn",
        "thumbnail_error": "Flater by it oanmeitsjen fan thumbnail: $1",
        "thumbnail_dest_directory": "Kin de doelmap net oanmeitsje",
        "import": "Importearje siden",
        "import-interwiki-submit": "Ymportearje",
+       "import-upload-filename": "Triemnamme:",
        "import-comment": "Oanmerking:",
        "importstart": "Siden oan it ymportearjen ...",
        "import-revision-count": "$1 {{PLURAL:$1|ferzje|ferzjes}}",
        "siteusers": "{{SITENAME}} {{PLURAL:$2|meidogger|meidoggers}} $1",
        "spamprotectiontext": "De side dy't jo fêstlizze woene is blokkearre troch in spam filter. Dit wurdt wierskynlik feroarsake troch in ferwizing nei in ekstern webstee.",
        "spamprotectionmatch": "De neikommende tekst hat it spam filter aktivearre: $1",
+       "pageinfo-contentpage-yes": "Ja",
+       "pageinfo-protect-cascading-yes": "Ja",
        "markaspatrolleddiff": "Markearje as kontroleare",
        "markaspatrolledtext": "Markearje dizze side as kontrolearre",
        "markedaspatrolled": "Markearre as kontrolearre",
        "noimages": "Neat te sjen.",
        "ilsubmit": "Sykje",
        "bydate": "datum",
+       "seconds": "{{PLURAL:$1|$1 sekonde|$1 sekonden}}",
+       "minutes": "{{PLURAL:$1|$1 minút|$1 minuten}}",
+       "hours": "{{PLURAL:$1|$1 oere|$1 oeren}}",
+       "days": "{{PLURAL:$1|$1 dei|$1 dagen}}",
+       "weeks": "{{PLURAL:$1|$1 wike|$1 wiken}}",
+       "months": "{{PLURAL:$1|$1 moanne|$1 moannen}}",
+       "years": "{{PLURAL:$1|$1 jier|$1 jierren}}",
+       "ago": "$1 lyn",
        "bad_image_list": "De opmaak is as folget:\n\nAllinne rigels fan in list (rigels dy't begjinne mei *) wurde ferwurke. De earste link op in rigel moat in link wêze nei in net winske ôfbylding.\nAlle folgjende links dy't op deselde rigel steane, wurde behannele as útsûndering, lykas bygelyks siden dêr't de ôfbylding yn'e tekst opnommen is.",
        "metadata": "Metadata",
        "metadata-help": "Dizze triem befettet oanfoljende ynformaasje, dy't troch in fotokamera, scanner of fotobewurkingsprogramma tafoege wêze kin. As de triem oanpast is, komme de details mûglik net folslein oerien mei de feroare ôfbylding.",
        "exif-filesource": "Triemboarne",
        "exif-contrast": "Kontrast",
        "exif-sharpness": "Skerpte",
+       "exif-gpslatitude": "Breedtegraad",
+       "exif-gpslongitude": "Lingtegraad",
        "exif-gpstimestamp": "GPS-tiid (atoomklok)",
        "exif-gpsspeedref": "Snelheidsienheid",
        "exif-gpsdatestamp": "GPS-datum",
        "version-other": "Oare",
        "version-version": "(Ferzje $1)",
        "version-license": "Lisinsje",
+       "version-ext-colheader-version": "Ferzje",
        "version-software": "Ynsteld software",
        "version-software-product": "Produkt",
        "version-software-version": "Ferzje",
+       "redirect-file": "Triemnamme",
        "fileduplicatesearch": "Sykje op duplikaten",
        "fileduplicatesearch-legend": "Sykje op duplikaten",
        "fileduplicatesearch-filename": "Triemnamme:",
        "compare-rev2": "Revyzje 2",
        "compare-submit": "Ferlykje",
        "compare-invalid-title": "Unjildige titel.",
+       "htmlform-no": "Nee",
+       "htmlform-yes": "Ja",
        "revdelete-restricted": "hat beheinings oplein oan behearders",
        "revdelete-unrestricted": "hat beheinings foar behearders goedmakke",
        "rightsnone": "(gjin)",
        "revdelete-summary": "gearfetting bewurkje",
        "feedback-subject": "Underwerp:",
        "feedback-message": "Berjocht:",
-       "feedback-cancel": "Ofbrekke",
+       "feedback-cancel": "Annulearje",
        "feedback-submit": "Feedback ferstjoere",
        "feedback-close": "Dien",
        "searchsuggest-search": "Sykje",
+       "duration-seconds": "$1 {{PLURAL:$1|sekonde|sekonden}}",
+       "duration-minutes": "$1 {{PLURAL:$1|minút|minuten}}",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|sekonde|sekonden}}",
+       "limitreport-walltime-value": "$1 {{PLURAL:$1|sekonde|sekonden}}",
        "expand_templates_ok": "Okee",
-       "expand_templates_remove_comments": "Berjochten fuorthelje"
+       "expand_templates_remove_comments": "Berjochten fuorthelje",
+       "pagelang-language": "Taal",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)"
 }
index 40a390d..2eb335a 100644 (file)
@@ -55,7 +55,8 @@
                        "आलोक",
                        "रोहित रावत",
                        "아라",
-                       "संजीव कुमार"
+                       "संजीव कुमार",
+                       "बिप्लब आनन्द"
                ]
        },
        "tog-underline": "कड़ियाँ अधोरेखन:",
        "randomincategory": "श्रेणी में यादृच्छिक (रैंडम) पृष्ठ",
        "randomincategory-invalidcategory": "\"$1\" एक मान्य श्रेणी नाम नहीं है।",
        "randomincategory-nopages": "[[:Category:$1|$1]] श्रेणी में कोई पृष्ठ नहीं हैं।",
+       "randomincategory-category": "श्रेणी:",
        "randomredirect": "किसी एक पुनर्निर्देशन पर जाएँ",
        "randomredirect-nopages": "नामस्थान \"$1\" में कोई पुनर्निर्देशन नहीं हैं।",
        "statistics": "आँकड़े",
        "booksources": "पुस्तकों के स्रोत",
        "booksources-search-legend": "पुस्तकों के स्रोत खोजें",
        "booksources-isbn": "आइ॰एस॰बी॰एन:",
+       "booksources-search": "खोजें",
        "booksources-text": "नीचे पुरानी और नई पुस्तकें बेचने वाली वेबसाइटों के एड्रेस हैं, जिसमें आपको आप द्वारा खोजी जाने वाली पुस्तक के बारे में अधिक जानकारी मिल सकती है:",
        "booksources-invalid-isbn": "यह आइ॰एस॰बी॰एन सही नहीं लग रहा है; मूल स्रोत से नकल करने में हुई त्रुटि के लिए जाँचें।",
        "specialloguserlabel": "कर्ता:",
index 996ca6c..3b924e1 100644 (file)
@@ -36,7 +36,8 @@
                        "아라",
                        "Csega",
                        "ViDam",
-                       "Adam78"
+                       "Adam78",
+                       "Grin"
                ]
        },
        "tog-underline": "Hivatkozások aláhúzása:",
        "jumptonavigation": "navigáció",
        "jumptosearch": "keresés",
        "view-pool-error": "A szerverek jelenleg túl vannak terhelve, mert túl sok felhasználó próbálta megtekinteni ezt az oldalt.\nKérjük, várj egy kicsit, mielőtt újra próbálkoznál a lap megtekintésével!\n\n$1",
-       "generic-pool-error": "Sajnáljuk, a szerverek jelenleg túl vannak terhelve.\nTúl sok felhasználó próbálja ezt az oldalt megtekinteni.\nKérjük, várj egy kicsit, mielőtt újra próbálkoznál!",
+       "generic-pool-error": "Sajnáljuk, a szerverek jelenleg túl vannak terhelve.\nTúl sok felhasználó próbálja ezt az erőforrást elérni.\nKérjük, várj egy kicsit, mielőtt újra próbálkoznál!",
        "pool-timeout": "Letelt a zárolás feloldására szánt várakozási idő",
        "pool-queuefull": "A pool sor megtelt",
        "pool-errorunknown": "Ismeretlen hiba",
        "badarticleerror": "Ez a tevékenység nem végezhető el ezen a lapon.",
        "cannotdelete": "A(z) $1 lapot vagy fájlt nem lehet törölni.\nTalán már valaki más törölte.",
        "cannotdelete-title": "Nem lehet törölni a(z) „$1” lapot",
-       "delete-hook-aborted": "A törlés meg lett szakítva egy hook által.\nNem lett magyarázat csatolva.",
+       "delete-hook-aborted": "A törlést egy hook (szűrő) megszakította.\nNincs csatolt magyarázat hozzá.",
        "no-null-revision": "Nem sikerült új null-revíziót létrehozni a(z) „$1” lap számára.",
        "badtitle": "Hibás cím",
        "badtitletext": "A kért oldal címe érvénytelen, üres, vagy rosszul hivatkozott nyelvközi vagy wikiközi cím volt. Olyan karaktereket is tartalmazhatott, melyek címekben nem használhatók.",
index 24aaeee..d853049 100644 (file)
        "api-error-stashfailed": "Error interne: le servitor non poteva immagazinar le file temporari.",
        "api-error-publishfailed": "Error interne: le servitor non poteva publicar le file temporari.",
        "api-error-stasherror": "Un error ha occurrite durante le incargamento del file in \"stash\".",
+       "api-error-stashedfilenotfound": "Le file in reserva non ha essite trovate durante le tentativa de incargar lo ab le reserva.",
+       "api-error-stashpathinvalid": "Le cammino ubi le file in reserva deberea haber essite trovate non es valide.",
+       "api-error-stashfilestorage": "Un error ha occurrite durante le immagazinage del file in reserva.",
+       "api-error-stashzerolength": "Le servitor non ha potite mitter le file in reserva perque illo ha un longitude de zero.",
+       "api-error-stashnotloggedin": "Tu debe aperir session pro poter salveguardar files in le reserva de incargamento.",
+       "api-error-stashwrongowner": "Le file al qual tu tentava acceder in le reserva non pertine a te.",
+       "api-error-stashnosuchfilekey": "Le clave de file al qual tu tentava acceder in le reserva non existe.",
        "api-error-timeout": "Le servitor non ha respondite intra le tempore expectate.",
        "api-error-unclassified": "Un error incognite ha occurrite.",
        "api-error-unknown-code": "Error incognite: \"$1\"",
index 3b5ceb2..e764962 100644 (file)
        "mergehistory": "Sameina breytingaskrár",
        "mergehistory-header": "Þessi síða gerir þér kleift að sameina breytingarskrá tveggja síðna.\nSjáðu til þess að þessi breyting sameini breytingarskrárnar samfellt.",
        "mergehistory-box": "Sameina breytingarskrá tveggja síðna:",
-       "mergehistory-from": "Heimildsíða:",
+       "mergehistory-from": "Upprunaleg síða:",
        "mergehistory-into": "Áætlunarsíða:",
        "mergehistory-list": "Breytingarskrá sem hægt er að sameina",
        "mergehistory-merge": "Eftirtaldar útgáfur [[:$1]] má sameina [[:$2]].\nNotaðu valtakkadálkinn til þess að sameina aðeins þær útgáfur sem stofnaðar voru fyrir uppgefið tímamark.\nAthugaðu að með því að nota flakktenglana er þessi dálkur endurstilltur.",
        "recentchangeslinked-toolbox": "Skyldar breytingar",
        "recentchangeslinked-title": "Breytingar tengdar \"$1\"",
        "recentchangeslinked-summary": "Þetta er listi yfir nýlega gerðar breytingar á síðum sem tengt er í frá tilgreindri síðu (eða á meðlimum úr tilgreindum flokki).\nSíður á [[Special:Watchlist|vaktlistanum þínum]] eru '''feitletraðar'''.",
-       "recentchangeslinked-page": "Nafn á síða:",
+       "recentchangeslinked-page": "Síðutitill:",
        "recentchangeslinked-to": "Sýna breytingar á síðum sem tengjast uppgefinni síðu í staðinn",
        "upload": "Hlaða inn skrá",
        "uploadbtn": "Hlaða inn skrá",
index 9815cba..bd432a1 100644 (file)
        "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-overwrite": "$1 {{GENDER:$2|ატვირთა}} $3-ის ახალი ვერსია",
        "rightsnone": "(არცერთი)",
        "revdelete-summary": "ცვლილებების აღწერა",
        "feedback-bugornote": "თუ თქვენ მზად ხართ დეტალურად აღწეროთ ტექნიკური პრობლემა, გთხოვთ, [$1 შეგვატყობინეთ შეცდომის შესახებ].\nწინააღმდეგ შემთხვევაში თქვენ შეგიძლიათ ისარგებლოთ ამ მარტივი ფორმით. თქვენი კომენტარი დაემატება  „[$3 $2]“ გვერდზე თქვენი მომხმარებლის სახელთან და გამოყენებულ ბრაუზერთან ერთად.",
index b1a590b..576fedb 100644 (file)
        "exif-lightsource-11": "سایه",
        "exif-flash-mode-3": "مد خودانجوم",
        "exif-focalplaneresolutionunit-2": "ائنج",
+       "exif-sensingmethod-1": "نادیار",
        "exif-customrendered-0": "پردازشت خو",
        "exif-customrendered-1": "پردازشت همیشه ای",
        "exif-scenecapturetype-0": "استاندارد",
        "exif-iimcategory-edu": "آموختاری",
        "exif-iimcategory-evn": "زئشت گه",
        "exif-iimcategory-hth": "تن آزایی",
+       "exif-iimcategory-hum": "حاستنی انسانی",
        "exif-iimcategory-lab": "کار",
        "exif-iimcategory-pol": "سیاستا",
        "exif-iimcategory-rel": "دین و ائتقات",
        "specialpages-group-changes": "آلشتیا تازه و پهرستنومه یا",
        "specialpages-group-media": "گزارشتیا رسانه و سوارکردیا",
        "specialpages-group-users": "کاروریا و حقوق",
+       "specialpages-group-highuse": "بلگه یا فره وه کار گرته بیه",
        "specialpages-group-pages": "نوم گه بلگه یا",
        "specialpages-group-pagetools": "اوزاریا بلگه",
        "specialpages-group-wiki": "رسینه و اوزاریا",
        "tags-tag": "نوم سردیس",
        "tags-display-header": "دیاری کردن د نوم گه آلشتیا",
        "tags-active-header": "کنشتگره؟",
+       "tags-hitcount-header": "آلشتیا سردیس دار",
        "tags-active-yes": "هری",
        "tags-active-no": "نه",
        "tags-edit": "ویرایشت",
        "api-error-filename-tooshort": "نوم جانیا فره کؤچکه.",
        "api-error-illegal-filename": "نوم جانیا اجازه دئه نئ.",
        "api-error-mustbeloggedin": "شما سی سوارکردن فایلیا با بیایت وامین",
+       "duration-seconds": "$1 {{PLURAL:$1|ثانیه|ثانیه یا}}",
+       "duration-minutes": "$1 {{PLURAL:$1|دیقه|دیقه یا}}",
+       "duration-hours": "$1 {{PLURAL:$1|ساعت |ساعتیا}}",
        "duration-days": "$1{{جمی:$1|روز|روزیا}}",
        "duration-weeks": "$1 {{جمی:$1|هفته|هفته یا}}",
        "duration-years": "$1{{جمی:$1| سال|سالیا}}",
+       "duration-decades": "$1 {{PLURAL:$1|دهه|دهه یا}}",
+       "duration-centuries": "$1 {{PLURAL:$1|سده|سده یا}}",
        "limitreport-ppvisitednodes-value": "$1/$2",
        "limitreport-ppgeneratednodes-value": "$1/$2",
        "limitreport-expansiondepth-value": "$1/$2",
index 923a446..2040d3e 100644 (file)
@@ -26,7 +26,7 @@
        "tog-hideminor": "सन्निकट परिवर्त्तनमे छोट परिवर्त्तन नुकाऊ",
        "tog-hidepatrolled": "सन्निकट परिवर्त्तनमे छोट परिवर्त्तन नुकाऊ",
        "tog-newpageshidepatrolled": "नियंत्रित सम्पादनकेँ नव पन्ना सूचीसँ नुकाऊ",
-       "tog-extendwatchlist": "धà¥\8dयानसà¥\82à¤\9aà¥\80मà¥\87 à¤¸à¤­ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¦à¥\87à¤\96ाà¤\8a,à¤\96ालà¥\80 à¤¹à¤¾à¤²à¤\95 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¨à¥\88",
+       "tog-extendwatchlist": "सनà¥\8dनिà¤\95à¤\9f à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¨à¥\88,à¤\85à¤\96न à¤§à¥\8dयानसà¥\82à¤\9aà¥\80मà¥\87 à¤°à¤¹à¤² à¤¸à¤­ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¦à¥\87à¤\96ाà¤\8a",
        "tog-usenewrc": "नीक सन्निकट परिवर्तन प्रयोग करू (जावास्क्रिप्ट चाही)",
        "tog-numberheadings": "शीर्षक स्वयं-क्रमांकित करू",
        "tog-showtoolbar": "संपादन ओजारपेटी देखाऊ (जावास्क्रीप्ट)",
@@ -39,7 +39,7 @@
        "tog-watchrollback": "हमरा द्वारा जोडलगेल पृष्ठ हमार सांकक्ष सूचीमे राखू",
        "tog-minordefault": "हमर सभ सम्पादन पूर्वन्यस्त रूपेँ मामूली कहू",
        "tog-previewontop": "संपादन पेटीक ऊपर दृश्य देखाऊ",
-       "tog-previewonfirst": "पहिल à¤¸à¤®à¥\8dपादनक बाद पूर्वावलोकन देखाउ",
+       "tog-previewonfirst": "पहिल à¤¸à¤\82पादनक बाद पूर्वावलोकन देखाउ",
        "tog-enotifwatchlistpages": "जौं हमर ध्यानसूचीक कोनो पन्नामे परिवर्तन हुअए तँ हमरा ई-पत्र पठाउ",
        "tog-enotifusertalkpages": "हमर सदस्य वार्ता पृष्ठ पर भेल परिवर्त्तनक हेतु हमरा ई-मेल करथि",
        "tog-enotifminoredits": "छोट परिवर्त्तनक हेतु सेहो हमरा ई-मेल पठाऊ",
        "cancel": "समाप्त",
        "moredotdotdot": "आर...",
        "morenotlisted": "ई पुरा सूची नै अछी ।",
-       "mypage": "हमर à¤ªà¤¨à¥\8dना",
+       "mypage": "पन्ना",
        "mytalk": "वार्त्ता",
        "anontalk": "ऐ अनिकेत पता लेल विमर्श",
        "navigation": "संचार",
        "variants": "प्रकार सभ",
        "navigation-heading": "दिक्चालन सूची",
        "errorpagetitle": "गलती",
-       "returnto": "$1 à¤ªà¤° à¤\98à¥\81रà¥\81।",
+       "returnto": "$1 à¤ªà¤° à¤\86à¤\89।",
        "tagline": "कतयसँ {{SITENAME}}",
        "help": "मदति",
        "search": "ताकू",
        "searchbutton": "ताकू",
-       "go": "à¤\9cाà¤\89",
+       "go": "à¤\9cाà¤\8a",
        "searcharticle": "जाऊ",
        "history": "पन्नाक इतिहास",
        "history_short": "इतिहास",
        "restorelink": "{{PLURAL:$1|एकटा मेटाएल सम्पादन|$1 मेटाएल सम्पादन सभ}}",
        "feedlinks": "सूचक:",
        "feed-invalid": "अमान्य सूचक प्रकार मासुल",
-       "feed-unavailable": "ाधिकृत सूचक उपलब्ध नै अछि",
+       "feed-unavailable": "à¤\85धिकृत सूचक उपलब्ध नै अछि",
        "site-rss-feed": "$1 आरएसएस फीड",
        "site-atom-feed": "$1 अणु फीड",
        "page-rss-feed": "\"$1\" आर.एस.एस. सूचना",
        "page-atom-feed": "\"$1\" अणु सू़चना",
        "feed-atom": "अणु",
        "feed-rss": "आर.एस.एस.",
-       "red-link-title": "$1 (पà¥\83षà¥\8dठ à¤\89पलबà¥\8dध à¤¨à¥\88  अछि)",
+       "red-link-title": "$1 (पनà¥\8dना à¤\89पलबà¥\8dध à¤¨à¥\88 अछि)",
        "sort-descending": "घटैत क्रममे छाँटू",
        "sort-ascending": "बढ़ैत क्रममे छाँटू",
        "nstab-main": "पृष्ठ",
        "viewsourcetext": "अहाँ ऐ पन्नाक जड़िकेँ देख आ अनुकृत कऽ सकै छी:",
        "viewyourtext": "अहाँ '''अहाँक सम्पादन''' केँ देख आ एतए उतारि सकै छी:",
        "protectedinterface": "ई पन्ना तंत्रांश लेल मध्यस्थ पाठक व्यवस्था करैत अछि, आ अपशब्द रोकबाक ब्योंत करैत अछि।",
-       "editinginterface": "'''चेतौनी''' अहाँ एकटा एहेन पन्नाक सम्पादन कऽ रहल छी जे तंत्रांशक मध्यस्थ पन्नाकेँ पाठ देबा लेल प्रयोग भऽ रहल अछि।\nऐ पन्नामे परिवर्तन दोसर प्रयोक्ता लेल प्रयोक्ता मध्यस्थक रूपमे परिवर्तन करत।\nअनुवाद लेल [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net] जाउ, मीडियाविकी स्थानीयकरण परियोजनापर।",
+       "editinginterface": "'''चेतौनी''' अहाँ एकटा एहेन पन्नाक सम्पादन कऽ रहल छी जे तंत्रांशक मध्यस्थ पन्नाकेँ पाठ देबा लेल प्रयोग भऽ रहल अछि।\nऐ पन्नामे परिवर्तन दोसर प्रयोक्ता लेल प्रयोक्ता मध्यस्थक रूपमे परिवर्तन करत।\nअनुवाद लेल [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net] जाउ, मीडियाविकी स्थानीयकरण परियोजना पर।",
        "cascadeprotected": "ऐ पन्नाक सम्पादन सम्भव नै अछि, कारण ई ऐ मे सम्मिलित अछि, {{PLURAL:$1|पन्ना, जे अछि|पन्ना, से सभ अछि}} सुरक्षित अछि \"तराउपड़ी\" विकल्प खोललाक बाद:\n$2",
        "namespaceprotected": "अहाँकेँ '''$1''' नाम-पेटारमे सम्पादनक अनुमति नै अछि।",
        "customcssprotected": "अहांकें ऐ सी.एस.एस.पन्नाकें सम्पादित करबाक अधिकार नै अछि, कारण ऐमे दोसर प्रयोक्ताक व्यक्तिगत विकल्प छै।",
        "customjsprotected": "अहांकें ऐ जावास्क्रिप्ट पन्नाकें सम्पादित करबाक अधिकार नै अछि, कारण ऐमे दोसर प्रयोक्ताक व्यक्तिगत विकल्प छै।",
-       "mycustomcssprotected": "अहाके लेल ई CSS पन्नाके सम्पादित करवाक अधिकार नै अछि।",
+       "mycustomcssprotected": "अहाके लेल ई सीएसएस पन्नाके सम्पादित करवाक अधिकार नै अछि।",
        "mycustomjsprotected": "अहके लेल इ जावास्क्रिप्ट पन्नाके सम्पादित करवाक अधिकार नै अछि।",
        "myprivateinfoprotected": "अहाके अपन व्यक्तिगत जानकारी बदलैक अनुमति नै अछि।",
        "mypreferencesprotected": "अहाके अपन प्राथमिकता बदलैक अनुमति नै अछि।",
        "password-change-forbidden": "अहा इ विकिमे कूटशब्द नै बदल सकैत छि ।",
        "externaldberror": "खाहे सत्यापन दतांश भ्रम छल वा अहाँ अपन बाह्य खाताकेँ अद्यतन करबामे असमर्थ छी।",
        "login": "सम्प्रवेश",
-       "nav-login-createaccount": "सदसà¥\8dय à¤²à¥\89à¤\97 à¤\87न",
-       "userlogin": "लà¥\89à¤\97 à¤\87न / खेसरा बनाऊ",
+       "nav-login-createaccount": "समà¥\8dपà¥\8dरवà¥\87श /à¤\96à¥\87सरा à¤¬à¤¨à¤¾à¤\8a",
+       "userlogin": "समà¥\8dपà¥\8dरवà¥\87श/ खेसरा बनाऊ",
        "userloginnocreate": "सम्प्रवेश",
        "logout": "निष्क्रमण",
        "userlogout": "फेर आयब",
        "userlogin-joinproject": "{{SITENAME}} से जोडु",
        "nologin": "खाता नै अछि? $1।",
        "nologinlink": "नव खाता खोलू",
-       "createaccount": "à¤\96ाता à¤\96à¥\8bलà¥\80",
+       "createaccount": "à¤\96ाता à¤\96à¥\8bलà¥\82",
        "gotaccount": "पहिनहियेसँ खाता अछि? $1",
        "gotaccountlink": "सम्प्रवेश",
        "userlogin-resetlink": "अपन सम्प्रवेश विवरण बिसरि गेलहुँ?",
        "createacct-another-realname-tip": "मूल नाम वैकल्पिक अछि।\nजँ अहाँ एकरा देबा लेल प्रयोग करै छी, ई अहाँकेँ काजक श्रेय देबा लेल एकर प्रयोग कएल जाएत।",
        "pt-login": "सम्प्रवेश",
        "pt-login-button": "सम्प्रवेश",
-       "pt-createaccount": "à¤\96ाता à¤\96à¥\8bलà¥\80",
+       "pt-createaccount": "à¤\96ाता à¤\96à¥\8bलà¥\82",
        "pt-userlogout": "निष्क्रमण",
        "php-mail-error-unknown": "पी.एच.पी.क संदेश कार्य() मे अज्ञात दोष",
        "user-mail-no-addy": "बिन ई-पत्र संकेतक ई-पत्र पठेबाक प्रयास",
        "loginreqtitle": "सम्प्रवेश आवश्यक",
        "loginreqlink": "सम्प्रवेश",
        "loginreqpagetext": "अहाँ निश्चयरूपेँ $1 दोसर पन्ना देखबाक लेल।",
-       "accmailtitle": "à¤\95à¥\8bटशब्द पठा देल गेल।",
+       "accmailtitle": "à¤\95à¥\82टशब्द पठा देल गेल।",
        "accmailtext": "एकटा बिना क्रमबला निर्माण पद्धतिसँ कूटशब्दक निर्माण [[User talk:$1|$1]] लेल $2 केँ पठाएल गेल अछि।\n\nऐ खाताक कूटशब्द बदलल जा सकैए ''[[Special:ChangePassword|कूटशब्द बदलू]]'' पन्नापर सम्प्रवेश केलाक बाद।",
        "newarticle": "(नव)",
        "newarticletext": "अहाँ एहेन पन्नाक लिंकक अनुसरण कऽ आएल छी जे पन्ना अखन बनले नै अछि।\nपन्ना बनेबाक लेल नीचाँक बक्शामे टाइप केनाइ शुरू करू (देखू [$1  सहायता पन्ना] विषेष जानकारी लेल)।",
        "templatesused": "{{PLURAL:$1|नमूना|नमूना सभ}} ऐ पन्नापर प्रयुक्त:",
        "templatesusedpreview": "{{PLURAL:$1|मास्टरफाइल|सभटा मास्टरफाइल}} used in this preview:ऐ पूर्वप्रदर्शनमे प्रयुक्त :",
        "templatesusedsection": "{{PLURAL:$1|नमूना|नमूना सभ}} ऐ संवर्गमे प्रयुक्त:",
-       "template-protected": "(सà¥\81रक्षित)",
-       "template-semiprotected": "(अर्ध-रक्षित)",
+       "template-protected": "(सà¤\82रक्षित)",
+       "template-semiprotected": "(à¤\85रà¥\8dध-सà¤\82रà¤\95à¥\8dषित)",
        "hiddencategories": "ई पन्ना सदस्य अछि {{PLURAL:$1|1 नुकाएल संवर्ग|$1 नुकाएल संवर्ग सभ}}:",
        "edittools-upload": "-",
        "nocreatetext": "{{अन्तर्जाल}} नव पन्ना निर्माणक क्षमताकेँ सीमित कऽ देने अछि।\nअहाँ आपस जा सकै छी आ कोनो पन्नाकेँ सम्पादित कऽ सकै छी, वा [[Special:UserLogin|log in or create an account]]",
        "revdelete-reasonotherlist": "दोसर कारण",
        "revdelete-edit-reasonlist": "मेटेबाक कारणक सम्पादन करू",
        "revdelete-offender": "संशोधन केनिहार:",
-       "suppressionlog": "दबाà¤\8fलबला वृत्तलेख",
+       "suppressionlog": "दबाà¤\8fलà¤\97à¥\87ल वृत्तलेख",
        "suppressionlogtext": "नीचाँ मेटाएल आ प्रतिबन्धक उल्लेख अछि जे संचालकसँ नुकाएल सामिग्री अछि।\nअखन स्थित प्रभावी प्रतिबन्ध आ अवरोध लेल देखू [[Special:BlockList|IP block list]] ।",
        "mergehistory": "मिज्झर भेल पन्ना सभक इतिहास",
        "mergehistory-header": "ई पन्ना अहाँकेँ एकटा स्रोत पन्नाक एकटा नव पन्नामे संशोधन इतिहासकेँ मिज्झर करबाक अनुमति दैत अछि।\nसुनिश्चित होउ जे ई परिवर्तन ऐतिहासिक पन्ना सांतत्य स्थापित करत।",
        "timezoneregion-arctic": "आर्कटिक",
        "timezoneregion-asia": "एशिया",
        "timezoneregion-atlantic": "अटलांटिक महासागर",
-       "timezoneregion-australia": "à¤\91स्ट्रेलिया",
+       "timezoneregion-australia": "à¤\85स्ट्रेलिया",
        "timezoneregion-europe": "यूरोप",
        "timezoneregion-indian": "हिंद महासागर",
        "timezoneregion-pacific": "प्रशांत महासागर",
        "yourgender": "पुरुख आकि स्त्री",
        "gender-unknown": "अज्ञात",
        "gender-male": "पुरुख",
-       "gender-female": "महिला",
+       "gender-female": "सà¥\8dतà¥\8dरà¥\80",
        "prefs-help-gender": "वैकल्पिक: तंत्रांश द्वारा लिंग निरपेक्ष सम्बोधन लेल प्रयुक्त।\nई सूचना सार्वजनिक हएत।",
        "email": "ई-पत्र",
        "prefs-help-realname": "मूल नाम वैकल्पिक अछि।\nजँ अहाँ एकरा देबा लेल प्रयोग करै छी, ई अहाँकेँ काजक श्रेय देबा लेल एकर प्रयोग कएल जाएत।",
        "right-reupload-own": "अपन उपारोपित पन्ना सभक पुनर्लेखन करू",
        "right-reupload-shared": "श्रव्य-दृश्य साझी बखारीक फाइलक पुनर्लेखन स्थानीय रूपेँ करू।",
        "right-upload_by_url": "सार्वत्रिक विभव संकेतसँ संचिका उपारोपित करू",
-       "right-purge": "जालक उपस्मृतिकेँ बिना स्वीकृतिक पन्नाक लेल खतम करू",
-       "right-autoconfirmed": "अर्द्ध-संरक्षित पन्ना सभक सम्पादन करू",
+       "right-purge": "जालक उपस्मृतिकेँ बिना स्वीकृतिक पन्नाक लेल खतम करू",
+       "right-autoconfirmed": "अर्द्ध-संरक्षित पन्ना सभक सम्पादन करू",
        "right-bot": "स्वचालित प्रक्रियाक रूपमे देखल जाए",
        "right-nominornewtalk": "वार्ता पन्नापर मामूली सम्पादन नव संदेश संसूचक नै आनैए",
        "right-apihighlimits": "ए.पी.आइ. अभ्यर्थनामे पैघ सीमाक प्रयोग करू",
        "rightslog": "प्रयोक्ता अधिकार वृत्तलेख",
        "rightslogtext": "ई प्रयोक्ता अधिकार परिवर्तन सभक वृतलेख छी।",
        "action-read": "ई पन्ना पढ़ू",
-       "action-edit": "à¤\90 पन्नाकेँ सम्पादित करू",
+       "action-edit": "à¤\88 पन्नाकेँ सम्पादित करू",
        "action-createpage": "पन्ना सभ बनाउ",
        "action-createtalk": "वार्ता पन्ना सभ बनाउ",
        "action-createaccount": "ई प्रयोक्ता खाता बनाउ",
        "action-move-subpages": "ऐ पन्ना आ एकर उपपन्नाकेँ घसकाउ",
        "action-move-rootuserpages": "मूल प्रयोक्ता पन्ना सभ घसकाउ",
        "action-move-categorypages": "श्रेणी पृष्ठ स्थानांतरित करू",
-       "action-movefile": "à¤\90 संचिकाकेँ घसकाउ",
-       "action-upload": "à¤\90 संचिकाकेँ उपारोपित करू",
-       "action-reupload": "à¤\90 संचिकाक पुनर्लेखन करू",
-       "action-reupload-shared": "à¤\90 संचिकाकेँ साझी बखारीमे नजरि नै दिअ",
-       "action-upload_by_url": "à¤\86à¤\87 संचिकाकेँ सार्वत्रिक विभव संकेतसँ उपारोपित करू",
+       "action-movefile": "à¤\88 संचिकाकेँ घसकाउ",
+       "action-upload": "à¤\88 संचिकाकेँ उपारोपित करू",
+       "action-reupload": "à¤\88 संचिकाक पुनर्लेखन करू",
+       "action-reupload-shared": "à¤\88 संचिकाकेँ साझी बखारीमे नजरि नै दिअ",
+       "action-upload_by_url": "à¤\88 संचिकाकेँ सार्वत्रिक विभव संकेतसँ उपारोपित करू",
        "action-writeapi": "लेख्य ए.पी.आइ.क प्रयोग करू",
        "action-delete": "ई पन्ना मेटाउ",
        "action-deleterevision": "ई संशोधन मेटाउ",
        "action-deletedhistory": "ऐ पन्नाक मेटाएलबला इतिहास देखू",
        "action-browsearchive": "मेटाएल पन्ना सभकेँ ताकू",
-       "action-undelete": "à¤\90 पन्नाकेँ फेरसँ आनू",
-       "action-suppressrevision": "à¤\90 नुकाएल संशोधनकेँ पुनरीक्षित आ पुनर्स्थापित करू",
-       "action-suppressionlog": "à¤\90 व्यक्तिगत वृत्तलेखकेँ देखू",
-       "action-block": "à¤\90 प्रयोक्ताकेँ सम्पादनसँ रोकू",
-       "action-protect": "à¤\90 पन्नाक सुरक्षा स्तर बदलू",
+       "action-undelete": "à¤\88 पन्नाकेँ फेरसँ आनू",
+       "action-suppressrevision": "à¤\88 नुकाएल संशोधनकेँ पुनरीक्षित आ पुनर्स्थापित करू",
+       "action-suppressionlog": "à¤\88 व्यक्तिगत वृत्तलेखकेँ देखू",
+       "action-block": "à¤\88 प्रयोक्ताकेँ सम्पादनसँ रोकू",
+       "action-protect": "à¤\88 पन्नाक सुरक्षा स्तर बदलू",
        "action-rollback": "कृपा कऽ अन्तिम प्रयोक्ताक सम्पादनकेँ प्रत्यावर्तित करू जे एक खास पन्नाकेँ सम्पादित केलन्हि",
        "action-import": "ऐ पन्नाकेँ दोसर विकीसँ आनू",
        "action-importupload": "ऐ पन्नाकेँ संचिका उपारोपणसँ आनू",
        "action-editmywatchlist": "काँच साकांक्षसूची संपादित करू",
        "action-viewmywatchlist": "अपन काँच साकांक्षसूची देखु",
        "action-viewmyprivateinfo": "अपन व्यक्तिगत जानकारी देखु",
-       "action-editmyprivateinfo": "à¤\85पन à¤µà¥\8dयà¤\95à¥\8dतिà¤\97त à¤\9cानà¤\95ारà¥\80 à¤¸à¤\82पादित करु",
+       "action-editmyprivateinfo": "à¤\85पन à¤µà¥\8dयà¤\95à¥\8dतिà¤\97त à¤\9cानà¤\95ारà¥\80 à¤¸à¤®à¥\8dपादित करु",
        "nchanges": "$1 {{PLURAL:$1|परिवर्त्तन|परिवर्त्तन}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|अंतिम बेर देखला के बाद स}}",
        "enhancedrc-history": "इतिहास",
        "recentchanges": "लगक परिवर्तन सभ",
        "recentchanges-legend": "नव परिवर्तन सभक विकल्प सभ",
-       "recentchanges-summary": "à¤\90 पन्नापर विकीमे भेल सभसँ अद्यतन परिवर्तनपर नजरि राखू।",
+       "recentchanges-summary": "à¤\88 पन्नापर विकीमे भेल सभसँ अद्यतन परिवर्तनपर नजरि राखू।",
        "recentchanges-noresult": "इ अवधिके दौरान इ मापदंडके पूर्ण करेत समय कोनो परिवर्तन नै केएल गेल अछि।",
        "recentchanges-feed-description": "ऐ सूचना-तंत्रांशमे विकीमे भेल सभसँ लगक परिवर्तन ताकू",
        "recentchanges-label-newpage": "ई सम्पादन एकटा नव पन्नाक निर्माण केलक।",
        "hookaborted": "संशोधन जे अहाँ करऽ चाहलौं से विस्तार नोकसी द्वारा खतम कऽ देल गेल।",
        "illegal-filename": "ऐ तरहक संचिका नाम अमान्य अछि।",
        "overwrite": "वर्तमान संचिकाकेँ अधिलेखित केनाइ मान्य नै अछि।",
-       "unknown-error": "एकटा अबूझ भ्रम आए।",
+       "unknown-error": "à¤\8fà¤\95à¤\9fा à¤\85बà¥\82à¤\9d à¤­à¥\8dरम à¤\86à¤\8fल।",
        "tmp-create-error": "अस्थायी संचिका नै बना सकल।",
        "tmp-write-error": "अस्थायी संचिका लिखबा काल भ्रम।",
        "large-file": "ई सुझाव अछि जे संचिका $1 सँ पैघ नै हुअए;\nई संचिका अछि $2 ।",
        "statistics-header-hooks": "दोसर सांख्यिकी",
        "statistics-articles": "अनुक्रम पन्ना सभ",
        "statistics-pages": "पन्ना सभ",
-       "statistics-pages-desc": "वार्ता पन्ना, बदलेनबला लागि सभ इत्यादि सहित सभटा पन्ना सभ।",
+       "statistics-pages-desc": "वार्ता पन्ना, बदलेन इत्यादि सहित सभटा विकि पन्ना सभ।",
        "statistics-files": "उपारोपित संचिका सभ",
        "statistics-edits": "{{अन्तर्जाल}} अएबासँ लऽ कऽ भेल पन्ना सम्पादन सभ।",
        "statistics-edits-average": "प्रति पन्ना औसत सम्पादन",
-       "statistics-users": "[[Special:ListUsers|users]] छथि",
+       "statistics-users": "पंजीकृत [[Special:ListUsers|प्रयोक्ता]]",
        "statistics-users-active": "सक्रिय प्रयोक्ता",
        "statistics-users-active-desc": "प्रयोक्ता जे अन्तिम {{PLURAL:$1|दिन|$1 दिन}} मे कोनो काज केने छथि",
-       "doubleredirects": "द्वितीयक लागिबला बदलेन",
+       "pageswithprop-submit": "जाऊ",
+       "doubleredirects": "द्वितीयक लागएबला बदलेन",
        "doubleredirectstext": "ई पन्ना ओइ पन्ना सभक संकलन छी जे बदलेन करैए दोसर बदलेनबला पन्नासँ।\nप्रत्येक पाँती पहिल आ दोसर बदलेनक लागि रखने अछि आ संगे दोसर बदलेनक लक्ष्य सेहो, जे वास्तवमे \"वास्तव\" लक्ष्य पन्ना अछि, जकरापर पहिल बदलेनकेँ जेबाक चाही। \n <del>Crossed out</del> प्रविष्टिक हल भेटल अछि।",
        "double-redirect-fixed-move": "[[$1]] घसकाएल गेल।\nई आब [[$2]] दिस जा रहल अछि।",
        "double-redirect-fixed-maintenance": "द्वितीयक बदलेन [[$1]] सँ [[$2]] कएल गेल।",
        "protectedpages": "संरक्षित पन्ना सभ",
        "protectedpages-indef": "अनन्तकालिक सुरक्षा मात्र",
        "protectedpages-cascade": "तराउपड़ी सुरक्षा मात्र",
-       "protectedpages-noredirect": "पà¥\81नरà¥\8dनिरà¥\8dदà¥\87श नुकाऊँ",
+       "protectedpages-noredirect": "बदलà¥\87न नुकाऊँ",
        "protectedpagesempty": "कोनो पन्ना ऐ सभ परिमिति लेल सुरक्षित नै राखल गेल अछि।",
        "protectedpages-timestamp": "समएकाल",
        "protectedpages-page": "पृष्ठ",
        "specialloguserlabel": "कर्ता:",
        "speciallogtitlelabel": "लक्ष्य (शीर्षक वा प्रयोक्ता):",
        "log": "वृत्तलेख सभ",
-       "all-logs-page": "सभटा सार्वजनिक वृत्तलेख",
+       "all-logs-page": "सभ सार्वजनिक वृत्तलेख",
        "alllogstext": "{{अन्तर्जाल}} क सभटा उपलब्ध वृत्तलेखक संयुक्त दृश्य।\nअहाँ दृश्यकेँ संकीर्ण करबा लेल वृत्तलेखक एकटा प्रकार चुनि सकै छी, प्रयोक्तानाम (ब्रह्मक्षर-लघ्वक्षर विचारणीय), वा प्रभावित पन्ना (एतौ ब्रह्मक्षर-लघ्वक्षर विचारणीय)।",
        "logempty": "वृत्तलेखमे कोनो मेल खाइबला बौस्तु नै।",
        "log-title-wildcard": "खोज शीर्षक सभ ऐ पाठसँ प्रारम्भ",
        "allpagesprefix": "उपसर्गक संग दृश्य पन्ना सभ:",
        "allpagesbadtitle": "देल पन्नाक शीर्षक गलत, गलत सम्बन्धित अन्तर-भाषा अन्तर विकी शीर्षक छी। ई एक वा बेशी कलाकार युक्त भऽ सकैए जे शीर्षकमे प्रयुक्त नै कएल जा सकैए।",
        "allpages-bad-ns": "{{जालस्थल}} मे \"$1\" नामगाम नै अछि।",
-       "allpages-hide-redirects": "पà¥\81नरà¥\8dनिरà¥\8dदà¥\87श नुकाऊँ",
+       "allpages-hide-redirects": "बदलà¥\87न नुकाऊँ",
        "cachedspecial-refresh-now": "लब्का देखु",
        "categories": "संवर्ग सभ",
        "categoriespagetext": "ई {{PLURAL:$1|संवर्गमे अछि|संवर्ग सभमे अछि}} पन्ना वा मीडिया।\n[[Special:UnusedCategories|Unused categories]] एतए देखाएल नै अछि।\nईहो देखू [[Special:WantedCategories|wanted categories]]।",
        "listgrouprights-group": "वर्ग",
        "listgrouprights-rights": "अधिकार",
        "listgrouprights-helppage": "Help: वर्ग अधिकार",
-       "listgrouprights-members": "(सदसà¥\8dयà¤\95 सूची)",
+       "listgrouprights-members": "(पà¥\8dरयà¥\8bà¤\95à¥\8dता सूची)",
        "listgrouprights-addgroup": "जोड़ू {{PLURAL:$2|वर्ग|वर्ग}}: $1",
        "listgrouprights-removegroup": "निकालू {{PLURAL:$2|वर्ग|वर्ग}}: $1",
        "listgrouprights-addgroup-all": "सभटा वर्ग जोड़ू",
        "listgrouprights-removegroup-all": "सभटा वर्ग निकालू",
        "listgrouprights-addgroup-self": "जोड़ू {{PLURAL:$2|वर्ग|वर्ग}} अपन खातामे: $1",
        "listgrouprights-removegroup-self": "निकालू {{PLURAL:$2|वर्ग|वर्ग}} अपन खातामे: $1",
-       "listgrouprights-addgroup-self-all": "सभटा वर्गकेँ अपन खातामे जोड़ू",
-       "listgrouprights-removegroup-self-all": "सभटा वर्गकेँ अपन खातासँ निकालू",
-       "listgrouprights-namespaceprotection-header": "नामसà¥\8dथान à¤µà¤°à¥\8dà¤\9cित",
-       "listgrouprights-namespaceprotection-namespace": "नामस्थान :",
+       "listgrouprights-addgroup-self-all": "सभ वर्गकेँ अपन खातामे जोड़ू",
+       "listgrouprights-removegroup-self-all": "सभ वर्गकेँ अपन खातासँ निकालू",
+       "listgrouprights-namespaceprotection-header": "नामसà¥\8dथान à¤ªà¥\8dरतिबनà¥\8dधित",
+       "listgrouprights-namespaceprotection-namespace": "नामस्थान",
        "listgrouprights-namespaceprotection-restrictedto": "सांच(सभ) के संपादन करए लेल",
        "trackingcategories": "श्रेणीके ट्रयाक करु",
        "trackingcategories-msg": "श्रेणीके ट्रयाक करु",
        "emailpagetext": "अहाँक नीचाँक आवेदन-पत्र ऐ प्रयोक्ताकेँ ई-पत्र संदेश पठेबा लेल प्रयोग कऽ सकै छी।\nई-पत्र जे अहाँ [[Special:Preferences|your user preferences]] मे देलहुँ से ई-पत्र\"एतएसँ\" पतासँ देखाएत, से प्राप्तकर्ता सोझे अहाँकेँ उत्तर देबामे समर्थ हेताह।",
        "defemailsubject": "{{जालस्थल}} प्रयोक्ता \"$1\" सँ ई-पत्र",
        "usermaildisabled": "प्रयोक्ता ई-पत्र अशक्त",
-       "usermaildisabledtext": "à¤\85हाà¤\81 à¤¦à¥\8bसर à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95à¥\87à¤\81 à¤\90 à¤µà¤¿à¤\95à¥\80पर à¤\88-पतà¥\8dर à¤¨à¥\88 à¤ªà¤ à¤¾ à¤¸à¤\95à¥\88 à¤\9bिà¤\90।",
+       "usermaildisabledtext": "à¤\85हाà¤\81 à¤¦à¥\8bसर à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95à¥\87à¤\81 à¤\90 à¤µà¤¿à¤\95à¥\80पर à¤\88-पतà¥\8dर à¤¨à¥\88 à¤ªà¤ à¤¾ à¤¸à¤\95à¤\8f à¤\9bà¥\80",
        "noemailtitle": "कोनो ई-पत्र पता नै",
        "noemailtext": "ई पर्योक्ता अपन कोनो मान्य ई-पत्र संकेत नै देने अछि।",
        "nowikiemailtext": "ई प्रयोक्ता दोसर प्रयोक्तासँ ई-पत्र प्राप्त नै करबाक विकल्प चुनने अछि।",
        "watchlist": "साकांक्षसूची",
        "mywatchlist": "साकांक्ष-सूची",
        "watchlistfor2": "$1 $2 लेल",
-       "nowatchlist": "à¤\85हाà¤\81à¤\95 à¤¸à¤¾à¤\95ाà¤\82à¤\95à¥\8dष-सà¥\82à¤\9aà¥\80मà¥\87 à¤\95à¥\8bनà¥\8b à¤¬à¥\8cसà¥\8dतà¥\81 नै अछि।",
+       "nowatchlist": "à¤\85हाà¤\81à¤\95 à¤¸à¤¾à¤\95ाà¤\82à¤\95à¥\8dष-सà¥\82à¤\9aà¥\80मà¥\87 à¤\95à¥\8bनà¥\8b à¤ªà¤¨à¥\8dना नै अछि।",
        "watchlistanontext": "कृपा कऽ $1 अहाँक साकांक्ष-सूचीकेँ देखबा वा सम्पादित करबा लेल।",
        "watchnologin": "सम्प्रवेशित नै",
        "addwatch": "साकांक्ष सूचीमे जोड़ू",
        "addedwatchtext": "पन्ना \"[[:$1]]\" अहाँक [[Special:Watchlist|साकांक्ष सूची]] मे जोड़ल गेल।\nऐ पन्नामे भविष्यक परिवर्तन आ एकर सम्बन्धित चौबटिया पन्ना एतए सूचीबद्ध रहत, आ पन्ना [[Special:RecentChanges|हालक परिवर्तन]]मे '''गाढ़''' देखाएत , जइसँ आसानीसँ एकरा चिन्हल जा सकत।",
        "removewatch": "साकांक्ष सूचीसँ हटाउ",
        "removedwatchtext": "पन्ना \"[[:$1]]\" हटाएल गेल [[Special:Watchlist|अहाँक साकांक्षसूची]] सँ।",
-       "watch": "ताà¤\95िमà¥\87",
-       "watchthispage": "à¤\90 à¤ªà¥\83षà¥\8dठपर à¤¨à¤\9cरि राखू",
+       "watch": "धà¥\8dयान à¤°à¤¾à¤\96à¥\81",
+       "watchthispage": "à¤\90 à¤ªà¥\83षà¥\8dठपर à¤§à¥\8dयान राखू",
        "unwatch": "छोड़ू",
        "unwatchthispage": "देखनाइ छोड़ू",
        "notanarticle": "कोनो विषय सूची नै",
        "watcherrortext": "अहाँक साकांक्ष-सूची विकल्प \"$1\" लेल बदलबा काल एकटा भ्रम आएल।",
        "enotif_reset": "सभ पन्नाकेँ देखल चिन्हित करू",
        "enotif_impersonal_salutation": "{{अन्तर्जाल}} प्रयोक्ता",
+       "enotif_subject_deleted": "{{SITENAME}} पन्ना $1 के {{gender:$2|$2}} हटेलक",
+       "enotif_subject_created": "{{SITENAME}} पन्ना $1 को {{gender:$2|$2}} बनेलक",
        "enotif_lastvisited": "देखू $1 अपन अन्तिम बेर अएलाक बादक परिवर्तन लेल।",
        "enotif_lastdiff": "ऐ परिवर्तनकेँ देखबा लेल $1 देखू।",
        "enotif_anon_editor": "गुप्त प्रयोक्ता $1",
        "actionfailed": "कार्य नै भेल",
        "deletedtext": "\"$1\" केँ मेटा देल गेल अछि।\nदेखू $2 हालक मेटाएल सामिग्रीक अभिलेख लेल।",
        "dellogpage": "मेटाएल सामिग्रीक वृत्तलेख",
-       "dellogpagetext": "नà¥\80à¤\9aाà¤\81 à¤\8fà¤\95दम à¤¹à¤¾à¤²à¤\95 à¤®à¥\87à¤\9fाà¤\8fलबला à¤¸à¥\82à¤\9aà¥\80 à¤\85à¤\9bि।",
+       "dellogpagetext": "नà¥\80à¤\9aाà¤\81 à¤\8fà¤\95दम à¤²à¤\97à¤\95 à¤®à¥\87à¤\9fाà¤\8fल à¤ªà¤¨à¥\8dनाà¤\95ऽ à¤¸à¥\82à¤\9aà¥\80 à¤\9bà¥\80।",
        "deletionlog": "मेटाएल सामिग्रीक वृत्तलेख",
        "reverted": "पुरान कोनो संशोधन धरि घुराउ",
        "deletecomment": "कारण:",
        "rollback-success": "$1 केर संपादन हटाऊ. \n$2 केर संपादित आखिरी अवतरण क पुनर्स्थापित करल गेल.",
        "sessionfailure-title": "सत्र विफल भ गेल",
        "sessionfailure": "एहन लागैत अछि जे अहां के लागिन सत्र में कोनो त्रुटि अछि. सत्र अपहरण से बचाबय  सं सावधानीक लेल अहां के अहि क्रियाकलाप क रद्द क देल गेल. अहां पाछां के पृष्ठ पर जौउ आ पृष्ठ के फेर सं लोड क दोबारा कोशिश करू.",
-       "protectlogpage": "सà¥\81रà¤\95à¥\8dषा à¤²à¥\89à¤\97",
-       "protectlogtext": "नà¥\80à¤\9aाà¤\81 à¤\95िà¤\9bà¥\81 à¤ªà¤¨à¥\8dना à¤¸à¥\81रà¤\95à¥\8dषा à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\95 à¤¸à¥\82à¤\9aà¥\80 à¤\85à¤\9bि।\nदà¥\87à¤\96à¥\82 [[Special:ProtectedPages|protected pages list]] à¤¹à¤¾à¤²à¤\95 à¤\95ारà¥\8dयरत à¤ªà¤¨à¥\8dना à¤¸à¥\81रà¤\95à¥\8dषाà¤\95 सूची लेल।",
-       "protectedarticle": "रक्षित \"[[$1]]\"",
+       "protectlogpage": "सुरक्षा लग",
+       "protectlogtext": "नà¥\80à¤\9aाà¤\81 à¤\95िà¤\9bà¥\81 à¤ªà¤¨à¥\8dना à¤¸à¥\81रà¤\95à¥\8dषा à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\95 à¤¸à¥\82à¤\9aà¥\80 à¤\85à¤\9bि।\nदà¥\87à¤\96à¥\82 [[Special:ProtectedPages|protected pages list]] à¤²à¤\97à¤\95 à¤\95ारà¥\8dयरत à¤ªà¤¨à¥\8dना à¤¸à¥\81रà¤\95à¥\8dषाà¤\95ऽ सूची लेल।",
+       "protectedarticle": "रक्षित \"[[$1]]\" कएल गेल",
        "modifiedarticleprotection": "\"[[$1]]\" लेल बदलैत रक्षा स्तर",
        "unprotectedarticle": "अरक्षित केलौं \"[[$1]]\"",
        "movedarticleprotection": "सुरक्षा स्तर \"[[$2]]\" से बदल क  \"[[$1]]\" क देल गेल.",
        "protect-locked-dblock": "सक्रिय दत्तनिधि प्रतिबन्धक कारण सुरक्षा स्तर नै बदलल जा सकैए।\nएतए '''$1''' लेल वर्तमान नियत विकल्प देल अछि:",
        "protect-locked-access": "अहाँक खाता अहाँकेँ रक्षा स्तरमे परिवर्तनक अधिकार नै दैत अछि।\nएतए '''$1'''पन्नाक वर्तमान परिस्थिति देल गेल अछि:",
        "protect-cascadeon": "ई पन्ना अखन रक्षित अछि कारण ई ऐ मे सम्मिलित अछि {{PLURAL:$1|पन्ना, जे अछि|पन्ना सभ, जे सभ अछि}} तराउपड़ी रक्षण लागू।\nअहाँ ऐ पन्नाक रक्षा स्तरकेँ बदलि सकै छी, मुदा ताइ सँ तराउपड़ी रक्षापर असर नै पड़त।",
-       "protect-default": "सभ à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95à¥\87à¤\81 à¤\85धिà¤\95ार à¤¦à¤¿à¤\85",
-       "protect-fallback": "\"$1\" à¤\85नà¥\81मति à¤\9aाहà¥\80",
-       "protect-level-autoconfirmed": "नव à¤\86 à¤\85पà¤\82à¤\9cà¥\80à¤\95à¥\83त à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95à¥\87à¤\81 à¤ªà¥\8dरतिबनà¥\8dधित à¤\95रà¥\82",
-       "protect-level-sysop": "माइनजन मात्र",
+       "protect-default": "सभ à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95à¥\87à¤\81 à¤\85धिà¤\95ार à¤¦à¤\8fल à¤\9cाà¤\8f",
+       "protect-fallback": "\"$1\" à¤\85धिà¤\95ार à¤­à¥\87ल à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतासभà¤\95à¥\87 à¤\85नà¥\81मति à¤¦à¤\8fल à¤\9cाà¤\8f",
+       "protect-level-autoconfirmed": "मातà¥\8dर à¤¸à¥\8dवत: à¤¸à¥\8dथापित à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95à¥\87à¤\81 à¤\85नà¥\81मति à¤¦à¤\8fल à¤\9cाà¤\8f",
+       "protect-level-sysop": "माइनजन मात्रके अनुमति दएल जाए",
        "protect-summary-cascade": "तराउपड़ी",
        "protect-expiring": "खतम हएत $1 (UTC)",
        "protect-expiring-local": "खतम होइए $1",
        "namespace": "चेन्हासी समूह",
        "invert": "उनटा चयन",
        "tooltip-invert": "ऐ बक्साकेँ सही करू पन्ना परिवर्तनकेँ नुकेबा लेल चयनित नामस्थानक भीतर (आ संग लागल नामस्थान जँ सही कएल अछि तखन)",
-       "namespace_association": "समà¥\8dबदà¥\8dध à¤¨à¤¾à¤®à¤¸à¥\8dथान",
+       "namespace_association": "समà¥\8dबदà¥\8dध à¤\9aà¥\87नà¥\8dहासà¥\80",
        "tooltip-namespace_association": "ऐ बक्साकेँ सही करू जइसँ वार्ता आ विषय नामस्थान समाहित कएल जा सकए चुनल नामस्थानमे",
        "blanknamespace": "(मुख्य)",
        "contributions": "प्रयोक्ताक योगदान सभ",
        "month": "माससँ (आ पहिने)",
        "year": "ऐ साल (आ पहिने)",
        "sp-contributions-newbies": "नव खाताक अवदानकेँ देखाउ",
-       "sp-contributions-newbies-sub": "नब à¤¸à¤¦à¤¸à¥\8dयà¤\95 à¤²à¥\87ल.",
-       "sp-contributions-newbies-title": "नब à¤¸à¤¦à¤¸à¥\8dयà¤\95 योगदान",
-       "sp-contributions-blocklog": "पà¥\8dरतिबनà¥\8dधबला वृत्तलेख",
-       "sp-contributions-deleted": "प्रयोक्ताक मेटाएल योगदान सभ",
+       "sp-contributions-newbies-sub": "नब à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95ऽ à¤²à¥\87ल",
+       "sp-contributions-newbies-title": "नब à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95ऽ योगदान",
+       "sp-contributions-blocklog": "पà¥\8dरतिबनà¥\8dधित वृत्तलेख",
+       "sp-contributions-deleted": "प्रयोक्ताक मेटाएल योगदान सभ",
        "sp-contributions-uploads": "उपारोपण",
        "sp-contributions-logs": "वृत्तलेख सभ",
        "sp-contributions-talk": "वार्त्ता",
-       "sp-contributions-userrights": "प्रयोक्ता अधिकारक प्रबन्धन",
-       "sp-contributions-blocked-notice": "à¤\88 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\85à¤\96न à¤ªà¥\8dरतिबनà¥\8dधित à¤\85à¤\9bि।\nà¤\85दà¥\8dयतन à¤ªà¥\8dरतिबनà¥\8dधित  à¤µà¥\83तà¥\8dतलà¥\87à¤\96 à¤²à¥\87à¤\96ा सन्दर्भ नीचाँ देल अछि:",
+       "sp-contributions-userrights": "प्रयोक्ता अधिकारक प्रबन्धन",
+       "sp-contributions-blocked-notice": "à¤\88 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\85à¤\96न à¤ªà¥\8dरतिबनà¥\8dधित à¤\85à¤\9bि।\nनव à¤ªà¥\8dरतिबनà¥\8dधित à¤µà¥\83तà¥\8dतलà¥\87à¤\96 à¤²à¥\87à¤\96 सन्दर्भ नीचाँ देल अछि:",
        "sp-contributions-blocked-notice-anon": "ई अनिकेत अखन प्रतिबन्धित अछि।\nअद्यतन प्रतिबन्धित  वृत्तलेख लेखा सन्दर्भ नीचाँ देल अछि:",
        "sp-contributions-search": "अवदानक लेल ताकू",
        "sp-contributions-username": "अनिकेत संकेत वा प्रयोक्तानाम:",
        "block-log-flags-anononly": "गुप्त प्रयोक्ता मात्र",
        "block-log-flags-nocreate": "लेखा निर्माण अशक्त कएल",
        "block-log-flags-noautoblock": "स्वचालित प्रतिबन्ध अशक्त",
-       "block-log-flags-noemail": "à¤\88-मà¥\87ल à¤\85वरà¥\81दà¥\8dध",
+       "block-log-flags-noemail": "à¤\88-मà¥\87ल à¤\85शà¤\95à¥\8dत",
        "block-log-flags-nousertalk": "अपन वार्ता पन्ना सम्पादित नै कऽ सकब",
        "block-log-flags-angry-autoblock": "नीक स्वचालित प्रतिबन्ध देल गेल",
        "block-log-flags-hiddenname": "प्रयोक्तानाम नुकाएल",
        "movepage-page-unmoved": "पन्ना $1 केँ $2 लग नै घसकाएल जा सकैए।",
        "movepage-max-pages": "बेसी सें बेसी $1 पृष्ठ बदलि के {{PLURAL:$1| क देल गेल अछि|क देल गेल अछि}}, आब आर पृष्ठ अपने आप नहि बदलत.",
        "movelogpage": "वृत्तलेख हटाउ",
-       "movelogpagetext": "नाम बदलल गेल लेख क सूचि नीचां देल गेल अछि",
-       "movesubpage": "{{PLURAL:$1|à¤\89प à¤ªà¥\83षà¥\8dठ|à¤\89प à¤ªà¥\83षà¥\8dठ}}",
-       "movesubpagetext": "नà¥\80à¤\9aाà¤\82 $1 {{PLURAL:$1| à¤ªà¥\83षà¥\8dठ à¤¦à¥\87à¤\96ा à¤¦ à¤°à¤¹à¤² à¤\85à¤\9bि, à¤\9cà¥\87 à¤\85हि à¤ªà¥\83षà¥\8dठà¤\95 à¤\89प à¤ªà¤¨à¥\8dना à¤\85à¤\9bि|पà¥\83षà¥\8dठ à¤¦à¥\87à¤\96ा à¤¦ à¤°à¤¹à¤² à¤\85à¤\9bि, à¤\9cà¥\87 à¤\85हि à¤ªà¥\83षà¥\8dठà¤\95 उप पन्ना अछि}}।",
-       "movenosubpage": "à¤\85हि à¤ªà¥\83षà¥\8dठ à¤\95ा à¤\95à¥\8bनà¥\8b à¤\89प à¤ªà¤¨à¥\8dना à¤¨à¤¹à¤¿ à¤\85à¤\9bि.",
+       "movelogpagetext": "नाम बदलल गेल लेख क सूचि नीचां देल गेल अछि",
+       "movesubpage": "{{PLURAL:$1|à¤\89प à¤ªà¤¨à¥\8dना|à¤\89प à¤ªà¤¨à¥\8dना}}",
+       "movesubpagetext": "नà¥\80à¤\9aाà¤\82 $1 {{PLURAL:$1| à¤ªà¤¨à¥\8dना à¤¦à¥\87à¤\96ाà¤\93ल à¤\97à¤\8fल à¤\85à¤\9bि, à¤\9cà¥\87 à¤\85हि à¤ªà¤¨à¥\8dनाà¤\95ऽ à¤\89प à¤ªà¤¨à¥\8dना à¤\85à¤\9bि|पनà¥\8dना à¤¦à¥\87à¤\96ावà¥\8bल à¤\97à¤\8fल à¤\85à¤\9bि, à¤\9cà¥\87 à¤\85हि à¤ªà¤¨à¥\8dनाà¤\95ऽ उप पन्ना अछि}}।",
+       "movenosubpage": "à¤\85हि à¤ªà¤¨à¥\8dना à¤\95ऽ à¤\95à¥\8bनà¥\8b à¤\89प à¤ªà¤¨à¥\8dना à¤¨à¤¹à¤¿ à¤\85à¤\9bि।",
        "movereason": "कारण:",
        "revertmove": "फेरसँ वएह",
        "delete_and_move": "मेटाउ आ हटू",
        "imagetypemismatch": "नव संचिका विस्तारक अपन प्रकारसँ मेल नै खाइए।",
        "imageinvalidfilename": "लक्ष्यित संचिकाक नाम अवैध अछि",
        "fix-double-redirects": "मूल शीर्षक धरि जाहि बला सभटा पुनर्निर्देशनों के सेहो बदलु.",
-       "move-leave-redirect": "à¤\8fà¤\95à¤\9fा à¤ªà¥\81नरà¥\8dनिरà¥\8dदà¥\87शन à¤\95à¥\87 à¤ªà¤¾à¤\82à¤\9bा à¤\9bà¥\8bडि à¤\95à¥\87 à¤\9cाà¤\8a.",
-       "protectedpagemovewarning": "''' à¤\9aà¥\87तà¥\8cनà¥\80: à¤\88 à¤ªà¤¨à¥\8dना à¤¸à¤\82रà¤\95à¥\8dषित à¤\85à¤\9bि à¤¸à¥\87 à¤\96ालà¥\80 à¤¸à¤\82à¤\9aालन à¤\85धिà¤\95ारयà¥\81à¤\95à¥\8dत à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\8fà¤\95रा à¤¹à¤\9fा à¤¸à¤\95à¥\88त à¤\9bथि।'''\nà¤\85दà¥\8dयतन वृतलेख उल्लेख नीचाँ सन्दर्भ लेल देल जा रहल अछि:",
-       "semiprotectedpagemovewarning": "'''नà¥\8bà¤\9f:''' à¤\88 à¤ªà¤¨à¥\8dना à¤¸à¤\82रà¤\95à¥\8dषित à¤\85à¤\9bि à¤¸à¥\87 à¤\96ालà¥\80 à¤ªà¤\82à¤\9cà¥\80à¤\95à¥\83त à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\8fà¤\95रा à¤¹à¤\9fा à¤¸à¤\95à¥\88त à¤\9bथि।\nà¤\85दà¥\8dयतन वृतलेख उल्लेख नीचाँ सन्दर्भ लेल देल जा रहल अछि:",
+       "move-leave-redirect": "à¤\8fà¤\95à¤\9fा à¤¬à¤¦à¤²à¥\87न à¤\95à¥\87 à¤ªà¤¾à¤\82à¤\9bा à¤\9bà¥\8bडि à¤\95à¥\87 à¤\9cाà¤\8a",
+       "protectedpagemovewarning": "''' à¤\9aà¥\87तà¥\8cनà¥\80: à¤\88 à¤ªà¤¨à¥\8dना à¤¸à¤\82रà¤\95à¥\8dषित à¤\85à¤\9bि à¤¸à¥\87 à¤\96ालà¥\80 à¤¸à¤\82à¤\9aालन à¤\85धिà¤\95ारयà¥\81à¤\95à¥\8dत à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\8fà¤\95रा à¤\98à¥\81सà¤\95ा à¤¸à¤\95à¥\88त à¤\9bथि।'''\nनव वृतलेख उल्लेख नीचाँ सन्दर्भ लेल देल जा रहल अछि:",
+       "semiprotectedpagemovewarning": "'''नà¥\8bà¤\9f:''' à¤\88 à¤ªà¤¨à¥\8dना à¤¸à¤\82रà¤\95à¥\8dषित à¤\85à¤\9bि à¤¸à¥\87 à¤\96ालà¥\80 à¤ªà¤\82à¤\9cà¥\80à¤\95à¥\83त à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\8fà¤\95रा à¤\98à¥\81सà¤\95ा à¤¸à¤\95à¥\88त à¤\9bथि।\nनव वृतलेख उल्लेख नीचाँ सन्दर्भ लेल देल जा रहल अछि:",
        "move-over-sharedrepo": "[[:$1]] अछि एकटा साझी बखारीमे। कोनो संचिकाकेँ ऐ नामसँ अनलापर साझीबला एकटा संचिका मेटा जाएत।",
        "file-exists-sharedrepo": "साझी बखारीमे ऐ नामसँ पहिनहियेसँ एकटा संचिका अछि।\nकृपा कऽ दोसर नाम चुनू।",
        "export": "पन्ना सभकेँ पठाउ",
        "allmessages-prefix": "उपसर्गक आधारपर छाँटू:",
        "allmessages-language": "भाषा:",
        "allmessages-filter-submit": "चलू",
-       "allmessages-filter-translate": "अनुवाद कर",
+       "allmessages-filter-translate": "अनुवाद कर",
        "thumbnail-more": "पैघ",
        "filemissing": "संचिका हेराएल",
        "thumbnail_error": "लघुचित्र निर्माण कालमे भ्रम:$1",
        "importfailed": "आयात विफल: <nowiki>$1</nowiki>",
        "importunknownsource": "अज्ञात आयात स्रोत प्रकार",
        "importcantopen": "आयात संचिकाकेँ नै खोलि सकलौं",
-       "importbadinterwiki": "à¤\96राप à¤\85नà¥\8dतरविà¤\95à¥\80 à¤²à¤¾à¤\97ि",
+       "importbadinterwiki": "à¤\96राप à¤\85नà¥\8dतरविà¤\95à¥\80 à¤²à¤¿à¤\82à¤\95",
        "importsuccess": "आयात सफल!",
        "importnosources": "कोनो ट्रान्सविकी आयात स्रोत परिभाषित नै अछि आ सोझ इतिहास उपारोपण अशक्त कएल अछि।",
        "importnofile": "कोनो आयातित संचिका उपारोपित नै भेल।",
        "importlogpagetext": "पन्ना सभक प्रशासनिक आयात दोसर विकीक सम्पादन इतिहासक संग।",
        "import-logentry-upload": "[[$1]] आयात केलौं संचिका उपारोपण द्वारा",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|सुधार|सुधार सभ}}",
-       "import-logentry-interwiki": "$1 क विकीअन्तरण",
+       "import-logentry-interwiki": "विकीअन्तरण क देलौ $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|सुधार|सुधार सभ}} $2 सँ",
        "javascripttest": "जावास्क्रिप्ट परिक्षण",
        "tooltip-pt-userpage": "अहाँक खेसरा पन्ना",
        "tooltip-n-recentchanges": "विकीमे लगक परिवर्त्तनक सूची.",
        "tooltip-n-randompage": "कोनो अनिर्धारित पन्ना लोड करू",
        "tooltip-n-help": "प्राप्त करबाक स्थान.",
-       "tooltip-t-whatlinkshere": "सभटा विकी-पन्नाक सूची जकर एतय लिंक अछि",
+       "tooltip-t-whatlinkshere": "सभ विकी-पन्नाक सूची जकर एतय लिंक अछि",
        "tooltip-t-recentchangeslinked": "ऐ पृष्ठक लागिक पन्नामे भेल नव परिवर्तन",
        "tooltip-feed-rss": "ऐ पन्ना लेल आर.एस.एस. सूचना",
        "tooltip-feed-atom": "ऐ पन्ना लेल अणु समदिया",
        "tooltip-compareselectedversions": "ऐ पन्नाक दू टा चयन कएल संशोधनक बीचक अन्तर देखू",
        "tooltip-watch": "ऐ पन्नाकेँ अपन साकांक्ष सूचीमे जोड़ू",
        "tooltip-watchlistedit-normal-submit": "शीर्षक सभकेँ हटाउ",
-       "tooltip-watchlistedit-raw-submit": "साà¤\95ाà¤\82à¤\95à¥\8dषसà¥\82à¤\9aà¥\80 à¤\85दà¥\8dयतन करू",
+       "tooltip-watchlistedit-raw-submit": "साà¤\95ाà¤\82à¤\95à¥\8dषसà¥\82à¤\9aà¥\80 à¤\89दà¥\8dदतन करू",
        "tooltip-recreate": "पन्ना फेरसँ बनाउ तखनो जँ ई मेटा देल गेल हुअए",
        "tooltip-upload": "उपारोपण करू",
        "tooltip-rollback": "\"प्रत्यावर्तन\" ऐ पन्नाक अन्तिम योगदा करैबलाक सम्पादन (सम्पादन सभ) केँ एक क्लिकमे पुरान जगहपर लऽ जाउ",
        "hours": "{{PLURAL:$1|$1 घण्टा|$1 घण्टा}}",
        "days": "{{PLURAL:$1|$1 दिन|$1 दिन}}",
        "ago": "$1 पहिने",
+       "just-now": "अखन",
+       "hours-ago": "$1 {{PLURAL:$1|घंटा|घंटा}} पहिले",
+       "minutes-ago": "$1 {{PLURAL:$1|मिनट|मिनट}} पहिले",
+       "seconds-ago": "$1{{PLURAL:$1|सॅकेंड|सॅकेंड}} पहिले",
+       "monday-at": "सोमवार $1 बजे",
+       "tuesday-at": "मंगलबार $१",
+       "wednesday-at": "बुधवार $1 बजे",
+       "thursday-at": "बृहस्पतिबार $1 बजे",
+       "friday-at": "शुक्रवार $1 बजे",
+       "saturday-at": "शनिबार $1 बजे",
        "bad_image_list": "फॉर्मेट निम्न प्रकारेँ अछि:\n\nमात्र सूचीबद्ध सामग्री (* सँ प्रारम्भ होय बला पंक्त्ति) विचारनीय अछि। पंक्त्तिक प्रथम लिंक आवश्यक रूपसँ खराब चित्रक लिंक होयबाक चाही।\n\nओही पंक्त्तिक कोनो आर लिंक अपवाद स्वरूप अछि, उदाहरणस्वरूप पन्ना जतय चित्र पंक्त्तिअहि पर होय।",
        "variantname-zh-cn": "cn",
        "variantname-zh-tw": "tw",
        "imgmultipagenext": "अगुलका पृष्ठ",
        "imgmultigo": "जाऊ",
        "imgmultigoto": "$1 पृष्ठ पर जाऊ",
+       "img-lang-go": "जाऊ",
        "ascending_abbrev": "asc",
        "descending_abbrev": "desc",
        "table_pager_next": "अगला पृष्ठ",
        "autosumm-replace": "\"$1\" सहित पाठ परिवर्तित भेल",
        "autoredircomment": "[[$1]] के अनुप्रेषित",
        "autosumm-new": "'$1'संग नब पृष्ठ बनाओल गेल",
+       "autosumm-newblank": "खालि पन्ना बनाओल गेल",
        "lag-warn-normal": "$1 सँ नव बदलल गेल {{PLURAL:$1|सेकेण्ड|सेकेण्ड}} ऐ सूचीमे नै देखाएल गेल।",
        "lag-warn-high": "उच्च दत्तनिधि वितरक देरीक कारण, $1 सँ नव परिवर्तन {{PLURAL:$1|सेकेण्ड|सेकेण्ड}} ऐ सूचीमे नै देखाएल जा सकल।",
        "watchlistedit-normal-title": "साकांक्षसूची बदलू",
        "watchlistedit-raw-done": "अहाँक साकांक्ष-सूची अद्यतन कएल गेल।",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 शीर्षक छल|$1शीर्षक सभ रहए}} जोड़ल गेल:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 शीर्षक छल|$1शीर्षक सभ रहए}} हटाएल गेल:",
+       "watchlistedit-clear-title": "साकांक्ष-सूची मेटाओल गेल",
+       "watchlistedit-clear-legend": "साकांक्ष-सूची मेटाउ",
+       "watchlistedit-clear-explain": "एही ठाम रहल सभ शिर्षक अहाँक साकांक्ष-सूची से मेटा जाएत",
+       "watchlistedit-clear-titles": "शीर्षक",
+       "watchlistedit-clear-submit": "साकांक्ष-सूची मेटाउ (ई स्थायी छि!)",
+       "watchlistedit-clear-done": "अहाँक साकांक्ष-सूची मेटाओल गेल।",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 शीर्षक छल|$1शीर्षक सभ रहए}} हटाएल गेल:",
+       "watchlistedit-too-many": "एतेक बहुत रास पन्ना सभ देखावोल जाएत।",
+       "watchlisttools-clear": "साकांक्ष-सूची मेटाउ",
        "watchlisttools-view": "सम्बन्धित परिवर्तन सभकेँ देखू",
        "watchlisttools-edit": "साकांक्षसूचीकेँ देखू आ सम्पादित करू",
        "watchlisttools-raw": "काँच साकांक्षसूची संपादित करू",
        "version-software-product": "उत्पाद",
        "version-software-version": "संस्करण",
        "version-entrypoints-header-url": "यू॰आर॰एल",
+       "redirect-submit": "जाऊ",
        "fileduplicatesearch": "द्वितीयक संचिका ताकू",
        "fileduplicatesearch-summary": "हैश मानक आधारपर द्वितीयक संचिका ताकू।",
        "fileduplicatesearch-legend": "द्वितीयक ताकू",
index e3282c9..e9504f5 100644 (file)
        "api-error-stashfailed": "Ralat dalaman: pelayan tidak dapat menyimpan fail sementara.",
        "api-error-publishfailed": "Ralat dalaman: Pelayan tidak dapat menerbitkan fail sementara.",
        "api-error-stasherror": "Terdapat ralat ketika menyimpan fail yang dimuat naik.",
+       "api-error-stashedfilenotfound": "Fail yang disimpan tidak dijumpai apabila cuba untuk memuat naik dari simpanan.",
+       "api-error-stashpathinvalid": "Laluan di mana fail disimpan sepatutnya didapati tidak sah.",
+       "api-error-stashfilestorage": "Terdapat ralat semasa menyimpan fail dalam simpanan.",
+       "api-error-stashzerolength": "Pelayan tidak dapat menyimpan fail, kerana ia mempunyai panjang sifar.",
        "api-error-timeout": "Pelayan tidak bergerak balas dalam tempoh yang diharapkan.",
        "api-error-unclassified": "Berlakunya ralat yang tidak diketahui",
        "api-error-unknown-code": "Ralat tidak diketahui: \"$1\"",
index ad62999..87a6aea 100644 (file)
        "nolicense": "Maak een keuze",
        "licenses-edit": "Licentieopties bewerken",
        "license-nopreview": "(Voorvertoning niet beschikbaar)",
-       "upload_source_url": "(een bestanden van een geldige, publiek toegankelijke URL)",
+       "upload_source_url": "(een bestand van een geldige, publiek toegankelijke URL)",
        "upload_source_file": "(een bestand op uw computer)",
        "listfiles-delete": "verwijderen",
        "listfiles-summary": "Op deze speciale pagina zijn alle toegevoegde bestanden te bekijken.",
index cb72b0a..af62a95 100644 (file)
        "postedit-confirmation-restored": "ਸਫ਼ੇ ਨੂੰ ਮੁੜ-ਸਟੋਰ ਕੀਤਾ ਗਿਆ।",
        "postedit-confirmation-saved": "ਤੁਹਾਡੀ ਸੋਧ ਸਾਂਭੀ ਗਈ ਹੈ।",
        "edit-already-exists": "ਨਵਾਂ ਸਫ਼ਾ ਨਹੀਂ ਬਣਾਇਆ ਜਾ ਸਕਿਆ।\nਇਹ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ।",
-       "defaultmessagetext": "ਮà©\82ਲ à¨¸à©°à¨¦à©\87ਸ਼ ਲਿਖਤ",
+       "defaultmessagetext": "ਮà©\82ਲ à¨¸à©\81ਨà©\87ਹਾ ਲਿਖਤ",
        "invalid-content-data": "ਗ਼ਲਤ ਸਮੱਗਰੀ",
        "content-not-allowed-here": "\"$1\" ਸਮੱਗਰੀ ਨੂੰ [[$2]] ਉੱਤੇ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ",
        "editwarning-warning": "ਇਹ ਸਫ਼ਾ ਛੱਡਣ ਕਰਕੇ ਤੁਹਾਡੇ ਵੱਲੋਂ ਕੀਤੀਆਂ ਸੋਧਾਂ ਗੁੰਮ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਜੇਕਰ ਤੁਸੀਂ ਦਾਖ਼ਲਾ ਲਿਆ ਹੋਇਆ ਹੈ ਤਾਂ ਤੁਸੀਂ ਇਸ ਚਿਤਾਵਨੀ ਨੂੰ ਆਪਣੀਆਂ ਪਸੰਦਾਂ ਦੇ \"ਸੰਪਾਦਨ\" ਭਾਗ ਵਿਚ ਜਾ ਕੇ ਬੰਦ ਕਰ ਸਕਦੇ ਹੋ।",
index 0ef1b48..47e8040 100644 (file)
        "mediastatistics-header-executable": "Eseguìbij",
        "mediastatistics-header-archive": "Formà compress",
        "json-warn-trailing-comma": "$1 {{PLURAL:$1|coma final a l'é stàita|còme finaj a son ëstàite}} gavà dal JSON",
-       "json-error-unknown": "A-i é staje un problema con ël JSON. Eror: $1"
+       "json-error-unknown": "A-i é staje un problema con ël JSON. Eror: $1",
+       "json-error-depth": "La dimension màssima dël baron a l'é stàita sorpassà",
+       "json-error-state-mismatch": "JSON nen bon o mal formà",
+       "json-error-ctrl-char": "Eror ëd caràter ëd contròl, miraco mal codificà",
+       "json-error-syntax": "Eror ëd sintassi",
+       "json-error-utf8": "Caràter UTF-8 mal formà, miraco mal codificà",
+       "json-error-recursion": "Un-a o pi rëspondense ant ël valor da codifiché",
+       "json-error-inf-or-nan": "Un o pi valor NAN o INF ant ël valor da codifiché",
+       "json-error-unsupported-type": "A l'é stàit dàit un valor ëd na sòrt ch'a peul nen esse codificà"
 }
index d79e3c4..335720e 100644 (file)
        "viewsourceold": "aššil guna",
        "editlink": "fasal",
        "viewsourcelink": "aššil guna",
-       "editsectionhint": "Dumbu fasal:$1",
+       "editsectionhint": "Dumbu fasal: $1",
        "toc": "Gundekuna",
        "showtoc": "cebe",
        "hidetoc": "tugu",
        "viewsourcetext": "War ga hin ka dii moɲoo ašsiloo nda k'a bere:",
        "viewyourtext": "War ga hin ka dii <strong>war fasalyaney</strong> aššilo nda k'i bere:",
        "protectedinterface": "Moɲoo woo ka hantumoo cebe wikiyoo woo porogaramoo se nd'a ga jejebu hasaraw teekey ga. Goy nda [//translatewiki.net/ translatewiki.net], MediaWiki berandiyan porožewoo ka berandiyaŋ tonton wala k'i barmay.",
-       "editinginterface": "<strong>Yaamar:</strong> War goo ma moo fasal kaŋ nd'i ga goy ka goyjinaa porogaram hantumoo cebe. \nBarmay kaŋ ga tee moɲoo ka hantumey kaŋ goykaw ga dii y'ey bere wikiyoo woo ga. Goy nda [//translatewiki.net/ translatewiki.net], MediaWiki berandiyan porožewoo ka barmay wala berandiyaŋ tonton.",
+       "editinginterface": "<strong>Yaamar:</strong> War goo ma moo fasal kaŋ nd'i ga goy ka goyjinaa porogaram hantumoo cebe. \nBarmawey kaŋ ga tee moɲoo ka hantumey kaŋ goykaw ga dii y'ey bere wikiyoo woo ga.",
+       "translateinterface": "Ka berandiyan tonton wala k'i barmay, wa goy nda [//translatewiki.net/ translatewiki.net], MediaWiki berandiyan porožewoo.",
        "cascadeprotected": "Moɲoo woo ga jejebu barmayyan ga zam'a goo ne {PLURAL:$1|moo kaŋ ti|moɲey kaŋ ti}} jejebante nda \"kaŋandiyan\" suubari kaŋ ga dira: \n$2",
        "namespaceprotected": "War šii nda fondo ka moɲey barmay <strong>$1</strong> maadogoo ra.",
        "customcssprotected": "War šii nda fondo ka CSS moɲoo woo barmay zama goykaw tana foo boŋkayandiyaney g'a ra.",
        "resetpass-submit-loggedin": "Šennikufal barmay",
        "resetpass-submit-cancel": "Naŋ",
        "resetpass-wrong-oldpass": "Sohõda wala batuyan šennikufal laala.\nA ga hin ka tee war bay na šennikufaloo barmay wala batuyan wane taaga wiri.",
-       "resetpass-recycled": "Taare war šennikufaloo yeeti k'a tee affoo kaŋ nanti war sohõda šennikufaloo.",
-       "resetpass-temp-emailed": "War n' ka huruyan nda šiiyan ašariya kaŋ sanbandi bataga ra.\nKa huru ka timme, war ga hima ka šennikufal taaga dam ne:",
+       "resetpass-recycled": "Taare war šennikufaloo yeeti k'a tee affoo kaŋ nanti war sohõda šennikufaloo. \\",
+       "resetpass-temp-emailed": "War n' ka huruyan nda šiiyan ašariya kaŋ sanbandi bataga ra.\nKa huru ka timme, war ga hima ka šennikufal taaga dam ne: \\",
        "resetpass-temp-password": "Šiiyan šennikufal:",
        "resetpass-abort-generic": "Dobu foo no ka šennikufal barmayyanoo ganji.",
        "resetpass-expired": "War šennikulaloo waatoo ben. Wa šennikufal taaga dam ka huru.",
        "passwordreset-capture-help": "Nda war na bataa woo šilbay, batagaa (nda šiiyan šennikufal) ga cebe war se nd'a ga sanbandi goykaa do.",
        "passwordreset-email": "Bataga aderesu:",
        "passwordreset-emailtitle": "Kontu šilbawey {{SITENAME}} ga",
-       "passwordreset-emailtext-ip": "Boro foo (sanda war da, nda IP aderesu $1) ceeci ka war\n šenniufaloo barmay {{SITENAME}} ($4) se. Goykaa woo {{PLURAL:$3|kontoo ti}\n kaŋ ga hanga bataga aderesoo woo:\n\n $2\n\n{{PLURAL:$3|Šiiyan šennikufaloo woo|Šiiyan šennikufaley wey}}  ga buu {{PLURAL:$5|zaari foo|zaari}} ra.\nWar ga hima ka huru nda šennifulal taaga dam sohõ. Nda boro waani ka ceeci ka woo tee\n nda war honga war šennikufal žeenaa, nda war ši boona koyne\n ka šennikufal barmay,\n war ga hin ka šaawaroo woo murayy nda soobay ka goy nda war\n šennikufal žeenaa.",
+       "passwordreset-emailtext-ip": "Boro foo (sanda war da, nda IP aderesu $1) ceeci ka war\n šenniufaloo barmay {{SITENAME}} ($4) se. Goykaa woo {{PLURAL:$3|kontoo ti}\n kaŋ ga hanga bataga aderesoo woo:\n\n $2\n\n{{PLURAL:$3|Šiiyan šennikufaloo woo|Šiiyan šennikufaley wey}}  ga buu {{PLURAL:$5|zaari foo|zaari}} ra.\nWar ga hima ka huru nda šennifulal taaga dam sohõ. Nda boro waani ka ceeci ka woo tee\n nda war honga war šennikufal žeenaa, nda war ši boona koyne\n ka šennikufal barmay,\n war ga hin ka šaawaroo woo murayy nda soobay ka goy nda war\n šennikufal žeenaa. \\",
        "passwordreset-emailtext-user": "Goykaw $1 {{SITENAME}} wiri ka war sennikufaloo yeeti {{SITENAME}} se\n($4). Goykaa woo {{PLURAL:$3|kontoo ga|kontey ga}} marga nda nda bataga aderesoo woo:\n\n$2\n\n {{PLURAL:$3|Šiiyan šennikufaloo woo|Šiiyan šennikufaley wey}} ga buu {{PLURAL:$5|jirbi foo|jirbi $5}} ra.\nWar ga hima ka huru  nda šennikufal taaga suuba sohõ. Nda boro waani ka ceeci\n ka woo tee wala war ga honga wara šennikufal žeenaa nda war ši boona koyne\n k'a barma, war ga hin ka šaawaroo woo muray nda gaabandi ka goy nda war\n šennikufal žeenaa.",
        "passwordreset-emailelement": "Goykaw maa: $1\nŠiiyan šennikufal: $2",
        "passwordreset-emailsent": "Šennikufal yeetiyan bataga n' ka sanbandi war se.",
        "showpreview": "Moofuryan cebe",
        "showdiff": "Barmawey cebe",
        "blankarticle": "<strong>Yaamar:</strong> Moɲoo kaŋ war goo m'a tee t'ikoonu.\nNda war na \"{{int:savearticle}}\" naagu, moɲoo ga kaa ta tee bila nda gundekuna.",
-       "anoneditwarning": "<strong>Yaamar:</strong> War mana huru. Borey kul hin ka dii war IP aderesoo nda war na barmay kul tee. Nda war <strong>[$1 huru]</strong> wala <strong>[$2 kontu tee]</strong>, war barmawey ga hanga war goykaw maaɲoo bande, nda nafaw taney kul.",
+       "anoneditwarning": "<strong>Yaamar:</strong> War mana huru. Borey kul hin ka dii war IP aderesoo nda war na barmay kul tee. Nda war <strong>[$1 huru]</strong> wala <strong>[$2 kontu tee]</strong>, war barmawey ga hanga war goykaw maaɲoo bande, nda nafaw taney kul. \\",
        "anonpreviewwarning": "<em>War mana huru. Gaabuyan ga too war IP aderesoo ma jisandi moɲoo woo fasalyan taarikoo ra.</em>",
        "missingsummary": "<strong>Hongu:</strong> War mana barmay duurandi noo.\nWa \"{{int:savearticle}}\" naagu koyne, kul war barmaa ga gaabundi bila nd'affoo.",
        "missingcommenttext": "Wa feeriyan foo hantum ganda.",
        "subject-preview": "Teekaw|boŋžeeri moofuryan:",
        "blockedtitle": "Goykaa n' ka gagayandi",
        "blockedtext": "<strong>War goykaw maa wala IP aderesoo n' ka hode.</strong>\n\n$1 no k'a hode.\nDaliloo kaŋ a n'a noo ti <em>$2</em>.\n\n* Hode šintinoo: $8\n* Hode benantaa: $6\n* Boraa kaŋ š'a na hoderoo miile: $7\n\nWar ga hin ka hantum $1 wala [[{{MediaWiki:Grouppage-sysop}}|juwalkaa]] se ka hoderoo šennoo tee.\nWar ši hin ka bataga sanba nda \"email this user\" fondaa nda manti war bataga aderesu henna ka tabatandi war [[Special:Ibaayey|kontu ibaayey]] ra nd'i mana war gagay a ga. \nWar sohõda IP aderesoo to $3 nda hode šilbaa ti #$5.\nWa beene šilbawey kul dam hãayan bataga kaŋ war g'a tee ra.",
-       "autoblockedtext": "Haya na war IP aderesoo nga boŋše zama goykaw waani foo k'a ka goy, boro kaŋ $1 n'a hode.Daliloo kaŋ nondi ti:\n\n:<em>$2</em>\n\n* Hode šintinoo: $8\n* Hode benantaa: $6\n* Boraa kaŋ i n'a miile hodeyan se: $7\n\nLaasaabu kaŋ war ši hima ka goy nda \"email this user\" alhaaloo nda manti war mma bara nda bataga aderesu jisante war [[Special:Preferences|goykaw ibaayey]] ra nd'i mana war gagay ka goy nd'a.\n\nWar sohõda IP aderesoo ti $3 nda hodeyan šilbaa ti #$5.\nTaare wa šilbawey wey kul dam hãayan kul kaŋ war g'a sanba ra.",
+       "autoblockedtext": "War IP aderesoo hode nga boŋše zama goykaw waani foo k'a ka goy, boro kaŋ $1 n'a hode.\nDaliloo kaŋ noondi ti:\n\n:<em>$2</em>\n\n* Hode šintinoo: $8\n* Hode benantaa: $6\n* Boraa kaŋ i n'a miile hodeyan se: $7\n\nLaasaabu kaŋ war ši hima ka goy nda \"email this user\" alhaaloo nda manti war mma bara nda bataga aderesu jisante war [[Special:Preferences|goykaw ibaayey]] ra nd'i mana war gagay ka goy nd'a.\n\nWar sohõda IP aderesoo ti $3 nda hodeyan šilbaa ti #$5.\nTaare wa šilbawey wey kul dam hãayan kul kaŋ war g'a sanba ra.",
        "blockednoreason": "dalil kul šii",
        "whitelistedittext": "Taare $1 ka moɲey fasal.",
        "confirmedittext": "War ga hima ka war bataga aderesoo tabatandi jina ka moɲey fasal.\nWar bataga aderesoo tabatandi [[Special:Preferences|goykaw ibaayey]] ra.",
        "accmailtext": "Ɲaami-ra šennikufal kaŋ tee  [[User talk:$1|$1]] sanbandi $2 do. A ga hin ka barmay  <em>[[Special:ChangePassword|šennikufal barmay]] moɲoo ga </em> nda war ga huru.",
        "newarticle": "(Itaaga)",
        "newarticletext": "War hanga dobu kaŋ ka fatta moo foo kaŋ ši bara jina ga.\nKa moɲoo tee, soobay ka hantum ganda bataa ra ([$1 faaba moɲoo] guna ka bay ka tonton.\nNda war n' ka dere ka kaa ne, war ceecikaa <strong>banda</strong>butoŋoo naagu.",
-       "anontalkpagetext": "----\n<em>Kakaw moɲoo woo goo goykaw kaŋ maaɲoo ši bangay se, boro kaɲ mana kontu tee jina, wal'a ši a ka goy.</em>\nAdiši kal'ir ma goy nda hinna IP aderesu ka boraa alhaaloo tabatandi.\nIP aderesu dumoo woo ga hin ka žemnandi goykaw booboyaŋ game.\nNda war ti goykaw kaŋ maaɲoo ši bangay nda war ga tammahã kaŋ war ši kula nda šenney wey, [[Special:UserLogin/signup|kontu tee]] wala [[Special:UserLogin|huru]] ka ganji hiino war nda goykaw taney kaŋ šii nda maa ma birji cere ra.",
+       "anontalkpagetext": "----\n<em>Kakaw moɲoo woo goo goykaw kaŋ maaɲoo ši bangay se, boro kaɲ mana kontu tee jina, wal'a ši a ka goy.</em>\nAdiši kal'ir ma goy nda hinna IP aderesu ka boraa alhaaloo tabatandi.\nIP aderesu dumoo woo ga hin ka žemnandi goykaw booboyaŋ game.\nNda war ti goykaw kaŋ maaɲoo ši bangay nda war ga tammahã kaŋ war ši kula nda šenney wey, [[Special:UserLogin/signup|kontu tee]] wala [[Special:UserLogin|huru]] ka ganji hiino war nda goykaw taney kaŋ šii nda maa ma birji cere ra. \\",
        "noarticletext": "Hantum kul šii moɲoo woo ga sohõda.\nWar ga hin ka [Special:Search/{{PAGENAME}}|moɲoo woo maaɲoo ceeci]] moɲe jerey ra,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|moo={{FULLPAGENAMEE}}}} hantum himantey guna],\nwala [{{fullurl:{{FULLPAGENAME}}|teera=fasal}} moɲoo woo fasal]</span>.",
        "noarticletext-nopermission": "Hantum kul šii moɲoo woo ra sohõda.\nWar ga hin ka [[Special:Search/{{PAGENAME}}|moɲoo woo maaɲoo ceeci]] moɲey jerey ra wala <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|moo={{FULLPAGENAMEE}}}} cceci hantum himantey ra]</span>, amma war ši nda fondo ka moɲoo woo tee.",
        "missing-revision": "Filla #$1 moɲoo kaŋ maaɲoo ti \"{{FULLPAGENAME}}\" se ši bara.\n\nWoo ga doona ka tee nda boro hanga taariki dobu žeena banda kaŋ ga fatta moo tuusante ga.\nŠilbaywey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusuyan taariki] ra.",
        "continue-editing": "Koy fasal nungu here",
        "previewconflict": "Moofuryanoo woo ga tenji nda beene hantum fasalyan doo, z'a ga bangay nda war soobay k'a gaabu.",
        "session_fail_preview": "<strong>Alhaa naŋ! Ir mana hin ka war barmaa ka koy nda jine za goywaatoo bayhayey dere.</strong>\nTaare ceeci k'a tee koyne.\nNd'a ši koy hala sohõ, ceeci ka [[Special:UserLogout|fatta]] nda huru taaga.",
-       "session_fail_preview_html": "<strong>Alhaa naŋ! Ir mana hin ka war barmaa ka koy nda jine za goywaatoo bayhayey dere.</strong>\n\n<em>Zama {{SITENAME}} goo nda HTML gani ka dira, moofuryan mma tugu ka ganji i ma kaŋ JavaScript ga.</em>",
+       "session_fail_preview_html": "<strong>Alhaa naŋ! Ir mana hin ka war barmaa ka koy nda jine za goywaatoo bayhayey dere.</strong>\n\n<em>Zama {{SITENAME}} goo nda HTML gani ka dira, moofuryan mma tugu ka ganji i ma kaŋ JavaScript ga.</em>\n\n\\",
        "token_suffix_mismatch": "<strong>I wanji war barmaa ga zama war daykaa na tonbi harfey birji fasalyan tammaasaa ra.</strong>\nI wanji barmaa ga ka ganji moo hantumoo ma hasara.\nWoo ka tee waati kaŋ war ga goy nda maršin interneti-bande tokore goymee kaŋ ši nda maa.",
        "edit_form_incomplete": "<strong>Barmay takari jerey mana too feršikaa do; naagu ceeci hinka ka dii kaŋ war barmawey ga timme de war ma ceeci koyne.</strong>",
        "editing": "Goo ma $1 fasal",
        "nonunicodebrowser": "<strong>Yaamar: War ceecikaw ši Unicode kanbe.</strong>\nA workaround is in place to allow you to safely edit pages: Non-ASCII characters will appear in the edit box as hexadecimal codes.War ga hin ka šendaa woo koli nungu foo ra kaŋ naŋ war moɲey ma fasal nda saajaw. Harfey kaŋ manti ASCII ga bangay fasal bataa ra sanda ferši-iddu ašariyayaŋ.",
        "editingold": "<strong>Yaamar: War goo ma goy nda filla dumi žeena moɲoo woo se.</strong>\nNda war war n'a gaabu, barmawey kul kaŋ tee fillaa woo bandaa ga dere.",
        "yourdiff": "Zilayyaney",
-       "copyrightwarning": "Taare laasaabu kaŋ kanbuzaamey kul kaŋ tee {{SITENAME}} se ga tee sanda i n' ka fattandi $2 cire (dii $1 ka bay ka tonton).\nNda war ši baa war hantumoo ma barmay laala nd'a ma žemnandi forba, kul ma ši  a sanba ne.<br />\nWar ga allaahidu noo kaŋ war n'a hantum war boŋše, kaŋ war man'a bere ka kaa baytal doo for ga wala forba aššil tana.\n<strong>War ši goy-waani kul sanba bila nda alhaku koyey duɲeyanoo!</strong>",
+       "copyrightwarning": "Taare laasaabu kaŋ kanbuzaamey kul kaŋ tee {{SITENAME}} se ga tee sanda i n' ka fattandi $2 cire (dii $1 ka bay ka tonton).\nNda war ši baa war hantumoo ma barmay laala nd'a ma žemnandi forba, kul ma ši  a sanba ne.<br />\nWar ga allaahidu noo kaŋ war n'a hantum war boŋše, kaŋ war man'a bere ka kaa baytal doo for ga wala forba aššil tana.\n<strong>War ši goy-waani kul sanba bila nda alhaku koyey duɲeyanoo!</strong> \\",
        "copyrightwarning2": "Laasaabu kaŋ kanbuzaamawey kul kaŋ tee {{SITENAME}} se, hantumkaw fooyaŋ ga hin ki fasal, barmay wal'i k'i tuusu.\nNda war ši boona war hantumoo ma barmay laala, kul war ma ši a sanba ne. <br />\nWar ga allaahidu no kaŋ war n'a hantum war boŋše, wala k'a bere ka hun baytal nungu ga wala forba aššil tana (dii $1 ka bay ka tonton).\n<strong>War ma ši goy kul sanba bila nda hantumkey alhaku duɲeyanoo!</strong>",
        "longpageerror": "<strong>Firka: Hantumoo kaŋ sanbandi kuuroo ka sawa nda  {{PLURAL:$1|cebsi-ize $1}} long, kaŋ ga bisa {{PLURAL:$2|cebsi-ize $2}}.</strong>\nA ši hin ka gaabundi.",
-       "readonlywarning": "<strong>Yaamar: Bayhayahugoo",
+       "readonlywarning": "<strong>Yaamar: Bayhayahugoo \\",
+       "protectedpagewarning": "<strong>Yaamar: Moɲoo woo n' ka jejebandi hala goykey kaŋ goo nda juwalkaw fondo hinne ma hin k'a fasal.</strong>\nWar ceebandu taariki hantum kokorantaa ga fatta ne ganda šeede se:",
+       "semiprotectedpagewarning": "<strong>Laasaabu:</strong> Moɲoo woo n' ka jejebandi hala goykaw hantumantey hinne ma hin k'a fasal.\nCWar ceebandu taariki hantum kokorantaa ga fatta ne ganda šeede se:",
+       "cascadeprotectedwarning": "<strong>Yaamar:</strong> Moɲoo woo ga jejebandi hala goykey kaŋ goo nda juwalkaw fondo hinne ma hin k'a fasal zam'a ga jejebu kaŋandi-leetoo woo dumoo {{PLURAL:$1|moo|moɲey}} se:",
+       "titleprotectedwarning": "<strong>Yaamar: Moɲoo woo ga jejebandi hala [[Special:ListGroupRights|alhaku tabatanteyaŋ]] ga hima ka duwandi k'a tee.</strong>\nCeebandu taariki hantum kokorantaa ga fatta ne ganda šeede se:",
+       "templatesused": "{{PLURAL:$1|Leetoo|Leetey}} kaŋ zaandi moɲoo woo se:",
+       "templatesusedpreview": "{{PLURAL:$1|Leetoo|Leetey}} kaŋ cebandi moofuroo woo ra:",
+       "templatesusedsection": "{{PLURAL:$1|Leetoo|Leetey}} kaŋ bangay dunboo woo ra:",
+       "template-protected": "(jejebante)",
+       "template-semiprotected": "(jere-jejebante)",
+       "hiddencategories": "Moɲoo woo {{PLURAL:$1|dumi tugante$ 1}} no m'a may:",
+       "edittools": "<!-- Ne hantumoo ga cebandi fasal nda zijandi takarey cire. -->",
+       "edittools-upload": "-",
+       "nocreatetext": "{{SITENAME}} na fondaa kaŋ nda moo taagayaaŋ ga tee kankamandi.\nWar ga hin yee banda ka moo barante fasal, wala ka [[Special:UserLogin|huru wala kontu tee]].",
+       "nocreate-loggedin": "War ši nda fondo ka moo taagayaŋ tee.",
+       "sectioneditnotsupported-title": "Dunbu fasalyan ši koy ne",
+       "sectioneditnotsupported-text": "Dunbu fasalyan ši koy moɲoo woo ga.",
+       "permissionserrors": "Duɲeyan firka",
+       "permissionserrorstext": "War ši nda fondo ka woo tee, {{PLURAL:$1|daliloo woo|daliley wey}} se:",
+       "permissionserrorstext-withaction": "War ši nda fondo ka $2, {{PLURAL:$1|daliloo woo|daliley wey}} se:",
+       "recreate-moveddeleted-warn": "<strong>Yaamar: War goo ma moo foo kaŋ bay ka tuusandi tee taaga.</strong>\n\nWar ga hima ka laasaabu wal'a kubay nda war gaabandi ka moɲoo woo fasal.\nMoɲoo woo tuusuyan nda ganandiyan taarikoo ga fatta ne šeede se:",
+       "moveddeleted-notice": "Moɲoo n' ka tuusandi.\nMoɲoo tuusuyan nda ganandiyan taarikoo ga fatta ne ganda šeede ne.",
        "log-fulllog": "Ceebandu hantum kul guna",
        "edit-hook-aborted": "Delbu na fasalyanoo say.\nA mana fahamandiyan kul noo.",
        "edit-gone-missing": "Mana hin ka moɲoo taagandi.\nA ga hima an' ka tuusandi.",
        "postedit-confirmation-created": "Moɲoo n' ka tee.",
        "postedit-confirmation-restored": "Moɲoo n' ka willi.",
        "postedit-confirmation-saved": "War fasalyanoo n' ka gaabundi",
-       "edit-already-exists": "Mana hin ka moo taaga tee.Affoo no kaŋ ga bara.",
+       "edit-already-exists": "Mana hin ka moo taaga tee.\nA ga bara ka ben. \\",
        "defaultmessagetext": "Tilasu alhabar hantum",
        "content-failed-to-parse": "Mana hin ka $2 gundekuna fesu-fesu $1 takari se: $3",
        "invalid-content-data": "Gundekuna bayhaya laala",
        "content-not-allowed-here": "\"$1\" gundekuna ši koy moɲoo woo ga [[$2]]",
        "editwarning-warning": "Nda war na moɲoo naŋ, a ga hin ka tee barmawey kaŋ war n'i tee kul ga dere.\nNda war huru ka ben, war ga hin ka yaamaroo wii war ibaayey \"{{int:prefs-editing}}\" dunboo ra.",
-       "editpage-notsupportedcontentformat-title": "Gundekuna takari ši koy ne",
+       "editpage-notsupportedcontentformat-title": "Gundekuna takari ši koy ne \\",
        "editpage-notsupportedcontentformat-text": "Gundekuna takari $1 ši koy ne gundekuna takari $2 bande.",
        "content-model-wikitext": "wikihantum",
        "content-model-text": "hantum kaaray",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
-       "expensive-parserfunction-warning": "<strong>Yaamar:</strong> Moɲoo woo goo nda fesu-fesu goyjinay alhaali booboyaŋ.\n\nA ga hima ka bara nda {{PLURAL:$2|ciyari}} $2, {{PLURAL:$1| ciyari $1 bara sohõ}}.",
+       "duplicate-args-category": "Moɲey kaŋyaŋ ga goy nda yeddiyaŋ leeti ciyarey ra",
+       "duplicate-args-category-desc": "Moɲoo goo nda leeti ciyariyaŋ kaŋ ga goy nda yeddi fillayaŋ, sanda <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> wala code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
+       "expensive-parserfunction-warning": "<strong>Yaamar:</strong> Moɲoo woo goo nda fesu-fesu goyjinay alhaali booboyaŋ.\n\nA ši hima ka bara nda {{PLURAL:$2|ciyari}} $2, {{PLURAL:$1| ciyari $1 sohõ}}.",
        "expensive-parserfunction-category": "Moɲey kaŋ goo nda fesu-fesu goyjinay alhaali booboyaŋ",
        "post-expand-template-inclusion-warning": "<strong>Yaamar:</strong> Leeti azzaatoo ga hansa ka beeri.\nLeeti fooyaŋ mana tonton ne.",
        "post-expand-template-inclusion-category": "Moɲey kaŋyaŋ ra leeti ga ng'azzaatoo hoo.",
        "histlegend": "Zilayyan suubari: Arajo batawey šilbay fillawey se k'i deedandi, de ma dam butoŋ wala ganda butoŋ naagu.<br />\nŠilbayɲaa: <strong>({{int:cur}})</strong> = zilayyan nda filla kokorantaa, <strong>({{int:last}})</strong> = zilayyan nda filla bisantaa, <strong>{{int:minoreditletter}}</strong> = barmay kayna.",
        "history-fieldset-title": "Ceeci taariki",
        "history-show-deleted": "Tuusu hinne",
-       "histfirst": "ikul ižeenaa",
+       "histfirst": "ikul ižeenaa \\",
        "histlast": "ikul itaagaa",
        "historysize": "({{PLURAL:$1|cebsi $1}})",
        "historyempty": "(koonu)",
        "revdelete-edit-reasonlist": "Tuusu daliley fasal",
        "revdelete-offender": "Filla hantumkaw:",
        "suppressionlog": "Tuusu ceebandu taariki",
-       "suppressionlogtext": "Ganda maašeeda goo nda tuusarey nda hodeyaney kaŋ sabboo ti gundekuna kaŋ tugandi juwalkey se.\n Dii [[Special:BlockList|hode maašeeda]] maašeedaa se kaŋ tee sohõda goy barrantey nda hodantey se.",
+       "suppressionlogtext": "Ganda maašeeda goo nda tuusarey nda hodeyaney kaŋ sabboo ti gundekuna kaŋ tugandi juwalkey se.\n Dii [[Special:BlockList|hode maašeeda]] maašeedaa se kaŋ tee sohõda goy barrantey nda hodantey se.\n\\",
        "mergehistory": "Moo taarikey marga",
        "mergehistory-header": "Moɲoo woo ga naŋ war ma taarikoo fillawey marga aššil moo faa se k'a tee moo taaga.\nWar m'alhakiika kaŋ barmaa woo ga moo taarikoo faaba a ma cindi cere bande.",
        "mergehistory-box": "Moo hinka fillawey marga:",
        "mergehistory-submit": "Fillawey marga",
        "mergehistory-empty": "Filla kulyaŋ mana margandi.",
        "mergehistory-success": "[[:$1]] {{PLURAL:$3|filla}} $3 margandi ka boori ka tee [[:$2]].",
-       "mergehistory-fail": "Ši hin taariki margaroo tee, taare moo nda waati kayandiyaney guna ka boori.",
+       "mergehistory-fail": "Ši hin taariki margaroo tee, taare moo nda waati kayandiyaney guna ka boori. \\",
        "mergehistory-fail-toobig": "Ši hin ka taariki margaroo tee zam'a ga bisa {{PLURAL:$1|filla}} $1 kaŋ ga ganandi waati din.",
        "mergehistory-no-source": "$1 aššil moo ši bara.",
        "mergehistory-no-destination": "$1 toodoo moo ši bara.",
        "search-result-category-size": "{{PLURAL:$1|koydayze $1}} ({{PLURAL:$2|1 dumi-ize $2}}, {{PLURAL:$3|tuku $3}})",
        "search-redirect": "($1 bisandi)",
        "search-section": "($1 dunbu)",
+       "search-category": "(dumi $1)",
        "search-file-match": "(ga tenji nda tuku gundekuna)",
        "search-suggest": "War n' ka tammahãa: $1",
        "search-interwiki-caption": "Porože ɲayzey",
        "powersearch-remember": "Honga suubaroo hiino ceeciyaney se",
        "search-external": "Tarayhere ceeciyan",
        "searchdisabled": "{{SITENAME}} ceeciyan n' ka kayandi.\nWar ga hin ka ceeci nda Google waatoo woo ra.\nLaasaabu kaŋ ngi šilbawey {{SITENAME}} gundenaa se ga hima ižeenayaŋ.",
-       "search-error": "Firka bangay ceeciyan waate: $1",
+       "search-error": "Firka bangay ceeciyan waate: $1 \\",
        "preferences": "Ibaayey",
        "mypreferences": "Ibaayey",
        "prefs-edits": "Barmawey hinnaa:",
        "yourrealname": "Maa cimi:",
        "yourlanguage": "Šenni:",
        "yourvariant": "Gundekuna šenni fayante:",
-       "prefs-help-variant": "War šenni fayane wala hantum tenjandiyan ga gundekuna moɲey cebe wikiyoo woo ga.",
+       "prefs-help-variant": "War šenni fayane wala hantum tenjandiyan ga gundekuna moɲey cebe wikiyoo woo ga. \\",
        "yournick": "Kanbežeeri taaga:",
-       "prefs-help-signature": "Deedawey kaŋ goo",
+       "prefs-help-signature": "Deedawey kaŋ goo \\",
        "badsig": "Kanbežeeri gani laala.\nHTML kanjarey koroši.",
        "badsiglength": "War kanbežeeroo ga hansa ka kuu.\nA ši hima ka kuu ka bisa {{PLURAL:$1|harfu}} $1.",
        "yourgender": "Taka foo nda war ga baa ir ma war cee?",
        "gender-female": "Woy kaŋ ga wiki moɲey fasal",
        "prefs-help-gender": "Ibaayoo woo kanayandiyanoo ti suuba-haya.\nGoyjinay ga nda hinna ka goy ka šelaŋ war se nda ka war bayrandi boro tanayaŋ se nda woy-aru tammaasa henna.\nBoro kul ga hin ka dii alhabaroo woo.",
        "email": "Bataga",
-       "prefs-help-realname": "Maa cimi ti suuba-haya.\nNda war soobay ka woo noo, i g'a ka goy ka war goymiɲoo kayandi.",
+       "prefs-help-realname": "Maa cimi ti suuba-haya.\nNda war soobay ka woo noo, i g'a ka goy ka war goymiɲoo kayandi. \\",
        "prefs-help-email": "Bataga aderesu ti suuba-haya, amm'a ga waažibi šennikufal yeetiyan se, nda war dirŋa war šennikufaloo.",
        "prefs-help-email-others": "War ga hin ka soobay da ka boro tanayaŋ naŋ i ma bataga sanba war se dobu foo ga war goyksaw wala deede moɲoo ga.\nWar bataga aderesoo ši fatta nda waati kaŋ goykaw tanayaŋ hantum war se.",
        "prefs-help-email-required": "Bataga aderesu ga waažibi.",
        "userrights-groupsmember": "Kondayze:",
        "userrights-groupsmember-auto": "Kondayze tugante:",
        "userrights-groupsmember-type": "$1",
-       "userrights-groups-help": "War ga hin ka kondawey barmay goykey wey se ne:\n* Bata maasante maanaa ti goykaa goo kondaa din ra.\n* Bata bila nda maasa maanaa ti goykaa šii kondaa din ra.\n* Handaray * ga tammaasa kaŋ war ši hin ka kondaa kaa nda war ben k'a tonton, wal'a kaa.",
+       "userrights-groups-help": "War ga hin ka kondawey barmay goykey wey se ne:\n* Bata maasante maanaa ti goykaa goo kondaa din ra.\n* Bata bila nda maasa maanaa ti goykaa šii kondaa din ra.\n* Handaray * ga tammaasa kaŋ war ši hin ka kondaa kaa nda war ben k'a tonton, wal'a kaa.  \\",
        "userrights-reason": "Dalil:",
        "userrights-no-interwiki": "War ši nda fonda ka goykaw alhakey fasal wiki tanayaŋ ga.",
-       "userrights-nodatabase": "Bayhayhugu $1 ši bara wal'a šii gandaa ra.",
+       "userrights-nodatabase": "Bayhayhugu $1 ši bara wal'a šii gandaa ra. \\",
        "userrights-nologin": "War ga hima ka [[Special:UserLogin|huru]] nda juwalkaw kontu ka goykaw alhakey noo.",
        "userrights-notallowed": "War ši nda fondo ka goykey alhakey dam wala k'i kaa.",
        "userrights-changeable-col": "Kondawey kaŋ war ga hin k'i barmay",
        "right-createtalk": "Kakaw moɲey tee",
        "right-createaccount": "Goykaw kontu taagayaŋ tee",
        "right-minoredit": "Šilbay sanda barmay kaccuyaŋ",
-       "right-move": "Moɲey ganandi",
+       "right-move": "Moɲey ganandi \\",
        "right-move-subpages": "Moɲey ganandi nda ngi moɲiizey",
        "right-move-rootuserpages": "Linji goykaw moɲey ganandi",
        "right-move-categorypages": "Dumi moɲey ganandi",
        "right-purge": "Internti nungoo tugu dogoo leele moo bila nda tabatandiyan se",
        "right-autoconfirmed": "Ši kula nda IP-bande albaha dimma alkadarey",
        "right-bot": "Kaŋ ga tee sand'a ga goy nga boŋše",
-       "right-nominornewtalk": "Kaŋ ši nda barmay kaccuyaŋ kakaw moɲey ga ka too yaamar taagayaŋ ma bangay",
+       "right-nominornewtalk": "Kaŋ ši nda barmay kaccuyaŋ kakaw moɲey ga ka too yaamar taagayaŋ ma bangay \\",
        "right-apihighlimits": "Alkadar beeriyan dam API hãayaney ra",
        "right-writeapi": "Goy nda hantum API",
-       "right-delete": "Moɲey tuusu",
+       "right-delete": "Moɲey tuusu \\",
        "right-bigdelete": "Moɲey kaŋ goo nda taariki kukuyaŋ tuusu",
        "right-deletelogentry": "Ceebantu damhaya tabatanteyaŋ tuusu nd'i yeeri",
        "right-deleterevision": "Moo filla tabatanteyaŋ tuusu nd'i yeeri",
        "right-editmyuserjs": "War boŋ JavaScript tukey fasal",
        "right-viewmywatchlist": "War boŋ hawgayhayey guna",
        "right-editmywatchlist": "War boŋ hawgayhayey fasal. Laasaabu kaŋ teera fooyaŋ ga mooyaŋ tonton bila nda woo fondaa.",
-       "right-viewmyprivateinfo": "War boŋ sutura hayhayey guna (sanda bataga aderesu, maa cimi)",
+       "right-viewmyprivateinfo": "War boŋ sutura hayhayey guna (sanda bataga aderesu, maa cimi) \\",
        "right-editmyprivateinfo": "War boŋ sutura bayhayey fasal (sanda bataga aderesu, maa cimi)",
        "right-editmyoptions": "War boŋ ibaayey fasal",
        "right-rollback": "Cahã ka barmawey yeeti goykaw koraa kaŋ na moo naadirante foo fasal se",
        "right-markbotedits": "Barmawey kaŋ yeeti kul cebe sanda maršin berandiyaŋ",
-       "right-noratelimit": "Ši kula nda albaha dimma alkadarey",
+       "right-noratelimit": "Ši kula nda albaha dimma alkadarey \\",
        "right-import": "Moɲey zaa wiki tanayaŋ ga",
        "right-importupload": "Moɲey zaa tuku zijante foo ga",
        "right-patrol": "Šilbay kaŋ boro taney barmawey ga kurandi",
        "action-read": "moɲoo woo caw",
        "action-edit": "moɲoo woo fasal",
        "action-createpage": "moɲey tee",
-       "action-createtalk": "kakaw",
+       "action-createtalk": "kakaw \\",
        "action-createaccount": "goykaw kontoo woo tee",
        "action-history": "moɲoo woo taarikoo guna",
        "action-minoredit": "woo šilbay sanda barmay kaccu",
-       "action-move": "moɲoo woo ganandi",
+       "action-move": "moɲoo woo ganandi \\",
        "action-move-subpages": "moɲoo woo ganandi, nga moɲiizey da",
        "action-move-rootuserpages": "linji goykaw moɲey ganandi",
        "action-move-categorypages": "dumi moɲey ganandi",
        "action-movefile": "tukoo woo ganandi",
        "action-upload": "tukoo woo zijandi",
        "action-reupload": "hantum tuku barantaa woo boŋ",
-       "action-reupload-shared": "hantum tukoo woo boŋ jišidoo žemnante ga",
+       "action-reupload-shared": "hantum tukoo woo boŋ jišidoo žemnante ga \\",
        "action-upload_by_url": "tukoo woo zijandi ka hun URL foo ga",
        "action-writeapi": "goy nda hantum API",
        "action-delete": "moɲoo woo tuusu",
        "action-suppressrevision": "filla tugantaa woo filla nd'a yeeti",
        "action-suppressionlog": "suturu cebandu tiira guna",
        "action-block": "goykaa woo ganji a m'a barmay",
-       "action-protect": "jejebu alkadarey barmay moɲoo woo se",
+       "action-protect": "jejebu alkadarey barmay moɲoo woo se \\",
        "action-rollback": "cahã ka barmawey yeeri goykaw kokorantaa kaŋ na moo naadirantaa barmay se",
        "action-import": "moɲey zaa wiki tana foo ga",
        "action-importupload": "moɲey zaa tuku zijante foo ga",
        "minoreditletter": "m",
        "newpageletter": "N",
        "boteditletter": "b",
+       "unpatrolledletter": "!",
+       "number_of_watching_users_pageview": "[$1 goo ma {{PLURAL:$1|goykaa|goykey}} guna]",
        "rc_categories": "Kayandi dumey ga (i fay nda \"|\")",
        "rc_categories_any": "Affoo kul",
        "rc-change-size": "$1",
        "recentchangeslinked-feed": "Barmay kondantey",
        "recentchangeslinked-toolbox": "Barmay kondantey",
        "recentchangeslinked-title": "Barmay kondantey \"$1\" ga",
+       "recentchangeslinked-summary": "Ne ti barmawey kaŋ kokor ka tee moɲey kaŋ moɲey kaŋ dobandi moo tabatante ga (wala dumi tabatante foo moɲey).\nMoɲey kaŋ goo [[Special:Watchlist|war hawgayhayey ra]] ga tee <strong>hantum warga</strong>.",
+       "recentchangeslinked-page": "Moo maa:",
+       "recentchangeslinked-to": "Saadin cebe barmawey kaŋ tee moɲey kaŋ dobandi moo šilbantaa ga",
+       "upload": "Tukoo zijandi",
+       "uploadbtn": "Tukoo zijandi",
+       "reuploaddesc": "Zijandiyanoo naŋ nda willi zijandi takaddaa ga",
+       "upload-tryagain": "Tuku šilbayyan barmantaa sanba",
+       "uploadnologin": "Mana huru",
+       "uploadnologintext": "Taare $1 ka tukey zijandi",
+       "upload_directory_missing": "Zijandiyan fooloɲaŋoo ($1) ga kuma nda interneti feršikaa mana hin k'a tee.",
+       "upload_directory_read_only": "Feršikaa ši hin ka hantum zijandiyan fooloɲaŋoo ($1) ga.",
+       "uploaderror": "Zijandiyan firka",
+       "upload-recreate-warning": "<strong>Yaamar: Tuku nda maaɲoo din n' ka tuusandi wal'a ganandi.</strong>\n\nMoɲoo woo tuusuyan wala ganandiyan taarikoo ga fatta ne seede se:",
+       "uploadtext": "Goy nda ganda takaddaa ka tukey zijandi.\nKa dii tukey kaŋ bay ka zijandi wal'i ceeci, koy [[Special:FileList|tuku zijantey]] do, zijandi taagey ga hantumandi [[Special:Taariki/zijandi|zijandi taariki]], tuusuyaney kaŋ goo [[Special:Taariki/tuusu|tuusuyan taariki]].\n\nKa tuku foo dam moo ra, dobu foo ka goy takarey wey affoo ra:\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong> ka goy nda tukoo dumi timmantaa\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code></strong> ka goy nda 200 tonbi hayri willandiyan bata ra kanbe wowa hirroo ga nda \"alt text\" sanda šilbaa\n* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong> ka šerre ka tuku dobu bila nda tukoo ma cebandi",
+       "upload-permitted": "Tuku dumi duɲantey: $1.",
+       "upload-preferred": "Tuku dumi ibaayantey: $1.",
+       "upload-prohibited": "Tuku dumi mongantey: $1.",
+       "uploadlogpage": "Ceebandu tiiraa zijandi",
+       "uploadlogpagetext": "Ne ganda tuku zijante kokorantey maašeedaa.\nGuna ne [[Special:NewFiles|tukey taagey titilaa]]  \\",
+       "filename": "Tukumaa",
+       "filedesc": "Duurandi",
+       "fileuploadsummary": "Duurandi",
+       "filereuploadsummary": "Tuku barmawey:",
+       "filestatus": "Alhaku hantum assariya:",
+       "filesource": "Aššil:",
+       "ignorewarning": "Yaamar muray nda tukoo gabu de",
+       "ignorewarnings": "Yaamarey kul muray",
+       "minlength1": "Tukumaaɲey ga hima ka duu harfu foo nd'a jaase.",
+       "illegalfilename": "Tukumaa \"$1\" goo nda harfuyaŋ kaŋ ši nda goy moo maaɲes ra.\nTaare tuku maaɲoo barmay nda ceeci k'a zijandi koyne. \\",
+       "filename-toolong": "Tukumaaɲey ši hima ka kuu ka bisa cebsi 240. \\",
+       "badfilename": "Tukumaaɲoo n' ka barmay ka tee \"$1\".",
+       "filetype-mime-mismatch": "Tuku dobuyan \".$1\" ši tenji nda MIME maatantaa dumoo tukoo se ($2).",
+       "filetype-badmime": "Tukey nda MIME \"$1\" dumey ši nda fondo zijandiyan se.",
+       "filetype-bad-ie-mime": "Ši hin ka tukoo woo zijandi zama Internet Explorer n'a maate ka tee \"$1\" kaŋ ši nda fondo nd'a ga hin ka tee tuku hasaraw-teekaw dumi.",
+       "filetype-unwanted-type": "<strong>\".$1\"</strong> ti tuku dumi kaŋ ir ši ba g'a.\nIbaayi {{PLURAL:$3|tuku dumi|tuku dumey}} ti $2.",
+       "filetype-banned-type": "<strong>\".$1\"</strong> {{PLURAL:$4|manti ti tuku dumi duɲante|manti tuku dumi duɲanteyaŋ}}.\nFondo {{PLURAL:$3|tuku dumi ti|tuku dumey ti}} $2.",
+       "filetype-missing": "Tukoo ši nda dobu (sanda \".jpg\").",
+       "empty-file": "Tukoo kaŋ war n'a sanba ga koonu.",
+       "file-too-large": "Tukoo kaŋ war n'a sanba ka hansa ka beeri.",
+       "filename-tooshort": "Tukumaaɲoo ga hansa ka duura.",
+       "filetype-banned": "Tukoo dumoo n' ka barre.",
+       "verification-error": "Tukoo mana bisa tuku korošiyanoo ga.",
+       "hookaborted": "Dobu foo na barmaa kaŋ war ceeci k'a tee ganji.",
+       "illegal-filename": "Tukumaa mana duu fondo.",
+       "overwrite": "Tuku barantaa tuusuyanoo ši duu fondo.",
+       "unknown-error": "Firka šibayante foo bangay.",
+       "tmp-create-error": "Mana hin ka waati-duura tuku tee.",
+       "tmp-write-error": "Firka bangay waati-duura teeyan ra.",
+       "large-file": "A ga honnandi kaŋ tukey ši hima ga beeri ka bisa $1;\ntukoo woo ti $2.",
+       "largefileserver": "Tukoo ga beeri ka bisa dimmaa kaŋ se feršikaa soolu.",
+       "emptyfile": "A ga hima sanda tukoo kaŋ war n'a zijandi ga koonu.\nWoo aššiloo ga hin ka tee hantum firka tukumaaɲoo ra.\nTaare koroši wala war ga boona nda cimi ka tukoo woo zijandi.",
+       "windows-nonascii-filename": "Wikiyoo woo ši tukumaaɲey kaŋ goo nda cerecere harfu kanbe.",
+       "fileexists": "Tuku ga bara nda maaɲoo woo ka ben, guna <strong>[[:$1]]</strong> nda {{GENDER:|war}} ši alhakiika kaŋ war ga baa k'a barmay.\n[[$1|thumb]]",
+       "filepageexists": "Šilbayyan moɲoo tee ka ben moɲoo woo se ne <strong>[[:$1]]</strong>, amma tuku kul ši bara kaŋ goo nda maaɲoo woo.\nDuurandoo kaŋ war n'a hantum ši bangay šilbayyan moɲoo ga.\nKa too duurandoo ma bangay noodin, a ga waažibi war m'a barmay war boŋše.\n[[$1|thumb]]",
+       "fileexists-extension": "Tuku nda maa himakasine ga bara: [[$2|thumb]]\n* Tuku zijantaa maaɲoo: <strong>[[:$1]]</strong>\n* Tuku barantaa maaɲoo: <strong>[[:$2]]</strong>\nA ga hin ka tee kaŋ war ga boona ka maa fayante dam?",
+       "fileexists-thumbnail-yes": "Tukoo ga hima azzaati-nakasante bii <em>(thumbnail)</em>.\n[[$1|thumb]]\nTukoo kaŋ ti <strong>[[:$1]]</strong> koroši.\nNda tuku korosantaa ti bii follokaa nda nga ašsil azzaati, a ši waažibi kanbeboy-kuku bii ma zijandi.",
+       "file-thumbnail-no": "Tuku maaɲoo ga šintin nda <strong>$1</strong>.\nA ga hima sanda azzaati-nakasante bii <em>(thumbnail)</em>.\nNda war goo nda biyoo woo zijandi azzaati beeri ra, adiši tukumaaɲoo barmay.",
+       "fileexists-forbidden": "Tuku foo kaŋ goo nda maaɲoo woo ga bara ka ben, nd'a ši hin ka tuusandi./nNda war ga boona ka war tukoo zijandi hala sohõ, wa yee banda nda maa taaga zaa.\n[[File:$1|thumb|center|$1]]",
+       "fileexists-shared-forbidden": "Tuku foo kaŋ goo nda maaɲoo woo ga bara ka ben tuku žemnante jišidogoo.\nNda war ga boona ka war tukoo zijandi hala sohõ, wa yee banda nda maa taaga zaa.\n[[File:$1|thumb|center|$1]]",
+       "file-exists-duplicate": "Tukoo woo ti tuku-fillante {{PLURAL:$1|tukoo woo|tukey wey}} se:",
+       "file-deleted-duplicate": "Tukoo woo ([[:$1]]) himakašine n' ka bay ka tuusandi.\nWar ka hima ka tuku tuusuyan taarikoo jina hala war ga soobay k'a zijandi taaga.",
+       "file-deleted-duplicate-notitle": "Tukoo woo himakašine n' ka bay ka tuusandi, nda maaɲoo n' ka hun.\nWar ka hima ka boro foo hãa kaŋ ga hin ka tuku tuusante bayhaya guna ka misoo koroši jina hala war ga soobay k'a zijandi taaga.",
+       "uploadwarning": "Zijandiyan yaamar",
+       "uploadwarning-text": "Tuku šilbaa barmay ganda, de ma ceeci taaga.",
+       "savefile": "Tuku gaabu",
+       "uploaddisabled": "Zijandiyaney n' ka kay.",
+       "copyuploaddisabled": "Zijandiyan nda URL n' ka kay.",
+       "uploaddisabledtext": "Tuku zijandiyaney n' ka kay.",
+       "php-uploaddisabledtext": "Tuku zijandiyaney n' ka kay PHP ra.\nTaare file_uploads kayandiyanoo koroši.",
+       "uploadscripted": "Tukoo woo goo nda HTML wala šigira ašariya kaŋ ga hima kaŋ maanaa dere interneti ceecikaw se.",
+       "uploadscriptednamespace": "SVC tukoo woo goo nda maafarru \"$1\" kaŋ ši alhukum ra.",
+       "uploadinvalidxml": "XML kaŋ goo tuku zijantaa ra mana hin ka fesu-fesandi.",
+       "uploadvirus": "Tukoo goo nda wirisi!\nŠilbayhayey: $1",
+       "uploadjava": "Tukoo ti ZIP tuku kaŋ goo nda Java .class tuku.\nJava tukey zijandiyan ši duu fondo zama i ga hin ka saajaw-sahãnte jejebuhayey hoo.",
+       "upload-source": "Aššil tuku",
+       "sourcefilename": "Aššil tukumaa:",
+       "sourceurl": "Aššil URL:",
+       "destfilename": "Toodoo tukumaa:",
+       "upload-maxfilesize": "Tuku azzaati bebbeeri: $1",
+       "upload-description": "Tuku šilbayyan",
+       "upload-options": "Zijandiyan suubarey",
+       "watchthisupload": "Tukoo woo guna",
+       "filewasdeleted": "Maaɲoo woo tukoo bay ka zijandi ka ben nd'a tuusandi woodin bandaa ga.\nWar ga hima ka $1 guna jina hala war ga soobay k'a zijandi taaga. \\",
+       "filename-bad-prefix": "Tukoo kaŋ war goo ma zijandi maaɲoo ga šintin nda <strong>\"$1\"</strong>, kaŋ ti ši-šilbay maa kaŋ ga hinna biizaahayey ka doona ka noo ngi boŋše.\nWa maa suuba war tukoo se kaŋ g'a šilbay boryo. \\",
+       "filename-prefix-blacklist": " #<!-- zuwoo woo naŋ nga takaa ga --> <pre>\n# Nahawoo ti sanda:\n#   * Haya kaŋ hun \"#\" harfu foo do zuwoo benantaa ga ti daara\n#   * Zuu kaŋ ši koonu kul ti jinkanji tukumaaɲey se kaŋ  hinna biizaahayey g'a dam ngi boŋše\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # kanbe talfon tanayaŋ\nIMG # hankul haya\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- zuwoo woo naŋ nga takaa ga -->",
+       "upload-success-subj": "Zijandiyanoo boori",
+       "upload-success-msg": "War zijandiyanpp ka hun [$2] boori. A ga bara ne: [[:{{ns:file}}:$1]]",
+       "upload-failure-subj": "Zijandiyan šenday",
+       "upload-failure-msg": "Šenday foo bangay war zijandiyanoo ka hun [$2] ga:\n\n$1",
+       "upload-warning-subj": "Zijandiyan yaamar",
+       "upload-warning-msg": "Šenday foo bara war zijandiyanoo ka hun [$2] ga. War ga hima ka willi [[Special:Upload/stash/$1|zijandi takaddaa]] ga ka misoo hanse. to.",
+       "upload-proto-error": "Sanbayan fondo laala",
+       "upload-proto-error-text": "Mooray zijandiyan ga URL kaŋ ga šintin nda <code>http://</code> wala <code>ftp://</code> waažibandi.",
+       "upload-file-error": "Kunahere firka",
+       "upload-file-error-text": "Kunahere firka bangay waatoo kaŋ war ga ceeci ka waati-duura tuku tee feršikaa ga.\nHantum [[Special:ListUsers/sysop|administrator]] se.",
+       "upload-misc-error": "Zijandiyan firka šibayante",
+       "upload-misc-error-text": "Firka šibayante bangay zijandiyanoo waate.\nTaare wa koroši wala URL boryo no nd'a ga duwandi de wa ceeci koyne.\nNda šendaa ga dumi, hantum [[Special:ListUsers/sysop|juwalkaw foo]] se.",
+       "upload-too-many-redirects": "URL cindi nda bisandiyaŋ booboyaŋ",
+       "upload-http-error": "HTTP firka foo bangay: $1",
+       "upload-copy-upload-invalid-domain": "Zijandiyaney berantey ši bara zunbudogoo ga. \\",
+       "backend-fail-stream": "Mana hin ka \"$1\" tukoo mennandi. \\",
+       "backend-fail-backup": "Mana hin ka celle tee \"$1\" tukoo se.",
+       "backend-fail-notexists": "$1 tukoo ši bara.",
+       "backend-fail-hashes": "Mana hin ka duu tuku šilbay-duura deedandiyan se.",
+       "backend-fail-notsame": "Manti-himakašine tuku ga bara \"$1\" ga. \\",
+       "backend-fail-invalidpath": "\"$1\" manti jišidoo fondo henna.",
+       "backend-fail-delete": "Mana hin ka \"$1\" tuku tuusu.",
+       "backend-fail-describe": "Man hin ka bayhayabeeri barmay \"$1\" tuku se.",
+       "backend-fail-alreadyexists": "\"$1\" tukoo ga bara ka ben.",
+       "backend-fail-store": "Mana hin ka \"$1\" tuku jiši \"$2\" ga.",
+       "backend-fail-copy": "Mana hin ka \"$1\" tuku bere \"$2\" ga.",
+       "backend-fail-move": "Mana hin ka \"$1\" tuku ganandi \"$2\" ga.",
+       "backend-fail-opentemp": "Mana hin ka waati-duura tuku feeri.",
+       "backend-fail-writetemp": "Mana hin ka waati-duura tuusu. \\",
+       "backend-fail-closetemp": "Mana hin ka waati-duura daabu.",
+       "backend-fail-read": "Mana hin ka \"$1\" tuku caw.",
+       "backend-fail-create": "Mana hin ka \"$1\" tuku hantum.",
+       "backend-fail-maxsize": "Mana hin ka \"$1\" tuku hantum zam'a ga beeri nda {{PLURAL:$2|cebsi $2}}.",
+       "backend-fail-readonly": "Bandahere dabariɲaa \"$1\" jišidoo goo cawyan-de se sohõda. Daliloo kaŋ noondi ti: \"<em>$2</em>\"",
+       "backend-fail-synced": "\"$1\" tuku goo alhaali kaŋ ši tabati ra kunahere bandahere dabariɲaa jišidogoo gundoo ra",
+       "backend-fail-connect": "Mana hin ka dobu bandahere dabariɲaa \"$1\" jišidoo ga.",
+       "backend-fail-internal": "Firka šibayante bangay bandahere dabariɲaa \"$1\" jišidoo ra.",
+       "backend-fail-contenttype": "Mana hin ka gundekuna dumi tabatandi tukoo se ka jiši \"$1\" ga.",
+       "backend-fail-batchsize": "Bandahere jišidogoo n' ka duu margari nda tuku {{PLURAL:$1|goy}} $1; alkadaroo ti {{PLURAL:$2|goy}} $2.",
+       "backend-fail-usable": "Mana hin ka \"$1\" tuku caw wal'a hantum zama duɲeyaney ši wasa wala ngi fooloɲaŋey/suuney ga kuma.",
+       "filejournal-fail-dbconnect": "Mana hin ka dobu zaaritiira bayhayahugu \"$1\" bandahere jišidogoo se.",
+       "filejournal-fail-dbquery": "Mana hin ka taariki bayhayahugu taagandi \"$1\" bandahere jišidogoo se.",
+       "lockmanager-notlocked": "Mana hin ka \"$1\" feeri; a ši kufal.",
+       "lockmanager-fail-closelock": "Mana hin ka kufal tuku daabu \"$1\" se.",
+       "lockmanager-fail-deletelock": "Mana hin ka kufal tuku tuusu \"$1\" se.",
+       "lockmanager-fail-acquirelock": "Mana hin ka duu kufal \"$1\" se.",
+       "lockmanager-fail-openlock": "Mana hin ka kufal tuku feeri \"$1\" se.",
+       "lockmanager-fail-releaselock": "Mana hin ka kufal kaataray \"$1\" se.",
+       "lockmanager-fail-db-bucket": "Mana hin ka duu kufal bayhayahugu $1 bokotu wasante ra.",
+       "lockmanager-fail-db-release": "Mana hin ka kufalyaŋ kaataray $1 bayhayahugu ra.",
+       "lockmanager-fail-svr-acquire": "Mana hin ka duu kufaley $1 feršikaa ga.",
+       "lockmanager-fail-svr-release": "Mana hin ka kufaley kaataray $1 feršikaa ga.",
+       "zip-file-open-error": "Firka foo kubandi waatoo kaŋ tukoo ga feerandi ZIP gunarey se.",
+       "zip-wrong-format": "Tuku tabatantaa mana tee ZIP tuku.",
+       "zip-bad": "Tukoo laybu wala saadin a ga tee ZIP tuku kaŋ ši cawandi.\nA ši hin ka korosandi boryo saajaw se.",
+       "zip-unsupported": "Tukoo ti ZIP tuku kaŋ ga goy nda ZIP alhaaley kaŋ MediaWiki š'i kanbe.\nA ši hin ka korosandi boryo saajaw se.",
+       "uploadstash": "Margaroo zijandi",
+       "uploadstash-summary": "Moɲoo ka fondo noo tukey ga kaŋ ga zijandi wal'a goo ma zijandi, amm'i ši wallafandi wikiyoo ga jina. Tukey ši diyandi boro kul se kala goykaa kaŋ n'i zijandi.",
+       "uploadstash-clear": "Margari tukey koonandi",
+       "uploadstash-nofiles": "War ši nda margari tuku kul.",
+       "uploadstash-badtoken": "Teeraa woo mana ben, a ga tee zama waatoo ben kaŋ ra war alhakey ka hin ka barmay. Ceeci koyne.  \\",
+       "uploadstash-errclear": "Tukey tuusuyanoo mana tee ka boori.",
+       "uploadstash-refresh": "Tukey maašeedaa dam taaga",
+       "invalid-chunk-offset": "Gurunbu hibiyan laala",
+       "img-auth-accessdenied": "Huruyan mongu",
+       "img-auth-nopathinfo": "PATH_INFO ga kuma.\nWar feršikaa mana soolu alhabaroo woo bisandiyanoo se.\nSanda CGI-gorante no nd'a ši nd'a ši hin ka img_auth kanbe.\nSee https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
+       "img-auth-notindir": "Fondaa kaŋ hãandi ši zijandiyan fooloɲaa hansantaa ra.",
+       "img-auth-badtitle": "Ši hin ka maa henna cin ka hun \"$1\" ga.",
+       "img-auth-nologinnWL": "War mana huru nda \"$1\" ši bara maašeede kaaraa ra.",
+       "img-auth-nofile": "\"$1\" tuku ši bara.",
+       "img-auth-isdir": "War goo ceeci ka huru \"$1\" fooloɲaa ra.\nTuku fondo de ma koy.",
+       "img-auth-streaming": "\"$1\" mennandi.",
+       "img-auth-public": "Goymiɲoo img_auth.php se ga tukey fattandi ka hun boro wiki se.\nWikiyoo hansandi ka tee baytal wiki.\nSaajaw šifa se, img_auth.php n' ka kay.",
+       "img-auth-noread": "Goykaa ši nda fondo ka \"$1\"caw.",
+       "http-invalid-url": "URL laala: $1",
+       "http-invalid-scheme": "URL nda \"$1\" dabaroo ši nda gaakašinay.",
+       "http-request-error": "Firka šibayante na HTTP hãayanoo kaŋandi.",
+       "http-read-error": "HTTP cawyan firka",
+       "http-timed-out": "HTTP hãayan waatoo ben.",
+       "http-curl-error": "URL zaayan firka: $1",
+       "http-bad-status": "Šenday foo bangay HTTP hãayanoo waate: $1 $2",
+       "upload-curl-error6": "Mana hin ka too URL do",
+       "upload-curl-error6-text": "Mana hin ka too URL kaŋ noondi do.\nKoroši ka boori kaŋ URL ga boori nda nungo ga dira.",
+       "upload-curl-error28": "Zijandiyan waatoo ben",
+       "upload-curl-error28-text": "Nungoo gay hal'a ga tuuru.\nKoroši kaŋ nungoo ga dira, batu waati duura de ma ceeci koyne.",
        "license": "Duɲeyan:",
        "license-header": "Duɲeyan",
        "nolicense": "Haya kul mana suubandi",
        "listfiles_description": "Šilbayyan",
        "listfiles_count": "Dumey",
        "listfiles-show-all": "Biyey dumi žeeney goo no",
-       "listfiles-latestversion": "Sohõda dumoo",
+       "listfiles-latestversion": "Sohõda dumoo \\",
        "listfiles-latestversion-yes": "Ayyo",
        "listfiles-latestversion-no": "Kalaa",
        "file-anchor-link": "Tuku",
        "duplicatesoffile": " {{PLURAL:$1|tukoo ti fillante|tuku $1 ti fillanteyaŋ}} tukoo woo se ([[Special:FileDuplicateSearch/$2|bay ka tonton]]):",
        "sharedupload": "Tukoo woo hun $1 ga nda porože tanayaŋ ga hin ka goy nd'a.",
        "sharedupload-desc-there": "Tukoo woo hun $1 ga nda porože tanayaŋ ga hin ka goy nd'a.",
-       "sharedupload-desc-here": "Tukoo woo hun $1 ga nda porože tanayaŋ ga hin ka goy nd'a.\nŠilbayyan nga [$2 tuku šilbayyan moo] noodin ga cebe ne ganda.",
+       "sharedupload-desc-here": "Tukoo woo hun $1 ga nda porože tanayaŋ ga hin ka goy nd'a.\nŠilbayyan nga [$2 tuku šilbayyan moo] noodin ga cebe ne ganda. \\",
        "sharedupload-desc-edit": "Tukoo woo hun $1 ga nda porože tanayaŋ ga hin ka goy nd'a.\nA ga hin ka tee war ga boona ka šilbayyanoo fasal nga noodin [$2 tuku šilbayyan moo] ga.",
-       "sharedupload-desc-create": "Tukoo woo hun $1 ga nda porože tanayaŋ ga hin ka goy nd'a.\nA ga hin ka tee war ga boona ka šilbaa fasal noodin nda [$2 tuku šilbayyan moɲoo] ga.",
+       "sharedupload-desc-create": "Tukoo woo hun $1 ga nda porože tanayaŋ ga hin ka goy nd'a.\nA ga hin ka tee war ga boona ka šilbaa fasal noodin nda [$2 tuku šilbayyan moɲoo] ga. \\",
        "filepage-nofile": "Tukoo woo maakoyni kul ši bara.",
        "filepage-nofile-link": "Tukoo woo maakoyni kul ši bara, amma war ga hin ka nga [$1 zumandi].",
        "uploadnewversion-linktext": "Tukoo woo dumi taaga zijandi",
        "pageswithprop-prophidden-binary": "fondo-hinka mayray hinna tugante ($1)",
        "doubleredirects": "Bisandiyan fillantey",
        "doubleredirectstext": "Moɲoo woo ga mooyaŋ cebe kaŋ ga bisandi bisandiyan moo tanayaŋ ga./nSorro foo kul goo nda dobuyaŋ ijinaa ga nda bisandiyaŋ ihinkantoo ga, kaŋ ga doona ka tee \"real\" toodoo moɲoo kaŋ do bisandiyan jinaa ga hima ka sinja.\n Hantumey <del>gamžeerantey</del> kul aššiloo duwandi.",
+       "double-redirect-fixed-move": "[[$1]] n' ka ganandi.\nA n' ka  taagandi nga boŋše nda sohõ a ga bere [[$2]] ga.",
+       "double-redirect-fixed-maintenance": "Ga bereyan-hinka hanse ka hun [[$1]] ga [[$2]] here hawgayyan goy ra.",
+       "double-redirect-fixer": "Bereyan hansekaw",
+       "brokenredirects": "Bereyan kayrante",
+       "brokenredirectstext": "Doboo woo ga bere moo ši-baranteyaŋ here:",
+       "brokenredirects-edit": "fasal",
+       "brokenredirects-delete": "tuusu",
+       "withoutinterwiki": "Mooyaŋ bila šenni dobuyaŋ \\",
+       "withoutinterwiki-summary": "Moɲey wey ši dobu šenni dumi tanayaŋ ga.",
+       "withoutinterwiki-legend": "Jinkanji",
+       "withoutinterwiki-submit": "Cebe",
+       "fewestrevisions": "Moɲey nda filla kul ikaccey",
+       "nbytes": "{{PLURAL:$1|cebsi}} $1",
+       "ncategories": "{{PLURAL:$1|dumi}} $1",
+       "ninterwikis": "{{PLURAL:$1|interwiki}} $1",
+       "nlinks": "{{PLURAL:$1|dobu}} $1",
+       "nmembers": "{{PLURAL:$1|kondayze}} $1",
+       "nmemberschanged": "{{PLURAL:$2|kondayze}} $1 → $2 \\",
+       "nrevisions": "{{PLURAL:$1|filla}} $1",
+       "nviews": "{{PLURAL:$1|gunari}} $1 \\",
+       "nimagelinks": "Goyandi {{PLURAL:$1|moo}} ga",
+       "ntransclusions": "goyandi {{PLURAL:$1|moo}} 1",
+       "specialpage-empty": "Hunyan kulyaŋ ši bayrandiroo woo se.",
+       "lonelypages": "Moo alitimey",
+       "lonelypagestext": "Moɲey wey ši dobu ka hun wala kanandi ka tee moo tanayaŋ {{SITENAME}} ra.",
+       "uncategorizedpages": "Moɲey mana fayandi",
+       "uncategorizedcategories": "Dumey mana fayandi",
+       "uncategorizedimages": "Tukey mana fayandi",
+       "uncategorizedtemplates": "Leetey mana fayandi",
+       "unusedcategories": "Dumey mana goyandi",
+       "unusedimages": "Tukey mana goyandi",
+       "wantedcategories": "Dumi boonantey",
+       "wantedpages": "Moo boonantey",
+       "wantedpages-badtitle": "Maa laala hunyan kanandi ra: $1",
+       "wantedfiles": "Tuku boonantey",
+       "wantedfiletext-cat": "Tukey wey ga goyandi  amm'i ši bara. Tukey kaŋ ga hun jišidoo waaniyaŋ ra ga hin ka cebandi b'i ga bara. Deray-bangayrey wey dumey ga <del>tuusandi</del>. Woo banda ga, moɲey kaŋ ra tukey kaŋ ši bara goo ga hantumandi [[:$1]] ra.",
+       "wantedfiletext-cat-noforeign": "Tukey wey ga goyandi amm'i ši bara. Woo bandaa ga, moɲey kaŋ ra tukey kaŋ ši bara goo ga hantumandi [[:$1]] ra.",
+       "wantedfiletext-nocat": "Tukey wey ga goyandi amm'i ši bara. Tukey kaŋ ga hun jišidoo waaniyaŋ ra ga hin ka hantumandi b'i ga bara. Deray-bangayrey wey dumey ga <del>tuusandi</del>.",
+       "wantedfiletext-nocat-noforeign": "Tukey wey ga goyandi ba kaŋ i ši bara.",
+       "wantedtemplates": "Leeti boonantey",
+       "mostlinked": "Moɲey kaŋ ga šifa ka dobandi",
+       "mostlinkedcategories": "Dumi kaŋ ga šifa ka dobandi",
+       "mostlinkedtemplates": "Moɲey kaŋ ga šifa ka kanandi",
+       "mostcategories": "Moɲey nda dumi kul iboobey",
+       "mostimages": "Tukey kaŋ ka šifa ka dobandi \\",
+       "mostinterwikis": "Moɲey kaŋ goo nda interwiki kul iboobey",
+       "mostrevisions": "Moɲey nda filla kul iboobey",
+       "prefixindex": "Moɲey kul nda jinkanji",
+       "prefixindex-namespace": "Moɲey kul nda jinkanji ($1 maafarru)",
+       "prefixindex-strip": "Jinkanji kaa maašeede ra",
+       "shortpages": "Moo duurantey",
+       "longpages": "Moo kukey",
+       "deadendpages": "Moo fokantey",
+       "deadendpagestext": "Moɲey wey si dobu moo tanayaŋ ga {{SITENAME}} ra.",
+       "protectedpages": "Moo jejebantey",
+       "protectedpages-indef": "Jejebey kaŋ ši tabati hinne",
+       "protectedpages-summary": "Moɲoo woo ga moo baranteyaŋ cebe kaŋ ga jejebandi sohõda. Ka dii maaɲey kaŋ ga jejebu g'i gani i ma tee, guna [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
+       "protectedpages-cascade": "Jejebu kaŋantey hinne",
+       "protectedpages-noredirect": "Bereyaney tugu",
+       "protectedpagesempty": "Mooyaŋ kul si jejebandi nda kayandiyaney wey sohõda.",
+       "protectedpages-timestamp": "Waatilanba",
+       "protectedpages-page": "Moo",
+       "protectedpages-expiry": "Ga buu",
+       "protectedpages-performer": "Jejebuyan goykaw",
+       "protectedpages-params": "Jejebuyan kayandiyaney",
+       "protectedpages-reason": "Dalil",
+       "protectedpages-unknown-timestamp": "Šibayante",
+       "protectedpages-unknown-performer": "Goykaw šibayante",
+       "protectedtitles": "Maa jejebantey",
+       "protectedtitles-summary": "Moɲoo woo ga maayaŋ cebe kaŋ jejebu g'i ganji i ma tee sohõda. Ka dii moo barantey kaŋ ga jejebandi, guna [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
+       "protectedtitlesempty": "Maa kulyaŋ ši jejebandi nda kayandiyaney wey sohõda.",
+       "listusers": "Goykaw maašeede",
+       "listusers-editsonly": "Goykaw nda fasalyan hinne cebe",
+       "listusers-creationsort": "Fay teeyan han bande",
+       "listusers-desc": "Fay hinna zunbante bande",
+       "usereditcount": "{{PLURAL:$1|Barmay}} $1",
+       "usercreated": "{{GENDER:$3|Tee}} $1 hane $2 waate",
+       "newpages": "Moo taagey",
+       "newpages-username": "Goykaw maa:",
+       "ancientpages": "Moo kul ižeeney",
+       "move": "Ganandi",
+       "movethispage": "Moɲoo woo ganandi",
+       "unusedimagestext": "Moɲey wey ga bara amm'i mana kanandi moo kul ra.\nLaasaabu kaŋ interneti nungu tana kul ši dobu moo ga nda URL šerrante, nd'a ga hin ka tee maaɲoo ma huru ne ba a goo goy ra. \\",
+       "unusedcategoriestext": "Dumi moɲey wey ga bara, ba kaŋ moo wala dumi tana kul ši nd'i se goymee. \\",
+       "notargettitle": "Toodoo kul šii",
+       "notargettext": "War mana toodoo moo wala goykaw tabatandi ka goyoo woo tee.",
+       "nopagetitle": "Toodoo moo takaa woo kul šii",
+       "nopagetext": "Toodoo moɲoo kaŋ war n'a tabatandi ši bara.",
+       "pager-newer-n": "{{PLURAL:$1|itaaga $1}}",
+       "pager-older-n": "{{PLURAL:$1|ižeena $1}}",
+       "suppress": "Moofur",
+       "querypage-disabled": "Cerecere moɲoo woo  n' ka kayandi goysahã dalil se. \\",
+       "apihelp": "API faaba",
+       "apihelp-no-such-module": "Dunbu \"$1\" mana duwandi",
+       "booksources": "Citaabu aššiley",
+       "booksources-search-legend": "Citaabu aššil ceeci",
+       "booksources-isbn": "ISBN:",
+       "booksources-search": "Ceeci",
+       "booksources-text": "Ne ganda dobu maašeede ga fatta nungu tanayaŋ here kaŋ ga citaabu taaga nd'ižeenayaŋ neere, nd'a hima ga bara nda alhabar tontoni citaabey kaŋ war g'i ceeci ga:  \\",
+       "booksources-invalid-isbn": "ISBN lanbaa kaŋ huru ši hima ka boori; guna firkawey kaŋ ga hin tee hun aššil berandiyan ra.",
+       "specialloguserlabel": "Teekaw:",
+       "speciallogtitlelabel": "Toodoo (maa wala goykaw):",
+       "log": "Ceebandu taarikey",
+       "all-logs-page": "Baytal ceebandu taarikey kul",
+       "alllogstext": "{{SITENAME}} ceebandu taari barantey kul margantey.\nWar ga hin ka gunaroo kankamandi nda war ga taariki dumi, goykaw ma (harfu-azzaati hawgay), wala moo duwante (harfu-azzaati hawgay nga da se) suuba.",
+       "logempty": "Haya-ize tenjantey kul šii taarikoo ra.",
+       "log-title-wildcard": "Maaɲey kaŋ šintin nda hantumoo woo ceeci",
+       "showhideselectedlogentries": "Taariki hantum suubantey diiyanoo barmay \\",
+       "allpages": "Moɲey kul",
+       "nextpage": "Jine moɲoo ($1)",
+       "prevpage": "Moo bisantaa ($1)",
+       "allpagesfrom": "Moɲey cebe kaŋ ga šintin ne:",
+       "allpagesto": "Moɲey cebe kaŋ ga ben ne:",
+       "allarticles": "Moɲey kul",
+       "allinnamespace": "Moɲey kul (maafarru $1)",
+       "allpagessubmit": "Koy",
+       "allpagesprefix": "Moɲey nda jinkanji cebe:",
+       "allpagesbadtitle": "Moo maaɲoo kaŋ noondi ga laala wal'a goo nda šenni-game wala wiki-game jinkanji.\nA ga hin ka bara nda harfu foo wala hinna tana ši hin ka koy maaɲey ra.",
+       "allpages-bad-ns": "{{SITENAME}} ši nda \"$1\" maafarru.",
+       "allpages-hide-redirects": "Bisandiyaney tugu",
+       "cachedspecial-viewing-cached-ttl": "War goo ma dii moɲoo woo dumi tugante, kaŋ hin ka bara nda hala $1.",
+       "cachedspecial-viewing-cached-ts": "War goo ma dii moɲoo woo dumi tugante, kaŋ ga hima sand'a ma taagandi ka timme. \\",
+       "cachedspecial-refresh-now": "Dii ikoraa",
+       "categories": "Dumey",
+       "categoriespagetext": "Ne {{PLURAL:$1|dumoo goo nda|dumey  goo nda}} mooyaŋ wala hẽenandi haya.\n[[Special:UnusedCategories|Dumey kaŋ ši goy]] ga cebandi ne.\nDii da [[Special:WantedCategories|dumey kaŋ ga ceecandi]].",
+       "categoriesfrom": "Dumey cebe kaŋ ga šintin ne:",
+       "special-categories-sort-count": "fay kabu bande \\",
+       "special-categories-sort-abc": "fay abaca bande",
+       "deletedcontributions": "Goykaw kanbuzaama tuusantey",
+       "deletedcontributions-title": "Goykaw kanbuzaama tuusantey",
+       "sp-deletedcontributions-contribs": "kanbuzaamawey",
+       "linksearch": "Tarayhere dobey ceeci",
+       "linksearch-pat": "Noone ceeci:",
+       "linksearch-ns": "Maafarru:",
+       "linksearch-ok": "Ceeci",
+       "linksearch-text": "Baytal tammaasawey sanda \"*.wikipedia.org\" ga hin ka goyandi.\nMa bara nda, nd'a jaase, beene-alkadar nungu, sanda \"*.org\".<br />\n{{PLURAL:$2|fondo|fondawey}}: <code>$1</code> (tilasu ra bere http:// ga nda fondo kul mana tabatandi).",
+       "linksearch-line": "$1 ga dobu $2 ga",
+       "linksearch-error": "Baytal tammaasawey ga bangay zunbudoo maa šintinoo hinne ga.",
+       "listusersfrom": "Goykey cebe kaŋ ga šintin ne:",
+       "listusers-submit": "Cebe",
+       "listusers-noresult": "Goykaw kul mana duwandi.",
+       "listusers-blocked": "(hodante)",
+       "activeusers": "Goykey kaŋ goo mee ra",
+       "activeusers-intro": "Wey ti goykey kaŋ cindi goymee tana ra {{PLURAL:$1|jirbi}} $1 kaŋ kokor ra.",
+       "activeusers-count": "{{PLURAL:$1|teera}} $1 {{PLURAL:$3|jirbi|$3}} kaŋ kokor ra.",
+       "activeusers-from": "Goykey cebe kaŋ ga šintin ne:",
+       "activeusers-hidebots": "Maršin berekey tugu",
+       "activeusers-hidesysops": "Juwalkey tugu",
+       "activeusers-noresult": "Goykaw kul mana duwandi.",
+       "listgrouprights": "Goykaw kuray alhakey",
+       "listgrouprights-summary": "The following is a list of user groups defined on this wiki, with their associated access rights.\nA ga hin ka tee [[{{MediaWiki:Listgrouprights-helppage}}|alhabar tontoni]] ga bara boro alhakey ga.",
+       "listgrouprights-key": "Maana:\n* <span class=\"listgrouprights-granted\">Alhaku noontey right</span>\n* <span class=\"listgrouprights-revoked\">Alhaku  wanjantey</span>",
+       "listgrouprights-group": "Kuray",
+       "listgrouprights-rights": "Alhakey",
+       "listgrouprights-helppage": "Help:Kuray alhakey",
+       "listgrouprights-members": "(kondayzey maaɲey)",
+       "listgrouprights-right-display": "<span class=\"listgrouprights-granted\">$1 <code>($2)</code></span>",
+       "listgrouprights-right-revoked": "<span class=\"listgrouprights-revoked\">$1 <code>($2)</code></span>",
+       "listgrouprights-addgroup": "{{PLURAL:$2|Kuray}} tonton: $1",
+       "listgrouprights-removegroup": "{{PLURAL:$2|Kuray}} kaa: $1",
+       "listgrouprights-addgroup-all": "Kurawey kul tonton",
+       "listgrouprights-removegroup-all": "Kurawey kul kaa",
+       "listgrouprights-addgroup-self": "{{PLURAL:$2|Kuray}} tonton war boŋ kontoo ga: $1",
+       "listgrouprights-removegroup-self": "{{PLURAL:$2|Kuray}} kaa war boŋ kontoo ra: $1",
+       "listgrouprights-addgroup-self-all": "Kurawey kul tonton war boŋ kontoo ga",
+       "listgrouprights-removegroup-self-all": "Kurawey kul kaa war boŋ kontoo ra",
+       "listgrouprights-namespaceprotection-header": "Maafarru nakašiyaney",
+       "listgrouprights-namespaceprotection-namespace": "Maafarru",
+       "listgrouprights-namespaceprotection-restrictedto": "Alhakey kaŋ ga naŋ goykaa ma fasal",
+       "trackingcategories": "Kuryan dumey",
+       "trackingcategories-summary": "Moɲoo ga kuryan dumey cebe kaŋyaŋ ra MediaWiki porogaram huru nga boŋše. Maaɲey ga hin ka barmay nda dabari alhabar-teeyan n' ka barmay {{ns:8}} maafarroo ra.",
+       "trackingcategories-msg": "Kuryan dumi",
+       "trackingcategories-name": "Alhabar maa",
+       "trackingcategories-desc": "Dumi damyan daliley",
+       "noindex-category-desc": "Maršin gunakey ši moɲoo woo šilbay zam'a goo nda kotto kalimaa <code><nowiki>__NOINDEX__</nowiki></code> a ga nd'a goo maafarru ra kaŋ se yaamaroo din ga koy.",
+       "index-category-desc": "Moɲoo woo goo nda <code><nowiki>__INDEX__</nowiki></code> a ga (nd'a goo maafarru ra kaŋ se yaamaroo ka koy), adiši maršin gunakey g'i  šilbay nungu kaŋ ra a ši doona ka bara.",
+       "post-expand-template-inclusion-category-desc": "Moɲoo azzaatoo ga bisa <code>$wgMaxArticleSize</code> nda leetey kul hayandi ka ben, adiši leeti fooyaŋ ši hin ka hayandi koyne.",
+       "post-expand-template-argument-category-desc": "Moɲoo ga bisa <code>$wgMaxArticleSize</code> nda leeti deede foo hayandi ka ben (haya kaŋ goo kanbu hinza game, sanda <code>{{{Foo}}}</code>).",
+       "expensive-parserfunction-category-desc": "Moɲoo goo nda fesu-fesu moo caadayaŋ (sanda <code>#ifexist</code>). Guna [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+       "broken-file-category-desc": "Moɲoo goo nda tuku dobu kayra fee (dobu kaŋ kanandi tuku ra waati kaŋ tukoo ši bara).",
+       "hidden-category-category-desc": "Dumoo goo nda <code><nowiki>__HIDDENCAT__</nowiki></code> nga moo gundekunaa ra, kaŋ ga ganji a ma fatta dumi dobey bataa ra moɲey ga tilasu ra.",
+       "trackingcategories-nodesc": "Šilbayyan kul šii.",
+       "trackingcategories-disabled": "Dumi n' ka kayandi",
+       "mailnologin": "Manti sanba aderesu",
+       "mailnologintext": "War mma hima ka [[Special:UserLogin|huru]] nda ka bara nda bataga aderesu henna war [[Special:Preferences|ibaayey]] ra ka bataga sanba goykaw taney se.",
+       "emailuser": "Hantum goykaa woo se",
+       "emailuser-title-target": "Hantum {GENDER:$1|user}} woo se",
+       "emailuser-title-notarget": "Bataga goykaw",
+       "emailpage": "Bataga goykaw",
+       "emailpagetext": "War ga hin ka ganda takaddaa zaa ka bataga sanba {{GENDER:$1|goykaw}} se.\nBataga aderesoo kaŋ war n'a dam [[Special:Preferences|your user preferences]] ra mma bangay sanda \"From\" bataga aderesu, adiši duukaa ga hin ka war zaabi nga boŋ se.",
+       "defemailsubject": "{{SITENAME}} bataga kan hun \"$1\" do",
+       "usermaildisabled": "Goykaw bataga ši koy",
+       "usermaildisabledtext": "War ši hin ka bataga sanba goykaw taney se wikiyoo woo ga",
+       "noemailtitle": "Bataga aderesu kul šii",
+       "noemailtext": "Goykaa mana bataga aderesu henna kul tabatandi.",
+       "nowikiemailtext": "Goykaa ši boona ka duu bataga kaŋ hun goykaw taney do.  \\",
+       "emailnotarget": "Duukaa goykaw maaɲoo ši bara wal'a ši boori.",
+       "emailtarget": "Goykaw maa dam duukaa se",
+       "emailusername": "Goykaw maa:",
+       "emailusernamesubmit": "Sanba",
+       "email-legend": "Bataga sanba {{SITENAME}} goykaw tana se",
+       "emailfrom": "Hantumkaw:",
+       "emailto": "Duukaw:",
+       "emailsubject": "Dalil:",
+       "emailmessage": "Alhabar:",
        "emailsend": "sanba",
        "emailccme": "Ay batagaa sanba ya ne da",
        "emailccsubject": "War batagaa ga bere $1 ga: $2",
        "addedwatchtext-short": " \"$1\" moɲoo n' ka tontonandi war hawgayhayey ga.",
        "removewatch": "Kaa hawgayhayey ra",
        "removedwatchtext": " \"[[:$1]]\"  moɲoo  n' ka hun [[Special:Watchlist|war hawgayhayey]] ra.",
-       "removedwatchtext-short": "\"$1\" moɲoo n' ka hun war hawgayhayey ra.",
+       "removedwatchtext-short": "\"$1\" moɲoo n' ka hun war hawgayhayey ra. \\",
        "watch": "Hawgay",
        "watchthispage": "Moɲoo woo hawgay",
        "unwatch": "Ma ši hawgay",
        "unwatchthispage": "Feenda hawgayhayyan",
        "notanarticle": "Manti gundekuna moo",
-       "notvisiblerev": "Filla koraa kaŋ goykaw waani n'a tee n' ka tuusandi",
+       "notvisiblerev": "Filla koraa kaŋ goykaw waani n'a tee n' ka tuusandi \\",
        "watchlist-details": "{{PLURAL:$1|moo $1}} bara war hawgayhayey ra, deede moɲey ši kabu jere ga.",
        "wlheader-enotif": "Bataga bayrandiyan n' ka tunandi.",
        "wlheader-showupdated": "Moɲey kaŋ barmay za cee koraa kaŋ war n'i guna ga cebandi harfu <strong>warga</strong> ra.",
        "watcherrortext": "Firka bangay waatoo kaŋ war hawgayhayey kayandiyaney ga barmay \"$1\" se.",
        "enotif_reset": "Moo gunantey kul šilbay",
        "enotif_impersonal_salutation": "{{SITENAME}} goykaw",
-       "ilsubmit": "ceeci",
+       "enotif_subject_deleted": "$2 n' ka {{SITENAME}} $1 moɲoo {{GENDER:$2|tuusu}}",
+       "enotif_subject_created": "$2 n' ka {{SITENAME}} $1 moɲoo {{GENDER:$2|tee}}",
+       "enotif_subject_moved": "$2 n' ka {{SITENAME}} $1 moɲoo {{GENDER:$2|ganandi}}",
+       "enotif_subject_restored": "$2 n' ka {{SITENAME}} $1 moɲoo {{GENDER:$2|yeeri}}",
+       "enotif_subject_changed": "$2 n' ka {{SITENAME}} $1 moɲoo {{GENDER:$2|barmay}}",
+       "enotif_body_intro_deleted": "$2 n' ka {{SITENAME}} $1 moɲoo {{GENDER:$2|tuusu}} $PAGEEDITDATE ga, $2 k'a tee, guna $3 \\",
+       "enotif_body_intro_created": "$2 n' ka {{SITENAME}} $1 moɲoo {{GENDER:$2|tee}} $PAGEEDITDATE ga, $2 k'a tee, guna $3 sohõda fillaa se.",
+       "enotif_body_intro_moved": "$2 n' ka {{SITENAME}} $1 moɲoo {{GENDER:$2|ganandi}} $PAGEEDITDATE ga, $2 k'a tee, guna $3 sohõda fillaa se.",
+       "enotif_body_intro_restored": "$2 n' ka {{SITENAME}} $1 moɲoo {{GENDER:$2|yeeri}} $PAGEEDITDATE ga, $2 k'a tee, guna $3 sohõda fillaa se.",
+       "enotif_body_intro_changed": "$2 n' ka {{SITENAME}} $1 moɲoo {{GENDER:$2|barmay}} $PAGEEDITDATE ga, $2 k'a tee, guna $3 sohõda fillaa se.",
+       "enotif_lastvisited": "Dii $1 barmay kul se za war naarumi koraa ga \\",
+       "enotif_lastdiff": "Dii $1 ka barmaa woo guna.",
+       "enotif_anon_editor": "goykaw maatugante $1",
+       "enotif_body": "Dear $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nEditor's summary: $PAGESUMMARY $PAGEMINOREDIT\n\nContact the editor:\nmail: $PAGEEDITOR_EMAIL\nwiki: $PAGEEDITOR_WIKI\n\nThere will be no other notifications in case of further activity unless you visit this page while logged in. You could also reset the notification flags for all your watched pages on your watchlist.\n\nYour friendly {{SITENAME}} notification system\n\n--\nTo change your email notification settings, visit\n{{canonicalurl:{{#special:Preferences}}}}\n\nTo change your watchlist settings, visit\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nTo delete the page from your watchlist, visit\n$UNWATCHURL\n\nFeedback and further assistance:\n$HELPPAGE",
+       "created": "n' ka tee",
+       "changed": "n' ka barmay",
+       "deletepage": "Moɲoo tuusu",
+       "confirm": "Cimandi",
+       "excontent": "gundekuna bay ka ti: \"$1\" \\",
+       "excontentauthor": "gundekuna bay ka ti: \"$1\" (nda kanbuzaakaw follokaa bay ka ti \"[[Special:Contributions/$2|$2]]\")",
+       "exbeforeblank": "gundekuna tuusuyanoo se jine: \"$1\"",
+       "delete-confirm": "\"$1\" tuusu",
+       "delete-legend": "Tuusu",
+       "historywarning": "<strong>Yaamar:</strong> Moɲoo kaŋ war goo m'a tuusu goo nda taariki nda {{PLURAL:$1|filla}} $1:",
+       "confirmdeletetext": "War ga baa ka moo foo tuusu nda nga taariki timmantaa.\nCimandi kaŋ war ga boona ka woo tee, kaŋ war ga faham goybanawey se, nda kaŋ war goo ma woo tee [[{{MediaWiki:Policy-url}}|laadaa]] bande.",
+       "actioncomplete": "Teeraa timme",
+       "actionfailed": "Teeraa kaŋ",
+       "deletedtext": "\"$1\" n' ka tuusandi.\nDii $2 ka duu tuusuyan kokorantey taarikoo.",
+       "dellogpage": "Tuusuyan ceebandu tiira",
+       "dellogpagetext": "Ne ganda tuusuyan kokorantey maašeedaa.",
+       "deletionlog": "tuusuyan ceebandu tiira",
+       "reverted": "Yeeti filla bisantaa ga",
+       "deletecomment": "Dalil:",
+       "deleteotherreason": "Dalil tana/tontoni:",
+       "deletereasonotherlist": "Dalil tana",
+       "deletereason-dropdown": "* Common delete reasons\n** Spam\n** Vandalism\n** Copyright violation\n** Author request\n** Broken redirect",
+       "delete-edit-reasonlist": "Tuusuyan daliley fasal",
+       "delete-toobig": "Moɲoo goo nda fasal taariki bebbeeri, kaŋ ga bisa {{PLURAL:$1|filla}} $1.\nMoo tanayaŋ tuusuyan n' ka šendandi ka ganji {{SITENAME}} ma dere ka kay.",
+       "delete-warning-toobig": "Moɲoo goo nda fasal taariki bebbeeri, kaŋ ga bisa {{PLURAL:$1|filla}} $1.\nNga tuusuyanoo ga hin ka bayhaya goyey kayandi {{SITENAME}} ga.\n\\",
+       "deleteprotected": "War ši hin ka moɲoo woo tuusu zam'a ma jejebandi.",
+       "deleting-backlinks-warning": "'''Warning:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Moo taney]] ga dobu wal'i huru moɲoo kaŋ war ga baa k'a barmay dogoo ra.",
+       "rollback": "Yee banda fasalyaney \\",
+       "rollback_short": "Yee banda",
+       "rollbacklink": "yee banda",
+       "rollbacklinkcount": "{{PLURAL:$1|Fasalyan}} $1 yee banda",
+       "rollbacklinkcount-morethan": "Kaŋ ga bisa {{PLURAL:$1|fasalyan}} $1 yee banda",
+       "rollbackfailed": "Mana hin ka yee banda \\",
+       "cantrollback": "Ši hin la fasalyano willi;\nkanbuzaakaw koraa ti moɲoo woo hantumkaw follokaa",
+       "alreadyrolled": "Ši hin ka [[:$1]] barmay koraa kaŋ [[User:$2|$2]] n'a tee willi banda ([[User talk:$2|talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\n\n Barmay koraa kaŋ  [[User:$3|$3]] n'a tee moɲoo ga ([[User talk:$3|talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
+       "editcomment": "Fasal duurandoo: \"''$1''\".",
+       "revertpage": "[[User:$1|$1]] na barmawey kaŋ [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) n'i tee willi filla koraa ga",
+       "revertpage-nouser": "Reverted edits by a hidden user to last revision by {{GENDER:$1|[[User:$1|$1]]}}Goykaw tugante na barmawey willi filla koraa ga kaŋ {{GENDER:$1|[[User:$1|$1]]}} n'i tee",
+       "rollback-success": "Barmawey kaŋ $1 n'i willi;\n$2 n'i yeeti filla koraa ga. \\",
+       "sessionfailure-title": "Goywaati kayyan",
+       "sessionfailure": "A ga hima šenday foo na war huruyanoo kubay;\nteeraa woo n' ka kay saajaw sabbu se ka ganji boro ma war fondokosay.\nWilli moo bisantaa ga, moɲoo zumandi taaga de war ma ceei koyne.",
+       "protectlogpage": "Jejebuyan taariki",
+       "protectlogtext": "Ne ganda ti barmawey kaŋ tee moo jejebuyan ga.\nGuna [[Special:ProtectedPages|moo jejebante maašeede]] ka dii moo jejebu dabarey kaŋyaŋ ga dira sohõda.",
+       "protectedarticle": "jejebante \"[[$1]]\"",
+       "modifiedarticleprotection": "na jejebu alkadar barmay \"[[$1]]\" se",
+       "unprotectedarticle": "na jejebu kaa \"[[$1]]\" ga",
+       "movedarticleprotection": "na jejebeyan kayandiyaney kaa \"[[$2]]\" ga k'i dam \"[[$1]]\" do",
+       "protect-title": "Jejebu alkadar barmay \"$1\" se",
+       "protect-title-notallowed": "Jejebu alkadar guna \"$1\" se",
+       "prot_1movedto2": "[[$1]] gana [[$2]] do",
+       "protect-badnamespace-title": "Maafarru ši-jejebante",
+       "protect-badnamespace-text": "Moɲey kaŋ goo maafarroo woo ra ši hin ka jejebu.",
+       "protect-norestrictiontypes-text": "Moɲoo ši hin ka jejebu za saajaw dumey wey cine kul ši bara.",
+       "protect-norestrictiontypes-title": "Moo ši-jejebante",
+       "protect-legend": "Jejebuyan tabatandi",
+       "protectcomment": "Dalil:",
+       "protectexpiry": "Waatoo ga ben:",
+       "protect_expiry_invalid": "Benyan waati ga laybu.",
+       "protect_expiry_old": "Benyan waati n' ka bisa.",
+       "protect-unchain-permissions": "Jejebuyan suubari tontoniyaŋ feeri",
+       "protect-text": "Ne war ga hin ka dii jejebuyan alkadar wala k'a barmay moɲoo se <strong>$1</strong>.",
+       "protect-locked-blocked": "War ši hin ka jejebuyan alkadarey barmay nd'i n' ka hode.\nNe no sohõda kayandiyan goo <strong>$1</strong> moɲoo se:",
+       "protect-locked-dblock": "War ši hin ka jejebuyan alkadarey barmay za bayhaya kufal woo ga dira.\nNe no sohõda kayandiyan goo <strong>$1</strong> moɲoo se:",
+       "protect-locked-access": "War kontoo mana duɲe ka hin ka jejebuyan alkadarey barmay.\nNe no sohõda kayandiyan goo <strong>$1</strong> moɲoo se:",
+       "protect-cascadeon": "Moɲoo woo ga jejebandi sohõda zam'a ga kanandi ne {{PLURAL:$1|mo{{PLURAL:$1|moɲoo kaŋ goo nda|moɲey kaŋ goo nda}} jejebu kaŋante n' ka tunandi.\nBarmawey kaŋ tee moɲoo woo jejebuyan alkadaroo ga ši haya tee kaŋandi jejebu se. \\",
+       "protect-default": "Goykey kul noo fondo",
+       "protect-fallback": "Goykey kaŋ goo nda \"$1\" duɲeyan hinne noo fondo",
+       "protect-level-autoconfirmed": "Goykey kaŋ boŋ-tabatandi hinne noo fondo",
+       "protect-level-sysop": "Juwalkey hinne noo fondo",
+       "protect-summary-desc": "[$1=$2] ($3)",
+       "protect-summary-cascade": "kaŋandiyan",
+       "protect-expiring": "waati ga ben $1 (UTC) ga",
+       "protect-expiring-local": "waati ga ben $1 ga",
+       "protect-expiry-indefinite": "ši nda adadu",
+       "protect-cascade": "Moɲey kaŋ kanandi moɲoo woo ra jejebu (kaŋandiyan jejebu)",
+       "protect-cantedit": "War ši hin ka jejebuyan alkadarey barmay moɲoo woo se zama war mana duɲe k'a barmay.",
+       "protect-othertime": "Waati tana:",
+       "protect-othertime-op": "waati tana",
+       "protect-existing-expiry": "Benyan waati barante: $3, $2",
+       "protect-existing-expiry-infinity": "Benyan waati barante: ši nda adadu",
+       "protect-otherreason": "Dalil tana/tontoni:",
+       "protect-otherreason-op": "Dalil tana",
+       "protect-dropdown": "*Common protection reasons\n** Excessive vandalism\n** Excessive spamming\n** Counter-productive edit warring\n** High traffic page",
+       "protect-edit-reasonlist": "Jejebuyan daliley fasal",
+       "protect-expiry-options": "guuru 1:1 hour,zaari 1:1 day,jirbiyye 1:1 week,jirbiyye 2:2 weeks,handu 1:1 month, handu 3:3 months, handu 6:6 months,jiiri 1:1 year,ši nda adadu:infinite",
+       "restriction-type": "Duɲeyan:",
+       "restriction-level": "Huruyan-šenday alkadar:",
+       "minimum-size": "Azzaati kul ikacca",
+       "maximum-size": "Azzaati kul ibeeri",
+       "pagesize": "(cebsi hinna)",
+       "restriction-edit": "Fasal",
+       "restriction-move": "Ganandi",
+       "restriction-create": "Tee",
+       "restriction-upload": "Zijandi",
+       "restriction-level-sysop": "jejebu timmante",
+       "restriction-level-autoconfirmed": "jejebu jere",
+       "restriction-level-all": "alkadar kul",
+       "undelete": "Moo tuusantey guna",
+       "undeletepage": "Moo tuusantey guna k'i yeeti",
+       "undeletepagetitle": "<strong>Ne no filla tuusantey goo [[:$1|$1]]</strong> se.",
+       "viewdeletedpage": "Moo tuusantey guna",
+       "undeletepagetext": "{{PLURAL:$1|Moɲoo woo tuusandi amm'a| Moo $1 woo tuusandi amm'i}} cindi jišidogoo ra nd'a ga hin ka yeeti.\nWaati foo-foo kul jišidogoo ga hin ka koonandi.",
+       "undelete-fieldset-title": "Fillawey yeeti",
+       "undeleteextrahelp": "Moɲoo taariki timmantaa yeeti, maasa batawey kul kaŋ taŋandi naŋ nda <strong><em>{{int:undeletebtn}}</em></strong> naagu.\nKa yeetiyan suubanaa tee, batawey kaŋ ka tenji nda fillawey kaŋ ga hima ka yeeti, nda  šilbay <strong><em>{{int:undeletebtn}}</em></strong> naagu.",
+       "undeleterevisions": "{{PLURAL:$1|Filla}} $1 jisandi",
+       "undeletehistory": "Nda war na moɲoo yeeti, fillawey kul ga yeeti taarikoo ga.\nNda moo taaga n' ka tee maa folloka tuusayanoo band'a ga, filla willantey ga bangay taariki bisantaa ra. \\",
+       "undeleterevdel": "Tuusuyan naŋyan ga tee nd'a ga too beene moɲoo wala tuku filla jerooo ma tuusandi.\nMisey wey ra, war ga hin ka filla kokorantaa naŋ wal'a tugu.",
+       "undeletehistorynoadmin": "Moɲpp wpp n' ka tuusandi.\nTuusuyan daliloo ga cebandi ne ganda duurandoo ra, nda šilbayhaya da goykey se kaŋyaŋ na moɲoo woo fasal tuusuyan se jine.\nFilla tuusantey hantumoo hunday se ga bara juwalkey hinne se.",
+       "undelete-revision": "Filla tuusante $1 se (za $4, $5 waate) kaŋ $3 n'a tee:",
+       "undeleterevision-missing": "Filla laala wala kumante.\nWar ga hima ka bara nda dobu laala, wal'a ga tee fillaa n' ka yeeti wal'a ganandi ka hun jišidogoo ra.",
+       "undelete-nodiff": "Filla bisante kul mana duwandi.",
+       "undeletebtn": "Yeeti",
+       "undeletelink": "guna/yeeti",
+       "undeleteviewlink": "guna",
+       "undeleteinvert": "Suubaroo bere",
+       "undeletecomment": "Dalil:",
+       "undeletedrevisions": "{{PLURAL:$1|Filla $1}} n' ka yeeti",
+       "undeletedrevisions-files": "{{PLURAL:$1|Filla $1}} nda {{PLURAL:$2|tuku $2}} n' ka yeeti",
+       "undeletedfiles": "{{PLURAL:$1|Tuku $1}} n' ka yeeti",
+       "cannotundelete": "Tuusuyan naŋ kaŋ:\n$1",
+       "undeletedpage": "<strong>$1 n' ka yeeti</strong>\n\nGuna [[Special:Taariki/tuusu|tuusuyan taariki]] ka dii tuusuyan korawey nda yeetiyaney kaŋ jisandi.",
+       "undelete-header": "Guna [[Special:Taariki/tuusu|tuusuyan taarikoo]] moɲey kaŋ kokor ka tuusandi se.",
+       "undelete-search-title": "Moo tuusantey ceeci",
+       "undelete-search-box": "Moo tuusantey ceeci",
+       "undelete-search-prefix": "Cebe moɲey kaŋ ga šintin nda:",
+       "undelete-search-submit": "Ceeci",
+       "undelete-no-results": "Moo tenjante kul ši duwandi tuusuyan jišidogoo ra.",
+       "undelete-filename-mismatch": "Ši hin ka tuku filla naŋ nda hantumtanpoŋ $1: Tukumaa ši tenji.",
+       "undelete-bad-store-key": "Ši hin ka tuku filla tuusuyan nda waatitanpoŋ $1 naŋ: Tuku n' ma kuma tuusuyan se jine. \\",
+       "undelete-cleanup-error": "Jišidoo kaŋ-ši-dira tuku tuusuyan firka \"$1\".",
+       "undelete-missing-filearchive": "Ši hin ka tuku jšidoo $1 tammaasa yeeti zam'a ši bayhayahugoo ra.\nA ga tee nga tuusuyanoo hun ka ben.",
+       "undelete-error": "Moo tuusu naŋyan firka",
+       "undelete-error-short": "Moo tuusu naŋyan tuku: $1",
+       "undelete-error-long": "Firkayaŋ bangay waati kaŋ tuku tuusuyan hun.\n\n$1",
+       "undelete-show-file-confirm": "Alhakiika war ga boona ka dii filla tuusantaa \"<nowiki>$1</nowiki>\" tukoo se $2 hane $3 waate?",
+       "undelete-show-file-submit": "Ayyo",
+       "undelete-revision-row": "$1 $2 ($3) $4 . . $5 $6 $7 $8 $9",
+       "namespace": "Maafarru:",
+       "invert": "Suubaroo bere",
+       "tooltip-invert": "Bataa woo guna ka barmawey tugu kaŋ tee moɲey ga maafarru suubantaa game (nda maafarru kondantaa nd'a šilbandi)",
+       "namespace_association": "Maafarru šilbante",
+       "tooltip-namespace_association": "Bataa woo guna ka deedaa da dam wala maafarru kondantaa kaŋ goo maafarru suubantaa bande \\",
+       "blanknamespace": "(Boŋ)",
+       "contributions": "{{GENDER:$1|Goykaw}} kanbuzaamawey",
+       "contributions-title": "Goykaw kanbuzaamawey $1 se",
+       "mycontris": "Kanbuzaamawey",
+       "contribsub2": "{{GENDER:$3|$1}} ($2) se",
+       "contributions-userdoesnotexist": "Goykaw kontu \"$1\" maaɲoo mana hantumandi.",
+       "nocontribs": "Barmay kulyaŋ mana duwandi kaŋ ga tenji nda tammaasawey wey.",
+       "uctop": "(sohõda)",
+       "month": "Za handu (wal'a se jine):",
+       "year": "Za jiiri (wal'a se jine):",
+       "sp-contributions-newbies": "Kanbuzaamawey cebe kontu taagey hinne se",
+       "sp-contributions-newbies-sub": "Kontu taagey se",
+       "sp-contributions-newbies-title": "Goykaw kanbuzaamawey kontu taagey se",
+       "sp-contributions-blocklog": "margari taariki",
+       "sp-contributions-suppresslog": "goykaw kanbuzaamay munantey",
+       "sp-contributions-deleted": "goykaw kanbuzaamay tuusantey",
+       "sp-contributions-uploads": "zijandey",
+       "sp-contributions-logs": "taarikey",
+       "sp-contributions-talk": "deede",
+       "sp-contributions-userrights": "goykaw alhakey juwalyan",
+       "sp-contributions-blocked-notice": "Goykaa woo n' ka hodandi sohõda.\nMarga taariki hantum kokorantaa noondi ne ganda daaraa cire:",
+       "sp-contributions-blocked-notice-anon": "IP aderesoo woo n' ka hodandi sohõda.\nMarga taariki hantum kokorantaa noondi ne ganda daaraa cire:",
+       "sp-contributions-search": "Kanbuzaamawey ceeci",
+       "sp-contributions-username": "IP aderesu wala goykawmaa:",
+       "sp-contributions-toponly": "Barmawey hinne cebe kaŋ ti filla kokorantey",
+       "sp-contributions-newonly": "Barmawey hinne cebe kaŋ ti moo teeyaŋ",
+       "sp-contributions-submit": "Ceeci",
+       "whatlinkshere": "Kaŋ ga dobu ne",
+       "whatlinkshere-title": "Moɲey kaŋ ga dobu \"$1\" ga",
+       "whatlinkshere-page": "Moo:",
+       "linkshere": "Moɲey wey ga dobu <strong>[[:$1]]</strong> ga:",
+       "nolinkshere": "Mooyaŋ kul ši dobu <strong>[[:$1]]</strong> ga.",
+       "nolinkshere-ns": "Mooyaŋ kul ši dobu <strong>[[:$1]]</strong> ga maafarru suubantaa ra.",
+       "isredirect": "moo kuubi",
+       "istemplate": "kanandiyan",
+       "isimage": "tuku dobu",
+       "whatlinkshere-prev": "{{PLURAL:$1|bisante $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|jine $1}}",
+       "whatlinkshere-links": "← dobey",
+       "whatlinkshere-hideredirs": "kuubiri $1",
+       "whatlinkshere-hidetrans": "kanandiyan $1",
+       "whatlinkshere-hidelinks": "dobu $1",
+       "whatlinkshere-hideimages": "tuku dobu $1",
+       "whatlinkshere-filters": "Fayjinawey",
+       "autoblockid": "Boŋhodeyan #$1",
+       "block": "Hode goykaw",
+       "unblock": "Hodeyan-naŋ goykaw",
+       "blockip": "Hode {{GENDER:$1|goykaw}}",
+       "blockip-legend": "Hode goykaw",
+       "blockiptext": "Takadda goy ka hantum huruyan hode ka hun IP aderesu wala goykawmaa tabatante ga.\nWoo ga hima ka tee de ka hawandi-hasaraw ganji, woo goo [[{{MediaWiki:Policy-url}}|laada]] bande.\n Dalil tabatante noo ganda (sanda, moo tanayaŋ cee kaŋyaŋ hasaraw tee i ga).",
+       "ipaddressorusername": "IP aderesu wala goykawmaa",
+       "ipbexpiry": "Benyan:",
+       "ipbreason": "Dalil:",
+       "ipbreason-dropdown": "*Common block reasons\n** Inserting false information\n** Removing content from pages\n** Spamming links to external sites\n** Inserting nonsense/gibberish into pages\n** Intimidating behavior/harassment\n** Abusing multiple accounts\n** Unacceptable username",
+       "ipb-hardblock": "Goykaw hurantey ganji i ma barmay tee IP aderesoo woo ga",
+       "ipbcreateaccount": "Kontu teeyan ganji",
+       "ipbemailban": "Goykaw ganji a ma bataga sanba",
+       "ipbenableautoblock": "IP aderesu koraa kaŋ goykaw woo n'a ka goy ma hode nga boŋše, nda IP aderesu hanganteyaŋ kul kaŋ g'i ceeci ka barmay",
+       "ipbsubmit": "Goykaa woo hode",
+       "ipbother": "Waati tana:",
+       "ipboptions": "guuru 2:2 hours,zaari 1:1 day,zaari 3:3 days,jirbiyye 1:1 week,jirbiyye 2:2 weeks,handu 1:1 month,handu 3:3 months,handu 6:6 months,jiiri 1:1 year,ši ben:infinite",
+       "ipbhidename": "Goykaw tugu barmawey nda maašeedawey se",
+       "ipbwatchuser": "Goykaa woo goykaa nda deede moɲey hawgay",
+       "ipb-disableusertalk": "Goykaa woo ganji a ma ngi hunday deede moo barmay waati kaŋ a ga hodandi",
+       "ipb-change-block": "Goykaa nda kayandiyaney wey hode koyne",
+       "ipb-confirm": "Hodeyan tabatandi",
+       "badipaddress": "IP aderesu laala",
+       "blockipsuccesssub": "Hodeyan tee ka boori",
+       "blockipsuccesstext": "[[Special:Contributions/$1|$1]] n' ka hodandi.<br />\n[[Special:BlockList|Hode maašeede]] guna ka hodeyaney koroši.",
+       "ipb-blockingself": "War ga baa ka war boŋ hode! Alhakiika war ga boona ka woo tee?",
+       "ipb-confirmhideuser": "War ga baa ka goykaw hode kaŋ se \"hide user\" tunandi. Woo ga goykaw maaɲoo tuusu maašeedawey nda taariki hantumey kul ra. Alhakiika war ga boona ka woo tee?",
+       "ipb-confirmaction": "Nd'alhakiika kaŋ war ga boona k'a tee, \"{{int:ipb-confirm}}\" faaroo guna ne ganda.",
+       "ipb-edit-dropdown": "Hode daliley fasal",
+       "ipb-unblock-addr": "Hodeyan-naŋ $1 se",
+       "ipb-unblock": "Goykawmaa wala IP aderesu hodeyan naŋ",
+       "ipb-blocklist": "Hodeyan barantey guna",
+       "ipb-blocklist-contribs": "Kanbuzaamawey {{GENDER:$1|$1}} se",
+       "unblockip": "Hodeyan naŋ goykaa se",
+       "unblockiptext": "Goy nda ganda takadda ka hantum huruyan yeeti IP aderesu wala goykawmaa kaŋ hodandi ka bisa.",
+       "ipusubmit": "Hodeyanoo woo kaa",
+       "unblocked": "Hodeyan hun [[User:$1|$1]] ga.",
+       "unblocked-range": "Hodeyan hun $1 ga.",
+       "unblocked-id": "Hodeyan $1 n' ka hun.",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] hodeyanoo hun.",
+       "blocklist": "Goykaw hodantey",
+       "ipblocklist": "Goykaw hodantey",
+       "ipblocklist-legend": "Dii goykaw hodantey",
+       "blocklist-userblocks": "Kontu hodeyaney tugu",
+       "blocklist-tempblocks": "Waati-duura hodeyaney tugu \\",
+       "blocklist-addressblocks": "IP hodeyan follokey tugu",
+       "blocklist-rangeblocks": "Ganda hodeyaney tugu",
+       "blocklist-timestamp": "Waatitanpoŋ",
+       "blocklist-target": "Toodoo",
+       "blocklist-expiry": "Waati ga ben",
+       "blocklist-by": "Hodeyan juwalkaw",
+       "blocklist-params": "Hodeyan kayandiyaney",
+       "blocklist-reason": "Dalil",
+       "ipblocklist-submit": "Ceeci",
+       "ipblocklist-localblock": "Nungu hodeyan",
+       "ipblocklist-otherblocks": "Other {{PLURAL:$1|Hodeyan}} tana",
+       "infiniteblock": "ši ben",
+       "expiringblock": "waatoo ga ben $1 hane $2 waate",
+       "anononlyblock": "ši-nda-maa hinne",
+       "noautoblockblock": "boŋhodeyan hun",
+       "createaccountblock": "kontu teeyan hun",
+       "emailblock": "bataga ši koy",
+       "blocklist-nousertalk": "šĩ hin ka nga boŋ deede moo fasal",
+       "ipblocklist-empty": "Hodeyan maašeedaa ga koonu.",
+       "ipblocklist-no-results": "IP aderesoo wala gokawmaaɲoo wirantaa mana hodandi. \\",
+       "blocklink": "hode",
+       "unblocklink": "hodeyan naŋ",
+       "change-blocklink": "hodeyan barmay",
+       "contribslink": "kanbuzaamawey",
+       "emaillink": "bataga sanba",
+       "autoblocker": "Boŋhode zama war IP aderesoo n' ka kokor ka goyandi nda \"[[User:$1|$1]]\".\nDaliloo kaŋ noondi \"[[User:$1|$1]]\" hodeyanoo se ti \"$2\".\n\\",
+       "blocklogpage": "Hodeyan taariki",
+       "blocklog-showlog": "Goykaa woo n' ka bay ka hodandi.\nHodeyan taarikoo n' ka noondi ganda daaraa se:",
+       "blocklog-showsuppresslog": "Goykaw n' ka hodandi nda tuugandi ka bisa.\nTuuyan taariki ši noondi ne ganda daaraa se:",
+       "blocklogentry": "na [[$1]] hode nda benyan waati $2 $3 se",
+       "reblock-logentry": "na hode kayandiyaney barmay [[$1]] se nda $2 $3 benyan waati",
+       "blocklogtext": "Woo ti taariki goykaw hodeyan nda hode-naŋyan teerey se.\nNa IP aderesey hode mana hantumandi ngi boŋše.\nDii [[Special:BlockList|block list]] maašeedaa kaŋ tee sohõda goyyan barreyan nda hodeyaney se.",
+       "unblocklogentry": "$1 hodeyan naŋandi",
+       "block-log-flags-anononly": "goykey bila nda maa hinne",
+       "block-log-flags-nocreate": "kontu teeyan kay",
+       "block-log-flags-noautoblock": "boŋhodeyan kay",
+       "block-log-flags-noemail": "bataga kay",
+       "block-log-flags-nousertalk": "š hin ka boŋ deede moo fasal",
+       "block-log-flags-angry-autoblock": "boŋhodeyan bešere n' ka tunandi",
+       "block-log-flags-hiddenname": "goykaw tugante",
+       "range_block_disabled": "Juwalkaa hinoo ka hodeyan gandaa tee n' ka kay.",
+       "ipb_expiry_invalid": "Benyan waati laala.",
+       "ipb_expiry_temp": "Goykawmaa hodeyan tugante ga hima ka duumi.",
+       "ipb_hide_invalid": "Ši hin ka kontoo woo kaa; a goo nda {{PLURAL:$1|barmay $1}} nda bešere.",
+       "ipb_already_blocked": "\"$1\" n' ka hode ka ben.",
+       "ipb-needreblock": "$1 n' ka hode ka ben. War ga boona ka kayandiyaney barmay?",
+       "ipb-otherblocks-header": "{PLURAL:$1|Hode}} tana",
+       "unblock-hideuser": "War ši hin ka goykaa woo hodeyan naŋ, za ngi goykawmaaɲoo n' ka tugandi.",
+       "ipb_cant_unblock": "Firka: Hodeyan tammaasa $1 mana duwandi. Nga hodeyan ga hima ka hun ka ben. \\",
+       "ipb_blocked_as_range": "Firka: IP aderesu $1 ši šerre ka hode nda nga hodeyanoo ši hin ka hun.\nAmma a n' ka hodandi ka tee $2 ganda, affoo kaŋ hodeyanoo ši hin ka hun.",
+       "ip_range_invalid": "IP ganda laala.",
+       "ip_range_toolarge": "Ganda hodeyaney kaŋ ga beeri ka bisa /$1 ši duɲandi.",
+       "proxyblocker": "Tokore hodekaw",
+       "proxyblockreason": "War IP aderesoo n' ka hode zam'a ši nda tokore feeranta.\nHantum war kondaa interneti nookey wala faaba goykey se ka saajaw mise šendaa woo alhabaroo toonandi i do.",
+       "sorbs": "DNSBL",
+       "sorbsreason": "War IP aderesoo ga hantumandi ka tee sanda tokore feeranta DNSBL ra kaŋ {{SITENAME}} g'a ka koy.",
+       "sorbs_create_account_reason": "War IP aderesoo ga hantumadi ka tee sanda tokore feeranta DNSBL ra kaŋ {{SITENAME}} g'a ka goy.\nWar ši hin ka kontu tee.",
+       "xffblockreason": "IP aderesu kaŋ ga bara bondeke šikkante ra, a ga tee war wanoo wala tokore feršikaw foo kaŋ nda war ga goy wane, n' ka hode. Ašsil hodeyan daliloo bay ka tee: $1",
+       "cant-see-hidden-user": "Goykaa kaŋ war ga ceeci k'a hode n' ka hodandi nda tugandi ka ben.\nKaŋ war ši nda tugu-goykaw fondo, war ši hin dii goykaw hodeyanoo wal'a fasal.",
+       "ipbblocked": "War ši hin ka goykaw taney hode wal'i naŋ zama war hunday n' ka hodandi.",
+       "ipbnounblockself": "War ši nda fondo ka boŋ hodeyanoo kaa.",
+       "lockdb": "Bayhayahugu kufal",
+       "unlockdb": "Bayhayahugu kufal-feeri",
+       "lockdbtext": "Bayhayahugu kufalyan ka goykey kul ganji i ma hin ka moɲey fasal, ngey ibaayey barmay, hawgayhayey fasal, wala haya tanayaŋ kaŋ ga baa barmay bayhayahugoo ra.\nTabatandi taare kaŋ woo no war ga anniya k'a tee, nda kaŋ war ga bayhayahugu kufal feeri waati kaŋ war alhaadimaa ben.",
+       "unlockdbtext": "Bayhayahugu kufal-feeriyan ka too koyne kaŋ goykey kul ma hin ka moɲey fasal, ngey ibaayey barmay, hawgayhayey fasal, wala haya tanayaŋ kaŋ ga baa barmay bayhayahugoo ra.\nTabatandi taare kaŋ woo no war ga anniya k'a tee.",
+       "lockconfirm": "Ayyo, alhakiika ay ga baa ya bayhayhugoo kufal.",
+       "unlockconfirm": "Ayyo, alhakiika ay baa ya bayhayahugoo feeri.",
+       "lockbtn": "Bayhayhugu kufal",
+       "unlockbtn": "Bayhaya hugu feeri",
+       "locknoconfirm": "War mana tabatandiyan bataa maasa.",
+       "lockdbsuccesssub": "Bayhayahugu kufalyan tee ka boori",
+       "unlockdbsuccesssub": "Bayhayahugu kufaloo hun",
+       "lockdbsuccesstext": "Bayhayahugoo n' ka kufan.<br />\nHonga ka [[Special:UnlockDB|kufaloo ka]] nda war alhaadimaa timme.",
+       "unlockdbsuccesstext": "Bayhayahugu kufaloo n' ka feera.",
+       "lockfilenotwritable": "Bayhayahugu kufal tukoo ši tuusandi.\nKa bayhayhugoo kufal wala k'a feeri, a ga hima ka tee woo affoo kaŋ interneti feršikaw ka hin k'a tuusu. \\",
+       "databasenotlocked": "Bayhayahugoo mana kufal.",
+       "lockedbyandtime": "({{GENDER:$1|$1}} n'a tee $2 hane $3 waate)",
+       "move-page": "$1 ganandi",
+       "move-page-legend": "Moɲoo ganandi",
+       "movepagetext": "Ne ganda takaddaa goyyanoo ga moɲoo maaɲoo barmay, ka nga taarikoo kul ganandi maa taagaa here.\nMaa žeenaa ka tee kuubiyan moo maa taagaa se.\nWar ga hin ka kuubiyaney taagandi k'i sinji aššil maaɲoo ga ngi boŋše.\nNda war ši woo tee nd'anniya, wa [[Special:DoubleRedirects|kuubiyan fillantey]] wala [[Special:BrokenRedirects|ikayrantey]] koroši boryo.\nWar allamaanaa woo kaŋ dobey ma gaabandi alhakiika ra ka sinja nungey kaŋ i ga hima ga koy ga.\n\nLaasaabu kaŋ moɲoo <strong>ši</strong> ganandi nda moo foo ga bara maa taagaa cire ka ben, nda manti ikoraa ti kuubiyan nd'a ši nda fasal taariki bisante,\n\n<strong>Yaamar!</strong>\nWoo ga hin ka ti barmay gaabante kaŋ boro ši a tammahãa moo maakoyni se;\n w'alhakiika war ga faham misoo benantaa se jina nda war ga koy jine.",
+       "movepagetext-noredirectfixer": "\n<strong>Yaamar!</strong>\nWoo ga hin ka ti barmay šenda kaŋ boro si a tammahã moo maakoyni se;\nwar m'alhakiika kaŋ war ga faham misoo benantaa jina nda war baa ka goy jine.",
+       "movepagetalktext": "Deede moo kondantaa ši ma ganandi nga boŋše jinehere <strong> nda manti:</strong>\n*Deede moo kaŋ ši koonu ga bara ka ben moo taagaa cire, wala\n*War na maasaa ka ne ganda bataa ga.\n\nMise taney din ra, war ga hima ka moɲoo ganandi wal'a margandi war boŋše nda war ga baa.",
+       "movearticle": "Moɲoo ganandi:",
+       "moveuserpage-warning": "<strong>Yaamar:</strong> War ga baa ka goykaw moo foo ganandi. Laasaabu kaŋ moɲoo hinne ma ganandi nda kaŋ goykaa <em> ši </em> maa taaga zaa.",
+       "movecategorypage-warning": "<strong>Yaamar:</strong> War ga baa ka dumi moo foo ganandi. Laasaabu kaŋ moɲoo ga ganandi nda mooyaŋ kul kaŋ ga bara dumi žeenaa ra <em>ši</em> huru dumi taagaa woo ra.",
+       "movenologintext": "War mma hima ka tee goykaw hantumante nda [[Special:UserLogin|hurante]] ka moɲoo ganandi.",
+       "movenotallowed": "War ši nda duɲeyan kul ka moɲey ganandi.",
+       "movenotallowedfile": "War ši nda duɲeyan kul ka tukey ganandi.",
+       "cant-move-user-page": "War ši nda duɲeyan kul ka goykaw moɲey ganandi (nda manti moo-izey).",
+       "cant-move-to-user-page": "War ši nda duŋeyan kul ka moo foo ganandi goykaw moo here (nda manti goykaw moo-izey).",
+       "cant-move-category-page": "War ši nda duɲeyan kul ka dumi moɲey ganandi.",
+       "cant-move-to-category-page": "War ši nda duɲeyan kul ka moo foo ganandi dumi moo here.",
+       "newtitle": "Maa taaga here:",
+       "move-watch": "Aššil moo nda toodoo moo hawgay \\",
+       "movepagebtn": "Moɲoo ganandi",
+       "pagemovedsub": "Ganandiroo tee ka boori",
+       "movepage-moved": "<strong>\"$1\" n' ka ganandi \"$2\"</strong> here",
+       "movepage-moved-redirect": "Kuubiyan foo n' ka tee.",
+       "movepage-moved-noredirect": "Kuubiyan foo teeroo n' ka tuusandi.",
+       "articleexists": "Moo foo ga bara nda maaɲoo woo ka ben, wala maaɲɲoo kaŋ war n'a suuba ši boori.\nMaa taaga suuba taare.",
+       "cantmove-titleprotected": "War ši hin ka moɲoo ganandi gorodogoo woo ra zama maa taaga ga jejebe teeyan ga",
+       "movetalk": "Deede moo kondante ganandi",
+       "move-subpages": "Moo-izey ganandi (hala $1)",
+       "move-talk-subpages": "Deede moɲoo moo-izey ganandi (hala $1)",
+       "movepage-page-exists": "$1 moo ga bara ka ben nd'a ši hin ka tuusandi nga boŋše.",
+       "movepage-page-moved": "$1 moɲoo n' ka ganandi $2 do.",
+       "movepage-page-unmoved": "$1 moɲoo mana hin ka ganandi $2 do.",
+       "movepage-max-pages": "{{PLURAL:$1|Moo}} $1 ti fellaa kaŋ ganandi nda ši ganandi koyne nga boŋše.",
+       "movelogpage": "Ceebandu taariki ganandi",
+       "movelogpagetext": "Ne ganda ti maašeede moo ganarey kul se.",
+       "movesubpage": "{{PLURAL:$1|Moo-ize|Moo-izey}}",
+       "movesubpagetext": "Moɲoo goo nda {{PLURAL:$1|moo-ize}} $1 kaŋ cebandi ne ganda.",
+       "movenosubpage": "Moɲoo woo ši nda moo-izeyaŋ.",
+       "movereason": "Dalil:",
+       "revertmove": "yeeti",
+       "delete_and_move": "Tuusu nda ganandi",
+       "delete_and_move_text": "== Tuusuyan tuusante ==\nToodoo moo \"[[:$1]]\" ga bara ka ben.\nWar ga boona k'a tuusu ka fondaa naŋ ganaroo se?",
+       "delete_and_move_confirm": "Ayyo, moɲoo tuusu",
+       "delete_and_move_reason": "A tuusandi ka fondaa naŋ ganaroo se ka hun \"[[$1]]\" ga",
+       "selfmove": "Aššil nda toodoo maaɲey ti affollokaa;\nmoo ši hin ka ganandi nga boŋ here.",
+       "immobile-source-namespace": "Ši hin ka moɲey ganandi \"$1\" maafarroo ra.",
+       "immobile-target-namespace": "Ši hin ka moɲey ganandi ka huru \"$1\" maafarroo ra",
+       "immobile-target-namespace-iw": "Interwiki dobu manti toodoo boryo moo ganandiroo se.",
+       "immobile-source-page": "Moɲoo woo ši gananndi.",
+       "immobile-target-page": "Ši hin ka ganandi toodoo maaɲoo din do.",
+       "bad-target-model": "Toodoo boonantaa ga goy nda gundekuna dumi kaŋ ga waani. Ši hin ka $1 bere k'a tee $2.  \\",
+       "imagenocrossnamespace": "Ši hin ka tuku ganandi manti-tuku maafarru do",
+       "nonfile-cannot-move-to-file": "Ši hin ka manti-tuku ganandi tuku maafaaru do",
+       "imagetypemismatch": "Tuku dobu taagaa ši tenji nda nga dumoo",
+       "imageinvalidfilename": "Toodoo tukumaaɲoo ga laala",
+       "fix-double-redirects": "Kuubiyan kul taagandi noodin ga ka willi aššil maaɲoo ga",
+       "move-leave-redirect": "Kuubiyan naŋ banda",
+       "protectedpagemovewarning": "<strong>Yaamar:</strong> Moɲoo woo n' ka jejebandi hala goykey kaŋ goo nda juwalkaw alhakey hinne ma hin k'a ganandi.\nCeebandu taariki hantum kokorantaa noondi ganda fella se:",
+       "semiprotectedpagemovewarning": "<strong>Laasaabu:</strong> Moɲoo woo n' ka jejebandi hala goykaw hantumantey hinne ma hin k'a ganandi.\nCeebandu taariki hantum kokorantaa noondi ganda fella se:",
+       "move-over-sharedrepo": "== File exists ==\n[[:$1]] ga bara jišidoo žemnante ga. Ka tuku ganandi maaɲoo woo do ka tuku žemnantaa tuusu.",
+       "file-exists-sharedrepo": "Tukumaa suubantaa ga bara goy ra ka ben jišidoo zemnante ga.\nTaare maa taaga suuba.",
+       "export": "Moɲey fattandi",
+       "exporttext": "War ga hin ka hantumoo fattandi nda taariki fasalyan moo tabatantaa se wala moo margariyaŋ kaŋ hawa XML ra.\nWoo ka hin ka bere wiki tana ra kaŋ ga goy nda MediaWiki ka bisa nda [[Special:Import|bereyan moo]].\n\\",
+       "exportall": "Moɲey kul fattandi",
+       "exportcuronly": "Sohõda fillaa hinne dam, manti taariki timmantaa",
+       "exportnohistory": "----\n<strong>Laasaabu:</strong> Moɲey taariki timmantaa fattandiyan takaddaa woo ra n' ka kay goyyan sahã dalilyaŋ se.",
+       "exportlistauthors": "Kanbuzaakaw maašeede timmante dam moo foo kul se",
+       "export-submit": "Fattandi",
+       "export-addcattext": "Moɲey tonton ka hun dumi ga:",
+       "export-addcat": "Tonton",
+       "export-addnstext": "Moɲey tonton ka hun maafarru ga:",
+       "export-addns": "Tonton",
+       "export-download": "Gaabu sanda tuku",
+       "export-templates": "Leetey dam",
+       "export-pagelinks": "Moo dobantey dam guusuyan fo ga:",
+       "allmessages": "Dabariɲaa alhabarey",
+       "allmessagesname": "Maa",
+       "allmessagesdefault": "Tilasu alhabar hantum",
+       "allmessagescurrent": "Sohõda alhabar hantum",
+       "allmessagestext": "Woo ti dabariɲaa alhabar maašeede kaŋ ga bara MediaWiki maafarroo ra.\nGuna [https://www.mediawiki.org/wiki/Special:MyLanguage/MediaWiki šenni berandiyan] nda [//translatewiki.net translatewiki.net] nda war ga boona ka kanbuzaamay tee MediaWiki dumi-kul berandiyan se.",
+       "allmessagesnotsupportedDB": "Moɲoo woo ši hin ka goyandi zama <strong>$wgUseDatabaseMessages</strong> n' ka kayandi.",
+       "allmessages-filter-legend": "Fayhaya",
+       "allmessages-filter": "Fay boŋhanseyan alhaali bande:",
+       "allmessages-filter-unmodified": "Mana barmay",
+       "allmessages-filter-all": "Kul",
+       "allmessages-filter-modified": "Barmante",
+       "allmessages-prefix": "Fay jinkanji bande:",
+       "allmessages-language": "Šenni:",
+       "allmessages-filter-submit": "Koy",
+       "allmessages-filter-translate": "Berandi",
+       "thumbnail-more": "Hayandi",
+       "filemissing": "Tuku ga kuma",
+       "thumbnail_error": "Firka kanbeboy-bii teeyan ra: $1",
+       "thumbnail_error_remote": "Firka alhabar ka hun $1 do:\n$2",
+       "djvu_page_error": "DjVu moo ga mooru",
+       "djvu_no_xml": "Ši hin ka XML kurma DjVu tuku se",
+       "thumbnail-temp-create": "Ši hin ka waati-duura kanbeboy-bii tuku tee",
+       "thumbnail-dest-create": "Ši hin ka kanbeboy-bii gaabu toodogoo ga",
+       "thumbnail_invalid_params": "Kanbeboy-bii kayandiyan laalayaŋ",
+       "thumbnail_dest_directory": "Ši hin ka toodoo fooloɲaa tee",
+       "thumbnail_image-type": "Bii dumi ši nda gaakašinay",
+       "thumbnail_gd-library": "GD tiirahugu hanseyan mana timme; Goymee $1 ga kuma",
+       "thumbnail_image-missing": "Sanda tuku mma kuma: $1",
+       "thumbnail_image-failure-limit": "Waati korawey ra ceeciyan booboyaŋ (cee $1 wala kaŋ ga bis'a) mana hin ka kanbeboy-biyoo woo willi. Ceeci koyni nd'a too kayna.",
+       "import": "Moɲey dam",
+       "importinterwiki": "Transwiki dam",
+       "import-interwiki-text": "Wiki wala moo maa suuba k'a dam.\nFilla haney nda fasalkey maaɲey ga gaabundi.\nTranswiki damyan teerey kul ga hantumandi [[Special:Log/import|damyan taariki]] ra.",
+       "import-interwiki-sourcewiki": "Aššil wiki:",
+       "import-interwiki-sourcepage": "Aššil moo:",
+       "import-interwiki-history": "Taariki fillawey kul bere moɲoo woo se",
+       "import-interwiki-templates": "Leetey kul dam",
+       "import-interwiki-submit": "Dam",
+       "import-interwiki-namespace": "Toodoo maafarru:",
+       "import-interwiki-rootpage": "Toodoo linji moo (suuba-haya):",
+       "import-upload-filename": "Tukumaa:",
+       "import-comment": "Daara:",
+       "importtext": "Tukoo fattandi ka hum aššil wiki ga nda [[Special:Export|fattandi goyjinaa]].\nA gaabu war ordinateroo ga nd'a zijandi ne.",
+       "importstart": "Goo ma moɲey dam…",
+       "import-revision-count": "{{PLURAL:$1|Filla}} $1",
+       "importnopages": "Moo kul ši damyan se.",
+       "imported-log-entries": "Na {{PLURAL:$1|taariki hantum}} $1 dam.",
+       "importfailed": "Damyan kay: <nowiki>$1</nowiki>",
+       "importunknownsource": "Damyan aššil dumi šibayante",
+       "importcantopen": "Mana hin ka tuku dam",
+       "importbadinterwiki": "Interwiki dobu laala",
+       "importsuccess": "Damyan ben!",
+       "importnosources": "Transwiki dam ašsil kulyaŋ mana tabatandi nda taariki zijandiyan šerrantey n' ka kay.",
+       "importnofile": "Damyan tuku kul mana zijandi. \\",
+       "importuploaderrorsize": "Dam tuku zijandiyanoo kay.\nTukoo ga beeri nda zijandi azzaati duɲantaa.",
+       "importuploaderrorpartial": "Dam tuku zijandiyanoo kay.\nTukoo jeroo hinne no ka zijandi.",
+       "importuploaderrortemp": "Dam tuku zijandiyanoo kay.\nWaati-duura foolo ga kuma.",
+       "import-parse-failure": "XML dam fesu-fesuyan kay",
+       "import-noarticle": "Moo kul ši damyan se!",
+       "import-nonewrevisions": "Fillayaŋ kul mana huru (za ikul ga bara ka ben, wal'i sarandi firka sabbu se).",
+       "xml-error-string": "$1 goo $2 žeeri ga, soofu $3 (cebsi $4): $5",
+       "import-upload": "XML bayhayey zijandi",
+       "import-token-mismatch": "Goywaati bayhayey dere.\nCeeci koyne taare.",
+       "import-invalid-interwiki": "Ši hin ka zaandi wiki tabatantaa ga.",
+       "import-error-edit": "\"$1\" moo mana huru zama war ši nda fondo k'a fasal.",
+       "import-error-create": "\"$1\" moo mana huru zama war ši nda fondo k'a tee.",
+       "import-error-interwiki": "\"$1\" moo mana huru zama nga maaɲoo n' ka lanbandi tarayhere dobuyan se (interwiki).",
+       "import-error-special": "\"$1\" moo mana huru zama maafarru cereerante kaŋ ši moɲey duɲe no m'a may.",
+       "import-error-invalid": "\"$1\" moo mana huru zama maaɲoo kaŋ g'a hima ka huru ši boori wikiyoo woo se.",
+       "import-error-unserialize": "$2 filla \"$1\" moo se mana hin ka hun tenjiri-kabu ra. Fillaa mana bayrandi ka goy nda gundekuna dumi $3 tenjiri sanda $4.",
+       "import-error-bad-location": "$2 filla kaŋ ga goy nda gundekuna dumi $3 ši hin ka jisandi \"$1\" wikiyoo woo ga, za dumoo din ši nda gaakašinay moɲoo din ga.",
+       "import-options-wrong": "{{PLURAL:$2|Suubari}} laala: <nowiki>$1</nowiki>",
+       "import-rootpage-invalid": "Linji moo noontaa ti maa laala.",
+       "import-rootpage-nosubpage": "$1 maafarroo kaŋ goo linji moo se ši moo-izeyaŋ duɲe. \\",
+       "importlogpage": "Taariki dam",
+       "importlogpagetext": "Juwalkaw ga moɲey dam nda fasalyan taariki ka hun wiki waaniyaŋ ga.",
+       "import-logentry-upload": "na [[$1]] dam nda tuku zijandiyan",
+       "import-logentry-upload-detail": "{{PLURAL:$1|Filla}} $1 ka huru",
+       "import-logentry-interwiki": "$1 huru transwiki bande \\",
+       "import-logentry-interwiki-detail": "{{PLURAL:$1|Filla}} $1 huru ka hun $2 ga",
+       "javascripttest": "JavaScript šiiyan",
+       "javascripttest-title": "Goo ma $1 šii",
+       "javascripttest-pagetext-noframework": "Moɲoo woo n' ka lanbandi ka JavaScript šiiyaney tee.",
+       "javascripttest-pagetext-unknownframework": "Kungagoy \"$1\" šiiyan ši bayandi.",
+       "javascripttest-pagetext-frameworks": "Šiiyan kungagoy šiiyaney wey affoo suuba: $1",
+       "javascripttest-pagetext-skins": "Kuuru foo suuba ka šiiyaney tee nd'a:",
+       "javascripttest-qunit-intro": "Guna [$1 šiiyan fahamandi tiira] mediawiki.org ga.",
+       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit šiiyan margari",
+       "tooltip-pt-userpage": "War goykaw moɲoo",
+       "tooltip-pt-anonuserpage": "Goykaw moo IP aderesoo kaŋ war goo m'a fasal sanda",
+       "tooltip-pt-mytalk": "War deede moɲoo",
+       "tooltip-pt-anontalk": "Kakaw fasaley ga kaŋ ga hun IP aderesoo woo do",
+       "tooltip-pt-preferences": "War ibaayey",
+       "tooltip-pt-watchlist": "Moɲey kaŋ war goo m'i hawgay barmayyan se \\",
+       "tooltip-pt-mycontris": "War kanbuzaamawey",
+       "tooltip-pt-login": "War ma soobay ka huru; amma woo ši waažibi",
+       "tooltip-pt-logout": "Fatta",
+       "tooltip-pt-createaccount": "Wa soobay ka kontu tee nda ka huru; amma woo ši waažibi ya.",
+       "tooltip-ca-talk": "Deede gundekuna moɲoo ga",
+       "tooltip-ca-edit": "War ga hin ka moɲoo woo fasal. Moofur butoŋoo naagu jina k'a gaabu",
+       "tooltip-ca-addsection": "Dunbu taaga šintin",
+       "tooltip-ca-viewsource": "Moɲoo woo ga jejebandi.\nWar hin ka dii ng'aššiloo",
+       "tooltip-ca-history": "Filla bisantey moɲoo woo se",
+       "tooltip-ca-protect": "Moɲoo woo jejebu",
+       "tooltip-ca-unprotect": "Jejebu barmay moɲoo woo se",
+       "tooltip-ca-delete": "Moɲoo woo tuusu",
+       "tooltip-ca-undelete": "Barmawey din yeeti kaŋ tee za moɲoo woo mana tuusandi",
+       "tooltip-ca-move": "Moɲoo woo ganandi",
+       "tooltip-ca-watch": "Moɲoo woo tonton war hawgayhayey ga",
+       "tooltip-ca-unwatch": "Moɲoo woo kaa war hawgayhayey ra",
+       "tooltip-search": "{{SITENAME}} ceeci",
+       "tooltip-search-go": "Koy moo do kaŋ goo nda maa follokaa da nd'a ga bara",
+       "tooltip-search-fulltext": "Moɲey ceeci hantumoo woo se",
+       "tooltip-p-logo": "Koy moo jinaa ga",
+       "tooltip-n-mainpage": "Koy moo jinaa ga",
+       "tooltip-n-mainpage-description": "Koy moo jinaa ga",
+       "tooltip-n-portal": "Porožewoo ga, woo kaŋ war ga hin k'a tee, hayey duu dogey",
+       "tooltip-n-currentevents": "Jine-alhabar caw sohõda teerey ga",
+       "tooltip-n-recentchanges": "Barmay korawey kaŋ tee wikiyoo ga",
+       "tooltip-n-randompage": "Alwaadu moo zijandi",
+       "tooltip-n-help": "Nungu ka ceeci",
+       "tooltip-t-whatlinkshere": "Wiki moɲey kul kaŋ ga dobu ne",
+       "tooltip-t-recentchangeslinked": "Barmay kokorantey moɲey ra kaŋ dobandi ka hun moɲoo woo ga  \\",
+       "tooltip-feed-rss": "RSS toonandiyan moɲoo woo se",
+       "tooltip-feed-atom": "Atom toonandiyan moɲoo woo se",
+       "tooltip-t-contributions": "Kanbuzaamawey goykaa woo se",
+       "tooltip-t-emailuser": "Bataga sanba goykaa woo do",
+       "tooltip-t-info": "Duu alhabar ka tonton moɲoo woo ga",
+       "tooltip-t-upload": "Tukey zijandi",
+       "tooltip-t-specialpages": "Moo cerecerantey kul",
+       "tooltip-t-print": "Karyan dumi moɲoo woo se",
+       "tooltip-t-permalink": "Dobu duumante moɲoo fillaa se",
+       "tooltip-ca-nstab-main": "Gundekuna moɲoo guna",
+       "tooltip-ca-nstab-user": "Goykaw moɲoo guna",
+       "tooltip-ca-nstab-media": "Hẽenandi moɲoo guna",
+       "tooltip-ca-nstab-special": "Moo cerecerante ti woo, war ši hin ka moɲoo hunday fasal",
+       "tooltip-ca-nstab-project": "Poorože moɲoo guna",
+       "tooltip-ca-nstab-image": "Tuku moɲoo guna",
+       "tooltip-ca-nstab-mediawiki": "Dabariɲaa alhabaroo guna",
+       "tooltip-ca-nstab-template": "Leetoo guna",
+       "tooltip-ca-nstab-help": "Faaba moɲoo guna",
+       "tooltip-ca-nstab-category": "Dumi moɲoo guna",
+       "tooltip-minoredit": "Woo šilbay sanda barmay kaccu",
+       "tooltip-save": "Barmawey gaabu",
+       "tooltip-preview": "Moo fur war barmawey ga, woo tee jina de w'a gaabu! \\",
+       "tooltip-diff": "Barmawey kaŋ war n'i tee hantumoo ga cebe",
+       "tooltip-compareselectedversions": "Dii hayey kaŋ ga filla suubante hinkaa fay moɲoo woo se",
+       "tooltip-watch": "Moɲoo woo tonton war hawgayhayey ga",
+       "tooltip-watchlistedit-normal-submit": "Maaɲey kaa",
+       "tooltip-watchlistedit-raw-submit": "Hawgayhayey taagandi",
+       "tooltip-recreate": "Moɲoo tee taaga ba kaŋ an' ka tuusandi",
+       "tooltip-upload": "Zijandiyanoo šintin",
+       "tooltip-rollback": "Naaguyan foo nda \"Rollback\" ga fasal(ey) yeeti moɲoo woo ga kaŋ kanbuzaakaw koraa n'a tee",
+       "tooltip-undo": "\"Undo\" ga barmaa woo yeeti nd'a ga barmay takadda feeri moofuryan alhaali ra. A ga naŋ dalil foo ma tonton duurandoo ra.",
+       "tooltip-preferences-save": "Ibaayey gaabu",
+       "tooltip-summary": "Duurandi dunba dam",
+       "interlanguage-link-title": "$1 – $2",
+       "interlanguage-link-title-nonlang": "$1 – $2",
+       "common.css": "/* CSS kaŋ huru ne ka kanandi kuurey kul ga */",
+       "print.css": "/* CSS kaŋ huru ne kanboo ga too karyan fattari kul */",
+       "noscript.css": "/* CSS kaŋ huru ne kanboo ga too JavaScript goykey kul */",
+       "group-autoconfirmed.css": "/* CSS kaŋ huru ne kanboo ga too goykaw boŋtabatantey kul */",
+       "group-user.css": "/* CSS kaŋ huru ne kanboo ga too goykaw hantumantey kul */",
+       "group-bot.css": "/* CSS kaŋ huru ne kanboo ga too maršin-goykey kul */",
+       "group-sysop.css": "/* CSS kaŋ huru ne kanboo ga too sysops goykey kul */",
+       "group-bureaucrat.css": "/* CSS kaŋ huru ne kanboo ga too biro goykey kul */",
+       "common.js": "/* JavaScript kul kaŋ goo ne ga zumandi goykey kul se moo zumandiyan foo kul ga. */",
+       "group-autoconfirmed.js": "/* JavaScript kul kaŋ goo ne ga zumandi goykaw boŋtabatantey hinne se */",
+       "group-user.js": "/* JavaScript kul kaŋ goo ne ga zumandi goykaw hantumantey hinne se */",
+       "group-bot.js": "/* JavaScript kul kaŋ goo ne ga zumandi maršin-goykaw hinne se */",
+       "group-sysop.js": "/* JavaScript kul kaŋ goo ne ga zumandi sysops konda hinne se */",
+       "group-bureaucrat.js": "/* JavaScript kul kaŋ goo ne ga zumandi biro goykey hinne se */",
+       "anonymous": "{{PLURAL:$1|Goykaw}} maa-tugante(y) {{SITENAME}} se",
+       "siteuser": "{{SITENAME}} goykaw $1",
+       "anonuser": "{{SITENAME}} goykaw maatugante $1",
+       "lastmodifiedatby": "$3 ka kokor ka moɲoo woo barmay $2 waate, $1 hane.",
+       "othercontribs": "Ga hanga $1 goyoo bande.",
+       "others": "taney",
+       "siteusers": "{{SITENAME}} {{PLURAL:$2|goykaw|goykey}} $1",
+       "anonusers": "{{SITENAME}} {{PLURAL:$2|goykaw}} maa-tugante(y) $1",
+       "creditspage": "Moo alhakey",
+       "nocredits": "Alhaku alhabar kul ši bara moɲoo woo se.",
+       "spamprotectiontitle": "Žiiba bataga gaŋa",
+       "spamprotectiontext": "Hantumoo kaŋ war boona k'a gaabu, žiibi bataga gaŋaa k'a dii.\nMane daliloo ti dobu kaŋ ga fatta tarayhere interneti nungu barrante ga.",
+       "spamprotectionmatch": "Hantumoo woo no ka ir žiibi bataga gaŋa tunandi: $1",
+       "spambot_username": "MediaWiki žiiba bataga haabari",
+       "spam_reverting": "Ga yeeti dumi koraa boŋ kaŋ ši dobu $1 ga",
+       "spam_blanking": "Fillawey kul bara nda dobuyaŋ $1 ga, koonandiyan",
+       "spam_deleting": "Fillawey kul bara nda dobuyaŋ $1 ga, tuusuyan",
+       "simpleantispam-label": "Bataga žiiba korošiyan.\nMa <strong>ŠI</strong> woo toonandi!",
+       "pageinfo-title": "Alhabar \"$1\" se",
+       "pageinfo-not-current": "Alhaa naŋ, boro ši hin k'alhabaroo woo noo filla žeeney se.",
+       "pageinfo-header-basic": "Alhabar doona",
+       "pageinfo-header-edits": "Taariki fasal",
+       "pageinfo-header-restrictions": "Moo jejebuyan",
+       "pageinfo-header-properties": "Moo alhaaley",
+       "pageinfo-display-title": "Maa cebe",
+       "pageinfo-default-sort": "Tilasu fayyan kufal",
+       "pageinfo-length": "Moo kuuyan (cebsi hinna)",
+       "pageinfo-article-id": "Moo boŋtammaasa",
+       "pageinfo-language": "Moo gundekuna šenni",
+       "pageinfo-content-model": "Moo gundekuna dumi",
+       "pageinfo-robot-policy": "Marši-goykey šilbayyan",
+       "pageinfo-robot-index": "Duɲante",
+       "pageinfo-robot-noindex": "Manti duɲante",
+       "pageinfo-watchers": "Moo hawgaykey hinnaa",
+       "pageinfo-few-watchers": "Ši too {{PLURAL:$1|hawgaykaw}} $1",
+       "pageinfo-redirects-name": "Kuubiyan hinna moɲoo woo se",
+       "pageinfo-redirects-value": "$1",
+       "pageinfo-subpages-name": "Moo-ize hinnaa moɲoo woo se",
+       "pageinfo-subpages-value": "($2 {{PLURAL:$2|Kuubiyan}} $1 ($2; {{PLURAL:$3|manti-kuubiyan}} $3)",
+       "pageinfo-firstuser": "Moo teekaw",
+       "pageinfo-firsttime": "Moo teeyan hanoo",
+       "pageinfo-lastuser": "Fasalkaw kokorantaa",
+       "pageinfo-lasttime": "Barmay kokorantaa hanoo",
+       "pageinfo-edits": "Barmay hinnaa kul",
+       "pageinfo-authors": "Hantumkaw fayantey kul hinnaa",
+       "pageinfo-recent-edits": "Barmay korawey hinnaa ($1 kaŋ bisa ra)",
+       "pageinfo-recent-authors": "Hantumkaw fayante korawey hinnaa",
+       "pageinfo-magic-words": "Kayfi {{PLURAL:$1|kalima}} ($1)",
+       "pageinfo-hidden-categories": "{{PLURAL:$1|Dumi}} tugante ($1)",
+       "pageinfo-templates": "{{PLURAL:$1|Leeti}} kanante ($1)",
+       "pageinfo-transclusions": "{{PLURAL:$1|Moo}} kanante ($1) ga",
+       "pageinfo-toolboxlink": "Moo alhabar",
+       "pageinfo-redirectsto": "Kuubiyaney ne here",
+       "pageinfo-redirectsto-info": "alhabar",
+       "pageinfo-contentpage": "N' kabu sanda gundekuna moo",
+       "pageinfo-contentpage-yes": "Ayyo",
+       "pageinfo-protect-cascading": "Jejebey mma kaŋandi ka hun ne",
+       "pageinfo-protect-cascading-yes": "Ayyo",
+       "pageinfo-protect-cascading-from": "Jejebey mma kaŋandi ka hun",
+       "pageinfo-category-info": "Dumi alhabar",
+       "pageinfo-category-pages": "Moo hinna",
+       "pageinfo-category-subcats": "Dunmi-ize hinna",
+       "pageinfo-category-files": "Tuku hinna",
+       "markaspatrolleddiff": "Šilbay kaŋ a ga kurandi",
+       "markaspatrolledtext": "Moɲoo woo šilbay kaŋ a ga kurandi",
+       "markedaspatrolled": "Šilbandi sanda kurante no",
+       "markedaspatrolledtext": "Filla suubantaa [[:$1]] se n' ka šilbandi kaŋ a ga kurandi.",
+       "rcpatroldisabled": "Barmay korawey kuryanoo kay",
+       "rcpatroldisabledtext": "Barway korawey kuryan alhaaloo n' ka kay sohõda.",
+       "markedaspatrollederror": "Ši hin k'a šilbay kaŋ a ga kurandi",
+       "markedaspatrollederrortext": "War ga hima ka filla foo tabatandi k'a šilbay kaŋ a ga kurandi. \\",
+       "markedaspatrollederror-noautopatrol": "War ši nda fondo ka war boŋ barmawey šilbay kaŋ i ga kurandi.",
+       "markedaspatrollednotify": "Barmaa woo $1 ga n' ka šilbandi kaŋ a ga kurandi.",
+       "markedaspatrollederrornotify": "Goo ma šilbay kaŋ a ga kurandi.",
+       "patrol-log-page": "Kuryan taariki",
+       "patrol-log-header": "Woo ti filla kurantey taarikoo.",
+       "log-show-hide-patrol": "kuryan taariki $1",
+       "deletedrevision": "Filla žeena tuusante $1",
+       "filedeleteerror-short": "Tuku tuusuyan firka: $1",
+       "filedeleteerror-long": "Firkayaŋ bangay tukoo tuusuyanoo waate:\n\n$1",
+       "filedelete-missing": "\"$1\" tukoo ši hin ka tuusandi zam'a ši bara.",
+       "filedelete-old-unregistered": "Tuku filla tabatantaa \"$1\" ši bara bayhayahugoo ra.",
+       "filedelete-current-unregistered": "Tuku tabatantaa \"$1\" ši bara bayhayahugoo ra.",
+       "filedelete-archive-read-only": "Interneti feršikaa ši hin ka hantum \"$1\" jišidoo fooloɲaŋoo ga. \\",
+       "previousdiff": "← Barmay žeena",
+       "nextdiff": "Barmay taaga →",
+       "mediawarning": "<strong>Yaamar:</strong> Tuku woo goo nda hasaraw gundu hantum.\nNga tunandiroo ka hin ka war ordinateroo laybu.",
+       "imagemaxsize": "Ga bii azzaati hoo:<br /><em>(tuku šilbayyan moɲey se)</em>",
+       "thumbsize": "Kanbeboy-bii azzaati:",
+       "widthheight": "$1 × $2",
+       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|page|pages}} $1 × $2, $3",
+       "file-info": "tuku azzaati: $1, MIME dumi: $2",
+       "file-info-size": "biitonbi $1 × $2 pixels, tuku azzaati: $3, MIME dumi: $4",
+       "file-info-size-pages": "biitonbi $1 × $2, tuku azzaati size: $3, MIME dumi: {{PLURAL:$5|moo}} $4, $5",
+       "file-nohires": "Biisahã ši bara kaŋ ga bis'a.",
+       "svg-long-desc": "SVG tuku, ka nee biitonbi $1 × $2, tuku azzaati: $3",
+       "svg-long-desc-animated": "SVG tuku hunante, ka nee biitonbi $1 × $2, tuku azzaati: $3",
+       "svg-long-error": "SVG tuku laala: $1",
+       "show-big-image": "Aššil tuku",
+       "show-big-image-preview": "Moofuroo woo azzaatoo: $1.",
+       "show-big-image-other": "{{PLURAL:$2|Biisahã}} tana: $1.",
+       "show-big-image-size": "biitonbi $1 × $2",
+       "file-info-gif-looped": "fillante",
+       "file-info-gif-frames": "{{PLURAL:$1|Kunga}} $1 \\",
+       "file-info-png-looped": "fillante",
+       "file-info-png-repeat": "na hẽenandi {{PLURAL:$1|cee}} $1",
+       "file-info-png-frames": "{{PLURAL:$1|Kunga}} $1",
+       "file-no-thumb-animation": "<strong>Laasaabu: Dabarijaŋay ga too biyoo woo kanbeboy-biyey ši hin ka hunandi.</strong>",
+       "file-no-thumb-animation-gif": "<strong>Laasaabu: Dabarijaŋay ga too GIF biyey kanbeboy-bii sahãntey, sand'affaa woo, ši hin ka hunandi.</strong>",
+       "newimages": "Tuku taagey cebedogoo",
+       "imagelisttext": "Ne ganda ti {{PLURAL:$1|tuku}} <strong>$1</strong> kaŋ fayandi $2.",
+       "newimages-summary": "Moo cerecerantaa woo ga tuku zijante korawey cebe.",
+       "newimages-legend": "Gaŋa",
+       "newimages-label": "Tukumaa (wala jeroo):",
+       "newimages-showbots": "Maršin-goykaw zijandiyaney cebe",
+       "noimages": "Haya ši diyandi.",
+       "ilsubmit": "Ceeci",
        "bydate": "han bande",
        "sp-newimages-showfrom": "Tuku taagey kaŋ ga šintin $2 waate, $1 hane",
        "video-dims": "$1, $2 × $3",
        "exif-focalplanexresolution": "Moodiiyan X biisahã",
        "exif-focalplaneyresolution": "Moodiiyan Y biisahã",
        "exif-focalplaneresolutionunit": "Moodiiyan biisahã ize",
-       "exif-subjectlocation": "Teekaw gorodoo",
+       "exif-subjectlocation": "Teekaw gorodoo \\",
        "exif-exposureindex": "Biizaayan šilbay",
        "exif-sensingmethod": "Maateyan dabari",
        "exif-filesource": "Tuku aššil",
        "exif-gpsdestlatitude": "Toodoo hayyanzuu",
        "exif-gpsdestlongituderef": "Fella toodoo kayyanzuu se",
        "exif-gpsdestlongitude": "Toodoo kayyanzuu",
-       "exif-gpsdestbearingref": "Fella toodoo jineteeyan se",
+       "exif-gpsdestbearingref": "Fella toodoo jineteeyan se \\",
        "exif-gpsdestbearing": "Toodoo jineteeyan",
        "exif-gpsdestdistanceref": "Fella toodoo mooray se",
        "exif-gpsdestdistance": "Toodoo mooray",
        "exif-keywords": "Kufalkalimawey",
        "exif-worldregioncreated": "Adduɲɲa gandaa kaŋ ra biyoo zaandi",
        "exif-countrycreated": "Laamaa kaŋ ra biyoo zaandi",
-       "exif-countrycodecreated": "Laamaa kaŋ ra biyoo zaandi lanbaa",
+       "exif-countrycodecreated": "Laamaa kaŋ ra biyoo zaandi lanbaa \\",
        "exif-provinceorstatecreated": "Laama žemnaroo wala hinoo kaŋ ra biyoo zaandi",
        "exif-citycreated": "Gaaloo kaŋ ra biyoo zaandi",
        "exif-sublocationcreated": "Gallu fargandoo kaŋ ra biyoo zaandi",
        "exif-headline": "Maabon",
        "exif-credit": "Alhaku/Nookaw",
        "exif-source": "Aššil",
-       "exif-editstatus": "Bii wallafiyan assariya",
+       "exif-editstatus": "Bii wallafiyan assariya \\",
        "exif-urgency": "Tilasu",
        "exif-fixtureidentifier": "Hawari maa",
        "exif-locationdest": "Gorodoo šilbante",
        "exif-originaltransmissionref": "Sanbayan jinaa gorodoo lanbaa",
        "exif-identifier": "Tammaasakaw",
        "exif-lens": "Zaayan moodiji",
-       "exif-serialnumber": "Biizaahayaa fannu lanbaa",
+       "exif-serialnumber": "Biizaahayaa fannu lanbaa \\",
        "exif-cameraownername": "Biizaahayaa koyoo",
        "exif-label": "Šilbay",
        "exif-datetimemetadata": "Han bayhaya beeri barmay cee koraa",
-       "exif-nickname": "Bii maa kanbari",
+       "exif-nickname": "Bii maa kanbari \\",
        "exif-rating": "Alkadar damyan (5 ra)",
        "exif-rightscertificate": "Alhaku juwalyan tabatandi tiira",
        "exif-copyrighted": "Teekaw alhaku assariya",
        "monthsall": "kul",
        "confirmemail": "Bataga aderesu tabatandi",
        "confirmemail_noemail": "War ši nda bataga aderesu henna war [[Special:Preferences|goykaw ibaayey]] ra.",
+       "confirmemail_text": "{{SITENAME}} ga waažibandi kaŋ war ma war bataga aderesoo tabatandi jina ka hin ka goy nda bataga alhaaley.\nBatagaa goo nda dobu kaŋ ra gundu hantum goo;\ndoboo dam war ceecikaa ra to tabatandi kaŋ war bataga aderesoo ga boori.",
+       "confirmemail_pending": "Tabatandiyan gundu hantum n' sanbandi ni se bataga ra ka ben;\nnd'a mana gay kaŋ war na war kontoo tee, war mma hima ka minitiyaŋ batu hal'a ma too war do jina hala war ga ceeci ga gundu hantum taaga wiri.",
+       "confirmemail_send": "Tabatandiyan gundu hantum sanba",
+       "confirmemail_sent": "Tabatandiyan bataga sanbandi.",
+       "confirmemail_oncreate": "Tabatandi gundu hantum n' ka sanbandi war bataga aderesoo do,\nGundu hantumoo woo ši waažibi huruyan se, amma war ga hima k'a noo jina hala war ga hin ka bataga-bande goy alhaali kul tunandi wikiyoo ra.",
+       "confirmemail_sendfailed": "{{SITENAME}} mana hin ka war gundu hantum batagaa sanba.\nWar bataga aderesoo koroši harfu laala se.\n\nSanbakaw willandi: $1",
+       "confirmemail_invalid": "Tabatandiyan gundu hantum laala.\nA ga hima gundu hantumoo waatoo buu.",
+       "confirmemail_needlogin": "Dobu $1 ka war bataga aderesoo tabatandi.",
+       "confirmemail_success": "War bataga aderesoo n' ka tabatandi.\nSohõ war ga hin ka [[Special:UserLogin|huru]] ka maa wikiyoo kaanoo.",
+       "confirmemail_loggedin": "War bataga aderesoo n' ka tabatandi.",
+       "confirmemail_subject": "{{SITENAME}} bataga aderesu tabatandiyan",
+       "confirmemail_body": "Boro foo, sanda war, kaŋ ga hun IP aderesu $1 ga,\nn' ka kontu \"$2\" hantum nda bataga aderesoo woo {{SITENAME}} ga.\n\\",
+       "confirmemail_body_changed": "Boro foo, sanda war, kaŋ ka hun IP aderesu $1 ga,\nn' ka bataga aderesoo barmay ka hun \"$2 ga k'a dam aderesoo woo {{SITENAME}} ga.\n\nKa tabatandi, kaŋ nda cimi, war ma kontoo woo may nda ka bataga alhaaley\ntunandi taaga {{SITENAME}} ga, doboo woo feeri war ceecikaa ra:\n\n$3\n\nNda war *ši* kontoo may, wa doboo woo gana\nka bataga aderesu tabatandiyanoo naŋ:\n\n$5\n\nTabatandiyan gundu hantumoo woo waatoo ga buu nd'a too $4.",
+       "confirmemail_body_set": "Boro foo, sanda war, kaŋ ka hun IP aderesu $1 ga,\nn' ka bataga aderesoo kayandi \"$2 kontoo se ka tee aderesoo woo {{SITENAME}} ga.\n\nKa tabatandi, kaŋ nda cimi, war ma kontoo woo may nda ka bataga alhaaley\ntunandi taaga {{SITENAME}} ga, doboo woo feeri war ceecikaa ra:\n\n$3\n\nNda war *ši* kontoo may, wa doboo woo gana\nka bataga aderesu tabatandiyanoo naŋ:\n\n$5\n\nTabatandiyan gundu hantumoo woo waatoo ga ben nd'a too $4.",
+       "confirmemail_invalidated": "Na bataga aderesu tabatantiyan naŋ",
+       "invalidateemail": "Bataga tabatandiyan naŋ",
+       "scarytranscludedisabled": "[Interwiki kanandiyan n' ka kay]",
+       "scarytranscludefailed": "[Leeti zaayan n' ka kay $1 se]",
+       "scarytranscludefailed-httpstatus": "[Leeti zaayan n' ka kay $1 se: HTTP $2]",
+       "scarytranscludetoolong": "[URL ga hansa ka kuu]",
+       "deletedwhileediting": "<strong>Yaamar:</strong> Moɲoo woo n' ka tuusandi war fasalyan šintinoo banda ga!",
+       "confirmrecreate": "Goykaw [[User:$1|$1]] ([[User talk:$1|talk]]) na moɲoo woo tuusu war fasalyan šintinoo banda ga dalil se:\n: <em>$2</em>\nTabatandi kaŋ, nda cimi, war ga boona ka moɲoo woo tee taaga.",
+       "confirmrecreate-noreason": "Goykaw [[User:$1|$1]] ([[User talk:$1|talk]]) na moɲoo woo tuusu war fasalyan šintinoo banda ga. Tabatandi kaŋ, nda cimi, war ga boona ka moɲoo woo tee taaga. \\",
+       "recreate": "Tee taaga",
+       "unit-pixel": "px",
+       "confirm_purge_button": "Ayyo",
+       "confirm-purge-top": "Moɲoo woo tugudogoo tuusu?",
+       "confirm-purge-bottom": "Moo koonandiyan ka tugudogoo tuusu nd'a ga filla kul ikoraa gaabi ka bangay.",
+       "confirm-watch-button": "Ayyo",
+       "confirm-watch-top": "Moɲoo tonton war hawgayhayey ga wala?",
+       "confirm-unwatch-button": "Ayyo",
+       "confirm-unwatch-top": "Moɲoo woo kaa war hawgayhayey ra wala?",
+       "semicolon-separator": ";&#32;",
+       "comma-separator": ",&#32;",
+       "colon-separator": ":&#32;",
+       "pipe-separator": "&#32;|&#32;",
+       "word-separator": "&#32;",
+       "ellipsis": "...",
+       "percent": "$1%",
+       "parentheses": "($1)",
+       "brackets": "[$1]",
+       "quotation-marks": "\"$1\"",
+       "imgmultipageprev": "← moo bisante",
+       "imgmultipagenext": "jinehere moo →",
+       "imgmultigo": "Koy!",
+       "imgmultigoto": "Koy moo $1 do",
+       "img-lang-opt": "$2 ($1)",
+       "img-lang-default": "(tilasu šenni)",
+       "img-lang-info": "Biyoo woo kaataray $1 ra. $2",
+       "img-lang-go": "Koy",
+       "ascending_abbrev": "ziji",
+       "descending_abbrev": "zunbu",
+       "table_pager_next": "Jinehere moɲoo",
+       "table_pager_prev": "Moo bisantaa",
+       "table_pager_first": "Moo jinaa",
+       "table_pager_last": "Moo koraa",
+       "table_pager_limit": "Haya-ize $1 cebe moo ga",
+       "table_pager_limit_label": "Haya-ize hinna moo ga:",
+       "table_pager_limit_submit": "Koy",
+       "table_pager_empty": "Hunyan kul šii",
+       "autosumm-blank": "Moo koonante",
+       "autosumm-replace": "Na gundekuna barmay nda \"$1\"",
+       "autoredircomment": "Na moɲoo kuubi [[$1]] here",
+       "autosumm-new": "Na moo tee nda \"$1\"",
+       "autosumm-newblank": "Na moo koonu tee",
+       "size-bytes": "B $1",
+       "size-kilobytes": "KB $1",
+       "size-megabytes": "MB $1",
+       "size-gigabytes": "GB $1 \\",
+       "size-terabytes": "TB $1",
+       "size-petabytes": "PB $1",
+       "size-exabytes": "EB $1",
+       "size-zetabytes": "ZB $1",
+       "size-yottabytes": "YB $1",
+       "bitrate-bits": "bps $1",
+       "bitrate-kilobits": "kbps $1",
+       "bitrate-megabits": "Mbps $1",
+       "bitrate-gigabits": "Gbps $1",
+       "bitrate-terabits": "Tbps $1",
+       "bitrate-petabits": "Pbps $1",
+       "bitrate-exabits": "Ebps $1",
+       "bitrate-zetabits": "Zbps $1",
+       "bitrate-yottabits": "Ybps $1",
+       "lag-warn-normal": "A ga hin ka tee kaŋ barmawey kaŋ ga taaga nda {{PLURAL:$1|segondu}} $1 ši cebe maašeedaa woo ra.",
+       "lag-warn-high": "Bayhaya feršikaa ga hansa ka bunnu, adiši barmawey kaŋ ka taaga nda {{PLURAL:$1|segondu}} $1 ši cebe maašeedaa woo ra.",
+       "watchlistedit-normal-title": "Hawgayhayey fasal",
+       "watchlistedit-normal-legend": "Maaɲey kaa hawgayhayey ra",
+       "watchlistedit-normal-explain": "Maaɲey kaŋ goo war hawgayhayey ra ga cebe ne ganda.\nKa maa foo kaa, bataa kaŋ goo jeroo maasa, nda \"{{int:Watchlistedit-normal-submit}}\" naagu.\nWar ga hin ka [[Special:EditWatchlist/raw|maašeeda ganoo fasal]] da.",
+       "watchlistedit-normal-submit": "Maaɲey kaa",
+       "watchlistedit-normal-done": "{{PLURAL:$1|Maa $1 n' ka}} hun war hawgayhayey ra:",
+       "watchlistedit-raw-title": "Hawgayhaya ganey fasal",
+       "watchlistedit-raw-legend": "Hawgaygaya ganey fasal",
+       "watchlistedit-raw-explain": "Maaɲey kaŋ goo war hawgayhayey ra ga cebe ganda, nd'i ga hin ka barmay nda boro na maa tonton wal'a kaa maašeedaa ga;\nmaa foo zuu foo ra.\nNda war ben, \"{{int:Watchlistedit-raw-submit}}\" naagu.\nWar ga hin ka [[Special:EditWatchlist|goy nda hankul fasalkaa]].",
+       "watchlistedit-raw-titles": "Maaɲey:",
+       "watchlistedit-raw-submit": "Hawgayhayey taagandi",
+       "watchlistedit-raw-done": "War hawgayhayey n' ka taagandi.",
+       "watchlistedit-raw-added": "{{PLURAL:$1|Maa $1 n' ka}} tontonandi:",
+       "watchlistedit-raw-removed": "{{PLURAL:$1Maa $1 n' ka}} hun:",
+       "watchlistedit-clear-title": "Hawgayhaya koonantey",
+       "watchlistedit-clear-legend": "Hawgayhayey koonandi",
+       "watchlistedit-clear-explain": "Maaɲey kul ga kaa ka hun war hawgayhayey ra",
+       "watchlistedit-clear-titles": "Maaɲey:",
+       "watchlistedit-clear-submit": "Hawgayhayey koonandi (Woo ga duumi!)",
+       "watchlistedit-clear-done": "War hawgayhayey n' ka koonandi.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|Maa $1 n' ka}} hun:",
+       "watchlistedit-too-many": "Moo booboyaŋ goo kaŋyaŋ ga cebe ne.",
+       "watchlisttools-clear": "Hawgayhayey koonandi",
+       "watchlisttools-view": "Barmay himantey guna",
+       "watchlisttools-edit": "Hawgayhayey guna nd'i fasal",
+       "watchlisttools-raw": "Hawgayhaya ganey fasal",
+       "iranian-calendar-m1": "Farvardin",
+       "iranian-calendar-m2": "Ordibehesht",
+       "iranian-calendar-m3": "Khordad",
+       "iranian-calendar-m4": "Tir",
+       "iranian-calendar-m5": "Mordad",
+       "iranian-calendar-m6": "Shahrivar",
+       "iranian-calendar-m7": "Mehr",
+       "iranian-calendar-m8": "Aban",
+       "iranian-calendar-m9": "Azar",
+       "iranian-calendar-m10": "Dey",
+       "iranian-calendar-m11": "Bahman",
+       "iranian-calendar-m12": "Esfand",
+       "hijri-calendar-m1": "Muharram",
+       "hijri-calendar-m2": "Safar",
+       "hijri-calendar-m3": "Rabi' al-awwal",
+       "hijri-calendar-m4": "Rabi' al-thani",
+       "hijri-calendar-m5": "Jumada al-awwal",
+       "hijri-calendar-m6": "Jumada al-thani",
+       "hijri-calendar-m7": "Rajab",
+       "hijri-calendar-m8": "Sha'aban",
+       "hijri-calendar-m9": "Ramadan",
+       "hijri-calendar-m10": "Shawwal",
+       "hijri-calendar-m11": "Dhu al-Qi'dah",
+       "hijri-calendar-m12": "Dhu al-Hijjah",
+       "hebrew-calendar-m1": "Tishrei",
+       "hebrew-calendar-m2": "Cheshvan",
+       "hebrew-calendar-m3": "Kislev",
+       "hebrew-calendar-m4": "Tevet",
+       "hebrew-calendar-m5": "Shevat",
+       "hebrew-calendar-m6": "Adar",
+       "hebrew-calendar-m6a": "Adar I",
+       "hebrew-calendar-m6b": "Adar II",
+       "hebrew-calendar-m7": "Nisan",
+       "hebrew-calendar-m8": "Iyar",
+       "hebrew-calendar-m9": "Sivan",
+       "hebrew-calendar-m10": "Tamuz",
+       "hebrew-calendar-m11": "Av",
+       "hebrew-calendar-m12": "Elul",
+       "hebrew-calendar-m1-gen": "Tishrei",
+       "hebrew-calendar-m2-gen": "Cheshvan",
+       "hebrew-calendar-m3-gen": "Kislev",
+       "hebrew-calendar-m4-gen": "Tevet",
+       "hebrew-calendar-m5-gen": "Shevat",
+       "hebrew-calendar-m6-gen": "Adar",
+       "hebrew-calendar-m6a-gen": "Adar I",
+       "hebrew-calendar-m6b-gen": "Adar II",
+       "hebrew-calendar-m7-gen": "Nisan",
+       "hebrew-calendar-m8-gen": "Iyar",
+       "hebrew-calendar-m9-gen": "Sivan",
+       "hebrew-calendar-m10-gen": "Tamuz",
+       "hebrew-calendar-m11-gen": "Av",
+       "hebrew-calendar-m12-gen": "Elul",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|deede]])",
+       "timezone-utc": "UTC",
+       "unknown_extension_tag": "Dobuyan kanji šibayante \"$1\"",
+       "duplicate-defaultsort": "<strong>Yaamar:</strong> Tilasu fayyan kufal \"$2\" ga tilasu fayyan kufal bisante \"$1\" daaru.",
+       "duplicate-displaytitle": "<strong>Yaamar:</strong> Cebeyan maa \"$2\" ga cebeyan maa bisante \"$1\" daaru.",
+       "invalid-indicator-name": "<strong>Error:</strong> Moo assariya šilbaykey <code>name</code> alhaaloo ši hima ka koonu.",
+       "version": "Dumi",
+       "version-extensions": "Dobuyan sinjantey",
+       "version-skins": "Kuuru sinjantey",
+       "version-specialpages": "Moo cerecernatey",
+       "version-parserhooks": "Fesu-fesuyan delbey",
+       "version-variables": "Barmay dumey",
+       "version-antispam": "Žiibi bataga ganjiyan",
+       "version-api": "API",
+       "version-other": "Itana",
+       "version-mediahandlers": "Hẽenandihaya dabarikey",
+       "version-hooks": "Delbey",
+       "version-parser-extensiontags": "Fesu-fesukaw dobuyan kanjey",
+       "version-parser-function-hooks": "Fesu-fesukaw goymee delbey",
+       "version-hook-name": "Delbu maa",
+       "version-hook-subscribedby": "Maahantumkaa",
+       "version-version": "($1)",
+       "version-no-ext-name": "[šii nda maa]",
+       "version-svn-revision": "r$1",
+       "version-license": "MediaWiki duɲeyan kaddasu",
+       "version-ext-license": "Duɲeyan kaddasu",
+       "version-ext-colheader-name": "Dobuyan",
+       "version-skin-colheader-name": "Kuuru",
+       "version-ext-colheader-version": "Dumi",
+       "version-ext-colheader-license": "Duɲeyan kaddasu",
+       "version-ext-colheader-description": "Šilbayyan",
+       "version-ext-colheader-credits": "Hantumkey",
+       "version-license-title": "Duɲeyan kaddasu $1 se",
+       "version-license-not-found": "Duɲeyan alhabar šifante kul si duwandi dubuyanoo woo se.",
+       "version-credits-title": "Alhakey $1 se",
+       "version-credits-not-found": "Alhaku šifante alhabar kul ši duwandi dobuyanoo woo se. \\",
+       "version-poweredby-credits": "Wikiyoo woo ga dira <strong>[https://www.mediawiki.org/ MediaWiki]</strong> ga, teekaw alhaku © 2001-$1 $2.",
+       "version-poweredby-others": "itaney",
+       "version-poweredby-translators": "translatewiki.net berandikey",
+       "version-credits-summary": "Ir ga boona ka borey wey saabu nda ngi kanbuzaamawey [[Special:Version|MediaWiki]] se.",
+       "version-license-info": "MediaWiki ti forba goyjinay; war g'a žemna koyne nda/wala k'a barmay ir Baytal jamaa duɲeyan kaddasu bande (GNU) takaa kaŋ nd'a wallafandi Forba goyjinay sinjiyanoo; a tee duɲeyan kaddasu dumi 2ntoo, wala (nda war gabaa) dumi kokorante foo kul.\n    \nMediaWiki ga žemnanti naataa boŋ ga kaŋ a ga tee nafawhaya, amma BILA NDA GAARANTI; bila nda ba alhakiika nda MAAMALA ALHAALOO  wala nga BOORIYANOO GOYMEE TANA KUL SE. Guna Baytal jamaa duɲeyan kaddasu (GNU) šilbayhayey se.\n\nWar hima ka duu [{{SERVER}}{{SCRIPTPATH}}/Baytal jamaa duɲeyan kaddasu (GNU) celle foo berandi] porogaramoo woo bande; nd'a manti woo, wa hantum Forba goyjinay sinjiyanoo nda konda, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA wala [//www.gnu.org/licenses/old-licenses/gpl-2.0.html caw interneti ra].",
+       "version-software": "Goyjinay sinjante",
+       "version-software-product": "Jinay",
+       "version-software-version": "Dumi",
+       "version-entrypoints": "Hurudoo URL",
+       "version-entrypoints-header-entrypoint": "Hurudoo",
+       "version-entrypoints-header-url": "URL",
+       "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Article path]",
+       "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Script path]",
+       "redirect": "Tuku, goykaw, moo wala boŋtammaasa filla n'a kuubi",
+       "redirect-legend": "Kuubi tuku wala moo ga",
+       "redirect-summary": "Moo cerecerante ga kuubi tuku ga (tuku maa bande), moo (sanda boŋtammaasa wala boŋtammaasa moo), wala goykaw moo (sanda hinna goykaw boŋtammaasa). Goyyan: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/moo/64308]], [[{{#Special:Redirect}}/filla/328429]], wala [[{{#Special:Redirect}}/goykaw/101]].",
+       "redirect-submit": "Koy",
+       "redirect-lookup": "Guna:",
+       "redirect-value": "Hinna:",
+       "redirect-user": "Goykaw boŋtammaasa",
+       "redirect-page": "Moo boŋtammaasa",
+       "redirect-revision": "Moo filla",
+       "redirect-file": "Tuku maa",
+       "redirect-not-exists": "Hinna mana duwandi",
+       "fileduplicatesearch": "Tuku fillantey ceeci",
+       "fileduplicatesearch-summary": "Tuku fillantey kaŋ ga hanga hanga hinnawey ceeci.",
+       "fileduplicatesearch-legend": "Ize fillante ceeci",
+       "fileduplicatesearch-filename": "Tukumaa:",
+       "fileduplicatesearch-submit": "Ceeci",
+       "fileduplicatesearch-info": "biitonbi $1 × $2 <br />Tuku azzaati: $3<br />MIME dumi: $4",
+       "fileduplicatesearch-result-1": "\"$1\" tukoo ši nda fillayan kul.",
+       "fileduplicatesearch-result-n": "\"$1\" tukoo goo nda {{PLURAL:$2|1 fillayan himakašine $2}}.",
+       "fileduplicatesearch-noresults": "Tuku kul ši bara nda \"$1\" maa.  \\",
+       "specialpages": "Moo cerecerantey",
+       "specialpages-note-top": "Šilbaymaana",
+       "specialpages-note": "* Hankul cerecere moɲey.\n* <span class=\"mw-specialpagerestricted\">Fondo-kankamante cerecere moɲey.</span>",
+       "specialpages-group-maintenance": "Alhaadimay bayrandey",
+       "specialpages-group-other": "Cerecere moo taney",
+       "specialpages-group-login": "Huru / kontu tee",
+       "specialpages-group-changes": "Barmay nda taariki korawey \\",
+       "specialpages-group-media": "Hẽenandi bayrandey nda zijandiyaney",
+       "specialpages-group-users": "Goykey nd'alhakey",
+       "specialpages-group-highuse": "Goy-beeri moɲey",
+       "specialpages-group-pages": "Moɲey maašeedaa",
+       "specialpages-group-pagetools": "Moo goyjinawey",
+       "specialpages-group-wiki": "Bayhaya nda goyjinawey",
+       "specialpages-group-redirects": "Goo ma cerecere moɲey kuubi",
+       "specialpages-group-spam": "Žiibi goyjinawey",
+       "blankpage": "Moo koonu",
+       "intentionallyblankpage": "Moɲoo woo n' ka hawandi ka tee koonu.",
+       "external_image_whitelist": " #Leave this line exactly as it is<pre>\n#Put regular expression fragments (just the part that goes between the //) below\n#These will be matched with the URLs of external (hotlinked) images\n#Those that match will be displayed as images, otherwise only a link to the image will be shown\n#Lines beginning with # are treated as comments\n#This is case-insensitive\n\n#Put all regex fragments above this line. Leave this line exactly as it is</pre>",
+       "tags": "Barmay kanji henney",
+       "tag-filter": "[[Special:Tags|Kanji]] gaŋa:",
+       "tag-filter-submit": "Gaŋa",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Kanji|Kanjey}}]]: $2)",
+       "tags-title": "Kanjey",
+       "tags-intro": "Moɲoo woo ka kanjey cebe kaŋ goyjinaa k'i ka barmay šilbay, nda ngi maanaa. \\",
+       "tags-tag": "Kanji maa",
+       "tags-display-header": "Bangayyan barmay maašeedey ga",
+       "tags-description-header": "Maana šilbayyan timmante",
+       "tags-active-header": "Dirante?",
+       "tags-hitcount-header": "Barmay kanjanteyaŋ?",
+       "tags-active-yes": "Ayyo",
+       "tags-active-no": "Kalaa",
+       "tags-edit": "fasal",
+       "tags-hitcount": "{{PLURAL:$1|Barmay}} $1",
+       "comparepages": "Moɲey deedandi",
+       "compare-page1": "Moo 1",
+       "compare-page2": "Moo 2",
+       "compare-rev1": "Filla 1",
+       "compare-rev2": "Filla 2",
+       "compare-submit": "Deedandi",
+       "compare-invalid-title": "Maaɲoo kaŋ war n'a tabatandi ši boori.",
+       "compare-title-not-exists": "Maaɲoo kaŋ war n'a tabatandi ši bara.",
+       "compare-revision-not-exists": "Fillaa kaŋ war n'a tabatandi ši bara.",
+       "dberr-problems": "Alhaa naŋ! Nungoo woo goo ma dabari šendayyaŋ.",
+       "dberr-again": "Soobay ka batu minitiyaŋ ka zumandi taaga.",
+       "dberr-info": "(Ši hin ka bayhayahugu feršikaa cee: $1)",
+       "dberr-info-hidden": "(Ši hin ka bayhayahugu feršikaa cee)",
+       "dberr-usegoogle": "Saadin war ga hin ka soobay ka ceeci nda Google.",
+       "dberr-outofdate": "Laasaabu kaŋ gundekuna šilbawey ga hin ka tee ižeenayaŋ.",
+       "dberr-cachederror": "Woo ti bereyan tugante moo wirantaa se nd'a ga ka tee ižeena.",
+       "htmlform-invalid-input": "Šendayyaŋ ga bara nda war damhayaa jeroo.",
+       "htmlform-select-badoption": "Hinnaa kaŋ war n'a tabatandi manti suubari henna.",
+       "htmlform-int-invalid": "Hinna kaŋ war n'a tabatandi manti hinna timmante.",
+       "htmlform-float-invalid": "Hinnaa kaŋ war n'a tabatandi manti hinna.",
+       "htmlform-int-toolow": "Hinnaa kaŋ war n'a tabanti goo $1 ikaccu cire.",
+       "htmlform-int-toohigh": "Hinnaa kaŋ war n'a tabatandi goo $1 ibeeri boŋ.",
+       "htmlform-required": "Hinnaa ka waažibandi.",
+       "htmlform-submit": "Sanba",
+       "htmlform-reset": "Barmawey taafeeri",
+       "htmlform-selectorother-other": "Tana",
+       "htmlform-no": "Kalaa",
+       "htmlform-yes": "Ayyo",
+       "htmlform-chosen-placeholder": "Suubari foo zaa",
+       "htmlform-cloner-create": "Tonton koyne",
+       "htmlform-cloner-delete": "Kaa",
+       "htmlform-cloner-required": "Nd'ajaase hinna foo ga waažibandi.",
+       "sqlite-has-fts": "$1 nda hantum-timmante ceeci gaakašinay",
+       "sqlite-no-fts": "$1 bila nda hantum-timmante  ceeci gaakašinay",
+       "logentry-delete-delete": "$1  {{GENDER:$2|na}} moo $3 tuusu",
+       "logentry-delete-restore": "$1 {{GENDER:$2|na}} moo yeeti $3",
+       "logentry-delete-event": "$1 {{GENDER:$2|na}} diira sahã barmay {{PLURAL:$5|taariki teera $5}} se $3 ga: $4",
+       "logentry-delete-revision": "$1 {{GENDER:$2|na}} diira sahã barmay {{PLURAL:$5|filla $5}} se moo $3 ga: $4",
+       "logentry-delete-event-legacy": "$1 {{GENDER:$2|na}} taariki teerey diira sahã barmay $3 ga",
+       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|na}} fillawey diira sahã barmay moo $3 ga",
+       "logentry-suppress-delete": "$1 {{GENDER:$2|na}} moo $3 tuusu",
+       "logentry-suppress-event": "$1 gundu {{GENDER:$2|ka}} diira sahã barmay {{PLURAL:$5|teera taariki $5}} se $3 ga: $4",
+       "logentry-suppress-revision": "$1 gundu {{GENDER:$2|ka}} diira sahã barmay {{PLURAL:$5|filla $5}} se $3 ga: $4",
+       "logentry-suppress-event-legacy": "$1 gundu {{GENDER:$2|ka}} diira sahã barmay taariki teerey se $3 ga",
+       "logentry-suppress-revision-legacy": "$1 gundu {{GENDER:$2|ka}} diira sahã barmay fillawey se moo $3 ga",
+       "revdelete-content-hid": "gundekuna tugante",
+       "revdelete-summary-hid": "duurandi tugante fasal",
+       "revdelete-uname-hid": "goykawmaa tugante",
+       "revdelete-content-unhid": "gundekuna bangante",
+       "revdelete-summary-unhid": "duurandi bangante fasal",
+       "revdelete-uname-unhid": "goykaw bangante",
+       "revdelete-restricted": "kankamandiyaney kanandi juwalkey ga \\",
+       "revdelete-unrestricted": "kankamandiyaney kaa juwalkey se",
+       "logentry-merge-merge": "$1 na $3 {{GENDER:$2|marga}} k'a tee $4 (fillawey hala $5)",
+       "logentry-move-move": "$1 na moo $3 {{GENDER:$2|ganandi}} $4 ga",
+       "logentry-move-move-noredirect": "$1 na moo $3 {{GENDER:$2|ganandi}} $4 ga bila nd'a ma kuubiyan foo naŋ",
+       "logentry-move-move_redir": "$1 na moo $3 {{GENDER:$2|ganandi}} $4 ga kuubiyan boŋ",
+       "logentry-move-move_redir-noredirect": "$1 na moo $3 {{GENDER:$2|ganandi}} $4 ga kuubiyan boŋ bila nd'a ma kuubiyan naŋ",
+       "logentry-patrol-patrol": "$1 na filla $4 {{GENDER:$2|šilbay}} moo $3 se k'a tee kurante",
+       "logentry-patrol-patrol-auto": "Nga boŋše no $1 na filla $4 {{GENDER:$2|šilbay}} moo $3 se k'a tee kurante",
+       "logentry-newusers-newusers": "Goykaw kontu $1 n' ka {{GENDER:$2|teendi}}",
+       "logentry-newusers-create": "Goykaw kontu $1 n' ka {{GENDER:$2|teendi}}",
+       "logentry-newusers-create2": "$1 n' ka goykaw kontu $3 {{GENDER:$2|tee}}",
+       "logentry-newusers-byemail": "$1 n' ka goykaw kontu $3 {{GENDER:$2|tee}} nd'a na šennikufal sanba bataga ra \\",
+       "logentry-newusers-autocreate": "Goykaw kontu $1 n' ka {{GENDER:$2|tee}} nga boŋše",
+       "logentry-rights-rights": "$1 na kondayzetaray {{GENDER:$2|barmay}} $3 se, ka $4 naŋ ka $5 dam",
+       "logentry-rights-rights-legacy": "$1 na kondayzetaray {{GENDER:$2|barmay}} $3 se",
+       "logentry-rights-autopromote": "$1 sahãa n' ka {{GENDER:$2|tonton}} nga boŋše, ka hun $4 ga ka tee $5",
+       "logentry-upload-upload": "$1 na $3 {{GENDER:$2|zijandi}}",
+       "logentry-upload-overwrite": "$1 na dumi taaga {{GENDER:$2|zijandi}} $3 se",
+       "logentry-upload-revert": "$1 na $3 {{GENDER:$2|zijandi}}",
+       "rightsnone": "(baffoo)",
+       "revdelete-summary": "duurandi fasal",
+       "feedback-bugornote": "Nda war soolu ka dabari šenday šilbay ka tonton, [$1 hasaraw bayrandi hantum].\nNd'a manti woo, war ga hin ka goy nda takkada faalaa ne ganda. War laasaaboo ka tonton \"[$3 $2]\" moɲoo ga, war goykawmaaɲoo bande.",
+       "feedback-subject": "Teekaw",
+       "feedback-message": "Alhabar:",
+       "feedback-cancel": "Naŋ",
+       "feedback-submit": "Willandi sanba",
+       "feedback-adding": "Goo ma willandi tonton moɲoo ga…",
+       "feedback-error1": "Firka: hunyan šibayante porogaram hantumyan gunaridoo (API) ga",
+       "feedback-error2": "Firka: fasalyan kaŋ",
+       "feedback-error3": "Firka: Zaabi kul ši hun API do",
+       "feedback-thanks": "Foo nda goy! War willandoo n' ka wallafandi \"[$2 $1]\" moɲoo ga.",
+       "feedback-close": "A ben",
+       "feedback-bugcheck": "A boori! Koroši de wala woo manti [hasaraw bayrandi $1] affaa. \\",
+       "feedback-bugnew": "Ay n'a koroši. Hasaraw bayrandi sanba",
        "searchsuggest-search": "Ceeci",
+       "searchsuggest-containing": "goo nda…",
+       "api-error-badaccess-groups": "War ši nda fondo ka tukey zijandi wikiyoo woo ga.",
+       "api-error-badtoken": "Kunahere firka: Tokore laala.",
+       "api-error-copyuploaddisabled": "URL zijandiyan n' ka kay feršikaa woo ga.",
+       "api-error-duplicate": "{{PLURAL:$1|ti [ti tuku tana $2]}} kaŋ ga bara interneti nungoo ga ka ben nda gundakuna follokaa da.",
+       "api-error-duplicate-archive": "{{PLURAL:$1|ti [ti tuku tana $2]}} kaŋ ga bara interneti nungoo ga ka ben nda gundakuna follokaa da, amma {{PLURAL:$1|an' ka|in' ka}} tuusandi.",
+       "api-error-duplicate-archive-popup-title": "Fillayan {{PLURAL:$1|tukoo kaŋ n' ka|tukey kaŋ n' ka}} tuusandi ka ben.",
+       "api-error-duplicate-popup-title": "Fillayan {{PLURAL:$1|tukoo|tukey}}.",
+       "api-error-empty-file": "Tukoo kaŋ war n'a sanba mma koonu.",
+       "api-error-emptypage": "Boro ši hin ka moo taaga, koonuyaŋ tee.",
+       "api-error-fetchfileerror": "Kunahere firka: Haya foo mana boori tuku zaayan waate.",
+       "api-error-fileexists-forbidden": "Tuku nda \"$1\" maa ga bara ka ben, nda haya ši hin ka hantumandi a boŋ.",
+       "api-error-fileexists-shared-forbidden": "Tuku nda \"$1\" maa ga bara ka ben tuku jišidoo žemnate ra, nda haya ši hin ka hantumandi a boŋ.",
+       "api-error-file-too-large": "Tukoo kaŋ war n'a sanba mma hansa ka beeri.",
+       "api-error-filename-tooshort": "Tukumaaɲoo ga hansa ka duura.",
+       "api-error-filetype-banned": "Tuku dumoo woo n' ka barrandi.",
+       "api-error-filetype-banned-type": "$1 {{PLURAL:$4|manti tuku dumi duɲante|manti tuku dumi duɲanteyaŋ}}. {{PLURAL:$3|Tuku dumi ti|Tuku dumi ti}} $2 ka duɲe.",
+       "api-error-filetype-missing": "Dobuyan foo ga kuma tukumaaɲoo ra.",
+       "api-error-hookaborted": "Dobuyan foo na barmayyanoo kaŋ war ceeci k'a tee say.",
+       "api-error-http": "Kunahere firka: Ši hin ka dobu feršikaa ga.",
+       "api-error-illegal-filename": "Tukumaaɲoo ši nda fondo.",
+       "api-error-internal-error": "Kunahere firka: Haya foo mana boori kaŋ war ga soobay ka haya zijandi wikiyoo ga.",
+       "api-error-invalid-file-key": "Kunahere firka: Tukoo mana duwandi waati-duura jišidoo ra.",
+       "api-error-missingparam": "Kunahere firka: Kayandiyan hãantey ga kuma.",
+       "api-error-missingresult": "Kunahere firka: Mana hin ka tabatandi wala bereyanoo tee ka boori.",
+       "api-error-mustbeloggedin": "War ga hima ka huru to tukey zijandey.  \\",
+       "api-error-mustbeposted": "Kunahere firka: Hãayan ga HTTP WALLAFIYAN waažibandi. \\",
+       "api-error-noimageinfo": "Zijandiyanoo boori, amma feršikaa man'ir noo alhabar kul tukoo ga.",
+       "api-error-nomodule": "Kunahere firka: Zijandiyan dunbu kul mana kayandi.",
+       "api-error-ok-but-empty": "Kunahere firka: Zaabi kul ši hun feršikaa do.",
+       "api-error-overwrite": "Boro ši hin ka hantum tuku barante boŋ.",
+       "api-error-stashfailed": "Kunahere firka: Feršika mongu ka waati-duura tuku yeeti.",
+       "api-error-publishfailed": "Kunahere firka: Feršika mongu ka waati-duura tuku wallafi.",
+       "api-error-stasherror": "Firka bangay kaŋ tuku ga zijandi titilaa boŋ.",
+       "api-error-stashedfilenotfound": "Tuku titilantaa mana duwandi waatoo kaŋ boro ceeci k'a zijandi ka hun titilaa ga.",
+       "api-error-stashpathinvalid": "Fondaa kaŋ ga tuku titilantaa hima ka duwandi ši boori.",
+       "api-error-stashfilestorage": "Firka bangay waatoo kaŋ tukoo ga jisandi titilaa ra.",
+       "api-error-stashzerolength": "Feršikaa mana hin ka tukoo deke, zama nga kuuyanoo ti yaada.",
+       "api-error-stashnotloggedin": "War ga hima ka tukey gaabu zijandi titilaa ra.",
+       "api-error-stashwrongowner": "War ši tukoo din may kaŋ war cindi k'a ceeci titilaa ra.",
+       "api-error-stashnosuchfilekey": "Tukoo kaŋ war cindi k'a ceeci titilaa ra ši bara.",
+       "api-error-timeout": "Feršikaa mana tuuru waatoo kaŋ ga hima ra.",
+       "api-error-unclassified": "Firka šibayante bangay.",
+       "api-error-unknown-code": "Firka šibayante: \"$1\".",
+       "api-error-unknown-error": "Kunahere firka: Haya foo mana boori kaŋ war ceeci ka war tukoo zijandi.",
+       "api-error-unknown-warning": "Yaamar šibayante: \"$1\".",
+       "api-error-unknownerror": "Firka šibayante: \"$1\".",
+       "api-error-uploaddisabled": "Zijandiyan n' ka kay wikiyoo woo ga. \\",
+       "api-error-verification-error": "A ga hin ka tee tukoo woo laybu, wal'a goo nda dobuyan laala.",
+       "duration-seconds": "{{PLURAL:$1|Segondu}} $1",
+       "duration-minutes": "{{PLURAL:$1|Miniti}} $1",
+       "duration-hours": "{{PLURAL:$1|Guuru}} $1",
+       "duration-days": "{{PLURAL:$1|Zaari}} $1",
+       "duration-weeks": "{{PLURAL:$1|Jirbiyye}} $1",
+       "duration-years": "{{PLURAL:$1|Jiiri}} $1",
+       "duration-decades": "{{PLURAL:$1|Jiiriwoy}} $1",
+       "duration-centuries": "{{PLURAL:$1|Jiirizangu}} $1",
+       "duration-millennia": "{{PLURAL:$1|Jiiriženber}} $1",
+       "rotate-comment": "Biyoo n' ka kuubi nda {{PLURAL:$1|degere}} $1 montar diray bande",
+       "limitreport-title": "Fesu-fesukaw alhaali bayahaya:",
+       "limitreport-cputime": "Ordinater lakkal waati goyyan \\",
+       "limitreport-cputime-value": "{{PLURAL:$1|segondu}} $1",
+       "limitreport-walltime": "Waati-cimi goyyan",
+       "limitreport-walltime-value": "{{PLURAL:$1|segondu}} $1",
+       "limitreport-ppvisitednodes": "Ordinater jine-lakkal na sankay-ordinater kabu guna",
+       "limitreport-ppvisitednodes-value": "$1/$2",
+       "limitreport-ppgeneratednodes": "Ordinater jine-lakkal na sankay-ordinater kabu tee",
+       "limitreport-ppgeneratednodes-value": "$1/$2",
+       "limitreport-postexpandincludesize": "Feeriyan-banda goo nd'azzaati",
+       "limitreport-postexpandincludesize-value": "{{PLURAL:$2|Cebsi}} $1/$2",
+       "limitreport-templateargumentsize": "Leeti yeedi azzaati",
+       "limitreport-templateargumentsize-value": "{{PLURAL:$2|Cebsi}} $1/$2",
+       "limitreport-expansiondepth": "Feeriyan kul iguusa",
+       "limitreport-expansiondepth-value": "$1/$2",
+       "limitreport-expensivefunctioncount": "Fesu-fesukaw goymee kabu caada",
+       "limitreport-expensivefunctioncount-value": "$1/$2",
+       "expandtemplates": "Leetey feeri",
+       "expand_templates_intro": "Moo cerecerantaa ga hantum zaa nd'a ga filla ka leetey kul feeri a ra.\nA ga fesu-fesukaw goymee gaakašinantey da feeri sanda\n<code><nowiki>{{</nowiki>#language:…}}</code> and variables like\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\nNda cimi a ga haya kul feeri kaŋ ga bara holgu-hinka game.",
+       "expand_templates_title": "Wanga maa, {{FULLPAGENAME}} se, nda tana:",
+       "expand_templates_input": "Damhaya hantum:",
+       "expand_templates_output": "Hunyan",
+       "expand_templates_xml_output": "XML fattari",
+       "expand_templates_html_output": "HTML fattari gani",
+       "expand_templates_ok": "Ayyo",
+       "expand_templates_remove_comments": "Daarawey kaa",
+       "expand_templates_remove_nowiki": "<nowiki> Kanjey kaa hunyanoo ra",
+       "expand_templates_generate_xml": "XML fesu-fesuyan tuuri cebe",
+       "expand_templates_generate_rawhtml": "HTML gani cebe",
+       "expand_templates_preview": "Moofur",
+       "pagelanguage": "Moo šenni suubakaw",
+       "pagelang-name": "Moo",
+       "pagelang-language": "Šenni",
+       "pagelang-use-default": "Goy nda tilasu šenni",
+       "pagelang-select-lang": "Šenni suuba",
+       "right-pagelang": "Moo šenni barmay",
+       "action-pagelang": "Moo šennoo barmay",
+       "log-name-pagelang": "Šenni taariki barmay",
+       "log-description-pagelang": "Woo ti barmay taariki moo šenney se.",
+       "logentry-pagelang-pagelang": "$1 na moo šenni {{GENDER:$2|barmay}} $3 se ka hun $4 ga ka tee $5.",
+       "default-skin-not-found": "Aywaa! Tilasu kuuroo kaŋ tabatandi war wikiyoo se <code dir=\"ltr\">$wgDefaultSkin</code> ra sanda <code>$1</code>, ši bara.\n\nWar sinjiyanoo ga hima ka bara nda kuurawey wey. Guna [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] ka duu alhabar taka kaŋ nda boro ga hin k'i tunandi nda tilasoo suuba.\n\n$2\n\n; Nda war mana gay ka MediaWiki sinji:\n: A ga tee war n'a sinji \"git\" ga, wala war n'a zaa za aššil ašariyaa ga dabari tana foo. Woo goo naataa ra. Ceeci ka kuuruyan sinji [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] ga, nda:\n:* Zumandiyan [https://www.mediawiki.org/wiki/Download tarball installer], kaŋ ga kaa nda kuuru nda dobuyan booboyaŋ. War ga hin ka <code>kuurey/</code> fooloɲaŋoo berandi nd'a dobu ka hun a ga.\n:* <code>mediawiki/skins/*</code> Jišidogey affoo fillayan \"git\" ra ka huru <code dir=\"ltr\">skins/</code> fooloɲaŋoo ra MediaWiki sinjiyanoo se.\n: Woo teeroo ši ganji war \"git\" jišidogoo nakaši nda war ti MediaWiki cinakaw.\n\n; Nda war mana gay ka MediaWiki taagandi:\n: MediaWiki 1.24 wala dumi taagante ši kuuru sinjnatey tunandi koyne ngi boŋše (guna [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). War ga hin ka zuuwey wey dobu ka <code>LocalSettings.php</code> ra ka kuuru sinjantey kul tunandi:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Nda war mana gay ka <code>LocalSettings.php</code> barmay:\n: Kuuru maaɲey koroši boryo hantum firkawey se.",
+       "default-skin-not-found-no-skins": "Ayway! Tilasu kuuroo wikiyoo se, kaŋ tabatandi <code>$wgDefaultSkin</code> ra sanda <code>$1</code>, si bara.\n\nWar ši nda kuuru sinjante kulyaŋ.\n; Nda war mana gay ka MediaWiki sinji wala k'a taagandi:\n: A ga hin ka tee war sinja \"git\" ga, wal'a zaa za aššil ašariyaa do nda dabari tana foo. Woo goo naataa ra. MediaWiki 1.24 nd'itaaga ši nda kuuruyaŋ kul jišidoo beeroo ta. Ceeci ka kuuruyaŋ sinji ka hun  [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] ga, nda:\n:* Zumandi [https://www.mediawiki.org/wiki/Download tarball installer], kaŋ ga kaa nda kuuru nda dobu booboyaŋ. War ga hin ka <code>kuurey/</code> fooloɲaŋoo berandi ka hun a ga.\n:* <code>mediawiki/Kuurey/*</code> jišidogey fillayan \"git\" ra  ka huru <code dir=\"ltr\">kuurey/</code> fooloɲaŋoo ra war MediaWiki sinjiyanoo se.\n: Woo teeroo ši hima ka war \"git\" jišidogoo goy alhaalo barmay nda war ti MediaWiki cinakaw. Guna [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] ka dii taka kaŋ nda boro ga hin ka kuurey tunandi nda tilasoo suuba.\n\\",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (tunante)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''n' ka kay''')",
+       "mediastatistics": "Hẽenandihaya kabu-izey",
+       "mediastatistics-summary": "Kabu-izey tuku dumi zijantey ga. Tukoo dumi kul ikokorantaa hinne bara woo ra. Tukey dumi žeeney nda tuusantey faya ka hun i ra.",
+       "mediastatistics-nfiles": "$1 ($2%)",
+       "mediastatistics-nbytes": "{{PLURAL:$1|Cebsi $1}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME dumi",
+       "mediastatistics-table-extensions": "Dobuyaney hinantey",
+       "mediastatistics-table-count": "Tuku hinnaa",
+       "mediastatistics-table-totalbytes": "Azzaati margante",
+       "mediastatistics-header-unknown": "Šibayante",
+       "mediastatistics-header-bitmap": "Bitmap biyey",
+       "mediastatistics-header-drawing": "Biižeerey (tonbi biyey)",
+       "mediastatistics-header-audio": "Jinde",
+       "mediastatistics-header-video": "Widewoyaŋ",
+       "mediastatistics-header-multimedia": "Hẽenandi haya tiŋa",
+       "mediastatistics-header-office": "Biro",
+       "mediastatistics-header-text": "Hantumhaya",
+       "mediastatistics-header-executable": "Teerahayey",
+       "mediastatistics-header-archive": "Takari kankamantey",
+       "json-warn-trailing-comma": "I na {{PLURAL:$1|golbi}} bunnante $1 kaa JSON ra",
+       "json-error-unknown": "Boŋhaway foo bara JSON bande. Firka: $1",
+       "json-error-depth": "A n' ka margari guusuyan fellaa hoo",
+       "json-error-state-mismatch": "JSON ši boori wal'a laybu",
+       "json-error-ctrl-char": "Dabari harfu firka, a ga tee gundu hantumoo mana boori",
        "json-error-syntax": "Nahaw firka",
-       "json-error-utf8": " UTF-8 harfu laybanteyaŋ, sanda ašariya hantum laala bande",
-       "json-error-recursion": "Feeriyan foo wala hinna tana ga filla kaŋ asariyaa ga hantumandi ra",
-       "json-error-inf-or-nan": "NAN wala INF hinna foo wal'ibooboyaŋ goo hinna kaŋ ašariyaa ga hantumandi ra",
+       "json-error-utf8": " UTF-8 harfu laybanteyaŋ, a ga tee gundu hantumoo mana boori",
+       "json-error-recursion": "Feeriyan foo wala hinna tana ga filla kaŋ hinna kaŋ gundu ašariyaa ga hantumandi",
+       "json-error-inf-or-nan": "NAN wala INF hinna foo wal'ibooboyaŋ goo hinnaa ra kaŋ ašariyaa ga hantumandi",
        "json-error-unsupported-type": "Hinna noondi kaŋ dumoo ašariya ši hin ka hantumandi"
 }
index bf93633..b28a7db 100644 (file)
        "logentry-newusers-newusers": "$1 је {{GENDER:$2|отворио|отворила}} кориснички налог",
        "logentry-newusers-create": "$1 је {{GENDER:$2|отворио|отворила}} кориснички налог",
        "logentry-newusers-create2": "$1 је {{GENDER:$2|отворио|отворила}} кориснички налог $3",
-       "logentry-newusers-byemail": "Кориснички налог $3 је {{GENDER:$2|направљен}} од стране $1 и лозинка је послата на е-пошту",
+       "logentry-newusers-byemail": "$1 је {{GENDER:$2|направио|направила}} кориснички налог $3 и лозинка је послата на е-пошту",
        "logentry-newusers-autocreate": "Кориснички налог $1 је аутоматски {{GENDER:$2|отворен}}",
        "logentry-rights-rights": "$1 је {{GENDER:$2|променио|променила}} чланство групе за $3 из $4 у $5",
        "logentry-rights-rights-legacy": "$1 је {{GENDER:$2|променио|променила}} чланство групе за $3",
index fe87203..eb0d42f 100644 (file)
        "logentry-newusers-newusers": "$1 je {{GENDER:$2|otvorio|otvorila}} korisnički nalog",
        "logentry-newusers-create": "$1 je {{GENDER:$2|otvorio|otvorila}} korisnički nalog",
        "logentry-newusers-create2": "$1 je {{GENDER:$2|otvorio|otvorila}} korisnički nalog $3",
-       "logentry-newusers-byemail": "Korisnički nalog $3 je {{GENDER:$2|napravljen}} od strane $1 i lozinka je poslata na e-poštu",
+       "logentry-newusers-byemail": "$1 je {{GENDER:$2|napravio|napravila}} korisnički nalog $3 i lozinka je poslata na e-poštu",
        "logentry-newusers-autocreate": "Korisnički nalog $1 je automatski {{GENDER:$2|otvoren}}",
        "logentry-rights-rights": "$1 je {{GENDER:$2|promenio|promenila}} članstvo grupe za $3 iz $4 u $5",
        "logentry-rights-rights-legacy": "$1 je {{GENDER:$2|promenio|promenila}} čalnstvo grupe za $3",
index e91800e..24a9572 100644 (file)
@@ -25,7 +25,8 @@
                        "Withoutaname",
                        "לערי ריינהארט",
                        "아라",
-                       "Tranquanganh"
+                       "Tranquanganh",
+                       "Max20091"
                ]
        },
        "tog-underline": "Gạch chân liên kết:",
@@ -38,7 +39,7 @@
        "tog-showtoolbar": "Hiển thị thanh định dạng",
        "tog-editondblclick": "Nhấn đúp để sửa đổi trang",
        "tog-editsectiononrightclick": "Bấm chuột phải vào đề mục để sửa đổi phần trang",
-       "tog-watchcreations": "Tự động theo dõi các trang tôi viết mới và các tập tin tôi tải lên",
+       "tog-watchcreations": "Tự động theo dõi các trang tôi viết và các tập tin tôi tải lên",
        "tog-watchdefault": "Tự động theo dõi các trang và tập tin tôi sửa",
        "tog-watchmoves": "Tự động theo dõi các trang và tập tin tôi di chuyển",
        "tog-watchdeletion": "Tự động theo dõi các trang và tập tin tôi xóa",
index 12154de..78f36cd 100644 (file)
        "sort-descending": "降序",
        "sort-ascending": "升序",
        "nstab-main": "页面",
-       "nstab-user": "用户页",
+       "nstab-user": "用户页",
        "nstab-media": "媒体文件页面",
        "nstab-special": "特殊页面",
        "nstab-project": "项目页面",
index 02ddab5..c1c2635 100644 (file)
        "viewsourcetext": "您可以檢視並複製此頁面的原始碼。",
        "viewyourtext": "您可以檢視並複製此頁面中<strong>您編輯</strong>的原始碼:",
        "protectedinterface": "本頁用來提供此 Wiki 軟體介面上的文字,並且已被設為保護以防止惡意修改。\n如欲增加或修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net] 上的 MediaWiki 在地化專案。",
-       "editinginterface": "<strong>è­¦å\91\8aï¼\9a</strong>æ\82¨æ­£å\9c¨ç·¨è¼¯ç\9a\84é \81é\9d¢æ\98¯ç\94¨ä¾\86æ\8f\90ä¾\9bè»\9fé«\94ä»\8bé\9d¢ä¸\8aç\9a\84æ\96\87å­\97ã\80\82\næ\9b´æ\94¹æ­¤é \81å°\87å½±é\9f¿å\85¶ä»\96å\9c¨æ­¤ Wiki ä¸\8aç\9a\84使ç\94¨è\80\85ä»\8bé\9d¢å¤\96è§\80。",
-       "translateinterface": "如欲修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net]上的 MediaWiki 在地化專案。",
+       "editinginterface": "<strong>è­¦å\91\8aï¼\9a</strong>æ\82¨æ­£å\9c¨ç·¨è¼¯ç\9a\84é \81é\9d¢æ\96\87å­\97æ\98¯ç\94¨ä¾\86ä½\9cç\82ºè»\9fé«\94ä»\8bé\9d¢ä½¿ç\94¨ã\80\82\næ\9b´æ\94¹æ­¤é \81é\9d¢å°\87æ\9c\83å½±é\9f¿å\85¶ä»\96使ç\94¨è\80\85å\9c¨æ­¤ Wiki ä¸\8aç\9c\8bå\88°ç\9a\84使ç\94¨è\80\85ä»\8bé\9d¢。",
+       "translateinterface": "如欲修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net] 上的 MediaWiki 在地化專案。",
        "cascadeprotected": "此頁面被保護無法編輯,因為此頁面被以下開啟 \"連鎖保護\" 選項的{{PLURAL:$1|一頁|數頁}}保護頁面引用:\n$2",
        "namespaceprotected": "您沒有權限編輯 <strong>$1</strong> 命名空間的頁面。",
        "customcssprotected": "您並沒有權限編輯此 CSS 頁面,因為此頁面包含了其他使用者的個人設定。",
        "search-result-category-size": "$1 位成員 ($2 個子分類,$3 個檔案)",
        "search-redirect": "(重新導向 $1)",
        "search-section": "(章節 $1)",
-       "search-category": "(分類 $1)",
+       "search-category": "(分類 $1)",
        "search-file-match": "(符合檔案內容)",
        "search-suggest": "您指的是不是:$1",
        "search-interwiki-caption": "姐妹專案",
        "searchresultshead": "搜尋",
        "stub-threshold": "<a href=\"#\" class=\"stub\">短頁面連結</a>格式門檻值 (位元組):",
        "stub-threshold-disabled": "已停用",
-       "recentchangesdays": "近期變更的顯示天數:",
+       "recentchangesdays": "近期變更顯示的天數:",
        "recentchangesdays-max": "最多 $1 {{PLURAL:$1|天}}",
        "recentchangescount": "預設顯示的編輯數:",
        "prefs-help-recentchangescount": "這包含近期變更、頁面歷史以及日誌。",
        "right-editmyuserjs": "編輯自己的使用者 JavaScript 檔",
        "right-viewmywatchlist": "檢視自己的監視清單",
        "right-editmywatchlist": "編輯自己的監視清單。注意,即使無此權限,某些操作仍會新增頁面至監視清單。",
-       "right-viewmyprivateinfo": "檢視自己的私隱資料(如:電子郵件位址及真實姓名)",
-       "right-editmyprivateinfo": "編輯自己的隱私資料(如:電子郵件位址及真實姓名)",
+       "right-viewmyprivateinfo": "檢視自己的私隱資料 (如:電子郵件位址及真實姓名)",
+       "right-editmyprivateinfo": "編輯自己的隱私資料 (如:電子郵件位址及真實姓名)",
        "right-editmyoptions": "編輯自己的偏好設定",
        "right-rollback": "快速還原最後一位使用者對某一頁面的編輯",
        "right-markbotedits": "標示還原編輯為機械人編輯",
        "recentchanges-legend": "近期變更選項",
        "recentchanges-summary": "追蹤 Wiki 中此頁面的近期變更。",
        "recentchanges-noresult": "於指定時間內沒有符合條件的變更。",
-       "recentchanges-feed-description": "追蹤此訂閱中該 Wiki 的近期變更。",
+       "recentchanges-feed-description": "追蹤 Wiki 中此訂閱來源的近期變更。",
        "recentchanges-label-newpage": "該編輯建立新頁面",
        "recentchanges-label-minor": "該編輯是一個小修訂",
        "recentchanges-label-bot": "該編輯由機器人執行",
        "recentchangeslinked": "相關變更",
        "recentchangeslinked-feed": "相關變更",
        "recentchangeslinked-toolbox": "相關變更",
-       "recentchangeslinked-title": "與 \"$1\" 相關變更",
+       "recentchangeslinked-title": "與 \"$1\" 相關變更",
        "recentchangeslinked-summary": "此頁面列出指定頁面連結到的所有頁面中 (或指定分類中的所有成員) 有做變更的頁面清單。\n有在 [[Special:Watchlist|您的監視清單]] 中的頁面會以 <strong>粗體</strong> 標示。",
        "recentchangeslinked-page": "頁面名稱:",
        "recentchangeslinked-to": "改顯示連結至指定頁面的變更",
        "mywatchlist": "監視清單",
        "watchlistfor2": "$1 的監視清單 $2",
        "nowatchlist": "您的監視清單沒有任何項目。",
-       "watchlistanontext": "請先登入以檢視或修改在監控表的項目",
+       "watchlistanontext": "請先登入以檢視或修改在監控清單的項目。",
        "watchnologin": "尚未登入",
        "addwatch": "新增至監視清單",
        "addedwatchtext": "已於[[Special:Watchlist|您的監視清單]]新增頁面 \"[[:$1]]\"。\n未來對此頁面及其關聯的對話頁面的變更將會在此清單中列出。",
        "tooltip-pt-userpage": "您的使用者頁面",
        "tooltip-pt-anonuserpage": "您編輯使用的 IP 位址所對應的使用者頁面",
        "tooltip-pt-mytalk": "您的對話頁面",
-       "tooltip-pt-anontalk": "對於來自此 IP 位址編輯的對話",
+       "tooltip-pt-anontalk": "有關來自此 IP 位址編輯的討論",
        "tooltip-pt-preferences": "您的偏好設定",
        "tooltip-pt-watchlist": "您監視變更頁面清單",
        "tooltip-pt-mycontris": "您的貢獻清單",
        "tooltip-search-fulltext": "搜尋使用此文字的頁面",
        "tooltip-p-logo": "參觀主頁面",
        "tooltip-n-mainpage": "參觀主頁面",
-       "tooltip-n-mainpage-description": "å\8f\83訪主頁面",
+       "tooltip-n-mainpage-description": "å\8f\83è§\80主頁面",
        "tooltip-n-portal": "關於本專案、您可以做什麼、哪裡可以找到事情",
        "tooltip-n-currentevents": "尋找新聞中最新動態的背景資訊",
-       "tooltip-n-recentchanges": "列出此 Wiki 中的近期修訂清單",
+       "tooltip-n-recentchanges": "列出此 Wiki 中的近期變更清單",
        "tooltip-n-randompage": "隨機進入一個頁面",
        "tooltip-n-help": "尋求協助的地方",
        "tooltip-t-whatlinkshere": "列出所有連結此頁面的頁面",
        "confirmemail_oncreate": "確認代碼已傳送至您的電子郵件位址。\n登入動作不需要使用此代碼,但開啟在 Wiki 中任何以電子郵件為基礎的功能會需要先提供此代碼。",
        "confirmemail_sendfailed": "{{SITENAME}}無法傳送確認郵件,請檢查電子郵件位址是否包含非法字元。\n\n郵件傳送員回應: $1",
        "confirmemail_invalid": "無效的確認碼,該代碼可能已經過期。",
-       "confirmemail_needlogin": "請 $1 以確認您的電子郵件址。",
+       "confirmemail_needlogin": "請 $1 以確認您的電子郵件址。",
        "confirmemail_success": "您的電子郵件已經被確認。您現在可以[[Special:UserLogin|登入]]並使用此網站了。",
-       "confirmemail_loggedin": "已確認您的電子郵件址。",
-       "confirmemail_subject": "{{SITENAME}} 電子郵件址確認",
+       "confirmemail_loggedin": "已確認您的電子郵件址。",
+       "confirmemail_subject": "{{SITENAME}} 電子郵件址確認",
        "confirmemail_body": "不明人士 (可能是您自己,來自 IP 位址 $1)  已在 {{SITENAME}} 註冊了一個帳號 \"$2\" 並使用了此電子郵件位址。\n\n請確認這個帳號是屬於您的,並使用瀏覽器開啟下方連結以啟用在 {{SITENAME}} 上的電子郵件功能:\n\n$3\n\n若您 *未* 註冊此帳號,\n請開啟下方連結取消電子郵件確認:\n\n$5\n\n此確認代碼會於 $4 過期。",
        "confirmemail_body_changed": "不明人士 (可能是您自己,來自 IP 位址 $1)  已將在 {{SITENAME}} 帳號 \"$2\" 的電子郵件位址更改至此。\n\n請確認這個帳號是屬於您的,並使用瀏覽器開啟下方連結以啟用在 {{SITENAME}} 上的電子郵件功能:\n\n$3\n\n若您 *未* 註冊此帳號,\n請開啟下方連結取消電子郵件確認:\n\n$5\n\n此確認代碼會於 $4 過期。",
        "confirmemail_body_set": "不明人士 (可能是您自己,來自 IP 位址 $1)  已將在 {{SITENAME}} 帳號 \"$2\" 的電子郵件位址設定至此。\n\n請確認這個帳號是屬於您的,並使用瀏覽器開啟下方連結以啟用在 {{SITENAME}} 上的電子郵件功能:\n\n$3\n\n若您 *未* 註冊此帳號,\n請開啟下方連結取消電子郵件確認:\n\n$5\n\n此確認代碼會於 $4 過期。",
        "revdelete-uname-unhid": "取消隱藏使用者名稱",
        "revdelete-restricted": "已套用對管理員的限制",
        "revdelete-unrestricted": "已移除對管理員的限制",
-       "logentry-merge-merge": "$1將$3{{GENDER:$2|合併}}至$4(修訂版本至$5)",
+       "logentry-merge-merge": "$1 將 $3 {{GENDER:$2|合併}}至 $4 (修訂版本至 $5)",
        "logentry-move-move": "$1 {{GENDER:$2|已移動}}頁面 $3 至 $4",
        "logentry-move-move-noredirect": "$1 已移動頁面 $3 至 $4,不留重新導向頁面",
        "logentry-move-move_redir": "$1 已移動頁面 $3 至 $4 並覆蓋原有重新導向",
index afa3ef7..886e3f1 100644 (file)
@@ -39,7 +39,8 @@ class MwSql extends Maintenance {
        }
 
        public function execute() {
-               $wiki = $this->getOption( 'wikidb' ) ?: false;
+               // We wan't to allow "" for the wikidb, meaning don't call select_db()
+               $wiki = $this->hasOption( 'wikidb' ) ? $this->getOption( 'wikidb' ) : false;
                // Get the appropriate load balancer (for this wiki)
                if ( $this->hasOption( 'cluster' ) ) {
                        $lb = wfGetLBFactory()->getExternalLB( $this->getOption( 'cluster' ), $wiki );
index 657a2fc..d1d17cf 100755 (executable)
@@ -178,11 +178,12 @@ class UpdateMediaWiki extends Maintenance {
                        }
                }
 
+               $updater->setFileAccess();
                if ( !$this->hasOption( 'nopurge' ) ) {
                        $updater->purgeCache();
                }
-               $time2 = new MWTimestamp();
 
+               $time2 = new MWTimestamp();
                $timeDiff = $time2->diff( $time1 );
                $this->output( "\nDone in " . $timeDiff->format( "%i:%S" ) . ".\n" );
        }
index b2dfe1e..e53ed54 100644 (file)
@@ -1002,6 +1002,7 @@ return array(
                'dependencies' => array(
                        'jquery.cookie',
                ),
+               'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.toolbar' => array(
                'class' => 'ResourceLoaderEditToolbarModule',
@@ -1604,17 +1605,18 @@ return array(
                        'minerva' => 'resources/lib/oojs-ui/oojs-ui-mediawiki.svg.css',
                ),
                'messages' => array(
+                       'ooui-dialog-message-accept',
+                       'ooui-dialog-message-reject',
+                       'ooui-dialog-process-continue',
+                       'ooui-dialog-process-dismiss',
+                       'ooui-dialog-process-error',
+                       'ooui-dialog-process-retry',
                        'ooui-outline-control-move-down',
                        'ooui-outline-control-move-up',
                        'ooui-outline-control-remove',
                        'ooui-toolbar-more',
                        'ooui-toolgroup-collapse',
                        'ooui-toolgroup-expand',
-                       'ooui-dialog-message-accept',
-                       'ooui-dialog-message-reject',
-                       'ooui-dialog-process-dismiss',
-                       'ooui-dialog-process-error',
-                       'ooui-dialog-process-retry',
                ),
                'dependencies' => array(
                        'es5-shim',
index 6959191..83af863 100644 (file)
@@ -3,16 +3,20 @@
                "authors": [
                        "Fohanno",
                        "Fulup",
-                       "Y-M D"
+                       "Y-M D",
+                       "Maoris"
                ]
        },
        "ooui-outline-control-move-down": "Lakaat an elfenn da ziskenn",
        "ooui-outline-control-move-up": "Lakaat an elfenn da bignat",
        "ooui-outline-control-remove": "Tennañ an elfenn",
        "ooui-toolbar-more": "Muioc'h",
+       "ooui-toolgroup-expand": "Muioc'h",
+       "ooui-toolgroup-collapse": "Nebeutoc'h",
        "ooui-dialog-message-accept": "Mat eo",
        "ooui-dialog-message-reject": "Nullañ",
        "ooui-dialog-process-error": "Un dra bennak a-dreuz a zo bet",
        "ooui-dialog-process-dismiss": "Disteurel",
-       "ooui-dialog-process-retry": "Klask en-dro"
+       "ooui-dialog-process-retry": "Klask en-dro",
+       "ooui-dialog-process-continue": "Kenderc'hel"
 }
index 50d93ea..15624fd 100644 (file)
@@ -23,5 +23,6 @@
        "ooui-dialog-message-reject": "Abbrechen",
        "ooui-dialog-process-error": "Etwas ist schief gelaufen",
        "ooui-dialog-process-dismiss": "Ausblenden",
-       "ooui-dialog-process-retry": "Erneut versuchen"
+       "ooui-dialog-process-retry": "Erneut versuchen",
+       "ooui-dialog-process-continue": "Fortfahren"
 }
index 7b33735..6a212b6 100644 (file)
@@ -15,5 +15,6 @@
        "ooui-dialog-message-reject": "Loobu",
        "ooui-dialog-process-error": "Midagi läks valesti",
        "ooui-dialog-process-dismiss": "Hülga",
-       "ooui-dialog-process-retry": "Proovi uuesti"
+       "ooui-dialog-process-retry": "Proovi uuesti",
+       "ooui-dialog-process-continue": "Jätka"
 }
index efaabed..6262293 100644 (file)
@@ -20,6 +20,8 @@
        "ooui-outline-control-move-up": "Siirrä kohdetta ylöspäin",
        "ooui-outline-control-remove": "Poista kohde",
        "ooui-toolbar-more": "Lisää",
+       "ooui-toolgroup-expand": "Enemmän",
+       "ooui-toolgroup-collapse": "Vähemmän",
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Peruuta",
        "ooui-dialog-process-error": "Jokin meni pieleen",
diff --git a/resources/lib/oojs-ui/i18n/fy.json b/resources/lib/oojs-ui/i18n/fy.json
new file mode 100644 (file)
index 0000000..2aaf960
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Robin0van0der0vliet"
+               ]
+       },
+       "ooui-dialog-message-reject": "Annulearje"
+}
index 2c79fc2..0ff8af8 100644 (file)
@@ -25,5 +25,6 @@
        "ooui-dialog-message-reject": "Annulla",
        "ooui-dialog-process-error": "Qualcosa è andato storto",
        "ooui-dialog-process-dismiss": "Nascondi",
-       "ooui-dialog-process-retry": "Riprova"
+       "ooui-dialog-process-retry": "Riprova",
+       "ooui-dialog-process-continue": "Continua"
 }
index 32856e8..7962336 100644 (file)
@@ -16,5 +16,6 @@
        "ooui-dialog-message-reject": "Откажи",
        "ooui-dialog-process-error": "Нешто не е во ред",
        "ooui-dialog-process-dismiss": "Тргни",
-       "ooui-dialog-process-retry": "Обиди се пак"
+       "ooui-dialog-process-retry": "Обиди се пак",
+       "ooui-dialog-process-continue": "Продолжи"
 }
index 7978673..dea65eb 100644 (file)
@@ -27,5 +27,6 @@
        "ooui-dialog-message-reject": "Anuluj",
        "ooui-dialog-process-error": "Coś poszło nie tak",
        "ooui-dialog-process-dismiss": "Ukryj",
-       "ooui-dialog-process-retry": "Spróbuj ponownie"
+       "ooui-dialog-process-retry": "Spróbuj ponownie",
+       "ooui-dialog-process-continue": "Kontynuuj"
 }
index d02b08b..d261e2d 100644 (file)
@@ -22,5 +22,6 @@
        "ooui-dialog-message-reject": "Cancelar",
        "ooui-dialog-process-error": "Algo correu mal",
        "ooui-dialog-process-dismiss": "Ignorar",
-       "ooui-dialog-process-retry": "Tentar novamente"
+       "ooui-dialog-process-retry": "Tentar novamente",
+       "ooui-dialog-process-continue": "Continuar"
 }
index 17359bd..258f3e7 100644 (file)
@@ -18,5 +18,6 @@
        "ooui-dialog-message-reject": "Revocare",
        "ooui-dialog-process-error": "Ceva nu a funcționat",
        "ooui-dialog-process-dismiss": "Renunțare",
-       "ooui-dialog-process-retry": "Reîncearcă"
+       "ooui-dialog-process-retry": "Reîncearcă",
+       "ooui-dialog-process-continue": "Continuă"
 }
index 649a937..129dd6a 100644 (file)
@@ -15,7 +15,8 @@
                        "Putnik",
                        "Sunpriat",
                        "Yury Katkov",
-                       "Умар"
+                       "Умар",
+                       "Камалист"
                ]
        },
        "ooui-outline-control-move-down": "Переместить элемент вниз",
@@ -28,5 +29,6 @@
        "ooui-dialog-message-reject": "Отмена",
        "ooui-dialog-process-error": "Что-то пошло не так",
        "ooui-dialog-process-dismiss": "Закрыть",
-       "ooui-dialog-process-retry": "Попробовать ещё раз"
+       "ooui-dialog-process-retry": "Попробовать ещё раз",
+       "ooui-dialog-process-continue": "Продолжить"
 }
index 920041b..d5c1e36 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Cheers!",
                        "Jdforrester",
-                       "Minh Nguyen"
+                       "Minh Nguyen",
+                       "Max20091"
                ]
        },
        "ooui-outline-control-move-down": "Chuyển mục xuống",
@@ -16,5 +17,6 @@
        "ooui-dialog-message-reject": "Hủy bỏ",
        "ooui-dialog-process-error": "Đã bị trục trặc",
        "ooui-dialog-process-dismiss": "Bỏ qua",
-       "ooui-dialog-process-retry": "Thử lại"
+       "ooui-dialog-process-retry": "Thử lại",
+       "ooui-dialog-process-continue": "Tiếp tục"
 }
index fa86ea7..b16755e 100644 (file)
@@ -29,5 +29,6 @@
        "ooui-dialog-message-reject": "取消",
        "ooui-dialog-process-error": "发生一些错误",
        "ooui-dialog-process-dismiss": "解除",
-       "ooui-dialog-process-retry": "重试"
+       "ooui-dialog-process-retry": "重试",
+       "ooui-dialog-process-continue": "继续"
 }
index fb172f6..4cac5e5 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (b38d485723)
+ * OOjs UI v0.1.0-pre (12b66051ff)
  * 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-11-04T22:41:55Z
+ * Date: 2014-11-06T19:08:43Z
  */
 /* @noflip */
 .oo-ui-rtl {
index b8da0c7..a2edf03 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (b38d485723)
+ * OOjs UI v0.1.0-pre (12b66051ff)
  * 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-11-04T22:41:45Z
+ * Date: 2014-11-06T19:08:33Z
  */
 /* Instantiation */
 
index 5cc74fc..5bf6e69 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (b38d485723)
+ * OOjs UI v0.1.0-pre (12b66051ff)
  * 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-11-04T22:41:55Z
+ * Date: 2014-11-06T19:08:43Z
  */
 /* @noflip */
 .oo-ui-rtl {
index 32cdc6c..90355a2 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (b38d485723)
+ * OOjs UI v0.1.0-pre (12b66051ff)
  * 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-11-04T22:41:55Z
+ * Date: 2014-11-06T19:08:43Z
  */
 /* @noflip */
 .oo-ui-rtl {
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-framed > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
        left: -1.75em;
 }
+.oo-ui-checkboxInputWidget {
+       position: relative;
+       line-height: 1.6em;
+}
+.oo-ui-checkboxInputWidget * {
+       vertical-align: middle;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"] {
+       opacity: 0;
+       width: 1.6em;
+       height: 1.6em;
+       max-width: none;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"] + span {
+       cursor: pointer;
+       margin: 0 0.4em;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"] + span::before {
+       content: "";
+       position: absolute;
+       left: 0;
+       border-radius: 0.3em;
+       width: 1.6em;
+       height: 1.6em;
+       background-color: #ffffff;
+       border: 1px solid grey;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"]:checked + span::before {
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/check-constructive.svg);
+       background-size: 1.6em, 1.6em;
+       background-repeat: no-repeat;
+       background-position: center top;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"]:active + span::after,
+.oo-ui-checkboxInputWidget input[type="checkbox"]:focus + span::after {
+       content: "";
+       position: absolute;
+       width: 1.6em;
+       height: 1.5em;
+       left: 1px;
+       border-bottom: solid 0.2em #d3d3d3;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled + span {
+       cursor: default;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled + span::before {
+       background-color: lightgrey;
+}
 .oo-ui-textInputWidget {
        position: relative;
        -webkit-box-sizing: border-box;
 .oo-ui-icon-check {
        background-image: /* @embed */ url(themes/mediawiki/images/icons/check.png);
 }
-.oo-ui-image-primary .oo-ui-icon-check,
-.oo-ui-image-primary.oo-ui-icon-check {
-       background-image: /* @embed */ url(themes/mediawiki/images/icons/check-primary.png);
+.oo-ui-image-constructive .oo-ui-icon-check,
+.oo-ui-image-constructive.oo-ui-icon-check {
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/check-constructive.png);
 }
 .oo-ui-image-invert .oo-ui-icon-check,
 .oo-ui-image-invert.oo-ui-icon-check {
index 4a4c374..cd436e2 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (b38d485723)
+ * OOjs UI v0.1.0-pre (12b66051ff)
  * 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-11-04T22:41:45Z
+ * Date: 2014-11-06T19:08:33Z
  */
 /**
  * @class
index 1630dc8..0d399f9 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (b38d485723)
+ * OOjs UI v0.1.0-pre (12b66051ff)
  * 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-11-04T22:41:55Z
+ * Date: 2014-11-06T19:08:43Z
  */
 /* @noflip */
 .oo-ui-rtl {
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-framed > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
        left: -1.75em;
 }
+.oo-ui-checkboxInputWidget {
+       position: relative;
+       line-height: 1.6em;
+}
+.oo-ui-checkboxInputWidget * {
+       vertical-align: middle;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"] {
+       opacity: 0;
+       width: 1.6em;
+       height: 1.6em;
+       max-width: none;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"] + span {
+       cursor: pointer;
+       margin: 0 0.4em;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"] + span::before {
+       content: "";
+       position: absolute;
+       left: 0;
+       border-radius: 0.3em;
+       width: 1.6em;
+       height: 1.6em;
+       background-color: #ffffff;
+       border: 1px solid grey;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"]:checked + span::before {
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/check-constructive.svg);
+       background-size: 1.6em, 1.6em;
+       background-repeat: no-repeat;
+       background-position: center top;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"]:active + span::after,
+.oo-ui-checkboxInputWidget input[type="checkbox"]:focus + span::after {
+       content: "";
+       position: absolute;
+       width: 1.6em;
+       height: 1.5em;
+       left: 1px;
+       border-bottom: solid 0.2em #d3d3d3;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled + span {
+       cursor: default;
+}
+.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled + span::before {
+       background-color: lightgrey;
+}
 .oo-ui-textInputWidget {
        position: relative;
        -webkit-box-sizing: border-box;
 .oo-ui-icon-check {
        background-image: /* @embed */ url(themes/mediawiki/images/icons/check.svg);
 }
-.oo-ui-image-primary .oo-ui-icon-check,
-.oo-ui-image-primary.oo-ui-icon-check {
-       background-image: /* @embed */ url(themes/mediawiki/images/icons/check-primary.svg);
+.oo-ui-image-constructive .oo-ui-icon-check,
+.oo-ui-image-constructive.oo-ui-icon-check {
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/check-constructive.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-check,
 .oo-ui-image-invert.oo-ui-icon-check {
index 62df780..387df23 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (b38d485723)
+ * OOjs UI v0.1.0-pre (12b66051ff)
  * 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-11-04T22:41:45Z
+ * Date: 2014-11-06T19:08:33Z
  */
 ( function ( OO ) {
 
@@ -2856,7 +2856,7 @@ OO.ui.WindowManager.prototype.openWindow = function ( win, data ) {
        // Window opening
        if ( opening.state() !== 'rejected' ) {
                // Begin loading the window if it's not loading or loaded already - may take noticable time
-               // and we want to do this in paralell with any other preparatory actions
+               // and we want to do this in parallel with any other preparatory actions
                if ( !win.isLoading() && !win.isLoaded() ) {
                        // Finish initializing the window (must be done after manager is attached to DOM)
                        win.setManager( this );
@@ -3859,7 +3859,7 @@ OO.ui.GroupElement.prototype.aggregate = function ( events ) {
                groupEvent = events[itemEvent];
 
                // Remove existing aggregated event
-               if ( itemEvent in this.aggregateItemEvents ) {
+               if ( Object.prototype.hasOwnProperty.call( this.aggregateItemEvents, itemEvent ) ) {
                        // Don't allow duplicate aggregations
                        if ( groupEvent ) {
                                throw new Error( 'Duplicate item event aggregation for ' + itemEvent );
@@ -3966,7 +3966,7 @@ OO.ui.GroupElement.prototype.removeItems = function ( items ) {
                                !$.isEmptyObject( this.aggregateItemEvents )
                        ) {
                                remove = {};
-                               if ( itemEvent in this.aggregateItemEvents ) {
+                               if ( Object.prototype.hasOwnProperty.call( this.aggregateItemEvents, itemEvent ) ) {
                                        remove[itemEvent] = [ 'emit', this.aggregateItemEvents[itemEvent], item ];
                                }
                                item.disconnect( this, remove );
@@ -3998,7 +3998,7 @@ OO.ui.GroupElement.prototype.clearItems = function () {
                        !$.isEmptyObject( this.aggregateItemEvents )
                ) {
                        remove = {};
-                       if ( itemEvent in this.aggregateItemEvents ) {
+                       if ( Object.prototype.hasOwnProperty.call( this.aggregateItemEvents, itemEvent ) ) {
                                remove[itemEvent] = [ 'emit', this.aggregateItemEvents[itemEvent], item ];
                        }
                        item.disconnect( this, remove );
@@ -8103,7 +8103,7 @@ OO.ui.LookupInputWidget.prototype.getLookupMenuItems = function () {
                ourRequest;
 
        this.abortLookupRequest();
-       if ( value in this.lookupCache ) {
+       if ( Object.prototype.hasOwnProperty.call( this.lookupCache, value ) ) {
                deferred.resolve( this.getLookupMenuItemsFromData( this.lookupCache[value] ) );
        } else {
                this.lookupInput.pushPending();
@@ -9048,7 +9048,7 @@ OO.ui.InputWidget = function OoUiInputWidget( config ) {
        this.$input
                .attr( 'name', config.name )
                .prop( 'disabled', this.isDisabled() );
-       this.$element.addClass( 'oo-ui-inputWidget' ).append( this.$input );
+       this.$element.addClass( 'oo-ui-inputWidget' ).append( this.$input, $( '<span>' ) );
        this.setValue( config.value );
 };
 
@@ -9955,9 +9955,6 @@ OO.ui.OptionWidget = function OoUiOptionWidget( data, config ) {
                .attr( 'role', 'option' )
                .addClass( 'oo-ui-optionWidget' )
                .append( this.$label );
-       this.$element
-               .prepend( this.$icon )
-               .append( this.$indicator );
 };
 
 /* Setup */
@@ -11153,7 +11150,7 @@ OO.ui.SelectWidget.prototype.getHighlightedItem = function () {
 OO.ui.SelectWidget.prototype.getItemFromData = function ( data ) {
        var hash = OO.getHash( data );
 
-       if ( hash in this.hashes ) {
+       if ( Object.prototype.hasOwnProperty.call( this.hashes, hash ) ) {
                return this.hashes[hash];
        }
 
@@ -11340,7 +11337,7 @@ OO.ui.SelectWidget.prototype.addItems = function ( items, index ) {
        for ( i = 0, len = items.length; i < len; i++ ) {
                item = items[i];
                hash = OO.getHash( item.getData() );
-               if ( hash in this.hashes ) {
+               if ( Object.prototype.hasOwnProperty.call( this.hashes, hash ) ) {
                        // Remove item with same value
                        remove.push( this.hashes[hash] );
                }
@@ -11374,7 +11371,7 @@ OO.ui.SelectWidget.prototype.removeItems = function ( items ) {
        for ( i = 0, len = items.length; i < len; i++ ) {
                item = items[i];
                hash = OO.getHash( item.getData() );
-               if ( hash in this.hashes ) {
+               if ( Object.prototype.hasOwnProperty.call( this.hashes, hash ) ) {
                        // Remove existing item
                        delete this.hashes[hash];
                }
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-constructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-constructive.png
new file mode 100644 (file)
index 0000000..0a6d487
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-constructive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-constructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-constructive.svg
new file mode 100644 (file)
index 0000000..90923d5
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0, 0, 24, 24"><style>* { fill: #00C697 }</style>
+    <g id="check">
+        <path d="M7.105 13.473l1.422-1.423 1.901 1.902 4.81-6.952 1.657 1.148-6.26 8.852z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-primary.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-primary.png
deleted file mode 100644 (file)
index 7566598..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-primary.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-primary.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-primary.svg
deleted file mode 100644 (file)
index 6139b58..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0, 0, 24, 24"><style>* { fill: #598AD1 }</style>
-    <g id="check">
-        <path d="M7.105 13.473l1.422-1.423 1.901 1.902 4.81-6.952 1.657 1.148-6.26 8.852z"/>
-    </g>
-</svg>
index c62df22..f8a990c 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs v1.1.1 optimised for jQuery
+ * OOjs v1.1.2 optimised for jQuery
  * https://www.mediawiki.org/wiki/OOjs
  *
  * Copyright 2011-2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2014-09-11T00:40:09Z
+ * Date: 2014-11-06T17:42:36Z
  */
 ( function ( global ) {
 
@@ -506,11 +506,6 @@ oo.isPlainObject = $.isPlainObject;
                        if ( context === undefined || context === null ) {
                                throw new Error( 'Method name "' + method + '" has no context.' );
                        }
-                       if ( !( method in context ) ) {
-                               // Technically the method does not need to exist yet: it could be
-                               // added before call time. But this probably signals a typo.
-                               throw new Error( 'Method not found: "' + method + '"' );
-                       }
                        if ( typeof context[method] !== 'function' ) {
                                // Technically the property could be replaced by a function before
                                // call time. But this probably signals a typo.
@@ -593,7 +588,7 @@ oo.isPlainObject = $.isPlainObject;
 
                validateMethod( method, context );
 
-               if ( !( event in this.bindings ) || !this.bindings[event].length ) {
+               if ( !hasOwn.call( this.bindings, event ) || !this.bindings[event].length ) {
                        // No matching bindings
                        return this;
                }
@@ -632,7 +627,7 @@ oo.isPlainObject = $.isPlainObject;
        oo.EventEmitter.prototype.emit = function ( event ) {
                var i, len, binding, bindings, args, method;
 
-               if ( event in this.bindings ) {
+               if ( hasOwn.call( this.bindings, event ) ) {
                        // Slicing ensures that we don't get tripped up by event handlers that add/remove bindings
                        bindings = this.bindings[event].slice();
                        args = Array.prototype.slice.call( arguments, 1 );
index 68d3f61..a32a790 100644 (file)
                        } );
                }
 
-               $input.on( events, $.debounce( 250, updateUsernameStatus ) );
+               $input.on( events, $.debounce( 1000, updateUsernameStatus ) );
        } );
 }( mediaWiki, jQuery ) );
index f0c829c..cc5543f 100644 (file)
  * @group ORM
  * @group Database
  *
+ * @covers PageORMTableForTesting
+ *
  * @licence GNU GPL v2+
  * @author Jeroen De Dauw < jeroendedauw@gmail.com >
  * @author Daniel Kinzler
  */
 
-/**
- * @covers PageORMTableForTesting
- */
 class ORMTableTest extends MediaWikiTestCase {
 
        /**