Merge "mw.hook: Use hasOwnProperty"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sun, 13 Apr 2014 09:08:26 +0000 (09:08 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sun, 13 Apr 2014 09:08:26 +0000 (09:08 +0000)
222 files changed:
.gitignore
.jshintrc
RELEASE-NOTES-1.23
docs/kss/Makefile
docs/kss/package.json
includes/AutoLoader.php
includes/DefaultSettings.php
includes/GlobalFunctions.php
includes/Preferences.php
includes/Skin.php
includes/Title.php
includes/Wiki.php
includes/ZhConversion.php
includes/api/ApiQueryAllImages.php
includes/api/ApiQueryBlocks.php
includes/api/ApiQueryCategoryMembers.php
includes/api/ApiQueryDeletedrevs.php
includes/api/ApiQueryLogEvents.php
includes/api/ApiQueryProtectedTitles.php
includes/api/ApiQueryRecentChanges.php
includes/api/ApiQuerySiteinfo.php
includes/api/ApiQueryUserContributions.php
includes/api/ApiQueryWatchlist.php
includes/db/Database.php
includes/deferred/LinksUpdate.php
includes/filerepo/ForeignAPIRepo.php
includes/filerepo/file/LocalFile.php
includes/htmlform/HTMLSelectAndOtherField.php
includes/installer/DatabaseUpdater.php
includes/installer/WebInstallerOutput.php
includes/installer/i18n/en.json
includes/jobqueue/JobQueueGroup.php
includes/jobqueue/jobs/HTMLCacheUpdateJob.php
includes/media/DjVu.php
includes/parser/CoreParserFunctions.php
includes/parser/DateFormatter.php
includes/profiler/ProfilerSimple.php
includes/specials/SpecialActiveusers.php
includes/specials/SpecialContributions.php
includes/specials/SpecialEmailuser.php
includes/specials/SpecialListgrouprights.php
includes/specials/SpecialProtectedpages.php
languages/ConverterRule.php [new file with mode: 0644]
languages/LanguageConverter.php
languages/i18n/ace.json
languages/i18n/anp.json
languages/i18n/ar.json
languages/i18n/arc.json
languages/i18n/as.json
languages/i18n/ast.json
languages/i18n/az.json
languages/i18n/azb.json
languages/i18n/bbc-latn.json
languages/i18n/bqi.json
languages/i18n/br.json
languages/i18n/brh.json
languages/i18n/bs.json
languages/i18n/bug.json
languages/i18n/bxr.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/crh-latn.json
languages/i18n/cs.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/dz.json
languages/i18n/egl.json
languages/i18n/eml.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/ff.json
languages/i18n/fi.json
languages/i18n/fit.json
languages/i18n/fr.json
languages/i18n/frc.json
languages/i18n/frr.json
languages/i18n/fy.json
languages/i18n/gl.json
languages/i18n/gom-latn.json
languages/i18n/got.json
languages/i18n/gsw.json
languages/i18n/gu.json
languages/i18n/ha.json
languages/i18n/haw.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hr.json
languages/i18n/hu.json
languages/i18n/id.json
languages/i18n/ik.json
languages/i18n/is.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/jbo.json
languages/i18n/jut.json
languages/i18n/ka.json
languages/i18n/kg.json
languages/i18n/kiu.json
languages/i18n/kk-cyrl.json
languages/i18n/kl.json
languages/i18n/ko.json
languages/i18n/koi.json
languages/i18n/krc.json
languages/i18n/kri.json
languages/i18n/lb.json
languages/i18n/liv.json
languages/i18n/lv.json
languages/i18n/lzh.json
languages/i18n/lzz.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/mo.json
languages/i18n/mrj.json
languages/i18n/na.json
languages/i18n/nan.json
languages/i18n/nb.json
languages/i18n/nds-nl.json
languages/i18n/ne.json
languages/i18n/new.json
languages/i18n/niu.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/nov.json
languages/i18n/nv.json
languages/i18n/pag.json
languages/i18n/pap.json
languages/i18n/pdt.json
languages/i18n/pih.json
languages/i18n/pl.json
languages/i18n/pms.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/rgn.json
languages/i18n/rif.json
languages/i18n/rm.json
languages/i18n/rmy.json
languages/i18n/ro.json
languages/i18n/ru.json
languages/i18n/rup.json
languages/i18n/ruq-cyrl.json
languages/i18n/ruq-latn.json
languages/i18n/sa.json
languages/i18n/sco.json
languages/i18n/sd.json
languages/i18n/sdc.json
languages/i18n/sg.json
languages/i18n/sh.json
languages/i18n/sk.json
languages/i18n/sl.json
languages/i18n/sma.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/ss.json
languages/i18n/sv.json
languages/i18n/te.json
languages/i18n/th.json
languages/i18n/udm.json
languages/i18n/uz.json
languages/i18n/vi.json
languages/i18n/yi.json
languages/i18n/yue.json
languages/i18n/za.json
languages/i18n/zh-cn.json [deleted file]
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/i18n/zu.json
languages/messages/MessagesAr.php
languages/messages/MessagesOr.php
languages/messages/MessagesPl.php
languages/utils/CLDRPluralRuleConverter.php [new file with mode: 0644]
languages/utils/CLDRPluralRuleConverter_Expression.php [new file with mode: 0644]
languages/utils/CLDRPluralRuleConverter_Fragment.php [new file with mode: 0644]
languages/utils/CLDRPluralRuleConverter_Operator.php [new file with mode: 0644]
languages/utils/CLDRPluralRuleError.php [new file with mode: 0644]
languages/utils/CLDRPluralRuleEvaluator.php
languages/utils/CLDRPluralRuleEvaluator_Range.php [new file with mode: 0644]
maintenance/jsduck/CustomTags.rb [new file with mode: 0644]
maintenance/jsduck/config.json
maintenance/language/zhtable/tradphrases.manual
maintenance/mwjsduck-gen
resources/Resources.php
resources/lib/jquery/jquery.qunit.css
resources/lib/jquery/jquery.qunit.js
resources/lib/oojs-ui/i18n/bn.json
resources/lib/oojs-ui/i18n/km.json
resources/lib/oojs-ui/i18n/zh-hk.json [deleted file]
resources/lib/oojs-ui/i18n/zh-tw.json [deleted file]
resources/lib/oojs-ui/oojs-ui-apex.css
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/oojs-ui.svg.css
resources/src/jquery/jquery.suggestions.js
resources/src/mediawiki.action/mediawiki.action.edit.js
resources/src/mediawiki.api/mediawiki.api.js
resources/src/mediawiki.special/mediawiki.special.css
resources/src/mediawiki.ui/components/default/buttons.less
resources/src/mediawiki.ui/mixins/effects.less
resources/src/mediawiki/mediawiki.Title.js
resources/src/mediawiki/mediawiki.debug.profile.js
resources/src/mediawiki/mediawiki.jqueryMsg.js
skins/common/IEFixes.js
skins/vector/components/common.less
skins/vector/components/externalLinks.less
skins/vector/variables.less
tests/frontend/package.json
tests/phpunit/includes/RevisionTest.php
tests/phpunit/includes/content/ContentHandlerTest.php
tests/phpunit/structure/ResourcesTest.php
tests/qunit/QUnitTestResources.php
tests/qunit/data/testrunner.js
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.Uri.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.test.js
tests/qunit/suites/resources/startup.test.js

index c7d6f66..0351cf5 100644 (file)
@@ -48,7 +48,7 @@ node_modules/
 /composer.json
 
 # MediaWiki UI documentation
-resources/mediawiki.ui/docs
+/docs/kss/static
 
 # Operating systems
 ## Mac OS X
index 9d6c4d2..4eec7a0 100644 (file)
--- a/.jshintrc
+++ b/.jshintrc
@@ -3,6 +3,7 @@
 
        // Enforcing
        "eqeqeq": true,
+       "es3": true,
        "latedef": true,
        "noarg": true,
        "nonew": true,
index c231db6..ce3168e 100644 (file)
@@ -11,7 +11,9 @@ production.
 === Configuration changes in 1.23 ===
 * When $wgJobRunRate is higher that zero, jobs are now executed via an
   asynchronous HTTP request to a MediaWiki entry point. This may require
-  increasing the number of server worker threads.
+  increasing the number of server worker threads. $wgRunJobsAsync has been
+  added to disable this feature if needed, falling back to executing the job
+  on the same process but making the execution synchronously.
 * $wgDebugLogGroups values may be set to an associative array with a
   'destination' key specifying the log destination. The array may also contain
   a 'sample' key with a positive integer value N indicating that the log group
@@ -54,6 +56,7 @@ production.
 * $wgLicenseTerms has been removed as it was unused.
 * $wgProfileOnly is now deprecated; set the log file in
   $wgDebugLogGroups['profileoutput'] to replace it.
+* $wgMaxBacklinksInvalidate was removed; use $wgJobBackoffThrottling instead
 
 === New features in 1.23 ===
 * ResourceLoader can utilize the Web Storage API to cache modules client-side.
@@ -136,6 +139,9 @@ production.
   installer has been updated to use it.
 * Changes to content typography (fonts, line-height, etc.). See
   https://www.mediawiki.org/wiki/Typography_refresh for further information.
+* The Vector skin's visual treatment of external links has been simplified to a
+  single icon (from nine). This should not affect local rules unless they were
+  re-using these icons, which have now been deleted.
 * ResourceLoader: mw.loader.using() now implements a Promise interface.
 * Add new hook ChangesListInitRows accessed via ChangesList::initChangesListRows.
   If called by the ChangesList consumer this gives extensions a chance to batch
@@ -242,6 +248,7 @@ production.
   included in all searches.
 * Added list=prefixsearch that works like action=opensearch but can be used as
   a generator.
+* (bug 24782) Various modules will now use unique continuation parameters.
 
 === Languages updated in 1.23 ===
 
index 1b7aeb1..fee82cb 100644 (file)
@@ -7,13 +7,13 @@ kss: nodecheck
 # KSS style guide
        $(eval KSS_RL_TMP := $(shell mktemp /tmp/tmp.XXXXXXXXXX))
        @curl -sG "${MEDIAWIKI_LOAD_URL}?modules=mediawiki.ui|mediawiki.ui.button&only=styles" > $(KSS_RL_TMP)
-       @node_modules/.bin/kss-node mediawiki.ui mediawiki.ui/docs --css $(KSS_RL_TMP) -t styleguide-template
+       @node_modules/.bin/kss-node ../../resources/src/mediawiki.ui static/ --css $(KSS_RL_TMP) -t styleguide-template
        @rm $(KSS_RL_TMP)
 
 kssopen: kss
        @echo Opening the generated style guide...
-       @command -v xdg-open >/dev/null 2>&1 || { open ${PWD}/mediawiki.ui/docs/index.html; exit 0; }
-       @xdg-open ${PWD}/mediawiki.ui/docs/index.html
+       @command -v xdg-open >/dev/null 2>&1 || { open ${PWD}/static/index.html; exit 0; }
+       @xdg-open ${PWD}/static/index.html
 
 nodecheck:
        @scripts/nodecheck.sh
index a1722b5..70cebd2 100644 (file)
@@ -3,7 +3,7 @@
        "description": "Node.js dependencies used for KSS generation",
        "version": "0.0.1",
        "dependencies": {
-               "kss": ">=0.3.6"
+               "kss": ">=0.3.7"
        },
        "repository" : {
                "type" : "git",
index 52b292f..6675860 100644 (file)
@@ -1121,17 +1121,17 @@ $wgAutoloadLocalClasses = array(
        'ZipDirectoryReaderError' => 'includes/utils/ZipDirectoryReader.php',
 
        # languages
-       'ConverterRule' => 'languages/LanguageConverter.php',
+       'ConverterRule' => 'languages/ConverterRule.php',
        'FakeConverter' => 'languages/Language.php',
        'Language' => 'languages/Language.php',
        'LanguageConverter' => 'languages/LanguageConverter.php',
-       'CLDRPluralRuleConverter' => 'languages/utils/CLDRPluralRuleEvaluator.php',
-       'CLDRPluralRuleConverter_Expression' => 'languages/utils/CLDRPluralRuleEvaluator.php',
-       'CLDRPluralRuleConverter_Fragment' => 'languages/utils/CLDRPluralRuleEvaluator.php',
-       'CLDRPluralRuleConverter_Operator' => 'languages/utils/CLDRPluralRuleEvaluator.php',
+       'CLDRPluralRuleConverter' => 'languages/utils/CLDRPluralRuleConverter.php',
+       'CLDRPluralRuleConverter_Expression' => 'languages/utils/CLDRPluralRuleConverter_Expression.php',
+       'CLDRPluralRuleConverter_Fragment' => 'languages/utils/CLDRPluralRuleConverter_Fragment.php',
+       'CLDRPluralRuleConverter_Operator' => 'languages/utils/CLDRPluralRuleConverter_Operator.php',
        'CLDRPluralRuleEvaluator' => 'languages/utils/CLDRPluralRuleEvaluator.php',
-       'CLDRPluralRuleEvaluator_Range' => 'languages/utils/CLDRPluralRuleEvaluator.php',
-       'CLDRPluralRuleError' => 'languages/utils/CLDRPluralRuleEvaluator.php',
+       'CLDRPluralRuleEvaluator_Range' => 'languages/utils/CLDRPluralRuleEvaluator_Range.php',
+       'CLDRPluralRuleError' => 'languages/utils/CLDRPluralRuleError.php',
 
        # maintenance
        'BackupDumper' => 'maintenance/backup.inc',
index a3c22b8..8b8d75c 100644 (file)
@@ -6922,6 +6922,14 @@ $wgHTTPConnectTimeout = 5e0;
  */
 $wgJobRunRate = 1;
 
+/**
+ * When $wgJobRunRate > 0, try to run jobs asynchronously, spawning a new process
+ * to handle the job execution, instead of blocking the request until the job
+ * execution finishes.
+ * @since 1.23
+ */
+$wgRunJobsAsync = true;
+
 /**
  * Number of rows to update per job
  */
@@ -6932,15 +6940,6 @@ $wgUpdateRowsPerJob = 500;
  */
 $wgUpdateRowsPerQuery = 100;
 
-/**
- * Do not purge all the pages that use a page when it is edited
- * if there are more than this many such pages. This is used to
- * avoid invalidating a large portion of the squid/parser cache.
- *
- * This setting should factor in any squid/parser cache expiry settings.
- */
-$wgMaxBacklinksInvalidate = false;
-
 /** @} */ # End job queue }
 
 /************************************************************************//**
index cef19e1..c900306 100644 (file)
@@ -2881,15 +2881,6 @@ function wfShellExec( $cmd, &$retval = null, $environ = array(),
        if ( $useLogPipe ) {
                $desc[3] = array( 'pipe', 'w' );
        }
-
-       # TODO/FIXME: This is a bad hack to workaround an HHVM bug that prevents
-       # proc_open() from opening stdin/stdout, so use /dev/null *for now*
-       # See bug 56597 / https://github.com/facebook/hhvm/issues/1247 for more info
-       if ( wfIsHHVM() ) {
-               $desc[0] = array( 'file', '/dev/null', 'r' );
-               $desc[2] = array( 'file', '/dev/null', 'w' );
-       }
-
        $pipes = null;
        $proc = proc_open( $cmd, $desc, $pipes );
        if ( !$proc ) {
index 33d9333..1825cce 100644 (file)
@@ -84,8 +84,8 @@ class Preferences {
 
                self::profilePreferences( $user, $context, $defaultPreferences );
                self::skinPreferences( $user, $context, $defaultPreferences );
-               self::filesPreferences( $user, $context, $defaultPreferences );
                self::datetimePreferences( $user, $context, $defaultPreferences );
+               self::filesPreferences( $user, $context, $defaultPreferences );
                self::renderingPreferences( $user, $context, $defaultPreferences );
                self::editingPreferences( $user, $context, $defaultPreferences );
                self::rcPreferences( $user, $context, $defaultPreferences );
@@ -648,7 +648,7 @@ class Preferences {
                                'type' => 'radio',
                                'options' => $dateOptions,
                                'label' => '&#160;',
-                               'section' => 'datetime/dateformat',
+                               'section' => 'rendering/dateformat',
                        );
                }
 
@@ -665,7 +665,7 @@ class Preferences {
                        'raw' => 1,
                        'label-message' => 'servertime',
                        'default' => $nowserver,
-                       'section' => 'datetime/timeoffset',
+                       'section' => 'rendering/timeoffset',
                );
 
                $defaultPreferences['nowlocal'] = array(
@@ -673,7 +673,7 @@ class Preferences {
                        'raw' => 1,
                        'label-message' => 'localtime',
                        'default' => $nowlocal,
-                       'section' => 'datetime/timeoffset',
+                       'section' => 'rendering/timeoffset',
                );
 
                // Grab existing pref.
@@ -703,7 +703,7 @@ class Preferences {
                        'options' => $tzOptions,
                        'default' => $tzSetting,
                        'size' => 20,
-                       'section' => 'datetime/timeoffset',
+                       'section' => 'rendering/timeoffset',
                );
        }
 
@@ -1065,9 +1065,8 @@ class Preferences {
                $mptitle = Title::newMainPage();
                $previewtext = $context->msg( 'skin-preview' )->text();
 
-               # Only show members of Skin::getSkinNames() rather than
-               # $skinNames (skins is all skin names from Language.php)
-               $validSkinNames = Skin::getUsableSkins();
+               # Only show skins that aren't disabled in $wgSkipSkins
+               $validSkinNames = Skin::getAllowedSkins();
 
                # Sort by UI skin name. First though need to update validSkinNames as sometimes
                # the skinkey & UI skinname differ (e.g. "standard" skinkey is "Classic" in the UI).
index 9ec7c31..0f89dd2 100644 (file)
@@ -92,9 +92,9 @@ abstract class Skin extends ContextSource {
         * Fetch the list of user-selectable skins in regards to $wgSkipSkins.
         * Useful for Special:Preferences and other places where you
         * only want to show skins users _can_ use.
-        * @return array of strings
+        * @return string[]
         */
-       public static function getUsableSkins() {
+       public static function getAllowedSkins() {
                global $wgSkipSkins;
 
                $allowedSkins = self::getSkinNames();
@@ -106,6 +106,15 @@ abstract class Skin extends ContextSource {
                return $allowedSkins;
        }
 
+       /**
+        * @deprecated since 1.22, use getAllowedSkins
+        * @return string[]
+        */
+       public static function getUsableSkins() {
+               wfDeprecated( __METHOD__, '1.22' );
+               return self::getAllowedSkins();
+       }
+
        /**
         * Normalize a skin preference value to a form that can be loaded.
         * If a skin can't be found, it will fall back to the configured
index 34ebf3a..31e5868 100644 (file)
@@ -4341,6 +4341,7 @@ class Title {
         *
         * @param int|Revision $old Old revision or rev ID (first before range)
         * @param int|Revision $new New revision or rev ID (first after range)
+        * @param int|null $max Limit of Revisions to count, will be incremented to detect truncations
         * @return Int Number of revisions between these revisions.
         */
        public function countRevisionsBetween( $old, $new, $max = null ) {
index 6cf718c..fbafba8 100644 (file)
@@ -624,7 +624,7 @@ class MediaWiki {
         * the socket once it's done.
         */
        protected function triggerJobs() {
-               global $wgJobRunRate, $wgServer;
+               global $wgJobRunRate, $wgServer, $wgRunJobsAsync;
 
                if ( $wgJobRunRate <= 0 || wfReadOnly() ) {
                        return;
@@ -644,6 +644,17 @@ class MediaWiki {
                        $n = intval( $wgJobRunRate );
                }
 
+               if ( !$wgRunJobsAsync ) {
+                       // If running jobs asynchronously has been disabled, run the job here
+                       // while the user waits
+                       SpecialRunJobs::executeJobs( $n );
+                       return;
+               }
+
+               if ( !JobQueueGroup::singleton()->queuesHaveJobs( JobQueueGroup::TYPE_DEFAULT ) ) {
+                       return; // do not send request if there are probably no jobs
+               }
+
                $query = array( 'title' => 'Special:RunJobs',
                        'tasks' => 'jobs', 'maxjobs' => $n, 'sigexpiry' => time() + 5 );
                $query['signature'] = SpecialRunJobs::getQuerySignature( $query );
index 3067b1a..651b114 100644 (file)
@@ -3198,8 +3198,8 @@ $zh2Hant = array(
 '不干她' => '不干她',
 '不干它' => '不干它',
 '不干我' => '不干我',
-'不干扰' => '不干擾',
 '不干擾' => '不干擾',
+'不干扰' => '不干擾',
 '不干涉' => '不干涉',
 '不干牠' => '不干牠',
 '不干犯' => '不干犯',
@@ -3220,12 +3220,13 @@ $zh2Hant = array(
 '不负所托' => '不負所托',
 '不通吊庆' => '不通弔慶',
 '不丑' => '不醜',
-'不采聲' => '不采聲',
 '不采声' => '不采聲',
+'不采聲' => '不采聲',
 '不锈钢' => '不鏽鋼',
 '不食干腊' => '不食乾腊',
 '不斗' => '不鬥',
 '丑三' => '丑三',
+'丑婆子' => '丑婆子',
 '丑年' => '丑年',
 '丑日' => '丑日',
 '丑旦' => '丑旦',
@@ -3263,21 +3264,23 @@ $zh2Hant = array(
 '中签' => '中籤',
 '中美发表' => '中美發表',
 '中药' => '中藥',
+'中西合并' => '中西合併',
 '中风后' => '中風後',
-'丰仪' => '丰儀',
 '丰儀' => '丰儀',
+'丰仪' => '丰儀',
 '丰南' => '丰南',
 '丰台' => '丰台',
 '丰姿' => '丰姿',
 '丰容' => '丰容',
+'丰度' => '丰度',
 '丰情' => '丰情',
 '丰标' => '丰標',
-'丰标不凡' => '丰標不凡',
 '丰標不凡' => '丰標不凡',
+'丰标不凡' => '丰標不凡',
 '丰神' => '丰神',
 '丰茸' => '丰茸',
 '丰采' => '丰采',
-'丰é\9fµ' => '丰é\9fµ',
+'丰é\9fµ' => '丰é\9f»',
 '丰韻' => '丰韻',
 '丸药' => '丸藥',
 '丹药' => '丹藥',
@@ -3309,17 +3312,15 @@ $zh2Hant = array(
 '九扎' => '九紮',
 '九只' => '九隻',
 '九余' => '九餘',
-'九龍表行' => '九龍表行',
 '九龙表行' => '九龍表行',
+'九龍表行' => '九龍表行',
 '也克制' => '也剋制',
 '也斗了胆' => '也斗了膽',
-'干上' => '乾上',
 '干干' => '乾乾',
 '干干儿的' => '乾乾兒的',
 '干干净净' => '乾乾淨淨',
-'干了' => '乾了',
 '干井' => '乾井',
-'干个' => '乾個',
+'干个够' => '乾個夠',
 '干儿' => '乾兒',
 '干冰' => '乾冰',
 '干冷' => '乾冷',
@@ -3356,12 +3357,10 @@ $zh2Hant = array(
 '干巴' => '乾巴',
 '干式' => '乾式',
 '干弟' => '乾弟',
-'干得' => '乾得',
 '干急' => '乾急',
 '干性' => '乾性',
 '干打雷' => '乾打雷',
 '干折' => '乾折',
-'干掉' => '乾掉',
 '干撂台' => '乾撂台',
 '干撇下' => '乾撇下',
 '干擦' => '乾擦',
@@ -3447,8 +3446,8 @@ $zh2Hant = array(
 '干衣' => '乾衣',
 '干裂' => '乾裂',
 '干亲' => '乾親',
-'乾象曆' => '乾象曆',
 '乾象历' => '乾象曆',
+'乾象曆' => '乾象曆',
 '干贝' => '乾貝',
 '干货' => '乾貨',
 '干躁' => '乾躁',
@@ -3497,8 +3496,8 @@ $zh2Hant = array(
 '二缶钟惑' => '二缶鐘惑',
 '二老板' => '二老板',
 '二虎相斗' => '二虎相鬥',
-'二里頭' => '二里頭',
 '二里头' => '二里頭',
+'二里頭' => '二里頭',
 '二只' => '二隻',
 '二余' => '二餘',
 '于丹' => '于丹',
@@ -3510,10 +3509,10 @@ $zh2Hant = array(
 '于伟国' => '于偉國',
 '于偉國' => '于偉國',
 '于光新' => '于光新',
-'于光远' => '于光遠',
 '于光遠' => '于光遠',
-'äº\8eå\85\8b\85°å¤\9aå\8e¿' => 'äº\8eå\85\8b\98­å¤\9a縣',
+'äº\8eå\85\89è¿\9c' => 'äº\8eå\85\89é\81 ',
 '于克-蘭多縣' => '于克-蘭多縣',
+'于克-兰多县' => '于克-蘭多縣',
 '于克勒' => '于克勒',
 '于再清' => '于再清',
 '于冕' => '于冕',
@@ -3530,8 +3529,8 @@ $zh2Hant = array(
 '于吉' => '于吉',
 '于和伟' => '于和偉',
 '于品海' => '于品海',
-'于國楨' => '于國楨',
 '于国桢' => '于國楨',
+'于國楨' => '于國楨',
 '于国治' => '于國治',
 '于國治' => '于國治',
 '于坚' => '于堅',
@@ -3540,15 +3539,15 @@ $zh2Hant = array(
 '于大宝' => '于大寶',
 '于天仁' => '于天仁',
 '于天龙' => '于天龍',
-'于奇庫杜克' => '于奇庫杜克',
 '于奇库杜克' => '于奇庫杜克',
+'于奇庫杜克' => '于奇庫杜克',
 '于姓' => '于姓',
 '于娜' => '于娜',
 '于娟' => '于娟',
 '于子千' => '于子千',
 '于孔兼' => '于孔兼',
-'于学忠' => '于學忠',
 '于學忠' => '于學忠',
+'于学忠' => '于學忠',
 '于家堡' => '于家堡',
 '于寘' => '于寘',
 '于小伟' => '于小偉',
@@ -3559,16 +3558,16 @@ $zh2Hant = array(
 '于山' => '于山',
 '于山国' => '于山國',
 '于山國' => '于山國',
-'于帅' => '于帥',
 '于帥' => '于帥',
+'于帅' => '于帥',
 '于幼軍' => '于幼軍',
 '于幼军' => '于幼軍',
 '于康震' => '于康震',
-'于广洲' => '于廣洲',
 '于廣洲' => '于廣洲',
+'于广洲' => '于廣洲',
 '于式枚' => '于式枚',
-'于从濂' => '于從濂',
 '于從濂' => '于從濂',
+'于从濂' => '于從濂',
 '于德海' => '于德海',
 '于志宁' => '于志寧',
 '于志寧' => '于志寧',
@@ -3576,8 +3575,8 @@ $zh2Hant = array(
 '于思' => '于思',
 '于慎行' => '于慎行',
 '于慧' => '于慧',
-'于成龍' => '于成龍',
 '于成龙' => '于成龍',
+'于成龍' => '于成龍',
 '于振' => '于振',
 '于振武' => '于振武',
 '于敏' => '于敏',
@@ -3588,13 +3587,13 @@ $zh2Hant = array(
 '于斯納爾斯貝里' => '于斯納爾斯貝里',
 '于斯达尔' => '于斯達爾',
 '于斯達爾' => '于斯達爾',
-'于明濤' => '于明濤',
 '于明涛' => '于明濤',
+'于明濤' => '于明濤',
 '于是之' => '于是之',
 '于晨楠' => '于晨楠',
 '于晴' => '于晴',
-'于会泳' => '于會泳',
 '于會泳' => '于會泳',
+'于会泳' => '于會泳',
 '于根伟' => '于根偉',
 '于根偉' => '于根偉',
 '于格' => '于格',
@@ -3602,8 +3601,8 @@ $zh2Hant = array(
 '于枫' => '于楓',
 '于荣光' => '于榮光',
 '于樂' => '于樂',
-'于樹潔' => '于樹潔',
 '于树洁' => '于樹潔',
+'于樹潔' => '于樹潔',
 '于欣' => '于欣',
 '于欣源' => '于欣源',
 '于正升' => '于正昇',
@@ -3620,10 +3619,10 @@ $zh2Hant = array(
 '于浩威' => '于浩威',
 '于海' => '于海',
 '于海洋' => '于海洋',
-'于湘蘭' => '于湘蘭',
 '于湘兰' => '于湘蘭',
-'äº\8eæ±\89è¶\85' => 'äº\8eæ¼¢è¶\85',
+'äº\8eæ¹\98è\98­' => 'äº\8eæ¹\98è\98­',
 '于漢超' => '于漢超',
+'于汉超' => '于漢超',
 '于澄' => '于澄',
 '于泽尔' => '于澤爾',
 '于澤爾' => '于澤爾',
@@ -3632,8 +3631,8 @@ $zh2Hant = array(
 '于熙珍' => '于熙珍',
 '于爾岑' => '于爾岑',
 '于尔岑' => '于爾岑',
-'于尔根' => '于爾根',
 '于爾根' => '于爾根',
+'于尔根' => '于爾根',
 '于尔里克' => '于爾里克',
 '于爾里克' => '于爾里克',
 '于特森' => '于特森',
@@ -3646,8 +3645,8 @@ $zh2Hant = array(
 '于美人' => '于美人',
 '于耘婕' => '于耘婕',
 '于若木' => '于若木',
-'于荫霖' => '于蔭霖',
 '于蔭霖' => '于蔭霖',
+'于荫霖' => '于蔭霖',
 '于衡' => '于衡',
 '于西翰' => '于西翰',
 '于謙' => '于謙',
@@ -3655,20 +3654,20 @@ $zh2Hant = array(
 '于谨' => '于謹',
 '于貝爾' => '于貝爾',
 '于贝尔' => '于貝爾',
-'于贈' => '于贈',
 '于赠' => '于贈',
+'于贈' => '于贈',
 '于越' => '于越',
 '于军' => '于軍',
 '于軍' => '于軍',
 '于道泉' => '于道泉',
-'于遠偉' => '于遠偉',
 '于远伟' => '于遠偉',
-'äº\8eé\83½å\8e¿' => 'äº\8eé\83½ç¸£',
+'äº\8eé\81 å\81\89' => 'äº\8eé\81 å\81\89',
 '于都縣' => '于都縣',
+'于都县' => '于都縣',
 '于里察' => '于里察',
 '于阗' => '于闐',
-'于双戈' => '于雙戈',
 '于雙戈' => '于雙戈',
+'于双戈' => '于雙戈',
 '于云鹤' => '于雲鶴',
 '于震' => '于震',
 '于震寰' => '于震寰',
@@ -3681,17 +3680,17 @@ $zh2Hant = array(
 '于风政' => '于風政',
 '于風政' => '于風政',
 '于飞' => '于飛',
-'于飛島' => '于飛島',
 '于飞岛' => '于飛島',
+'于飛島' => '于飛島',
 '于余曲折' => '于餘曲折',
 '于鬯' => '于鬯',
 '于魁智' => '于魁智',
-'于鳳桐' => '于鳳桐',
 '于凤桐' => '于鳳桐',
+'于鳳桐' => '于鳳桐',
 '于凤至' => '于鳳至',
 '于鳳至' => '于鳳至',
-'于默奧' => '于默奧',
 '于默奥' => '于默奧',
+'于默奧' => '于默奧',
 '云乎' => '云乎',
 '云云' => '云云',
 '云何' => '云何',
@@ -3771,8 +3770,8 @@ $zh2Hant = array(
 '件钟' => '件鐘',
 '任何表演' => '任何表演',
 '任何表示' => '任何表示',
-'任何表达' => '任何表達',
 '任何表達' => '任何表達',
+'任何表达' => '任何表達',
 '任何表' => '任何錶',
 '任何钟' => '任何鐘',
 '任何钟表' => '任何鐘錶',
@@ -3984,8 +3983,8 @@ $zh2Hant = array(
 '占过' => '佔過',
 '占道' => '佔道',
 '占零' => '佔零',
-'占领' => '佔領',
 '占領' => '佔領',
+'占领' => '佔領',
 '占头' => '佔頭',
 '占头筹' => '佔頭籌',
 '占饭' => '佔飯',
@@ -4055,8 +4054,8 @@ $zh2Hant = array(
 '占y' => '佔y',
 '占z' => '佔z',
 '何杰' => '何杰',
-'余三勝' => '余三勝',
 '余三胜' => '余三勝',
+'余三勝' => '余三勝',
 '余光中' => '余光中',
 '余光生' => '余光生',
 '余力為' => '余力為',
@@ -4084,7 +4083,7 @@ $zh2Hant = array(
 '并到' => '併到',
 '并合' => '併合',
 '并名' => '併名',
-'并吞' => '併吞',
+'并吞下' => '併吞下',
 '并拢' => '併攏',
 '并案' => '併案',
 '并流' => '併流',
@@ -4246,8 +4245,8 @@ $zh2Hant = array(
 '凶横' => '兇橫',
 '凶殘' => '兇殘',
 '凶残' => '兇殘',
-'凶杀' => '兇殺',
 '凶殺' => '兇殺',
+'凶杀' => '兇殺',
 '凶犯' => '兇犯',
 '凶狠' => '兇狠',
 '凶猛' => '兇猛',
@@ -4264,8 +4263,8 @@ $zh2Hant = array(
 '党太尉' => '党太尉',
 '党怀英' => '党懷英',
 '党进' => '党進',
-'党项' => '党項',
 '党項' => '党項',
+'党项' => '党項',
 '内制' => '內製',
 '内面包' => '內面包',
 '内面包的' => '內面包的',
@@ -4353,8 +4352,8 @@ $zh2Hant = array(
 '准不准我' => '准不准我',
 '准不准许' => '准不准許',
 '准不准谁' => '准不准誰',
-'准保护' => '准保護',
 '准保護' => '准保護',
+'准保护' => '准保護',
 '准保释' => '准保釋',
 '准保釋' => '准保釋',
 '凌蒙初' => '凌濛初',
@@ -4410,8 +4409,8 @@ $zh2Hant = array(
 '划子' => '划子',
 '划得来' => '划得來',
 '划拳' => '划拳',
-'划槳' => '划槳',
 '划桨' => '划槳',
+'划槳' => '划槳',
 '划水' => '划水',
 '划算' => '划算',
 '划船' => '划船',
@@ -4438,6 +4437,7 @@ $zh2Hant = array(
 '利于' => '利於',
 '利欲熏心' => '利欲熏心',
 '刮来刮去' => '刮來刮去',
+'刮着' => '刮著',
 '刮起来' => '刮起來',
 '刮风下雪倒便宜' => '刮風下雪倒便宜',
 '刮胡' => '刮鬍',
@@ -4485,8 +4485,8 @@ $zh2Hant = array(
 '划入' => '劃入',
 '划为' => '劃為',
 '剧药' => '劇藥',
-'劉佳怜' => '劉佳怜',
 '刘佳怜' => '劉佳怜',
+'劉佳怜' => '劉佳怜',
 '刘克庄' => '劉克莊',
 '刘芸后' => '劉芸后',
 '力克制' => '力剋制',
@@ -4542,12 +4542,12 @@ $zh2Hant = array(
 '十出' => '十齣',
 '千个' => '千個',
 '千只可' => '千只可',
-'千只够' => '千只夠',
 '千只夠' => '千只夠',
+'千只够' => '千只夠',
 '千只怕' => '千只怕',
 '千只能' => '千只能',
-'千只足夠' => '千只足夠',
 '千只足够' => '千只足夠',
+'千只足夠' => '千只足夠',
 '千周后' => '千周後',
 '千多只' => '千多隻',
 '千天后' => '千天後',
@@ -4625,8 +4625,8 @@ $zh2Hant = array(
 '口里' => '口裡',
 '口试' => '口試',
 '口钟' => '口鐘',
-'古書云' => '古書云',
 '古书云' => '古書云',
+'古書云' => '古書云',
 '古柯咸' => '古柯鹹',
 '古柯碱' => '古柯鹼',
 '古朴' => '古樸',
@@ -4647,10 +4647,10 @@ $zh2Hant = array(
 '只要功夫深,铁杵磨成锈花针' => '只要功夫深,鐵杵磨成鏽花針',
 '只身上已' => '只身上已',
 '只身上有' => '只身上有',
-'只身上没' => '只身上沒',
 '只身上沒' => '只身上沒',
-'å\8fªèº«ä¸\8aæ\97 ' => 'å\8fªèº«ä¸\8aç\84¡',
+'å\8fªèº«ä¸\8a没' => 'å\8fªèº«ä¸\8aæ²\92',
 '只身上無' => '只身上無',
+'只身上无' => '只身上無',
 '只身上的' => '只身上的',
 '只身世' => '只身世',
 '只身份' => '只身份',
@@ -4665,8 +4665,8 @@ $zh2Hant = array(
 '只身旁' => '只身旁',
 '只身材' => '只身材',
 '只身段' => '只身段',
-'只身為' => '只身為',
 '只身为' => '只身為',
+'只身為' => '只身為',
 '只身边' => '只身邊',
 '只身邊' => '只身邊',
 '只身首' => '只身首',
@@ -4712,8 +4712,8 @@ $zh2Hant = array(
 '各辟' => '各闢',
 '各类钟' => '各類鐘',
 '合伙人' => '合伙人',
-'合并' => '合併',
 '合伙' => '合夥',
+'合并' => '合并',
 '合府上' => '合府上',
 '合采' => '合採',
 '合历' => '合曆',
@@ -4751,10 +4751,10 @@ $zh2Hant = array(
 '后丰' => '后豐',
 '后豐' => '后豐',
 '后里' => '后里',
-'后髮FK型星' => '后髮FK型星',
 '后发FK型星' => '后髮FK型星',
-'后发座' => '后髮座',
+'后髮FK型星' => '后髮FK型星',
 '后髮座' => '后髮座',
+'后发座' => '后髮座',
 '后发星系团' => '后髮星系團',
 '后髮星系團' => '后髮星系團',
 '吐哺捉发' => '吐哺捉髮',
@@ -4771,8 +4771,8 @@ $zh2Hant = array(
 '吹发' => '吹髮',
 '吹胡' => '吹鬍',
 '吾为之范我驰驱' => '吾爲之範我馳驅',
-'呂后' => '呂后',
 '吕后' => '呂后',
+'呂后' => '呂后',
 '呆呆傻傻' => '呆呆傻傻',
 '呆呆挣挣' => '呆呆掙掙',
 '呆呆獸' => '呆呆獸',
@@ -4788,8 +4788,8 @@ $zh2Hant = array(
 '周后' => '周后',
 '周四' => '周四',
 '周历' => '周曆',
-'周杰倫' => '周杰倫',
 '周杰伦' => '周杰倫',
+'周杰倫' => '周杰倫',
 '周历史' => '周歷史',
 '周庄王' => '周莊王',
 '周游' => '周遊',
@@ -4883,6 +4883,7 @@ $zh2Hant = array(
 '回历史' => '回歷史',
 '回丝' => '回絲',
 '回着' => '回著',
+'回荡' => '回蕩',
 '回游' => '回遊',
 '回阳荡气' => '回陽蕩氣',
 '因于' => '因於',
@@ -4944,9 +4945,9 @@ $zh2Hant = array(
 '埋头寻钟' => '埋頭尋鐘',
 '埋头寻钟表' => '埋頭尋鐘錶',
 '城里' => '城裡',
-'埔里社抚垦局' => '埔裏社撫墾局',
-'埔裏社撫墾局' => '埔裏社撫墾局',
 '埔裡社撫墾局' => '埔裏社撫墾局',
+'埔裏社撫墾局' => '埔裏社撫墾局',
+'埔里社抚垦局' => '埔裏社撫墾局',
 '基干' => '基幹',
 '基于' => '基於',
 '基准' => '基準',
@@ -4973,8 +4974,8 @@ $zh2Hant = array(
 '壶里' => '壺裡',
 '壸范' => '壼範',
 '寿面' => '壽麵',
-'夏于喬' => '夏于喬',
 '夏于乔' => '夏于喬',
+'夏于喬' => '夏于喬',
 '夏天里' => '夏天裡',
 '夏日里' => '夏日裡',
 '夏历' => '夏曆',
@@ -5014,6 +5015,7 @@ $zh2Hant = array(
 '伙同' => '夥同',
 '伙众' => '夥眾',
 '伙计' => '夥計',
+'大丑' => '大丑',
 '大伙儿' => '大伙兒',
 '大只可' => '大只可',
 '大只在' => '大只在',
@@ -5048,7 +5050,6 @@ $zh2Hant = array(
 '大言非夸' => '大言非夸',
 '大赞' => '大讚',
 '大周折' => '大週摺',
-'大丑' => '大醜',
 '大金发苔' => '大金髮苔',
 '大钟' => '大鐘',
 '大只' => '大隻',
@@ -5208,8 +5209,8 @@ $zh2Hant = array(
 '宽松' => '寬鬆',
 '寮采' => '寮寀',
 '宝山庄' => '寶山庄',
-'宝历' => '寶曆',
 '寶曆' => '寶曆',
+'宝历' => '寶曆',
 '宝历史' => '寶歷史',
 '宝庄' => '寶莊',
 '宝里宝气' => '寶裡寶氣',
@@ -5364,20 +5365,23 @@ $zh2Hant = array(
 '年谷' => '年穀',
 '年里' => '年裡',
 '并力' => '并力',
+'并吞' => '并吞',
 '并州' => '并州',
 '并日而食' => '并日而食',
 '并迭' => '并迭',
 '幸免于难' => '幸免於難',
 '幸于' => '幸於',
 '幸运胡' => '幸運鬍',
+'干上' => '幹上',
 '干下去' => '幹下去',
 '干不了' => '幹不了',
 '干不成' => '幹不成',
+'干了' => '幹了',
 '干事' => '幹事',
 '干些' => '幹些',
 '干人' => '幹人',
 '干什么' => '幹什麼',
-'干个够' => '幹個夠',
+'干个' => '幹個',
 '干劲' => '幹勁',
 '干劲冲天' => '幹勁沖天',
 '干吏' => '幹吏',
@@ -5389,9 +5393,10 @@ $zh2Hant = array(
 '干完' => '幹完',
 '干家' => '幹家',
 '干将' => '幹將',
-'干得了' => '幹得了',
+'干得' => '幹得',
 '干性油' => '幹性油',
 '干才' => '幹才',
+'干掉' => '幹掉',
 '干探' => '幹探',
 '干校' => '幹校',
 '干活' => '幹活',
@@ -5404,8 +5409,8 @@ $zh2Hant = array(
 '干略' => '幹略',
 '干当' => '幹當',
 '干的停当' => '幹的停當',
-'干細胞' => '幹細胞',
 '干细胞' => '幹細胞',
+'干細胞' => '幹細胞',
 '干线' => '幹線',
 '干练' => '幹練',
 '干缺' => '幹缺',
@@ -5437,8 +5442,8 @@ $zh2Hant = array(
 '府干政' => '府干政',
 '府干涉' => '府干涉',
 '府干犯' => '府干犯',
-'府干预' => '府干預',
 '府干預' => '府干預',
+'府干预' => '府干預',
 '府干' => '府幹',
 '座钟' => '座鐘',
 '康庄大道' => '康庄大道',
@@ -5746,8 +5751,8 @@ $zh2Hant = array(
 '忠人之托' => '忠人之托',
 '忠仆' => '忠僕',
 '忠于' => '忠於',
+'快干' => '快乾',
 '快克制' => '快剋制',
-'快干' => '快幹',
 '快快当当' => '快快當當',
 '快冲' => '快衝',
 '怎么' => '怎麼',
@@ -5855,8 +5860,8 @@ $zh2Hant = array(
 '所占算' => '所占算',
 '所托' => '所託',
 '扁拟谷盗虫' => '扁擬穀盜蟲',
-'手冢治虫' => '手塚治虫',
 '手塚治虫' => '手塚治虫',
+'手冢治虫' => '手塚治虫',
 '手折' => '手摺',
 '手表态' => '手表態',
 '手表明' => '手表明',
@@ -5867,8 +5872,8 @@ $zh2Hant = array(
 '手表达' => '手表達',
 '手表露' => '手表露',
 '手表面' => '手表面',
-'手里' => '手裏',
 '手里剑' => '手裏劍',
+'手里' => '手裡',
 '手表' => '手錶',
 '手松' => '手鬆',
 '才克制' => '才剋制',
@@ -6313,9 +6318,9 @@ $zh2Hant = array(
 '于国' => '於國',
 '于坏' => '於坏',
 '于垂' => '於垂',
-'於夫羅' => '於夫羅',
 '于夫罗' => '於夫羅',
 '於夫罗' => '於夫羅',
+'於夫羅' => '於夫羅',
 '于她' => '於她',
 '于好' => '於好',
 '于始' => '於始',
@@ -6493,8 +6498,8 @@ $zh2Hant = array(
 '会上签订' => '會上簽訂',
 '会占' => '會佔',
 '会占卜' => '會占卜',
-'會干擾' => '會干擾',
 '会干扰' => '會干擾',
+'會干擾' => '會干擾',
 '会干' => '會幹',
 '会吊' => '會弔',
 '会里' => '會裡',
@@ -6631,8 +6636,8 @@ $zh2Hant = array(
 '棺材里' => '棺材裡',
 '植发' => '植髮',
 '椰枣干' => '椰棗乾',
-'杨雅筑' => '楊雅筑',
 '楊雅筑' => '楊雅筑',
+'杨雅筑' => '楊雅筑',
 '楚庄问鼎' => '楚莊問鼎',
 '楚庄王' => '楚莊王',
 '楚庄绝缨' => '楚莊絕纓',
@@ -6657,8 +6662,8 @@ $zh2Hant = array(
 '模范14棒' => '模范14棒',
 '模范21棒' => '模范21棒',
 '模范七棒' => '模范七棒',
-'模范三軍' => '模范三軍',
 '模范三军' => '模范三軍',
+'模范三軍' => '模范三軍',
 '模范棒棒堂' => '模范棒棒堂',
 '模制' => '模製',
 '样范' => '樣範',
@@ -6818,8 +6823,8 @@ $zh2Hant = array(
 '洒濯' => '洒濯',
 '洒然' => '洒然',
 '洒脱' => '洒脫',
-'洗练' => '洗鍊',
 '洗炼' => '洗鍊',
+'洗练' => '洗鍊',
 '洗发' => '洗髮',
 '洛钟东应' => '洛鐘東應',
 '泄欲' => '洩慾',
@@ -6856,18 +6861,18 @@ $zh2Hant = array(
 '涂序瑄' => '涂序瑄',
 '涂敏恒' => '涂敏恆',
 '涂敏恆' => '涂敏恆',
-'涂泽民' => '涂澤民',
 '涂澤民' => '涂澤民',
+'涂泽民' => '涂澤民',
 '涂绍煃' => '涂紹煃',
 '涂羽卿' => '涂羽卿',
-'涂谨申' => '涂謹申',
 '涂謹申' => '涂謹申',
+'涂谨申' => '涂謹申',
 '涂逢年' => '涂逢年',
 '涂醒哲' => '涂醒哲',
 '涂長望' => '涂長望',
 '涂长望' => '涂長望',
-'涂鴻欽' => '涂鴻欽',
 '涂鸿钦' => '涂鴻欽',
+'涂鴻欽' => '涂鴻欽',
 '消炎药' => '消炎藥',
 '消肿药' => '消腫藥',
 '液晶表' => '液晶錶',
@@ -6898,7 +6903,6 @@ $zh2Hant = array(
 '渠冲' => '渠衝',
 '测试' => '測試',
 '港制' => '港製',
-'游荡' => '游蕩',
 '游离' => '游離',
 '浑朴' => '渾樸',
 '浑个' => '渾箇',
@@ -6999,6 +7003,7 @@ $zh2Hant = array(
 '蒙汜' => '濛汜',
 '蒙蒙细雨' => '濛濛細雨',
 '蒙雾' => '濛霧',
+'蒙松雨' => '濛鬆雨',
 '蒙鸿' => '濛鴻',
 '滨田里佳子' => '濱田里佳子',
 '泻药' => '瀉藥',
@@ -7239,8 +7244,8 @@ $zh2Hant = array(
 '发签' => '發籤',
 '发庄' => '發莊',
 '发着' => '發著',
-'發表' => '發表',
 '发表' => '發表',
+'發表' => '發表',
 '发松' => '發鬆',
 '发面' => '發麵',
 '白干' => '白乾',
@@ -7258,8 +7263,8 @@ $zh2Hant = array(
 '白霉' => '白黴',
 '百个' => '百個',
 '百只可' => '百只可',
-'百只够' => '百只夠',
 '百只夠' => '百只夠',
+'百只够' => '百只夠',
 '百只怕' => '百只怕',
 '百只足够' => '百只足夠',
 '百只足夠' => '百只足夠',
@@ -7356,7 +7361,6 @@ $zh2Hant = array(
 '瞳蒙' => '瞳矇',
 '蒙事' => '矇事',
 '蒙昧无知' => '矇昧無知',
-'蒙松雨' => '矇松雨',
 '蒙混' => '矇混',
 '蒙瞍' => '矇瞍',
 '蒙眬' => '矇矓',
@@ -7542,15 +7546,15 @@ $zh2Hant = array(
 '筑前' => '筑前',
 '筑北' => '筑北',
 '筑州' => '筑州',
-'筑后' => '筑後',
 '筑後' => '筑後',
+'筑后' => '筑後',
 '筑波' => '筑波',
 '筑紫' => '筑紫',
 '筑肥' => '筑肥',
 '筑西' => '筑西',
 '筑邦' => '筑邦',
-'筑阳' => '筑陽',
 '筑陽' => '筑陽',
+'筑阳' => '筑陽',
 '答复' => '答覆',
 '答覆' => '答覆',
 '筵几' => '筵几',
@@ -7574,6 +7578,7 @@ $zh2Hant = array(
 '管人吊脚儿事' => '管人弔腳兒事',
 '管制法' => '管制法',
 '管干' => '管幹',
+'箱里' => '箱裡',
 '节欲' => '節慾',
 '节余' => '節餘',
 '范例' => '範例',
@@ -7692,8 +7697,8 @@ $zh2Hant = array(
 '丝发' => '絲髮',
 '绑扎' => '綁紮',
 '綑扎' => '綑紮',
-'經有云' => '經有云',
 '经有云' => '經有云',
+'經有云' => '經有云',
 '绿发' => '綠髮',
 '绸缎庄' => '綢緞莊',
 '维系' => '維繫',
@@ -7951,8 +7956,8 @@ $zh2Hant = array(
 '舰只' => '艦隻',
 '良药' => '良藥',
 '色欲' => '色慾',
-'艳后' => '艷后',
 '艷后' => '艷后',
+'艳后' => '艷后',
 '艸木丰丰' => '艸木丰丰',
 '芍药' => '芍藥',
 '芒果干' => '芒果乾',
@@ -7977,16 +7982,16 @@ $zh2Hant = array(
 '茂都淀' => '茂都澱',
 '范文同' => '范文同',
 '范文正公' => '范文正公',
-'范文澜' => '范文瀾',
 '范文瀾' => '范文瀾',
+'范文澜' => '范文瀾',
 '范文照' => '范文照',
 '范文程' => '范文程',
 '范文芳' => '范文芳',
 '范文藤' => '范文藤',
 '范文虎' => '范文虎',
 '范登堡' => '范登堡',
-'范賢惠' => '范賢惠',
 '范贤惠' => '范賢惠',
+'范賢惠' => '范賢惠',
 '茶几' => '茶几',
 '茶庄' => '茶莊',
 '茶余' => '茶餘',
@@ -8031,8 +8036,8 @@ $zh2Hant = array(
 '华严钟' => '華嚴鐘',
 '华发' => '華髮',
 '菸碱' => '菸鹼',
-'万一只' => '萬一只',
 '萬一只' => '萬一只',
+'万一只' => '萬一只',
 '万个' => '萬個',
 '万周后' => '萬周後',
 '万多只' => '萬多隻',
@@ -8534,8 +8539,8 @@ $zh2Hant = array(
 '诱奸' => '誘姦',
 '语云' => '語云',
 '语汇' => '語彙',
-'語有云' => '語有云',
 '语有云' => '語有云',
+'語有云' => '語有云',
 '诚征' => '誠徵',
 '诚朴' => '誠樸',
 '诬蔑' => '誣衊',
@@ -8596,7 +8601,6 @@ $zh2Hant = array(
 '豆腐干' => '豆腐乾',
 '竖着' => '豎著',
 '竖起脊梁' => '豎起脊梁',
-'丰度' => '豐度',
 '丰滨' => '豐濱',
 '丰滨乡' => '豐濱鄉',
 '象征' => '象徵',
@@ -8606,17 +8610,17 @@ $zh2Hant = array(
 '贵价' => '貴价',
 '贵干' => '貴幹',
 '贵征' => '貴徵',
-'买凶' => '買兇',
 '買凶' => '買兇',
+'买凶' => '買兇',
 '买断发' => '買斷發',
 '费占' => '費佔',
 '贻范' => '貽範',
 '资金占用' => '資金占用',
-'賈后' => '賈后',
 '贾后' => '賈后',
+'賈后' => '賈后',
 '赏赞' => '賞讚',
-'賢后' => '賢后',
 '贤后' => '賢后',
+'賢后' => '賢后',
 '卖断发' => '賣斷發',
 '卖呆' => '賣獃',
 '质朴' => '質樸',
@@ -8664,10 +8668,10 @@ $zh2Hant = array(
 '较于' => '較於',
 '挽曲' => '輓曲',
 '挽歌' => '輓歌',
-'挽联' => '輓聯',
 '挽聯' => '輓聯',
-'æ\8c½è¯\8d' => 'è¼\93è©\9e',
+'æ\8c½è\81\94' => 'è¼\93è\81¯',
 '挽詞' => '輓詞',
+'挽词' => '輓詞',
 '挽诗' => '輓詩',
 '挽詩' => '輓詩',
 '轻于' => '輕於',
@@ -8710,7 +8714,6 @@ $zh2Hant = array(
 '回绕' => '迴繞',
 '回翔' => '迴翔',
 '回肠' => '迴腸',
-'回荡' => '迴蕩',
 '回诵' => '迴誦',
 '回路' => '迴路',
 '回转' => '迴轉',
@@ -8801,6 +8804,7 @@ $zh2Hant = array(
 '游河' => '遊河',
 '游猎' => '遊獵',
 '游玩' => '遊玩',
+'游荡' => '遊盪',
 '游目骋怀' => '遊目騁懷',
 '游程' => '遊程',
 '游丝' => '遊絲',
@@ -8872,10 +8876,10 @@ $zh2Hant = array(
 '部落发' => '部落發',
 '郭后' => '郭后',
 '都于' => '都於',
-'乡愿' => '鄉愿',
 '鄉愿' => '鄉愿',
-'郑凯云' => '鄭凱云',
+'乡愿' => '鄉愿',
 '鄭凱云' => '鄭凱云',
+'郑凯云' => '鄭凱云',
 '郑庄公' => '鄭莊公',
 '配制饲料' => '配制飼料',
 '配合着' => '配合著',
@@ -8909,7 +8913,6 @@ $zh2Hant = array(
 '丑女' => '醜女',
 '丑女效颦' => '醜女效顰',
 '丑奴儿' => '醜奴兒',
-'丑婆子' => '醜婆子',
 '丑妇' => '醜婦',
 '丑媳' => '醜媳',
 '丑媳妇' => '醜媳婦',
@@ -8951,8 +8954,8 @@ $zh2Hant = array(
 '酿制' => '釀製',
 '衅钟' => '釁鐘',
 '采石之役' => '采石之役',
-'采石之戰' => '采石之戰',
 '采石之战' => '采石之戰',
+'采石之戰' => '采石之戰',
 '采石磯' => '采石磯',
 '采石矶' => '采石磯',
 '釉药' => '釉藥',
@@ -9322,10 +9325,10 @@ $zh2Hant = array(
 '音声如钟' => '音聲如鐘',
 '韶山冲' => '韶山沖',
 '响钟' => '響鐘',
-'页面' => '頁面',
 '頁面' => '頁面',
-'顶å¤\9a' => 'é \82å¤\9a',
+'页é\9d¢' => 'é \81é\9d¢',
 '頂多' => '頂多',
+'顶多' => '頂多',
 '项庄' => '項莊',
 '顺于' => '順於',
 '顺钟向' => '順鐘向',
@@ -9347,8 +9350,8 @@ $zh2Hant = array(
 '颜范' => '顏範',
 '颠干倒坤' => '顛乾倒坤',
 '颠覆' => '顛覆',
-'顛顛仆仆' => '顛顛仆仆',
 '颠颠仆仆' => '顛顛仆仆',
+'顛顛仆仆' => '顛顛仆仆',
 '颤栗' => '顫慄',
 '显示表' => '顯示錶',
 '显示钟' => '顯示鐘',
@@ -9363,15 +9366,14 @@ $zh2Hant = array(
 '风范' => '風範',
 '风里' => '風裡',
 '风起云涌' => '風起雲湧',
-'風采' => '風采',
 '风采' => '風采',
+'風采' => '風采',
 '台风' => '颱風',
 '台风后' => '颱風後',
 '刮了' => '颳了',
 '刮倒' => '颳倒',
 '刮去' => '颳去',
 '刮得' => '颳得',
-'刮着' => '颳著',
 '刮走' => '颳走',
 '刮起' => '颳起',
 '刮雪' => '颳雪',
@@ -9538,16 +9540,16 @@ $zh2Hant = array(
 '香干' => '香乾',
 '香山庄' => '香山庄',
 '马干' => '馬乾',
-'馬占山' => '馬占山',
 '马占山' => '馬占山',
+'馬占山' => '馬占山',
 '马杆' => '馬杆',
-'马格里布' => '馬格里布',
 '馬格里布' => '馬格里布',
+'马格里布' => '馬格里布',
 '马表' => '馬錶',
 '驻扎' => '駐紮',
 '骀荡' => '駘蕩',
-'騰格里' => '騰格里',
 '腾格里' => '騰格里',
+'騰格里' => '騰格里',
 '腾冲' => '騰衝',
 '惊赞' => '驚讚',
 '惊钟' => '驚鐘',
@@ -9733,7 +9735,6 @@ $zh2Hant = array(
 '斗而铸锥' => '鬥而鑄錐',
 '斗脚' => '鬥腳',
 '斗舰' => '鬥艦',
-'斗艳' => '鬥艷',
 '斗茶' => '鬥茶',
 '斗草' => '鬥草',
 '斗叶儿' => '鬥葉兒',
@@ -9741,6 +9742,7 @@ $zh2Hant = array(
 '斗着' => '鬥著',
 '斗蟋蟀' => '鬥蟋蟀',
 '斗话' => '鬥話',
+'斗艳' => '鬥豔',
 '斗起' => '鬥起',
 '斗趣' => '鬥趣',
 '斗闲气' => '鬥閑氣',
@@ -9913,11 +9915,11 @@ $zh2Hant = array(
 '黄历' => '黃曆',
 '黄曲霉' => '黃曲霉',
 '黄历史' => '黃歷史',
-'黄诗杰' => '黃詩杰',
 '黃詩杰' => '黃詩杰',
+'黄诗杰' => '黃詩杰',
 '黄金表' => '黃金表',
-'黄钰筑' => '黃鈺筑',
 '黃鈺筑' => '黃鈺筑',
+'黄钰筑' => '黃鈺筑',
 '黄钟' => '黃鐘',
 '黄发' => '黃髮',
 '黄曲毒素' => '黃麴毒素',
@@ -13243,8 +13245,8 @@ $zh2Hans = array(
 '乘著述' => '乘著述',
 '乾一坛' => '乾一坛',
 '乾一壇' => '乾一坛',
-'乾一組' => '乾一组',
 '乾一组' => '乾一组',
+'乾一組' => '乾一组',
 '乾上乾下' => '乾上乾下',
 '乾為天' => '乾为天',
 '乾為陽' => '乾为阳',
@@ -13264,10 +13266,10 @@ $zh2Hans = array(
 '乾岡' => '乾冈',
 '乾劉' => '乾刘',
 '乾刘' => '乾刘',
-'乾刚' => '乾刚',
 '乾剛' => '乾刚',
-'ä¹¾å\8a¡' => 'ä¹¾å\8a¡',
+'ä¹¾å\88\9a' => 'ä¹¾å\88\9a',
 '乾務' => '乾务',
+'乾务' => '乾务',
 '乾化' => '乾化',
 '乾卦' => '乾卦',
 '乾县' => '乾县',
@@ -13319,12 +13321,12 @@ $zh2Hans = array(
 '乾景' => '乾景',
 '乾晷' => '乾晷',
 '乾曜' => '乾曜',
-'乾構' => '乾构',
 '乾构' => '乾构',
-'ä¹¾æ\9e¢' => 'ä¹¾æ\9e¢',
+'ä¹¾æ§\8b' => 'ä¹¾æ\9e\84',
 '乾樞' => '乾枢',
-'ä¹¾æ£\9f' => 'ä¹¾æ \8b',
+'ä¹¾æ\9e¢' => 'ä¹¾æ\9e¢',
 '乾栋' => '乾栋',
+'乾棟' => '乾栋',
 '乾步' => '乾步',
 '乾氏' => '乾氏',
 '乾沓和' => '乾沓和',
@@ -13334,8 +13336,8 @@ $zh2Hans = array(
 '乾清宮' => '乾清宫',
 '乾清宫' => '乾清宫',
 '乾渥' => '乾渥',
-'乾灵' => '乾灵',
 '乾靈' => '乾灵',
+'乾灵' => '乾灵',
 '乾男' => '乾男',
 '乾皋' => '乾皋',
 '乾盛世' => '乾盛世',
@@ -13354,19 +13356,19 @@ $zh2Hans = array(
 '乾红' => '乾红',
 '乾綱' => '乾纲',
 '乾纲' => '乾纲',
-'乾紐' => '乾纽',
 '乾纽' => '乾纽',
+'乾紐' => '乾纽',
 '乾絡' => '乾络',
 '乾络' => '乾络',
 '乾統' => '乾统',
 '乾统' => '乾统',
 '乾維' => '乾维',
 '乾维' => '乾维',
-'乾罗' => '乾罗',
 '乾羅' => '乾罗',
+'乾罗' => '乾罗',
 '乾花' => '乾花',
-'乾荫' => '乾荫',
 '乾蔭' => '乾荫',
+'乾荫' => '乾荫',
 '乾行' => '乾行',
 '乾衡' => '乾衡',
 '乾覆' => '乾覆',
@@ -13375,19 +13377,19 @@ $zh2Hans = array(
 '乾象历' => '乾象历',
 '乾贞' => '乾贞',
 '乾貞' => '乾贞',
-'乾贶' => '乾贶',
 '乾貺' => '乾贶',
+'乾贶' => '乾贶',
 '乾车' => '乾车',
 '乾車' => '乾车',
-'乾轴' => '乾轴',
 '乾軸' => '乾轴',
+'乾轴' => '乾轴',
 '乾通' => '乾通',
 '乾造' => '乾造',
 '乾道' => '乾道',
 '乾鑒' => '乾鉴',
 '乾鉴' => '乾鉴',
-'乾鈞' => '乾钧',
 '乾钧' => '乾钧',
+'乾鈞' => '乾钧',
 '乾闼' => '乾闼',
 '乾闥' => '乾闼',
 '乾陀' => '乾陀',
@@ -13396,8 +13398,8 @@ $zh2Hans = array(
 '乾音' => '乾音',
 '乾顾' => '乾顾',
 '乾顧' => '乾顾',
-'乾風' => '乾风',
 '乾风' => '乾风',
+'乾風' => '乾风',
 '乾首' => '乾首',
 '乾馬' => '乾马',
 '乾马' => '乾马',
@@ -13405,8 +13407,8 @@ $zh2Hans = array(
 '乾鹄' => '乾鹄',
 '乾鵲' => '乾鹊',
 '乾鹊' => '乾鹊',
-'乾龙' => '乾龙',
 '乾龍' => '乾龙',
+'乾龙' => '乾龙',
 '乾,健也' => '乾,健也',
 '乾,天也' => '乾,天也',
 '爭著' => '争着',
@@ -13419,14 +13421,14 @@ $zh2Hans = array(
 '爭著述' => '争著述',
 '五箇山' => '五箇山',
 '亮著' => '亮着',
-'亮著書' => '亮著书',
 '亮著书' => '亮著书',
+'亮著書' => '亮著书',
 '亮著作' => '亮著作',
 '亮著名' => '亮著名',
 '亮著錄' => '亮著录',
 '亮著录' => '亮著录',
-'亮著稱' => '亮著称',
 '亮著称' => '亮著称',
+'亮著稱' => '亮著称',
 '亮著者' => '亮著者',
 '亮著述' => '亮著述',
 '仗著' => '仗着',
@@ -13441,12 +13443,12 @@ $zh2Hans = array(
 '仗著者' => '仗著者',
 '仗著述' => '仗著述',
 '代表著' => '代表着',
-'代表著书' => '代表著书',
 '代表著書' => '代表著书',
+'代表著书' => '代表著书',
 '代表著作' => '代表著作',
 '代表著名' => '代表著名',
-'代表著录' => '代表著录',
 '代表著錄' => '代表著录',
+'代表著录' => '代表著录',
 '代表著称' => '代表著称',
 '代表著稱' => '代表著称',
 '代表著者' => '代表著者',
@@ -13470,13 +13472,13 @@ $zh2Hans = array(
 '伴著名' => '伴著名',
 '伴著录' => '伴著录',
 '伴著錄' => '伴著录',
-'伴著称' => '伴著称',
 '伴著稱' => '伴著称',
+'伴著称' => '伴著称',
 '伴著者' => '伴著者',
 '伴著述' => '伴著述',
 '低著' => '低着',
-'低著书' => '低著书',
 '低著書' => '低著书',
+'低著书' => '低著书',
 '低著作' => '低著作',
 '低著名' => '低著名',
 '低著录' => '低著录',
@@ -13492,8 +13494,8 @@ $zh2Hans = array(
 '住著名' => '住著名',
 '住著錄' => '住著录',
 '住著录' => '住著录',
-'住著稱' => '住著称',
 '住著称' => '住著称',
+'住著稱' => '住著称',
 '住著者' => '住著者',
 '住著述' => '住著述',
 '佛頭著糞' => '佛头著粪',
@@ -13514,8 +13516,8 @@ $zh2Hans = array(
 '保障著名' => '保障著名',
 '保障著錄' => '保障著录',
 '保障著录' => '保障著录',
-'保障著称' => '保障著称',
 '保障著稱' => '保障著称',
+'保障著称' => '保障著称',
 '保障著者' => '保障著者',
 '保障著述' => '保障著述',
 '信著' => '信着',
@@ -13525,8 +13527,8 @@ $zh2Hans = array(
 '信著名' => '信著名',
 '信著录' => '信著录',
 '信著錄' => '信著录',
-'信著稱' => '信著称',
 '信著称' => '信著称',
+'信著稱' => '信著称',
 '信著者' => '信著者',
 '信著述' => '信著述',
 '修鍊' => '修炼',
@@ -13536,10 +13538,10 @@ $zh2Hans = array(
 '候著书' => '候著书',
 '候著作' => '候著作',
 '候著名' => '候著名',
-'候著錄' => '候著录',
 '候著录' => '候著录',
-'候著称' => '候著称',
+'候著錄' => '候著录',
 '候著稱' => '候著称',
+'候著称' => '候著称',
 '候著者' => '候著者',
 '候著述' => '候著述',
 '藉助' => '借助',
@@ -13549,28 +13551,28 @@ $zh2Hans = array(
 '藉機' => '借机',
 '藉此' => '借此',
 '藉由' => '借由',
-'藉著' => '借着',
 '借著' => '借着',
 '藉着' => '借着',
+'藉著' => '借着',
 '藉端' => '借端',
-'借著书' => '借著书',
 '借著書' => '借著书',
+'借著书' => '借著书',
 '借著作' => '借著作',
 '借著名' => '借著名',
 '借著录' => '借著录',
 '借著錄' => '借著录',
-'借著稱' => '借著称',
 '借著称' => '借著称',
+'借著稱' => '借著称',
 '借著者' => '借著者',
 '借著述' => '借著述',
 '藉詞' => '借词',
 '做著' => '做着',
-'做著书' => '做著书',
 '做著書' => '做著书',
+'做著书' => '做著书',
 '做著作' => '做著作',
 '做著名' => '做著名',
-'做著录' => '做著录',
 '做著錄' => '做著录',
+'做著录' => '做著录',
 '做著稱' => '做著称',
 '做著称' => '做著称',
 '做著者' => '做著者',
@@ -13582,8 +13584,8 @@ $zh2Hans = array(
 '偷著名' => '偷著名',
 '偷著錄' => '偷著录',
 '偷著录' => '偷著录',
-'偷著称' => '偷著称',
 '偷著稱' => '偷著称',
+'偷著称' => '偷著称',
 '偷著者' => '偷著者',
 '偷著述' => '偷著述',
 '傢俬' => '傢俬',
@@ -13608,25 +13610,25 @@ $zh2Hans = array(
 '關著者' => '关著者',
 '關著述' => '关著述',
 '冀著' => '冀着',
-'冀著书' => '冀著书',
 '冀著書' => '冀著书',
+'冀著书' => '冀著书',
 '冀著作' => '冀著作',
 '冀著名' => '冀著名',
-'冀著录' => '冀著录',
 '冀著錄' => '冀著录',
+'冀著录' => '冀著录',
 '冀著稱' => '冀著称',
 '冀著称' => '冀著称',
 '冀著者' => '冀著者',
 '冀著述' => '冀著述',
 '冒著' => '冒着',
-'冒著書' => '冒著书',
 '冒著书' => '冒著书',
+'冒著書' => '冒著书',
 '冒著作' => '冒著作',
 '冒著名' => '冒著名',
 '冒著录' => '冒著录',
 '冒著錄' => '冒著录',
-'冒著称' => '冒著称',
 '冒著稱' => '冒著称',
+'冒著称' => '冒著称',
 '冒著者' => '冒著者',
 '冒著述' => '冒著述',
 '寫著' => '写着',
@@ -13651,10 +13653,10 @@ $zh2Hans = array(
 '制著書' => '制著书',
 '制著作' => '制著作',
 '制著名' => '制著名',
-'制著录' => '制著录',
 '制著錄' => '制著录',
-'制著稱' => '制著称',
+'制著录' => '制著录',
 '制著称' => '制著称',
+'制著稱' => '制著称',
 '制著者' => '制著者',
 '制著述' => '制著述',
 '刻著' => '刻着',
@@ -13685,14 +13687,14 @@ $zh2Hans = array(
 '動著者' => '动著者',
 '動著述' => '动著述',
 '努力著' => '努力着',
-'努力著书' => '努力著书',
 '努力著書' => '努力著书',
+'努力著书' => '努力著书',
 '努力著作' => '努力著作',
 '努力著名' => '努力著名',
-'努力著录' => '努力著录',
 '努力著錄' => '努力著录',
-'努力著稱' => '努力著称',
+'努力著录' => '努力著录',
 '努力著称' => '努力著称',
+'努力著稱' => '努力著称',
 '努力著者' => '努力著者',
 '努力著述' => '努力著述',
 '努著' => '努着',
@@ -13708,14 +13710,14 @@ $zh2Hans = array(
 '努著述' => '努著述',
 '卓著' => '卓著',
 '印著' => '印着',
-'印著書' => '印著书',
 '印著书' => '印著书',
+'印著書' => '印著书',
 '印著作' => '印著作',
 '印著名' => '印著名',
-'印著錄' => '印著录',
 '印著录' => '印著录',
-'印著稱' => '印著称',
+'印著錄' => '印著录',
 '印著称' => '印著称',
+'印著稱' => '印著称',
 '印著者' => '印著者',
 '印著述' => '印著述',
 '卷舌' => '卷舌',
@@ -13729,12 +13731,12 @@ $zh2Hans = array(
 '壓著述' => '压著述',
 '原著' => '原著',
 '去著' => '去着',
-'去著書' => '去著书',
 '去著书' => '去著书',
+'去著書' => '去著书',
 '去著作' => '去著作',
 '去著名' => '去著名',
-'去著錄' => '去著录',
 '去著录' => '去著录',
+'去著錄' => '去著录',
 '去著稱' => '去著称',
 '去著称' => '去著称',
 '去著者' => '去著者',
@@ -13742,12 +13744,12 @@ $zh2Hans = array(
 '反反覆覆' => '反反复复',
 '反覆' => '反复',
 '受著' => '受着',
-'受著书' => '受著书',
 '受著書' => '受著书',
+'受著书' => '受著书',
 '受著作' => '受著作',
 '受著名' => '受著名',
-'受著录' => '受著录',
 '受著錄' => '受著录',
+'受著录' => '受著录',
 '受著稱' => '受著称',
 '受著称' => '受著称',
 '受著者' => '受著者',
@@ -13761,12 +13763,12 @@ $zh2Hans = array(
 '變著者' => '变著者',
 '變著述' => '变著述',
 '叫著' => '叫着',
-'叫著書' => '叫著书',
 '叫著书' => '叫著书',
+'叫著書' => '叫著书',
 '叫著作' => '叫著作',
 '叫著名' => '叫著名',
-'叫著錄' => '叫著录',
 '叫著录' => '叫著录',
+'叫著錄' => '叫著录',
 '叫著称' => '叫著称',
 '叫著稱' => '叫著称',
 '叫著者' => '叫著者',
@@ -13791,8 +13793,8 @@ $zh2Hans = array(
 '向著者' => '向著者',
 '向著述' => '向著述',
 '含著' => '含着',
-'含著书' => '含著书',
 '含著書' => '含著书',
+'含著书' => '含著书',
 '含著作' => '含著作',
 '含著名' => '含著名',
 '含著錄' => '含著录',
@@ -13811,8 +13813,8 @@ $zh2Hans = array(
 '聽著稱' => '听著称',
 '聽著者' => '听著者',
 '聽著述' => '听著述',
-'吳其濬' => '吴其濬',
 '吴其濬' => '吴其濬',
+'吳其濬' => '吴其濬',
 '吹著' => '吹着',
 '吹著書' => '吹著书',
 '吹著书' => '吹著书',
@@ -13826,12 +13828,12 @@ $zh2Hans = array(
 '吹著述' => '吹著述',
 '周易乾' => '周易乾',
 '味著' => '味着',
-'味著書' => '味著书',
 '味著书' => '味著书',
+'味著書' => '味著书',
 '味著作' => '味著作',
 '味著名' => '味著名',
-'味著錄' => '味著录',
 '味著录' => '味著录',
+'味著錄' => '味著录',
 '味著称' => '味著称',
 '味著稱' => '味著称',
 '味著者' => '味著者',
@@ -13847,12 +13849,12 @@ $zh2Hans = array(
 '響著述' => '响著述',
 '哪吒' => '哪吒',
 '哭著' => '哭着',
-'哭著书' => '哭著书',
 '哭著書' => '哭著书',
+'哭著书' => '哭著书',
 '哭著作' => '哭著作',
 '哭著名' => '哭著名',
-'哭著录' => '哭著录',
 '哭著錄' => '哭著录',
+'哭著录' => '哭著录',
 '哭著稱' => '哭著称',
 '哭著称' => '哭著称',
 '哭著者' => '哭著者',
@@ -13864,17 +13866,17 @@ $zh2Hans = array(
 '唱著名' => '唱著名',
 '唱著录' => '唱著录',
 '唱著錄' => '唱著录',
-'唱著稱' => '唱著称',
 '唱著称' => '唱著称',
+'唱著稱' => '唱著称',
 '唱著者' => '唱著者',
 '唱著述' => '唱著述',
 '喝著' => '喝着',
-'喝著書' => '喝著书',
 '喝著书' => '喝著书',
+'喝著書' => '喝著书',
 '喝著作' => '喝著作',
 '喝著名' => '喝著名',
-'喝著錄' => '喝著录',
 '喝著录' => '喝著录',
+'喝著錄' => '喝著录',
 '喝著稱' => '喝著称',
 '喝著称' => '喝著称',
 '喝著者' => '喝著者',
@@ -13883,12 +13885,12 @@ $zh2Hans = array(
 '嗅得著' => '嗅得着',
 '嗅著' => '嗅着',
 '嚷著' => '嚷着',
-'嚷著书' => '嚷著书',
 '嚷著書' => '嚷著书',
+'嚷著书' => '嚷著书',
 '嚷著作' => '嚷著作',
 '嚷著名' => '嚷著名',
-'嚷著录' => '嚷著录',
 '嚷著錄' => '嚷著录',
+'嚷著录' => '嚷著录',
 '嚷著称' => '嚷著称',
 '嚷著稱' => '嚷著称',
 '嚷著者' => '嚷著者',
@@ -13897,19 +13899,19 @@ $zh2Hans = array(
 '因著' => '因着',
 '因著〈' => '因著〈',
 '因著《' => '因著《',
-'因著书' => '因著书',
 '因著書' => '因著书',
+'因著书' => '因著书',
 '因著作' => '因著作',
 '因著名' => '因著名',
-'因著录' => '因著录',
 '因著錄' => '因著录',
-'因著称' => '因著称',
+'因著录' => '因著录',
 '因著稱' => '因著称',
+'因著称' => '因著称',
 '因著者' => '因著者',
 '因著述' => '因著述',
 '困著' => '困着',
-'困著书' => '困著书',
 '困著書' => '困著书',
+'困著书' => '困著书',
 '困著作' => '困著作',
 '困著名' => '困著名',
 '困著錄' => '困著录',
@@ -13928,8 +13930,8 @@ $zh2Hans = array(
 '圍著述' => '围著述',
 '土著' => '土著',
 '在著' => '在着',
-'在著书' => '在著书',
 '在著書' => '在著书',
+'在著书' => '在著书',
 '在著作' => '在著作',
 '在著名' => '在著名',
 '在著錄' => '在著录',
@@ -13939,12 +13941,12 @@ $zh2Hans = array(
 '在著者' => '在著者',
 '在著述' => '在著述',
 '坐著' => '坐着',
-'坐著書' => '坐著书',
 '坐著书' => '坐著书',
+'坐著書' => '坐著书',
 '坐著作' => '坐著作',
 '坐著名' => '坐著名',
-'坐著錄' => '坐著录',
 '坐著录' => '坐著录',
+'坐著錄' => '坐著录',
 '坐著称' => '坐著称',
 '坐著稱' => '坐著称',
 '坐著者' => '坐著者',
@@ -13960,8 +13962,8 @@ $zh2Hans = array(
 '備著述' => '备著述',
 '覆查' => '复查',
 '覆核' => '复核',
-'天道為乾' => '天道为乾',
 '天道为乾' => '天道为乾',
+'天道為乾' => '天道为乾',
 '太閤' => '太阁',
 '夾著' => '夹着',
 '夾著書' => '夹著书',
@@ -13976,8 +13978,8 @@ $zh2Hans = array(
 '字乾生' => '字乾生',
 '存摺' => '存摺',
 '孤著' => '孤着',
-'孤著書' => '孤著书',
 '孤著书' => '孤著书',
+'孤著書' => '孤著书',
 '孤著作' => '孤著作',
 '孤著名' => '孤著名',
 '孤著錄' => '孤著录',
@@ -13995,8 +13997,8 @@ $zh2Hans = array(
 '學著者' => '学著者',
 '學著述' => '学著述',
 '守著' => '守着',
-'守著书' => '守著书',
 '守著書' => '守著书',
+'守著书' => '守著书',
 '守著作' => '守著作',
 '守著名' => '守著名',
 '守著录' => '守著录',
@@ -14036,12 +14038,12 @@ $zh2Hans = array(
 '將軍抽車' => '将军抽車',
 '尼乾陀' => '尼乾陀',
 '展著' => '展着',
-'展著书' => '展著书',
 '展著書' => '展著书',
+'展著书' => '展著书',
 '展著作' => '展著作',
 '展著名' => '展著名',
-'展著录' => '展著录',
 '展著錄' => '展著录',
+'展著录' => '展著录',
 '展著稱' => '展著称',
 '展著称' => '展著称',
 '展著者' => '展著者',
@@ -14068,50 +14070,50 @@ $zh2Hans = array(
 '乾乾脆脆' => '干干脆脆',
 '乾泉水' => '干泉水',
 '幹著' => '干着',
-'幺二三' => '幺二三',
 '么二三' => '幺二三',
-'幺元' => '幺元',
+'幺二三' => '幺二三',
 '么元' => '幺元',
+'幺元' => '幺元',
 '幺鳳' => '幺凤',
 '么鳳' => '幺凤',
-'幺半群' => '幺半群',
 '么半群' => '幺半群',
-'幺å\8e®' => '幺å\8e®',
+'幺å\8d\8a群' => '幺å\8d\8a群',
 '幺廝' => '幺厮',
+'幺厮' => '幺厮',
 '幺叔' => '幺叔',
 '么叔' => '幺叔',
-'幺媽' => '幺妈',
 '么媽' => '幺妈',
+'幺媽' => '幺妈',
 '么妹' => '幺妹',
 '幺妹' => '幺妹',
 '么姓' => '幺姓',
 '幺姓' => '幺姓',
-'幺姨' => '幺姨',
 '么姨' => '幺姨',
+'幺姨' => '幺姨',
+'么娘' => '幺娘',
+'么孃' => '幺娘',
 '幺娘' => '幺娘',
 '幺孃' => '幺娘',
-'么孃' => '幺娘',
-'么娘' => '幺娘',
 '幺小' => '幺小',
 '么小' => '幺小',
-'么氏' => '幺氏',
 '幺氏' => '幺氏',
-'幺爸' => '幺爸',
+'么氏' => '幺氏',
 '么爸' => '幺爸',
-'么爹' => '幺爹',
+'幺爸' => '幺爸',
 '幺爹' => '幺爹',
-'幺篇' => '幺篇',
+'么爹' => '幺爹',
 '么篇' => '幺篇',
+'幺篇' => '幺篇',
 '么舅' => '幺舅',
 '幺舅' => '幺舅',
 '么蛾子' => '幺蛾子',
 '幺蛾子' => '幺蛾子',
-'幺謙' => '幺谦',
 '么謙' => '幺谦',
+'幺謙' => '幺谦',
 '幺麽' => '幺麽',
 '么麼' => '幺麽',
-'么麼小丑' => '幺麽小丑',
 '幺麽小丑' => '幺麽小丑',
+'么麼小丑' => '幺麽小丑',
 '庇護著' => '庇护着',
 '應著' => '应着',
 '應著書' => '应著书',
@@ -14123,12 +14125,12 @@ $zh2Hans = array(
 '應著述' => '应著述',
 '康乾' => '康乾',
 '康著' => '康着',
-'康著書' => '康著书',
 '康著书' => '康著书',
+'康著書' => '康著书',
 '康著作' => '康著作',
 '康著名' => '康著名',
-'康著錄' => '康著录',
 '康著录' => '康著录',
+'康著錄' => '康著录',
 '康著称' => '康著称',
 '康著稱' => '康著称',
 '康著者' => '康著者',
@@ -14141,8 +14143,8 @@ $zh2Hans = array(
 '開著稱' => '开著称',
 '開著者' => '开著者',
 '開著述' => '开著述',
-'张法乾' => '张法乾',
 '張法乾' => '张法乾',
+'张法乾' => '张法乾',
 '當著' => '当着',
 '當著書' => '当著书',
 '當著作' => '当著作',
@@ -14166,8 +14168,8 @@ $zh2Hans = array(
 '待著述' => '待著述',
 '後姓' => '後姓',
 '得著' => '得着',
-'得著书' => '得著书',
 '得著書' => '得著书',
+'得著书' => '得著书',
 '得著作' => '得著作',
 '得著名' => '得著名',
 '得著錄' => '得著录',
@@ -14177,12 +14179,12 @@ $zh2Hans = array(
 '得著者' => '得著者',
 '得著述' => '得著述',
 '循著' => '循着',
-'循著書' => '循著书',
 '循著书' => '循著书',
+'循著書' => '循著书',
 '循著作' => '循著作',
 '循著名' => '循著名',
-'循著錄' => '循著录',
 '循著录' => '循著录',
+'循著錄' => '循著录',
 '循著称' => '循著称',
 '循著稱' => '循著称',
 '循著者' => '循著者',
@@ -14194,13 +14196,13 @@ $zh2Hans = array(
 '心著名' => '心著名',
 '心著录' => '心著录',
 '心著錄' => '心著录',
-'心著称' => '心著称',
 '心著稱' => '心著称',
+'心著称' => '心著称',
 '心著者' => '心著者',
 '心著述' => '心著述',
 '忍著' => '忍着',
-'忍著書' => '忍著书',
 '忍著书' => '忍著书',
+'忍著書' => '忍著书',
 '忍著作' => '忍著作',
 '忍著名' => '忍著名',
 '忍著录' => '忍著录',
@@ -14210,23 +14212,23 @@ $zh2Hans = array(
 '忍著者' => '忍著者',
 '忍著述' => '忍著述',
 '志著' => '志着',
-'志著书' => '志著书',
 '志著書' => '志著书',
+'志著书' => '志著书',
 '志著作' => '志著作',
 '志著名' => '志著名',
-'志著录' => '志著录',
 '志著錄' => '志著录',
-'志著稱' => '志著称',
+'志著录' => '志著录',
 '志著称' => '志著称',
+'志著稱' => '志著称',
 '志著者' => '志著者',
 '志著述' => '志著述',
 '忙著' => '忙着',
-'忙著書' => '忙著书',
 '忙著书' => '忙著书',
+'忙著書' => '忙著书',
 '忙著作' => '忙著作',
 '忙著名' => '忙著名',
-'忙著錄' => '忙著录',
 '忙著录' => '忙著录',
+'忙著錄' => '忙著录',
 '忙著称' => '忙著称',
 '忙著稱' => '忙著称',
 '忙著者' => '忙著者',
@@ -14240,25 +14242,25 @@ $zh2Hans = array(
 '懷著者' => '怀著者',
 '懷著述' => '怀著述',
 '急著' => '急着',
-'急著書' => '急著书',
 '急著书' => '急著书',
+'急著書' => '急著书',
 '急著作' => '急著作',
 '急著名' => '急著名',
-'急著錄' => '急著录',
 '急著录' => '急著录',
+'急著錄' => '急著录',
 '急著称' => '急著称',
 '急著稱' => '急著称',
 '急著者' => '急著者',
 '急著述' => '急著述',
 '性著' => '性着',
-'性著書' => '性著书',
 '性著书' => '性著书',
+'性著書' => '性著书',
 '性著作' => '性著作',
 '性著名' => '性著名',
-'性著錄' => '性著录',
 '性著录' => '性著录',
-'性著稱' => '性著称',
+'性著錄' => '性著录',
 '性著称' => '性著称',
+'性著稱' => '性著称',
 '性著者' => '性著者',
 '性著述' => '性著述',
 '戀著' => '恋着',
@@ -14277,8 +14279,8 @@ $zh2Hans = array(
 '悠著名' => '悠著名',
 '悠著錄' => '悠著录',
 '悠著录' => '悠著录',
-'悠著稱' => '悠著称',
 '悠著称' => '悠著称',
+'悠著稱' => '悠著称',
 '悠著者' => '悠著者',
 '悠著述' => '悠著述',
 '慣著' => '惯着',
@@ -14290,14 +14292,14 @@ $zh2Hans = array(
 '慣著者' => '惯著者',
 '慣著述' => '惯著述',
 '想著' => '想着',
-'想著书' => '想著书',
 '想著書' => '想著书',
+'想著书' => '想著书',
 '想著作' => '想著作',
 '想著名' => '想著名',
-'想著录' => '想著录',
 '想著錄' => '想著录',
-'想著稱' => '想著称',
+'想著录' => '想著录',
 '想著称' => '想著称',
+'想著稱' => '想著称',
 '想著者' => '想著者',
 '想著述' => '想著述',
 '戰著' => '战着',
@@ -14309,12 +14311,12 @@ $zh2Hans = array(
 '戰著者' => '战著者',
 '戰著述' => '战著述',
 '戴著' => '戴着',
-'戴著书' => '戴著书',
 '戴著書' => '戴著书',
+'戴著书' => '戴著书',
 '戴著作' => '戴著作',
 '戴著名' => '戴著名',
-'戴著录' => '戴著录',
 '戴著錄' => '戴著录',
+'戴著录' => '戴著录',
 '戴著稱' => '戴著称',
 '戴著称' => '戴著称',
 '戴著者' => '戴著者',
@@ -14326,17 +14328,17 @@ $zh2Hans = array(
 '扎著名' => '扎著名',
 '扎著錄' => '扎著录',
 '扎著录' => '扎著录',
-'扎著稱' => '扎著称',
 '扎著称' => '扎著称',
+'扎著稱' => '扎著称',
 '扎著者' => '扎著者',
 '扎著述' => '扎著述',
 '打著' => '打着',
-'打著书' => '打著书',
 '打著書' => '打著书',
+'打著书' => '打著书',
 '打著作' => '打著作',
 '打著名' => '打著名',
-'打著录' => '打著录',
 '打著錄' => '打著录',
+'打著录' => '打著录',
 '打著称' => '打著称',
 '打著稱' => '打著称',
 '打著者' => '打著者',
@@ -14361,8 +14363,8 @@ $zh2Hans = array(
 '抓著名' => '抓著名',
 '抓著录' => '抓著录',
 '抓著錄' => '抓著录',
-'抓著稱' => '抓著称',
 '抓著称' => '抓著称',
+'抓著稱' => '抓著称',
 '抓著者' => '抓著者',
 '抓著述' => '抓著述',
 '護著' => '护着',
@@ -14378,17 +14380,17 @@ $zh2Hans = array(
 '披著書' => '披著书',
 '披著作' => '披著作',
 '披著名' => '披著名',
-'披著錄' => '披著录',
 '披著录' => '披著录',
-'披著称' => '披著称',
+'披著錄' => '披著录',
 '披著稱' => '披著称',
+'披著称' => '披著称',
 '披著者' => '披著者',
 '披著述' => '披著述',
 '抬著' => '抬着',
 '抬著作' => '抬著作',
 '抬著名' => '抬著名',
-'抬著錄' => '抬著录',
 '抬著录' => '抬著录',
+'抬著錄' => '抬著录',
 '抬著稱' => '抬著称',
 '抬著称' => '抬著称',
 '抬著者' => '抬著者',
@@ -14398,8 +14400,8 @@ $zh2Hans = array(
 '抱著名' => '抱著名',
 '抱著录' => '抱著录',
 '抱著錄' => '抱著录',
-'抱著称' => '抱著称',
 '抱著稱' => '抱著称',
+'抱著称' => '抱著称',
 '抱著者' => '抱著者',
 '抱著述' => '抱著述',
 '拉著' => '拉着',
@@ -14409,8 +14411,8 @@ $zh2Hans = array(
 '拉著名' => '拉著名',
 '拉著录' => '拉著录',
 '拉著錄' => '拉著录',
-'拉著稱' => '拉著称',
 '拉著称' => '拉著称',
+'拉著稱' => '拉著称',
 '拉著者' => '拉著者',
 '拉著述' => '拉著述',
 '拉鍊' => '拉链',
@@ -14439,8 +14441,8 @@ $zh2Hans = array(
 '拼著' => '拼着',
 '拼著作' => '拼著作',
 '拼著名' => '拼著名',
-'拼著錄' => '拼著录',
 '拼著录' => '拼著录',
+'拼著錄' => '拼著录',
 '拼著稱' => '拼著称',
 '拼著称' => '拼著称',
 '拼著者' => '拼著者',
@@ -14448,10 +14450,10 @@ $zh2Hans = array(
 '拿著' => '拿着',
 '拿著作' => '拿著作',
 '拿著名' => '拿著名',
-'拿著錄' => '拿著录',
 '拿著录' => '拿著录',
-'拿著稱' => '拿著称',
+'拿著錄' => '拿著录',
 '拿著称' => '拿著称',
+'拿著稱' => '拿著称',
 '拿著者' => '拿著者',
 '拿著述' => '拿著述',
 '持著' => '持着',
@@ -14468,8 +14470,8 @@ $zh2Hans = array(
 '挑著名' => '挑著名',
 '挑著錄' => '挑著录',
 '挑著录' => '挑著录',
-'挑著稱' => '挑著称',
 '挑著称' => '挑著称',
+'挑著稱' => '挑著称',
 '挑著者' => '挑著者',
 '挑著述' => '挑著述',
 '擋著' => '挡着',
@@ -14506,10 +14508,10 @@ $zh2Hans = array(
 '捆著' => '捆着',
 '捆著作' => '捆著作',
 '捆著名' => '捆著名',
-'捆著录' => '捆著录',
 '捆著錄' => '捆著录',
-'捆著稱' => '捆著称',
+'捆著录' => '捆著录',
 '捆著称' => '捆著称',
+'捆著稱' => '捆著称',
 '捆著者' => '捆著者',
 '捆著述' => '捆著述',
 '據著' => '据着',
@@ -14523,10 +14525,10 @@ $zh2Hans = array(
 '掖著' => '掖着',
 '掖著作' => '掖著作',
 '掖著名' => '掖著名',
-'掖著录' => '掖著录',
 '掖著錄' => '掖著录',
-'掖著称' => '掖著称',
+'掖著录' => '掖著录',
 '掖著稱' => '掖著称',
+'掖著称' => '掖著称',
 '掖著者' => '掖著者',
 '掖著述' => '掖著述',
 '接著' => '接着',
@@ -14539,14 +14541,14 @@ $zh2Hans = array(
 '接著者' => '接著者',
 '接著述' => '接著述',
 '揉著' => '揉着',
-'揉著書' => '揉著书',
 '揉著书' => '揉著书',
+'揉著書' => '揉著书',
 '揉著作' => '揉著作',
 '揉著名' => '揉著名',
-'揉著錄' => '揉著录',
 '揉著录' => '揉著录',
-'揉著稱' => '揉著称',
+'揉著錄' => '揉著录',
 '揉著称' => '揉著称',
+'揉著稱' => '揉著称',
 '揉著者' => '揉著者',
 '揉著述' => '揉著述',
 '提著' => '提着',
@@ -14574,14 +14576,14 @@ $zh2Hans = array(
 '擺著述' => '摆著述',
 '撰著' => '撰著',
 '撼著' => '撼着',
-'撼著书' => '撼著书',
 '撼著書' => '撼著书',
+'撼著书' => '撼著书',
 '撼著作' => '撼著作',
 '撼著名' => '撼著名',
-'撼著录' => '撼著录',
 '撼著錄' => '撼著录',
-'撼著稱' => '撼著称',
+'撼著录' => '撼著录',
 '撼著称' => '撼著称',
+'撼著稱' => '撼著称',
 '撼著者' => '撼著者',
 '撼著述' => '撼著述',
 '敞著' => '敞着',
@@ -14589,8 +14591,8 @@ $zh2Hans = array(
 '敞著名' => '敞著名',
 '敞著錄' => '敞著录',
 '敞著录' => '敞著录',
-'敞著称' => '敞著称',
 '敞著稱' => '敞著称',
+'敞著称' => '敞著称',
 '敞著者' => '敞著者',
 '敞著述' => '敞著述',
 '數著' => '数着',
@@ -14616,10 +14618,10 @@ $zh2Hans = array(
 '斥著书' => '斥著书',
 '斥著作' => '斥著作',
 '斥著名' => '斥著名',
-'斥著录' => '斥著录',
 '斥著錄' => '斥著录',
-'斥著称' => '斥著称',
+'斥著录' => '斥著录',
 '斥著稱' => '斥著称',
+'斥著称' => '斥著称',
 '斥著者' => '斥著者',
 '斥著述' => '斥著述',
 '新著' => '新著',
@@ -14638,8 +14640,8 @@ $zh2Hans = array(
 '於志賀' => '於志贺',
 '於志贺' => '於志贺',
 '於戲' => '於戏',
-'於梨华' => '於梨华',
 '於梨華' => '於梨华',
+'於梨华' => '於梨华',
 '於氏' => '於氏',
 '於潛縣' => '於潜县',
 '於潜县' => '於潜县',
@@ -14647,34 +14649,34 @@ $zh2Hans = array(
 '於菟' => '於菟',
 '於賢德' => '於贤德',
 '於除鞬' => '於除鞬',
-'旋乾轉坤' => '旋乾转坤',
 '旋乾转坤' => '旋乾转坤',
+'旋乾轉坤' => '旋乾转坤',
 '曠若發矇' => '旷若发矇',
 '昂著' => '昂着',
 '昂著书' => '昂著书',
 '昂著書' => '昂著书',
 '昂著作' => '昂著作',
 '昂著名' => '昂著名',
-'昂著录' => '昂著录',
 '昂著錄' => '昂著录',
+'昂著录' => '昂著录',
 '昂著稱' => '昂著称',
 '昂著称' => '昂著称',
 '昂著者' => '昂著者',
 '昂著述' => '昂著述',
 '易·乾' => '易·乾',
-'易经·乾' => '易经·乾',
 '易經·乾' => '易经·乾',
+'易经·乾' => '易经·乾',
 '易經乾' => '易经乾',
 '易经乾' => '易经乾',
 '映著' => '映着',
-'映著书' => '映著书',
 '映著書' => '映著书',
+'映著书' => '映著书',
 '映著作' => '映著作',
 '映著名' => '映著名',
-'映著录' => '映著录',
 '映著錄' => '映著录',
-'映著称' => '映著称',
+'映著录' => '映著录',
 '映著稱' => '映著称',
+'映著称' => '映著称',
 '映著者' => '映著者',
 '映著述' => '映著述',
 '昭著' => '昭著',
@@ -14683,15 +14685,15 @@ $zh2Hans = array(
 '晃著' => '晃着',
 '晃著作' => '晃著作',
 '晃著名' => '晃著名',
-'晃著录' => '晃著录',
 '晃著錄' => '晃著录',
-'晃著稱' => '晃著称',
+'晃著录' => '晃著录',
 '晃著称' => '晃著称',
+'晃著稱' => '晃著称',
 '晃著者' => '晃著者',
 '晃著述' => '晃著述',
 '暗著' => '暗着',
-'暗著書' => '暗著书',
 '暗著书' => '暗著书',
+'暗著書' => '暗著书',
 '暗著作' => '暗著作',
 '暗著名' => '暗著名',
 '暗著錄' => '暗著录',
@@ -14705,17 +14707,17 @@ $zh2Hans = array(
 '有著书' => '有著书',
 '有著作' => '有著作',
 '有著名' => '有著名',
-'有著录' => '有著录',
 '有著錄' => '有著录',
-'有著稱' => '有著称',
+'有著录' => '有著录',
 '有著称' => '有著称',
+'有著稱' => '有著称',
 '有著者' => '有著者',
 '有著述' => '有著述',
 '望著' => '望着',
 '望著作' => '望著作',
 '望著名' => '望著名',
-'望著錄' => '望著录',
 '望著录' => '望著录',
+'望著錄' => '望著录',
 '望著稱' => '望著称',
 '望著称' => '望著称',
 '望著者' => '望著者',
@@ -14724,21 +14726,21 @@ $zh2Hans = array(
 '朝著' => '朝着',
 '朝著作' => '朝著作',
 '朝著名' => '朝著名',
-'朝著錄' => '朝著录',
 '朝著录' => '朝著录',
-'朝著称' => '朝著称',
+'朝著錄' => '朝著录',
 '朝著稱' => '朝著称',
+'朝著称' => '朝著称',
 '朝著者' => '朝著者',
 '朝著述' => '朝著述',
 '本著' => '本着',
-'本著書' => '本著书',
 '本著书' => '本著书',
+'本著書' => '本著书',
 '本著作' => '本著作',
 '本著名' => '本著名',
-'本著錄' => '本著录',
 '本著录' => '本著录',
-'本著称' => '本著称',
+'本著錄' => '本著录',
 '本著稱' => '本著称',
+'本著称' => '本著称',
 '本著者' => '本著者',
 '本著述' => '本著述',
 '朴於宇同' => '朴於宇同',
@@ -14759,8 +14761,8 @@ $zh2Hans = array(
 '雜著者' => '杂著者',
 '雜著述' => '杂著述',
 '李乾德' => '李乾德',
-'李乾顺' => '李乾顺',
 '李乾順' => '李乾顺',
+'李乾顺' => '李乾顺',
 '李澤鉅' => '李泽钜',
 '來著' => '来着',
 '來著書' => '来著书',
@@ -14776,8 +14778,8 @@ $zh2Hans = array(
 '枕著名' => '枕著名',
 '枕著錄' => '枕著录',
 '枕著录' => '枕著录',
-'枕著称' => '枕著称',
 '枕著稱' => '枕著称',
+'枕著称' => '枕著称',
 '枕著者' => '枕著者',
 '枕著述' => '枕著述',
 '柳詒徵' => '柳诒徵',
@@ -14849,17 +14851,17 @@ $zh2Hans = array(
 '活著名' => '活著名',
 '活著录' => '活著录',
 '活著錄' => '活著录',
-'活著称' => '活著称',
 '活著稱' => '活著称',
+'活著称' => '活著称',
 '活著者' => '活著者',
 '活著述' => '活著述',
 '流著' => '流着',
-'流著書' => '流著书',
 '流著书' => '流著书',
+'流著書' => '流著书',
 '流著作' => '流著作',
 '流著名' => '流著名',
-'流著錄' => '流著录',
 '流著录' => '流著录',
+'流著錄' => '流著录',
 '流著稱' => '流著称',
 '流著称' => '流著称',
 '流著者' => '流著者',
@@ -14872,8 +14874,8 @@ $zh2Hans = array(
 '浮著名' => '浮著名',
 '浮著录' => '浮著录',
 '浮著錄' => '浮著录',
-'浮著称' => '浮著称',
 '浮著稱' => '浮著称',
+'浮著称' => '浮著称',
 '浮著者' => '浮著者',
 '浮著述' => '浮著述',
 '潤著' => '润着',
@@ -14889,10 +14891,10 @@ $zh2Hans = array(
 '涵著書' => '涵著书',
 '涵著作' => '涵著作',
 '涵著名' => '涵著名',
-'涵著錄' => '涵著录',
 '涵著录' => '涵著录',
-'涵著称' => '涵著称',
+'涵著錄' => '涵著录',
 '涵著稱' => '涵著称',
+'涵著称' => '涵著称',
 '涵著者' => '涵著者',
 '涵著述' => '涵著述',
 '渴著' => '渴着',
@@ -14902,8 +14904,8 @@ $zh2Hans = array(
 '渴著名' => '渴著名',
 '渴著录' => '渴著录',
 '渴著錄' => '渴著录',
-'渴著稱' => '渴著称',
 '渴著称' => '渴著称',
+'渴著稱' => '渴著称',
 '渴著者' => '渴著者',
 '渴著述' => '渴著述',
 '溢著' => '溢着',
@@ -14924,8 +14926,8 @@ $zh2Hans = array(
 '演著名' => '演著名',
 '演著录' => '演著录',
 '演著錄' => '演著录',
-'演著称' => '演著称',
 '演著稱' => '演著称',
+'演著称' => '演著称',
 '演著者' => '演著者',
 '演著述' => '演著述',
 '漫著' => '漫着',
@@ -14933,8 +14935,8 @@ $zh2Hans = array(
 '漫著书' => '漫著书',
 '漫著作' => '漫著作',
 '漫著名' => '漫著名',
-'漫著錄' => '漫著录',
 '漫著录' => '漫著录',
+'漫著錄' => '漫著录',
 '漫著称' => '漫著称',
 '漫著稱' => '漫著称',
 '漫著者' => '漫著者',
@@ -14954,14 +14956,14 @@ $zh2Hans = array(
 '燒著者' => '烧著者',
 '燒著述' => '烧著述',
 '照著' => '照着',
-'照著書' => '照著书',
 '照著书' => '照著书',
+'照著書' => '照著书',
 '照著作' => '照著作',
 '照著名' => '照著名',
-'照著錄' => '照著录',
 '照著录' => '照著录',
-'照著稱' => '照著称',
+'照著錄' => '照著录',
 '照著称' => '照著称',
+'照著稱' => '照著称',
 '照著者' => '照著者',
 '照著述' => '照著述',
 '愛護著' => '爱护着',
@@ -14995,8 +14997,8 @@ $zh2Hans = array(
 '猜著書' => '猜着书',
 '猜著作' => '猜著作',
 '猜著名' => '猜著名',
-'猜著录' => '猜著录',
 '猜著錄' => '猜著录',
+'猜著录' => '猜著录',
 '猜著称' => '猜著称',
 '猜著稱' => '猜著称',
 '猜著者' => '猜著者',
@@ -15008,8 +15010,8 @@ $zh2Hans = array(
 '甜著书' => '甜著书',
 '甜著作' => '甜著作',
 '甜著名' => '甜著名',
-'甜著錄' => '甜著录',
 '甜著录' => '甜著录',
+'甜著錄' => '甜著录',
 '甜著稱' => '甜著称',
 '甜著称' => '甜著称',
 '甜著者' => '甜著者',
@@ -15027,12 +15029,12 @@ $zh2Hans = array(
 '用著稱' => '用著称',
 '用著者' => '用著者',
 '用著述' => '用著述',
-'男為乾' => '男为乾',
-'男爲乾' => '男为乾',
 '男为乾' => '男为乾',
+'男爲乾' => '男为乾',
+'男為乾' => '男为乾',
 '男性為乾' => '男性为乾',
-'男性为乾' => '男性为乾',
 '男性爲乾' => '男性为乾',
+'男性为乾' => '男性为乾',
 '留著' => '留着',
 '留著書' => '留着书',
 '留著作' => '留著作',
@@ -15064,12 +15066,12 @@ $zh2Hans = array(
 '皺著者' => '皱著者',
 '皺著述' => '皱著述',
 '盛著' => '盛着',
-'盛著書' => '盛著书',
 '盛著书' => '盛著书',
+'盛著書' => '盛著书',
 '盛著作' => '盛著作',
 '盛著名' => '盛著名',
-'盛著录' => '盛著录',
 '盛著錄' => '盛著录',
+'盛著录' => '盛著录',
 '盛著稱' => '盛著称',
 '盛著称' => '盛著称',
 '盛著者' => '盛著者',
@@ -15085,14 +15087,14 @@ $zh2Hans = array(
 '盯著者' => '盯著者',
 '盯著述' => '盯著述',
 '盾著' => '盾着',
-'盾著书' => '盾著书',
 '盾著書' => '盾著书',
+'盾著书' => '盾著书',
 '盾著作' => '盾著作',
 '盾著名' => '盾著名',
-'盾著录' => '盾著录',
 '盾著錄' => '盾著录',
-'盾著称' => '盾著称',
+'盾著录' => '盾著录',
 '盾著稱' => '盾著称',
+'盾著称' => '盾著称',
 '盾著者' => '盾著者',
 '盾著述' => '盾著述',
 '看不著' => '看不着',
@@ -15103,8 +15105,8 @@ $zh2Hans = array(
 '看著名' => '看著名',
 '看著录' => '看著录',
 '看著錄' => '看著录',
-'看著称' => '看著称',
 '看著稱' => '看著称',
+'看著称' => '看著称',
 '看著者' => '看著者',
 '看著述' => '看著述',
 '著業' => '着业',
@@ -15212,14 +15214,14 @@ $zh2Hans = array(
 '睡不著' => '睡不着',
 '睡得著' => '睡得着',
 '睡著' => '睡着',
-'睡著书' => '睡著书',
 '睡著書' => '睡著书',
+'睡著书' => '睡著书',
 '睡著作' => '睡著作',
 '睡著名' => '睡著名',
-'睡著录' => '睡著录',
 '睡著錄' => '睡著录',
-'睡著稱' => '睡著称',
+'睡著录' => '睡著录',
 '睡著称' => '睡著称',
+'睡著稱' => '睡著称',
 '睡著者' => '睡著者',
 '睡著述' => '睡著述',
 '睹微知著' => '睹微知著',
@@ -15247,8 +15249,8 @@ $zh2Hans = array(
 '瞪著书' => '瞪著书',
 '瞪著作' => '瞪著作',
 '瞪著名' => '瞪著名',
-'瞪著录' => '瞪著录',
 '瞪著錄' => '瞪著录',
+'瞪著录' => '瞪著录',
 '瞪著称' => '瞪著称',
 '瞪著稱' => '瞪著称',
 '瞪著者' => '瞪著者',
@@ -15261,10 +15263,10 @@ $zh2Hans = array(
 '福著書' => '福著书',
 '福著作' => '福著作',
 '福著名' => '福著名',
-'福著录' => '福著录',
 '福著錄' => '福著录',
-'福著称' => '福著称',
+'福著录' => '福著录',
 '福著稱' => '福著称',
+'福著称' => '福著称',
 '福著者' => '福著者',
 '福著述' => '福著述',
 '穀梁' => '穀梁',
@@ -15275,17 +15277,17 @@ $zh2Hans = array(
 '空著名' => '空著名',
 '空著录' => '空著录',
 '空著錄' => '空著录',
-'空著稱' => '空著称',
 '空著称' => '空著称',
+'空著稱' => '空著称',
 '空著者' => '空著者',
 '空著述' => '空著述',
 '穿著' => '穿着',
-'穿著書' => '穿著书',
 '穿著书' => '穿著书',
+'穿著書' => '穿著书',
 '穿著作' => '穿著作',
 '穿著名' => '穿著名',
-'穿著錄' => '穿著录',
 '穿著录' => '穿著录',
+'穿著錄' => '穿著录',
 '穿著称' => '穿著称',
 '穿著稱' => '穿著称',
 '穿著者' => '穿著者',
@@ -15299,14 +15301,14 @@ $zh2Hans = array(
 '豎著者' => '竖著者',
 '豎著述' => '竖著述',
 '站著' => '站着',
-'站著書' => '站著书',
 '站著书' => '站著书',
+'站著書' => '站著书',
 '站著作' => '站著作',
 '站著名' => '站著名',
-'站著录' => '站著录',
 '站著錄' => '站著录',
-'站著稱' => '站著称',
+'站著录' => '站著录',
 '站著称' => '站著称',
+'站著稱' => '站著称',
 '站著者' => '站著者',
 '站著述' => '站著述',
 '笑著' => '笑着',
@@ -15316,8 +15318,8 @@ $zh2Hans = array(
 '笑著名' => '笑著名',
 '笑著录' => '笑著录',
 '笑著錄' => '笑著录',
-'笑著稱' => '笑著称',
 '笑著称' => '笑著称',
+'笑著稱' => '笑著称',
 '笑著者' => '笑著者',
 '笑著述' => '笑著述',
 '答覆' => '答复',
@@ -15328,8 +15330,8 @@ $zh2Hans = array(
 '管著名' => '管著名',
 '管著录' => '管著录',
 '管著錄' => '管著录',
-'管著称' => '管著称',
 '管著稱' => '管著称',
+'管著称' => '管著称',
 '管著者' => '管著者',
 '管著述' => '管著述',
 '米澤瑠美' => '米泽瑠美',
@@ -15362,34 +15364,34 @@ $zh2Hans = array(
 '纏著者' => '缠著者',
 '纏著述' => '缠著述',
 '罩著' => '罩着',
-'罩著書' => '罩著书',
 '罩著书' => '罩著书',
+'罩著書' => '罩著书',
 '罩著作' => '罩著作',
 '罩著名' => '罩著名',
-'罩著录' => '罩著录',
 '罩著錄' => '罩著录',
-'罩著稱' => '罩著称',
+'罩著录' => '罩著录',
 '罩著称' => '罩著称',
+'罩著稱' => '罩著称',
 '罩著者' => '罩著者',
 '罩著述' => '罩著述',
 '美著' => '美着',
-'美著書' => '美著书',
 '美著书' => '美著书',
+'美著書' => '美著书',
 '美著作' => '美著作',
 '美著名' => '美著名',
-'美著錄' => '美著录',
 '美著录' => '美著录',
+'美著錄' => '美著录',
 '美著稱' => '美著称',
 '美著称' => '美著称',
 '美著者' => '美著者',
 '美著述' => '美著述',
 '耀著' => '耀着',
-'耀著书' => '耀著书',
 '耀著書' => '耀著书',
+'耀著书' => '耀著书',
 '耀著作' => '耀著作',
 '耀著名' => '耀著名',
-'耀著录' => '耀著录',
 '耀著錄' => '耀著录',
+'耀著录' => '耀著录',
 '耀著称' => '耀著称',
 '耀著稱' => '耀著称',
 '耀著者' => '耀著者',
@@ -15415,8 +15417,8 @@ $zh2Hans = array(
 '背著名' => '背著名',
 '背著录' => '背著录',
 '背著錄' => '背著录',
-'背著稱' => '背著称',
 '背著称' => '背著称',
+'背著稱' => '背著称',
 '背著者' => '背著者',
 '背著述' => '背著述',
 '膠著' => '胶着',
@@ -15436,18 +15438,18 @@ $zh2Hans = array(
 '藝著者' => '艺著者',
 '藝著述' => '艺著述',
 '苦著' => '苦着',
-'苦著書' => '苦著书',
 '苦著书' => '苦著书',
+'苦著書' => '苦著书',
 '苦著作' => '苦著作',
 '苦著名' => '苦著名',
-'苦著錄' => '苦著录',
 '苦著录' => '苦著录',
-'苦著称' => '苦著称',
+'苦著錄' => '苦著录',
 '苦著稱' => '苦著称',
+'苦著称' => '苦著称',
 '苦著者' => '苦著者',
 '苦著述' => '苦著述',
-'薴烯' => '苧烯',
 '苧烯' => '苧烯',
+'薴烯' => '苧烯',
 '獲著' => '获着',
 '獲著書' => '获著书',
 '獲著作' => '获著作',
@@ -15465,8 +15467,8 @@ $zh2Hans = array(
 '落著名' => '落著名',
 '落著录' => '落著录',
 '落著錄' => '落著录',
-'落著称' => '落著称',
 '落著稱' => '落著称',
+'落著称' => '落著称',
 '落著者' => '落著者',
 '落著述' => '落著述',
 '著書' => '著书',
@@ -15483,14 +15485,14 @@ $zh2Hans = array(
 '蒙汗葯' => '蒙汗药',
 '蒙著' => '蒙着',
 '蒙葯' => '蒙药',
-'蒙著书' => '蒙著书',
 '蒙著書' => '蒙著书',
+'蒙著书' => '蒙著书',
 '蒙著作' => '蒙著作',
 '蒙著名' => '蒙著名',
 '蒙著录' => '蒙著录',
 '蒙著錄' => '蒙著录',
-'蒙著称' => '蒙著称',
 '蒙著稱' => '蒙著称',
+'蒙著称' => '蒙著称',
 '蒙著者' => '蒙著者',
 '蒙著述' => '蒙著述',
 '藏著' => '藏着',
@@ -15500,19 +15502,19 @@ $zh2Hans = array(
 '藏著名' => '藏著名',
 '藏著錄' => '藏著录',
 '藏著录' => '藏著录',
-'藏著稱' => '藏著称',
 '藏著称' => '藏著称',
+'藏著稱' => '藏著称',
 '藏著者' => '藏著者',
 '藏著述' => '藏著述',
 '蘸著' => '蘸着',
-'蘸著书' => '蘸著书',
 '蘸著書' => '蘸著书',
+'蘸著书' => '蘸著书',
 '蘸著作' => '蘸著作',
 '蘸著名' => '蘸著名',
 '蘸著录' => '蘸著录',
 '蘸著錄' => '蘸著录',
-'蘸著称' => '蘸著称',
 '蘸著稱' => '蘸著称',
+'蘸著称' => '蘸著称',
 '蘸著者' => '蘸著者',
 '蘸著述' => '蘸著述',
 '行著' => '行着',
@@ -15520,19 +15522,19 @@ $zh2Hans = array(
 '行著書' => '行著书',
 '行著作' => '行著作',
 '行著名' => '行著名',
-'行著錄' => '行著录',
 '行著录' => '行著录',
-'行著称' => '行著称',
+'行著錄' => '行著录',
 '行著稱' => '行著称',
+'行著称' => '行著称',
 '行著者' => '行著者',
 '行著述' => '行著述',
 '衣著' => '衣着',
-'衣著書' => '衣著书',
 '衣著书' => '衣著书',
+'衣著書' => '衣著书',
 '衣著作' => '衣著作',
 '衣著名' => '衣著名',
-'衣著錄' => '衣著录',
 '衣著录' => '衣著录',
+'衣著錄' => '衣著录',
 '衣著稱' => '衣著称',
 '衣著称' => '衣著称',
 '衣著者' => '衣著者',
@@ -15546,14 +15548,14 @@ $zh2Hans = array(
 '裝著者' => '装著者',
 '裝著述' => '装著述',
 '裹著' => '裹着',
-'裹著书' => '裹著书',
 '裹著書' => '裹著书',
+'裹著书' => '裹著书',
 '裹著作' => '裹著作',
 '裹著名' => '裹著名',
 '裹著录' => '裹著录',
 '裹著錄' => '裹著录',
-'裹著稱' => '裹著称',
 '裹著称' => '裹著称',
+'裹著稱' => '裹著称',
 '裹著者' => '裹著者',
 '裹著述' => '裹著述',
 '覆蓋' => '覆蓋',
@@ -15602,8 +15604,8 @@ $zh2Hans = array(
 '豫著名' => '豫著名',
 '豫著录' => '豫著录',
 '豫著錄' => '豫著录',
-'豫著稱' => '豫著称',
 '豫著称' => '豫著称',
+'豫著稱' => '豫著称',
 '豫著者' => '豫著者',
 '豫著述' => '豫著述',
 '貞著' => '贞着',
@@ -15615,14 +15617,14 @@ $zh2Hans = array(
 '貞著者' => '贞著者',
 '貞著述' => '贞著述',
 '走著' => '走着',
-'走著书' => '走著书',
 '走著書' => '走著书',
+'走著书' => '走著书',
 '走著作' => '走著作',
 '走著名' => '走著名',
-'走著录' => '走著录',
 '走著錄' => '走著录',
-'走著称' => '走著称',
+'走著录' => '走著录',
 '走著稱' => '走著称',
+'走著称' => '走著称',
 '走著者' => '走著者',
 '走著述' => '走著述',
 '趕著' => '赶着',
@@ -15638,8 +15640,8 @@ $zh2Hans = array(
 '趴著书' => '趴著书',
 '趴著作' => '趴著作',
 '趴著名' => '趴著名',
-'趴著錄' => '趴著录',
 '趴著录' => '趴著录',
+'趴著錄' => '趴著录',
 '趴著称' => '趴著称',
 '趴著稱' => '趴著称',
 '趴著者' => '趴著者',
@@ -15657,8 +15659,8 @@ $zh2Hans = array(
 '跑著书' => '跑著书',
 '跑著作' => '跑著作',
 '跑著名' => '跑著名',
-'跑著錄' => '跑著录',
 '跑著录' => '跑著录',
+'跑著錄' => '跑著录',
 '跑著稱' => '跑著称',
 '跑著称' => '跑著称',
 '跑著者' => '跑著者',
@@ -15670,28 +15672,28 @@ $zh2Hans = array(
 '跟著名' => '跟著名',
 '跟著录' => '跟著录',
 '跟著錄' => '跟著录',
-'跟著稱' => '跟著称',
 '跟著称' => '跟著称',
+'跟著稱' => '跟著称',
 '跟著者' => '跟著者',
 '跟著述' => '跟著述',
 '跪著' => '跪着',
-'跪著书' => '跪著书',
 '跪著書' => '跪著书',
+'跪著书' => '跪著书',
 '跪著作' => '跪著作',
 '跪著名' => '跪著名',
-'跪著录' => '跪著录',
 '跪著錄' => '跪著录',
+'跪著录' => '跪著录',
 '跪著稱' => '跪著称',
 '跪著称' => '跪著称',
 '跪著者' => '跪著者',
 '跪著述' => '跪著述',
 '跳著' => '跳着',
-'跳著書' => '跳著书',
 '跳著书' => '跳著书',
+'跳著書' => '跳著书',
 '跳著作' => '跳著作',
 '跳著名' => '跳著名',
-'跳著錄' => '跳著录',
 '跳著录' => '跳著录',
+'跳著錄' => '跳著录',
 '跳著称' => '跳著称',
 '跳著稱' => '跳著称',
 '跳著者' => '跳著者',
@@ -15704,13 +15706,13 @@ $zh2Hans = array(
 '踏著名' => '踏著名',
 '踏著錄' => '踏著录',
 '踏著录' => '踏著录',
-'踏著稱' => '踏著称',
 '踏著称' => '踏著称',
+'踏著稱' => '踏著称',
 '踏著者' => '踏著者',
 '踏著述' => '踏著述',
 '踩著' => '踩着',
-'踩著書' => '踩著书',
 '踩著书' => '踩著书',
+'踩著書' => '踩著书',
 '踩著作' => '踩著作',
 '踩著名' => '踩著名',
 '踩著录' => '踩著录',
@@ -15720,12 +15722,12 @@ $zh2Hans = array(
 '踩著者' => '踩著者',
 '踩著述' => '踩著述',
 '身著' => '身着',
-'身著書' => '身著书',
 '身著书' => '身著书',
+'身著書' => '身著书',
 '身著作' => '身著作',
 '身著名' => '身著名',
-'身著錄' => '身著录',
 '身著录' => '身著录',
+'身著錄' => '身著录',
 '身著稱' => '身著称',
 '身著称' => '身著称',
 '身著者' => '身著者',
@@ -15737,8 +15739,8 @@ $zh2Hans = array(
 '躺著名' => '躺著名',
 '躺著錄' => '躺著录',
 '躺著录' => '躺著录',
-'躺著稱' => '躺著称',
 '躺著称' => '躺著称',
+'躺著稱' => '躺著称',
 '躺著者' => '躺著者',
 '躺著述' => '躺著述',
 '轉著' => '转着',
@@ -15787,34 +15789,34 @@ $zh2Hans = array(
 '連著述' => '连著述',
 '迫著' => '迫着',
 '追著' => '追着',
-'追著书' => '追著书',
 '追著書' => '追著书',
+'追著书' => '追著书',
 '追著作' => '追著作',
 '追著名' => '追著名',
-'追著录' => '追著录',
 '追著錄' => '追著录',
+'追著录' => '追著录',
 '追著称' => '追著称',
 '追著稱' => '追著称',
 '追著者' => '追著者',
 '追著述' => '追著述',
 '逆著' => '逆着',
-'逆著书' => '逆著书',
 '逆著書' => '逆著书',
+'逆著书' => '逆著书',
 '逆著作' => '逆著作',
 '逆著名' => '逆著名',
-'逆著录' => '逆著录',
 '逆著錄' => '逆著录',
-'逆著稱' => '逆著称',
+'逆著录' => '逆著录',
 '逆著称' => '逆著称',
+'逆著稱' => '逆著称',
 '逆著者' => '逆著者',
 '逆著述' => '逆著述',
 '逼著' => '逼着',
-'逼著书' => '逼著书',
 '逼著書' => '逼著书',
+'逼著书' => '逼著书',
 '逼著作' => '逼著作',
 '逼著名' => '逼著名',
-'逼著录' => '逼著录',
 '逼著錄' => '逼著录',
+'逼著录' => '逼著录',
 '逼著称' => '逼著称',
 '逼著稱' => '逼著称',
 '逼著者' => '逼著者',
@@ -15840,8 +15842,8 @@ $zh2Hans = array(
 '配著名' => '配著名',
 '配著錄' => '配著录',
 '配著录' => '配著录',
-'配著称' => '配著称',
 '配著稱' => '配著称',
+'配著称' => '配著称',
 '配著者' => '配著者',
 '配著述' => '配著述',
 '釀著' => '酿着',
@@ -15852,14 +15854,14 @@ $zh2Hans = array(
 '釀著稱' => '酿著称',
 '釀著者' => '酿著者',
 '釀著述' => '酿著述',
-'醯壶' => '醯壶',
 '醯壺' => '醯壶',
+'醯壶' => '醯壶',
 '醯醬' => '醯酱',
 '醯酱' => '醯酱',
 '醯醋' => '醯醋',
 '醯醢' => '醯醢',
-'醯雞' => '醯鸡',
 '醯鸡' => '醯鸡',
+'醯雞' => '醯鸡',
 '重覆' => '重复',
 '金鍊' => '金链',
 '鐵鍊' => '铁链',
@@ -15901,8 +15903,8 @@ $zh2Hans = array(
 '聞得著' => '闻得着',
 '聞著' => '闻着',
 '阳为乾' => '阳为乾',
-'陽為乾' => '阳为乾',
 '陽爲乾' => '阳为乾',
+'陽為乾' => '阳为乾',
 '阿部正瞭' => '阿部正瞭',
 '附著' => '附着',
 '附睪' => '附睾',
@@ -15910,36 +15912,36 @@ $zh2Hans = array(
 '附著書' => '附著书',
 '附著作' => '附著作',
 '附著名' => '附著名',
-'附著录' => '附著录',
 '附著錄' => '附著录',
+'附著录' => '附著录',
 '附著称' => '附著称',
 '附著稱' => '附著称',
 '附著者' => '附著者',
 '附著述' => '附著述',
-'陳乾生' => '陈乾生',
 '陈乾生' => '陈乾生',
-'陳公乾生' => '陈公乾生',
+'陳乾生' => '陈乾生',
 '陈公乾生' => '陈公乾生',
+'陳公乾生' => '陈公乾生',
 '陋著' => '陋着',
-'陋著书' => '陋著书',
 '陋著書' => '陋著书',
+'陋著书' => '陋著书',
 '陋著作' => '陋著作',
 '陋著名' => '陋著名',
-'陋著录' => '陋著录',
 '陋著錄' => '陋著录',
-'陋著稱' => '陋著称',
+'陋著录' => '陋著录',
 '陋著称' => '陋著称',
+'陋著稱' => '陋著称',
 '陋著者' => '陋著者',
 '陋著述' => '陋著述',
 '陪著' => '陪着',
-'陪著書' => '陪著书',
 '陪著书' => '陪著书',
+'陪著書' => '陪著书',
 '陪著作' => '陪著作',
 '陪著名' => '陪著名',
-'陪著錄' => '陪著录',
 '陪著录' => '陪著录',
-'陪著稱' => '陪著称',
+'陪著錄' => '陪著录',
 '陪著称' => '陪著称',
+'陪著稱' => '陪著称',
 '陪著者' => '陪著者',
 '陪著述' => '陪著述',
 '陳堵' => '陳堵',
@@ -15953,26 +15955,26 @@ $zh2Hans = array(
 '隨著者' => '随著者',
 '隨著述' => '随著述',
 '隔著' => '隔着',
-'隔著書' => '隔著书',
 '隔著书' => '隔著书',
+'隔著書' => '隔著书',
 '隔著作' => '隔著作',
 '隔著名' => '隔著名',
-'隔著錄' => '隔著录',
 '隔著录' => '隔著录',
+'隔著錄' => '隔著录',
 '隔著称' => '隔著称',
 '隔著稱' => '隔著称',
 '隔著者' => '隔著者',
 '隔著述' => '隔著述',
 '隱睪' => '隱睾',
 '雅著' => '雅着',
-'雅著書' => '雅著书',
 '雅著书' => '雅著书',
+'雅著書' => '雅著书',
 '雅著作' => '雅著作',
 '雅著名' => '雅著名',
-'雅著錄' => '雅著录',
 '雅著录' => '雅著录',
-'雅著稱' => '雅著称',
+'雅著錄' => '雅著录',
 '雅著称' => '雅著称',
+'雅著稱' => '雅著称',
 '雅著者' => '雅著者',
 '雅著述' => '雅著述',
 '雍乾' => '雍乾',
@@ -15981,8 +15983,8 @@ $zh2Hans = array(
 '靠著名' => '靠著名',
 '靠著錄' => '靠著录',
 '靠著录' => '靠著录',
-'靠著称' => '靠著称',
 '靠著稱' => '靠著称',
+'靠著称' => '靠著称',
 '靠著者' => '靠著者',
 '靠著述' => '靠著述',
 '頂著' => '顶着',
@@ -16063,8 +16065,8 @@ $zh2Hans = array(
 '高著者' => '高著者',
 '高著述' => '高著述',
 '髭著' => '髭着',
-'髭著書' => '髭著书',
 '髭著书' => '髭著书',
+'髭著書' => '髭著书',
 '髭著作' => '髭著作',
 '髭著名' => '髭著名',
 '髭著錄' => '髭著录',
@@ -16078,17 +16080,17 @@ $zh2Hans = array(
 '魏徵' => '魏徵',
 '魚乾乾' => '鱼干干',
 '麯崇裕' => '麯崇裕',
-'麴义' => '麴义',
 '麴義' => '麴义',
+'麴义' => '麴义',
 '麴英' => '麴英',
 '麽氏' => '麽氏',
-'麼麼' => '麽麽',
 '麽麽' => '麽麽',
+'麼麼' => '麽麽',
 '黄润乾' => '黄润乾',
 '黃潤乾' => '黄润乾',
 '黏著' => '黏着',
-'黏著書' => '黏著书',
 '黏著书' => '黏著书',
+'黏著書' => '黏著书',
 '黏著作' => '黏著作',
 '黏著名' => '黏著名',
 '黏著录' => '黏著录',
@@ -16104,23 +16106,23 @@ $zh2TW = array(
 '”' => '」',
 '‘' => '『',
 '’' => '』',
-'三极管' => '三極體',
 '三極管' => '三極體',
+'三极管' => '三極體',
 '世界裏' => '世界裡',
 '中文裏' => '中文裡',
 '串行' => '串列',
 '串列加速器' => '串列加速器',
 '以太网' => '乙太網',
 '奶酪' => '乳酪',
-'二极管' => '二極體',
 '二極管' => '二極體',
+'二极管' => '二極體',
 '交互式' => '互動式',
 '阿塞拜疆' => '亞塞拜然',
 '人工智能' => '人工智慧',
 '接口' => '介面',
 '服务器' => '伺服器',
-'字节' => '位元組',
 '字節' => '位元組',
+'字节' => '位元組',
 '作品裏' => '作品裡',
 '信道' => '信道',
 '优先级' => '優先順序',
@@ -16135,20 +16137,20 @@ $zh2TW = array(
 '冬日裏' => '冬日裡',
 '凉菜' => '冷盤',
 '冷菜' => '冷盤',
-'兇器' => '凶器',
 '凶器' => '凶器',
-'å\85\87å¾\92' => 'å\87¶å¾\92',
+'å\85\87å\99¨' => 'å\87¶å\99¨',
 '凶徒' => '凶徒',
+'兇徒' => '凶徒',
 '兇手' => '凶手',
 '凶手' => '凶手',
-'凶案' => '凶案',
 '兇案' => '凶案',
-'å\85\87æ®\98' => 'å\87¶æ®\98',
+'å\87¶æ¡\88' => 'å\87¶æ¡\88',
 '凶殘' => '凶殘',
+'兇殘' => '凶殘',
 '凶残' => '凶殘',
 '兇殺' => '凶殺',
-'凶殺' => '凶殺',
 '凶杀' => '凶殺',
+'凶殺' => '凶殺',
 '打印' => '列印',
 '列支敦士登' => '列支敦斯登',
 '剪彩' => '剪綵',
@@ -16158,10 +16160,10 @@ $zh2TW = array(
 '特立尼達和多巴哥' => '千里達托貝哥',
 '特立尼达和托巴哥' => '千里達托貝哥',
 '半角' => '半形',
-'卡塔尔' => '卡達',
 '卡塔爾' => '卡達',
-'打印机' => '印表機',
+'卡塔尔' => '卡達',
 '打印機' => '印表機',
+'打印机' => '印表機',
 '厄立特里亚' => '厄利垂亞',
 '厄立特里亞' => '厄利垂亞',
 '厄瓜多尔' => '厄瓜多',
@@ -16176,17 +16178,17 @@ $zh2TW = array(
 '哈萨克斯坦' => '哈薩克',
 '哥斯達黎加' => '哥斯大黎加',
 '哥斯达黎加' => '哥斯大黎加',
-'格鲁吉亚' => '喬治亞',
 '格魯吉亞' => '喬治亞',
-'佐治亞' => '喬治亞',
+'格鲁吉亚' => '喬治亞',
 '佐治亚' => '喬治亞',
+'佐治亞' => '喬治亞',
 '嘴裏' => '嘴裡',
 '土库曼斯坦' => '土庫曼',
 '薯仔' => '土豆',
 '土豆網' => '土豆網',
 '土豆网' => '土豆網',
-'坦桑尼亞' => '坦尚尼亞',
 '坦桑尼亚' => '坦尚尼亞',
+'坦桑尼亞' => '坦尚尼亞',
 '端口' => '埠',
 '塔吉克斯坦' => '塔吉克',
 '塞舌尔' => '塞席爾',
@@ -16201,63 +16203,63 @@ $zh2TW = array(
 '多明尼加國' => '多米尼克',
 '穿梭機' => '太空梭',
 '航天飞机' => '太空梭',
-'尼日利亞' => '奈及利亞',
 '尼日利亚' => '奈及利亞',
+'尼日利亞' => '奈及利亞',
 '字符' => '字元',
 '字号' => '字型大小',
 '字库' => '字型檔',
 '字符集' => '字符集',
 '存盘' => '存檔',
 '學裏' => '學裡',
-'安提瓜和巴布达' => '安地卡及巴布達',
 '安提瓜和巴布達' => '安地卡及巴布達',
+'安提瓜和巴布达' => '安地卡及巴布達',
 '宋元' => '宋元',
 '洪都拉斯' => '宏都拉斯',
 '寻址' => '定址',
 '寒假裏' => '寒假裡',
 '宽带' => '寬頻',
-'老挝' => '寮國',
 '老撾' => '寮國',
+'老挝' => '寮國',
 '打门' => '射門',
 '專輯裏' => '專輯裡',
-'赞比亚' => '尚比亞',
 '贊比亞' => '尚比亞',
-'尼日尔' => '尼日',
+'赞比亚' => '尚比亞',
 '尼日爾' => '尼日',
+'尼日尔' => '尼日',
 '山洞裏' => '山洞裡',
 '巴布亞新畿內亞' => '巴布亞紐幾內亞',
 '巴布亚新几内亚' => '巴布亞紐幾內亞',
 '巴巴多斯' => '巴貝多',
 '布基纳法索' => '布吉納法索',
 '布基納法索' => '布吉納法索',
-'布殊' => '布希',
 '布什' => '布希',
+'布殊' => '布希',
 '帕劳' => '帛琉',
 '例程' => '常式',
-'平治之亂' => '平治之亂',
 '平治之乱' => '平治之亂',
+'平治之亂' => '平治之亂',
 '年代裏' => '年代裡',
-'幾內亞比紹' => '幾內亞比索',
 '几内亚比绍' => '幾內亞比索',
+'幾內亞比紹' => '幾內亞比索',
 '彩带' => '彩帶',
 '彩排' => '彩排',
 '彩楼' => '彩樓',
 '彩牌楼' => '彩牌樓',
-'复苏' => '復甦',
 '復蘇' => '復甦',
+'复苏' => '復甦',
 '心裏' => '心裡',
-'闪存' => '快閃記憶體',
 '快闪存储器' => '快閃記憶體',
+'闪存' => '快閃記憶體',
 '想象' => '想像',
 '传感' => '感測',
 '习用' => '慣用',
 '戏彩娱亲' => '戲綵娛親',
 '戲裏' => '戲裡',
-'手电' => '手電筒',
 '手电筒' => '手電筒',
+'手电' => '手電筒',
 '括号' => '括弧',
-'拿破仑' => '拿破崙',
 '拿破侖' => '拿破崙',
+'拿破仑' => '拿破崙',
 '積架' => '捷豹',
 '扫瞄仪' => '掃瞄器',
 '挂钩' => '掛鉤',
@@ -16267,12 +16269,12 @@ $zh2TW = array(
 '桌球' => '撞球',
 '便携式' => '攜帶型',
 '故事裏' => '故事裡',
-'調制解調器' => '數據機',
 '调制解调器' => '數據機',
-'斯洛文尼亚' => '斯洛維尼亞',
+'調制解調器' => '數據機',
 '斯洛文尼亞' => '斯洛維尼亞',
-'æ\96°ç´\80å\85\83' => 'æ\96°ç´\80å\85\83',
+'æ\96¯æ´\9bæ\96\87å°¼äº\9a' => 'æ\96¯æ´\9b維尼äº\9e',
 '新纪元' => '新紀元',
+'新紀元' => '新紀元',
 '日子裏' => '日子裡',
 '春假裏' => '春假裡',
 '春天裏' => '春天裡',
@@ -16284,13 +16286,13 @@ $zh2TW = array(
 '乍得' => '查德',
 '克林頓' => '柯林頓',
 '克林顿' => '柯林頓',
-'格林纳达' => '格瑞那達',
 '格林納達' => '格瑞那達',
+'格林纳达' => '格瑞那達',
 '凡高' => '梵谷',
 '森林裏' => '森林裡',
 '棺材裏' => '棺材裡',
-'榴莲' => '榴槤',
 '榴蓮' => '榴槤',
+'榴莲' => '榴槤',
 '仿真' => '模擬',
 '毛里裘斯' => '模里西斯',
 '毛里求斯' => '模里西斯',
@@ -16301,15 +16303,15 @@ $zh2TW = array(
 '元音' => '母音',
 '永历' => '永曆',
 '文莱' => '汶萊',
-'沙地阿拉伯' => '沙烏地阿拉伯',
 '沙特阿拉伯' => '沙烏地阿拉伯',
-'æ³¢æ\96¯å°¼äº\9aå\92\8cé»\91å¡\9eå\93¥ç»´é\82£' => '波士尼äº\9e赫å¡\9eå\93¥ç¶­ç´\8d',
+'æ²\99å\9c°é\98¿æ\8b\89伯' => 'æ²\99ç\83\8få\9c°é\98¿æ\8b\89伯',
 '波斯尼亞黑塞哥維那' => '波士尼亞赫塞哥維納',
-'博茨瓦納' => '波札那',
+'波斯尼亚和黑塞哥维那' => '波士尼亞赫塞哥維納',
 '博茨瓦纳' => '波札那',
+'博茨瓦納' => '波札那',
 '流程控制' => '流程控制',
-'侯賽因' => '海珊',
 '侯赛因' => '海珊',
+'侯賽因' => '海珊',
 '深淵裏' => '深淵裡',
 '光标' => '游標',
 '鼠标' => '滑鼠',
@@ -16318,18 +16320,18 @@ $zh2TW = array(
 '词组' => '片語',
 '獄裏' => '獄裡',
 '塞拉利昂' => '獅子山',
-'危地馬拉' => '瓜地馬拉',
 '危地马拉' => '瓜地馬拉',
+'危地馬拉' => '瓜地馬拉',
 '冈比亚' => '甘比亞',
 '岡比亞' => '甘比亞',
 '疑兇' => '疑凶',
 '疑凶' => '疑凶',
 '百科裏' => '百科裡',
 '皮裏陽秋' => '皮裡陽秋',
-'卢旺达' => '盧安達',
 '盧旺達' => '盧安達',
-'真兇' => '真凶',
+'卢旺达' => '盧安達',
 '真凶' => '真凶',
+'真兇' => '真凶',
 '眼睛裏' => '眼睛裡',
 '硅片' => '矽片',
 '硅谷' => '矽谷',
@@ -16347,43 +16349,43 @@ $zh2TW = array(
 '蹦极跳' => '笨豬跳',
 '绑紧跳' => '笨豬跳',
 '等于' => '等於',
-'短信' => '簡訊',
 '短訊' => '簡訊',
+'短信' => '簡訊',
 '系列裏' => '系列裡',
 '新西蘭' => '紐西蘭',
 '新西兰' => '紐西蘭',
-'所羅門群島' => '索羅門群島',
 '所罗门群岛' => '索羅門群島',
-'索马里' => '索馬利亞',
+'所羅門群島' => '索羅門群島',
 '索馬里' => '索馬利亞',
+'索马里' => '索馬利亞',
 '结彩' => '結綵',
 '佛得角' => '維德角',
 '網絡' => '網路',
 '网络' => '網路',
-'因特网' => '網際網路',
 '互聯網' => '網際網路',
+'因特网' => '網際網路',
 '彩球' => '綵球',
 '彩绸' => '綵綢',
 '彩线' => '綵線',
 '彩船' => '綵船',
 '彩衣' => '綵衣',
 '綫' => '線',
-'緝兇' => '緝凶',
 '缉凶' => '緝凶',
+'緝兇' => '緝凶',
 '緝凶' => '緝凶',
 '意大利' => '義大利',
 '老字号' => '老字號',
 '圣基茨和尼维斯' => '聖克里斯多福及尼維斯',
 '聖吉斯納域斯' => '聖克里斯多福及尼維斯',
-'圣文森特和格林纳丁斯' => '聖文森及格瑞那丁',
 '聖文森特和格林納丁斯' => '聖文森及格瑞那丁',
+'圣文森特和格林纳丁斯' => '聖文森及格瑞那丁',
 '圣卢西亚' => '聖露西亞',
 '聖盧西亞' => '聖露西亞',
 '圣马力诺' => '聖馬利諾',
 '聖馬力諾' => '聖馬利諾',
 '肚裏' => '肚裡',
-'肯雅' => '肯亞',
 '肯尼亚' => '肯亞',
+'肯雅' => '肯亞',
 '航天大学' => '航天大學',
 '苦裏' => '苦裡',
 '毛里塔尼亚' => '茅利塔尼亞',
@@ -16392,8 +16394,8 @@ $zh2TW = array(
 '万历' => '萬曆',
 '瓦努阿图' => '萬那杜',
 '瓦努阿圖' => '萬那杜',
-'也門' => '葉門',
 '也门' => '葉門',
+'也門' => '葉門',
 '着' => '著',
 '科摩羅' => '葛摩',
 '科摩罗' => '葛摩',
@@ -16402,19 +16404,19 @@ $zh2TW = array(
 '圭亚那' => '蓋亞那',
 '火锅盖帽' => '蓋火鍋',
 '苏里南' => '蘇利南',
-'行兇' => '行凶',
 '行凶' => '行凶',
+'行兇' => '行凶',
+'行凶后' => '行凶後',
 '行兇後' => '行凶後',
 '行凶後' => '行凶後',
-'行凶后' => '行凶後',
-'移动电话' => '行動電話',
 '流動電話' => '行動電話',
+'移动电话' => '行動電話',
 '行程控制' => '行程控制',
 '衞' => '衛',
 '卫生' => '衛生',
 '衞生' => '衛生',
-'埃塞俄比亞' => '衣索比亞',
 '埃塞俄比亚' => '衣索比亞',
+'埃塞俄比亞' => '衣索比亞',
 '裏勾外連' => '裡勾外連',
 '裏面' => '裡面',
 '分辨率' => '解析度',
@@ -16425,39 +16427,39 @@ $zh2TW = array(
 '瑙魯' => '諾魯',
 '变量' => '變數',
 '科特迪瓦' => '象牙海岸',
-'贝宁' => '貝南',
 '貝寧' => '貝南',
+'贝宁' => '貝南',
 '伯利茲' => '貝里斯',
 '伯利兹' => '貝里斯',
 '買兇' => '買凶',
-'買凶' => '買凶',
 '买凶' => '買凶',
+'買凶' => '買凶',
 '数据库' => '資料庫',
 '信息论' => '資訊理論',
 '奔驰' => '賓士',
 '平治' => '賓士',
 '利比里亚' => '賴比瑞亞',
 '利比里亞' => '賴比瑞亞',
-'莱索托' => '賴索托',
 '萊索托' => '賴索托',
+'莱索托' => '賴索托',
 '软驱' => '軟碟機',
-'软件' => '軟體',
 '軟件' => '軟體',
+'软件' => '軟體',
 '加载' => '載入',
-'津巴布韋' => '辛巴威',
 '津巴布韦' => '辛巴威',
+'津巴布韋' => '辛巴威',
 '词汇' => '辭彙',
-'加納' => '迦納',
 '加纳' => '迦納',
-'追兇' => '追凶',
+'加納' => '迦納',
 '追凶' => '追凶',
+'追兇' => '追凶',
 '這裏' => '這裡',
+'逞凶鬥狠' => '逞凶鬥狠',
 '逞兇鬥狠' => '逞凶鬥狠',
 '逞凶斗狠' => '逞凶鬥狠',
-'逞凶鬥狠' => '逞凶鬥狠',
 '即食麵' => '速食麵',
-'快速面' => '速食麵',
 '方便面' => '速食麵',
+'快速面' => '速食麵',
 '连字号' => '連字號',
 '进制' => '進位',
 '入球' => '進球',
@@ -16473,8 +16475,8 @@ $zh2TW = array(
 '鈎心鬥角' => '鉤心鬥角',
 '锎' => '鉲',
 '写保护' => '防寫',
-'阿拉伯聯合酋長國' => '阿拉伯聯合大公國',
 '阿拉伯联合酋长国' => '阿拉伯聯合大公國',
+'阿拉伯聯合酋長國' => '阿拉伯聯合大公國',
 '噪声' => '雜訊',
 '脱机' => '離線',
 '雪裏紅' => '雪裡紅',
@@ -16484,8 +16486,8 @@ $zh2TW = array(
 '异步' => '非同步',
 '声卡' => '音效卡',
 '缺省' => '預設',
-'頒佈' => '頒布',
 '颁布' => '頒布',
+'頒佈' => '頒布',
 '領域裏' => '領域裡',
 '头球' => '頭槌',
 '粒入球' => '顆進球',
@@ -16503,30 +16505,30 @@ $zh2TW = array(
 );
 
 $zh2HK = array(
-'505线' => '505綫',
 '505線' => '505綫',
-'507线' => '507綫',
+'505线' => '505綫',
 '507線' => '507綫',
-'610线' => '610綫',
+'507线' => '507綫',
 '610線' => '610綫',
+'610线' => '610綫',
 '614P線' => '614P綫',
 '614P线' => '614P綫',
-'614線' => '614綫',
 '614线' => '614綫',
+'614線' => '614綫',
 '615P線' => '615P綫',
 '615P线' => '615P綫',
 '615线' => '615綫',
 '615線' => '615綫',
-'705線' => '705綫',
 '705线' => '705綫',
-'706線' => '706綫',
+'705線' => '705綫',
 '706线' => '706綫',
+'706線' => '706綫',
 '751P線' => '751P綫',
 '751P线' => '751P綫',
-'751线' => '751綫',
 '751線' => '751綫',
-'761P線' => '761P綫',
+'751线' => '751綫',
 '761P线' => '761P綫',
+'761P線' => '761P綫',
 '“' => '「',
 '”' => '」',
 '‘' => '『',
@@ -16551,8 +16553,8 @@ $zh2HK = array(
 '乘著錄' => '乘著錄',
 '葉門' => '也門',
 '二極體' => '二極管',
-'因特网' => '互聯網',
 '網際網路' => '互聯網',
+'因特网' => '互聯網',
 '亮著' => '亮着',
 '亮著作' => '亮著作',
 '亮著名' => '亮著名',
@@ -16606,8 +16608,8 @@ $zh2HK = array(
 '住著述' => '住著述',
 '住著錄' => '住著錄',
 '維德角' => '佛得角',
-'作品里' => '作品裏',
 '作品裡' => '作品裏',
+'作品里' => '作品裏',
 '來著' => '來着',
 '來著作' => '來著作',
 '來著名' => '來著名',
@@ -16763,8 +16765,8 @@ $zh2HK = array(
 '動著者' => '動著者',
 '動著述' => '動著述',
 '動著錄' => '動著錄',
-'北環線' => '北環綫',
 '北环线' => '北環綫',
+'北環線' => '北環綫',
 '医院里' => '医院裏',
 '波札那' => '博茨瓦納',
 '珍妮弗·卡普里亚蒂' => '卡佩雅蒂',
@@ -16777,13 +16779,13 @@ $zh2HK = array(
 '印著述' => '印著述',
 '印著錄' => '印著錄',
 '瓜地馬拉' => '危地馬拉',
+'泡麵' => '即食麵',
 '方便面' => '即食麵',
-'速食麵' => '即食麵',
 '快速面' => '即食麵',
-'麵' => '即食麵',
+'速食麵' => '即食麵',
 '厄瓜多' => '厄瓜多爾',
-'厄瓜多尔' => '厄瓜多爾',
 '厄瓜多爾' => '厄瓜多爾',
+'厄瓜多尔' => '厄瓜多爾',
 '厄利垂亞' => '厄立特里亞',
 '去著' => '去着',
 '去著作' => '去著作',
@@ -16932,8 +16934,8 @@ $zh2HK = array(
 '坐著述' => '坐著述',
 '坐著錄' => '坐著錄',
 '坦尚尼亞' => '坦桑尼亞',
-'衣索比亞' => '埃塞俄比亞',
 '衣索匹亞' => '埃塞俄比亞',
+'衣索比亞' => '埃塞俄比亞',
 '吉里巴斯' => '基里巴斯',
 '塞普勒斯' => '塞浦路斯',
 '塞席爾' => '塞舌爾',
@@ -16945,10 +16947,10 @@ $zh2HK = array(
 '壓著者' => '壓著者',
 '壓著述' => '壓著述',
 '壓著錄' => '壓著錄',
-'夏天裡' => '夏天裏',
 '夏天里' => '夏天裏',
-'夏日裡' => '夏日裏',
+'夏天裡' => '夏天裏',
 '夏日里' => '夏日裏',
+'夏日裡' => '夏日裏',
 '夢著' => '夢着',
 '夢著作' => '夢著作',
 '夢著名' => '夢著名',
@@ -17002,8 +17004,8 @@ $zh2HK = array(
 '定著述' => '定著述',
 '定著錄' => '定著錄',
 '沃尓沃' => '富豪',
-'寒假里' => '寒假裏',
 '寒假裡' => '寒假裏',
+'寒假里' => '寒假裏',
 '寫著' => '寫着',
 '寫著作' => '寫著作',
 '寫著名' => '寫著名',
@@ -17012,10 +17014,10 @@ $zh2HK = array(
 '寫著者' => '寫著者',
 '寫著述' => '寫著述',
 '寫著錄' => '寫著錄',
-'將軍澳線' => '將軍澳綫',
 '将军澳线' => '將軍澳綫',
-'å°\88輯裡' => 'å°\88輯è£\8f',
+'å°\87è»\8dæ¾³ç·\9a' => 'å°\87è»\8d澳綫',
 '专辑里' => '專輯裏',
+'專輯裡' => '專輯裏',
 '尋著' => '尋着',
 '尋著作' => '尋著作',
 '尋著名' => '尋著名',
@@ -17032,12 +17034,12 @@ $zh2HK = array(
 '對著者' => '對著者',
 '對著述' => '對著述',
 '對著錄' => '對著錄',
-'尼日利亞' => '尼日利亞',
-'尼日利亚' => '尼日利亞',
 '奈及利亞' => '尼日利亞',
-'尼日' => '尼日爾',
-'尼日爾' => '尼日爾',
+'尼日利亚' => '尼日利亞',
+'尼日利亞' => '尼日利亞',
 '尼日尔' => '尼日爾',
+'尼日爾' => '尼日爾',
+'尼日' => '尼日爾',
 '展著' => '展着',
 '展著作' => '展著作',
 '展著名' => '展著名',
@@ -17080,8 +17082,8 @@ $zh2HK = array(
 '賓士' => '平治',
 '年代里' => '年代裏',
 '年代裡' => '年代裏',
-'干着' => '幹着',
 '幹著' => '幹着',
+'干着' => '幹着',
 '幾內亞比索' => '幾內亞比紹',
 '康著' => '康着',
 '康著作' => '康著作',
@@ -17124,8 +17126,8 @@ $zh2HK = array(
 '心著者' => '心著者',
 '心著述' => '心著述',
 '心著錄' => '心著錄',
-'心里' => '心裏',
 '心裡' => '心裏',
+'心里' => '心裏',
 '忍著' => '忍着',
 '忍著作' => '忍著作',
 '忍著名' => '忍著名',
@@ -17232,10 +17234,10 @@ $zh2HK = array(
 '戰著者' => '戰著者',
 '戰著述' => '戰著述',
 '戰著錄' => '戰著錄',
-'戏里' => '戲裏',
 '戲裡' => '戲裏',
-'狄安娜' => '戴安娜',
+'戏里' => '戲裏',
 '黛安娜' => '戴安娜',
+'狄安娜' => '戴安娜',
 '戴著' => '戴着',
 '戴著作' => '戴著作',
 '戴著名' => '戴著名',
@@ -17468,8 +17470,8 @@ $zh2HK = array(
 '斯洛維尼亞' => '斯洛文尼亞',
 '新著龍虎門' => '新著龍虎門',
 '紐西蘭' => '新西蘭',
-'日子裡' => '日子裏',
 '日子里' => '日子裏',
+'日子裡' => '日子裏',
 '昂著' => '昂着',
 '昂著作' => '昂著作',
 '昂著名' => '昂著名',
@@ -17486,12 +17488,12 @@ $zh2HK = array(
 '映著者' => '映著者',
 '映著述' => '映著述',
 '映著錄' => '映著錄',
-'春假裡' => '春假裏',
 '春假里' => '春假裏',
-'æ\98¥å¤©é\87\8c' => 'æ\98¥å¤©裏',
+'æ\98¥å\81\87裡' => 'æ\98¥å\81\87裏',
 '春天裡' => '春天裏',
-'春日里' => '春日裏',
+'春天里' => '春天裏',
 '春日裡' => '春日裏',
+'春日里' => '春日裏',
 '时间里' => '時間裏',
 '時間裡' => '時間裏',
 '晃著' => '晃着',
@@ -17501,8 +17503,8 @@ $zh2HK = array(
 '晃著者' => '晃著者',
 '晃著述' => '晃著述',
 '晃著錄' => '晃著錄',
-'暑假裡' => '暑假裏',
 '暑假里' => '暑假裏',
+'暑假裡' => '暑假裏',
 '暗著' => '暗着',
 '暗著作' => '暗著作',
 '暗著名' => '暗著名',
@@ -17546,8 +17548,8 @@ $zh2HK = array(
 '村子裡' => '村子裏',
 '东涌线' => '東涌綫',
 '東涌線' => '東涌綫',
-'东铁线' => '東鐵綫',
 '東鐵線' => '東鐵綫',
+'东铁线' => '東鐵綫',
 '枕著' => '枕着',
 '枕著作' => '枕著作',
 '枕著名' => '枕著名',
@@ -17565,8 +17567,8 @@ $zh2HK = array(
 '梳著者' => '梳著者',
 '梳著述' => '梳著述',
 '梳著錄' => '梳著錄',
-'森林里' => '森林裏',
 '森林裡' => '森林裏',
+'森林里' => '森林裏',
 '棺材裡' => '棺材裏',
 '棺材里' => '棺材裏',
 '榴蓮' => '榴槤',
@@ -17581,8 +17583,8 @@ $zh2HK = array(
 '樂著錄' => '樂著錄',
 '寶獅' => '標致',
 '標誌著' => '標誌着',
-'机场快线' => '機場快綫',
 '機場快線' => '機場快綫',
+'机场快线' => '機場快綫',
 '機器人' => '機械人',
 '机器人' => '機械人',
 '历史里' => '歷史裏',
@@ -17615,12 +17617,12 @@ $zh2HK = array(
 '沉著者' => '沉著者',
 '沉著述' => '沉著述',
 '沉著錄' => '沉著錄',
-'沙中線' => '沙中綫',
 '沙中线' => '沙中綫',
+'沙中線' => '沙中綫',
 '沙地阿拉伯' => '沙特阿拉伯',
 '沙烏地阿拉伯' => '沙特阿拉伯',
-'沙田至中环线' => '沙田至中環綫',
 '沙田至中環線' => '沙田至中環綫',
+'沙田至中环线' => '沙田至中環綫',
 '马拉特·萨芬' => '沙芬',
 '沿著' => '沿着',
 '沿著作' => '沿著作',
@@ -17641,8 +17643,8 @@ $zh2HK = array(
 '活著者' => '活著者',
 '活著述' => '活著述',
 '活著錄' => '活著錄',
-'移动电话' => '流動電話',
 '行動電話' => '流動電話',
+'移动电话' => '流動電話',
 '流著' => '流着',
 '流著作' => '流著作',
 '流著名' => '流著名',
@@ -17724,10 +17726,10 @@ $zh2HK = array(
 '无线剧集' => '無綫劇集',
 '無線收費' => '無綫收費',
 '无线收费' => '無綫收費',
-'無線節目' => '無綫節目',
 '无线节目' => '無綫節目',
-'無線電視' => '無綫電視',
+'無線節目' => '無綫節目',
 '无线电视' => '無綫電視',
+'無線電視' => '無綫電視',
 '菸' => '煙',
 '照著' => '照着',
 '照著作' => '照著作',
@@ -17780,8 +17782,8 @@ $zh2HK = array(
 '猜著者' => '猜著者',
 '猜著述' => '猜著述',
 '猜著錄' => '猜著錄',
-'獄裡' => '獄裏',
 '狱里' => '獄裏',
+'獄裡' => '獄裏',
 '獨著' => '獨着',
 '獨著作' => '獨著作',
 '獨著名' => '獨著名',
@@ -17844,12 +17846,12 @@ $zh2HK = array(
 '疑著錄' => '疑著錄',
 '发布' => '發佈',
 '發布' => '發佈',
-'百科里' => '百科裏',
 '百科裡' => '百科裏',
+'百科里' => '百科裏',
 '計程車' => '的士',
 '出租车' => '的士',
-'皮裡陽秋' => '皮裏陽秋',
 '皮里阳秋' => '皮裏陽秋',
+'皮裡陽秋' => '皮裏陽秋',
 '皺著' => '皺着',
 '皺著作' => '皺著作',
 '皺著名' => '皺著名',
@@ -17959,8 +17961,8 @@ $zh2HK = array(
 '瞪著錄' => '瞪著錄',
 '簡訊' => '短訊',
 '短信' => '短訊',
-'硬體' => '硬件',
 '硬件' => '硬件',
+'硬體' => '硬件',
 '福斯' => '福士',
 '福著' => '福着',
 '福著作' => '福著作',
@@ -17970,12 +17972,12 @@ $zh2HK = array(
 '福著者' => '福著者',
 '福著述' => '福著述',
 '福著錄' => '福著錄',
-'秋假里' => '秋假裏',
 '秋假裡' => '秋假裏',
-'ç§\8b天é\87\8c' => 'ç§\8b天裏',
+'ç§\8bå\81\87é\87\8c' => 'ç§\8bå\81\87裏',
 '秋天裡' => '秋天裏',
-'秋日裡' => '秋日裏',
+'秋天里' => '秋天裏',
 '秋日里' => '秋日裏',
+'秋日裡' => '秋日裏',
 '葛摩' => '科摩羅',
 '捷豹' => '積架',
 '空著' => '空着',
@@ -17986,8 +17988,8 @@ $zh2HK = array(
 '空著者' => '空著者',
 '空著述' => '空著述',
 '空著錄' => '空著錄',
-'航天飞机' => '穿梭機',
 '太空梭' => '穿梭機',
+'航天飞机' => '穿梭機',
 '穿著' => '穿着',
 '穿著作' => '穿著作',
 '穿著名' => '穿著名',
@@ -18099,8 +18101,8 @@ $zh2HK = array(
 '考著者' => '考著者',
 '考著述' => '考著述',
 '考著錄' => '考著錄',
-'聖克里斯多福及尼維斯' => '聖吉斯納域斯',
 '圣基茨和尼维斯' => '聖吉斯納域斯',
+'聖克里斯多福及尼維斯' => '聖吉斯納域斯',
 '聖文森及格瑞那丁' => '聖文森特和格林納丁斯',
 '聖露西亞' => '聖盧西亞',
 '聖馬利諾' => '聖馬力諾',
@@ -18116,8 +18118,8 @@ $zh2HK = array(
 '聽著錄' => '聽著錄',
 '肚里' => '肚裏',
 '肚裡' => '肚裏',
-'肯亞' => '肯雅',
 '肯尼亚' => '肯雅',
+'肯亞' => '肯雅',
 '背著' => '背着',
 '背著作' => '背著作',
 '背著名' => '背著名',
@@ -18161,8 +18163,8 @@ $zh2HK = array(
 '苦著錄' => '苦著錄',
 '苦里' => '苦裏',
 '苦裡' => '苦裏',
-'荃灣線' => '荃灣綫',
 '荃湾线' => '荃灣綫',
+'荃灣線' => '荃灣綫',
 '莫三比克' => '莫桑比克',
 '賴索托' => '萊索托',
 '馬自達' => '萬事得',
@@ -18228,8 +18230,8 @@ $zh2HK = array(
 '衣著錄' => '衣著錄',
 '裡勾外連' => '裏勾外連',
 '里勾外连' => '裏勾外連',
-'裡面' => '裏面',
 '里面' => '裏面',
+'裡面' => '裏面',
 '裝著' => '裝着',
 '裝著作' => '裝著作',
 '裝著名' => '裝著名',
@@ -18246,8 +18248,8 @@ $zh2HK = array(
 '裹著者' => '裹著者',
 '裹著述' => '裹著述',
 '裹著錄' => '裹著錄',
-'西鐵線' => '西鐵綫',
 '西铁线' => '西鐵綫',
+'西鐵線' => '西鐵綫',
 '見著' => '見着',
 '見著作' => '見著作',
 '見著名' => '見著名',
@@ -18441,8 +18443,8 @@ $zh2HK = array(
 '辦著錄' => '辦著錄',
 '近角聪信' => '近角聰信',
 '近角聰信' => '近角聰信',
-'迪士尼線' => '迪士尼綫',
 '迪士尼线' => '迪士尼綫',
+'迪士尼線' => '迪士尼綫',
 '迫著' => '迫着',
 '追著' => '追着',
 '追著作' => '追著作',
@@ -18526,8 +18528,8 @@ $zh2HK = array(
 '醯醢' => '醯醢',
 '醯醬' => '醯醬',
 '醯酱' => '醯醬',
-'醯雞' => '醯雞',
 '醯鸡' => '醯雞',
+'醯雞' => '醯雞',
 '釀著' => '釀着',
 '釀著作' => '釀著作',
 '釀著名' => '釀著名',
@@ -18640,15 +18642,15 @@ $zh2HK = array(
 '雜著述' => '雜著述',
 '雜著錄' => '雜著錄',
 '冰淇淋' => '雪糕',
-'雪裡紅' => '雪裏紅',
 '雪里红' => '雪裏紅',
+'雪裡紅' => '雪裏紅',
 '雪裡蕻' => '雪裏蕻',
 '雪里蕻' => '雪裏蕻',
 '靠著' => '靠着',
 '靠著作' => '靠著作',
 '靠著名' => '靠著名',
-'靠著称' => '靠著稱',
 '靠著稱' => '靠著稱',
+'靠著称' => '靠著稱',
 '靠著者' => '靠著者',
 '靠著述' => '靠著述',
 '靠著錄' => '靠著錄',
@@ -18677,10 +18679,10 @@ $zh2HK = array(
 '順著者' => '順著者',
 '順著述' => '順著述',
 '順著錄' => '順著錄',
-'颁布' => '頒佈',
 '頒布' => '頒佈',
-'é¢\86å\9f\9fé\87\8c' => 'é \98å\9f\9fè£\8f',
+'é¢\81å¸\83' => 'é \92ä½\88',
 '領域裡' => '領域裏',
+'领域里' => '領域裏',
 '領著' => '領着',
 '領著作' => '領著作',
 '領著名' => '領著名',
@@ -18697,8 +18699,8 @@ $zh2HK = array(
 '飄著者' => '飄著者',
 '飄著述' => '飄著述',
 '飄著錄' => '飄著錄',
-'馆里' => '館裏',
 '館裡' => '館裏',
+'馆里' => '館裏',
 '馬爾地夫' => '馬爾代夫',
 '馬利共和國' => '馬里共和國',
 '土豆' => '馬鈴薯',
@@ -18776,8 +18778,8 @@ $zh2HK = array(
 '點著者' => '點著者',
 '點著述' => '點著述',
 '點著錄' => '點著錄',
-'点里' => '點裏',
 '點裡' => '點裏',
+'点里' => '點裏',
 );
 
 $zh2CN = array(
@@ -18803,8 +18805,8 @@ $zh2CN = array(
 '互聯網' => '互联网',
 '互動式' => '交互式',
 '人工智慧' => '人工智能',
-'甚麼' => '什么',
 '甚麽' => '什么',
+'甚麼' => '什么',
 '乙太網' => '以太网',
 '優先順序' => '优先级',
 '感測' => '传感',
@@ -18849,16 +18851,16 @@ $zh2CN = array(
 '华乐街' => '华乐街',
 '波札那' => '博茨瓦纳',
 '盧安達' => '卢旺达',
-'衛生' => '卫生',
 '衞生' => '卫生',
+'衛生' => '卫生',
 '瓜地馬拉' => '危地马拉',
 '厄瓜多' => '厄瓜多尔',
-'厄瓜多尔' => '厄瓜多尔',
 '厄瓜多爾' => '厄瓜多尔',
+'厄瓜多尔' => '厄瓜多尔',
 '厄利垂亞' => '厄立特里亚',
 '變數' => '变量',
-'桌球' => '台球',
 '撞球' => '台球',
+'桌球' => '台球',
 '吉布地' => '吉布提',
 '哈薩克' => '哈萨克斯坦',
 '哥斯大黎加' => '哥斯达黎加',
@@ -18867,8 +18869,8 @@ $zh2CN = array(
 '吐瓦魯' => '图瓦卢',
 '土庫曼' => '土库曼斯坦',
 '聖露西亞' => '圣卢西亚',
-'聖克里斯多福及尼維斯' => '圣基茨和尼维斯',
 '聖吉斯納域斯' => '圣基茨和尼维斯',
+'聖克里斯多福及尼維斯' => '圣基茨和尼维斯',
 '聖文森及格瑞那丁' => '圣文森特和格林纳丁斯',
 '聖馬利諾' => '圣马力诺',
 '蓋亞那' => '圭亚那',
@@ -18888,11 +18890,11 @@ $zh2CN = array(
 '福斯' => '大众',
 '大衛碧咸' => '大卫·贝克汉姆',
 '頭槌' => '头球',
-'平治' => '奔驰',
 '賓士' => '奔驰',
+'平治' => '奔驰',
 '忌廉' => '奶油',
-'字元會' => '字元会',
 '字元会' => '字元会',
+'字元會' => '字元会',
 '字元濟' => '字元济',
 '字元济' => '字元济',
 '字型大小' => '字号',
@@ -18900,18 +18902,18 @@ $zh2CN = array(
 '欄位' => '字段',
 '字母' => '字母',
 '字元' => '字符',
-'位元組' => '字节',
 '字節' => '字节',
+'位元組' => '字节',
 '存檔' => '存盘',
 '安地卡及巴布達' => '安提瓜和巴布达',
 '巨集' => '宏',
 '寬頻' => '宽带',
 '定址' => '寻址',
+'奈及利亞' => '尼日利亚',
 '尼日利亞' => '尼日利亚',
 '尼日利亚' => '尼日利亚',
-'奈及利亞' => '尼日利亚',
-'尼日尔' => '尼日尔',
 '尼日爾' => '尼日尔',
+'尼日尔' => '尼日尔',
 '章節附註' => '尾注',
 '區域網' => '局域网',
 '巴貝多' => '巴巴多斯',
@@ -18925,8 +18927,8 @@ $zh2CN = array(
 '蒲隆地' => '布隆迪',
 '希特拉' => '希特勒',
 '帛琉' => '帕劳',
-'平治之亂' => '平治之乱',
 '平治之乱' => '平治之乱',
+'平治之亂' => '平治之乱',
 '非同步' => '异步',
 '迴圈' => '循环',
 '快閃記憶體' => '快闪存储器',
@@ -18937,8 +18939,8 @@ $zh2CN = array(
 '索羅門群島' => '所罗门群岛',
 '打印' => '打印',
 '列印' => '打印',
-'打印機' => '打印机',
 '印表機' => '打印机',
+'打印機' => '打印机',
 '射門' => '打门',
 '掃瞄器' => '扫瞄仪',
 '括弧' => '括号',
@@ -18952,12 +18954,12 @@ $zh2CN = array(
 '斯洛維尼亞' => '斯洛文尼亚',
 '紐西蘭' => '新西兰',
 '即食麵' => '方便面',
-'速食麵' => '方便面',
 '快速面' => '方便面',
 '泡麵' => '方便面',
+'速食麵' => '方便面',
 '伺服器' => '服务器',
-'機器人' => '机器人',
 '機械人' => '机器人',
+'機器人' => '机器人',
 '許可權' => '权限',
 '寶獅' => '标志',
 '格瑞那達' => '格林纳达',
@@ -18986,16 +18988,16 @@ $zh2CN = array(
 '狗隻' => '犬只',
 '卡佩雅蒂' => '珍妮弗·卡普里亚蒂',
 '諾魯' => '瑙鲁',
-'溫納圖' => '瓦努阿图',
 '萬那杜' => '瓦努阿图',
+'溫納圖' => '瓦努阿图',
 '碟片' => '盘片',
-'簡訊' => '短信',
 '短訊' => '短信',
-'ç\9f½å¡µ' => 'ç\9f½å°\98',
+'ç°¡è¨\8a' => 'ç\9f­ä¿¡',
 '矽尘' => '矽尘',
+'矽塵' => '矽尘',
 '矽肺' => '矽肺',
-'矽鋼' => '矽钢',
 '矽钢' => '矽钢',
+'矽鋼' => '矽钢',
 '矽' => '硅',
 '矽片' => '硅片',
 '矽谷' => '硅谷',
@@ -19005,8 +19007,8 @@ $zh2CN = array(
 '磁軌' => '磁道',
 '葛摩' => '科摩罗',
 '象牙海岸' => '科特迪瓦',
-'流動電話' => '移动电话',
 '行動電話' => '移动电话',
+'流動電話' => '移动电话',
 '程式控制' => '程控',
 '突尼西亞' => '突尼斯',
 '谐星' => '笑星',
@@ -19018,11 +19020,11 @@ $zh2CN = array(
 '網路' => '网络',
 '網絡' => '网络',
 '寮國' => '老挝',
-'肯亞' => '肯尼亚',
 '肯雅' => '肯尼亚',
+'肯亞' => '肯尼亚',
 '單車' => '自行车',
-'穿梭機' => '航天飞机',
 '太空梭' => '航天飞机',
+'穿梭機' => '航天飞机',
 '節慶' => '节日',
 '晶元' => '芯片',
 '晶片' => '芯片',
@@ -19038,8 +19040,8 @@ $zh2CN = array(
 '尚比亞' => '赞比亚',
 '绑紧跳' => '蹦极跳',
 '笨豬跳' => '蹦极跳',
-'軟件' => '软件',
 '軟體' => '软件',
+'軟件' => '软件',
 '軟碟機' => '软驱',
 '米高奧雲' => '迈克尔·欧文',
 '舒麥加' => '迈克尔·舒马赫',
@@ -19069,15 +19071,15 @@ $zh2SG = array(
 '民乐' => '华乐',
 '夜校' => '夜学',
 '房价' => '屋价',
-'麵' => '快速面',
+'即食麵' => '快速面',
 '速食麵' => '快速面',
+'泡麵' => '快速面',
 '方便面' => '快速面',
-'即食麵' => '快速面',
-'散紙' => '散钱',
 '零钱' => '散钱',
+'散紙' => '散钱',
 '榴莲' => '榴梿',
 '榴蓮' => '榴梿',
-'蹦极跳' => '绑紧跳',
 '笨豬跳' => '绑紧跳',
+'蹦极跳' => '绑紧跳',
 '笑星' => '谐星',
 );
index 6e2c31f..229c07e 100644 (file)
@@ -168,6 +168,20 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase {
                                $params['start'],
                                $params['end']
                        );
+                       // Include in ORDER BY for uniqueness
+                       $this->addWhereRange( 'img_name', $ascendingOrder ? 'newer' : 'older', null, null );
+
+                       if ( !is_null( $params['continue'] ) ) {
+                               $cont = explode( '|', $params['continue'] );
+                               $this->dieContinueUsageIf( count( $cont ) != 2 );
+                               $op = ( $ascendingOrder ? '>' : '<' );
+                               $continueTimestamp = $db->addQuotes( $db->timestamp( $cont[0] ) );
+                               $continueName = $db->addQuotes( $cont[1] );
+                               $this->addWhere( "img_timestamp $op $continueTimestamp OR " .
+                                       "(img_timestamp = $continueTimestamp AND " .
+                                       "img_name $op= $continueName)"
+                               );
+                       }
 
                        // Image filters
                        if ( !is_null( $params['user'] ) ) {
@@ -254,7 +268,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase {
                                if ( $params['sort'] == 'name' ) {
                                        $this->setContinueEnumParameter( 'continue', $row->img_name );
                                } else {
-                                       $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->img_timestamp ) );
+                                       $this->setContinueEnumParameter( 'continue', "$row->img_timestamp|$row->img_name" );
                                }
                                break;
                        }
@@ -270,7 +284,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase {
                                        if ( $params['sort'] == 'name' ) {
                                                $this->setContinueEnumParameter( 'continue', $row->img_name );
                                        } else {
-                                               $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->img_timestamp ) );
+                                               $this->setContinueEnumParameter( 'continue', "$row->img_timestamp|$row->img_name" );
                                        }
                                        break;
                                }
index 6cc0183..cfca140 100644 (file)
@@ -43,6 +43,7 @@ class ApiQueryBlocks extends ApiQueryBase {
        public function execute() {
                global $wgContLang;
 
+               $db = $this->getDB();
                $params = $this->extractRequestParams();
                $this->requireMaxOneParameter( $params, 'users', 'ip' );
 
@@ -61,9 +62,8 @@ class ApiQueryBlocks extends ApiQueryBase {
                $result = $this->getResult();
 
                $this->addTables( 'ipblocks' );
-               $this->addFields( 'ipb_auto' );
+               $this->addFields( array( 'ipb_auto', 'ipb_id' ) );
 
-               $this->addFieldsIf( 'ipb_id', $fld_id );
                $this->addFieldsIf( array( 'ipb_address', 'ipb_user' ), $fld_user || $fld_userid );
                $this->addFieldsIf( 'ipb_by_text', $fld_by );
                $this->addFieldsIf( 'ipb_by', $fld_byid );
@@ -82,8 +82,21 @@ class ApiQueryBlocks extends ApiQueryBase {
                        $params['start'],
                        $params['end']
                );
-
-               $db = $this->getDB();
+               // Include in ORDER BY for uniqueness
+               $this->addWhereRange( 'ipb_id', $params['dir'], null, null );
+
+               if ( !is_null( $params['continue'] ) ) {
+                       $cont = explode( '|', $params['continue'] );
+                       $this->dieContinueUsageIf( count( $cont ) != 2 );
+                       $op = ( $params['dir'] == 'newer' ? '>' : '<' );
+                       $continueTimestamp = $db->addQuotes( $db->timestamp( $cont[0] ) );
+                       $continueId = (int)$cont[1];
+                       $this->dieContinueUsageIf( $continueId != $cont[1] );
+                       $this->addWhere( "ipb_timestamp $op $continueTimestamp OR " .
+                               "(ipb_timestamp = $continueTimestamp AND " .
+                               "ipb_id $op= $continueId)"
+                       );
+               }
 
                if ( isset( $params['ids'] ) ) {
                        $this->addWhereFld( 'ipb_id', $params['ids'] );
@@ -176,7 +189,7 @@ class ApiQueryBlocks extends ApiQueryBase {
                foreach ( $res as $row ) {
                        if ( ++$count > $params['limit'] ) {
                                // We've had enough
-                               $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->ipb_timestamp ) );
+                               $this->setContinueEnumParameter( 'continue', "$row->ipb_timestamp|$row->ipb_id" );
                                break;
                        }
                        $block = array();
@@ -234,7 +247,7 @@ class ApiQueryBlocks extends ApiQueryBase {
                        }
                        $fit = $result->addValue( array( 'query', $this->getModuleName() ), null, $block );
                        if ( !$fit ) {
-                               $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->ipb_timestamp ) );
+                               $this->setContinueEnumParameter( 'continue', "$row->ipb_timestamp|$row->ipb_id" );
                                break;
                        }
                }
@@ -313,6 +326,7 @@ class ApiQueryBlocks extends ApiQueryBase {
                                ),
                                ApiBase::PARAM_ISMULTI => true
                        ),
+                       'continue' => null,
                );
        }
 
@@ -350,6 +364,7 @@ class ApiQueryBlocks extends ApiQueryBase {
                                'Show only items that meet this criteria.',
                                "For example, to see only indefinite blocks on IPs, set {$p}show=ip|!temp"
                        ),
+                       'continue' => 'When more results are available, use this to continue',
                );
        }
 
index 4e942d6..424770f 100644 (file)
@@ -101,6 +101,22 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                                $dir,
                                $params['start'],
                                $params['end'] );
+                       // Include in ORDER BY for uniqueness
+                       $this->addWhereRange( 'cl_from', $dir, null, null );
+
+                       if ( !is_null( $params['continue'] ) ) {
+                               $cont = explode( '|', $params['continue'] );
+                               $this->dieContinueUsageIf( count( $cont ) != 2 );
+                               $op = ( $dir === 'newer' ? '>' : '<' );
+                               $db = $this->getDB();
+                               $continueTimestamp = $db->addQuotes( $db->timestamp( $cont[0] ) );
+                               $continueFrom = (int)$cont[1];
+                               $this->dieContinueUsageIf( $continueFrom != $cont[1] );
+                               $this->addWhere( "cl_timestamp $op $continueTimestamp OR " .
+                                       "(cl_timestamp = $continueTimestamp AND " .
+                                       "cl_from $op= $continueFrom)"
+                               );
+                       }
 
                        $this->addOption( 'USE INDEX', 'cl_timestamp' );
                } else {
@@ -186,7 +202,7 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                                // @todo Security issue - if the user has no right to view next
                                // title, it will still be shown
                                if ( $params['sort'] == 'timestamp' ) {
-                                       $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->cl_timestamp ) );
+                                       $this->setContinueEnumParameter( 'continue', "$row->cl_timestamp|$row->cl_from" );
                                } else {
                                        $sortkey = bin2hex( $row->cl_sortkey );
                                        $this->setContinueEnumParameter( 'continue',
@@ -229,7 +245,7 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                                        null, $vals );
                                if ( !$fit ) {
                                        if ( $params['sort'] == 'timestamp' ) {
-                                               $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->cl_timestamp ) );
+                                               $this->setContinueEnumParameter( 'continue', "$row->cl_timestamp|$row->cl_from" );
                                        } else {
                                                $sortkey = bin2hex( $row->cl_sortkey );
                                                $this->setContinueEnumParameter( 'continue',
index 58db035..2ca93f5 100644 (file)
@@ -106,7 +106,7 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                }
 
                $this->addTables( 'archive' );
-               $this->addFields( array( 'ar_title', 'ar_namespace', 'ar_timestamp', 'ar_deleted' ) );
+               $this->addFields( array( 'ar_title', 'ar_namespace', 'ar_timestamp', 'ar_deleted', 'ar_id' ) );
 
                $this->addFieldsIf( 'ar_parent_id', $fld_parentid );
                $this->addFieldsIf( 'ar_rev_id', $fld_revid );
@@ -214,19 +214,33 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                        }
                }
 
-               if ( !is_null( $params['continue'] ) && ( $mode == 'all' || $mode == 'revs' ) ) {
+               if ( !is_null( $params['continue'] ) ) {
                        $cont = explode( '|', $params['continue'] );
-                       $this->dieContinueUsageIf( count( $cont ) != 3 );
-                       $ns = intval( $cont[0] );
-                       $this->dieContinueUsageIf( strval( $ns ) !== $cont[0] );
-                       $title = $db->addQuotes( $cont[1] );
-                       $ts = $db->addQuotes( $db->timestamp( $cont[2] ) );
                        $op = ( $dir == 'newer' ? '>' : '<' );
-                       $this->addWhere( "ar_namespace $op $ns OR " .
-                               "(ar_namespace = $ns AND " .
-                               "(ar_title $op $title OR " .
-                               "(ar_title = $title AND " .
-                               "ar_timestamp $op= $ts)))" );
+                       if ( $mode == 'all' || $mode == 'revs' ) {
+                               $this->dieContinueUsageIf( count( $cont ) != 4 );
+                               $ns = intval( $cont[0] );
+                               $this->dieContinueUsageIf( strval( $ns ) !== $cont[0] );
+                               $title = $db->addQuotes( $cont[1] );
+                               $ts = $db->addQuotes( $db->timestamp( $cont[2] ) );
+                               $ar_id = (int)$cont[3];
+                               $this->dieContinueUsageIf( strval( $ar_id ) !== $cont[3] );
+                               $this->addWhere( "ar_namespace $op $ns OR " .
+                                       "(ar_namespace = $ns AND " .
+                                       "(ar_title $op $title OR " .
+                                       "(ar_title = $title AND " .
+                                       "(ar_timestamp $op $ts OR " .
+                                       "(ar_timestamp = $ts AND " .
+                                       "ar_id $op= $ar_id)))))" );
+                       } else {
+                               $this->dieContinueUsageIf( count( $cont ) != 2 );
+                               $ts = $db->addQuotes( $db->timestamp( $cont[0] ) );
+                               $ar_id = (int)$cont[1];
+                               $this->dieContinueUsageIf( strval( $ar_id ) !== $cont[1] );
+                               $this->addWhere( "ar_timestamp $op $ts OR " .
+                                       "(ar_timestamp = $ts AND " .
+                                       "ar_id $op= $ar_id)" );
+                       }
                }
 
                $this->addOption( 'LIMIT', $limit + 1 );
@@ -236,12 +250,14 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                );
                if ( $mode == 'all' ) {
                        if ( $params['unique'] ) {
+                               // @todo Does this work on non-MySQL?
                                $this->addOption( 'GROUP BY', 'ar_title' );
                        } else {
                                $sort = ( $dir == 'newer' ? '' : ' DESC' );
                                $this->addOption( 'ORDER BY', array(
                                        'ar_title' . $sort,
-                                       'ar_timestamp' . $sort
+                                       'ar_timestamp' . $sort,
+                                       'ar_id' . $sort,
                                ) );
                        }
                } else {
@@ -251,6 +267,8 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                                $this->addWhereRange( 'ar_title', $dir, null, null );
                        }
                        $this->addTimestampWhereRange( 'ar_timestamp', $dir, $params['start'], $params['end'] );
+                       // Include in ORDER BY for uniqueness
+                       $this->addWhereRange( 'ar_id', $dir, null, null );
                }
                $res = $this->select( __METHOD__ );
                $pageMap = array(); // Maps ns&title to (fake) pageid
@@ -260,10 +278,11 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                        if ( ++$count > $limit ) {
                                // We've had enough
                                if ( $mode == 'all' || $mode == 'revs' ) {
-                                       $this->setContinueEnumParameter( 'continue', intval( $row->ar_namespace ) . '|' .
-                                               $row->ar_title . '|' . $row->ar_timestamp );
+                                       $this->setContinueEnumParameter( 'continue',
+                                               "$row->ar_namespace|$row->ar_title|$row->ar_timestamp|$row->ar_id"
+                                       );
                                } else {
-                                       $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->ar_timestamp ) );
+                                       $this->setContinueEnumParameter( 'continue', "$row->ar_timestamp|$row->ar_id" );
                                }
                                break;
                        }
@@ -371,10 +390,11 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                        }
                        if ( !$fit ) {
                                if ( $mode == 'all' || $mode == 'revs' ) {
-                                       $this->setContinueEnumParameter( 'continue', intval( $row->ar_namespace ) . '|' .
-                                               $row->ar_title . '|' . $row->ar_timestamp );
+                                       $this->setContinueEnumParameter( 'continue',
+                                               "$row->ar_namespace|$row->ar_title|$row->ar_timestamp|$row->ar_id"
+                                       );
                                } else {
-                                       $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->ar_timestamp ) );
+                                       $this->setContinueEnumParameter( 'continue', "$row->ar_timestamp|$row->ar_id" );
                                }
                                break;
                        }
@@ -468,7 +488,7 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                        'namespace' => 'Only list pages in this namespace (3)',
                        'user' => 'Only list revisions by this user',
                        'excludeuser' => 'Don\'t list revisions by this user',
-                       'continue' => 'When more results are available, use this to continue (1, 3)',
+                       'continue' => 'When more results are available, use this to continue',
                        'unique' => 'List only one revision for each page (3)',
                        'tag' => 'Only list revisions tagged with this tag',
                );
index b607ca5..ee7fbc0 100644 (file)
@@ -73,13 +73,14 @@ class ApiQueryLogEvents extends ApiQueryBase {
                                        'log_title=page_title' ) ) ) );
 
                $this->addFields( array(
+                       'log_id',
                        'log_type',
                        'log_action',
                        'log_timestamp',
                        'log_deleted',
                ) );
 
-               $this->addFieldsIf( array( 'log_id', 'page_id' ), $this->fld_ids );
+               $this->addFieldsIf( 'page_id', $this->fld_ids );
                $this->addFieldsIf( array( 'log_user', 'log_user_text', 'user_name' ), $this->fld_user );
                $this->addFieldsIf( 'log_user', $this->fld_userid );
                $this->addFieldsIf(
@@ -135,6 +136,21 @@ class ApiQueryLogEvents extends ApiQueryBase {
                        $params['start'],
                        $params['end']
                );
+               // Include in ORDER BY for uniqueness
+               $this->addWhereRange( 'log_id', $params['dir'], null, null );
+
+               if ( !is_null( $params['continue'] ) ) {
+                       $cont = explode( '|', $params['continue'] );
+                       $this->dieContinueUsageIf( count( $cont ) != 2 );
+                       $op = ( $params['dir'] === 'newer' ? '>' : '<' );
+                       $continueTimestamp = $db->addQuotes( $db->timestamp( $cont[0] ) );
+                       $continueId = (int)$cont[1];
+                       $this->dieContinueUsageIf( $continueId != $cont[1] );
+                       $this->addWhere( "log_timestamp $op $continueTimestamp OR " .
+                               "(log_timestamp = $continueTimestamp AND " .
+                               "log_id $op= $continueId)"
+                       );
+               }
 
                $limit = $params['limit'];
                $this->addOption( 'LIMIT', $limit + 1 );
@@ -202,7 +218,7 @@ class ApiQueryLogEvents extends ApiQueryBase {
                        if ( ++$count > $limit ) {
                                // We've reached the one extra which shows that there are
                                // additional pages to be had. Stop here...
-                               $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->log_timestamp ) );
+                               $this->setContinueEnumParameter( 'continue', "$row->log_timestamp|$row->log_id" );
                                break;
                        }
 
@@ -212,7 +228,7 @@ class ApiQueryLogEvents extends ApiQueryBase {
                        }
                        $fit = $result->addValue( array( 'query', $this->getModuleName() ), null, $vals );
                        if ( !$fit ) {
-                               $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->log_timestamp ) );
+                               $this->setContinueEnumParameter( 'continue', "$row->log_timestamp|$row->log_id" );
                                break;
                        }
                }
@@ -497,7 +513,8 @@ class ApiQueryLogEvents extends ApiQueryBase {
                                ApiBase::PARAM_MIN => 1,
                                ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
                                ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
-                       )
+                       ),
+                       'continue' => null,
                );
        }
 
@@ -531,6 +548,7 @@ class ApiQueryLogEvents extends ApiQueryBase {
                        'prefix' => 'Filter entries that start with this prefix. Disabled in Miser Mode',
                        'limit' => 'How many total event entries to return',
                        'tag' => 'Only list event entries tagged with this tag',
+                       'continue' => 'When more results are available, use this to continue',
                );
        }
 
index 9cdd6b9..6cf7ff3 100644 (file)
@@ -63,6 +63,27 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
                $this->addWhereFld( 'pt_namespace', $params['namespace'] );
                $this->addWhereFld( 'pt_create_perm', $params['level'] );
 
+               // Include in ORDER BY for uniqueness
+               $this->addWhereRange( 'pt_namespace', $params['dir'], null, null );
+               $this->addWhereRange( 'pt_title', $params['dir'], null, null );
+
+               if ( !is_null( $params['continue'] ) ) {
+                       $cont = explode( '|', $params['continue'] );
+                       $this->dieContinueUsageIf( count( $cont ) != 3 );
+                       $op = ( $params['dir'] === 'newer' ? '>' : '<' );
+                       $db = $this->getDB();
+                       $continueTimestamp = $db->addQuotes( $db->timestamp( $cont[0] ) );
+                       $continueNs = (int)$cont[1];
+                       $this->dieContinueUsageIf( $continueNs != $cont[1] );
+                       $continueTitle = $db->addQuotes( $cont[2] );
+                       $this->addWhere( "pt_timestamp $op $continueTimestamp OR " .
+                               "(pt_timestamp = $continueTimestamp AND " .
+                               "(pt_namespace $op $continueNs OR " .
+                               "(pt_namespace = $continueNs AND " .
+                               "pt_title $op= $continueTitle)))"
+                       );
+               }
+
                if ( isset( $prop['user'] ) ) {
                        $this->addTables( 'user' );
                        $this->addFields( 'user_name' );
@@ -83,7 +104,9 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
                        if ( ++$count > $params['limit'] ) {
                                // We've reached the one extra which shows that there are
                                // additional pages to be had. Stop here...
-                               $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->pt_timestamp ) );
+                               $this->setContinueEnumParameter( 'continue',
+                                       "$row->pt_timestamp|$row->pt_namespace|$row->pt_title"
+                               );
                                break;
                        }
 
@@ -122,8 +145,9 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
 
                                $fit = $result->addValue( array( 'query', $this->getModuleName() ), null, $vals );
                                if ( !$fit ) {
-                                       $this->setContinueEnumParameter( 'start',
-                                               wfTimestamp( TS_ISO_8601, $row->pt_timestamp ) );
+                                       $this->setContinueEnumParameter( 'continue',
+                                               "$row->pt_timestamp|$row->pt_namespace|$row->pt_title"
+                                       );
                                        break;
                                }
                        } else {
@@ -195,6 +219,7 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
                                        'level'
                                )
                        ),
+                       'continue' => null,
                );
        }
 
@@ -216,6 +241,7 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
                                ' level          - Adds the protection level',
                        ),
                        'level' => 'Only list titles with these protection levels',
+                       'continue' => 'When more results are available, use this to continue',
                );
        }
 
index 79a8dc9..80352f2 100644 (file)
@@ -152,15 +152,12 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
 
                if ( !is_null( $params['continue'] ) ) {
                        $cont = explode( '|', $params['continue'] );
-                       if ( count( $cont ) != 2 ) {
-                               $this->dieUsage( 'Invalid continue param. You should pass the ' .
-                                       'original value returned by the previous query', '_badcontinue' );
-                       }
-
-                       $timestamp = $this->getDB()->addQuotes( wfTimestamp( TS_MW, $cont[0] ) );
+                       $this->dieContinueUsageIf( count( $cont ) != 2 );
+                       $db = $this->getDB();
+                       $timestamp = $db->addQuotes( $db->timestamp( $cont[0] ) );
                        $id = intval( $cont[1] );
+                       $this->dieContinueUsageIf( $id != $cont[1] );
                        $op = $params['dir'] === 'older' ? '<' : '>';
-
                        $this->addWhere(
                                "rc_timestamp $op $timestamp OR " .
                                "(rc_timestamp = $timestamp AND " .
@@ -254,6 +251,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
 
                /* Add the fields we're concerned with to our query. */
                $this->addFields( array(
+                       'rc_id',
                        'rc_timestamp',
                        'rc_namespace',
                        'rc_title',
@@ -277,7 +275,6 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                                );
                        }
 
-                       $this->addFields( 'rc_id' );
                        /* Add fields to our query if they are specified as a needed parameter. */
                        $this->addFieldsIf( array( 'rc_this_oldid', 'rc_last_oldid' ), $this->fld_ids );
                        $this->addFieldsIf( 'rc_comment', $this->fld_comment || $this->fld_parsedcomment );
@@ -371,10 +368,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                        if ( ++$count > $params['limit'] ) {
                                // We've reached the one extra which shows that there are
                                // additional pages to be had. Stop here...
-                               $this->setContinueEnumParameter(
-                                       'continue',
-                                       wfTimestamp( TS_ISO_8601, $row->rc_timestamp ) . '|' . $row->rc_id
-                               );
+                               $this->setContinueEnumParameter( 'continue', "$row->rc_timestamp|$row->rc_id" );
                                break;
                        }
 
@@ -388,10 +382,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                                }
                                $fit = $result->addValue( array( 'query', $this->getModuleName() ), null, $vals );
                                if ( !$fit ) {
-                                       $this->setContinueEnumParameter(
-                                               'continue',
-                                               wfTimestamp( TS_ISO_8601, $row->rc_timestamp ) . '|' . $row->rc_id
-                                       );
+                                       $this->setContinueEnumParameter( 'continue', "$row->rc_timestamp|$row->rc_id" );
                                        break;
                                }
                        } else {
index 1cd8d98..b7796ee 100644 (file)
@@ -656,12 +656,12 @@ class ApiQuerySiteinfo extends ApiQueryBase {
 
        public function appendSkins( $property ) {
                $data = array();
-               $usable = Skin::getUsableSkins();
+               $allowed = Skin::getAllowedSkins();
                $default = Skin::normalizeKey( 'default' );
                foreach ( Skin::getSkinNames() as $name => $displayName ) {
                        $skin = array( 'code' => $name );
                        ApiResult::setContent( $skin, $displayName );
-                       if ( !isset( $usable[$name] ) ) {
+                       if ( !isset( $allowed[$name] ) ) {
                                $skin['unusable'] = '';
                        }
                        if ( $name === $default ) {
index b58a951..e9fec43 100644 (file)
@@ -108,22 +108,14 @@ class ApiQueryContributions extends ApiQueryBase {
                        if ( ++$count > $limit ) {
                                // We've reached the one extra which shows that there are
                                // additional pages to be had. Stop here...
-                               if ( $this->multiUserMode ) {
-                                       $this->setContinueEnumParameter( 'continue', $this->continueStr( $row ) );
-                               } else {
-                                       $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->rev_timestamp ) );
-                               }
+                               $this->setContinueEnumParameter( 'continue', $this->continueStr( $row ) );
                                break;
                        }
 
                        $vals = $this->extractRowInfo( $row );
                        $fit = $this->getResult()->addValue( array( 'query', $this->getModuleName() ), null, $vals );
                        if ( !$fit ) {
-                               if ( $this->multiUserMode ) {
-                                       $this->setContinueEnumParameter( 'continue', $this->continueStr( $row ) );
-                               } else {
-                                       $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->rev_timestamp ) );
-                               }
+                               $this->setContinueEnumParameter( 'continue', $this->continueStr( $row ) );
                                break;
                        }
                }
@@ -167,18 +159,34 @@ class ApiQueryContributions extends ApiQueryBase {
                $this->addWhere( 'page_id=rev_page' );
 
                // Handle continue parameter
-               if ( $this->multiUserMode && !is_null( $this->params['continue'] ) ) {
+               if ( !is_null( $this->params['continue'] ) ) {
                        $continue = explode( '|', $this->params['continue'] );
-                       $this->dieContinueUsageIf( count( $continue ) != 2 );
                        $db = $this->getDB();
-                       $encUser = $db->addQuotes( $continue[0] );
-                       $encTS = $db->addQuotes( $db->timestamp( $continue[1] ) );
+                       if ( $this->multiUserMode ) {
+                               $this->dieContinueUsageIf( count( $continue ) != 3 );
+                               $encUser = $db->addQuotes( array_shift( $continue ) );
+                       } else {
+                               $this->dieContinueUsageIf( count( $continue ) != 2 );
+                       }
+                       $encTS = $db->addQuotes( $db->timestamp( $continue[0] ) );
+                       $encId = (int)$continue[1];
+                       $this->dieContinueUsageIf( $encId != $continue[1] );
                        $op = ( $this->params['dir'] == 'older' ? '<' : '>' );
-                       $this->addWhere(
-                               "rev_user_text $op $encUser OR " .
-                               "(rev_user_text = $encUser AND " .
-                               "rev_timestamp $op= $encTS)"
-                       );
+                       if ( $this->multiUserMode ) {
+                               $this->addWhere(
+                                       "rev_user_text $op $encUser OR " .
+                                       "(rev_user_text = $encUser AND " .
+                                       "(rev_timestamp $op $encTS OR " .
+                                       "(rev_timestamp = $encTS AND " .
+                                       "rev_id $op= $encId)))"
+                               );
+                       } else {
+                               $this->addWhere(
+                                       "rev_timestamp $op $encTS OR " .
+                                       "(rev_timestamp = $encTS AND " .
+                                       "rev_id $op= $encId)"
+                               );
+                       }
                }
 
                // Don't include any revisions where we're not supposed to be able to
@@ -209,6 +217,9 @@ class ApiQueryContributions extends ApiQueryBase {
                }
                $this->addTimestampWhereRange( 'rev_timestamp',
                        $this->params['dir'], $this->params['start'], $this->params['end'] );
+               // Include in ORDER BY for uniqueness
+               $this->addWhereRange( 'rev_id', $this->params['dir'], null, null );
+
                $this->addWhereFld( 'page_namespace', $this->params['namespace'] );
 
                $show = $this->params['show'];
@@ -242,6 +253,7 @@ class ApiQueryContributions extends ApiQueryBase {
                // ns+title checks if the user has access rights for this page
                // user_text is necessary if multiple users were specified
                $this->addFields( array(
+                       'rev_id',
                        'rev_timestamp',
                        'page_namespace',
                        'page_title',
@@ -284,7 +296,6 @@ class ApiQueryContributions extends ApiQueryBase {
 
                $this->addTables( $tables );
                $this->addFieldsIf( 'rev_page', $this->fld_ids );
-               $this->addFieldsIf( 'rev_id', $this->fld_ids || $this->fld_flags );
                $this->addFieldsIf( 'page_latest', $this->fld_flags );
                // $this->addFieldsIf( 'rev_text_id', $this->fld_ids ); // Should this field be exposed?
                $this->addFieldsIf( 'rev_comment', $this->fld_comment || $this->fld_parsedcomment );
@@ -424,8 +435,11 @@ class ApiQueryContributions extends ApiQueryBase {
        }
 
        private function continueStr( $row ) {
-               return $row->rev_user_text . '|' .
-                       wfTimestamp( TS_ISO_8601, $row->rev_timestamp );
+               if ( $this->multiUserMode ) {
+                       return "$row->rev_user_text|$row->rev_timestamp|$row->rev_id";
+               } else {
+                       return "$row->rev_timestamp|$row->rev_id";
+               }
        }
 
        public function getCacheMode( $params ) {
index 6baa87d..2e1ce6c 100644 (file)
@@ -86,6 +86,7 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                }
 
                $this->addFields( array(
+                       'rc_id',
                        'rc_namespace',
                        'rc_title',
                        'rc_timestamp',
@@ -135,6 +136,22 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
 
                $this->addTimestampWhereRange( 'rc_timestamp', $params['dir'],
                        $params['start'], $params['end'] );
+               // Include in ORDER BY for uniqueness
+               $this->addWhereRange( 'rc_id', $params['dir'], null, null );
+
+               if ( !is_null( $params['continue'] ) ) {
+                       $cont = explode( '|', $params['continue'] );
+                       $this->dieContinueUsageIf( count( $cont ) != 2 );
+                       $op = ( $params['dir'] === 'newer' ? '>' : '<' );
+                       $continueTimestamp = $db->addQuotes( $db->timestamp( $cont[0] ) );
+                       $continueId = (int)$cont[1];
+                       $this->dieContinueUsageIf( $continueId != $cont[1] );
+                       $this->addWhere( "rc_timestamp $op $continueTimestamp OR " .
+                               "(rc_timestamp = $continueTimestamp AND " .
+                               "rc_id $op= $continueId)"
+                       );
+               }
+
                $this->addWhereFld( 'wl_namespace', $params['namespace'] );
 
                if ( !$params['allrev'] ) {
@@ -236,10 +253,7 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                        if ( ++$count > $params['limit'] ) {
                                // We've reached the one extra which shows that there are
                                // additional pages to be had. Stop here...
-                               $this->setContinueEnumParameter(
-                                       'start',
-                                       wfTimestamp( TS_ISO_8601, $row->rc_timestamp )
-                               );
+                               $this->setContinueEnumParameter( 'continue', "$row->rc_timestamp|$row->rc_id" );
                                break;
                        }
 
@@ -247,8 +261,7 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                                $vals = $this->extractRowInfo( $row );
                                $fit = $this->getResult()->addValue( array( 'query', $this->getModuleName() ), null, $vals );
                                if ( !$fit ) {
-                                       $this->setContinueEnumParameter( 'start',
-                                               wfTimestamp( TS_ISO_8601, $row->rc_timestamp ) );
+                                       $this->setContinueEnumParameter( 'continue', "$row->rc_timestamp|$row->rc_id" );
                                        break;
                                }
                        } else {
@@ -544,6 +557,7 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                        'token' => array(
                                ApiBase::PARAM_TYPE => 'string'
                        ),
+                       'continue' => null,
                );
        }
 
@@ -588,6 +602,7 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                        'owner' => 'The name of the user whose watchlist you\'d like to access',
                        'token' => 'Give a security token (settable in preferences) to ' .
                                'allow access to another user\'s watchlist',
+                       'continue' => 'When more results are available, use this to continue',
                );
        }
 
index 52a3298..9254bb4 100644 (file)
@@ -630,8 +630,8 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
        public function setFlag( $flag ) {
                global $wgDebugDBTransactions;
                $this->mFlags |= $flag;
-               if ( ( $flag & DBO_TRX ) & $wgDebugDBTransactions ) {
-                       wfDebug( "Implicit transactions are now disabled.\n" );
+               if ( ( $flag & DBO_TRX ) && $wgDebugDBTransactions ) {
+                       wfDebug( "Implicit transactions are now enabled.\n" );
                }
        }
 
index 79232e5..6286f94 100644 (file)
@@ -329,7 +329,7 @@ class LinksUpdate extends SqlDataUpdate {
                                $toField = $prefix . '_to';
                        }
                        if ( count( $deletions ) ) {
-                               $where[] = "$toField IN (" . $this->mDb->makeList( array_keys( $deletions ) ) . ')';
+                               $where[$toField] = array_keys( $deletions );
                        } else {
                                $where = false;
                        }
index 4e48932..35ac60f 100644 (file)
@@ -252,8 +252,9 @@ class ForeignAPIRepo extends FileRepo {
         * @param string $name
         * @param int $width
         * @param int $height
-        * @param null $result
+        * @param array $result Out parameter that will be changed by the function.
         * @param string $otherParams
+        *
         * @return bool
         */
        function getThumbUrl( $name, $width = -1, $height = -1, &$result = null, $otherParams = '' ) {
index 267dbd5..eb55e82 100644 (file)
@@ -1990,7 +1990,7 @@ class LocalFileDeleteBatch {
                        $res = $dbw->select(
                                'oldimage',
                                array( 'oi_archive_name', 'oi_sha1' ),
-                               'oi_archive_name IN (' . $dbw->makeList( array_keys( $oldRels ) ) . ')',
+                               array( 'oi_archive_name' => array_keys( $oldRels ) ),
                                __METHOD__
                        );
 
@@ -2091,7 +2091,7 @@ class LocalFileDeleteBatch {
                        $concat = $dbw->buildConcat( array( "oi_sha1", $encExt ) );
                        $where = array(
                                'oi_name' => $this->file->getName(),
-                               'oi_archive_name IN (' . $dbw->makeList( array_keys( $oldRels ) ) . ')' );
+                               'oi_archive_name' => array_keys( $oldRels ) );
                        $dbw->insertSelect( 'filearchive', 'oldimage',
                                array(
                                        'fa_storage_group' => $encGroup,
@@ -2154,7 +2154,7 @@ class LocalFileDeleteBatch {
                        $res = $dbw->select( 'oldimage',
                                array( 'oi_archive_name' ),
                                array( 'oi_name' => $this->file->getName(),
-                                       'oi_archive_name IN (' . $dbw->makeList( array_keys( $oldRels ) ) . ')',
+                                       'oi_archive_name' => array_keys( $oldRels ),
                                        $dbw->bitAnd( 'oi_deleted', File::DELETED_FILE ) => File::DELETED_FILE ),
                                __METHOD__ );
 
@@ -2321,7 +2321,7 @@ class LocalFileRestoreBatch {
                $conditions = array( 'fa_name' => $this->file->getName() );
 
                if ( !$this->all ) {
-                       $conditions[] = 'fa_id IN (' . $dbw->makeList( $this->ids ) . ')';
+                       $conditions['fa_id'] = $this->ids;
                }
 
                $result = $dbw->select(
@@ -2506,7 +2506,7 @@ class LocalFileRestoreBatch {
 
                if ( $deleteIds ) {
                        $dbw->delete( 'filearchive',
-                               array( 'fa_id IN (' . $dbw->makeList( $deleteIds ) . ')' ),
+                               array( 'fa_id' => $deleteIds ),
                                __METHOD__ );
                }
 
index 4f501f7..bb42d53 100644 (file)
@@ -16,7 +16,7 @@ class HTMLSelectAndOtherField extends HTMLSelectField {
                } elseif ( array_key_exists( 'other-message', $params ) ) {
                        $params['other'] = wfMessage( $params['other-message'] )->plain();
                } else {
-                       $params['other'] = null;
+                       $params['other'] = wfMessage( 'htmlform-selectorother-other' )->plain();
                }
 
                parent::__construct( $params );
index 3f2e2cb..5223cd3 100644 (file)
@@ -155,10 +155,11 @@ abstract class DatabaseUpdater {
        }
 
        /**
-        * @throws MWException
         * @param DatabaseBase $db
         * @param bool $shared
-        * @param null $maintenance
+        * @param Maintenance $maintenance
+        *
+        * @throws MWException
         * @return DatabaseUpdater
         */
        public static function newForDB( &$db, $shared = false, $maintenance = null ) {
index a5e3c8b..7a7f125 100644 (file)
@@ -364,7 +364,7 @@ class WebInstallerOutput {
         * @return string
         */
        public function getJQuery() {
-               return Html::linkedScript( "../resources/jquery/jquery.js" );
+               return Html::linkedScript( "../resources/src/jquery/jquery.js" );
        }
 
 }
index 0c6ff63..de27766 100644 (file)
@@ -97,7 +97,7 @@
     "config-db-username": "Database username:",
     "config-db-password": "Database password:",
     "config-db-password-empty": "Please enter a password for the new database user: $1.\nWhile it may be possible to create users with no passwords, it is not secure.",
-    "config-db-username-empty": "You must enter a value for \"Database username\"",
+    "config-db-username-empty": "You must enter a value for \"{{int:config-db-username}}\"",
     "config-db-install-username": "Enter the username that will be used to connect to the database during the installation process.\nThis is not the username of the MediaWiki account; this is the username for your database.",
     "config-db-install-password": "Enter the password that will be used to connect to the database during the installation process.\nThis is not the password for the MediaWiki account; this is the password for your database.",
     "config-db-install-help": "Enter the username and password that will be used to connect to the database during the installation process.",
     "config-header-sqlite": "SQLite settings",
     "config-header-oracle": "Oracle settings",
     "config-header-mssql": "Microsoft SQL Server settings",
-    "config-invalid-db-type": "Invalid database type",
-    "config-missing-db-name": "You must enter a value for \"Database name\"",
-    "config-missing-db-host": "You must enter a value for \"Database host\"",
-    "config-missing-db-server-oracle": "You must enter a value for \"Database TNS\"",
-    "config-invalid-db-server-oracle": "Invalid database TNS \"$1\".\nUse either \"TNS Name\" or an \"Easy Connect\" string ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle Naming Methods])",
+    "config-invalid-db-type": "Invalid database type.",
+    "config-missing-db-name": "You must enter a value for \"{{int:config-db-name}}\".",
+    "config-missing-db-host": "You must enter a value for \"{{int:config-db-host}}\".",
+    "config-missing-db-server-oracle": "You must enter a value for \"{{int:config-db-host-oracle}}\".",
+    "config-invalid-db-server-oracle": "Invalid database TNS \"$1\".\nUse either \"TNS Name\" or an \"Easy Connect\" string ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle Naming Methods]).",
     "config-invalid-db-name": "Invalid database name \"$1\".\nUse only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_) and hyphens (-).",
     "config-invalid-db-prefix": "Invalid database prefix \"$1\".\nUse only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_) and hyphens (-).",
     "config-connection-error": "$1.\n\nCheck the host, username and password and try again.",
     "config-extension-link": "Did you know that your wiki supports [//www.mediawiki.org/wiki/Manual:Extensions extensions]?\n\nYou can browse [//www.mediawiki.org/wiki/Category:Extensions_by_category extensions by category] or the [//www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] to see the full list of extensions.",
     "mainpagetext": "<strong>MediaWiki has been successfully installed.</strong>",
     "mainpagedocfooter": "Consult the [//meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.\n\n== Getting started ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localise MediaWiki for your language]"
-}
\ No newline at end of file
+}
index 90742ce..b1dfe14 100644 (file)
@@ -254,6 +254,31 @@ class JobQueueGroup {
                return array_diff( $this->getQueueTypes(), $wgJobTypesExcludedFromDefaultQueue );
        }
 
+       /**
+        * Check if there are any queues with jobs (this is cached)
+        *
+        * @param integer $type JobQueueGroup::TYPE_* constant
+        * @return bool
+        * @since 1.23
+        */
+       public function queuesHaveJobs( $type = self::TYPE_ANY ) {
+               global $wgMemc;
+
+               $key = wfMemcKey( 'jobqueue', 'queueshavejobs', $type );
+
+               $value = $wgMemc->get( $key );
+               if ( $value === false ) {
+                       $queues = $this->getQueuesWithJobs();
+                       if ( $type == self::TYPE_DEFAULT ) {
+                               $queues = array_intersect( $queues, $this->getDefaultQueueTypes() );
+                       }
+                       $value = count( $queues ) ? 'true' : 'false';
+                       $wgMemc->add( $key, $value, 15 );
+               }
+
+               return ( $value === 'true' );
+       }
+
        /**
         * Get the list of job types that have non-empty queues
         *
index a7c5dc0..4d1e72c 100644 (file)
@@ -40,7 +40,7 @@ class HTMLCacheUpdateJob extends Job {
        }
 
        function run() {
-               global $wgUpdateRowsPerJob, $wgUpdateRowsPerQuery, $wgMaxBacklinksInvalidate;
+               global $wgUpdateRowsPerJob, $wgUpdateRowsPerQuery;
 
                static $expected = array( 'recursive', 'pages' ); // new jobs have one of these
 
@@ -57,14 +57,6 @@ class HTMLCacheUpdateJob extends Job {
 
                // Job to purge all (or a range of) backlink pages for a page
                if ( !empty( $this->params['recursive'] ) ) {
-                       // @TODO: try to use delayed jobs if possible?
-                       if ( !isset( $this->params['range'] ) && $wgMaxBacklinksInvalidate !== false ) {
-                               $numRows = $this->title->getBacklinkCache()->getNumLinks(
-                                       $this->params['table'], $wgMaxBacklinksInvalidate );
-                               if ( $numRows > $wgMaxBacklinksInvalidate ) {
-                                       return true;
-                               }
-                       }
                        // Convert this into no more than $wgUpdateRowsPerJob HTMLCacheUpdateJob per-title
                        // jobs and possibly a recursive HTMLCacheUpdateJob job for the rest of the backlinks
                        $jobs = BacklinkJobUtils::partitionBacklinkJob(
index 1202c9a..3bc5636 100644 (file)
@@ -230,6 +230,30 @@ class DjVuHandler extends ImageHandler {
                return $deja;
        }
 
+       /**
+        * Get metadata, unserializing it if neccessary.
+        *
+        * @param File $file The DjVu file in question
+        * @return String XML metadata as a string.
+        */
+       private function getUnserializedMetadata( File $file ) {
+               $metadata = $file->getMetadata();
+               if ( substr( $metadata, 0, 3 ) === '<?xml' ) {
+                       // Old style. Not serialized but instead just a raw string of XML.
+                       return $metadata;
+               }
+
+               wfSuppressWarnings();
+               $unser = unserialize( $metadata );
+               wfRestoreWarnings();
+               if ( is_array( $unser ) ) {
+                       return $unser['xml'];
+               }
+
+               // unserialize failed. Guess it wasn't really serialized after all,
+               return $metadata;
+       }
+
        /**
         * Cache a document tree for the DjVu XML metadata
         * @param File $image
@@ -244,7 +268,7 @@ class DjVuHandler extends ImageHandler {
                        return $image->dejaMetaTree;
                }
 
-               $metadata = $image->getMetadata();
+               $metadata = $this->getUnserializedMetadata( $image );
                if ( !$this->isMetadataValid( $image, $metadata ) ) {
                        wfDebug( "DjVu XML metadata is invalid or missing, should have been fixed in upgradeRow\n" );
 
@@ -307,7 +331,12 @@ class DjVuHandler extends ImageHandler {
        function getMetadata( $image, $path ) {
                wfDebug( "Getting DjVu metadata for $path\n" );
 
-               return $this->getDjVuImage( $image, $path )->retrieveMetaData();
+               $xml = $this->getDjVuImage( $image, $path )->retrieveMetaData();
+               if ( $xml === false ) {
+                       return false;
+               } else {
+                       return serialize( array( 'xml' => $xml ) );
+               }
        }
 
        function getMetadataType( $image ) {
index 8fa39fa..02f2438 100644 (file)
@@ -91,10 +91,11 @@ class CoreParserFunctions {
        }
 
        /**
-        * @param $parser Parser
-        * @param $date
-        * @param null $defaultPref
-        * @return mixed|string
+        * @param Parser $parser
+        * @param string $date
+        * @param string $defaultPref
+        *
+        * @return string
         */
        static function formatDate( $parser, $date, $defaultPref = null ) {
                $lang = $parser->getFunctionLang();
index 0a69b04..d10841f 100644 (file)
@@ -143,7 +143,8 @@ class DateFormatter {
         * @param string $preference User preference
         * @param string $text Text to reformat
         * @param array $options can contain 'linked' and/or 'match-whole'
-        * @return mixed|String
+        *
+        * @return string
         */
        function reformat( $preference, $text, $options = array( 'linked' ) ) {
                $linked = in_array( 'linked', $options );
index 6331a30..36f4bd4 100644 (file)
@@ -123,6 +123,12 @@ class ProfilerSimple extends Profiler {
                }
        }
 
+       public function getRawData() {
+               // Calling the method of the parent class results in fatal error.
+               // @todo Implement this correctly.
+               return array();
+       }
+
        public function getFunctionReport() {
                /* Implement in output subclasses */
                return '';
index dd6bec2..f739d3b 100644 (file)
@@ -97,7 +97,8 @@ class ActiveUsersPager extends UsersPager {
                        'qcc_type' => 'activeusers',
                        'qcc_namespace' => NS_USER,
                        'user_name = qcc_title',
-                       'rc_user_text = qcc_title'
+                       'rc_user_text = qcc_title',
+                       'rc_type != ' . $dbr->addQuotes( RC_EXTERNAL ) // Don't count wikidata.
                );
                if ( $this->requestedUser != '' ) {
                        $conds[] = 'qcc_title >= ' . $dbr->addQuotes( $this->requestedUser );
@@ -340,6 +341,7 @@ class SpecialActiveUsers extends SpecialPage {
                        array( 'rc_user_text', 'lastedittime' => 'MAX(rc_timestamp)' ),
                        array(
                                'rc_user > 0', // actual accounts
+                               'rc_type != ' . $dbw->addQuotes( RC_EXTERNAL ), // no wikidata
                                'rc_log_type IS NULL OR rc_log_type != ' . $dbw->addQuotes( 'newusers' ),
                                'rc_timestamp >= ' . $dbw->addQuotes( $dbw->timestamp( $sTimestamp ) ),
                                'rc_timestamp <= ' . $dbw->addQuotes( $dbw->timestamp( $eTimestamp ) )
index 51606b7..f20355b 100644 (file)
@@ -244,6 +244,16 @@ class SpecialContributions extends IncludableSpecialPage {
         */
        protected function contributionsSub( $userObj ) {
                if ( $userObj->isAnon() ) {
+                       // Show a warning message that the user being searched for doesn't exists
+                       if ( !User::isIP( $userObj ) ) {
+                               $this->getOutput()->wrapWikiMsg(
+                                       "<div class=\"mw-userpage-userdoesnotexist error\">\n\$1\n</div>",
+                                       array(
+                                               'contributions-userdoesnotexist',
+                                               wfEscapeWikiText( $userObj->getName() ),
+                                       )
+                               );
+                       }
                        $user = htmlspecialchars( $userObj->getName() );
                } else {
                        $user = Linker::link( $userObj->getUserPage(), htmlspecialchars( $userObj->getName() ) );
index c867f06..fbddfbd 100644 (file)
@@ -138,6 +138,7 @@ class SpecialEmailUser extends UnlistedSpecialPage {
                $ret = self::getTarget( $this->mTarget );
                if ( !$ret instanceof User ) {
                        if ( $this->mTarget != '' ) {
+                               // Messages used here: notargettext, noemailtext, nowikiemailtext
                                $ret = ( $ret == 'notarget' ) ? 'emailnotarget' : ( $ret . 'text' );
                                $out->wrapWikiMsg( "<p class='error'>$1</p>", $ret );
                        }
@@ -305,6 +306,7 @@ class SpecialEmailUser extends UnlistedSpecialPage {
 
                $target = self::getTarget( $data['Target'] );
                if ( !$target instanceof User ) {
+                       // Messages used here: notargettext, noemailtext, nowikiemailtext
                        return $context->msg( $target . 'text' )->parseAsBlock();
                }
 
index 82a4f70..31034f9 100644 (file)
@@ -132,6 +132,88 @@ class SpecialListGroupRights extends SpecialPage {
                        ) );
                }
                $out->addHTML( Xml::closeElement( 'table' ) );
+               $this->outputNamespaceProtectionInfo();
+       }
+
+       private function outputNamespaceProtectionInfo() {
+               global $wgNamespaceProtection, $wgParser, $wgContLang;
+               $out = $this->getOutput();
+
+               if ( count( $wgNamespaceProtection ) == 0 ) {
+                       return;
+               }
+
+               $header = $this->msg( 'listgrouprights-namespaceprotection-header' )->parse();
+               $out->addHTML(
+                       Html::rawElement( 'h2', array(), Html::element( 'span', array(
+                               'class' => 'mw-headline',
+                               'id' => $wgParser->guessSectionNameFromWikiText( $header )
+                       ), $header ) ) .
+                       Xml::openElement( 'table', array( 'class' => 'wikitable' ) ) .
+                       Html::element(
+                               'th',
+                               array(),
+                               $this->msg( 'listgrouprights-namespaceprotection-namespace' )->text()
+                       ) .
+                       Html::element(
+                               'th',
+                               array(),
+                               $this->msg( 'listgrouprights-namespaceprotection-restrictedto' )->text()
+                       )
+               );
+
+               ksort( $wgNamespaceProtection );
+               foreach ( $wgNamespaceProtection as $namespace => $rights ) {
+                       if ( !in_array( $namespace, MWNamespace::getValidNamespaces() ) ) {
+                               continue;
+                       }
+
+                       if ( $namespace == NS_MAIN ) {
+                               $namespaceText = $this->msg( 'blanknamespace' )->text();
+                       } else {
+                               $namespaceText = $wgContLang->convertNamespace( $namespace );
+                       }
+
+                       $out->addHTML(
+                               Xml::openElement( 'tr' ) .
+                               Html::rawElement(
+                                       'td',
+                                       array(),
+                                       Linker::link(
+                                               SpecialPage::getTitleFor( 'Allpages' ),
+                                               $namespaceText,
+                                               array(),
+                                               array( 'namespace' => $namespace )
+                                       )
+                               ) .
+                               Xml::openElement( 'td' ) . Xml::openElement( 'ul' )
+                       );
+
+                       if ( !is_array( $rights ) ) {
+                               $rights = array( $rights );
+                       }
+
+                       foreach ( $rights as $right ) {
+                               $out->addHTML(
+                                       Html::rawElement( 'li', array(), $this->msg(
+                                               'listgrouprights-right-display',
+                                               User::getRightDescription( $right ),
+                                               Html::element(
+                                                       'span',
+                                                       array( 'class' => 'mw-listgrouprights-right-name' ),
+                                                       $right
+                                               )
+                                       )->parse() )
+                               );
+                       }
+
+                       $out->addHTML(
+                               Xml::closeElement( 'ul' ) .
+                               Xml::closeElement( 'td' ) .
+                               Xml::closeElement( 'tr' )
+                       );
+               }
+               $out->addHTML( Xml::closeElement( 'table' ) );
        }
 
        /**
index e505ecb..5b4ccb5 100644 (file)
@@ -465,7 +465,7 @@ class ProtectedPagesPager extends TablePager {
                                break;
 
                        case 'log_comment':
-                               // when timestamp is null, this is a old protection row
+                               // when timestamp is null, this is an old protection row
                                if ( $row->log_timestamp === null ) {
                                        $formatted = Html::rawElement(
                                                'span',
diff --git a/languages/ConverterRule.php b/languages/ConverterRule.php
new file mode 100644 (file)
index 0000000..4091041
--- /dev/null
@@ -0,0 +1,502 @@
+<?php
+/**
+ * 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 Language
+ */
+
+/**
+ * Parser for rules of language conversion , parse rules in -{ }- tag.
+ * @ingroup Language
+ * @author fdcn <fdcn64@gmail.com>, PhiLiP <philip.npc@gmail.com>
+ */
+class ConverterRule {
+       public $mText; // original text in -{text}-
+       public $mConverter; // LanguageConverter object
+       public $mRuleDisplay = '';
+       public $mRuleTitle = false;
+       public $mRules = '';// string : the text of the rules
+       public $mRulesAction = 'none';
+       public $mFlags = array();
+       public $mVariantFlags = array();
+       public $mConvTable = array();
+       public $mBidtable = array();// array of the translation in each variant
+       public $mUnidtable = array();// array of the translation in each variant
+
+       /**
+        * Constructor
+        *
+        * @param string $text The text between -{ and }-
+        * @param LanguageConverter $converter
+        */
+       public function __construct( $text, $converter ) {
+               $this->mText = $text;
+               $this->mConverter = $converter;
+       }
+
+       /**
+        * Check if variants array in convert array.
+        *
+        * @param array|string $variants Variant language code
+        * @return string Translated text
+        */
+       public function getTextInBidtable( $variants ) {
+               $variants = (array)$variants;
+               if ( !$variants ) {
+                       return false;
+               }
+               foreach ( $variants as $variant ) {
+                       if ( isset( $this->mBidtable[$variant] ) ) {
+                               return $this->mBidtable[$variant];
+                       }
+               }
+               return false;
+       }
+
+       /**
+        * Parse flags with syntax -{FLAG| ... }-
+        * @private
+        */
+       function parseFlags() {
+               $text = $this->mText;
+               $flags = array();
+               $variantFlags = array();
+
+               $sepPos = strpos( $text, '|' );
+               if ( $sepPos !== false ) {
+                       $validFlags = $this->mConverter->mFlags;
+                       $f = StringUtils::explode( ';', substr( $text, 0, $sepPos ) );
+                       foreach ( $f as $ff ) {
+                               $ff = trim( $ff );
+                               if ( isset( $validFlags[$ff] ) ) {
+                                       $flags[$validFlags[$ff]] = true;
+                               }
+                       }
+                       $text = strval( substr( $text, $sepPos + 1 ) );
+               }
+
+               if ( !$flags ) {
+                       $flags['S'] = true;
+               } elseif ( isset( $flags['R'] ) ) {
+                       $flags = array( 'R' => true );// remove other flags
+               } elseif ( isset( $flags['N'] ) ) {
+                       $flags = array( 'N' => true );// remove other flags
+               } elseif ( isset( $flags['-'] ) ) {
+                       $flags = array( '-' => true );// remove other flags
+               } elseif ( count( $flags ) == 1 && isset( $flags['T'] ) ) {
+                       $flags['H'] = true;
+               } elseif ( isset( $flags['H'] ) ) {
+                       // replace A flag, and remove other flags except T
+                       $temp = array( '+' => true, 'H' => true );
+                       if ( isset( $flags['T'] ) ) {
+                               $temp['T'] = true;
+                       }
+                       if ( isset( $flags['D'] ) ) {
+                               $temp['D'] = true;
+                       }
+                       $flags = $temp;
+               } else {
+                       if ( isset( $flags['A'] ) ) {
+                               $flags['+'] = true;
+                               $flags['S'] = true;
+                       }
+                       if ( isset( $flags['D'] ) ) {
+                               unset( $flags['S'] );
+                       }
+                       // try to find flags like "zh-hans", "zh-hant"
+                       // allow syntaxes like "-{zh-hans;zh-hant|XXXX}-"
+                       $variantFlags = array_intersect( array_keys( $flags ), $this->mConverter->mVariants );
+                       if ( $variantFlags ) {
+                               $variantFlags = array_flip( $variantFlags );
+                               $flags = array();
+                       }
+               }
+               $this->mVariantFlags = $variantFlags;
+               $this->mRules = $text;
+               $this->mFlags = $flags;
+       }
+
+       /**
+        * Generate conversion table.
+        * @private
+        */
+       function parseRules() {
+               $rules = $this->mRules;
+               $bidtable = array();
+               $unidtable = array();
+               $variants = $this->mConverter->mVariants;
+               $varsep_pattern = $this->mConverter->getVarSeparatorPattern();
+
+               // Split according to $varsep_pattern, but ignore semicolons from HTML entities
+               $rules = preg_replace( '/(&[#a-zA-Z0-9]+);/', "$1\x01", $rules );
+               $choice = preg_split( $varsep_pattern, $rules );
+               $choice = str_replace( "\x01", ';', $choice );
+
+               foreach ( $choice as $c ) {
+                       $v = explode( ':', $c, 2 );
+                       if ( count( $v ) != 2 ) {
+                               // syntax error, skip
+                               continue;
+                       }
+                       $to = trim( $v[1] );
+                       $v = trim( $v[0] );
+                       $u = explode( '=>', $v, 2 );
+                       // if $to is empty, strtr() could return a wrong result
+                       if ( count( $u ) == 1 && $to && in_array( $v, $variants ) ) {
+                               $bidtable[$v] = $to;
+                       } elseif ( count( $u ) == 2 ) {
+                               $from = trim( $u[0] );
+                               $v = trim( $u[1] );
+                               if ( array_key_exists( $v, $unidtable )
+                                       && !is_array( $unidtable[$v] )
+                                       && $to
+                                       && in_array( $v, $variants ) ) {
+                                       $unidtable[$v] = array( $from => $to );
+                               } elseif ( $to && in_array( $v, $variants ) ) {
+                                       $unidtable[$v][$from] = $to;
+                               }
+                       }
+                       // syntax error, pass
+                       if ( !isset( $this->mConverter->mVariantNames[$v] ) ) {
+                               $bidtable = array();
+                               $unidtable = array();
+                               break;
+                       }
+               }
+               $this->mBidtable = $bidtable;
+               $this->mUnidtable = $unidtable;
+       }
+
+       /**
+        * @private
+        *
+        * @return string
+        */
+       function getRulesDesc() {
+               $codesep = $this->mConverter->mDescCodeSep;
+               $varsep = $this->mConverter->mDescVarSep;
+               $text = '';
+               foreach ( $this->mBidtable as $k => $v ) {
+                       $text .= $this->mConverter->mVariantNames[$k] . "$codesep$v$varsep";
+               }
+               foreach ( $this->mUnidtable as $k => $a ) {
+                       foreach ( $a as $from => $to ) {
+                               $text .= $from . '⇒' . $this->mConverter->mVariantNames[$k] .
+                                       "$codesep$to$varsep";
+                       }
+               }
+               return $text;
+       }
+
+       /**
+        * Parse rules conversion.
+        * @private
+        *
+        * @param $variant
+        *
+        * @return string
+        */
+       function getRuleConvertedStr( $variant ) {
+               $bidtable = $this->mBidtable;
+               $unidtable = $this->mUnidtable;
+
+               if ( count( $bidtable ) + count( $unidtable ) == 0 ) {
+                       return $this->mRules;
+               } else {
+                       // display current variant in bidirectional array
+                       $disp = $this->getTextInBidtable( $variant );
+                       // or display current variant in fallbacks
+                       if ( !$disp ) {
+                               $disp = $this->getTextInBidtable(
+                                       $this->mConverter->getVariantFallbacks( $variant ) );
+                       }
+                       // or display current variant in unidirectional array
+                       if ( !$disp && array_key_exists( $variant, $unidtable ) ) {
+                               $disp = array_values( $unidtable[$variant] );
+                               $disp = $disp[0];
+                       }
+                       // or display frist text under disable manual convert
+                       if ( !$disp && $this->mConverter->mManualLevel[$variant] == 'disable' ) {
+                               if ( count( $bidtable ) > 0 ) {
+                                       $disp = array_values( $bidtable );
+                                       $disp = $disp[0];
+                               } else {
+                                       $disp = array_values( $unidtable );
+                                       $disp = array_values( $disp[0] );
+                                       $disp = $disp[0];
+                               }
+                       }
+                       return $disp;
+               }
+       }
+
+       /**
+        * Similar to getRuleConvertedStr(), but this prefers to use original
+        * page title if $variant === $this->mConverter->mMainLanguageCode
+        * and may return false in this case (so this title conversion rule
+        * will be ignored and the original title is shown).
+        *
+        * @since 1.22
+        * @param $variant The variant code to display page title in
+        * @return String|false The converted title or false if just page name
+        */
+       function getRuleConvertedTitle( $variant ) {
+               if ( $variant === $this->mConverter->mMainLanguageCode ) {
+                       // If a string targeting exactly this variant is set,
+                       // use it. Otherwise, just return false, so the real
+                       // page name can be shown (and because variant === main,
+                       // there'll be no further automatic conversion).
+                       $disp = $this->getTextInBidtable( $variant );
+                       if ( $disp ) {
+                               return $disp;
+                       }
+                       if ( array_key_exists( $variant, $this->mUnidtable ) ) {
+                               $disp = array_values( $this->mUnidtable[$variant] );
+                               $disp = $disp[0];
+                       }
+                       // Assigned above or still false.
+                       return $disp;
+               } else {
+                       return $this->getRuleConvertedStr( $variant );
+               }
+       }
+
+       /**
+        * Generate conversion table for all text.
+        * @private
+        */
+       function generateConvTable() {
+               // Special case optimisation
+               if ( !$this->mBidtable && !$this->mUnidtable ) {
+                       $this->mConvTable = array();
+                       return;
+               }
+
+               $bidtable = $this->mBidtable;
+               $unidtable = $this->mUnidtable;
+               $manLevel = $this->mConverter->mManualLevel;
+
+               $vmarked = array();
+               foreach ( $this->mConverter->mVariants as $v ) {
+                       /* for bidirectional array
+                               fill in the missing variants, if any,
+                               with fallbacks */
+                       if ( !isset( $bidtable[$v] ) ) {
+                               $variantFallbacks =
+                                       $this->mConverter->getVariantFallbacks( $v );
+                               $vf = $this->getTextInBidtable( $variantFallbacks );
+                               if ( $vf ) {
+                                       $bidtable[$v] = $vf;
+                               }
+                       }
+
+                       if ( isset( $bidtable[$v] ) ) {
+                               foreach ( $vmarked as $vo ) {
+                                       // use syntax: -{A|zh:WordZh;zh-tw:WordTw}-
+                                       // or -{H|zh:WordZh;zh-tw:WordTw}-
+                                       // or -{-|zh:WordZh;zh-tw:WordTw}-
+                                       // to introduce a custom mapping between
+                                       // words WordZh and WordTw in the whole text
+                                       if ( $manLevel[$v] == 'bidirectional' ) {
+                                               $this->mConvTable[$v][$bidtable[$vo]] = $bidtable[$v];
+                                       }
+                                       if ( $manLevel[$vo] == 'bidirectional' ) {
+                                               $this->mConvTable[$vo][$bidtable[$v]] = $bidtable[$vo];
+                                       }
+                               }
+                               $vmarked[] = $v;
+                       }
+                       /* for unidirectional array fill to convert tables */
+                       if ( ( $manLevel[$v] == 'bidirectional' || $manLevel[$v] == 'unidirectional' )
+                               && isset( $unidtable[$v] )
+                       ) {
+                               if ( isset( $this->mConvTable[$v] ) ) {
+                                       $this->mConvTable[$v] = array_merge( $this->mConvTable[$v], $unidtable[$v] );
+                               } else {
+                                       $this->mConvTable[$v] = $unidtable[$v];
+                               }
+                       }
+               }
+       }
+
+       /**
+        * Parse rules and flags.
+        * @param string $variant Variant language code
+        */
+       public function parse( $variant = null ) {
+               if ( !$variant ) {
+                       $variant = $this->mConverter->getPreferredVariant();
+               }
+
+               $this->parseFlags();
+               $flags = $this->mFlags;
+
+               // convert to specified variant
+               // syntax: -{zh-hans;zh-hant[;...]|<text to convert>}-
+               if ( $this->mVariantFlags ) {
+                       // check if current variant in flags
+                       if ( isset( $this->mVariantFlags[$variant] ) ) {
+                               // then convert <text to convert> to current language
+                               $this->mRules = $this->mConverter->autoConvert( $this->mRules,
+                                       $variant );
+                       } else {
+                               // if current variant no in flags,
+                               // then we check its fallback variants.
+                               $variantFallbacks =
+                                       $this->mConverter->getVariantFallbacks( $variant );
+                               if ( is_array( $variantFallbacks ) ) {
+                                       foreach ( $variantFallbacks as $variantFallback ) {
+                                               // if current variant's fallback exist in flags
+                                               if ( isset( $this->mVariantFlags[$variantFallback] ) ) {
+                                                       // then convert <text to convert> to fallback language
+                                                       $this->mRules =
+                                                               $this->mConverter->autoConvert( $this->mRules,
+                                                                       $variantFallback );
+                                                       break;
+                                               }
+                                       }
+                               }
+                       }
+                       $this->mFlags = $flags = array( 'R' => true );
+               }
+
+               if ( !isset( $flags['R'] ) && !isset( $flags['N'] ) ) {
+                       // decode => HTML entities modified by Sanitizer::removeHTMLtags
+                       $this->mRules = str_replace( '=&gt;', '=>', $this->mRules );
+                       $this->parseRules();
+               }
+               $rules = $this->mRules;
+
+               if ( !$this->mBidtable && !$this->mUnidtable ) {
+                       if ( isset( $flags['+'] ) || isset( $flags['-'] ) ) {
+                               // fill all variants if text in -{A/H/-|text} without rules
+                               foreach ( $this->mConverter->mVariants as $v ) {
+                                       $this->mBidtable[$v] = $rules;
+                               }
+                       } elseif ( !isset( $flags['N'] ) && !isset( $flags['T'] ) ) {
+                               $this->mFlags = $flags = array( 'R' => true );
+                       }
+               }
+
+               $this->mRuleDisplay = false;
+               foreach ( $flags as $flag => $unused ) {
+                       switch ( $flag ) {
+                               case 'R':
+                                       // if we don't do content convert, still strip the -{}- tags
+                                       $this->mRuleDisplay = $rules;
+                                       break;
+                               case 'N':
+                                       // process N flag: output current variant name
+                                       $ruleVar = trim( $rules );
+                                       if ( isset( $this->mConverter->mVariantNames[$ruleVar] ) ) {
+                                               $this->mRuleDisplay = $this->mConverter->mVariantNames[$ruleVar];
+                                       } else {
+                                               $this->mRuleDisplay = '';
+                                       }
+                                       break;
+                               case 'D':
+                                       // process D flag: output rules description
+                                       $this->mRuleDisplay = $this->getRulesDesc();
+                                       break;
+                               case 'H':
+                                       // process H,- flag or T only: output nothing
+                                       $this->mRuleDisplay = '';
+                                       break;
+                               case '-':
+                                       $this->mRulesAction = 'remove';
+                                       $this->mRuleDisplay = '';
+                                       break;
+                               case '+':
+                                       $this->mRulesAction = 'add';
+                                       $this->mRuleDisplay = '';
+                                       break;
+                               case 'S':
+                                       $this->mRuleDisplay = $this->getRuleConvertedStr( $variant );
+                                       break;
+                               case 'T':
+                                       $this->mRuleTitle = $this->getRuleConvertedTitle( $variant );
+                                       $this->mRuleDisplay = '';
+                                       break;
+                               default:
+                                       // ignore unknown flags (but see error case below)
+                       }
+               }
+               if ( $this->mRuleDisplay === false ) {
+                       $this->mRuleDisplay = '<span class="error">'
+                               . wfMessage( 'converter-manual-rule-error' )->inContentLanguage()->escaped()
+                               . '</span>';
+               }
+
+               $this->generateConvTable();
+       }
+
+       /**
+        * @todo FIXME: code this function :)
+        */
+       public function hasRules() {
+               // TODO:
+       }
+
+       /**
+        * Get display text on markup -{...}-
+        * @return string
+        */
+       public function getDisplay() {
+               return $this->mRuleDisplay;
+       }
+
+       /**
+        * Get converted title.
+        * @return string
+        */
+       public function getTitle() {
+               return $this->mRuleTitle;
+       }
+
+       /**
+        * Return how deal with conversion rules.
+        * @return string
+        */
+       public function getRulesAction() {
+               return $this->mRulesAction;
+       }
+
+       /**
+        * Get conversion table. (bidirectional and unidirectional
+        * conversion table)
+        * @return array
+        */
+       public function getConvTable() {
+               return $this->mConvTable;
+       }
+
+       /**
+        * Get conversion rules string.
+        * @return string
+        */
+       public function getRules() {
+               return $this->mRules;
+       }
+
+       /**
+        * Get conversion flags.
+        * @return array
+        */
+       public function getFlags() {
+               return $this->mFlags;
+       }
+}
index e2f0e91..8451401 100644 (file)
@@ -1,7 +1,5 @@
 <?php
 /**
- * Contains the LanguageConverter class and ConverterRule class
- *
  * 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
@@ -1123,485 +1121,3 @@ class LanguageConverter {
                return $this->mVarSeparatorPattern;
        }
 }
-
-/**
- * Parser for rules of language conversion , parse rules in -{ }- tag.
- * @ingroup Language
- * @author fdcn <fdcn64@gmail.com>, PhiLiP <philip.npc@gmail.com>
- */
-class ConverterRule {
-       public $mText; // original text in -{text}-
-       public $mConverter; // LanguageConverter object
-       public $mRuleDisplay = '';
-       public $mRuleTitle = false;
-       public $mRules = '';// string : the text of the rules
-       public $mRulesAction = 'none';
-       public $mFlags = array();
-       public $mVariantFlags = array();
-       public $mConvTable = array();
-       public $mBidtable = array();// array of the translation in each variant
-       public $mUnidtable = array();// array of the translation in each variant
-
-       /**
-        * Constructor
-        *
-        * @param string $text The text between -{ and }-
-        * @param LanguageConverter $converter
-        */
-       public function __construct( $text, $converter ) {
-               $this->mText = $text;
-               $this->mConverter = $converter;
-       }
-
-       /**
-        * Check if variants array in convert array.
-        *
-        * @param array|string $variants Variant language code
-        * @return string Translated text
-        */
-       public function getTextInBidtable( $variants ) {
-               $variants = (array)$variants;
-               if ( !$variants ) {
-                       return false;
-               }
-               foreach ( $variants as $variant ) {
-                       if ( isset( $this->mBidtable[$variant] ) ) {
-                               return $this->mBidtable[$variant];
-                       }
-               }
-               return false;
-       }
-
-       /**
-        * Parse flags with syntax -{FLAG| ... }-
-        * @private
-        */
-       function parseFlags() {
-               $text = $this->mText;
-               $flags = array();
-               $variantFlags = array();
-
-               $sepPos = strpos( $text, '|' );
-               if ( $sepPos !== false ) {
-                       $validFlags = $this->mConverter->mFlags;
-                       $f = StringUtils::explode( ';', substr( $text, 0, $sepPos ) );
-                       foreach ( $f as $ff ) {
-                               $ff = trim( $ff );
-                               if ( isset( $validFlags[$ff] ) ) {
-                                       $flags[$validFlags[$ff]] = true;
-                               }
-                       }
-                       $text = strval( substr( $text, $sepPos + 1 ) );
-               }
-
-               if ( !$flags ) {
-                       $flags['S'] = true;
-               } elseif ( isset( $flags['R'] ) ) {
-                       $flags = array( 'R' => true );// remove other flags
-               } elseif ( isset( $flags['N'] ) ) {
-                       $flags = array( 'N' => true );// remove other flags
-               } elseif ( isset( $flags['-'] ) ) {
-                       $flags = array( '-' => true );// remove other flags
-               } elseif ( count( $flags ) == 1 && isset( $flags['T'] ) ) {
-                       $flags['H'] = true;
-               } elseif ( isset( $flags['H'] ) ) {
-                       // replace A flag, and remove other flags except T
-                       $temp = array( '+' => true, 'H' => true );
-                       if ( isset( $flags['T'] ) ) {
-                               $temp['T'] = true;
-                       }
-                       if ( isset( $flags['D'] ) ) {
-                               $temp['D'] = true;
-                       }
-                       $flags = $temp;
-               } else {
-                       if ( isset( $flags['A'] ) ) {
-                               $flags['+'] = true;
-                               $flags['S'] = true;
-                       }
-                       if ( isset( $flags['D'] ) ) {
-                               unset( $flags['S'] );
-                       }
-                       // try to find flags like "zh-hans", "zh-hant"
-                       // allow syntaxes like "-{zh-hans;zh-hant|XXXX}-"
-                       $variantFlags = array_intersect( array_keys( $flags ), $this->mConverter->mVariants );
-                       if ( $variantFlags ) {
-                               $variantFlags = array_flip( $variantFlags );
-                               $flags = array();
-                       }
-               }
-               $this->mVariantFlags = $variantFlags;
-               $this->mRules = $text;
-               $this->mFlags = $flags;
-       }
-
-       /**
-        * Generate conversion table.
-        * @private
-        */
-       function parseRules() {
-               $rules = $this->mRules;
-               $bidtable = array();
-               $unidtable = array();
-               $variants = $this->mConverter->mVariants;
-               $varsep_pattern = $this->mConverter->getVarSeparatorPattern();
-
-               // Split according to $varsep_pattern, but ignore semicolons from HTML entities
-               $rules = preg_replace( '/(&[#a-zA-Z0-9]+);/', "$1\x01", $rules );
-               $choice = preg_split( $varsep_pattern, $rules );
-               $choice = str_replace( "\x01", ';', $choice );
-
-               foreach ( $choice as $c ) {
-                       $v = explode( ':', $c, 2 );
-                       if ( count( $v ) != 2 ) {
-                               // syntax error, skip
-                               continue;
-                       }
-                       $to = trim( $v[1] );
-                       $v = trim( $v[0] );
-                       $u = explode( '=>', $v, 2 );
-                       // if $to is empty, strtr() could return a wrong result
-                       if ( count( $u ) == 1 && $to && in_array( $v, $variants ) ) {
-                               $bidtable[$v] = $to;
-                       } elseif ( count( $u ) == 2 ) {
-                               $from = trim( $u[0] );
-                               $v = trim( $u[1] );
-                               if ( array_key_exists( $v, $unidtable )
-                                       && !is_array( $unidtable[$v] )
-                                       && $to
-                                       && in_array( $v, $variants ) ) {
-                                       $unidtable[$v] = array( $from => $to );
-                               } elseif ( $to && in_array( $v, $variants ) ) {
-                                       $unidtable[$v][$from] = $to;
-                               }
-                       }
-                       // syntax error, pass
-                       if ( !isset( $this->mConverter->mVariantNames[$v] ) ) {
-                               $bidtable = array();
-                               $unidtable = array();
-                               break;
-                       }
-               }
-               $this->mBidtable = $bidtable;
-               $this->mUnidtable = $unidtable;
-       }
-
-       /**
-        * @private
-        *
-        * @return string
-        */
-       function getRulesDesc() {
-               $codesep = $this->mConverter->mDescCodeSep;
-               $varsep = $this->mConverter->mDescVarSep;
-               $text = '';
-               foreach ( $this->mBidtable as $k => $v ) {
-                       $text .= $this->mConverter->mVariantNames[$k] . "$codesep$v$varsep";
-               }
-               foreach ( $this->mUnidtable as $k => $a ) {
-                       foreach ( $a as $from => $to ) {
-                               $text .= $from . '⇒' . $this->mConverter->mVariantNames[$k] .
-                                       "$codesep$to$varsep";
-                       }
-               }
-               return $text;
-       }
-
-       /**
-        * Parse rules conversion.
-        * @private
-        *
-        * @param $variant
-        *
-        * @return string
-        */
-       function getRuleConvertedStr( $variant ) {
-               $bidtable = $this->mBidtable;
-               $unidtable = $this->mUnidtable;
-
-               if ( count( $bidtable ) + count( $unidtable ) == 0 ) {
-                       return $this->mRules;
-               } else {
-                       // display current variant in bidirectional array
-                       $disp = $this->getTextInBidtable( $variant );
-                       // or display current variant in fallbacks
-                       if ( !$disp ) {
-                               $disp = $this->getTextInBidtable(
-                                               $this->mConverter->getVariantFallbacks( $variant ) );
-                       }
-                       // or display current variant in unidirectional array
-                       if ( !$disp && array_key_exists( $variant, $unidtable ) ) {
-                               $disp = array_values( $unidtable[$variant] );
-                               $disp = $disp[0];
-                       }
-                       // or display frist text under disable manual convert
-                       if ( !$disp && $this->mConverter->mManualLevel[$variant] == 'disable' ) {
-                               if ( count( $bidtable ) > 0 ) {
-                                       $disp = array_values( $bidtable );
-                                       $disp = $disp[0];
-                               } else {
-                                       $disp = array_values( $unidtable );
-                                       $disp = array_values( $disp[0] );
-                                       $disp = $disp[0];
-                               }
-                       }
-                       return $disp;
-               }
-       }
-
-       /**
-        * Similar to getRuleConvertedStr(), but this prefers to use original
-        * page title if $variant === $this->mConverter->mMainLanguageCode
-        * and may return false in this case (so this title conversion rule
-        * will be ignored and the original title is shown).
-        *
-        * @since 1.22
-        * @param $variant The variant code to display page title in
-        * @return String|false The converted title or false if just page name
-        */
-       function getRuleConvertedTitle( $variant ) {
-               if ( $variant === $this->mConverter->mMainLanguageCode ) {
-                       // If a string targeting exactly this variant is set,
-                       // use it. Otherwise, just return false, so the real
-                       // page name can be shown (and because variant === main,
-                       // there'll be no further automatic conversion).
-                       $disp = $this->getTextInBidtable( $variant );
-                       if ( $disp ) {
-                               return $disp;
-                       }
-                       if ( array_key_exists( $variant, $this->mUnidtable ) ) {
-                               $disp = array_values( $this->mUnidtable[$variant] );
-                               $disp = $disp[0];
-                       }
-                       // Assigned above or still false.
-                       return $disp;
-               } else {
-                       return $this->getRuleConvertedStr( $variant );
-               }
-       }
-
-       /**
-        * Generate conversion table for all text.
-        * @private
-        */
-       function generateConvTable() {
-               // Special case optimisation
-               if ( !$this->mBidtable && !$this->mUnidtable ) {
-                       $this->mConvTable = array();
-                       return;
-               }
-
-               $bidtable = $this->mBidtable;
-               $unidtable = $this->mUnidtable;
-               $manLevel = $this->mConverter->mManualLevel;
-
-               $vmarked = array();
-               foreach ( $this->mConverter->mVariants as $v ) {
-                       /* for bidirectional array
-                               fill in the missing variants, if any,
-                               with fallbacks */
-                       if ( !isset( $bidtable[$v] ) ) {
-                               $variantFallbacks =
-                                       $this->mConverter->getVariantFallbacks( $v );
-                               $vf = $this->getTextInBidtable( $variantFallbacks );
-                               if ( $vf ) {
-                                       $bidtable[$v] = $vf;
-                               }
-                       }
-
-                       if ( isset( $bidtable[$v] ) ) {
-                               foreach ( $vmarked as $vo ) {
-                                       // use syntax: -{A|zh:WordZh;zh-tw:WordTw}-
-                                       // or -{H|zh:WordZh;zh-tw:WordTw}-
-                                       // or -{-|zh:WordZh;zh-tw:WordTw}-
-                                       // to introduce a custom mapping between
-                                       // words WordZh and WordTw in the whole text
-                                       if ( $manLevel[$v] == 'bidirectional' ) {
-                                               $this->mConvTable[$v][$bidtable[$vo]] = $bidtable[$v];
-                                       }
-                                       if ( $manLevel[$vo] == 'bidirectional' ) {
-                                               $this->mConvTable[$vo][$bidtable[$v]] = $bidtable[$vo];
-                                       }
-                               }
-                               $vmarked[] = $v;
-                       }
-                       /* for unidirectional array fill to convert tables */
-                       if ( ( $manLevel[$v] == 'bidirectional' || $manLevel[$v] == 'unidirectional' )
-                               && isset( $unidtable[$v] )
-                       ) {
-                               if ( isset( $this->mConvTable[$v] ) ) {
-                                       $this->mConvTable[$v] = array_merge( $this->mConvTable[$v], $unidtable[$v] );
-                               } else {
-                                       $this->mConvTable[$v] = $unidtable[$v];
-                               }
-                       }
-               }
-       }
-
-       /**
-        * Parse rules and flags.
-        * @param string $variant Variant language code
-        */
-       public function parse( $variant = null ) {
-               if ( !$variant ) {
-                       $variant = $this->mConverter->getPreferredVariant();
-               }
-
-               $this->parseFlags();
-               $flags = $this->mFlags;
-
-               // convert to specified variant
-               // syntax: -{zh-hans;zh-hant[;...]|<text to convert>}-
-               if ( $this->mVariantFlags ) {
-                       // check if current variant in flags
-                       if ( isset( $this->mVariantFlags[$variant] ) ) {
-                               // then convert <text to convert> to current language
-                               $this->mRules = $this->mConverter->autoConvert( $this->mRules,
-                                       $variant );
-                       } else {
-                               // if current variant no in flags,
-                               // then we check its fallback variants.
-                               $variantFallbacks =
-                                       $this->mConverter->getVariantFallbacks( $variant );
-                               if ( is_array( $variantFallbacks ) ) {
-                                       foreach ( $variantFallbacks as $variantFallback ) {
-                                               // if current variant's fallback exist in flags
-                                               if ( isset( $this->mVariantFlags[$variantFallback] ) ) {
-                                                       // then convert <text to convert> to fallback language
-                                                       $this->mRules =
-                                                               $this->mConverter->autoConvert( $this->mRules,
-                                                                       $variantFallback );
-                                                       break;
-                                               }
-                                       }
-                               }
-                       }
-                       $this->mFlags = $flags = array( 'R' => true );
-               }
-
-               if ( !isset( $flags['R'] ) && !isset( $flags['N'] ) ) {
-                       // decode => HTML entities modified by Sanitizer::removeHTMLtags
-                       $this->mRules = str_replace( '=&gt;', '=>', $this->mRules );
-                       $this->parseRules();
-               }
-               $rules = $this->mRules;
-
-               if ( !$this->mBidtable && !$this->mUnidtable ) {
-                       if ( isset( $flags['+'] ) || isset( $flags['-'] ) ) {
-                               // fill all variants if text in -{A/H/-|text} without rules
-                               foreach ( $this->mConverter->mVariants as $v ) {
-                                       $this->mBidtable[$v] = $rules;
-                               }
-                       } elseif ( !isset( $flags['N'] ) && !isset( $flags['T'] ) ) {
-                               $this->mFlags = $flags = array( 'R' => true );
-                       }
-               }
-
-               $this->mRuleDisplay = false;
-               foreach ( $flags as $flag => $unused ) {
-                       switch ( $flag ) {
-                               case 'R':
-                                       // if we don't do content convert, still strip the -{}- tags
-                                       $this->mRuleDisplay = $rules;
-                                       break;
-                               case 'N':
-                                       // process N flag: output current variant name
-                                       $ruleVar = trim( $rules );
-                                       if ( isset( $this->mConverter->mVariantNames[$ruleVar] ) ) {
-                                               $this->mRuleDisplay = $this->mConverter->mVariantNames[$ruleVar];
-                                       } else {
-                                               $this->mRuleDisplay = '';
-                                       }
-                                       break;
-                               case 'D':
-                                       // process D flag: output rules description
-                                       $this->mRuleDisplay = $this->getRulesDesc();
-                                       break;
-                               case 'H':
-                                       // process H,- flag or T only: output nothing
-                                       $this->mRuleDisplay = '';
-                                       break;
-                               case '-':
-                                       $this->mRulesAction = 'remove';
-                                       $this->mRuleDisplay = '';
-                                       break;
-                               case '+':
-                                       $this->mRulesAction = 'add';
-                                       $this->mRuleDisplay = '';
-                                       break;
-                               case 'S':
-                                       $this->mRuleDisplay = $this->getRuleConvertedStr( $variant );
-                                       break;
-                               case 'T':
-                                       $this->mRuleTitle = $this->getRuleConvertedTitle( $variant );
-                                       $this->mRuleDisplay = '';
-                                       break;
-                               default:
-                                       // ignore unknown flags (but see error case below)
-                       }
-               }
-               if ( $this->mRuleDisplay === false ) {
-                       $this->mRuleDisplay = '<span class="error">'
-                               . wfMessage( 'converter-manual-rule-error' )->inContentLanguage()->escaped()
-                               . '</span>';
-               }
-
-               $this->generateConvTable();
-       }
-
-       /**
-        * @todo FIXME: code this function :)
-        */
-       public function hasRules() {
-               // TODO:
-       }
-
-       /**
-        * Get display text on markup -{...}-
-        * @return string
-        */
-       public function getDisplay() {
-               return $this->mRuleDisplay;
-       }
-
-       /**
-        * Get converted title.
-        * @return string
-        */
-       public function getTitle() {
-               return $this->mRuleTitle;
-       }
-
-       /**
-        * Return how deal with conversion rules.
-        * @return string
-        */
-       public function getRulesAction() {
-               return $this->mRulesAction;
-       }
-
-       /**
-        * Get conversion table. (bidirectional and unidirectional
-        * conversion table)
-        * @return array
-        */
-       public function getConvTable() {
-               return $this->mConvTable;
-       }
-
-       /**
-        * Get conversion rules string.
-        * @return string
-        */
-       public function getRules() {
-               return $this->mRules;
-       }
-
-       /**
-        * Get conversion flags.
-        * @return array
-        */
-       public function getFlags() {
-               return $this->mFlags;
-       }
-}
index a0b428f..43bd79a 100644 (file)
     "accountcreated": "Ureuëng ngui ka teupeugöt",
     "accountcreatedtext": "Ureuëng ngui keu [[{{ns:User}}:$1|$1]]([[{{ns:User talk}}:$1|talk]]) ka teupeugöt.",
     "createaccount-title": "Peugöt ureuëng ngui keu {{SITENAME}}",
-    "usernamehasherror": "Nan ureueng ngui han jeut na tanda pageue",
     "login-throttled": "Droeneuh ka lé that neuujoe tamöng.\nNeuprèh $1 sigohlom neuujoe lom.",
     "login-abort-generic": "Log tamöng droëneuh han meuhasé- Ngon ka geupeubateuë.",
     "loginlanguagelabel": "Bahsa: $1",
     "prefs-skin": "Kulét",
     "skin-preview": "Eu dilèe",
     "datedefault": "Hana geunalak",
-    "prefs-datetime": "Uroe ngön jeum",
     "prefs-user-pages": "Laman ureueng ngui",
     "prefs-personal": "Profil ureueng ngui",
     "prefs-rc": "Ban meuubah",
     "reuploaddesc": "Riwang u laman peutamöng",
     "uploadnologin": "Hana lom meutamöng",
     "uploadnologintext": "Droeneuh suwah $1 keu neupeutamöng beureukaih.",
-    "uploadlog": "ceunatat peutamöng",
     "uploadlogpage": "Log peutamöng",
     "uploadlogpagetext": "Nyoe nakeuh dapeuta peutamöng barô.\nEu [[Special:NewFiles|galeri beureukaih barô]] keu seuneudeuh barô.",
     "filename": "Nan beureukaih",
     "filedesc": "Ehtisa",
     "fileuploadsummary": "Éhtisa:",
     "filesource": "Nè",
-    "uploadedfiles": "Beureukaih nyang meupeutamöng",
     "minlength1": "Nan beureukaih beuna saboh haraih.",
     "illegalfilename": "Nan beureukaih \"$1\" meuasoe seunurat nyang han jeut na bak nan. Tulông gantoe nan nyan sigohlom neupeutamöng lom.",
     "filename-toolong": "Nan beureukaih han jeut leubèh nibak 240 bita.",
     "filehist-dimensions": "Dimènsi",
     "filehist-filesize": "Rayek beureukah",
     "filehist-comment": "Seuneu'ôt",
-    "filehist-missing": "Beureukaih hana meutumèe",
     "imagelinks": "Seuneungui beureukaih",
     "linkstoimage": "{{PLURAL:$1|laman}} di yup nyoë mupawôt u beureukaih nyoë:",
     "nolinkstoimage": "Hana laman nyang na meupawôt u beureukaih nyoë.",
index cd0ec77..b01ffee 100644 (file)
     "disclaimers": "अस्वीकरण",
     "disclaimerpage": "Project:साधारण अस्वीकरण",
     "edithelp": "संपादन मॆं सहायता",
-    "helppage": "Help:सहायता",
     "mainpage": "मुख्य पृष्ठ",
     "privacy": "गोपनीयता नीति",
     "privacypage": "Project:गोपनीयता नीति",
index 2218c08..3ad3f59 100644 (file)
     "print": "اطبع",
     "view": "مطالعة",
     "edit": "عدل",
+    "edit-local": "تعديل الوصف المحلي",
     "create": "أنشئ",
+    "create-local": "أضف وصفا محليا",
     "editthispage": "عدل هذه الصفحة",
     "create-this-page": "أنشئ صفحة بهذا العنوان",
     "delete": "حذف",
     "pool-timeout": "انتهت مهلة القفل",
     "pool-queuefull": "الطابور ملآن",
     "pool-errorunknown": "خطأ غير معروف",
+    "pool-servererror": "خدمة العداد غير متاحة ( $1 ).",
     "aboutsite": "عن {{SITENAME}}",
     "aboutpage": "Project:عن",
     "copyright": "المحتوى منشور وفق $1 إن لم يرد خلاف ذلك.",
     "accountcreatedtext": "أنشئ حساب مستخدم ل[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|نقاش]]).",
     "createaccount-title": "إنشاء حساب في {{SITENAME}}",
     "createaccount-text": "شخص ما أنشأ حسابا لعنوان بريدك الإلكتروني في {{SITENAME}} ($4) بالاسم \"$2\"، كلمة السر \"$3\".\nينبغي عليك تسجيل الدخول وتغيير كلمة السر الخاصة بك الآن.\n\nيمكنك تجاهل هذه الرسالة، لو تم إنشاء هذا الحساب بالخطأ.",
-    "usernamehasherror": "لا يمكن أن يحتوي اسم المستخدم على محارف هاش",
     "login-throttled": "لقد قمت بمحاولات دخول كثيرة جدا مؤخرا.\nمن فضلك انتظر $1 قبل المحاولة مرة أخرى.",
     "login-abort-generic": "لم ينجح ولوجك - تم إجهاضه",
     "loginlanguagelabel": "اللغة: $1",
     "resetpass-abort-generic": "منعت مُلحقة إتمام صيرورة تغيير كلمة السّر.",
     "resetpass-expired": "انتهت مدة صلاحية كلمة السر الخاصة بك. الرجاء تعيين كلمة سر جديدة لتسجيل الدخول.",
     "resetpass-expired-soft": "انتهت مدة صلاحية كلمة السر الخاصة بك. الرجاء تعيين كلمة سر جديدة الآن أو النقر على زر إلغاء لإعادة تعيين كلمة السر لاحقاً.",
+    "resetpass-validity-soft": "كلمة السر الخاصة بك غير مقبولة :  $1 \n\nرجاءا اختر كلمة سر جديدة الآن، أو انقر فوق \"{{int:resetpass-submit-cancel}}\" لتغييرها في وقت لاحق.",
     "passwordreset": "إعادة ضبط كلمة السر",
     "passwordreset-text-one": "أكمل هذا النموذج لإعادة ضبط كلمة السر الخاصة بك.",
     "passwordreset-text-many": "{{PLURAL:$1||املأ الحقل لتستعيد كلمة السر|املأ أحد الحقلين لتستعيد كلمة السر|املأ أحد الحقول لتستعيد كلمة السر}}.",
     "prefs-skin": "واجهة",
     "skin-preview": "عرض مسبق",
     "datedefault": "لا تفضيل",
-    "prefs-datetime": "وقت وتاريخ",
     "prefs-labs": "مزايا مختبرية",
     "prefs-user-pages": "صفحات المستخدمين",
     "prefs-personal": "ملف المستخدم",
     "upload-permitted": "أنواع الملفات المسموحة: $1.",
     "upload-preferred": "أنواع الملفات المفضلة: $1.",
     "upload-prohibited": "أنواع الملفات الممنوعة: $1.",
-    "uploadlog": "سجل الرفع",
     "uploadlogpage": "سجل الرفع",
     "uploadlogpagetext": "في الأسفل قائمة بأحدث عمليات رفع الملفات.\nانظر [[Special:NewFiles|معرض الملفات الجديدة]] لعرض بصري أكثر",
     "filename": "اسم الملف",
     "filereuploadsummary": "تغييرات الملف:",
     "filestatus": "حالة حقوق النسخ:",
     "filesource": "مصدر:",
-    "uploadedfiles": "الملفات المرفوعة",
     "ignorewarning": "تجاهل التحذير واحفظ الملف على أية حال.",
     "ignorewarnings": "تجاهل أية تحذيرات",
     "minlength1": "أسماء الملفات يجب أن تتكون من حرف واحد على الأقل.",
     "overwroteimage": "رفع نسخة جديدة من \"[[$1]]\"",
     "uploaddisabled": "تم تعطيل الرفع",
     "copyuploaddisabled": "الرفع من مسار معطل.",
-    "uploadfromurl-queued": "رفعك قد أضيف إلى الطابور",
     "uploaddisabledtext": "رفع الملفات معطل.",
     "php-uploaddisabledtext": "رفع ملفات PHP معطل. من فضلك تحقق من إعدادات رفع الملفات.",
     "uploadscripted": "هذا الملف يضم كود HTML أو كود آخر يمكن أن يفسره متصفح الوب بطريقة خاطئة.",
+    "uploadscriptednamespace": "يحتوي ملف SVG هذا على اسم نطاق غير مشروع \" $1 \"",
     "uploadinvalidxml": "تعذر تحليل XML في الملف المرفوع.",
     "uploadvirus": "الملف يحتوي على فيروس! التفاصيل: $1",
     "uploadjava": "يحتوي ملف ZIP هذا على ملفات جافا .class.\nلا يسمح برفع ملفات جافا لأنها تتيح تخطي القيود الأمنية.",
     "upload-misc-error": "خطأ غير معروف في الرفع",
     "upload-misc-error-text": "حدث خطأ غير معروف أثناء عملية الرفع.\nمن فضلك تاكد أن المسار صحيح ومن الممكن الدخول عليه ثم حاول مرة أخرى.\nإذا استمرت المشكلة في الحدوث، اتصل [[Special:ListUsers/sysop|بإداري]].",
     "upload-too-many-redirects": "احتوى المسار تحويلات كثيرة جدا",
-    "upload-unknown-size": "حجم غير معروف",
     "upload-http-error": "صودف خطأ HTTP: $1",
     "upload-copy-upload-invalid-domain": "رفع النسخ غير متاح من هذا الموقع",
     "backend-fail-stream": "لا يمكن عرض الملف $1.",
     "img-auth-streaming": "عرض \"$1\".",
     "img-auth-public": "وظيفة img_auth.php هي لإخراج الملفات من ويكي سري.\nهذا الويكي مضبوط كويكي علني.\nلتأمين إضافي، img_auth.php تم تعطيلها.",
     "img-auth-noread": "لا يملك المستخدم صلاحية قراءة \"$1\".",
-    "img-auth-bad-query-string": "يحتوي المسار عبارة استعلام غير صالحة.",
     "http-invalid-url": "مسار غير صالح: $1",
     "http-invalid-scheme": "المسارات ذات البروتكول \"$1\" غير مدعومة.",
     "http-request-error": "فشل طلب HTTP لسبب غير معروف.",
     "filehist-dimensions": "الأبعاد",
     "filehist-filesize": "حجم الملف",
     "filehist-comment": "تعليق",
-    "filehist-missing": "ملف مفقود",
     "imagelinks": "استخدام الملف",
     "linkstoimage": "{{PLURAL:$1||الصفحة التالية تصل|الصفحتان التاليتان تصلان|ال$1 صفحات التالية تصل|ال$1 صفحة التالية تصل}} إلى هذا الملف:",
     "linkstoimage-more": "أكثر من {{PLURAL:$1||صفحة واحدة تصل|صفحتين تصلان|$1 صفحات تصل|$1 صفحة تصل}} إلى هذا الملف.\nالقائمة التالية تعرض فقط {{PLURAL:$1||أول صفحة تصل|أول صفحتين تصلان|أول $1 صفحات تصل|أول $1 صفحة تصل}} إلى هذا الملف.\n[[Special:WhatLinksHere/$2|قائمة كاملة]] متوفرة.",
     "download": "تنزيل",
     "unwatchedpages": "صفحات غير مراقبة",
     "listredirects": "عرض التحويلات",
+    "listduplicatedfiles": "قائمة الملفات مع المكررات",
     "unusedtemplates": "قوالب غير مستخدمة",
     "unusedtemplatestext": "هذه الصفحة تعرض كل الصفحات في نطاق {{ns:template}} غير المضمنة في صفحة أخرى.\nتذكر بأن تتحقق من الوصلات الأخرى للقوالب قبل حذفها.",
     "unusedtemplateswlh": "وصلات أخرى",
     "emailuser-title-notarget": "مراسلة المستخدم",
     "emailpage": "إرسال رسالة للمستخدم",
     "emailpagetext": "يمكنك استخدام الاستمارة بالأسفل لإرسال رسالة بريد إلكتروني إلى {{GENDER:$1|هذا المستخدم|هذه المستخدمة}}.\nسيظهر عنوان البريد الإلكتروني الذي أدخلته في [[Special:Preferences|تفضيلاتك]] كعنوان المرسل في البريد الإلكتروني، كي يستطيع المتلقي الرد عليك مباشرة.",
-    "usermailererror": "جسم البريد أرجع خطأ:",
     "defemailsubject": "رسالة {{SITENAME}} من المستخدم \"$1\"",
     "usermaildisabled": "بريد المستخدم الإلكتروني معطل",
     "usermaildisabledtext": "لا يمكنك إرسال بريد إلكتروني إلى مستخدمين آخرين على هذه الويكي",
     "noemailtitle": "لا يوجد عنوان بريد إلكتروني",
     "noemailtext": "لم يحدد هذا المستخدم عنوان بريد إلكتروني صحيح.",
-    "nowikiemailtitle": "لا بريد إلكتروني مسموح به",
     "nowikiemailtext": "هذا المستخدم اختار ألا يستقبل البريد الإلكتروني من المستخدمين الآخرين.",
     "emailnotarget": "المستلم ليس مستخدمًا موجودًا أو ليس مستخدمًا صحيحًا.",
     "emailtarget": "أدخل اسم مستخدم المستلم",
     "watching": "يراقب...",
     "unwatching": "إزالة المراقبة...",
     "watcherrortext": "حدث خطأ أثناء تغيير إعدادات الرصد الخاصة بك \"$1\".",
-    "enotif_mailer": "نظام {{SITENAME}} البريدي للإخطارات",
     "enotif_reset": "علم على كل الصفحات كمزارة",
     "enotif_impersonal_salutation": "مستخدم {{SITENAME}}",
     "enotif_subject_deleted": "الصفحة {{SITENAME}} $1 حذفها {{الجنس: $2 | $2 }}",
     "excontent": "المحتوى كان: '$1'",
     "excontentauthor": "المحتوى كان: '$1' (والمساهم الوحيد كان '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "المحتوى قبل الإفراغ كان: '$1'",
-    "exblank": "الصفحة كانت فارغة",
     "delete-confirm": "حذف \"$1\"",
     "delete-legend": "حذف",
     "historywarning": "'''تحذير:''' الصفحة التي توشك على حذفها لها تاريخ فيه {{PLURAL:$1||مراجعة واحدة|مراجعتان|$1 مراجعات|$1 مراجعة}} تقريبا:",
     "importunknownsource": "نوع مصدر استيراد مجهول",
     "importcantopen": "لم يمكن فتح ملف الاستيراد",
     "importbadinterwiki": "وصلة إنترويكي سيئة",
-    "importnotext": "فارغ أو لا نص",
     "importsuccess": "الاستيراد انتهى!",
-    "importhistoryconflict": "هناك مراجعة تاريخ متعارضة موجودة (ربما تكون قد استوردت هذه الصفحة من قبل)",
     "importnosources": "لم يتم تعريف مصادر للاستيراد عبر الويكي وعمليات رفع التاريخ المباشرة معطلة.",
     "importnofile": "لم يتم رفع ملف استيراد.",
     "importuploaderrorsize": "رفع ملف الاستيراد فشل.\nالملف أكبر من حجم الرفع المسموح.",
index d19963f..2653a5f 100644 (file)
     "accountcreatedtext": "ܐܬܒܪܝ ܚܘܫܒܢܐ ܕܡܦܠܚܢܐ ܠ $1.",
     "createaccount-title": "ܒܪܝܐ ܕܚܘܫܒܢܐ ܒ {{SITENAME}}",
     "loginlanguagelabel": "ܠܫܢܐ: $1",
+    "pt-login": "ܥܘܠ",
+    "pt-login-button": "ܥܘܠ",
+    "pt-createaccount": "ܒܪܝ ܚܘܫܒܢܐ",
+    "pt-userlogout": "ܦܠܘܛ",
     "changepassword": "ܫܚܠܦ ܡܠܬܐ ܕܥܠܠܐ",
     "resetpass_header": "ܫܚܠܦ ܡܠܬܐ ܕܥܠܠܐ ܕܚܘܫܒܢܐ",
     "oldpassword": "ܡܠܬܐ ܕܥܠܠܐ ܥܬܝܩܬܐ:",
     "prefs-skin": "ܓܠܕܐ",
     "skin-preview": "ܚܝܪܐ ܩܕܡܝܐ",
     "datedefault": "ܠܐ ܨܒܝܢܝܘܬܐ",
-    "prefs-datetime": "ܣܝܩܘܡܐ ܘܙܒܢܐ",
     "prefs-personal": "ܦܘܓܪܦܐ ܕܡܦܠܚܢܐ",
     "prefs-rc": "ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ",
     "prefs-watchlist": "ܪ̈ܗܝܬܐ",
     "rcnotefrom": "ܠܬܚܬ ܫܘܚܠܦ̈ܐ ܕܡܢ '''$2''' (ܥܕ '''$1''' ܡܬܚܙܝܢ̈ܐ).",
     "rclistfrom": "ܚܘܝ ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ ܡܢ $1",
     "rcshowhideminor": "$1 ܫܘܚܠܦ̈ܐ ܙܥܘܪ̈ܐ",
+    "rcshowhideminor-show": "ܚܘܝ",
+    "rcshowhideminor-hide": "ܛܫܝ",
     "rcshowhidebots": "$1 ܒܘܬ̈ܐ (Bots)",
+    "rcshowhidebots-show": "ܚܘܝ",
+    "rcshowhidebots-hide": "ܛܫܝ",
     "rcshowhideliu": "$1 ܡܦܠܚܢ̈ܐ ܡܣܓܠ̈ܐ",
+    "rcshowhideliu-show": "ܚܘܝ",
+    "rcshowhideliu-hide": "ܛܫܝ",
     "rcshowhideanons": "$1 ܡܦܠܚܢܐ ܠܐ ܝܕܝܥܐ",
+    "rcshowhideanons-show": "ܚܘܝ",
+    "rcshowhideanons-hide": "ܛܫܝ",
     "rcshowhidepatr": "$1 ܫܘܚܠܦ̈ܐ ܬܢܝ̈ܐ",
+    "rcshowhidepatr-show": "ܚܘܝ",
+    "rcshowhidepatr-hide": "ܛܫܝ",
     "rcshowhidemine": "$1 ܫܘܚܠܦ̈ܝ",
+    "rcshowhidemine-show": "ܚܘܝ",
+    "rcshowhidemine-hide": "ܛܫܝ",
     "rclinks": "ܚܘܝ $1 ܫܘܚܠܦ̈ܐ ܐܚܪ̈ܝܐ ܒ $2 ܝܘܡܬ̈ܐ ܐܚܪ̈ܝܐ<br />$3",
     "diff": "ܦܘܪܫܐ",
     "hist": "ܬܫܥܝܬܐ",
     "uploadbtn": "ܐܣܩ ܠܦܦܐ",
     "uploadnologin": "ܠܝܬܝܟ ܥܠܝܠܐ",
     "uploaderror": "ܦܘܕܐ ܒܡܣܩܬܐ",
-    "uploadlog": "ܣܓܠܐ ܕܣܠܩܐ",
     "uploadlogpage": "ܣܓܠܐ ܕܣܠܩܐ",
     "filename": "ܫܡܐ ܕܠܦܦܐ",
     "filedesc": "ܦܣܝܩܬ̈ܐ",
     "upload-proto-error": "ܦܪܘܛܘܩܘܠ ܠܐ ܬܪܝܨܐ",
     "upload-file-error": "ܦܘܕܐ ܓܘܝܐ",
     "upload-misc-error": "ܦܘܕܐ ܠܐ ܝܕܝܥܐ ܒܐܣܩܬܐ ܕܠܦܦܐ",
-    "upload-unknown-size": "ܥܓܪܐ ܠܐ ܝܕܝܥܐ",
     "img-auth-nofile": "ܠܦܦܐ \"$1\" ܠܝܬ ܠܗ ܐܝܬܘܬܐ.",
     "http-read-error": "HTTP ܦܘܕܐ ܒܩܪܝܬܐ.",
     "http-curl-error": "ܦܘܕܐ ܒܫܟܚܐ ܕURL: $1",
     "nowatchlist": "ܠܝܬ ܠܟ ܡܕܡ ܒܪ̈ܗܝܬܐ ܕܝܠܟ",
     "watchlistanontext": "$1 ܠܚܙܝܐ ܐܘ ܫܚܠܦܬܐ ܕܦܐܬܬ̈ܐ ܒܪ̈ܗܝܬܟ.",
     "watchnologin": "ܠܝܬܝܟ ܥܠܝܠܐ",
-    "watchnologintext": "ܐܠܨܐ ܕܬܗܘܐ [[Special:UserLogin|ܥܠܝܠܐ]] ܠܫܚܠܦܬܐ ܕܪ̈ܗܝܬܟ.",
     "addwatch": "ܐܘܣܦ ܥܠ ܪ̈ܗܝܬܝ",
     "addedwatchtext": "ܦܐܬܐ ܕ\"[[:$1]]\" ܐܬܬܘܣܦܬ ܠ[[Special:Watchlist|ܪ̈ܗܝܬܟ]].\nܐܝܢܐ ܫܘܚܠܦܐ ܥܠ ܦܐܬܐ ܗܕܐ ܒܕܥܬܝܕ ܬܬܓܠܚ ܥܡ ܦܐܬܐ ܕܡܡܠܠܐ ܕܝܠܗ ܬܡܢ.",
     "removewatch": "ܫܩܘܠ ܡܢ ܪ̈ܗܝܬܝ",
     "confirm": "ܫܪܪ",
     "excontent": "ܚܒܝܫܬ̈ܐ ܗܘ̈ܝ: '$1'",
     "excontentauthor": "ܚܒܝܫܬ̈ܐ ܗܘ̈ܝ: '$1' (ܘܫܘܬܦܢܐ ܝܚܝܕܝܐ ܗܘܐ '[[Special:Contributions/$2|$2]]')",
-    "exblank": "ܦܐܬܐ ܣܦܝܩܬܐ ܗܘܐ",
     "delete-confirm": "ܫܘܦ \"$1\"",
     "delete-legend": "ܫܘܦ",
     "actioncomplete": "ܥܡܠܝܬܐ ܓܡܪܬ",
     "import-upload-filename": "ܫܡܐ ܕܠܦܦܐ:",
     "import-revision-count": "$1 {{PLURAL:$1|ܬܢܝܬܐ |ܬܢܝܬ̈ܐ}}",
     "importnopages": "ܠܝܬ ܦܐܬܬ̈ܐ ܠܡܥܠܢܘܬܐ.",
-    "importnotext": "ܣܦܝܩܐ ܐܘ ܠܝܬ ܒܗ ܟܬܒܬܐ",
     "importsuccess": "ܡܥܠܢܘܬܐ ܓܡܪܬ",
     "import-noarticle": "ܠܝܬ ܦܐܬܬ̈ܐ ܠܡܥܠܢܘܬܐ!",
     "import-upload": "ܐܣܩ ܓܠܝܬ̈ܐ  ܕ XML",
index 389d48f..70c8eb5 100644 (file)
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]])ৰ কাৰণে সদস্য একাউণ্ট সৃষ্টি কৰা হ'ল।",
     "createaccount-title": "{{SITENAME}}ৰ কাৰণে একাউণ্ট সৃষ্টি কৰক।",
     "createaccount-text": "আপোনাৰ ই-মেইল ঠিকনাৰ কাৰণে {{SITENAME}} ($4)ত \"$2\" নামৰ কোনোবাই, \"$3\" গুপ্তশব্দ দি সদস্যভুক্তি কৰিছে। অনুগ্ৰহ কৰি আপুনি প্ৰৱেশ কৰক আৰু গুপ্তশব্দটো সলনি কৰক।\n\nযদি এইয়া ভুলতে হৈছে, তেনেহলে আপুনি এই বাৰ্তাটো অবজ্ঞা কৰিব পাৰে ।",
-    "usernamehasherror": "সদস্যনামত হেচ্‌ চিহ্ন থাকিব নোৱাৰে",
     "login-throttled": "আপুনি স‍ম্প্ৰতি অজস্ৰবাৰ লগ্‌-ইনৰ প্ৰয়াস কৰিছে ।\nঅনুগ্ৰহ কৰি $1 সময়ৰ পিছত আকৌ চেষ্টা কৰক ।",
     "login-abort-generic": "আপোনাৰ প্ৰৱেশ অসফল হৈছে- বাতিল কৰা হ’ল",
     "loginlanguagelabel": "ভাষা: $1",
     "prefs-skin": "আৱৰণ",
     "skin-preview": "খচৰা",
     "datedefault": "কোনো পছন্দ নাই",
-    "prefs-datetime": "তাৰিখ আৰু সময়",
     "prefs-labs": "পৰীক্ষাগাৰ বৈশিষ্টসমূহ",
     "prefs-user-pages": "সদস্য পৃষ্ঠাসমূহ",
     "prefs-personal": "সদস্যৰ বিৱৰণ",
     "upload-permitted": "অনুমোদিত ফাইল ধৰণ: $1",
     "upload-preferred": "বাঞ্ছিত ফাইল ধৰণ: $1",
     "upload-prohibited": "বঞ্চিত ফাইল ধৰণ: $1",
-    "uploadlog": "আপল’ড ল’গ",
     "uploadlogpage": "আপল’ড ল’গ",
     "uploadlogpagetext": "সকলোতকৈ শেহতীয়াভাৱে আপল’ড কৰা ফাইলসমূহৰ তালিকা তলত দিয়া হৈছে ।\nঅধিক দৃশ্যগত পৰ্য্যালোচনাৰ বাবে [[Special:NewFiles|নতুন ফাইলৰ গেলাৰী]] চাওক ।",
     "filename": "ফাইলনাম",
     "filereuploadsummary": "ফাইলত সালসলনিসমূহ",
     "filestatus": "স্বত্বাধিকাৰ স্থিতি:",
     "filesource": "উৎস:",
-    "uploadedfiles": "আপলোড কৰা ফাইলসমূহ",
     "ignorewarning": "সতৰ্কবাণী আওকাণ কৰি ফাইল সংৰক্ষণ কৰক",
     "ignorewarnings": "সকলো সতৰ্কবাণী আওকাণ কৰক",
     "minlength1": "ফাইলনাম কমেও এটা আখৰৰ হ'ব লাগে ।",
     "overwroteimage": "\"[[$1]]\" ৰ এটা নতুন সংস্কৰণ আপল’ড কৰা হৈছে",
     "uploaddisabled": "আপল’ড নিষ্ক্ৰিয় হৈ আছে",
     "copyuploaddisabled": "ইউ.আৰ.এল.ৰ মাধ্যমেৰে আপল’ড নিষ্ক্ৰিয় হৈ আছে ।",
-    "uploadfromurl-queued": "আপোনাৰ আপল’ড শাৰীত ৰখা হৈছে ।",
     "uploaddisabledtext": "ফাইল আপল’ড নিষ্ক্ৰিয় হৈ আছে ।",
     "php-uploaddisabledtext": "পি.এইচ.পি.ত ফাইল আপল’ড নিষ্ক্ৰিয় হৈ আছে ।\nঅনুগ্ৰহ কৰি file_uploads ছেটিং পৰীক্ষা কৰক ।",
     "uploadscripted": "এই ফাইলত HTML বা স্ক্ৰিপ্ত ক’ড আছে যিবোৰ ৱেব ব্ৰাউজাৰে ভুলকৈ ব্যাখ্যা কৰিব পাৰে ।",
     "upload-misc-error": "অজ্ঞাত আপল’ড ত্ৰুটি",
     "upload-misc-error-text": "আপল’ডৰ সময়ত কোনো অজ্ঞাত সমস্যাই দেখা দিছে ।\nURL টোৰ বৈধতা বিচাৰ কৰি পুনৰ চেষ্টা কৰক ।\nযদি তাৰ পিছতো সমস্যা হয়, তেন্তে এজন [[Special:ListUsers/sysop|প্ৰশাসকৰ]] লগত যোগাযোগ কৰক ।",
     "upload-too-many-redirects": "এই URL টোত অতি বেছি পুনৰ্নিৰ্দেশনা আছে",
-    "upload-unknown-size": "অজ্ঞাত আকাৰ",
     "upload-http-error": "এটা HTTP ত্ৰুটিয়ে দেখা দিছে: $1",
     "upload-copy-upload-invalid-domain": "এই ডমেইনত কপী আপল'ড নাপাব।",
     "backend-fail-stream": "$1 ফাইলটো ষ্ট্ৰীম কৰিব পৰা নগ'ল।",
     "img-auth-streaming": "\"$1\" স্ট্ৰিম হৈ আছে ।",
     "img-auth-public": "img_auth.phpৰ কাম হৈছে ব্যক্তিগত ৱিকিৰ পৰা ফাইল বাহিৰলৈ পঠোৱা ।\nএই ৱিকিক ৰাজহুৱা ৱিকিৰূপে কনফিগাৰ কৰা হৈছে ।\nসুৰক্ষাৰ বাবে img_auth.php নিষ্ক্ৰিয় কৰা হ'ল ।",
     "img-auth-noread": "সদস্যৰ \"$1\" ত প্ৰৱেশাধিকাৰ নাই ।",
-    "img-auth-bad-query-string": "এই ইউ.আৰ.এল.-ত অযুক্তিসংগত কুৱেৰী ষ্ট্ৰিং আছে ।",
     "http-invalid-url": "অবৈধ URL: $1",
     "http-invalid-scheme": "\"$1\" আঁচনি থকা URLসমূহ সমৰ্থিত নহয় ।",
     "http-request-error": "অজ্ঞাত ত্ৰুটিৰ বাবে HTTP অনুৰোধ ব্যাহত হৈছে ।",
     "filehist-dimensions": "আকাৰ",
     "filehist-filesize": "ফাইলৰ আকাৰ (বাইট)",
     "filehist-comment": "মন্তব্য",
-    "filehist-missing": "ফাইল সন্ধানহীন",
     "imagelinks": "ফাইল ব্যৱহাৰ",
     "linkstoimage": "তলত দিয়া {{PLURAL:$1|পৃষ্ঠাটো|$1 পৃষ্ঠাবোৰ}} এই ফাইলৰ লগত জড়িত:",
     "linkstoimage-more": "এই ফাইলৰ লগত $1ৰো বেছি {{PLURAL:$1|পৃষ্ঠা সংযোগ|পৃষ্ঠা সংযোগ}} হৈ আছে ।\nতলৰ তালিকাত {{PLURAL:$1|প্ৰথম পৃষ্ঠা সংযোগ|প্ৰথম $1 পৃষ্ঠা সংযোগ}} দেখুওৱা হৈছে ।\nএখন [[Special:WhatLinksHere/$2|সম্পূৰ্ণ তালিকা]]ও পাব ।",
     "emailuser-title-notarget": "ব্যৱহাৰকাৰী ই-পত্ৰ প্ৰেৰণ কৰক",
     "emailpage": "ই-পত্ৰ ব্যৱহাৰকাৰী",
     "emailpagetext": "তলৰ প্ৰপত্ৰখন ব্যৱহাৰ কৰি আপুনি এই {{GENDER:$1|সদস্যজনলৈ}} ই-মেইল পঠাব পাৰে ।\nআপুনি [[Special:Preferences|আপোনাৰ সদস্য পছন্দসমূহ]]ত প্ৰৱেশ কৰা ই-মেইল ঠিকনাটো প্ৰেৰকৰ ঠিকনা হিছাপে দেখা যাব, যাতে মেইলৰ প্ৰাপকে আপোনাক উত্তৰ দিব পাৰে ।",
-    "usermailererror": "মেইল বিষয়বস্তুৰ ত্ৰুটি:",
     "defemailsubject": "\"$1\" সদস্যৰ পৰা {{SITENAME}} ই-মেইল",
     "usermaildisabled": "ব্যৱহাৰকাৰীৰ ই-মেইল নিষ্ক্ৰিয়",
     "usermaildisabledtext": "আপুনি এই ৱিকিত আন সদস্যলৈ ই-পত্ৰ পঠিয়াব নোৱাৰে",
     "noemailtitle": "কোনো ই-পত্ৰ ঠিকনা নাই",
     "noemailtext": "এই সদস্যজনে কোনো বৈধ ই-পত্ৰ ঠিকনা নিৰ্বাচন কৰা নাই ।",
-    "nowikiemailtitle": "কোনো ই-পত্ৰ অনুমোদিত নহয়",
     "nowikiemailtext": "এই সদস্যজনে আন সদস্যৰপৰা ই-পত্ৰ পাবলৈ বিচৰা নাই ।",
     "emailnotarget": "পাওঁতাৰ অস্তিত্বহীন বা অবৈধ সদস্যনাম",
     "emailtarget": "পাওঁতাৰ সদস্যনাম ভৰ্তি কৰক",
     "watching": "চকু দিয়া হৈছে.....",
     "unwatching": "আঁতৰোৱা হৈ আছে.....",
     "watcherrortext": "\"$1\"ৰ বাবে আপোনাৰ নিৰীক্ষণ তালিকাৰ ছেটিং সলনি কৰোঁতে এটা সমস্যাই দেখা দিছে ।",
-    "enotif_mailer": "{{SITENAME}} জাননী ই-পত্ৰ প্ৰেৰক",
     "enotif_reset": "সকলো পৃষ্ঠা পৰিদৰ্শিত বুলি চিহ্নিত কৰক",
     "enotif_impersonal_salutation": "{{SITENAME}} সদস্য",
     "enotif_subject_deleted": "{{SITENAME}} পৃষ্ঠা $1 {{gender:$2|$2}} ৰ দ্বাৰা বিলোপ কৰা হ’ল",
     "excontent": "বিষয়বস্তু আছিল: \"$1\"",
     "excontentauthor": "বিষয়বস্তু আছিল: \"$1\" (আৰু একমাত্ৰ অৱদানকাৰী আছিল \"[[Special:Contributions/$2|$2]]\")",
     "exbeforeblank": "খালী কৰাৰ আগেয়ে বিষয়বস্তু আছিল: $1",
-    "exblank": "পৃষ্ঠা খালি আছিল",
     "delete-confirm": "\"$1\" বিলোপ কৰক",
     "delete-legend": "বিলোপ কৰক",
     "historywarning": "'''সাৱধান:''' আপুনি বিলোপ কৰিব বিচৰা পৃষ্ঠাখনৰ ইতিহাসত প্ৰায় {{PLURAL:$1|সংস্কৰণ|সংস্কৰণ}} আছে:",
     "importunknownsource": "অজ্ঞাত আমদানি উৎসৰ প্ৰকাৰ",
     "importcantopen": "আমদানি ফাইল খুলিব পৰা নগ'ল",
     "importbadinterwiki": "আন্ত:ৱিকি সংযোগ বেয়া",
-    "importnotext": "খালী বা পাঠ বিহীন",
     "importsuccess": "আমদানি সমাপ্ত !",
-    "importhistoryconflict": "পৰস্পৰবিৰোধী ইতিহাস সংশোধনী আছে (এই পৃষ্ঠা আগতেও আমদানি কৰা হ'ব পাৰে)",
     "importnosources": "কোনো আন্তঃৱিকি আমদানি উৎসৰ সংজ্ঞা দিয়া হোৱা নাই আৰু প্ৰত্যক্ষ ইতিহাস আপল'ড নিষ্ক্ৰিয় কৰা হৈছে ।",
     "importnofile": "কোনো আমদানি নথি আপল'ড কৰা হোৱা নাই ।",
     "importuploaderrorsize": "আমদানি নথিৰ আপল'ড অসফল হৈছে ।\nঅনুমোদিত আপল'ড নথিতকৈ এই নথিৰ আকাৰ ডাঙৰ ।",
index 1b60de2..5c0a2ec 100644 (file)
     "permalink": "Enllaz permanente",
     "print": "Imprentar",
     "view": "Ver",
+    "view-foreign": "Ver en $1",
     "edit": "Editar",
+    "edit-local": "Editar la descripción llocal",
     "create": "Crear",
+    "create-local": "Amestar descripción llocal",
     "editthispage": "Editar esta páxina",
     "create-this-page": "Crear esta páxina",
     "delete": "Desaniciar",
     "accountcreatedtext": "Creóse la cuenta d'usuariu pa [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|alderique]]).",
     "createaccount-title": "Creación de cuenta pa {{SITENAME}}",
     "createaccount-text": "Daquién creó una cuenta cola to direición de corréu electrónicu en {{SITENAME}} ($4) col nome «$2», y cola contraseña «$3».\nAgora tendríes d'aniciar sesión y camudar la contraseña.\n\nPues escaecer esti mensaxe si esta cuenta creóse por error.",
-    "usernamehasherror": "El nome d'usuariu nun pue contener caráuteres «hash»",
     "login-throttled": "Ficisti demasiaos intentos d'aniciu de sesión recientes.\nPor favor espera $1 enantes d'intentalo otra vuelta.",
     "login-abort-generic": "Falló la identificación - Encaboxao",
     "loginlanguagelabel": "Llingua: $1",
     "prefs-skin": "Apariencia",
     "skin-preview": "Vista previa",
     "datedefault": "Ensin preferencia",
-    "prefs-datetime": "Fecha y hora",
     "prefs-labs": "Carauterístiques esperimentales",
     "prefs-user-pages": "Páxines d'usuariu",
     "prefs-personal": "Perfil del usuariu",
     "upload-permitted": "Menes d'archivu permitíes: $1.",
     "upload-preferred": "Menes d'archivu preferíes: $1.",
     "upload-prohibited": "Menes d'archivu prohibíes: $1.",
-    "uploadlog": "rexistru de xubíes",
     "uploadlogpage": "Rexistru de xubíes",
     "uploadlogpagetext": "Abaxo amuésase una llista de les xubíes d'archivos más recientes.\nMira la [[Special:NewFiles|galería d'archivos nuevos]] pa una güeyada más visual.",
     "filename": "Nome del ficheru",
     "filereuploadsummary": "Cambios del ficheru:",
     "filestatus": "Estáu de Copyright:",
     "filesource": "Fonte:",
-    "uploadedfiles": "Archivos xubíos",
     "ignorewarning": "Inorar l'avisu y grabar l'archivu de toes formes",
     "ignorewarnings": "Inorar tolos avisos",
     "minlength1": "Los nomes d'archivu han tener a lo menos una lletra.",
     "overwroteimage": "xubió una versión nueva de \"[[$1]]\"",
     "uploaddisabled": "Deshabilitaes les xubíes",
     "copyuploaddisabled": "Xubir por URL ta desactivao.",
-    "uploadfromurl-queued": "La to xubía ta na cola.",
     "uploaddisabledtext": "Les xubíes de ficheros tán desactivaes.",
     "php-uploaddisabledtext": "Les xubíes de ficheros tan desactivaes en PHP.\nPor favor, comprueba la configuración de file_uploads.",
     "uploadscripted": "Esti ficheru contién códigu HTML o scripts que se puen interpretar equivocadamente por un navegador.",
     "upload-misc-error": "Error de xubida desconocíu",
     "upload-misc-error-text": "Hebo un error desconocíu na xubida del ficheru.\nPor favor comprueba que l'URL ye válidu y accesible, y inténtalo otra vuelta.\nSi'l problema persiste, contauta con un [[Special:ListUsers/sysop|alministrador]] del sistema.",
     "upload-too-many-redirects": "La URL contenía demasiaes redireiciones",
-    "upload-unknown-size": "Tamañu desconocíu",
     "upload-http-error": "Hebo un error HTTP: $1",
     "upload-copy-upload-invalid-domain": "La xubida de copies nun ta disponible dende esti dominiu.",
     "backend-fail-stream": "Nun se pudo tresmitir el ficheru $1.",
     "img-auth-streaming": "Unviando \"$1\".",
     "img-auth-public": "La función de img_auth.php ye sacar ficheros d'una wiki privada.\nEsta wiki ta configurada como wiki pública.\nPa una meyor seguridá, img_auth.php ta desactiváu.",
     "img-auth-noread": "L'usuariu nun tien accesu pa lleer \"$1\".",
-    "img-auth-bad-query-string": "La URL tien una cadena de consulta inválida.",
     "http-invalid-url": "URL inválida: $1",
     "http-invalid-scheme": "Les URLs col esquema \"$1\" nun tienen sofitu.",
     "http-request-error": "La llamada HTTP fallló por un error desconocíu.",
     "filehist-dimensions": "Dimensiones",
     "filehist-filesize": "Tamañu del ficheru",
     "filehist-comment": "Comentariu",
-    "filehist-missing": "Falta ficheru",
     "imagelinks": "Usu del ficheru",
     "linkstoimage": "{{PLURAL:$1|La páxina siguiente enllacia|Les páxines siguientes enllacien}} a esti ficheru:",
     "linkstoimage-more": "Más de $1 {{PLURAL:$1|páxina enllacia|páxines enllacien}} a esti archivu.\nLa llista siguiente amuesa{{PLURAL:$1|'l primer enllaz de páxina| los primeros $1 enllaces de páxina}} a esti archivu namái.\nHai disponible una [[Special:WhatLinksHere/$2|llista completa]].",
     "listgrouprights-removegroup-self": "Desaniciar {{PLURAL:$2|grupu|grupos}} de la cuenta propia: $1",
     "listgrouprights-addgroup-self-all": "Amestar tolos grupos a la cuenta propia",
     "listgrouprights-removegroup-self-all": "Desaniciar tolos grupos de la cuenta propia",
+    "listgrouprights-namespaceprotection-header": "Torgues d'espaciu de nomes",
+    "listgrouprights-namespaceprotection-namespace": "Espaciu de nomes",
+    "listgrouprights-namespaceprotection-restrictedto": "Permisu(os) d'edición del usuariu",
     "trackingcategories": "Categoríes de siguimientu",
     "trackingcategories-summary": "Esta páxina llista les categoríes de siguimientu que rellena automáticamente'l software de MediaWiki. Puen camudase los nomes alterando los mensaxes del sistema correspondientes nel espaciu de nomes {{ns:8}}.",
     "trackingcategories-msg": "Categoría de siguimientu",
     "trackingcategories-name": "Nome del mensaxe",
     "trackingcategories-desc": "Criterios d'inclusión de categoría",
-    "noindex-category-desc": "La páxina contién una pallabra máxica <nowiki>__NOINDEX__</nowiki> (y ta nun espaciu de nomes nel que se permite esta marca) y, poro, los robots nun la indexarán.",
-    "index-category-desc": "La páxina contién una pallabra máxica <nowiki>__INDEX__</nowiki> (y ta nun espaciu de nomes nel que se permite esta marca) y, poro, los robots la indexarán anque normalmente nun lo faigan.",
+    "noindex-category-desc": "La páxina contién una pallabra máxica <code><nowiki>__NOINDEX__</nowiki></code> (y ta nun espaciu de nomes nel que se permite esta marca) y, poro, los robots nun la indexarán.",
+    "index-category-desc": "La páxina contién una pallabra máxica <code><nowiki>__INDEX__</nowiki></code> (y ta nun espaciu de nomes nel que se permite esta marca) y, poro, los robots la indexarán anque normalmente nun lo faigan.",
     "post-expand-template-inclusion-category-desc": "Después de espander toles plantíes, el tamañu de la páxina ye mayor que <code>$wgMaxArticleSize</code>; de mou qu'algunes plantíes nun s'espandieron.",
     "post-expand-template-argument-category-desc": "Después d'espander l'argumentu d'una plantía (daqué ente llaves triples, como <code>{{{Daqué}}}</code>), la páxina ye mayor que <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Hai demasiaes funciones analítiques costoses (como <code>#ifexist</code>) incluíes nuna páxina. Vea [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
     "broken-file-category-desc": "Categoría amestada si la páxina contién un enllaz de ficheru frañáu (un enllaz pa incrustar un ficheru cuando'l ficheru nun esiste).",
-    "hidden-category-category-desc": "Esta ye una categoría que contién la pallabra máxica <nowiki>__HIDDENCAT__</nowiki>, que torga que s'amuese de mou predetermináu nel cuadru d'enllaces de categoría de les páxines.",
+    "hidden-category-category-desc": "Esta ye una categoría que contién la pallabra máxica <code><nowiki>__HIDDENCAT__</nowiki></code>, que torga que s'amuese de mou predetermináu nel cuadru d'enllaces de categoría de les páxines.",
     "trackingcategories-nodesc": "Nun hai una descripción disponible.",
     "trackingcategories-disabled": "La categoría ta desactivada",
     "mailnologin": "Ensin direición d'unviu",
     "emailuser-title-notarget": "Unviar un corréu electrónicu a un usuariu",
     "emailpage": "Envigar un corréu electrónicu a un usuariu",
     "emailpagetext": "Pues usar el formulariu de más abaxo pa unviar un corréu electrónicu a {{GENDER:$1|esti usuariu|esta usuaria}}.\nLa direición de corréu electrónicu qu'especificasti nes [[Special:Preferences|tos preferencies d'usuariu]] va apaecer como la direición \"Dende\" del corréu, pa que'l que lo recibe seya quien a respondete direutamente a ti.",
-    "usermailererror": "L'operador de corréu devolvió un error:",
     "defemailsubject": "Corréu electrónicu del usuariu «$1» de {{SITENAME}}",
     "usermaildisabled": "Corréu del usuariu desactiváu",
     "usermaildisabledtext": "Nun pues unviar corréu a otros usuarios d'esta wiki",
     "noemailtitle": "Ensin direición de corréu",
     "noemailtext": "Esti usuariu nun especificó una direición de corréu válida.",
-    "nowikiemailtitle": "Nun se permite'l corréu electrónicu",
     "nowikiemailtext": "Esti usuariu nun quier recibir correos d'otros usuarios.",
     "emailnotarget": "Nome d'usuariu del destinatariu non esistente o inválidu.",
     "emailtarget": "Escribi'l nome d'usuariu del destinatariu",
     "watching": "Vixilando...",
     "unwatching": "Dexando de vixilar...",
     "watcherrortext": "Hebo un fallu al camudar la configuración de la to llista de vixilancia pa «$1».",
-    "enotif_mailer": "Notificación de corréu de {{SITENAME}}",
     "enotif_reset": "Marcar toles páxines visitaes",
     "enotif_impersonal_salutation": "Usuariu de {{SITENAME}}",
     "enotif_subject_deleted": "{{GENDER:$2|$2}} desanició la páxina «$1» de {{SITENAME}}",
     "excontent": "el conteníu yera: '$1'",
     "excontentauthor": "el conteníu yera: '$1' (y l'únicu autor yera '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "el conteníu enantes de dexar en blanco yera: '$1'",
-    "exblank": "la páxina taba vacia",
     "delete-confirm": "Desaniciar «$1»",
     "delete-legend": "Desaniciar",
     "historywarning": "'''Avisu:'''' La páxina que vas desaniciar tien un historial con aproximadamente $1 {{PLURAL:$1|revisión|revisiones}}:",
     "importunknownsource": "Triba d'orixe d'importación desconocida",
     "importcantopen": "Nun se pudo abrir el ficheru d'importación",
     "importbadinterwiki": "Enllaz interwiki incorreutu",
-    "importnotext": "Vaciu o ensin testu",
     "importsuccess": "¡Importación finalizada!",
-    "importhistoryconflict": "Existe un conflictu na revisión del historial (seique esta páxina fuera importada previamente)",
     "importnosources": "Nun se definió l'orixe de la importación treswiki y les xubíes direutes del historial tán deshabilitaes.",
     "importnofile": "Nun se xubió nengún archivu d'importación.",
     "importuploaderrorsize": "Falló la xubida del archivu d'importación. L'archivu ye más grande que'l tamañu permitíu de xubida.",
index 9e25590..1c1ce0e 100644 (file)
     "accountcreatedtext": "$1 üçün istifadəçi hesabı yaradıldı.",
     "createaccount-title": "{{SITENAME}} hesabın yaradılması",
     "createaccount-text": "Biriləri {{SITENAME}} saytında ($4) sizin e-poçt ünvanınızdan istifadə edərək, parolu \"$3\" olan, \"$2\" adlı bir hesab yaratdı.\n\nSayta daxil olmalı və parolunuzu dəyişdirməlisiniz.\n\nƏgər istifadəçi hesabını səhvən yaratmısınızsa, bu mesajı gözardı edə bilərsiniz.",
-    "usernamehasherror": "İstifadəçi adında \"diyez\" simvolunun istifadəsi mümkün deyil",
     "login-throttled": "Sistemə daxil olmaq üçün həddən artıq cəhd etmisiniz.\nYeni cəhd etməzdən əvvəl bir qədər gözləyin.",
     "login-abort-generic": "Giriş uğursuz alındı - Rədd",
     "loginlanguagelabel": "Dil: $1",
     "upload-permitted": "İcazə verilən fayl tipləri: $1.",
     "upload-preferred": "İcazə verilən fayl tipləri: $1.",
     "upload-prohibited": "İcazə verilməyən fayl tipləri: $1.",
-    "uploadlog": "yükləmə qeydi",
     "uploadlogpage": "Yükləmə qeydləri",
     "uploadlogpagetext": "Aşağıda ən yeni yükləmə jurnal qeydləri verilmişdir.",
     "filename": "Fayl adı",
     "filereuploadsummary": "Fayl dəyişiklikləri:",
     "filestatus": "Müəllif statusu:",
     "filesource": "Mənbə:",
-    "uploadedfiles": "Yüklənmiş fayllar",
     "ignorewarning": "Xəbərdarlıqlara əhəmiyyət vermə və faylı saxla",
     "ignorewarnings": "Bütün xəbərdarlıqlara məhəl qoymamaq",
     "minlength1": "Fayl adı ən azı bir hərfdən ibarət olmalıdır.",
     "overwroteimage": "\"[[$1]]\"-in yeni versiyası yükləndi",
     "uploaddisabled": "Yükləmə baş tutmadı",
     "copyuploaddisabled": "URL-dən yükləmə baş tutmadı.",
-    "uploadfromurl-queued": "Yükləməniz növbə gözləyir",
     "uploaddisabledtext": "Fayl yüklənməsi baş tutmadı.",
     "uploadvirus": "Faylda virus var! \nDetallar: $1",
     "upload-source": "Mənbə faylı",
     "upload-file-error": "Daxili xəta",
     "upload-misc-error": "Naməlum yükləmə xətası",
     "upload-too-many-redirects": "URL-də xeyli yönləndirmə var",
-    "upload-unknown-size": "Naməlum həcm",
     "upload-http-error": " HTTP xətası var : $1",
     "backend-fail-notexists": "\"$1\" faylı mövcud deyil",
     "backend-fail-delete": "\"$1\" faylı sililmədi.",
     "img-auth-nofile": "Fayl \"$1\" mövcud deyil.",
     "img-auth-streaming": "\"$1\" axını.",
     "img-auth-noread": "İstifadəçinin \"$1\"i oxumaq hüququ yoxdur.",
-    "img-auth-bad-query-string": "URL ünvanda yanlış axtarış sətri var.",
     "http-invalid-url": "Səhv URL: $1",
     "http-read-error": "HTTP oxuma xətası",
     "http-timed-out": "HTTP istəyinin vaxtı bitdi.",
     "filehist-dimensions": "Ölçülər",
     "filehist-filesize": "Faylın həcmi",
     "filehist-comment": "Şərh",
-    "filehist-missing": "Fayl çatışmır",
     "imagelinks": "Fayl keçidləri",
     "linkstoimage": "{{PLURAL:$1|səhifə|$1 səhifə}} bu fayla istinad edir:",
     "nolinkstoimage": "Bu fayla keçid verən səhifə yoxdur.",
     "mailnologin": "Ünvan yoxdur",
     "emailuser": "İstifadəçiyə e-məktub göndər",
     "emailpage": "İstifadəçiyə e-məktub yolla",
-    "usermailererror": "Elektron poçtla məlumat göndərilən zaman xəta baş vermişdir:",
     "defemailsubject": "\"$1\" adlı istifadəçidən {{SITENAME}} e-məktubu",
     "usermaildisabled": "İstifadəçi e-maili işləmir",
     "noemailtitle": "E-məktub ünvanı yoxdur",
     "noemailtext": "Bu istifadəçi işlək e-məktub ünvanını qeyd etməmişdir.",
-    "nowikiemailtitle": "E-poçtlara icazə verilmir",
     "emailtarget": "Qəbul edən istifadəçinin adını daxil edin",
     "emailusername": "İstifadəçi adı:",
     "emailusernamesubmit": "Göndər",
     "watchlist-options": "İzləmə siyahısının nizamlamaları",
     "watching": "İzlənilir...",
     "unwatching": "İzlənilmir...",
-    "enotif_mailer": "{{SITENAME}} Bildiriş Xidməti",
     "enotif_reset": "Baxılmış bütün səhifələri işarələ.",
     "enotif_impersonal_salutation": "{{SITENAME}} istifadəçisi",
     "enotif_lastvisited": "Sonuncu ziyarətinizdən indiyədək olan bütün dəyişiklikləri görmək üçün baxın: $1.",
     "excontent": "Köhnə məzmun: '$1'",
     "excontentauthor": "tərkib: '$1' (və '[[Special:Contributions/$2|$2]]' tarixçədə fəaliyyəti qeyd edilən yeganə istifadəçidir)",
     "exbeforeblank": "Silinmədən əvvəlki məzmun: '$1'",
-    "exblank": "səhifə boş",
     "delete-confirm": "Silinən səhifə: \"$1\"",
     "delete-legend": "Sil",
     "historywarning": "'''Xəbərdarlıq:''' Silinəcək səhifənin tarixçəsində qeyd olunmuş $1 {{PLURAL:$1|redaktə|redaktə}} var:",
     "importfailed": "Uğursuz çıxarış: <nowiki>$1</nowiki>",
     "importcantopen": "Çıxarılacaq fayl açılmadı",
     "importbadinterwiki": "Yanlış interviki keçidi",
-    "importnotext": "Boş və ya mətn yoxdur",
     "importsuccess": "Çıxarma başa çatdı!",
     "import-noarticle": "Çıxarılacaq səhifə yoxdur!",
     "xml-error-string": "$1 $2 sətrində, $3 sütünunda ($4 bayt): $5",
index 3ed9ff5..2c5aa2a 100644 (file)
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|دانیشیق]]) ایستیفاده‌چی حسابی یارادیلیب‌دیر.",
     "createaccount-title": "{{SITENAME}} اوچون حساب یارادیلماسی",
     "createaccount-text": "بیر کس، سیزین ایمیل آدرسینیزه {{SITENAME}} ($4) سایتیندا «$2» آدی و «$3» رمزی ایله بیر حساب آچیب‌دیر. سیز گرک گیریش ائدیب و رمزینیزی ایندی دَییشدیره‌سیز.\n\nبو حساب یانلیش دوزلیب‌سه، بو مئساژا محل قویمایابیلرسیز.",
-    "usernamehasherror": "ایستیفاده‌چی آدیندا hash حرفلری اولا بیلمز",
     "login-throttled": "سیزین چوخ گیریش چالیشماغینیز اولوب‌دور.\nلوطفاً یئنی‌دن چالیشماق‌دان اؤنجه بیر آز دؤزون.",
     "login-abort-generic": "سیزین گیریشینیز باشاری‌سیز اولدو - دایاندیریلدی",
     "loginlanguagelabel": "دیل: $1",
     "prefs-skin": "قابیق",
     "skin-preview": "اؤن‌گؤستریش",
     "datedefault": "سئچیم‌سیز",
-    "prefs-datetime": "تاریخ و واخت",
     "prefs-labs": "آزماییشی اؤزل‌لیکلر",
     "prefs-user-pages": "ایستیفاده‌چی صحیفه‌لری",
     "prefs-personal": "ایستیفاده‌چی پروفایلی",
     "upload-permitted": "ایجازه وئریلن فايل تیپلری: $1.",
     "upload-preferred": "ایجازه وئریلن فايل تیپلری: $1.",
     "upload-prohibited": "ایجازه وئریلمه‌ين فايل تیپلری: $1.",
-    "uploadlog": "يوکله‌مه قئيدی",
     "uploadlogpage": "یوکلمه قئیدلری",
     "uploadlogpagetext": "آشاغیدا ان سون یوکله‌نیلن فایل‌لارین لیستی گؤستریلیر.\nداها گؤرونوش‌لو گؤسترمک اوچون، [[Special:NewFiles|یئنی فایل‌لار گالئری‌سینه]] باخین.",
     "filename": "فایل آدی",
     "filereuploadsummary": "فایل دَییشیکلری:",
     "filestatus": "مؤلف حوقوقلاری:",
     "filesource": "قایناق:",
-    "uploadedfiles": "یوکلنمیش فایللار‌",
     "ignorewarning": "خبردارلیقلارا اهمیت وئرمه و فايلی ساخلا",
     "ignorewarnings": "بوتون خبردارلیقلارا محل قويماماق",
     "minlength1": "فايل آدی ان آزی بیر حرفدن عبارت اولمالیدیر.",
     "overwroteimage": "\"[[$1]]\"-این یئنی نوسخه سی یوکلندی",
     "uploaddisabled": "يوکله‌مه باش توتمادی",
     "copyuploaddisabled": "اینترنت آدرسی ایله یوکلمه باش توتمادی.",
-    "uploadfromurl-queued": "يوکله‌مه‌نیز نؤوبه گؤزله‌يیر",
     "uploaddisabledtext": "فايل يوکلنمه‌سی باش توتمادی.",
     "php-uploaddisabledtext": "پی اچ پی فایل یوکلملری دؤوره خاریجی‌دیر. خاهیش ائدیریک file_uploads تنظیم لرین یئنی دن بیر باخین.",
     "uploadscripted": "بو فایل بیر اینتئرنئت آختاریش برنامه سی طرفین‌دن سهو چئوریلبیلجک بیر HTML و یا ایسکریپت کودو عبارت‌دیر.",
     "upload-misc-error": "بیلین‌مه‌ین یوکلمه خطاسی",
     "upload-misc-error-text": "یوکلمه اسناسیندا بیلینمه‌ین بیر خطا میدانا گلدی.\nخاهیش ائدیریک علاقه‌نین اعتبارلی و چاتیلا بیلر اولدوغونو تصدیق و یئنی‌دن جهد ائدین.\nاگر پروبلئم تکرارلانسا، بیر [[Special:ListUsers/sysop|administrator]] ایله علاقه ساخلایین",
     "upload-too-many-redirects": "آدرس ده چوخ یؤنلندیرمه وار",
-    "upload-unknown-size": "بیلین‌مه‌ين هجم",
     "upload-http-error": "اچ تی تی پی ختاسی وار : $1",
     "upload-copy-upload-invalid-domain": "فایل یوکلنمه سی بو بازه ده امکانی یوخدور",
     "backend-fail-stream": "$1 فای‌لی یولانمامادی.",
     "img-auth-streaming": "\"$1\" آخینی.",
     "img-auth-public": "img_auth.php 'نین فونکسیاسی خصوصی بیر ویکی فایل‌لاری چیخارماق‌دیر.\nبو wiki اومومی بیر wiki اولا‌راق قورولوب.\nان اویغون تهلوکه‌سیزلیک اوچون، img_auth.php دؤوره خاریجی بوراخیلدی.",
     "img-auth-noread": "ایستیفاده‌چی‌نین «$1»بیر  اوخوماق حقوقو يوخدور.",
-    "img-auth-bad-query-string": "آدرس اونواندا يانلیش آختاریش ستری وار.",
     "http-invalid-url": "سهو اورل: $1",
     "http-invalid-scheme": "\"$1\" سماسینا صاحب اورللئر دستک‌لنمیر",
     "http-request-error": "هتتپ ایستیی بیلینمه‌ین بیر سببله موفقیت‌سیز اولدو.",
     "filehist-dimensions": "اؤلچولر",
     "filehist-filesize": "فایل اؤلچوسو",
     "filehist-comment": "باخیش",
-    "filehist-missing": "فایل یوخدور",
     "imagelinks": "فايل ایشلدمه‌سی",
     "linkstoimage": "آشاغیداکی {{PLURAL:$1|صحیفه|$1 صحیفه‌لر}} بو فایلا {{PLURAL:$1|باغلانیر|باغلانیرلار}}",
     "linkstoimage-more": "بو فایلا {{PLURAL:$1|بیر|$1}}-دن چوخ صحیفه باغلانتی‌سی واردیر.\nآشاغیداکی لیست بو فایلا یالنیز ایلک $1 صحیفه باغلانتیسینی گؤستریر.\nبیر [[Special:WhatLinksHere/$2|بوتون لیست]] ده واردیر.",
     "emailuser-title-notarget": "ایستیفاده‌چی‌یه ایمیل گؤندر",
     "emailpage": "ایستیفاده‌چی‌یه ایمیل گؤندر",
     "emailpagetext": "آشغیداکی فورم‌دان، بو {{GENDER:$1|ایستیفاده‌چی}}‌یه ایمیل گؤندرمک اوچون ایستیفاده ائده بیلرسینیز.\n[[Special:Preferences|اؤز ترجیحلرینیز]]ده وئرن ایمیل آدرسی، بو ایمیلین \"From\" یئرینده گؤستریله‌جک‌دیر و بونا گؤره ایمیلی آلان سیزه موستقیم جاواب گؤندره بیلر.",
-    "usermailererror": "ایمیل‌دن بو خطا قایتاریلدی:",
     "defemailsubject": "«$1» آدلی ایستیفاده‌چی‌دن، {{SITENAME}} ایمیلی",
     "usermaildisabled": "ایستیفاده‌چی ایمیلی باغلی‌دیر",
     "usermaildisabledtext": "بو ویکی‌ده باشقا ایستیفاده‌چیلره ایمیل گؤندره بیلنمه‌سینیز",
     "noemailtitle": "ایمیل آدرسی یوخدور",
     "noemailtext": "بو ایستیفاده‌چی، بیر گئچرلی ایمیل آدرسی وئرمه‌ییب‌دیر.",
-    "nowikiemailtitle": "ایمیل ایجازه‌سی یوخدور",
     "nowikiemailtext": "بو ایستیفاده‌چی، باشقا ایستیفاده‌چیلردن ایمیل آلماماغینی بیلدیریب‌دیر.",
     "emailnotarget": "آلان اوچون، اولمایان یوخسا گئچرسیز ایستیفاده‌چی آدی.",
     "emailtarget": "آلانین ایستیفاده‌چی آدینی دَییشدیر",
     "watching": "ایزله‌نیلیر...",
     "unwatching": "ایزله‌مه...",
     "watcherrortext": "ایزلئمئ سیاهی‌سی ترجیحلرینیزی \"$1\" اوچون دییشدیررکن بیر خطا میدانا گلدی.",
-    "enotif_mailer": "{{SITENAME}} بیلدیریش خیدمتی",
     "enotif_reset": "باخیلمیش بوتون صحیفه‌لری ایشاره‌له.",
     "enotif_impersonal_salutation": "{{SITENAME}} ایستیفاده‌چی‌سی",
     "enotif_subject_deleted": "{{SITENAME}} $1 صحیفه‌سی، {{gender:$2|$2}} ایله سیلینیب‌دیر",
     "excontent": "کؤهنه مظمون: '$1'",
     "excontentauthor": "ترکیب: '$1 (و'[[Special:Contributions/$2|$2]]' تاریخچه‌ده فالیتی قئید ائدیلن یئگانه ایستیفاده‌چی‌دیر)",
     "exbeforeblank": "سیلینمه‌دن اوولکی مزمون: '$1",
-    "exblank": "صحیفه بوش",
     "delete-confirm": "سیل $1",
     "delete-legend": "سیل",
     "historywarning": "'خبردارلیق:' سیلینه‌جک صحیفه‌نین تاریخچه‌سینده قئید اولونموش $1 {{PLURAL::$1|دییشدیر|دییشدیرمه}} وار:",
     "importunknownsource": "بیلینمه‌ین ایچری کؤچورمه قایناق نؤوو",
     "importcantopen": "ایچری توکمه فایل پرونده لری آچیلمادی",
     "importbadinterwiki": "یانلیش اینتئرویکی کئچیدی",
-    "importnotext": "بوش و یا متن یوخ‌دور",
     "importsuccess": "ایچری توکمه باشا چاتدی!",
-    "importhistoryconflict": "اوست-اوسته دوشمه‌ین کئچمیش رئویزیونو مؤوجود (بو صحیفه داها اول‌دن ایچه کؤچورولموش اولا بیلر)",
     "importnosources": "هئچ ویکیلئراراسی ایچه کؤچورمه قایناغی تعیین و بیرباشا کئچمیش یوکلملری دؤوره خاریجی.",
     "importnofile": "بیر کؤچورمه فایلی یوکلنمدی.",
     "importuploaderrorsize": "ایچه کؤچورولموش فایلین یوکلنمه‌سی اوغورسوز اولدو.\nفایل، ایجازه وئریلن یوکلمه اؤلچوسون‌دن بؤیوک.",
index b3bd837..ce83999 100644 (file)
     "disclaimers": "Panyakalon",
     "disclaimerpage": "Project:Pamorsoon umum",
     "edithelp": "Pangurupion laho patotahon",
-    "helppage": "Help:Isi",
     "mainpage": "Pogu ni Alaman",
     "mainpage-description": "Pogu ni alaman",
     "portal": "Harbangan ni punguan",
index d2e6f1c..659ad50 100644 (file)
     "disclaimers": "انکار کننده ها",
     "disclaimerpage": "Project:انکار کاربران",
     "edithelp": "کمک برای اصلاح",
-    "helppage": "Help:محتوا",
     "mainpage": "صفحه اصلی",
     "mainpage-description": "صفحه اصلی",
     "policy-url": "Project:خط مشی",
index 367c57b..5f81c89 100644 (file)
     "permalink": "Chomlec'h ar stumm-mañ",
     "print": "Moullañ",
     "view": "Gwelet",
+    "view-foreign": "Gwel war $1",
     "edit": "Kemmañ",
     "create": "Krouiñ",
     "editthispage": "Kemmañ ar bajenn-mañ",
     "accountcreatedtext": "Krouet eo bet kont implijer [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|kaozeal]]).",
     "createaccount-title": "Krouiñ ur gont war {{SITENAME}}",
     "createaccount-text": "Unan bennak en deus krouet ur gont gant ho chomlec'h postel war {{SITENAME}} ($4) zo e anv \"$2\" hag a ra gant ar ger-tremen \"$3\".\nMat e vefe deoc'h kevreañ ha cheñch ho ker-tremen bremañ.\n\nNa daolit ket evezh ouzh ar c'hemenn-mañ m'eo bet krouet ar gont dre fazi.",
-    "usernamehasherror": "N'haller ket ober gant an arouezenn # en anvioù an implijerien",
     "login-throttled": "Betek re oc'h heus klasket kevreañ en aner.\nGortozit $1, mar plij, a-raok esaeañ en-dro.",
     "login-abort-generic": "Dibosupl ho kevreañ - Dilezet",
     "loginlanguagelabel": "Yezh : $1",
     "prefs-skin": "Gwiskadur",
     "skin-preview": "Rakwelet",
     "datedefault": "Dre ziouer",
-    "prefs-datetime": "Deiziad hag eur",
     "prefs-labs": "Perzhioù \"labs\"",
     "prefs-user-pages": "Pajennoù implijer",
     "prefs-personal": "Titouroù personel",
     "upload-permitted": "Seurtoù restroù aotreet : $1.",
     "upload-preferred": "Seurtoù restroù gwellañ : $1.",
     "upload-prohibited": "Seurtoù restroù berzet : $1.",
-    "uploadlog": "marilh ar pajennoù enporzhiet",
     "uploadlogpage": "Marilh ar pajennoù enporzhiet",
     "uploadlogpagetext": "Setu a-is marilh ar restroù diwezhañ bet karget war ar servijer.\nS.o [[Special:NewFiles|rann ar skeudennoù nevez]] evit kaout ur sell gwiroc'h",
     "filename": "Anv ar restr",
     "filereuploadsummary": "Kemmoù er restr :",
     "filestatus": "Statud a-fet gwirioù aozer :",
     "filesource": "Mammenn :",
-    "uploadedfiles": "Restroù karget",
     "ignorewarning": "Na ober van ouzh an evezhiadenn hag enrollañ ar restr forzh penaos",
     "ignorewarnings": "Na ober van ouzh ar c'hemennoù diwall",
     "minlength1": "Anv ar restroù a rank bezañ keit hag ul lizherenn da nebeutañ.",
     "overwroteimage": "enporzhiet ur stumm nevez eus \"[[$1]]\"",
     "uploaddisabled": "Ho tigarez, diweredekaet eo bet kas ar restr-mañ.",
     "copyuploaddisabled": "Diweredekaet eo bet ar pellgargañ dre URL.",
-    "uploadfromurl-queued": "Lakaet eo bet ho pellgargadenn er roll gortoz.",
     "uploaddisabledtext": "Diweredekaet eo an enporzhiañ restroù.",
     "php-uploaddisabledtext": "Diweredekaet eo bet ar pellgargañ e PHP. Gwiriit an dibarzh arventennoù file_uploads.",
     "uploadscripted": "Er restr-mañ ez eus kodoù HTML pe skriptoù a c'hallfe bezañ kammgomprenet gant ur merdeer Kenrouedad.",
     "upload-misc-error": "Fazi kargañ dianav",
     "upload-misc-error-text": "Ur fazi dianav zo bet e-ser kargañ.\nGwiriit eo reizh an URL hag e c'hall bezañ tizhet hag esaeit en-dro.\nMa talc'h ar gudenn, kit e darempred gant ur [[Special:ListUsers/sysop|merour]].",
     "upload-too-many-redirects": "Re a adkasoù zo en URL-mañ.",
-    "upload-unknown-size": "Ment dianav",
     "upload-http-error": "Ur fazi HTTP zo bet : $1",
     "upload-copy-upload-invalid-domain": "N'haller ket seveniñ enporzhiadennoù a-bell adalek an domani-mañ.",
     "backend-fail-stream": "Dibosupl eo lenn ar restr $1.",
     "img-auth-streaming": "O lenn en ur dremen \"$1\"",
     "img-auth-public": "Talvezout a ra an arc'hwel img_auth.php da ezvont restroù adalek ur wiki prevez.\nKefluniet eo bet ar wiki-mañ evel ur wiki foran.\nDiweredekaet eo bet img_auth.php evit ur surentez eus ar gwellañ",
     "img-auth-noread": "N'eo ket aotreet an implijer da lenn \"$1\"",
-    "img-auth-bad-query-string": "Un neudennad goulenn direizh zo gant an URL.",
     "http-invalid-url": "URL direizh : $1",
     "http-invalid-scheme": "N'eo ket skoret an URLoù gant ar patrom \"$1\"",
     "http-request-error": "Ur fazi dianavezet 'zo bet pa veze kaset ar reked.",
     "filehist-dimensions": "Mentoù",
     "filehist-filesize": "Ment ar restr",
     "filehist-comment": "Notenn",
-    "filehist-missing": "Restr diank",
     "imagelinks": "Implij ar restr",
     "linkstoimage": "Liammet eo {{PLURAL:$1|ar bajenn-mañ|an $1 pajenn-mañ}} ouzh ar restr-mañ :",
     "linkstoimage-more": "Ouzhpenn $1 {{PLURAL:$1|bajenn zo liammet ouzh|pajenn zo liammet ouzh}} ar restr-mañ.\nNe laka ar roll-mañ war wel nemet {{PLURAL:$1|ar bajenn gentañ liammet ouzh|an $1 pajenn gentañ liammet ouzh}} ar rest-mañ.\nUr [[Special:WhatLinksHere/$2|roll klok]] a c'haller da gaout.",
     "listgrouprights-removegroup-self": "Gallout a ra tennañ {{PLURAL:$2|ar strollad|strolladoù}} eus kont an-unan : $1",
     "listgrouprights-addgroup-self-all": "Gallout a ra ouzhpennañ an holl strolladoù da gont an-unan",
     "listgrouprights-removegroup-self-all": "Gallout a ra tennañ kuit an holl strolladoù eus kont an-unan.",
+    "trackingcategories-name": "Anv ar gemennadenn",
     "trackingcategories-nodesc": "N'eus deskrivadur ebet.",
     "trackingcategories-disabled": "Diweredekaet eo ar rummad",
     "mailnologin": "Chomlec'h ebet",
     "emailuser-title-notarget": "Kas ur postel d'un implijer",
     "emailpage": "Postel implijer",
     "emailpagetext": "Gallout a rit ober gant ar furmskrid a-is a-benn kas ur postel d'an {{GENDER:$1|implijer|implijerez}}-mañ.\nE maezienn \"Kaser\" ho postel e vo merket ar chomlec'h postel resisaet ganeoc'h-c'hwi en ho [[Special:Preferences|Penndibaboù]], d'ar resever da c'hallout respont deoc'h war-eeun ma kar.",
-    "usermailererror": "Fazi postel :",
     "defemailsubject": "Postel kaset eus {{SITENAME}} gant an implijer \"$1\"",
     "usermaildisabled": "Diweredekaet eo ar c'has posteloù etre an implijerien.",
     "usermaildisabledtext": "Ne c'helloc'h ket kas posteloù da implijerien all er wiki-mañ",
     "noemailtitle": "Chomlec'h postel ebet",
     "noemailtext": "N'en deus ket an implijer-mañ resisaet chomlec'h postel reizh ebet.",
-    "nowikiemailtitle": "Berzet kas posteloù",
     "nowikiemailtext": "Dibabet ez eus bet gant an implijerien-mañ chom hep resev posteloù a-berzh implijerien all.",
     "emailnotarget": "N'eus ket eus ar c'haser-mañ pe faziek eo an anv implijer lakaet.",
     "emailtarget": "Merkañ anav implijer ar resever",
     "watching": "Heuliet...",
     "unwatching": "Paouez da evezhiañ...",
     "watcherrortext": "Ur gudenn zo bet en ur gemmañ arventennoù ho roll evezhiañ evit \"$1\".",
-    "enotif_mailer": "Posteler Kemenn {{SITENAME}}",
     "enotif_reset": "Merkañ an holl bajennoù evel gwelet",
     "enotif_impersonal_salutation": "implijer {{SITENAME}}",
     "enotif_subject_deleted": "Pajenn $1 {{SITENAME}} zo bet {{GENDER:$2|dilamet}} gant $2",
     "excontent": "endalc'had '$1'",
     "excontentauthor": "an danvez a oa : '$1' (ha '[[Special:Contributions/$2|$2]]' a oa bet an implijer nemetañ)",
     "exbeforeblank": "A-raok diverkañ e oa an endalc'had : '$1'",
-    "exblank": "pajenn c'houllo",
     "delete-confirm": "Diverkañ \"$1\"",
     "delete-legend": "Diverkañ",
     "historywarning": "'''Diwallit :''' Emaoc'h war-nes diverkañ ur bajenn dezhi un istor gant e-tro {{PLURAL:$1|adweladenn|adweladenn}} :",
     "importunknownsource": "Dianav eo seurt ar vammenn enporzhiañ",
     "importcantopen": "N'eus ket bet gallet digeriñ ar restr enporzhiet",
     "importbadinterwiki": "Liamm etrewiki fall",
-    "importnotext": "Goullo pe hep tamm testenn ebet",
     "importsuccess": "Deuet eo an enporzhiadenn da benn vat!",
-    "importhistoryconflict": "Divankadennoù zo er pennad istor ha tabut zo gant se (marteze eo bet enporzhiet ar bajenn araozoc'h)",
     "importnosources": "N'eus bet spisaet tamm mammenn etrewiki ebet ha diweredekaet eo enporzhiañ an Istor war-eeun.",
     "importnofile": "N'eus bet enporzhiet restr ebet.",
     "importuploaderrorsize": "C'hwitet eo bet enporzhiañ ar restr. Brasoc'h eo ar restr eget ar vent aotreet.",
     "tags": "Balizennoù ar c'hemmoù reizh",
     "tag-filter": "Silañ ar [[Special:Tags|balizennoù]] :",
     "tag-filter-submit": "Silañ",
+    "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Balizenn}}]]: $2)",
     "tags-title": "Balizennoù",
     "tags-intro": "Rollañ a ra ar bajenn-mañ ar balizennoù a c'hall ar meziant implijout da verkañ kemmoù hag an dalvoudegezh anezho.",
     "tags-tag": "Anv ar valizenn",
index eef125a..c9c1cef 100644 (file)
     "disclaimers": "Dazkaşşík",
     "disclaimerpage": "Project:Las dazkaşşí",
     "edithelp": "Radbadal ráhşoní",
-    "helppage": "Help:Ridoband",
     "mainpage": "Monpanna",
     "mainpage-description": "Monpanna",
     "portal": "Cágiŕd bundar",
index c750203..8fdc6c2 100644 (file)
     "pool-errorunknown": "Nepoznata greška",
     "aboutsite": "O {{GRAMMAR:dativ|{{SITENAME}}}}",
     "aboutpage": "Project:O_projektu_{{SITENAME}}",
-    "copyright": "Sadržaj je dostupan pod licencom $1 osim ako je drugačije navedeno.",
+    "copyright": "Sadržaj je dostupan pod licencom $1 osim ako je navedeno drugačije.",
     "copyrightpage": "{{ns:project}}:Autorska_prava",
     "currentevents": "Trenutni događaji",
     "currentevents-url": "Project:Novosti",
     "createacct-yourpasswordagain": "Potvrdite šifru/lozinku",
     "createacct-yourpasswordagain-ph": "Unesite šifru/lozinku opet",
     "remembermypassword": "Zapamti moju šifru na ovom računaru (najviše $1 {{PLURAL:$1|dan|dana|dana}})",
-    "userlogin-remembermypassword": "Ostavi me prijavljen",
+    "userlogin-remembermypassword": "Ostavi me prijavljenog/-u",
     "userlogin-signwithsecure": "Koristite sigurnu konekciju",
     "yourdomainname": "Vaš domen:",
     "password-change-forbidden": "Ne možete da promjenite lozinku na ovom wikiju.",
     "gotaccount": "Već imate korisnički račun? $1.",
     "gotaccountlink": "Prijavi se",
     "userlogin-resetlink": "Zaboravili ste detalje vaše prijave?",
-    "userlogin-resetpassword-link": "Zaboravili ste šifru/lozinku?",
+    "userlogin-resetpassword-link": "Zaboravili ste lozinku?",
     "userlogin-loggedin": "Već ste prijavljeni kao {{GENDER:$1|$1}}.\nKoristite donji obrazac da biste se prijavili kao drugi korisnik.",
     "userlogin-createanother": "Napravi još jedan račun",
     "createacct-join": "Unesite svoje podatke ispod.",
     "passwordtooshort": "Šifra mora imati najmanje {{PLURAL:$1|1 znak|$1 znaka|$1 znakova}}.",
     "password-name-match": "Vaša šifra mora biti različita od Vašeg korisničkog imena.",
     "password-login-forbidden": "Korištenje ovih korisničkih imena i šifara je zabranjeo.",
-    "mailmypassword": "Poništi šifru/lozinku",
+    "mailmypassword": "Poništi lozinku",
     "passwordremindertitle": "Nova privremena šifra za {{SITENAME}}",
     "passwordremindertext": "Neko (vjerovatno Vi, sa IP adrese $1) je zahtjevao da vam pošaljemo novu šifru za {{SITENAME}}  ($4). Privremena šifra za korisnika \"$2\" je napravljena i glasi \"$3\". Ako ste to željeli, sad treba da se prijavite i promjenite šifru.\nVaša privremena šifra će isteči za {{PLURAL:$5|$5 dan|$5 dana}}.\n\nAko je neko drugi napravio ovaj zahtjev ili ako ste se sjetili vaše šifre i ne želite više da je promjenite, možete da ignorišete ovu poruku i da nastavite koristeći vašu staru šifru.",
     "noemail": "Ne postoji adresa e-pošte za korisnika \"$1\".",
     "noemailcreate": "Morate da navedete validnu e-mail adresu",
     "passwordsent": "Nova šifra je poslata na adresu e-pošte korisnika \"$1\".\nMolimo Vas da se prijavite pošto je primite.",
     "blocked-mailpassword": "Da bi se spriječila nedozvoljena akcija, Vašoj IP adresi je onemogućeno uređivanje stranica kao i mogućnost zahtijevanje nove šifre.",
-    "eauthentsent": "Na navedenu adresu poslana je e-poruka s potvrdom.\nPrije nego što pošaljemo daljnje poruke, pratite uputstva s e-pošte da biste potvrdili da je račun zaista Vaša.",
+    "eauthentsent": "Na navedenu adresu poslana je e-poruka s potvrdom.\nPrije nego što pošaljemo daljnje poruke, pratite uputstva s e-pošte da biste potvrdili da je račun zaista Vaš.",
     "throttled-mailpassword": "Već Vam je poslan e-mail za promjenu šifre u {{PLURAL:$1|zadnjih sat vremena|zadnja $1 sata|zadnjih $1 sati}}.\nDa bi se spriječila zloupotreba, može se poslati samo jedan e-mail za promjenu šifre {{PLURAL:$1|svakih sat vremena|svaka $1 sata|svakih $1 sati}}.",
     "mailerror": "Greška pri slanju e-pošte: $1",
     "acct_creation_throttle_hit": "Posjetioci na ovoj wiki koji koriste Vašu IP adresu su već napravili {{PLURAL:$1|$1 račun|$1 računa}} u zadnjih nekoliko dana, što je najveći broj dopuštenih napravljenih računa za ovaj period.\nKao rezultat, posjetioci koji koriste ovu IP adresu ne mogu trenutno praviti više računa.",
-    "emailauthenticated": "Vaša adresa e-pošte je potvrđena $2 u $3.",
-    "emailnotauthenticated": "Vaša adresa e-pošte još nije potvrđena.\nNijedna e-poruka neće biti poslana za bilo koju uslugu od slijedećih.",
+    "emailauthenticated": "Vaša adresa e-pošte potvrđena je $2 u $3.",
+    "emailnotauthenticated": "Vaša adresa e-pošte još nije potvrđena.\nNijedna e-poruka neće biti poslana za bilo koju uslugu od sljedećih.",
     "noemailprefs": "Unesite e-mail adresu za osposobljavanje slijedećih usluga.",
     "emailconfirmlink": "Potvrdite Vašu e-mail adresu",
     "invalidemailaddress": "Ova e-mail adresa ne može biti prihvaćena jer je u neodgovarajućem obliku.\nMolimo vas da unesete ispravnu adresu ili ostavite prazno polje.",
     "accountcreatedtext": "Korisnički račun za [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|razgovor]]) je napravljen.",
     "createaccount-title": "Pravljenje korisničkog računa za {{SITENAME}}",
     "createaccount-text": "Neko je napravio korisnički račun za vašu e-mail adresu na {{SITENAME}} ($4) sa imenom \"$2\", i sa šifrom \"$3\".\nTrebali biste se prijaviti i promjeniti šifru.\n\nMožete ignorisati ovu poruku, ako je korisnički račun napravljen greškom.",
-    "usernamehasherror": "Korisničko ime ne može sadržavati haš znakove",
     "login-throttled": "Previše puta ste se pokušali prijaviti.\nMolimo Vas da sačekate $1 prije nego što pokušate ponovo.",
     "login-abort-generic": "Vaša prijava nije bila uspješna – Prekinuto",
     "loginlanguagelabel": "Jezik: $1",
     "resetpass-abort-generic": "Promjenu šifre/lozinke je prekinula ekstenzija.",
     "passwordreset": "Poništavanje šifre",
     "passwordreset-text-one": "Ispunite ovaj obrazac da biste resetovali Vašu šifru/lozinku.",
-    "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja kako bi ste dobili privremenu šifru/lozinku putem e-pošte.}}",
+    "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja kako biste dobili privremenu lozinku putem e-pošte.}}",
     "passwordreset-legend": "Poništi šifru",
     "passwordreset-disabled": "Poništavanje šifre  je onemogućeno na ovoj wiki.",
     "passwordreset-emaildisabled": "E-pošta je onemogućena na ovom wikiju.",
     "passwordreset-emailtext-ip": "Neko (vjerovatno Vi, s IP adrese $1) je zatražio podsjetnik Vaših detalja računa za {{SITENAME}} ($4). Sljedeći {{PLURAL:$3|račun korisnika je|računi korisnika su}} povezani s ovom e-mail adresom:\n\n$2\n\n{{PLURAL:$3|Ova privremena šifra|Ove privremene šifre}} će isteći za {{PLURAL:$5|jedan dan|$5 dana}}.\nTrebate se prijaviti i odabrati novu šifru. Ako je neko drugi napravio ovaj zahtjev, ili ako ste se sjetili Vaše početne šifre, a ne želite je promijeniti, možete zanemariti ovu poruku i nastaviti koristiti staru šifru.",
     "passwordreset-emailtext-user": "Korisnik $1 na {{SITENAME}} je zatražio podsjetnik o detaljima Vašeg računa za {{SITENAME}} ($4). Sljedeći {{PLURAL:$3|korisnički račun je|korisnički računi su}} povezani s ovom e-mail adresom:\n\n$2\n\n{{PLURAL:$3|Ova privremena šifra|Ove privremene šifre}} će isteći za {{PLURAL:$5|jedan dan|$5 dana}}.\nTrebate se prijaviti i odabrati novu šifru. Ako je neko drugi napravio ovaj zahtjev, ili ako ste se sjetili Vaše originalne šifre, a ne želite je više promijeniti, možete zanemariti ovu poruku i nastaviti koristiti staru šifru.",
     "passwordreset-emailelement": "Korisničko ime: $1\nPrivremena šifra: $2",
-    "passwordreset-emailsent": "Podsjetnik o šifri/lozinci je poslat na Vašu E-mail adresu.",
-    "passwordreset-emailsent-capture": "Poslat je podsjetnik preko e-pošte (prikazan dole).",
-    "passwordreset-emailerror-capture": "E-poruka za resetiranje šifre/lozinke, prikazan ispod, je poslan, ali slanje {{GENDER:$2|korisniku|korisnici}} nije uspjelo: $1",
+    "passwordreset-emailsent": "Podsjetnik na lozinku poslan je na Vašu e-mail adresu.",
+    "passwordreset-emailsent-capture": "Poslan je podsjetnik preko e-pošte (prikazano ispod).",
+    "passwordreset-emailerror-capture": "E-poruka za resetiranje lozinke, prikazano ispod, poslana je, ali slanje {{GENDER:$2|korisniku|korisnici}} nije uspjelo: $1",
     "changeemail": "Promijeni e-mail adresu",
     "changeemail-header": "Promijeni e-mail adresu korisničkog računa",
     "changeemail-text": "Ispunite ovaj formular da biste promijenili svoju e-mail adresu. Morat ćete upisati svoj pasvord da potvrdite ovu promjenu.",
     "accmailtitle": "Šifra poslana.",
     "accmailtext": "Nasumično odabrana šifra za [[User talk:$1|$1]] je poslata na adresu $2.\n\nŠifra/lozinka za ovaj novi račun može biti promijenjena na stranici ''[[Special:ChangePassword|izmjene šifre]]'' nakon prijave.",
     "newarticle": "(Novi)",
-    "newarticletext": "Došli ste na stranicu koja još nema sadržaja.\n*Ako želite unijeti sadržaj, počnite tipkati u prozor ispod ovog teksta.\n*Ako vam treba pomoć, idite na [$1 stranicu za pomoć].\n*Ako ste ovamo dospjeli slučajno, kliknite dugme \"Nazad\" (''Back'') u svom internet pregledniku.",
+    "newarticletext": "Došli ste na stranicu koja još nema sadržaja.\n*Ako želite unijeti sadržaj, počnite tipkati u prozor ispod ovog teksta.\n*Ako Vam treba pomoć, idite na [$1 stranicu za pomoć].\n*Ako ste ovamo dospjeli slučajno, kliknite na dugme \"Nazad\" (''Back'') u Vašem internetskom pregledniku.",
     "anontalkpagetext": "----''Ovo je stranica za razgovor za anonimnog korisnika koji još nije napravio nalog ili ga ne koristi.\nZbog toga moramo da koristimo brojčanu IP adresu kako bismo identifikovali njega ili nju.\nTakvu adresu može dijeliti više korisnika.\nAko ste anonimni korisnik i mislite da su vam upućene nebitne primjedbe, molimo Vas da [[Special:UserLogin/signup|napravite nalog]] ili se [[Special:UserLogin|prijavite]] da biste izbjegli buduću zabunu sa ostalim anonimnim korisnicima.''",
     "noarticletext": "Na ovoj stranici trenutno nema teksta.\nMožete [[Special:Search/{{PAGENAME}}|tražiti naslov ove stranice]] na drugim stranicama.\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} tražiti u povezanim zapisima] ili [{{fullurl:{{FULLPAGENAME}}|action=edit}} urediti ovu stranicu]</span>.",
     "noarticletext-nopermission": "Trenutno nema teksta na ovoj stranici.\nMožete [[Special:Search/{{PAGENAME}}|tražiti ovaj naslov stranice]] na drugim stranicama ili <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti povezane zapisnike]</span>, ali nemate dozvolu da napravite ovu stranicu.",
-    "missing-revision": "Uređivanje broj $1 na stranici \"{{FULLPAGENAME}}\" ne postoji.\n\nOvo se obično dešava kada pratite zastarjelu vezu na stranice koja je obrisana.\nViše informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} protokol brisanja].",
+    "missing-revision": "Uređivanje broj $1 na stranici \"{{FULLPAGENAME}}\" ne postoji.\n\nOvo se obično dešava kad pratite zastarjelu vezu na stranicu koja je obrisana.\nViše informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} protokolu brisanja].",
     "userpage-userdoesnotexist": "Korisnički račun \"<nowiki>$1</nowiki>\" nije registrovan.\nMolimo provjerite da li želite napraviti/izmijeniti ovu stranicu.",
     "userpage-userdoesnotexist-view": "Korisnički račun \"$1\" nije registrovan.",
     "blocked-notice-logextract": "Ovaj korisnik je trenutno blokiran.\nPosljednje stavke zapisnika blokiranja možete pogledati ispod:",
     "powersearch-togglenone": "Ništa",
     "search-external": "Vanjska pretraga",
     "searchdisabled": "<p>Izvinjavamo se!  Puno pretraga teksta je privremeno onemogućena.  U međuvremenu, možete koristiti Google za pretragu.  Indeks može biti stariji.",
-    "search-error": "Dogodila se greška prilikom pretraživanja: $1",
+    "search-error": "Desila se greška prilikom pretraživanja: $1",
     "preferences": "Postavke",
     "mypreferences": "Postavke",
     "prefs-edits": "Broj izmjena:",
     "prefs-skin": "Koža",
     "skin-preview": "Pregled",
     "datedefault": "Nije bitno",
-    "prefs-datetime": "Datum i vrijeme",
     "prefs-labs": "Eksperimentalne mogućnosti",
     "prefs-user-pages": "Korisničke stranice",
     "prefs-personal": "Korisnički podaci",
     "right-editmyusercss": "Uredite svoje vlastite korisničke CSS datoteke",
     "right-editmyuserjs": "Uredite vlastite korisničke JavaScript datoteke",
     "right-viewmywatchlist": "Pogledaj svoj spisak praćenih stranica",
-    "right-viewmyprivateinfo": "Vidite svoje privatne podatke (npr. adresa e-pošte, pravo ime)",
+    "right-viewmyprivateinfo": "Pogledajte Vaše privatne podatke (npr, adresa e-pošte, pravo ime)",
     "right-editmyprivateinfo": "Uredite svoje privatne podatke (npr. adresa e-pošte, pravo ime)",
     "right-editmyoptions": "Uredite svoje postavke",
     "right-rollback": "Brzo vraćanje izmjena na zadnjeg korisnika koji je uređivao određenu stranicu",
     "action-viewmyprivateinfo": "pogledajte svoje privatne informacije",
     "action-editmyprivateinfo": "uredite svoje privatne podatke",
     "nchanges": "$1 {{PLURAL:$1|promjena|promjene|promjena}}",
-    "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|izmjena od vaše posljedne posjete}}",
+    "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|izmjena od Vaše posljedne posjete}}",
     "enhancedrc-history": "historija",
     "recentchanges": "Nedavne izmjene",
     "recentchanges-legend": "Postavke nedavnih izmjena",
     "upload-permitted": "Podržane vrste datoteka: $1.",
     "upload-preferred": "Preferirane vrste datoteka: $1.",
     "upload-prohibited": "Zabranjene vrste datoteka: $1.",
-    "uploadlog": "log slanja",
     "uploadlogpage": "Protokol postavljanja",
     "uploadlogpagetext": "Ispod je spisak najskorijih slanja.",
     "filename": "Ime datoteke",
     "filereuploadsummary": "Izmjene datoteke:",
     "filestatus": "Status autorskih prava:",
     "filesource": "Izvor:",
-    "uploadedfiles": "Poslati fajlovi",
     "ignorewarning": "Zanemari upozorenja i sačuvaj datoteku",
     "ignorewarnings": "Zanemari sva upozorenja",
     "minlength1": "Ime datoteke mora imati barem jedno slovo.",
     "overwroteimage": "postavljena nova verzija datoteke \"[[$1]]\"",
     "uploaddisabled": "Slanje fajlova je isključeno",
     "copyuploaddisabled": "Postavljanje putem URL nije omogućeno.",
-    "uploadfromurl-queued": "Vaše postavljanje je na čekanju.",
     "uploaddisabledtext": "Postavljanje datoteka je onemogućeno.",
     "php-uploaddisabledtext": "Postavljanje datoteka preko PHP je onemogućeno. Molimo provjerite postavku file_uploads.",
     "uploadscripted": "Ova datoteka sadrži HTML ili skriptni kod koji može izazvati grešku kod internet preglednika.",
     "upload-misc-error": "Nepoznata greška pri postavljanju",
     "upload-misc-error-text": "Desila se nepoznata greška pri postavljanju.\nMolimo Vas provjerite da li je URL tačan i dostupan pa pokušajte ponovo.\nAko se problem ne riješi, kontaktirajte [[Special:ListUsers/sysop|administratora]].",
     "upload-too-many-redirects": "URL sadrži previše preusmjerenja",
-    "upload-unknown-size": "Nepoznata veličina",
     "upload-http-error": "Desila se HTTP greška: $1",
     "upload-copy-upload-invalid-domain": "Kopije postavljenih datoteka nisu dostupne sa ove domene.",
     "backend-fail-stream": "Ne mogu emitirati datoteku $1.",
     "img-auth-streaming": "Tok \"$1\".",
     "img-auth-public": "Funkcija img_auth.php služi za izlaz datoteka sa privatnih wikija.\nOva wiki je postavljena kao javna wiki.\nZa optimalnu sigurnost, img_auth.php je onemogućena.",
     "img-auth-noread": "Korisnik nema pristup za čitanje \"$1\".",
-    "img-auth-bad-query-string": "URL ima nevaljan izraz upita.",
     "http-invalid-url": "Nevaljan URL: $1",
     "http-invalid-scheme": "URLovi za koje šema \"$1\" nije podržana",
     "http-request-error": "Nepoznata greška pri slanju zahtjeva.",
     "filehist-dimensions": "Dimenzije",
     "filehist-filesize": "Veličina datoteke",
     "filehist-comment": "Komentar",
-    "filehist-missing": "Datoteka nedostaje",
     "imagelinks": "Upotreba datoteke",
     "linkstoimage": "{{PLURAL:$1|Slijedeća stranica koristi|Slijedećih $1 stranica koriste}} ovu sliku:",
     "linkstoimage-more": "Više od $1 {{PLURAL:$1|datoteke|datoteka}} je povezano s ovom datotekom.\nSlijedeći spisak pokazuje samo {{PLURAL:$1|prvu stranicu povezanu|prve $1 stranice povezane|prvih $1 stranica povezanih}} s ovom datotekom.\nOvdje je dostupan [[Special:WhatLinksHere/$2|potpuni spisak]].",
     "protectedpages-noredirect": "Sakrij preusmjerenja",
     "protectedpagesempty": "Trenutno nijedna stranica nije zaštićena s ovim parametrima.",
     "protectedpages-page": "Stranica",
-    "protectedpages-expiry": "Ističe",
+    "protectedpages-expiry": "Istječe",
     "protectedpages-reason": "Razlog",
     "protectedpages-unknown-timestamp": "Nepoznato",
     "protectedtitles": "Zaštićeni naslovi",
     "emailuser-title-notarget": "Pošalji e-mail korisniku",
     "emailpage": "Pošalji e-mail korisniku",
     "emailpagetext": "Možete korisiti formu ispod za slanje e-mail poruka {{GENDER:$1|ovom korisniku|ovoj korisnici|ovom korisniku}}.\nE-mail adresa koju ste unijeli u [[Special:Preferences|Vašim korisničkim postavkama]] će biti prikazana kao adresa pošiljaoca, tako da će primaoc poruke moći da Vam odgovori.",
-    "usermailererror": "Objekat pošte je vratio grešku:",
     "defemailsubject": "{{SITENAME}} e-pošta od {{GENDER:$1|korisnika|korisnice|korisnika}} $1",
     "usermaildisabled": "Korisnički e-mail onemogućen",
     "usermaildisabledtext": "Ne možete poslati e-mail drugim korisnicima na ovoj wiki",
     "noemailtitle": "Nema adrese e-pošte",
     "noemailtext": "Ovaj korisnik nije naveo ispravnu adresu e-pošte.",
-    "nowikiemailtitle": "E-mail nije dopušten",
     "nowikiemailtext": "Ovaj korisnik je odabrao da ne prima e-mail poštu od drugih korisnika.",
     "emailnotarget": "Neodgovarajuće ili nevaljano korisničko ime za primanje e-maillova.",
     "emailtarget": "Unesite korisnika za primanje e-mailova",
     "watching": "Pratim...",
     "unwatching": "Ne pratim...",
     "watcherrortext": "Desila se greška pri promjeni postavki vašeg spiska praćenja za \"$1\".",
-    "enotif_mailer": "{{SITENAME}} obaviještenje o pošti",
     "enotif_reset": "Označi sve strane kao posjećene",
     "enotif_impersonal_salutation": "{{SITENAME}} korisnik",
     "enotif_subject_deleted": "{{gender:$2|Korisnik|Korisnica}} $2 je {{gender:$2|obrisao|obrisala}} stranicu $1 projekta {{SITENAME}}",
     "excontent": "sadržaj je bio: '$1'",
     "excontentauthor": "sadržaj je bio: '$1' (i jedini korisnik koji je mijenjao bio je '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "sadržaj prije brisanja je bio: '$1'",
-    "exblank": "stranica je bila prazna",
     "delete-confirm": "Brisanje \"$1\"",
     "delete-legend": "Obriši",
     "historywarning": "'''Upozorenje''':  Stranica koju želite da obrišete ima historiju sa otprilike $1 {{PLURAL:$1|revizijom|revizije|revizija}}:",
     "cantrollback": "Ne može se vratiti izmjena; posljednji autor je ujedno i jedini.",
     "alreadyrolled": "Ne može se vratiti posljednja izmjena [[:$1]] od korisnika [[User:$2|$2]] ([[User talk:$2|razgovor]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); neko drugi je već izmjenio ili vratio članak.\n\nPosljednja izmjena je bila od korisnika [[User:$3|$3]] ([[User talk:$3|razgovor]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
     "editcomment": "Sažetak izmjene je bio: \"''$1''\".",
-    "revertpage": "Vraćene izmjene korisnika [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]]) na posljednju izmjenu koju je načinio [[User:$1|$1]]",
-    "revertpage-nouser": "Vraćene izmjene skrivenog korisnika na posljednju reviziju koju je {{GENDER:$1|načinio|načinila}} [[User:$1|$1]]",
+    "revertpage": "Vraćene izmjene korisnika [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]]) na posljednju izmjenu koju je napravio [[User:$1|$1]]",
+    "revertpage-nouser": "Vraćene izmjene skrivenog korisnika na posljednju reviziju, koju je {{GENDER:$1|napravio|napravila}} [[User:$1|$1]]",
     "rollback-success": "Poništene izmjene korisnika $1;\nvraćeno na posljednju verziju koju je sačuvao $2.",
     "sessionfailure-title": "Greška u sesiji",
     "sessionfailure": "Izgleda da postoji problem sa vašom sesijom; ova akcija je otkazana kao prevencija protiv napadanja sesija. Kliknite \"back\" (''nazad'') i osvježite stranicu sa koje ste došli, i opet pokušajte.",
     "change-blocklink": "promijeni blokadu",
     "contribslink": "doprinosi",
     "emaillink": "pošalji e-mail",
-    "autoblocker": "Automatski ste blokirani jer dijelite IP adresu sa \"[[User:$1|$1]]\".\nRazlog za blokiranje korisnika $1 je ''$2''",
+    "autoblocker": "Automatski ste blokirani jer dijelite IP-adresu sa \"[[User:$1|$1]]\".\nRazlog za blokiranje korisnika $1 je ''$2''",
     "blocklogpage": "Evidencija blokiranja",
     "blocklog-showlog": "Ovaj korisnik je ranije blokiran. Zapisnik blokiranja je prikazan ispod kao referenca:",
     "blocklog-showsuppresslog": "Ovaj korisnik je ranije blokiran i sakriven. Zapisnik sakrivanja je prikazan ispod kao referenca:",
     "importunknownsource": "Nepoznat izvorni tip uvoza",
     "importcantopen": "Ne može se otvoriti uvozna datoteka",
     "importbadinterwiki": "Loš interwiki link",
-    "importnotext": "Stranica je prazna, ili bez teksta",
     "importsuccess": "Uspješno ste uvezli stranicu!",
-    "importhistoryconflict": "Postoji konfliktna historija revizija (možda je ova stranica ranije uvezena)",
     "importnosources": "Nije definisan međuwiki izvor za uvoz i direktna postavljanja historije su onemogućena.",
     "importnofile": "Uvozna datoteka nije postavljena.",
     "importuploaderrorsize": "Postavljanje uvozne datoteke nije uspjelo.\nDatoteka je veća nego što je dopušteno.",
     "pageinfo-edits": "Ukupan broj izmjena",
     "pageinfo-authors": "Ukupan broj različitih autora",
     "pageinfo-recent-edits": "Broj nedavnih izmjena (u poslednjih $1)",
-    "pageinfo-recent-authors": "Broj nedavnih specifičnih autora",
+    "pageinfo-recent-authors": "Broj nedavnih različitih autora",
     "pageinfo-magic-words": "{{PLURAL:$1|Čarobna riječ|Čarobne riječi}} ($1)",
     "pageinfo-hidden-categories": "{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}} ($1)",
     "pageinfo-templates": "{{PLURAL:$1|Uključeni šablon|Uključeni šabloni}} ($1)",
index bb509bf..b615e24 100644 (file)
     "currentevents-url": "Project:Accanjingeŋ kokkoro",
     "disclaimers": "Diseklaima",
     "edithelp": "Paŋinriŋ mapadécéŋ",
-    "helppage": "Help:Lise",
     "mainpage": "Leppa Indoë",
     "mainpage-description": "Leppa Indoë",
     "portal": "Portal komunitas",
index e76b42f..65888a7 100644 (file)
     "currentevents-url": "Project:Һонин мэдээн",
     "disclaimers": "Татагалзалнууд",
     "disclaimerpage": "Project:Ниитэ татагалзал",
-    "helppage": "Help:Агуулга",
     "mainpage": "Нюур хуудаһан",
     "mainpage-description": "Нюур хуудаһан",
     "portal": "Хурал",
index 8d0caf2..606a52a 100644 (file)
     "protectedpagetext": "S'ha protegit la pàgina per evitar-hi modificacions.",
     "viewsourcetext": "Podeu visualitzar i copiar el codi font d’aquesta pàgina:",
     "viewyourtext": "Vostè pot veure i copiar la font de ' ' les modificacions ' ' d'aquesta pàgina:",
-    "protectedinterface": "Aquesta pàgina proporciona el text de la interfície del software d'aquest wiki i està protegida per evitar els abusos.\nPer agregar o canviar les traduccions per a tots els wikis, si us plau fes servir [//translatewiki.net/ translatewiki.net], el projecte de localització de MediaWiki.",
+    "protectedinterface": "Aquesta pàgina proporciona el text de la interfície del software d'aquest wiki i està protegida per evitar els abusos.\nPer afegir o canviar les traduccions per a tots els wikis, feu servir [//translatewiki.net/ translatewiki.net], el projecte de localització de MediaWiki.",
     "editinginterface": "'''Avís:''' Esteu editant una pàgina que conté cadenes de text per a la interfície d'aquest programari. Tingueu en compte que els canvis que es fan a aquesta pàgina afecten a l'aparença de la interfície d'altres usuaris. Per afegir o modificar traduccions a totes les wikis, plantegeu-vos utilitzar la [//translatewiki.net/ translatewiki.net], el projecte de localització de MediaWiki.",
     "cascadeprotected": "Aquesta pàgina està protegida i no es pot modificar perquè està inclosa en {{PLURAL:$1|la següent pàgina, que té|les següents pàgines, que tenen}} activada l'opció de «protecció en cascada»:\n$2",
     "namespaceprotected": "No teniu permís per a modificar pàgines en l'espai de noms '''$1'''.",
     "accountcreatedtext": "S'ha creat el compte d'usuari de [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|discussió]]).",
     "createaccount-title": "Creació d'un compte a {{SITENAME}}",
     "createaccount-text": "Algú ha creat un compte d'usuari anomenat $2 al projecte {{SITENAME}}\n($4) amb la vostra adreça de correu electrònic. La contrasenya per a l'usuari «$2» és «$3». Hauríeu d'accedir al compte i canviar-vos aquesta contrasenya quan abans millor.\n\nSi no hi teniu cap relació i aquest compte s'ha creat per error, simplement ignoreu el missatge.",
-    "usernamehasherror": "El nom d'usuari no pot contenir caràcters hash",
     "login-throttled": "Heu realitzat massa intents d'accés a la sessió.\nEspereu $1 abans de tornar-ho a provar.",
     "login-abort-generic": "L'entrada al compte d'usuari no ha reeixit - Abortada",
     "loginlanguagelabel": "Llengua: $1",
     "prefs-skin": "Aparença",
     "skin-preview": "prova",
     "datedefault": "Cap preferència",
-    "prefs-datetime": "Data i hora",
     "prefs-labs": "Característiques de laboratori",
     "prefs-user-pages": "Pàgines d'usuari",
     "prefs-personal": "Perfil d'usuari",
     "upload-permitted": "Tipus de fitxer permesos: $1.",
     "upload-preferred": "Tipus de fitxer preferits: $1.",
     "upload-prohibited": "Tipus de fitxer prohibits: $1.",
-    "uploadlog": "registre de càrregues",
     "uploadlogpage": "Registre de càrregues",
     "uploadlogpagetext": "A sota hi ha una llista dels fitxers que s'han carregat més recentment.\nVegeu la [[Special:NewFiles|galeria de nous fitxers]] per a una presentació més visual.",
     "filename": "Nom de fitxer",
     "filereuploadsummary": "Canvis al fitxer:",
     "filestatus": "Situació dels drets d'autor:",
     "filesource": "Font:",
-    "uploadedfiles": "Fitxers carregats",
     "ignorewarning": "Ignora qualsevol avís i desa el fitxer igualment",
     "ignorewarnings": "Ignora qualsevol avís",
     "minlength1": "Els noms de fitxer han de ser de com a mínim d'una lletra.",
     "overwroteimage": "ha carregat una nova versió de «[[$1]]»",
     "uploaddisabled": "S'ha inhabilitat la càrrega",
     "copyuploaddisabled": "Càrrega per URL deshabilitada.",
-    "uploadfromurl-queued": "S'ha encuat la vostra càrrega.",
     "uploaddisabledtext": "S'ha inhabilitat la càrrega de fitxers.",
     "php-uploaddisabledtext": "La càrrega de fitxer està desactivada al PHP. Comproveu les opcions del fitxer file_uploads.",
     "uploadscripted": "Aquest fitxer conté codi HTML o de seqüències que pot ser interpretat equivocadament per un navegador.",
     "upload-misc-error": "S'ha produït un error de càrrega desconegut",
     "upload-misc-error-text": "S'ha produït un error desconegut durant la càrrega. Verifiqueu que l'URL és vàlid i accessible, i torneu-ho a provar. Si el problema persisteix, adreceu-vos a un [[Special:ListUsers/sysop|administrador]].",
     "upload-too-many-redirects": "La URL conté massa redireccions",
-    "upload-unknown-size": "Mida desconeguda",
     "upload-http-error": "Ha ocorregut un error HTTP: $1",
     "upload-copy-upload-invalid-domain": "Les càrregues de còpia no són disponibles des d'aquest domini.",
     "backend-fail-stream": "No s'ha pogut transmetre el fitxer $1.",
     "img-auth-streaming": "Lectura corrent de \"$1\".",
     "img-auth-public": "La funció de img_auth.php és de sortida de fitxers d'un lloc wiki privat.\nAquest wiki està configurat com a wiki públic.\nPer seguretat, img_auth.php està desactivat.",
     "img-auth-noread": "L'usuari no té accés a la lectura de \"$1\".",
-    "img-auth-bad-query-string": "La direcció té una cadena de consulta invàlid.",
     "http-invalid-url": "URL incorrecta: $1",
     "http-invalid-scheme": "Les URLs amb l'esquema \"$1\" no són compatibles.",
     "http-request-error": "La petició HTTP ha fallat per un error desconegut.",
     "filehist-dimensions": "Dimensions",
     "filehist-filesize": "Mida del fitxer",
     "filehist-comment": "Comentari",
-    "filehist-missing": "Fitxer que falta",
     "imagelinks": "Ús del fitxer",
     "linkstoimage": "{{PLURAL:$1|La següent pàgina enllaça|Les següents pàgines enllacen}} a aquesta imatge:",
     "linkstoimage-more": "Hi ha més de $1 {{PLURAL:$1|pàgina que enllaça|pàgines que enllaçen}} a aquest fitxer.\nLa següent llista només mostra {{PLURAL:$1|la primera d'elles|les primeres $1 d'aquestes pàgines}}.\nPodeu consultar la [[Special:WhatLinksHere/$2|llista completa]].",
     "trackingcategories-msg": "Categoria de seguiment",
     "trackingcategories-name": "Nom del missatge",
     "trackingcategories-desc": "Criteris d'inclusió de categoria",
-    "noindex-category-desc": "La pàgina conté una paraula màgica <nowiki>__NOINDEX__</nowiki> (i és en un espai de noms on està permesa) i per tant no està indexada per robots.",
-    "index-category-desc": "La pàgina conté un <nowiki>__INDEX__</nowiki> (i és en un espai de noms on està permès) i per tant està indexat per robots quan normalment no ho seria.",
+    "noindex-category-desc": "La pàgina conté una paraula màgica <code><nowiki>__NOINDEX__</nowiki></code> (i és en un espai de noms on està permesa) i per tant no està indexada per robots.",
+    "index-category-desc": "La pàgina conté un <code><nowiki>__INDEX__</nowiki></code> (i és en un espai de noms on està permès) i per tant està indexat per robots quan normalment no ho seria.",
     "post-expand-template-inclusion-category-desc": "Després d'expandir totes les plantilles, la mida de la pàgina és més gran que <code>$wgMaxArticleSize</code>, per tant algunes plantilles no s'han expandit.",
     "post-expand-template-argument-category-desc": "Després d'expandir un argument de plantilla (alguna cosa entre claus triples, com <code>{{{Això}}}</code>), la pàgina és més gran que <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Massa funcions d'analitzador costoses (com <code>#ifexist</code>) incloses en una pàgina. Vegeu [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
     "broken-file-category-desc": "Categoria afegida si la pàgina conté un enllaç de fitxer trencat (un enllaç per inserir un fitxer quan aquest fitxer no existeix).",
-    "hidden-category-category-desc": "Aquesta és una categoria que conté <nowiki>__HIDDENCAT__</nowiki>, que impedeix que aparegui en la caixa d'enllaços de categoria a les pàgines, per defecte.",
+    "hidden-category-category-desc": "Aquesta és una categoria que conté <code><nowiki>__HIDDENCAT__</nowiki></code>, que impedeix que aparegui en la caixa d'enllaços de categoria a les pàgines, per defecte.",
     "trackingcategories-nodesc": "Sense descripció disponible.",
     "trackingcategories-disabled": "La categoria està inhabilitada",
     "mailnologin": "Cap adreça de remitent",
     "emailuser-title-notarget": "Enviar un correu electrònic a un usuari",
     "emailpage": "Correu electrònic a usuari",
     "emailpagetext": "Podeu usar el següent formulari per a enviar un missatge de correu electrònic a {{GENDER:$1|aquest usuari|aquesta usuària}}.\nL'adreça electrònica que vau indicar a [[Special:Preferences|les vostres preferències d'usuari]] apareixerà com a remitent del correu electrònic, de manera que el destinatari us podrà respondre directament.",
-    "usermailererror": "L'objecte de correu ha retornat un error:",
     "defemailsubject": "Correu electrònic de l'usuari \"$1\" de {{SITENAME}}",
     "usermaildisabled": "Correu electrònic d'usuaris deshabilitat",
     "usermaildisabledtext": "No podeu enviar correus electrònics a altres usuaris en aquest wiki",
     "noemailtitle": "No hi ha cap adreça electrònica",
     "noemailtext": "Aquest usuari no ha especificat una adreça electrònica vàlida.",
-    "nowikiemailtitle": "No es permet el correu electrònic",
     "nowikiemailtext": "Aquest usuari ha escollit no rebre missatges electrònics d'altres usuaris.",
     "emailnotarget": "Nom d'usuari inexistent o no vàlid per al destinatari.",
     "emailtarget": "Introduïu el nom d'usuari del destinatari",
     "watching": "S'està vigilant...",
     "unwatching": "S'està desatenent...",
     "watcherrortext": "S'ha produït un error en canviar els paràmetres de la vostra llista de seguiment de «$1».",
-    "enotif_mailer": "Sistema de notificació per correl de {{SITENAME}}",
     "enotif_reset": "Marca totes les pàgines com a visitades",
     "enotif_impersonal_salutation": "usuari de la {{SITENAME}}",
     "enotif_subject_deleted": "La pàgina $1 de {{SITENAME}} ha estat suprimida per {{gender:$2|$2}}",
     "excontent": "el contingut era: «$1»",
     "excontentauthor": "el contingut era: «$1» (i l'únic coŀlaborador era [[Special:Contributions/$2|$2]])",
     "exbeforeblank": "el contingut abans de buidar era: '$1'",
-    "exblank": "la pàgina estava en blanc",
     "delete-confirm": "Elimina «$1»",
     "delete-legend": "Elimina",
     "historywarning": "'''Atenció:''' La pàgina que esteu a punt d'eliminar té un historial amb $1 {{PLURAL:$1|versió|versions}}, aproximadament:",
     "importunknownsource": "No es reconeix el tipus de la font d'importació",
     "importcantopen": "No s'ha pogut obrir el fitxer a importar",
     "importbadinterwiki": "Enllaç d'interwiki incorrecte",
-    "importnotext": "Buit o sense text",
     "importsuccess": "Importació completada!",
-    "importhistoryconflict": "Hi ha un conflicte de versions en l'historial (la pàgina podria haver sigut importada abans)",
     "importnosources": "No s'ha definit cap font d'origen interwiki i s'ha inhabilitat la càrrega directa d'una còpia de l'historial",
     "importnofile": "No s'ha pujat cap fitxer d'importació.",
     "importuploaderrorsize": "La càrrega del fitxer d'importació ha fallat. El fitxer és més gran que la mida de càrrega permesa.",
index 15f7c1d..c51adae 100644 (file)
     "permalink": "Даиман йолу хьажораг",
     "print": "Зорба тоха",
     "view": "Хьажа",
+    "view-foreign": "Сайтехь $1 хьажа",
     "edit": "Нисъе",
+    "edit-local": "ТӀетоха локальни цуьнах лаьцна",
     "create": "Кхолла",
+    "create-local": "ТӀетоха локальни цуьнах лаьцна",
     "editthispage": "Нисъе хӀъара агӀо",
     "create-this-page": "Кхолла хlара агlо",
     "delete": "ДӀаяккха",
     "accountcreated": "Декъашхочун дӀаяздар кхоьллина",
     "accountcreatedtext": "Кхоьллина декъашхочун [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|дийцаре.]]) дӀаяздар.",
     "createaccount-title": "{{SITENAME}}: декъашхочун дӀаяздар кхоллар",
-    "usernamehasherror": "Декъашхочун цӀеран юкъахь хийла ца еза «цаца»",
     "login-throttled": "Хьо дукха гӀиртира.\nДехар до, собар де $1 юха гӀортале.",
     "login-abort-generic": "Сестемин довзийта тарцаделира",
     "loginlanguagelabel": "Мотт: $1",
     "prefs-skin": "Кечяран тема",
     "skin-preview": "Хьалха муха ю хьажа",
     "datedefault": "Iад йитарца",
-    "prefs-datetime": "Терахь а хан а",
     "prefs-labs": "Муха ю хьажарна таронаш",
     "prefs-user-pages": "Декъашхочун агӀо",
     "prefs-personal": "Долахь болу хаамаш",
     "upload-permitted": "Магийна файлийн тайпанаш: $1.",
     "upload-preferred": "Магийна файлийн тайпанаш: $1.",
     "upload-prohibited": "Магийна доцу файлийн тайпанаш: $1.",
-    "uploadlog": "Чуяхаран тéптар",
     "uploadlogpage": "Чуяхаран тéптар",
     "uploadlogpagetext": "Лахахьа гойтуш бу тӀаьххьара чуяьхна файлийн могӀам.\nИшта хьажа [[Special:NewFiles|керлачу файлийн галерей]].",
     "filename": "Файлан цӀе",
     "filereuploadsummary": "Файлан хийцамаш:",
     "filestatus": "Яржоран хьал:",
     "filesource": "Хьост:",
-    "uploadedfiles": "Чуйаха файлаш",
     "ignorewarning": "ХӀума дац чуяккха файл",
     "ignorewarnings": "ДӀахедар тергал ца дан",
     "badfilename": "Файлан цӀе хийцина → $1.",
     "overwroteimage": "Чуяьккхина файлан керла верси «[[$1]]»",
     "uploaddisabled": "Чуяккхар магийна дац",
     "copyuploaddisabled": "URL тӀера чуяккхар дӀадайина ду.",
-    "uploadfromurl-queued": "Хьа чуяккхар рогӀехь ду.",
     "uploaddisabledtext": "Файлаш чуяхар дӀадайина ду.",
     "uploadscriptednamespace": "ХӀокху SVG-файлан цӀерийн меттиг нийса яц '$1'",
     "upload-source": "ДIайолалун файл",
     "upload-warning-msg": "Чуйоккхуш [$2] гӀалат даьлла. И нисдан юхагӀо [[Special:Upload/stash/$1|upload form]] чу.",
     "upload-proto-error": "Нийса йоцу протокол",
     "upload-file-error": "Чоьхьара гӀалат",
-    "upload-unknown-size": "Хууш доцу барам",
     "upload-http-error": "Даьлла гӀалат HTTP: $1",
     "backend-fail-stream": "ДӀаяккха цатарло файл «$1».",
     "backend-fail-backup": "Таро яц файлан $1 тӀаьхьалонан копиян.",
     "filehist-dimensions": "Файлан барам",
     "filehist-filesize": "Файлан барам",
     "filehist-comment": "Билгалдаккхар",
-    "filehist-missing": "Файл яц",
     "imagelinks": "Файл лелор",
     "linkstoimage": "{{PLURAL:$1|ТӀаьхьайогӀу $1 агӀо тӀетевжина|ТӀаьхьайогӀу $1 агӀонаш тӀетевжина}} хӀокху файлан:",
     "linkstoimage-more": "$1 дукха {{PLURAL:$1|агӀонаш}} чохь лелош ю хӀара файл.\nХӀокху могӀам чохь {{PLURAL:$1|гойтуш ю $1 хьажорг|гойтуш ю $1 хьажоргаш}} хӀокху файланца.\nКхин хьажа йиш ю [[Special:WhatLinksHere/$2|буьззина могӀаме]].",
     "listgrouprights-removegroup": "{{PLURAL:$2|тобан чура дӀабаха|тобанаш чура дӀабаха}} ло: $1",
     "listgrouprights-addgroup-all": "массо тобанийн юкъатоха йиш ю",
     "listgrouprights-removegroup-all": "тобан чура дӀабаха ло",
+    "listgrouprights-namespaceprotection-header": "ЦӀеран анан бехкам",
+    "listgrouprights-namespaceprotection-namespace": "ЦӀерийн ана",
+    "listgrouprights-namespaceprotection-restrictedto": "Декъашхочун хийцамаш бан таро хуьлуьйту бакъонаш",
+    "trackingcategories-msg": "Категореш зер",
     "mailnologintext": "Электронан кехаташ кхехьийта йиш хилийта [[Special:UserLogin|системин чугӀо]] кхин декъашхошка хаамаш кхехьийта хьа [[Special:Preferences|гӀирса чохь]] бакъалла долу электронан почтан адрес хила деза.",
     "emailuser": "Декъашхочун хааман кехат",
     "emailuser-title-target": "Декъашхочунга кехат яздар",
     "unwatchthispage": "ДӀадаккха терго яр",
     "notanarticle": "Бац яззам",
     "notvisiblerev": "Верси дӀаяьккхина хила",
-    "watchlist-details": "Ð¥Ñ\8cан Ñ\82еÑ\80гаме Ð¼Ð¾Ð³Ó\80амÑ\86а $1 {{PLURAL:$1|агÓ\80о|агонаÑ\88}} Ñ\8e, Ð´Ð¸Ð¹Ñ\86аÑ\80е Ð°Ð³Ó\80онаÑ\88а йоцуш.",
+    "watchlist-details": "Ð¥Ñ\8cан Ñ\82еÑ\80гаме Ð¼Ð¾Ð³Ó\80анÑ\86а $1 {{PLURAL:$1|агÓ\80о}} Ñ\8e, Ð´Ð¸Ð¹Ñ\86аÑ\80е Ð°Ð³Ó\80онаÑ\88 йоцуш.",
     "wlheader-enotif": "Электронан почте хаамаш байтар латина ду.",
     "wlheader-showupdated": "Хийцам бина агӀонаш '''Ӏаьржа''' шрифтцан билгальяха ю.",
     "watchlistcontains": "Хьан тергаме могӀам чохь ю $1 {{PLURAL:$1|агӀо|агӀонаш}}.",
     "excontent": "чуьраниг: «$1»",
     "excontentauthor": "чуьраниг: «$1» (дуьххьара кхоьллинарг [[Special:Contributions/$2|$2]])",
     "exbeforeblank": "чуьраниг дlацlанйале хьалха: «$1»",
-    "exblank": "агlо йаьсса йара",
     "delete-confirm": "$1 — дӀаяккхар",
     "delete-legend": "ДӀаяккхар",
     "historywarning": "'''Тергам:''' хӀокху агӀона герггарчу хьесапехь $1 {{PLURAL:$1|версеш|верси|верси}} ю:",
     "unprotectedarticle": "ГӀоролла дӀадаьстина «[[$1]]»",
     "movedarticleprotection": "«[[$2]]» агӀона тӀера гӀаролла «[[$1]]» агӀона тӀе даьккхина",
     "protect-title": "Оцунна «$1» гӀоралла дар",
-    "prot_1movedto2": "«[[$1]]» цӀе хийцина оцу «[[$2]]»",
+    "prot_1movedto2": "«[[$1]]» цӀе хийцина  «[[$2]]»",
     "protect-legend": "Бакъде гӀоралла дар",
     "protectcomment": "Бахьна:",
     "protectexpiry": "Чекхйолу:",
     "table_pager_limit_submit": "Кхочушдé",
     "table_pager_empty": "Цакарийна",
     "autosumm-blank": "Агӏон чулацам дӏабяккхина",
-    "autosumm-replace": "АгӀона чуьраниг хийцина оцу «$1»",
+    "autosumm-replace": "АгӀона чуьраниг хийцина  «$1»",
     "autoredircomment": "ДӀасахьажийна цуна [[$1]] тӏе",
     "autosumm-new": "Керла агlо: «$1»",
     "livepreview-loading": "Чуйолуш…",
     "revdelete-unrestricted": "куьйгалхойн доза тохар дӀаяьккхина",
     "logentry-move-move": "$1 {{GENDER:$2|цӀе хийцина}} $3 → $4",
     "logentry-move-move-noredirect": "$1 {{GENDER:$2|цӀе хийцина}} $3 → $4 дӀасахьажийнарг цаюьтуш",
-    "logentry-move-move_redir": "$1 {{GENDER:$2|цӀе хийцина|цӀе хийцина}} $3 оцу $4 дӀасахьажоран тӀохул",
-    "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|цӀе хийцина|цӀе хийцина}} $3 оцу $4 дӀасахьажоран тӀохул а дӀасахьажийнарг цаюьтуш а",
+    "logentry-move-move_redir": "$1 {{GENDER:$2|цӀе хийцина}} $3 → $4 дӀасахьажоран тӀохул",
+    "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|цӀе хийцина}} $3 → $4 дӀасахьажоран тӀохул а дӀасахьажийнарг цаюьтуш а",
     "logentry-patrol-patrol-auto": "$1 автоматически {{GENDER:$2|хьаьжина}} $3 агӀона версега $4",
     "logentry-newusers-newusers": "{{GENDER:$2|ДӀавазвелла|ДӀаязелла}} керла декъашхо $1",
     "logentry-newusers-create": "{{GENDER:$2|ДӀавазвелла|ДӀаязелла}} керла декъашхо $1",
index 4c64f5d..e5c9390 100644 (file)
     "login-throttled": "ژمارەیەکی زۆر هەوڵت داوە بۆ چوونە ژوورەوە.\nتکایە پێش هەوڵی دووبارە، نەختێک بوەستە.",
     "loginlanguagelabel": "زمان: $1",
     "pt-login": "بچۆ ژوورەوە",
+    "pt-login-button": "بچۆ ژوورەوە",
     "pt-createaccount": "ھەژمار دروست بکە",
     "pt-userlogout": "بچۆ دەرەوە",
     "changepassword": "تێپەڕوشە بگۆڕە",
     "prefs-skin": "پێستە",
     "skin-preview": "پێش بینین",
     "datedefault": "ھەڵنەبژێردراو",
-    "prefs-datetime": "کات و ڕێکەوت",
     "prefs-labs": "کەرەسەکانی تاقیگەکان",
     "prefs-user-pages": "پەڕە بەکارھێنەرییەکان",
     "prefs-personal": "پرۆفایلی بەکارھێنەر",
     "prefs-dateformat": "ڕازاندنەوەی ڕێکەوت",
     "prefs-timeoffset": "قەرەبووکەری کات",
     "prefs-advancedediting": "ھەڵبژاردە گشتییەکان",
+    "prefs-editor": "دەستکاریکەر",
+    "prefs-preview": "پێشبینین",
     "prefs-advancedrc": "ھەڵبژاردەکانی پێشکەوتوو",
     "prefs-advancedrendering": "هەڵبژاردە پێشکەوتووەکان",
     "prefs-advancedsearchoptions": "هەڵبژاردە پێشکەوتووەکان",
     "action-userrights-interwiki": "دەستکاری مافەکانی بەکارهێنەریی بەکارهێنەران لە ویکی‌یەکانی دیکە‌دا",
     "action-siteadmin": "داخستن یا کردنەوەی بنکەدراو",
     "action-sendemail": "ناردنی ئیمەیلەکان",
+    "action-viewmywatchlist": "دیتنی پێرستی چاودێریت",
     "nchanges": "$1 {{PLURAL:$1|گۆڕانکاری}}",
     "recentchanges": "دوایین گۆڕانکارییەکان",
     "recentchanges-legend": "ھەڵبژاردەکانی دوایین گۆڕانکارییەکان",
     "upload-permitted": "جۆرە پەڕگە ڕێگەپێدراوەکان: $1.",
     "upload-preferred": "جۆرە پەڕگانەی بە باشتر دەزانرێن: $1.",
     "upload-prohibited": "جۆرە پەڕگانەی قەدەغە کراون: $1.",
-    "uploadlog": "لۆگی بارکردن",
     "uploadlogpage": "لۆگی بارکردن",
     "uploadlogpagetext": "لەخوارەوە لیستی دوایین بارکراوەکان دەبینی.\nبۆ ئەوەی چاوێکیان لێ بکەی، [[Special:NewFiles|گالەری پەڕگە نوێکان]] ببینە.",
     "filename": "ناوی پەڕگە",
     "filereuploadsummary": "گۆرانکارییەکانی پەڕگە:",
     "filestatus": "بارودۆخی مافی لەبەرگرتنەوە:",
     "filesource": "سەرچاوە:",
-    "uploadedfiles": "پەڕگە بارکراوەکان",
     "ignorewarning": "چاوپۆشان لە ئاگادارییەکان و پاشەکەوت کردن بە هەر شێوەیەک",
     "ignorewarnings": "گوێ مەدە بە ئاگادارییەکان",
     "minlength1": "ناوی پەڕگەکان دەبێ لانیکەم یەک پیت ببێت.",
     "upload-misc-error": "هەڵەیەکی نەناسراوی بارکردن",
     "upload-misc-error-text": "هەڵەیەکی نەناسراو لە کاتی بارکردن ڕووی‌دا.\nتکایە لە درووست‌بوون و دەست‌پێ گەیشتنی URL ئەرخەیان ببە و دیسان تاقی‌بکەوە.\nگەر کێشەکە هەر بەردەوام بوو پەیوەندی بکە بە [[Special:ListUsers/sysop|بەڕێوبەر]].",
     "upload-too-many-redirects": "URL ڕەوانەکەری زۆری لەخۆ گرتووە",
-    "upload-unknown-size": "قەبارەی نادیار",
     "upload-http-error": "هەڵەیەکی HTTP ڕووئ داوە: $1",
     "backend-fail-stream": "نەکرا پەڕگەی $1 بنێردرێت.",
     "backend-fail-notexists": "پەڕگەی $1 بوونی نییە.",
     "filehist-dimensions": "ئەندازە",
     "filehist-filesize": "قەبارەی پەڕگە",
     "filehist-comment": "تێبینی",
-    "filehist-missing": "ون‌بوونی پەڕه",
     "imagelinks": "بەکارھێنانی پەڕگە",
     "linkstoimage": "لەم {{PLURAL:$1|پەڕەی خوارەوە بەستەر دراوە|$1 پەڕەی خوارەوە بەستەر دراوە}} بۆ ئەم پەڕگە:",
     "linkstoimage-more": "زیاتر لە $1 {{PLURAL:$1|بەستەری لاپەڕە|بەستەری لاپەڕە}} بۆ ئەم پەڕگه.\nئەم لیستە {{PLURAL:$1|یەکەم لاپەڕەی بەستەرە|یەکەم لاپەڕە $1 بەستەرە}} بۆ تەنها یەم پەڕگە.\nهەروا [[Special:WhatLinksHere/$2|لیستی تەواو]] ئامادەی کەڵک وەرگرتنە.",
     "listgrouprights-removegroup-self": "لابردنی {{PLURAL:$2|گرووپ|گرووپەکان}} لە سەر ھەژماری خۆی: $1",
     "listgrouprights-addgroup-self-all": "زیادکردنی ھەموو گرووپەکان بۆ سەر ھەژماری خۆی",
     "listgrouprights-removegroup-self-all": "لابردنی هەموو گرووپەکان له‌ سه‌ر هه‌ژماری خۆ",
+    "listgrouprights-namespaceprotection-namespace": "بۆشاییی ناو",
+    "trackingcategories-name": "ناوی پەیام",
     "mailnologin": "ناونیشان بۆ ناردن نییه‌",
     "mailnologintext": "ده‌بێ له‌ [[Special:UserLogin|ژووره‌وه‌]] بیت و ناونیشانێکی بڕواپێ‌کراوی ئی‌مه‌یلت له‌ ناو [[Special:Preferences|هه‌ڵبژارده‌کان]] دیاری کردبێت تا بتوانی ئی‌مه‌یل بنێریت بۆ به‌کارهێنه‌رانی دیکه‌.",
     "emailuser": "ئیمەیل بنێرە بۆ ئەم بەکارھێنەرە",
     "usermaildisabled": "ئیمەیڵی بەکارهێنەر لەکاردانیە",
     "noemailtitle": "هیچ ناونیشانێکی ئی‌مەیل نییە",
     "noemailtext": "ئەم بەکارهێنەرە ناونێشانێکی بڕوا پێکراوی ئی‌مەیلی دانەناوە.",
-    "nowikiemailtitle": "ڕێگە بۆ ئی‌مەیل نەدراوە",
     "nowikiemailtext": "ئەم بەکارهێنەرە تایبەتمەندیی وەرنەگرتنی ئی‌مەیل لە بەکارهێنەرانی دیکەی هەلبژاردووە.",
     "emailtarget": "ناوی بەکارھێنەریی وەرگر بنووسە",
     "emailusername": "ناوی به‌كارھێنه‌ر:",
     "watchlist-options": "ھەڵبژاردەکانی لیستی چاودێری",
     "watching": "چاودێری...",
     "unwatching": "لابردنی چاودێری...",
-    "enotif_mailer": "نامەی ڕاگەیاندنی {{SITENAME}}",
     "enotif_reset": "ھەموو پەڕەکان وەک بینراو دیاری بکە",
     "enotif_impersonal_salutation": "بەکارهێنەری \t{{SITENAME}}",
     "enotif_subject_deleted": "پەڕەی {{SITENAME}} $1 بە دەستی {{gender:$2|$2}} سڕایەوە.",
     "excontent": "ناوەرۆک ئەمە بوو: «$1»",
     "excontentauthor": "ناوەرۆک ئەمە بوو: «$1» (و تەنیا بەشداربوو «[[Special:Contributions/$2|$2]]» بوو)",
     "exbeforeblank": "ناوەرۆک بەر لە واڵاکردنەوە ئەمە بوو: «$1»",
-    "exblank": "پەڕە واڵا بوو",
     "delete-confirm": "سڕینەوەی «$1»",
     "delete-legend": "بیسڕەوە",
     "historywarning": "'''وشیار بە:''' پەڕەیەک کە دەتەوێ بیسڕیتەوە مێژوویەکی ھەیە بە نزیکەی $1 {{PLURAL:$1|پێداچوونەوە|پێداچوونەوە}}وە:",
     "importunknownsource": "جۆری سەرچاوەی هاوردن نەناسراوە",
     "importcantopen": "پەڕگەی ھاوردن ناکرێتەوە",
     "importbadinterwiki": "بەستەری نێوانویکیی خراپ",
-    "importnotext": "واڵا یان بێ‌دەق",
     "importsuccess": "ھاوردن تەواو بوو!",
-    "importhistoryconflict": "کێشە لەو مێژووی پێداچوونەوانە وا هەیە (لەوانەیە ئەم پەڕەیە پێشتر ھاوردە کرابێ)",
     "importnosources": "ھیچ سەرچاوەیەکی ھاوردنی ناوویکی دیاری نەکراوە و بارکردنی ڕاستەوخۆی مێژوو ناچالاکە.",
     "importnofile": "ھیچ پەڕگەیەکی ھاوردن بار نەکراوە.",
     "importuploaderrorsize": "بارکردنی پەڕگەی ھاوردن سەرکەوتوو نەبوو.\nپەڕگەکە لەو قەبارەیەی بۆ بارکردن ڕێگەدراوە گەورەترە.",
index 185a959..02374b0 100644 (file)
     "accountcreatedtext": "$1 içün bir qullanıcı esabı açıldı.",
     "createaccount-title": "{{SITENAME}} saytında yañı bir esap yaratıluvı",
     "createaccount-text": "Birev siziñ e-mail adresini bildirip {{SITENAME}} saytında ($4) \"$2\" adlı bir esap yarattı.\nŞu esap içün parol budır: \"$3\".\nSiz şimdi oturım açıp paroliñizni deñiştirmek kereksiñiz.\n\nŞu esap hata olaraq yaratılğan olsa bu mektüpke qulaq asmayıp olasıñız.",
-    "usernamehasherror": "Qullanıcı adında # işareti olamaz",
     "login-throttled": "Yaqın zamanda pek çoq kere kirmege tırıştıñız.\nLütfen, qayta kirmezden evel biraz bekleñiz.",
     "loginlanguagelabel": "Til: $1",
     "suspicious-userlogout": "Çıqış istegeniñiz red etildi, çünki bozuq bir brauzer ya da keşleyici proksi tarafından yollanğan kibi körüne.",
     "prefs-skin": "Resimleme",
     "skin-preview": "Baqıp çıquv",
     "datedefault": "Standart",
-    "prefs-datetime": "Tarih ve saat",
     "prefs-personal": "Qullanıcı malümatı",
     "prefs-rc": "Soñki deñiştirmeler",
     "prefs-watchlist": "Közetüv cedveli",
     "upload-permitted": "İzinli fayl çeşitleri: $1.",
     "upload-preferred": "İstenilgen fayl çeşitleri: $1.",
     "upload-prohibited": "Yasaqlı fayl çeşitleri: $1.",
-    "uploadlog": "yükleme jurnalı",
     "uploadlogpage": "Fayl yükleme jurnalı",
     "uploadlogpagetext": "Aşağıda eñ soñki qoşulğan fayllarnıñ cedveli buluna.\nDaa körgezmeli körüniş içün [[Special:NewFiles|yañı fayllar galereyasına]] baqıñız.",
     "filename": "Fayl",
     "filereuploadsummary": "Faylnıñ deñiştirilmeleri:",
     "filestatus": "Tarqatuv şartları:",
     "filesource": "Menba:",
-    "uploadedfiles": "Yüklengen fayllar",
     "ignorewarning": "Tenbige qulaq asmayıp faylnı yükle.",
     "ignorewarnings": "Tenbilerge qulaq asma",
     "minlength1": "Faylnıñ adı eñ azdan bir ariften ibaret olmalı.",
     "filehist-dimensions": "En × boy",
     "filehist-filesize": "Fayl büyükligi",
     "filehist-comment": "İzaat",
-    "filehist-missing": "Fayl yoq",
     "imagelinks": "Fayl bağlantıları",
     "linkstoimage": "Bu faylğa bağlantı olğan {{PLURAL:$1|1|$1}} saife:",
     "nolinkstoimage": "Bu faylğa bağlanğan saife yoq.",
     "emailuser": "Qullanıcığa mektüp",
     "emailpage": "Qullanıcığa elektron mektüp yolla",
     "emailpagetext": "Aşağıdaki formanı toldurıp bu qullanıcığa mektüp yollap olursıñız.\n[[Special:Preferences|Öz sazlamalarıñızda]] yazğan elektron adresiñiz mektüpniñ \"Kimden\" satırında yazılacaq, bunıñ içün mektüp alıcı doğrudan-doğru siziñ adresiñizge cevap yollap olur.",
-    "usermailererror": "E-mail beyanatı yollanğan vaqıtta hata olıp çıqtı",
     "defemailsubject": "{{SITENAME}} e-mail",
     "noemailtitle": "E-mail adresi yoqtır",
     "noemailtext": "Bu qullanıcı uyğun elektron poçta adresini bildirmegen.",
     "watchlist-options": "Közetüv cedveli sazlamaları",
     "watching": "Közetüv cedveline kirsetilmekte...",
     "unwatching": "Közetüv cedvelinden yoq etilmekte...",
-    "enotif_mailer": "{{SITENAME}} poçta vastasınen haber bergen hızmet",
     "enotif_reset": "Cümle saifelerni baqılğan olaraq işaretle",
     "enotif_impersonal_salutation": "{{SITENAME}} qullanıcısı",
     "enotif_lastvisited": "Soñki ziyaretiñizden berli yapılğan deñiştirmelerni körmek içün $1 baqıñız.",
     "excontent": "eski metin: '$1'",
     "excontentauthor": "eski metin: '$1' ('$2' isse qoşqan tek bir qullanıcı)",
     "exbeforeblank": "Yoq etilmegen evelki metin: '$1'",
-    "exblank": "saife metini boş",
     "delete-confirm": "\"$1\" saifesini yoq etmektesiñiz",
     "delete-legend": "Yoq etüv",
     "historywarning": "'''Tenbi:''' Siz yoq etmege istegen saifeñizniñ qararnen $1 {{PLURAL:$1|versiyalı|versiyalı}} keçmişi bardır:",
index 4274f70..227f28a 100644 (file)
     "permalink": "Trvalý odkaz",
     "print": "Vytisknout",
     "view": "Zobrazit",
+    "view-foreign": "Prohlédnout na {{grammar:6sg|$1}}",
     "edit": "Editovat",
     "edit-local": "Editovat místní popis",
     "create": "Vytvořit",
     "nstab-help": "Nápověda",
     "nstab-category": "Kategorie",
     "nosuchaction": "Neznámý úkon",
-    "nosuchactiontext": "Činnost („action“) uvedená v URL je neplatná.\nZřejmě jste se překlepli při zadávání adresy nebo jste klikli na chybný odkaz.\nMůže se ale jednat také o chybu {{GRAMMAR:2sg|{{SITENAME}}}}.",
+    "nosuchactiontext": "Činnost („action“) uvedená v URL je neplatná.\nZřejmě jste se při zadávání adresy překlepli nebo jste klikli na chybný odkaz.\nMůže se ale jednat také o chybu {{GRAMMAR:2sg|{{SITENAME}}}}.",
     "nosuchspecialpage": "Neexistující speciální stránka",
     "nospecialpagetext": "<strong>Zadali jste neplatnou speciální stránku.</strong>\n\nZkuste se podívat na [[Special:SpecialPages|seznam všech existujících speciálních stránek]].",
     "error": "Chyba",
     "fileexistserror": "Nelze uložit do souboru „$1“: soubor existuje",
     "unexpected": "Neočekávaná hodnota: \"$1\"=\"$2\".",
     "formerror": "Chyba: nebylo možné odeslat formulář",
-    "badarticleerror": "Tento úkon nelze použít na tuto stránku.",
+    "badarticleerror": "Tuto činnost nelze na této stránce provést.",
     "cannotdelete": "Nebylo možné smazat stránku nebo soubor „$1“.\nMožná už byl(a) smazán(a) někým jiným.",
     "cannotdelete-title": "Stránku „$1“ nelze smazat",
     "delete-hook-aborted": "Smazání bylo bez bližšího vysvětlení zrušeno přípojným bodem.",
     "viewyourtext": "Můžete si prohlédnout a zkopírovat zdrojový kód '''vašich změn''' této stránky:",
     "protectedinterface": "Tato stránka obsahuje text softwarového rozhraní a je zamčena kvůli prevenci zneužití.\nPro přidávání a změny překladů pro všechny wiki použijte [//translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
     "editinginterface": "'''Upozornění:''' Editujete stránku, která definuje texty rozhraní.\nZměny této stránky ovlivní vzhled uživatelského rozhraní všem uživatelům této wiki.\nPro přidávání a změny překladů pro všechny wiki použijte [//translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
-    "cascadeprotected": "Tato stránka je zamčena, neboť je vložena do {{PLURAL:$1|následující stránky zamčené|následujících stránek zamčených|následujících stránek zamčených}} kaskádovým zámkem:\n$2",
+    "cascadeprotected": "Tato stránka je zamčena, neboť je vložena do {{PLURAL:$1|následující stránky, zamčené|následujících stránek, zamčených|následujících stránek, zamčených}} kaskádovým zámkem:\n$2",
     "namespaceprotected": "Nemáte povoleno editovat stránky ve jmenném prostoru '''$1'''.",
     "customcssprotected": "Nemáte povoleno editovat tuto stránku s CSS, protože obsahuje osobní nastavení jiného uživatele.",
     "customjsprotected": "Nemáte povoleno editovat tuto stránku s JavaScriptem, protože obsahuje osobní nastavení jiného uživatele.",
     "virus-badscanner": "Špatná konfigurace: neznámý antivirový program: ''$1''",
     "virus-scanfailed": "prověřování selhalo (kód $1)",
     "virus-unknownscanner": "neznámý antivirus:",
-    "logouttext": "'''Nyní jste odhlášeni.'''\n\nUvědomte si, že některé stránky se mohou i nadále zobrazovat, jako byste byli dosud přihlášeni, pokud nevymažete cache prohlížeče.",
+    "logouttext": "'''Nyní jste odhlášeni.'''\n\nUvědomte si, že některé stránky se mohou i nadále zobrazovat, jako byste byli dosud přihlášeni, dokud nevymažete cache prohlížeče.",
     "welcomeuser": "Vítejte, uživateli $1!",
     "welcomecreation-msg": "Váš účet byl vytvořen.\nNezapomeňte si upravit své [[Special:Preferences|nastavení {{grammar:2sg|{{SITENAME}}}}]].",
     "yourname": "Uživatelské jméno:",
     "wrongpasswordempty": "Bylo zadáno prázdné heslo. Zkuste to znovu.",
     "passwordtooshort": "Heslo musí být dlouhé nejméně $1 {{PLURAL:$1|znak|znaky|znaků}}.",
     "password-name-match": "Vaše heslo nesmí být stejné jako uživatelské jméno.",
-    "password-login-forbidden": "Použití tohoto uživatelského jména a hesla byla zakázáno.",
+    "password-login-forbidden": "Použití tohoto uživatelského jména a hesla bylo zakázáno.",
     "mailmypassword": "Poslat nové heslo",
     "passwordremindertitle": "Nové dočasné heslo na {{grammar:4sg|{{SITENAME}}}}",
-    "passwordremindertext": "Někdo (patrně vy, z IP adresy $1) požádal, abychom o nové heslo\npro přihlášení do {{grammar:2sg|{{SITENAME}}}} ($4). Uživateli „$2“ bylo\nproto nastaveno dočasné heslo „$3“. Pokud jste to byl(a) vy, můžete se\nnyní přihlásit a zvolit si nové heslo. Platnost tohoto dočasného hesla\nvyprší za {{PLURAL:$5|jeden den|$5 dny|$5 dní}}.\n\nPokud jste o změnu hesla nežádal(a) nebo jste si na původní heslo již\nvzpomněl(a) a už ho změnit nechcete, můžete tuto zprávu ignorovat\na používat staré heslo.",
+    "passwordremindertext": "Někdo (patrně vy, z IP adresy $1) požádal o nové heslo\npro přihlášení do {{grammar:2sg|{{SITENAME}}}} ($4). Uživateli „$2“ bylo\nproto nastaveno dočasné heslo „$3“. Pokud jste to byl(a) vy, můžete se\nnyní přihlásit a zvolit si nové heslo. Platnost tohoto dočasného hesla\nvyprší za {{PLURAL:$5|jeden den|$5 dny|$5 dní}}.\n\nPokud jste o změnu hesla nežádal(a) nebo jste si na původní heslo již\nvzpomněl(a) a už ho změnit nechcete, můžete tuto zprávu ignorovat\na používat staré heslo.",
     "noemail": "Uživatel „$1“ nemá zaregistrovanou e-mailovou adresu.",
     "noemailcreate": "Musíte uvést platnou e-mailovou adresu",
     "passwordsent": "Dočasné heslo bylo zasláno na e-mailovou adresu registrovanou pro „$1“. Přihlaste se, prosím, znovu, jakmile ho obdržíte.",
     "eauthentsent": "Na zadanou adresu byl zaslán potvrzovací e-mail.\nŽádné další zprávy vám však na tuto adresu nebudou odeslány, dokud podle instrukcí v e-mailu nepotvrdíte, že tato adresa skutečně patří vám.",
     "throttled-mailpassword": "Během {{PLURAL:$1|poslední hodiny|posledních $1 hodin}} již bylo heslo jednou zasláno.\nKvůli prevenci zneužívání lze heslo zaslat jen jednou za $1 {{PLURAL:$1|hodinu|hodiny|hodin}}.",
     "mailerror": "Chyba při zasílání e-mailu: $1",
-    "acct_creation_throttle_hit": "Uživatelé přicházející z vaší IP adresy už dnes vytvořili $1 {{PLURAL:$1|účet|účty|účtů}}, což je dovolené maximum. Proto v tuto chvíli není dovoleno z této IP adresy další účty zakládat.",
+    "acct_creation_throttle_hit": "Uživatelé používající vaši IP adresu už dnes vytvořili $1 {{PLURAL:$1|účet|účty|účtů}}, což je dovolené maximum. Proto není v tuto chvíli dovoleno z této IP adresy zakládat další účty.",
     "emailauthenticated": "Vaše e-mailová adresa byla ověřena $2 v $3.",
     "emailnotauthenticated": "Vaše e-mailová adresa dosud nebyla ověřena.\nU následujících funkcí nebudou zasílány žádné e-maily.",
     "noemailprefs": "Pro zprovoznění následujících možností musíte zadat svou e-mailovou adresu.",
     "accountcreated": "Účet vytvořen",
     "accountcreatedtext": "Uživatelský účet [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskuse]]) byl vytvořen.",
     "createaccount-title": "Vytvoření účtu na {{grammar:6sg|{{SITENAME}}}}",
-    "createaccount-text": "Někdo vytvořil na {{grammar:6sg|{{SITENAME}}}} ($4) účet s vaší e-mailovou adresou.\nJméno účtu: „$2“\nHeslo: „$3“\nMěli byste se co nejdřív přihlásit a změnit si heslo.\n\nPokud byl účet vytvořen omylem, považujte tuto zprávu za bezpředmětnou.",
-    "usernamehasherror": "Uživatelské jméno nemůže obsahovat znak mřížka (#)",
+    "createaccount-text": "Někdo na {{grammar:6sg|{{SITENAME}}}} ($4) vytvořil účet s vaší e-mailovou adresou.\nJméno účtu: „$2“\nHeslo: „$3“\nMěli byste se co nejdřív přihlásit a změnit si heslo.\n\nPokud byl účet vytvořen omylem, považujte tuto zprávu za bezpředmětnou.",
     "login-throttled": "Provedli jste příliš mnoho pokusů o přihlášení.\nNež to zkusíte znovu, musíte počkat na vypršení lhůty $1.",
     "login-abort-generic": "Vaše přihlášení se nezdařilo – přerušeno",
     "loginlanguagelabel": "Jazyk: $1",
     "resetpass-submit-cancel": "Storno",
     "resetpass-wrong-oldpass": "Nesprávné dočasné nebo aktuální heslo.\nMožná jste si již úspěšně heslo změnili, nebo jste si vyžádali nové dočasné heslo.",
     "resetpass-recycled": "Jako nové heslo si prosím nastavte něco jiného než stávající heslo.",
-    "resetpass-temp-emailed": "Přihlašujete se dočasným heslem zaslaným e-mailem.\nAbyste dokončili přihlášení, nastavte si zde nové heslo:",
+    "resetpass-temp-emailed": "Přihlašujete se dočasným heslem, zaslaným e-mailem.\nAbyste dokončili přihlášení, nastavte si zde nové heslo:",
     "resetpass-temp-password": "Dočasné heslo:",
     "resetpass-abort-generic": "Změna hesla byla zablokována rozšířením.",
     "resetpass-expired": "Platnost vašeho hesla vypršela. Pro přihlášení si nastavte nové heslo.",
     "passwordreset-capture-help": "Pokud zaškrtnete toto políčko, bude e-mail (s dočasným heslem) kromě zaslání uživateli zobrazen i vám.",
     "passwordreset-email": "E-mailová adresa:",
     "passwordreset-emailtitle": "Informace k účtu na {{grammar:6sg|{{SITENAME}}}}",
-    "passwordreset-emailtext-ip": "Někdo (patrně vy, z IP adresy $1) zažádal o nastavení nového hesla k vašemu účtu na {{grammar:6sg|{{SITENAME}}}} ($4). K této adrese {{PLURAL:$3|je přiřazen následující účet|jsou přiřazeny následující účty}}:\n\n$2\n\n{{PLURAL:$3|Toto dočasné heslo|Tato dočasná hesla}} vyprší {{PLURAL:$5|za jeden den|za $5 dny|za $5 dnů}}.\nNyní byste se měl(a) přihlásit a zvolit si nové heslo. Pokud tento požadavek\nposlal někdo jiný nebo jste si na své staré heslo vzpomněl(a), a nechcete ho\ntedy změnit, můžete tuto zprávu ignorovat a nadále používat původní heslo.",
-    "passwordreset-emailtext-user": "{{gender:$1|Uživatel|Uživatelka}} $1 na {{grammar:6sg|{{SITENAME}}}} {{gender:$1|zažádal|zažádala}} o nastavení nového hesla k vašemu\núčtu na {{grammar:6sg|{{SITENAME}}}} ($4). K této adrese {{PLURAL:$3|je přiřazen následující účet|jsou přiřazeny následující účty}}:\n\n$2\n\n{{PLURAL:$3|Toto dočasné heslo|Tato dočasná hesla}} vyprší {{PLURAL:$5|za jeden den|za $5 dny|za $5 dnů}}.\nNyní byste se měl(a) přihlásit a zvolit si nové heslo. Pokud tento požadavek\nposlal někdo jiný nebo jste si na své staré heslo vzpomněl(a), a nechcete ho\ntedy změnit, můžete tuto zprávu ignorovat a nadále používat původní heslo.",
+    "passwordreset-emailtext-ip": "Někdo (patrně vy, z IP adresy $1) zažádal na {{grammar:6sg|{{SITENAME}}}} ($4) o nastavení nového hesla k vašemu účtu. K této adrese {{PLURAL:$3|je přiřazen následující účet|jsou přiřazeny následující účty}}:\n\n$2\n\n{{PLURAL:$3|Toto dočasné heslo|Tato dočasná hesla}} vyprší {{PLURAL:$5|za jeden den|za $5 dny|za $5 dnů}}.\nNyní byste se měl(a) přihlásit a zvolit si nové heslo. Pokud tento požadavek\nposlal někdo jiný nebo jste si na své staré heslo vzpomněl(a), a nechcete ho\ntedy změnit, můžete tuto zprávu ignorovat a nadále používat původní heslo.",
+    "passwordreset-emailtext-user": "{{gender:$1|Uživatel|Uživatelka}} $1 na {{grammar:6sg|{{SITENAME}}}} {{gender:$1|zažádal|zažádala}} na {{grammar:6sg|{{SITENAME}}}} ($4) o nastavení nového hesla k vašemu\núčtu. K této adrese {{PLURAL:$3|je přiřazen následující účet|jsou přiřazeny následující účty}}:\n\n$2\n\n{{PLURAL:$3|Toto dočasné heslo|Tato dočasná hesla}} vyprší {{PLURAL:$5|za jeden den|za $5 dny|za $5 dnů}}.\nNyní byste se měl(a) přihlásit a zvolit si nové heslo. Pokud tento požadavek\nposlal někdo jiný nebo jste si na své staré heslo vzpomněl(a), a nechcete ho\ntedy změnit, můžete tuto zprávu ignorovat a nadále používat původní heslo.",
     "passwordreset-emailelement": "Uživatelské jméno: $1\nDočasné heslo: $2",
     "passwordreset-emailsent": "E-mail pro získání nového hesla byl odeslán.",
     "passwordreset-emailsent-capture": "Byl odeslán e-mail pro získání nového hesla, který je zobrazen níže.",
-    "passwordreset-emailerror-capture": "Byl vygenerován e-mail pro získání nového hesla, který je zobrazen níže, ale nepodařilo se ho odeslat {{GENDER:$2|uživateli|uživatelce}}: $1",
+    "passwordreset-emailerror-capture": "Byl vygenerován e-mail pro získání nového hesla, který je zobrazen níže, ale {{GENDER:$2|uživateli|uživatelce}} se ho nepodařilo odeslat: $1",
     "changeemail": "Změna e-mailové adresy",
     "changeemail-header": "Změna e-mailové adresy k účtu",
     "changeemail-text": "Vyplněním tohoto formuláře si změníte e-mailovou adresu. Pro potvrzení změny budete muset zadat své heslo.",
     "anontalkpagetext": "----''Toto je diskusní stránka anonymního uživatele, který si dosud nevytvořil účet nebo ho nepoužívá. K&nbsp;jeho identifikaci proto musíme používat číselnou IP adresu. Takovou IP adresu může sdílet několik uživatelů. Pokud jste anonymní uživatel a&nbsp;máte za to, že jsou vám adresovány irelevantní komentáře, prosíme, [[Special:UserLogin/signup|vytvořte si účet]] nebo [[Special:UserLogin|se přihlaste]], vyhnete se tím budoucí záměně s&nbsp;jinými anonymními uživateli.''",
     "noarticletext": "Tato stránka zatím neobsahuje žádný text.\nMůžete [[Special:Search/{{PAGENAME}}|zkusit tento název vyhledat]] na jiných stránkách, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} prohlédnout si příslušné protokolovací záznamy] nebo [{{fullurl:{{FULLPAGENAME}}|action=edit}} tuto stránku založit]</span>.",
     "noarticletext-nopermission": "Tato stránka zatím neobsahuje žádný text.\nMůžete [[Special:Search/{{PAGENAME}}|zkusit tento název vyhledat]] na jiných stránkách nebo <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} si prohlédnout příslušné protokolovací záznamy]</span>, ale na založení této stránky nemáte oprávnění.",
-    "missing-revision": "Revize #$1 stránky s názvem „{{FULLPAGENAME}}“ neexistuje.\n\nToto je obvykle způsobeno tím, že jste následovali zastaralý odkaz historickou verzi stránky, jež byla smazána.\nPodrobnosti mohou být uvedeny v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} knize smazaných stránek].",
+    "missing-revision": "Revize #$1 stránky s názvem „{{FULLPAGENAME}}“ neexistuje.\n\nToto je obvykle způsobeno tím, že jste následovali zastaralý odkaz na historickou verzi stránky, jež byla smazána.\nPodrobnosti mohou být uvedeny v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} knize smazaných stránek].",
     "userpage-userdoesnotexist": "Uživatelský účet „<nowiki>$1</nowiki>“ není zaregistrován. Zkontrolujte zda skutečně chcete vytvořit či editovat tuto stránku.",
     "userpage-userdoesnotexist-view": "Uživatelský účet „$1“ není zaregistrován.",
     "blocked-notice-logextract": "Tento uživatel je momentálně zablokován.\nZde je pro přehled zobrazen nejnovější záznam z knihy zablokování:",
     "previewconflict": "Tento náhled ukazuje text tak, jak bude vypadat po uložení stránky.",
     "session_fail_preview": "'''Váš požadavek se nepodařilo zpracovat kvůli ztrátě dat z relace.\nZkuste to prosím znovu.\nPokud se tento problém bude opakovat, zkuste se [[Special:UserLogout|odhlásit]] a znovu přihlásit.'''",
     "session_fail_preview_html": "'''Váš požadavek se nepodařilo zpracovat kvůli ztrátě dat z relace.'''\n\n''Jelikož má {{SITENAME}} zapnuto používání neomezeného HTML, náhled se kvůli prevenci proti útokům JavaScriptem nezobrazuje.''\n\n'''Pokud jde o zamýšlenou editaci, zkuste to prosím znovu. Pokud se tento problém bude opakovat, zkuste se [[Special:UserLogout|odhlásit]] a znovu přihlásit.'''",
-    "token_suffix_mismatch": "'''Vaše editace byla odmítnuta, protože Váš prohlížeč komolí některé znaky v editovaném textu.\nEditace byla odmítnuta, aby se zabránilo poškození textu stránky.\nToto se může někdy stát pokud používáte chybující webový anonymizér.'''",
+    "token_suffix_mismatch": "'''Vaše editace byla odmítnuta, protože Váš prohlížeč komolí některé znaky v editovaném textu.\nEditace byla odmítnuta, aby se zabránilo poškození textu stránky.\nToto se někdy může někdy stát, používáte-li chybující webový anonymizér.'''",
     "edit_form_incomplete": "'''Část editačního formuláře nedorazila na server; překontrolujte úplnost změn a zkuste to znovu.'''",
     "editing": "Editace stránky $1",
     "creating": "Vytváření $1",
     "editingold": "'''VAROVÁNÍ: Nyní editujete zastaralou verzi této stránky. Když ji uložíte, všechny pozdější změny se ztratí.'''",
     "yourdiff": "Rozdíly",
     "copyrightwarning": "Všechny příspěvky do {{grammar:2sg|{{SITENAME}}}} jsou zveřejňovány podle $2 (podrobnosti najdete na $1).\nPokud si nepřejete, aby váš text byl nemilosrdně upravován a volně šířen, pak ho do {{grammar:2sg|{{SITENAME}}}} neukládejte.<br />\nUložením příspěvku se zavazujete, že je vaším dílem nebo je zkopírován ze zdrojů, které nejsou chráněny autorským právem (tzv. <em>public domain</em>).\n'''NEVKLÁDEJTE DÍLA CHRÁNĚNÁ AUTORSKÝM PRÁVEM BEZ DOVOLENÍ!'''",
-    "copyrightwarning2": "Uvědomte si, že všechny příspěvky do {{grammar:2sg|{{SITENAME}}}} mohou být ostatními uživateli upraveny, pozměněny či odstraněny. Pokud si nepřejete, aby váš text byl nemilosrdně upravován, pak ho do {{grammar:2sg|{{SITENAME}}}} neukládejte.<br />\nUložením příspěvku se zavazujete, že je vaším dílem nebo je zkopírován ze zdrojů, které nejsou chráněny autorským právem (tzv. <em>public domain</em>), podrobnosti najdete na $1. '''Nekopírujte díla chráněná autorským právem bez dovolení!'''",
+    "copyrightwarning2": "Uvědomte si, že všechny příspěvky do {{grammar:2sg|{{SITENAME}}}} mohou být ostatními uživateli upraveny, pozměněny či odstraněny. Pokud si nepřejete, aby váš text byl nemilosrdně upravován, pak ho do {{grammar:2sg|{{SITENAME}}}} neukládejte.<br />\nUložením příspěvku se zavazujete, že je vaším dílem nebo je zkopírován ze zdrojů, které nejsou chráněny autorským právem (tzv. <em>public domain</em>); podrobnosti najdete na $1. '''Nekopírujte díla chráněná autorským právem bez dovolení!'''",
     "longpageerror": "'''Chyba: Pokoušíte se uložit text o velikosti {{PLURAL:$1|$1 KiB}}, přičemž dovolené maximum je {{PLURAL:$2|$2 KiB}}.'''\nVaše změna nemůže být uložena.",
-    "readonlywarning": "'''Varování: Databáze byla uzamčena kvůli údržbě, takže momentálně nebudete moci uložit své změny.'''\nMůžete si okopírovat text do souboru a uložit ho na později.\n\nSprávce serveru, který databázi zamkl, poskytl toto zdůvodnění: $1",
+    "readonlywarning": "<strong>Varování: Databáze byla uzamčena kvůli údržbě, takže momentálně nebudete moci uložit své změny.</strong>\nMůžete si okopírovat text do souboru a uložit si ho na později.\n\nSprávce serveru, který databázi zamkl, poskytl toto zdůvodnění: $1",
     "protectedpagewarning": "'''Varování: Tato stránka byla zamčena, takže ji mohou editovat pouze správci.'''\nNíže je pro přehled zobrazen nejnovější protokolovací záznam:",
     "semiprotectedpagewarning": "'''Poznámka:''' Tato stránka byla zamčena, takže ji mohou editovat pouze registrovaní uživatelé.\nNíže je pro přehled zobrazen nejnovější protokolovací záznam:",
     "cascadeprotectedwarning": "'''Varování:''' Tato stránka byla zamčena, takže ji mohou editovat pouze správci. Je vložena na následující, kaskádním zámkem  {{PLURAL:$1|zamčenou, stránku|zamčené, stránky|zamčené, stránky}}:",
     "revdelete-radio-set": "Skrytý",
     "revdelete-radio-unset": "Viditelný",
     "revdelete-suppress": "Utajit data i před správci",
-    "revdelete-unsuppress": "Odstranit omezení na vrácené verze",
+    "revdelete-unsuppress": "Odstranit omezení na obnovených revizích",
     "revdelete-log": "Důvod:",
     "revdelete-submit": "Aplikovat na {{PLURAL:$1|zvolenou revizi|zvolené revize}}",
     "revdelete-success": "'''Viditelnost revize úspěšně nastavena.'''",
     "revdelete-modify-missing": "Chyba při změně položky s ID $1: položka nenalezena v databázi!",
     "revdelete-no-change": "'''Upozornění:''' položka z $1 $2 už měla viditelnost nastavenou tak, jak bylo požadováno.",
     "revdelete-concurrent-change": "Chyba při změně položky z $1 $2: zdá se, že mezitím její stav změnil někdo jiný.\nProhlédněte si protokolovací záznamy.",
-    "revdelete-only-restricted": "Chyba skrývání položky z $2 $1: Nemůžete položky pouze skrýt před správci, aniž byste současně vybrali i některou z dalších možností utajení.",
+    "revdelete-only-restricted": "Chyba skrývání položky z $2 $1: Položky před správci nemůžete skrýt, aniž byste současně vybrali i některou z dalších možností utajení.",
     "revdelete-reason-dropdown": "*Obvyklé důvody smazání\n** Porušení autorských práv\n** Nevhodné komentáře nebo osobní údaje\n** Nevhodné uživatelské jméno\n** Potenciálně pomlouvačné údaje",
     "revdelete-otherreason": "Jiný/další důvod:",
     "revdelete-reasonotherlist": "Jiný důvod",
     "showhideselectedversions": "Zobrazit/skrýt vybrané revize",
     "editundo": "zrušit editaci",
     "diff-empty": "(Žádný rozdíl)",
-    "diff-multi-sameuser": "({{PLURAL:$1|Není zobrazena 1 mezilehlá verze|Nejsou zobrazeny $1 mezilehlé verze|Není zobrazeno $1 mezilehlých verzí}} od stejného uživatele.)",
-    "diff-multi-otherusers": "({{PLURAL:$1|Není zobrazena 1 mezilehlá verze|Nejsou zobrazeny $1 mezilehlé verze|Není zobrazeno $1 mezilehlých verzí}} od {{PLURAL:$2|1 dalšího uživatele|$2 dalších uživatelů}}.)",
-    "diff-multi-manyusers": "(Není zobrazeno $1 mezilehlých verzí od více než $2 {{PLURAL:$2|uživatele|uživatelů}}.)",
-    "difference-missing-revision": "{{PLURAL:$2|Jedna z revizí|$2 revize|$2 revizí}} k požadovanému porovnání ($1) {{PLURAL:$2|neexistuje|neexistují|neexistuje}}.\n\nToto je obvykle způsobeno tím, že jste následovali zastaralý odkaz historickou verzi stránky, jež byla smazána.\nPodrobnosti mohou být uvedeny v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} knize smazaných stránek].",
+    "diff-multi-sameuser": "({{PLURAL:$1|Není zobrazena jedna mezilehlá verze|Nejsou zobrazeny $1 mezilehlé verze|Není zobrazeno $1 mezilehlých verzí}} od stejného uživatele.)",
+    "diff-multi-otherusers": "({{PLURAL:$1|Není zobrazena jedna mezilehlá verze|Nejsou zobrazeny $1 mezilehlé verze|Není zobrazeno $1 mezilehlých verzí}} od {{PLURAL:$2|jednoho dalšího uživatele|$2 dalších uživatelů}}.)",
+    "diff-multi-manyusers": "({{PLURAL:$1|Není zobrazena 1 mezilehlá verze|Nejsou zobrazeny $1 mezilehlé verze|Není zobrazeno $1 mezilehlých verzí}} od více než {{PLURAL:$2|1 uživatele|$2 uživatelů}}.)",
+    "difference-missing-revision": "{{PLURAL:$2|Jedna z revizí|$2 revize|$2 revizí}} k požadovanému porovnání ($1) {{PLURAL:$2|neexistuje|neexistují|neexistuje}}.\n\nToto je obvykle způsobeno tím, že jste následovali zastaralý odkaz na historickou verzi stránky, jež byla smazána.\nPodrobnosti mohou být uvedeny v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} knize smazaných stránek].",
     "searchresults": "Výsledky hledání",
     "searchresults-title": "Výsledky hledání „$1“",
     "toomanymatches": "Požadavku odpovídá příliš mnoho záznamů, zkuste jiný dotaz.",
     "prefs-skin": "Vzhled",
     "skin-preview": "Náhled",
     "datedefault": "Implicitní",
-    "prefs-datetime": "Datum a čas",
     "prefs-labs": "Funkce z Labs",
     "prefs-user-pages": "Uživatelské stránky",
     "prefs-personal": "Údaje o uživateli",
     "right-suppressredirect": "Nevytváření přesměrování po přesunu stránky",
     "right-upload": "Nahrávání souborů",
     "right-reupload": "Přepisování existujících souborů",
-    "right-reupload-own": "Přepisování souborů nahraných sám sebou",
+    "right-reupload-own": "Přepisování souborů nahraných sebou samotným",
     "right-reupload-shared": "Nahrávání lokálních souborů k potlačení těch ve sdíleném úložišti",
     "right-upload_by_url": "Nahrávání souborů z URL adres",
     "right-purge": "Vyčištění vyrovnávací paměti stránky bez potvrzovacího dialogu",
     "right-editusercssjs": "Editace CSS a JS souborů jiných uživatelů",
     "right-editusercss": "Editace CSS souborů jiných uživatelů",
     "right-edituserjs": "Editace JavaScriptových souborů jiných uživatelů",
-    "right-editmyusercss": "Editace vašich uživatelských CSS souborů",
-    "right-editmyuserjs": "Editace vašich uživatelských JavaScriptových souborů",
+    "right-editmyusercss": "Editace vlastních uživatelských CSS souborů",
+    "right-editmyuserjs": "Editace vlastních uživatelských JavaScriptových souborů",
     "right-viewmywatchlist": "Prohlížení vlastního seznamu sledovaných stránek",
     "right-editmywatchlist": "Editace vlastního seznamu sledovaných stránek. Uvědomte si, že některé akce do něj mohou přidat stránky i bez tohoto oprávnění.",
     "right-viewmyprivateinfo": "Prohlížení vlastních soukromých údajů (např. e-mailová adresa, skutečné jméno)",
     "action-browsearchive": "hledat smazané stránky",
     "action-undelete": "obnovit tuto stránku",
     "action-suppressrevision": "zkontrolovat a obnovit tuto skrytou revizi",
-    "action-suppressionlog": "prohlížet si tento skrytý protokolovací záznam",
+    "action-suppressionlog": "prohlédnout si tento skrytý protokolovací záznam",
     "action-block": "znemožnit tomuto uživateli editování",
     "action-protect": "změnit úrovně ochrany této stránky",
     "action-rollback": "rychle revertovat úpravy posledního uživatele editujícího danou stránku",
     "enhancedrc-history": "historie",
     "recentchanges": "Poslední změny",
     "recentchanges-legend": "Možnosti posledních změn",
-    "recentchanges-summary": "Sledujte poslední změny na {{grammar:6sg|{{SITENAME}}}} na této stránce.",
+    "recentchanges-summary": "Na této stránce sledujte poslední změny na {{grammar:6sg|{{SITENAME}}}}.",
     "recentchanges-noresult": "V daném období neodpovídaly zadaným kritériím žádné změny.",
     "recentchanges-feed-description": "Na tomto kanále sledujte poslední změny na {{grammar:6sg|{{SITENAME}}}}.",
     "recentchanges-label-newpage": "Touto editací byla založena nová stránka",
     "upload_directory_read_only": "Do adresáře pro načítané soubory ($1) nemá webserver právo zápisu.",
     "uploaderror": "Při načítání došlo k chybě",
     "upload-recreate-warning": "'''Upozornění: Soubor pod tímto názvem byl dříve smazán či přejmenován.'''\n\nZde je pro přehled zobrazen soupis mazání a přesunů této stránky:",
-    "uploadtext": "Níže uvedený formulář slouží k načtení souborů. Již načtené soubory si můžete prohlížet a hledat pomocí [[Special:FileList|seznamu načtených souborů]], každé načtení se také zaznamenává do [[Special:Log/upload|knihy načtení]], smazání jsou v [[Special:Log/delete|knize smazaných stránek]].\n\nPro vložení obrázku do stránky použijte jeden z následujících způsobů zápisu:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Soubor.jpg]]</nowiki></code>''' do stránky vloží celý obrázek,\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Soubor.png|thumb|left|Popisek]]</nowiki></code>''' vloží náhled v rámečku zarovnaném na levý okraj, s popiskem „Popisek“,\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Soubor.ogg]]</nowiki></code>''' vloží přímý odkaz na soubor, aniž by se zobrazoval ve stránce.",
+    "uploadtext": "Níže uvedený formulář slouží k načtení souborů. Již načtené soubory si můžete prohlížet a hledat pomocí [[Special:FileList|seznamu načtených souborů]], každé načtení se také zaznamenává do [[Special:Log/upload|knihy nahrávek]], smazání jsou v [[Special:Log/delete|knize smazaných stránek]].\n\nPro vložení obrázku do stránky použijte jeden z následujících způsobů zápisu:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Soubor.jpg]]</nowiki></code>''' do stránky vloží celý obrázek,\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Soubor.png|thumb|left|Popisek]]</nowiki></code>''' vloží náhled v rámečku zarovnaném na levý okraj, s popiskem „Popisek“,\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Soubor.ogg]]</nowiki></code>''' vloží přímý odkaz na soubor, aniž by se ten na stránce zobrazoval.",
     "upload-permitted": "Povolené formáty souborů: $1.",
     "upload-preferred": "Upřednostňované formáty souborů: $1.",
     "upload-prohibited": "Zakázané formáty souborů: $1.",
-    "uploadlog": "kniha nahrávek",
     "uploadlogpage": "Kniha nahrávek",
     "uploadlogpagetext": "Níže najdete seznam nejnovějších souborů.",
     "filename": "Soubor",
     "filereuploadsummary": "Změny v souboru:",
     "filestatus": "Autorská práva:",
     "filesource": "Zdroj:",
-    "uploadedfiles": "Načtené soubory",
     "ignorewarning": "Ignorovat varování a načíst soubor.",
     "ignorewarnings": "Ignorovat všechna varování",
     "minlength1": "Jméno souboru musí mít alespoň jeden znak.",
     "overwroteimage": "načtena nová verze \"[[$1]]\"",
     "uploaddisabled": "Načítání souborů vypnuto.",
     "copyuploaddisabled": "Načítání souborů prostřednictvím URL je vypnuto.",
-    "uploadfromurl-queued": "Váš požadavek na načtení souboru byl uložen do fronty.",
     "uploaddisabledtext": "Načítání souborů je vypnuto.",
     "php-uploaddisabledtext": "V PHP je vypnuto načítání souborů. Prosím, zkontrolujte nastavení file_uploads.",
     "uploadscripted": "Tento soubor obsahuje HTML nebo kód skriptu, který by mohl být prohlížečem chybně interpretován.",
     "upload-options": "Možnosti načtení",
     "watchthisupload": "Sledovat tento soubor",
     "filewasdeleted": "Soubor stejného jména byl již dříve načten a posléze smazán. Podrobnosti obsahuje $1.",
-    "filename-bad-prefix": "Jméno souboru, který naÄ\8dítáte, zaÄ\8díná na '''â\80\9e$1â\80\9c''', což je nevhodné jméno, obvykle automaticky pÅ\99\99azované digitálním fotoaparátem. Zvolte jméno, která váš soubor lépe popíše.",
+    "filename-bad-prefix": "Jméno souboru, který naÄ\8dítáte, zaÄ\8díná na '''â\80\9e$1â\80\9c''', což je nevhodné jméno, obvykle automaticky pÅ\99\99azované digitálním fotoaparátem. Zvolte jméno, které váš soubor popíše lépe.",
     "filename-prefix-blacklist": " #<!-- tuto řádku ponechte beze změny --> <pre>\n# Používá se následující syntaxe:\n#   * Cokoli od znaku „#“ až do konce řádky je komentář\n#   * Každá neprázdná řádka je prefix typických jmen souborů automaticky generovaných digitálními fotoaparáty\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # některé mobilní telefony\nIMG # obecné\nJD # Jenoptik\nMGP # Pentax\nPICT # různé\n #</pre> <!-- tuto řádku ponechte beze změny -->",
     "upload-success-subj": "Načtení úspěšně provedeno!",
     "upload-success-msg": "Soubor vámi načtený z [$2] je dostupný na [[:{{ns:file}}:$1]]",
     "upload-misc-error": "Neznámá chyba",
     "upload-misc-error-text": "Neznámá chyba se vyskytla během nahrávání souboru.  Zkontrolujte zda je URL platná a přístupné a zkuste to znovu.  Pokud se chyba znovu objeví, kontaktuje [[Special:ListUsers/sysop|správce]].",
     "upload-too-many-redirects": "URL obsahovalo příliš mnoho přesměrování",
-    "upload-unknown-size": "Neznámá velikost",
     "upload-http-error": "Došlo k chybě HTTP: $1",
     "upload-copy-upload-invalid-domain": "Načítání kopírováním není dostupné z této domény.",
     "backend-fail-stream": "Soubor $1 nelze streamovat.",
     "img-auth-streaming": "Přenáší se „$1“.",
     "img-auth-public": "Pomocí img_auth.php se poskytují soubory na soukromých wiki.\nTato wiki je nastavena jako veřejná.\nZ bezpečnostních důvodů je img_auth.php vypnuto.",
     "img-auth-noread": "Uživatel nemá oprávnění ke čtení „$1“.",
-    "img-auth-bad-query-string": "URL obsahuje neplatný dotaz.",
     "http-invalid-url": "Neplatné URL: $1",
     "http-invalid-scheme": "URL používající schéma „$1“ nejsou podporována",
     "http-request-error": "Neznámá chyba při odesílání požadavku.",
     "http-curl-error": "Chyba při čtení z URL: $1",
     "http-bad-status": "Při provádění HTTP požadavku nastal problém: $1 $2",
     "upload-curl-error6": "Z URL nelze číst",
-    "upload-curl-error6-text": "Ze zadané URL nelze číst.  Zkontrolujte ža URL je správně napsané a server je dostupný",
+    "upload-curl-error6-text": "Zadané URL není dostupné.\nZkontrolujte, zda je URL správné a server funguje.",
     "upload-curl-error28": "Čas pro nahrání vypršel",
-    "upload-curl-error28-text": "Serveru dlouho neodpovídá. Zkontrolujte, že server je dostupný, počkejte chvíli a zkuste to znovu.",
+    "upload-curl-error28-text": "Server dlouho neodpovídá.\nZkontrolujte, zda funguje, chvíli počkejte a zkuste to znovu.\nMožná to budete chtít zkusit v době menšího provozu.",
     "license": "Licence:",
     "license-header": "Licence",
     "nolicense": "Bez udání licence",
     "filehist-dimensions": "Rozměry",
     "filehist-filesize": "Velikost souboru",
     "filehist-comment": "Komentář",
-    "filehist-missing": "Soubor chybí",
     "imagelinks": "Využití souboru",
     "linkstoimage": "Na soubor {{PLURAL:$1|odkazuje tato stránka|odkazují tyto $1 stránky|odkazuje těchto $1 stránek}}:",
     "linkstoimage-more": "Na tento soubor {{PLURAL:$1|odkazuje více stránek|odkazují více než $1 stránky|odkazuje více než $1 stránek}}.\nNásledující seznam zobrazuje pouze {{PLURAL:$1|tu první|první $1|prvních $1}}.\nMůžete si prohlédnout [[Special:WhatLinksHere/$2|úplný seznam]].",
     "listgrouprights-removegroup-self": "Vyřazení svého účtu ze {{PLURAL:$2|skupiny|skupin}} $1",
     "listgrouprights-addgroup-self-all": "Přidání svého účtu do libovolné skupiny",
     "listgrouprights-removegroup-self-all": "Vyřazení svého účtu z libovolné skupiny",
+    "listgrouprights-namespaceprotection-header": "Omezení jmenných prostorů",
+    "listgrouprights-namespaceprotection-namespace": "Jmenný prostor",
+    "listgrouprights-namespaceprotection-restrictedto": "Oprávnění umožňující uživateli editovat",
     "trackingcategories": "Sledovací kategorie",
     "trackingcategories-summary": "Tato stránka obsahuje seznam sledovacích kategorií, které automaticky přidává software MediaWiki. Jejich jména lze změnit úpravou příslušných systémových hlášení ve jmenném prostoru {{ns:8}}.",
     "trackingcategories-msg": "Sledovací kategorie",
     "trackingcategories-name": "Název hlášení",
     "trackingcategories-desc": "Kritéria pro vložení do kategorie",
-    "noindex-category-desc": "Stránka obsahuje kouzelné slovo <nowiki>__NOINDEX__</nowiki> (a je ve jmenném prostoru, ve kterém je tento příznak dovolen), takže není indexována roboty.",
-    "index-category-desc": "Stránka obsahuje kouzelné slovo <nowiki>__INDEX__</nowiki> (a je ve jmenném prostoru, ve kterém je tento příznak dovolen), takže je indexována roboty, přestože by normálně nebyla.",
+    "noindex-category-desc": "Stránka není indexována roboty, protože obsahuje kouzelné slovo <code><nowiki>__NOINDEX__</nowiki></code> a je ve jmenném prostoru, ve kterém je tento příznak dovolen.",
+    "index-category-desc": "Stránka obsahuje kouzelné slovo <code><nowiki>__INDEX__</nowiki></code> (a je ve jmenném prostoru, ve kterém je tento příznak dovolen), takže je indexována roboty, přestože by normálně nebyla.",
     "post-expand-template-inclusion-category-desc": "Po rozbalení všech šablon je stránka větší než <code>$wgMaxArticleSize</code>, takže některé šablony rozbaleny nebyly.",
     "post-expand-template-argument-category-desc": "Po rozbalení argumentu šablony (něco v trojitých závorkách, např. <code>{{{Foo}}})</code> je stránka větší než <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Na stránce je použito příliš mnoho náročných funkcí parseru (jako <code>#ifexist</code>). Vizte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
     "broken-file-category-desc": "Kategorie přidaná pokud stránka obsahuje nefunkční odkaz na soubor (odkaz pro vložení souboru, který neexistuje).",
-    "hidden-category-category-desc": "Toto je kategorie, která obsahuje <nowiki>__HIDDENCAT__</nowiki>, což způsobuje, že se na stránkách implicitně nezobrazuje v rámečku odkazů na kategorie.",
+    "hidden-category-category-desc": "Toto je kategorie, která obsahuje <code><nowiki>__HIDDENCAT__</nowiki></code>, což způsobuje, že se na stránkách implicitně nezobrazuje v rámečku odkazů na kategorie.",
     "trackingcategories-nodesc": "Popis není k dispozici.",
     "trackingcategories-disabled": "Kategorie je vypnuta",
     "mailnologin": "Bez odesílací adresy",
     "emailuser-title-notarget": "Poslat e-mail uživateli",
     "emailpage": "Poslat e-mail",
     "emailpagetext": "Pomocí níže zobrazeného formuláře můžete {{GENDER:$1|tomuto uživateli|této uživatelce}} poslat zprávu e-mailem.\nE-mailová adresa, kterou máte uvedenu v [[Special:Preferences|nastavení]], se objeví jako adresa odesílatele pošty, aby vám adresát mohl odpovědět přímo.",
-    "usermailererror": "Chyba poštovního programu:",
     "defemailsubject": "E-mail z {{grammar:2sg|{{SITENAME}}}} od {{gender:$1|uživatele|uživatelky|uživatele}} „$1“",
     "usermaildisabled": "Posílání e-mailů je vypnuto",
     "usermaildisabledtext": "Nemáte oprávnění odesílat e-maily ostatním uživatelům této wiki",
     "noemailtitle": "Bez e-mailové adresy",
     "noemailtext": "Tento uživatel nezadal platnou e-mailovou adresu.",
-    "nowikiemailtitle": "E-mail není povolen",
     "nowikiemailtext": "Tento uživatel si nepřeje dostávat e-maily od ostatních uživatelů.",
     "emailnotarget": "Neexistující nebo neplatné uživatelské jméno příjemce.",
     "emailtarget": "Zadejte uživatelské jméno příjemce",
     "unwatchthispage": "Nesledovat tuto stránku",
     "notanarticle": "Toto není stránka",
     "notvisiblerev": "Verze byla smazána",
-    "watchlist-details": "Na vašem seznamu sledovaných stránek {{PLURAL:$1|je $1 stránka|jsou $1 stránky|je $1 stránek}}, nepočítají se diskusní stránky.",
+    "watchlist-details": "Na vašem seznamu sledovaných stránek {{PLURAL:$1|je $1 stránka|jsou $1 stránky|je $1 stránek}}, nepočítaje v to diskusní stránky.",
     "wlheader-enotif": "Upozorňování e-mailem je zapnuto.",
     "wlheader-showupdated": "Stránky, které se změnily od vaší poslední návštěvy, jsou zobrazeny '''tučně'''.",
     "watchmethod-recent": "hledají se sledované stránky mezi posledními změnami",
     "watching": "Přidávám na seznam sledovaných stránek…",
     "unwatching": "Odebírám ze seznamu sledovaných stránek…",
     "watcherrortext": "Při změně sledování stránky „$1“ došlo k chybě.",
-    "enotif_mailer": "Zasílač hlášení {{grammar:2sg|{{SITENAME}}}}",
     "enotif_reset": "Označit vše jako navštívené",
     "enotif_impersonal_salutation": "Uživatel {{grammar:2sg|{{SITENAME}}}}",
     "enotif_subject_deleted": "$2 {{gender:$2|smazal|smazala}} stránku $1 na {{grammar:6sg|{{SITENAME}}}}",
     "excontent": "obsah byl: „$1“",
     "excontentauthor": "obsah byl: „$1“ (a jediným přispěvatelem byl „[[Special:Contributions/$2|$2]]“)",
     "exbeforeblank": "obsah před vyprázdněním byl: „$1“",
-    "exblank": "stránka byla prázdná",
     "delete-confirm": "Smazání stránky „$1“",
     "delete-legend": "Smazat",
     "historywarning": "'''Varování:''' Stránka, kterou chcete smazat, má historii se zhruba $1 {{PLURAL:$1|revizí|revizemi}}:",
     "importunknownsource": "Neznámý typ zdroje importu",
     "importcantopen": "Nepodařilo se otevřít importní soubor",
     "importbadinterwiki": "Neplatný interwiki odkaz",
-    "importnotext": "Prázdný nebo žádný text",
     "importsuccess": "Import skončil!",
-    "importhistoryconflict": "Existuje konflikt mezi historiemi verzí. Možná, že tato stránka byla již importována dříve.",
     "importnosources": "Nebyly definovány žádné zdroje pro import mezi wiki a přímé načítání historie je vypnuto.",
     "importnofile": "Nebyl načten importní soubor.",
     "importuploaderrorsize": "Nepodařilo se načíst importní soubor. Soubor je větší než povolená velikost.",
index ea5d71f..3f08a32 100644 (file)
     "accountcreatedtext": "Das Benutzerkonto für [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|Diskussion]]) wurde eingerichtet.",
     "createaccount-title": "Erstellung eines Benutzerkontos für {{SITENAME}}",
     "createaccount-text": "Es wurde für dich ein Benutzerkonto „$2“ auf {{SITENAME}} ($4) erstellt. Das automatisch generierte Passwort für „$2“ ist „$3“. Du solltest dich nun anmelden und das Passwort ändern.\n\nFalls das Benutzerkonto irrtümlich angelegt wurde, kannst du diese Nachricht ignorieren.",
-    "usernamehasherror": "Benutzernamen dürfen kein Rautenzeichen enthalten",
     "login-throttled": "Du hast zu oft versucht, dich anzumelden.\nBitte warte $1, bevor du es erneut probierst.",
     "login-abort-generic": "Deine Anmeldung war nicht erfolgreich – Abgebrochen",
     "loginlanguagelabel": "Sprache: $1",
     "prefs-skin": "Benutzeroberfläche",
     "skin-preview": "Vorschau",
     "datedefault": "Standard",
-    "prefs-datetime": "Datum und Zeit",
     "prefs-labs": "Alpha-Funktionen",
     "prefs-user-pages": "Benutzerseiten",
     "prefs-personal": "Benutzerdaten",
     "upload-permitted": "Erlaubte Dateitypen: $1.",
     "upload-preferred": "Bevorzugte Dateitypen: $1.",
     "upload-prohibited": "Nicht erlaubte Dateitypen: $1.",
-    "uploadlog": "Datei-Logbuch",
     "uploadlogpage": "Datei-Logbuch",
     "uploadlogpagetext": "Dies ist das Logbuch der hochgeladenen Dateien, siehe auch die [[Special:NewFiles|Galerie neuer Dateien]] für einen visuellen Überblick.",
     "filename": "Dateiname",
     "filereuploadsummary": "Dateiänderungen:",
     "filestatus": "Copyright-Status:",
     "filesource": "Quelle:",
-    "uploadedfiles": "Hochladen",
     "ignorewarning": "Warnung ignorieren und Datei speichern",
     "ignorewarnings": "Warnungen ignorieren",
     "minlength1": "Dateinamen müssen mindestens einen Buchstaben lang sein.",
     "overwroteimage": "lud eine neue Version von „[[$1]]“ hoch",
     "uploaddisabled": "Hochladen deaktiviert",
     "copyuploaddisabled": "Das Hochladen von URLs ist deaktiviert",
-    "uploadfromurl-queued": "Dein Upload befindet sich nun in der Warteschlange.",
     "uploaddisabledtext": "Das Hochladen von Dateien ist deaktiviert.",
     "php-uploaddisabledtext": "Das Hochladen von Dateien wurde in PHP deaktiviert.\nBitte überprüfe die <code>file_uploads</code>-Einstellung.",
     "uploadscripted": "Diese Datei enthält HTML- oder Scriptcode, der irrtümlich von einem Webbrowser ausgeführt werden könnte.",
     "upload-misc-error": "Unbekannter Fehler beim Hochladen",
     "upload-misc-error-text": "Beim Hochladen ist ein unbekannter Fehler aufgetreten.\nPrüfe die URL auf Fehler, den Online-Status der Seite und versuche es erneut.\nWenn das Problem weiter besteht, informiere einen [[Special:ListUsers/sysop|Administrator]].",
     "upload-too-many-redirects": "Die URL beinhaltete zu viele Weiterleitungen",
-    "upload-unknown-size": "Unbekannte Größe",
     "upload-http-error": "Ein HTTP-Fehler ist aufgetreten: $1",
     "upload-copy-upload-invalid-domain": "Als Kopie hochladbare Dateien sind über diese Domain nicht verfügbar.",
     "backend-fail-stream": "Die Datei $1 konnte nicht übertragen werden.",
     "img-auth-streaming": "Lade „$1“.",
     "img-auth-public": "img_auth.php gibt Dateien von einem privaten Wiki aus.\nDieses Wiki wurde als ein öffentliches Wiki konfiguriert.\nAus Sicherheitsgründen ist img_auth.php deaktiviert.",
     "img-auth-noread": "Benutzer hat keine Berechtigung, „$1“ zu lesen.",
-    "img-auth-bad-query-string": "Die URL weist eine ungültige Abfragezeichenfolge auf.",
     "http-invalid-url": "Ungültige URL: $1",
     "http-invalid-scheme": "URLs mit dem Schema „$1“ werden nicht unterstützt",
     "http-request-error": "Fehler beim Senden der Anfrage.",
     "filehist-dimensions": "Maße",
     "filehist-filesize": "Dateigröße",
     "filehist-comment": "Kommentar",
-    "filehist-missing": "Datei fehlt",
     "imagelinks": "Dateiverwendung",
     "linkstoimage": "Die {{PLURAL:$1|folgende Seite verwendet|folgenden $1 Seiten verwenden}} diese Datei:",
     "linkstoimage-more": "Mehr als {{PLURAL:$1|eine Seite verlinkt|$1 Seiten verlinken}} auf diese Datei.\nDie folgende Liste zeigt nur {{PLURAL:$1|den ersten Link|die ersten $1 Links}} auf diese Datei.\nEine [[Special:WhatLinksHere/$2|vollständige Liste]] ist verfügbar.",
     "listgrouprights-removegroup-self": "Eigenes Benutzerkonto aus {{PLURAL:$2|dieser Gruppe|diesen Gruppen}} entfernen: $1",
     "listgrouprights-addgroup-self-all": "Kann alle Gruppen zum eigenen Konto hinzufügen",
     "listgrouprights-removegroup-self-all": "Kann alle Gruppen vom eigenen Konto entfernen",
+    "listgrouprights-namespaceprotection-header": "Namensraumbeschränkungen",
+    "listgrouprights-namespaceprotection-namespace": "Namensraum",
+    "listgrouprights-namespaceprotection-restrictedto": "Rechte, die dem Benutzer die Bearbeitung erlauben",
     "trackingcategories": "Tracking-Kategorien",
     "trackingcategories-summary": "Diese Seite listet Tracking-Kategorien auf, die von der MediaWiki-Software automatisch eingepflegt werden. Ihre Namen können durch Änderung der entsprechenden Systemnachrichten im {{ns:8}}-Namensraum angepasst werden.",
     "trackingcategories-msg": "Tracking-Kategorie",
     "trackingcategories-name": "Name der Nachricht",
     "trackingcategories-desc": "Kategorieeinbindungskriterien",
-    "noindex-category-desc": "Die Seite wird nicht von Bots indexiert, da sie das magische Wort <nowiki>__NOINDEX__</nowiki> enthält und sich in einem Namensraum befindet, wo dieses Flag erlaubt ist.",
-    "index-category-desc": "Die Seite enthält ein <nowiki>__INDEX__</nowiki> und befindet sich in einem Namensraum, in dem dieses Flag nicht erlaubt ist und wird daher von Bots ausnahmsweise indexiert.",
+    "noindex-category-desc": "Die Seite wird nicht von Bots indexiert, da sie das magische Wort <code><nowiki>__NOINDEX__</nowiki></code> enthält und sich in einem Namensraum befindet, wo dieses Flag erlaubt ist.",
+    "index-category-desc": "Die Seite enthält ein <code><nowiki>__INDEX__</nowiki></code> und befindet sich in einem Namensraum, in dem dieses Flag nicht erlaubt ist und wird daher von Bots ausnahmsweise indexiert.",
     "post-expand-template-inclusion-category-desc": "Nach dem Expandieren aller Vorlagen ist die Seitengröße größer als <code>$wgMaxArticleSize</code>, sodass einige Vorlagen nicht expandiert werden.",
     "post-expand-template-argument-category-desc": "Nach dem Expandieren eines Vorlagenargumentes (etwas in dreifach geschweiften Klammern, z.&nbsp;B. <code>{{{Foo}}})</code> ist die Seite größer als <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Zu viele aufwändige Parserfunktionen (wie <code>#ifexist</code>) sind in der Seite eingebunden. Siehe das [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Benutzerhandbuch].",
     "broken-file-category-desc": "Kategorie, die hinzugefügt wird, falls die Seite einen defekten Dateilink enthält (einen Link zu einer eingebetteten Datei, die nicht vorhanden ist).",
-    "hidden-category-category-desc": "Dies ist eine Kategorie mit <nowiki>__HIDDENCAT__</nowiki>, die standardmäßig nicht auf Seiten im Kategorienbereich angezeigt wird.",
+    "hidden-category-category-desc": "Dies ist eine Kategorie mit <code><nowiki>__HIDDENCAT__</nowiki></code>, die standardmäßig nicht auf Seiten im Kategorienbereich angezeigt wird.",
     "trackingcategories-nodesc": "Keine Beschreibung verfügbar.",
     "trackingcategories-disabled": "Kategorie ist deaktiviert",
     "mailnologin": "Fehler beim E-Mail-Versand",
     "emailuser-title-notarget": "E-Mail an Benutzer",
     "emailpage": "E-Mail an Benutzer",
     "emailpagetext": "Du kannst {{GENDER:$1|dem Benutzer|der Benutzerin}} mit dem unten stehenden Formular eine E-Mail senden.\nAls Absender wird die E-Mail-Adresse aus deinen [[Special:Preferences|Einstellungen]] eingetragen, damit {{GENDER:$1|der Benutzer|die Benutzerin}} dir direkt antworten kann.",
-    "usermailererror": "Das E-Mail-Objekt gab einen Fehler zurück:",
     "defemailsubject": "{{SITENAME}} – E-Mail von Benutzer „$1“",
     "usermaildisabled": "E-Mail-Empfang deaktiviert",
     "usermaildisabledtext": "Du kannst in diesem Wiki keine E-Mails an andere Benutzer senden",
     "noemailtitle": "Keine E-Mail-Adresse",
     "noemailtext": "Dieser Benutzer hat keine gültige E-Mail-Adresse angegeben.",
-    "nowikiemailtitle": "E-Mail-Versand nicht möglich",
     "nowikiemailtext": "Dieser Benutzer möchte keine E-Mails von anderen Benutzern erhalten.",
     "emailnotarget": "Nicht vorhandener oder ungültiger Benutzername für den Empfang einer E-Mail.",
     "emailtarget": "Benutzernamen des Empfängers eingeben",
     "unwatchthispage": "Nicht mehr beobachten",
     "notanarticle": "Keine Seite",
     "notvisiblerev": "Version wurde gelöscht",
-    "watchlist-details": "Du beobachtest {{PLURAL:$1|eine Seite|$1 Seiten}}, ohne dass Diskussionsseiten gezählt werden.",
+    "watchlist-details": "Du beobachtest {{PLURAL:$1|eine Seite|$1 Seiten}}, ohne dass Diskussionsseiten getrennt gezählt werden.",
     "wlheader-enotif": "Der E-Mail-Benachrichtigungsdienst ist aktiviert.",
     "wlheader-showupdated": "Seiten mit noch nicht gesehenen Änderungen werden '''fett''' dargestellt.",
     "watchmethod-recent": "Überprüfen der letzten Bearbeitungen für die Beobachtungsliste",
     "watching": "Beobachten …",
     "unwatching": "Nicht mehr beobachten …",
     "watcherrortext": "Beim Ändern der Beobachtungslisteneinstellungen für „$1“ ist ein Fehler aufgetreten.",
-    "enotif_mailer": "{{SITENAME}}-E-Mail-Benachrichtigungsdienst",
     "enotif_reset": "Alle Seiten als besucht markieren",
     "enotif_impersonal_salutation": "{{SITENAME}}-Benutzer",
     "enotif_subject_deleted": "{{SITENAME}}-Seite $1 wurde von {{GENDER:$2|$2}} gelöscht",
     "excontent": "Inhalt war: „$1“",
     "excontentauthor": "Inhalt war: „$1“ (einziger Bearbeiter: [[Special:Contributions/$2|$2]])",
     "exbeforeblank": "Inhalt vor dem Leeren der Seite: „$1“",
-    "exblank": "Seite war leer",
     "delete-confirm": "Löschen von „$1“",
     "delete-legend": "Löschen",
     "historywarning": "'''Achtung:''' Die Seite, die du löschen möchtest, hat eine Versionsgeschichte mit ungefähr $1 {{PLURAL:$1|Version|Versionen}}:",
     "importunknownsource": "Unbekannte Importquelle",
     "importcantopen": "Importdatei konnte nicht geöffnet werden",
     "importbadinterwiki": "Falscher Interwiki-Link",
-    "importnotext": "Leer oder kein Text",
     "importsuccess": "Import abgeschlossen.",
-    "importhistoryconflict": "Es existieren bereits ältere Versionen, welche mit diesen kollidieren. Möglicherweise wurde die Seite bereits vorher importiert.",
     "importnosources": "Für den Transwiki-Import sind keine Quellen definiert. Das direkte Hochladen von Versionen ist gesperrt.",
     "importnofile": "Es ist keine Importdatei ausgewählt worden.",
     "importuploaderrorsize": "Das Hochladen der Importdatei ist fehlgeschlagen. Die Datei ist größer als die maximal erlaubte Dateigröße.",
index 32bd957..db4558f 100644 (file)
     "pool-queuefull": "Rêza hewze pırra",
     "pool-errorunknown": "Xeta nêzanıtiye",
     "aboutsite": "Heqa {{SITENAME}} de",
-    "aboutpage": "Project:Heqa  de",
+    "aboutpage": "Project:Heqa {{SITENAME}} de",
     "copyright": "Zerrekacı $1 bındı not biya.",
     "copyrightpage": "{{ns:project}}:Heqa telifi",
-    "currentevents": "Veng u vac",
+    "currentevents": "Veng û vac",
     "currentevents-url": "Project:Rocani hadisey",
     "disclaimers": "Redê mesuliyeti",
     "disclaimerpage": "Project:Reddê mesuliyetê bıngey",
     "accountcreatedtext": "Qandê [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) hesabê karberi vıraziyayo.",
     "createaccount-title": "Qandé  {{SITENAME}} hesabé karberi iycat kerdış",
     "createaccount-text": "Kesê, be e-posteyê şıma ra {{SITENAME}} ($4) de, ebe nameyê \"$2\" u parola \"$3\" ra yew hesab vıraşto.\nŞıma gani cı kewê u parola xo nıka bıvurnê.",
-    "usernamehasherror": "Namey karberi de karakteri gani têmiyan ra mebê",
     "login-throttled": "Demekê $1 cıwa ver de şıma zah teşebbusê hesab akerdış kerd.\nBıne vındere u newe ra dest pê bıkere.",
     "login-abort-generic": "Dekewtışê şıma xırabo-terkneyayo",
     "loginlanguagelabel": "Zıwan: $1",
     "session_fail_preview_html": "'''Ma meluli! Sebayê vindbiyayişê datasistemi ma vurnayişê şıma nêeşkeni qaydker.'''\n\n''Çunke keyepelê {{SITENAME}} de raw HTML aqtifo, seyrkerdışê verqayd semedê galayê (alızyayiş) JavaScript ri nımıyayo.''\n\n'''Eke no vurnayiş heqê şımayo, newe ra tesel bıker (bıcerebi). eke hona zi nêxebıtya, [[Special:UserLogout|vec]] newe ra hesabê xo aker.'''",
     "token_suffix_mismatch": "'''Vurnayişê şıma tepeya ameyo çunke qutiyê imla xerıbya.\nVurnayişê şıma qey nêxerepyayişê peli tepeya geyra a.\nEke şıma servisê proksi yo anonim şuxulneni sebebê ey noyo.'''",
     "edit_form_incomplete": "'''Qandê form dê vurnayışa tay wastera ma nêreşti; Vurnayışê ke şıma kerdê nêalızyayê, çım ra ravyarnê u fına bıcerbnê.'''",
-    "editing": "Şımayê $1 vurnenê",
-    "creating": "Pela $1 vırazê",
+    "editing": "$1 vuriyeno",
+    "creating": "$1 vıraziyeno",
     "editingsection": "Per da $1 de şımaye kenê ke leti bıvurnê",
     "editingcomment": "$1 vuryeno (qısmo newe)",
-    "editconflict": "Vurnayişê ke yewbini nêtepışeni: $1",
+    "editconflict": "Têverabiyayışê vurnayışi: $1",
     "explainconflict": "Wexta ke şıma pel vurneyene yewna ten zi pel vurna.\nNuşteyo corin; halê pelo nıkayin mocneno.\nVurnayişê şıma cêr de mocya ( musya).\nVurnayişanê peyinan şıma gani qayd bıkeri.\nWexta ke şıma butonê \"{{int:savearticle}}\" tıkna '''teyna''' nuşteyo corin qayd beno.",
     "yourtext": "nuşteyê şıma",
     "storedversion": "Nuşteyo qaydbiyaye",
     "log-fulllog": "Temamê rocaneyi bıvine",
     "edit-hook-aborted": "Vurnayiş vınderiya.\nYew sebeb beyan nibı.",
     "edit-gone-missing": "Pel rocanebiyaye niyo.\nHewna kerde aseno.",
-    "edit-conflict": "Vurnayişê pêverdiyaye.",
+    "edit-conflict": "Têverabiyayışê vurnayışi.",
     "edit-no-change": "Vurnayişê şıma qebul nêbı, çunke nuşte de yew vurnayiş n3evıraziya.",
     "postedit-confirmation": "Vurnayışê to qeyd bi.",
     "edit-already-exists": "Pelo newe nêvıraziyeno.\nPel ca ra esto.",
     "prefs-skin": "Çerme",
     "skin-preview": "Verasayış",
     "datedefault": "Tercih çıniyo",
-    "prefs-datetime": "Tarix u wext",
     "prefs-labs": "Xacetê labs",
     "prefs-user-pages": "Pela Karberi",
     "prefs-personal": "Pela karberi",
     "rightslogtext": "Ena listeyê loganê ke heqqa karbaranî mucneno.",
     "action-read": "ena pela wanayış",
     "action-edit": "ena pela bıvurnê",
-    "action-createpage": "pelan vıraze",
+    "action-createpage": "pelan vıraze",
     "action-createtalk": "pelanê werênayışi bıvıraze",
     "action-createaccount": "hesabê nê karberi bıvıraze",
     "action-minoredit": "nê vurnayışi be qıckek işaret ke",
     "upload-permitted": "Tipanê dosyayi ke izin ey estê: $1.",
     "upload-preferred": "Tipanê dosyayi ke tercihe ey estê: $1",
     "upload-prohibited": "Babetê dosyayanê tometebiyayeyan: $1.",
-    "uploadlog": "cıkewtışê barkerdışi",
     "uploadlogpage": "Cıkewtışê bar-kerdışi",
     "uploadlogpagetext": "cêr de [[Special:NewFiles|listeyê dosyayan]] estî.",
     "filename": "Namey Dosya",
     "filereuploadsummary": "Vurnayîşê dosyayî:",
     "filestatus": "Weziyetê heqa telifi:",
     "filesource": "Çıme:",
-    "uploadedfiles": "Dosyayê ke bar biye",
     "ignorewarning": "Îkazi kebul meke u dosya reyna bar bike",
     "ignorewarnings": "Îkazi kebul meke",
     "minlength1": "Nameyanê dosyayî de gani bî ezamî yew herf est biyê.",
     "overwroteimage": "yew versiyonê newvî ye \"[[$1]]\"î bar bike",
     "uploaddisabled": "bar kerdişî iptal biyo",
     "copyuploaddisabled": "URL bar kerdiş kefiliyeyo.",
-    "uploadfromurl-queued": "Bar kerdişê tu ha sira de vindeno.",
     "uploaddisabledtext": "Bar kerdişê dosyayî iptal biyo",
     "php-uploaddisabledtext": "barkerdışê dosyayê PHP nıka çino. kerem kere eyarê file_uploads korol bıkerê.",
     "uploadscripted": "Ena dosya de yew HTML ya zi kodê scriptî este ke belki browserê webî fam nikeno.",
     "sourceurl": "URLyê çımey:",
     "destfilename": "Destînasyonê nameyêdosya",
     "upload-maxfilesize": "Ebatêî dosya tewr girdî: $1",
-    "upload-description": "Deskripsiyonê dosyayî",
+    "upload-description": "Arezekerdışê dosya",
     "upload-options": "Tercihanê bar kerdişî",
     "watchthisupload": "Ena dosya seyr bike",
     "filewasdeleted": "no name de yew dosya yew wexto nızdi de bar biya u dıma zi serkaran hewn a kerdo. wexya ke şıma dosya bar keni bıewnê no pel $1.",
     "upload-misc-error": "Ğeletê bar kerdişî nizanyeno",
     "upload-misc-error-text": "wextê barkerdişî de yew xetayo mechul vırazîya.\nkonrol bıkeri şıma besteyi? Ya zi şıma karo raşt keni?\nEke problem dewam kerd [[Special:ListUsers/sysop|serkari]] de irtibat kewe.",
     "upload-too-many-redirects": "Eno URL de zaf redireksiyonî esto.",
-    "upload-unknown-size": "Ebat nizanyeno",
     "upload-http-error": "Yew ğeletê HTTPî biyo: $1",
     "upload-copy-upload-invalid-domain": "Na domain ra kopyayê barkerdışanê nêbenê.",
     "backend-fail-stream": "$1 nê vırazeyê",
     "img-auth-streaming": "\"$1\" stream keno.",
     "img-auth-public": "img_auth.php'nin fonksiyonê ney; wiki ra dosyaya xususiyan vetışo.\nno wiki bı umumi eyar biyo.\nqey pawıtışi, img_auth.php battal verdiyayo.",
     "img-auth-noread": "Heqqa karberanî çino ke \"$1\" biwendi",
-    "img-auth-bad-query-string": "URL'dı ratnayışo nêravêrde esto.",
     "http-invalid-url": "URL raşt niya: $1",
     "http-invalid-scheme": "URLan ke pê şablonê \"$1\"i rê destek cini ya.",
     "http-request-error": "Waştişê tu HTTP de xeta biya seba yew xetayê ke nizanyeno.",
     "filehist-dimensions": "Ebati",
     "filehist-filesize": "Ebatê dosyayî",
     "filehist-comment": "Vacayış",
-    "filehist-missing": "Dosya nieseno",
     "imagelinks": "Gurenayışê dosya",
     "linkstoimage": "Ena {{PLURAL:$1|pela|$1 pela}} gıreye ena dosya:",
     "linkstoimage-more": "$1 ra ziyed {{PLURAL:$1|pel|pel}} re gırey dano.\nlisteya ke ha ver a têna na {{PLURAL:$1|dosyaya ewwili|dosyaya $1 ewwili}} mocnena.\n[[Special:WhatLinksHere/$2|pêroyê liste]] mevcud o.",
     "emailuser-title-notarget": "E-postaya karberi",
     "emailpage": "karberi re e-posta bırışê",
     "emailpagetext": "Şıma şenê nê formê cêrêni nê {{GENDER:$1|karber}}i rê e-poste rıştış de bıgurenê.\n[[Special:Preferences|Tercihanê şımayê karberi]] de adresa e-posteya ke şıma daya, na adrese qısmê adresa e-postey de \"kami ra\" asena, no sebeb ra gırewtoğ şeno direkt cewab bıdero şıma.",
-    "usermailererror": "xizmetê e-postayi xeta da:",
     "defemailsubject": "\"$1\" ra e-postay {{SITENAME}} amê",
     "usermaildisabled": "E-mailê karberani kafiliyeya",
     "usermaildisabledtext": "Ti nieşkena ena wiki de karberanê binan rê e-mail bişave",
     "noemailtitle": "adresa e-postayi çina",
     "noemailtext": "no/na karber yew e-postayo meqbul nêdawa/o",
-    "nowikiemailtitle": "E-postayan re destur çino",
     "nowikiemailtext": "no/na karber/e, karberanê binani ra gırewtışê e-postayi tercih nêkerd.",
     "emailnotarget": "Qandê Gêreninamey karberiyo wuna çınyo yana xırabo.",
     "emailtarget": "Namey Karberi defiyê de.",
     "watching": "Seyr ke...",
     "unwatching": "Seyr meke...",
     "watcherrortext": "Sazanê listeda seyri vurnayış de pox ta \"$1\" xırabey vıcyê .",
-    "enotif_mailer": "postaya xeberdayişi {{SITENAME}}",
     "enotif_reset": "Pela pêro ziyaret kerde deye mor ke",
     "enotif_impersonal_salutation": "{{SITENAME}} karber",
     "enotif_subject_deleted": "{{SITENAME}} de pera $1 {{gender:$2|$2}} esterıt.",
     "excontent": "Zerreko verén: '$1'",
     "excontentauthor": "Zerrey cı: '$1' no/na ('[[Special:Contributions/$2|$2]]'  teyna iştıraq kerdo)",
     "exbeforeblank": "behsê verê esteriyayişi: '$1'",
-    "exblank": "zerreyê peli vengo",
     "delete-confirm": "\"$1\" bestere",
     "delete-legend": "Bestere",
     "historywarning": "'''Teme:''' Pela ke şıma esterenê tede yew viyarte be teqriben $1 {{PLURAL:$1|versiyon esto|versiyoni estê}}:",
     "importunknownsource": "Çimeyê tip ê împortî nizanyano",
     "importcantopen": "Nieşkenî dosyayê împortî a bike",
     "importbadinterwiki": "Linkê înterwîkîyî nihebitiyeno",
-    "importnotext": "Veng o ya zi tede nuşte çini yo",
     "importsuccess": "Împort qediya!",
-    "importhistoryconflict": "verê revizyon ê ke pêverdiyaye yê tiya de mewcud o (no pel, belka cıwa ver kırışiyayo zerreyi)",
     "importnosources": "çımeyê kırıştışê zerredayişi nidiyo şınasnayişi u barbiyayişê verıni battal verdiyo.",
     "importnofile": "Yew zi dosyayê împortî bar nibiyo.",
     "importuploaderrorsize": "barbiyayişê kırıştışê zerredayişi nibı.\ngırdiyê dosyayi, gırdî yo ke musa'ade biyo ıney gırdıyî ra gırd o.",
index 37bdff9..7954bf2 100644 (file)
     "disclaimers": "ཁས་མི་ལེན་པ།",
     "disclaimerpage": "Project: སྤྱིར་བཏང་ཁས་མི་ལེན་པ།",
     "edithelp": "ཞུན་དག་གྲོགས་རམ།",
-    "helppage": "Help:ནང་དོན།",
     "mainpage": "མ་ཤོག།",
     "mainpage-description": "མ་ཤོག།",
     "portal": "མི་སྡེའི་སྒོ་ར།",
index d8c7bc5..511790c 100644 (file)
     "accountcreatedtext": "È stê fât 'n'utèisa per [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|msg]]).",
     "createaccount-title": "Per fêr un inscrisiòun a {{SITENAME}}",
     "createaccount-text": "Quelchidûn l'à fât un inscrisiòun a  {{SITENAME}} ($4) a nòm ed $2 coleghê a cl'indirés ed pôsta eletrônica ché. La cêva 'd ingrès per l'utèint \"$2\" l'é  impustêda a \"$3\". \nÉ necesâri fêr un ingrès préma ch' es pôl e cambiêr subét la cêva 'd ingrès. \nSe l'inscrisiòun l'é stêda fâta per şbâli, es pōl scanşlêr sté mesâg.",
-    "usernamehasherror": "Al nòm utèint al pōl mìa avèir i carâter hash",
     "login-throttled": "În stê fât trôp tentatîv 'd ingrès in pôch tèimp. Spèta $1 e pó tōrna pruvêr.",
     "login-abort-generic": "An t'é mìa stê arcgnusû - Scanşlê",
     "loginlanguagelabel": "Léngva: $1",
index a821207..646727b 100644 (file)
@@ -40,7 +40,6 @@
     "jumptosearch": "Sèirca",
     "currentevents": "Fât e prugèt ed tót",
     "currentevents-url": "Project:Prugèt_ed_tót",
-    "helppage": "Help:Introdusiòun",
     "portal": "Discóter e quistiunêr",
     "portal-url": "Project:Bar",
     "nstab-main": "Artécol",
index 45a64df..41c12b3 100644 (file)
     "accountcreatedtext": "The user account for [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) has been created.",
     "createaccount-title": "Account creation for {{SITENAME}}",
     "createaccount-text": "Someone created an account for your email address on {{SITENAME}} ($4) named \"$2\", with password \"$3\".\nYou should log in and change your password now.\n\nYou may ignore this message, if this account was created in error.",
-    "usernamehasherror": "Username cannot contain hash characters",
     "login-throttled": "You have made too many recent login attempts.\nPlease wait $1 before trying again.",
     "login-abort-generic": "Your login was unsuccessful - Aborted",
     "loginlanguagelabel": "Language: $1",
     "prefs-skin": "Skin",
     "skin-preview": "Preview",
     "datedefault": "No preference",
-    "prefs-datetime": "Date and time",
     "prefs-labs": "Labs features",
     "prefs-user-pages": "User pages",
     "prefs-personal": "User profile",
     "upload-prohibited": "Prohibited file types: $1.",
     "uploadfooter": "-",
     "upload-default-description": "-",
-    "uploadlog": "upload log",
     "uploadlogpage": "Upload log",
     "uploadlogpagetext": "Below is a list of the most recent file uploads.\nSee the [[Special:NewFiles|gallery of new files]] for a more visual overview.",
     "filename": "Filename",
     "filereuploadsummary": "File changes:",
     "filestatus": "Copyright status:",
     "filesource": "Source:",
-    "uploadedfiles": "Uploaded files",
     "ignorewarning": "Ignore warning and save file anyway",
     "ignorewarnings": "Ignore any warnings",
     "minlength1": "Filenames must be at least one letter.",
     "overwroteimage": "uploaded a new version of \"[[$1]]\"",
     "uploaddisabled": "Uploads disabled.",
     "copyuploaddisabled": "Upload by URL disabled.",
-    "uploadfromurl-queued": "Your upload has been queued.",
     "uploaddisabledtext": "File uploads are disabled.",
     "php-uploaddisabledtext": "File uploads are disabled in PHP.\nPlease check the file_uploads setting.",
     "uploadscripted": "This file contains HTML or script code that may be erroneously interpreted by a web browser.",
     "upload-misc-error": "Unknown upload error",
     "upload-misc-error-text": "An unknown error occurred during the upload.\nPlease verify that the URL is valid and accessible and try again.\nIf the problem persists, contact an [[Special:ListUsers/sysop|administrator]].",
     "upload-too-many-redirects": "The URL contained too many redirects",
-    "upload-unknown-size": "Unknown size",
     "upload-http-error": "An HTTP error occurred: $1",
     "upload-copy-upload-invalid-domain": "Copy uploads are not available from this domain.",
     "backend-fail-stream": "Could not stream file \"$1\".",
     "img-auth-streaming": "Streaming \"$1\".",
     "img-auth-public": "The function of img_auth.php is to output files from a private wiki.\nThis wiki is configured as a public wiki.\nFor optimal security, img_auth.php is disabled.",
     "img-auth-noread": "User does not have access to read \"$1\".",
-    "img-auth-bad-query-string": "The URL has an invalid query string.",
     "http-invalid-url": "Invalid URL: $1",
     "http-invalid-scheme": "URLs with the \"$1\" scheme are not supported.",
     "http-request-error": "HTTP request failed due to unknown error.",
     "filehist-dimensions": "Dimensions",
     "filehist-filesize": "File size",
     "filehist-comment": "Comment",
-    "filehist-missing": "File missing",
     "imagelinks": "File usage",
     "linkstoimage": "The following {{PLURAL:$1|page links|$1 pages link}} to this file:",
     "linkstoimage-more": "More than $1 {{PLURAL:$1|page links|pages link}} to this file.\nThe following list shows the {{PLURAL:$1|first page link|first $1 page links}} to this file only.\nA [[Special:WhatLinksHere/$2|full list]] is available.",
     "listgrouprights-removegroup-self": "Remove {{PLURAL:$2|group|groups}} from own account: $1",
     "listgrouprights-addgroup-self-all": "Add all groups to own account",
     "listgrouprights-removegroup-self-all": "Remove all groups from own account",
+    "listgrouprights-namespaceprotection-header": "Namespace restrictions",
+    "listgrouprights-namespaceprotection-namespace": "Namespace",
+    "listgrouprights-namespaceprotection-restrictedto": "Right(s) allowing user to edit",
     "trackingcategories": "Tracking categories",
     "trackingcategories-summary": "This page lists tracking categories which are automatically populated by the MediaWiki software. Their names can be changed by altering the relevant system messages in the {{ns:8}} namespace.",
     "trackingcategories-msg": "Tracking category",
     "trackingcategories-name": "Message name",
     "trackingcategories-desc": "Category inclusion criteria",
-    "noindex-category-desc": "The page is not indexed by robots because it has the magic word <nowiki>__NOINDEX__</nowiki> on it and is in a namespace where that flag is allowed.",
-    "index-category-desc": "The page has a <nowiki>__INDEX__</nowiki> on it (and is in a namespace where that flag is allowed), and hence is indexed by robots where it normally wouldn't be.",
+    "noindex-category-desc": "The page is not indexed by robots because it has the magic word <code><nowiki>__NOINDEX__</nowiki></code> on it and is in a namespace where that flag is allowed.",
+    "index-category-desc": "The page has a <code><nowiki>__INDEX__</nowiki></code> on it (and is in a namespace where that flag is allowed), and hence is indexed by robots where it normally wouldn't be.",
     "post-expand-template-inclusion-category-desc": "After expanding all the templates, the page size is bigger than <code>$wgMaxArticleSize</code>, so some templates weren't expanded.",
-    "post-expand-template-argument-category-desc": "After expanding a template argument (something in triple braces, like <code>{{{Foo}}})</code>, the page is bigger than <code>$wgMaxArticleSize</code>.",
+    "post-expand-template-argument-category-desc": "After expanding a template argument (something in triple braces, like <code>{{{Foo}}}</code>), the page is bigger than <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Too many expensive parser functions (like <code>#ifexist</code>) included on a page. See [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
     "broken-file-category-desc": "Category added if the page contains a broken file link (a link to embed a file when the file does not exist).",
-    "hidden-category-category-desc": "This is a category with <nowiki>__HIDDENCAT__</nowiki> on it, which prevents it from showing up in the category links box on pages, by default.",
+    "hidden-category-category-desc": "This is a category with <code><nowiki>__HIDDENCAT__</nowiki></code> on it, which prevents it from showing up in the category links box on pages, by default.",
     "trackingcategories-nodesc": "No description available.",
     "trackingcategories-disabled": "Category is disabled",
     "mailnologin": "No send address",
     "emailuser-summary": "",
     "emailpage": "Email user",
     "emailpagetext": "You can use the form below to send an email message to this {{GENDER:$1|user}}.\nThe email address you entered in [[Special:Preferences|your user preferences]] will appear as the \"From\" address of the email, so the recipient will be able to reply directly to you.",
-    "usermailererror": "Mail object returned error:",
     "defemailsubject": "{{SITENAME}} email from user \"$1\"",
     "usermaildisabled": "User email disabled",
     "usermaildisabledtext": "You cannot send email to other users on this wiki",
     "noemailtitle": "No email address",
     "noemailtext": "This user has not specified a valid email address.",
-    "nowikiemailtitle": "No email allowed",
     "nowikiemailtext": "This user has chosen not to receive email from other users.",
     "emailnotarget": "Non-existent or invalid username for recipient.",
     "emailtarget": "Enter username of recipient",
     "unwatchthispage": "Stop watching",
     "notanarticle": "Not a content page",
     "notvisiblerev": "The last revision by a different user has been deleted",
-    "watchlist-details": "{{PLURAL:$1|$1 page|$1 pages}} on your watchlist, not counting talk pages.",
+    "watchlist-details": "{{PLURAL:$1|$1 page|$1 pages}} on your watchlist, not separately counting talk pages.",
     "wlheader-enotif": "Email notification is enabled.",
     "wlheader-showupdated": "Pages that have been changed since you last visited them are shown in <strong>bold</strong>.",
     "watchmethod-recent": "checking recent edits for watched pages",
     "watching": "Watching...",
     "unwatching": "Unwatching...",
     "watcherrortext": "An error occurred while changing your watchlist settings for \"$1\".",
-    "enotif_mailer": "{{SITENAME}} notification mailer",
     "enotif_reset": "Mark all pages visited",
     "enotif_impersonal_salutation": "{{SITENAME}} user",
     "enotif_subject_deleted": "{{SITENAME}} page $1 has been {{GENDER:$2|deleted}} by $2",
     "excontent": "content was: \"$1\"",
     "excontentauthor": "content was: \"$1\" (and the only contributor was \"[[Special:Contributions/$2|$2]]\")",
     "exbeforeblank": "content before blanking was: \"$1\"",
-    "exblank": "page was empty",
     "delete-confirm": "Delete \"$1\"",
     "delete-legend": "Delete",
     "historywarning": "<strong>Warning:</strong> The page you are about to delete has a history with approximately $1 {{PLURAL:$1|revision|revisions}}:",
     "contributions-title": "User contributions for $1",
     "mycontris": "Contributions",
     "contribsub2": "For {{GENDER:$3|$1}} ($2)",
+    "contributions-userdoesnotexist": "User account \"$1\" is not registered.",
     "nocontribs": "No changes were found matching these criteria.",
     "uctop": "(current)",
     "month": "From month (and earlier):",
     "importunknownsource": "Unknown import source type",
     "importcantopen": "Could not open import file",
     "importbadinterwiki": "Bad interwiki link",
-    "importnotext": "Empty or no text",
     "importsuccess": "Import finished!",
-    "importhistoryconflict": "Conflicting history revision exists (may have imported this page before)",
     "importnosources": "No transwiki import sources have been defined and direct history uploads are disabled.",
     "importnofile": "No import file was uploaded.",
     "importuploaderrorsize": "Upload of import file failed.\nThe file is bigger than the allowed upload size.",
index 9f0fec7..96d19a9 100644 (file)
     "accountcreatedtext": "La uzanto-konto por [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskuto]])  estas kreita.",
     "createaccount-title": "Konto-kreado por {{SITENAME}}",
     "createaccount-text": "Iu kreis konton por via retadreso en {{SITENAME}} ($4) nomata \"$2\", kun pasvorto \"$3\". Vi ensalutu kaj ŝanĝu vian pasvorton nun.\n\nVi povas ignori ĉi tiun mesaĝon, se ĉi tiu konto estis kreita erare.",
-    "usernamehasherror": "Salutnomo ne povas enhavi signojn de kriptaj haketaĵoj",
     "login-throttled": "Vi ĵus tro ofte provis ensaluti.\nBonvolu ĝisatendi $1 antaŭ reprovi.",
     "login-abort-generic": "Via ensaluto malsukcesis - Ĉesigita",
     "loginlanguagelabel": "Lingvo: $1",
     "prefs-skin": "Etoso",
     "skin-preview": "Antaŭrigardo",
     "datedefault": "Nenia prefero",
-    "prefs-datetime": "Dato kaj horo",
     "prefs-labs": "Ecoj el Laboratorio",
     "prefs-user-pages": "Uzantopaĝoj",
     "prefs-personal": "Uzanta profilo",
     "upload-permitted": "Permesitaj dosiertipoj: $1.",
     "upload-preferred": "Preferitaj dosiertipoj: $1.",
     "upload-prohibited": "Malpermesitaj dosiero-tipoj: $1.",
-    "uploadlog": "protokolo de alŝutoj",
     "uploadlogpage": "Protokolo de alŝutoj",
     "uploadlogpagetext": "Jen la plej laste alŝutitaj dosieroj.\nĈiuj tempoj montriĝas laŭ la horzono UTC.",
     "filename": "Dosiernomo",
     "filereuploadsummary": "Dosieraj ŝanĝoj:",
     "filestatus": "Aŭtorrajta statuso:",
     "filesource": "Fonto:",
-    "uploadedfiles": "Alŝutitaj dosieroj",
     "ignorewarning": "Ignori averton kaj konservi dosieron ĉiukaze",
     "ignorewarnings": "Ignori ĉiajn avertojn",
     "minlength1": "Nomoj de dosieroj nepre havas almenaŭ unu literon.",
     "overwroteimage": "alŝutis novan version de \"[[$1]]\"",
     "uploaddisabled": "Alŝutado estas malŝaltita",
     "copyuploaddisabled": "Alŝuto de URL malfunkciigita.",
-    "uploadfromurl-queued": "Via alŝuto estis vicatendigata.",
     "uploaddisabledtext": "Alŝutado de dosieroj estas malebligita.",
     "php-uploaddisabledtext": "Dosiera alŝutado estas malŝalta en PHP. Bonvolu kontroli la preferon file_uploads.",
     "uploadscripted": "HTML-aĵo aŭ skriptokodaĵo troviĝas en tiu ĉi tiu dosiero, kiun TTT-foliumilo eble interpretus erare.",
     "upload-misc-error": "Nekonata eraro pri alŝutado.",
     "upload-misc-error-text": "Nekonata eraro okazis dum la alŝuto.\nBonvolu kontroli ke la URL-o estas valida kaj atingebla tiam reprovu.\nSe la problemo kontinuas, kontaku [[Special:ListUsers/sysop|administranton]].",
     "upload-too-many-redirects": "La URL-o enhavis tro multajn alidirektilojn",
-    "upload-unknown-size": "Nekonata grandeco",
     "upload-http-error": "HTTP-eraro okazis: $1",
     "upload-copy-upload-invalid-domain": "Kopio-alŝutoj ne disponiĝas el ĉi tiu domajno.",
     "backend-fail-stream": "Ne povis fluigi dosieron $1.",
     "img-auth-streaming": "Elsendfluante \"$1\".",
     "img-auth-public": "La funkcio de img_auth.php estas eligi dosierojn de privata vikio.\nĈi tiu vikio estas konfigurita kiel publika vikio.\nPor optimuma sekureco, img_auth.php estas malŝalta.",
     "img-auth-noread": "Uzanto ne havas atingon por legi \"$1\".",
-    "img-auth-bad-query-string": "La URL-o havas malvalidan mendan signoĉenon.",
     "http-invalid-url": "Malvalida URL-o: $1",
     "http-invalid-scheme": "URL-oj kun la skemo \"$1\" ne estas subtenata.",
     "http-request-error": "HTTP-peto malsukcesis pro nekonata eraro.",
     "filehist-dimensions": "Dimensioj",
     "filehist-filesize": "Grando de dosiero",
     "filehist-comment": "Komento",
-    "filehist-missing": "Dosiero mankas",
     "imagelinks": "Dosiera uzado",
     "linkstoimage": "La {{PLURAL:$1|jena paĝo|jenaj paĝoj}} ligas al ĉi tiu dosiero:",
     "linkstoimage-more": "Pli ol $1 {{PLURAL:$1|paĝo|paĝoj}} ligas ĉi tiun dosieron.\nLa jena listo montras la {{PLURAL:$1|unua paĝligilo|unuaj $1 paĝligiloj}} al nur ĉi tiu dosiero.\n[[Special:WhatLinksHere/$2|Plena listo]] estas atingebla.",
     "emailuser-title-notarget": "Retpoŝti uzanton",
     "emailpage": "Retpoŝti uzanton",
     "emailpagetext": "Vi povas uzi la jenan paĝon por sendi retpoŝtan mesaĝon al ĉi tiu {{GENDER:$1|uzanto|uzantino}}.\nLa retadreso kiun vi enigis en [[Special:Preferences|viaj preferoj]] aperos kiel la \"De\" adreso de la retpoŝto, do la ricevonto eblos respondi rekte al vi.",
-    "usermailererror": "Resendita retmesaĝa erarsubjekto:",
     "defemailsubject": "{{SITENAME}} retmesaĝo de uzanto \"$1\"",
     "usermaildisabled": "Retpoŝto de uzantoj estas malŝaltita",
     "usermaildisabledtext": "Vi ne povas sendi retpoŝton al aliaj uzantoj en ĉi tiu vikio",
     "noemailtitle": "Neniu retpoŝtadreso",
     "noemailtext": "Ĉi tiu uzanto ne donis validan retadreson.",
-    "nowikiemailtitle": "Retpoŝto ne permesita",
     "nowikiemailtext": "Ĉi tiu uzanto elektis ne ricevi retpoŝton de aliaj uzantoj.",
     "emailnotarget": "Neekzistanta aŭ malvalida salutnomo por ricevanto.",
     "emailtarget": "Enigi salutnomon de ricevonto",
     "watching": "Aldonante al la atentaro...",
     "unwatching": "Malatentante...",
     "watcherrortext": "Eraro okazis ŝanĝinte vian agordojn de atentaro por \"$1\".",
-    "enotif_mailer": "Averta retmesaĝo de {{SITENAME}}",
     "enotif_reset": "Marki ĉiujn paĝojn vizititaj",
     "enotif_impersonal_salutation": "Uzanto de {{SITENAME}}",
     "enotif_subject_deleted": "La paĝon $1 de {{SITENAME}} forigis {{gender:$2|$2}}",
     "excontent": "enhavis: '$1'",
     "excontentauthor": "la enteno estis : '$1' (kaj la sola kontribuinto estis '$2')",
     "exbeforeblank": "antaŭ malplenigo enhavis: '$1'",
-    "exblank": "estis malplena",
     "delete-confirm": "Forigi \"$1\"",
     "delete-legend": "Forigi",
     "historywarning": "'''Averto:''' La forigota paĝo havas historion kun pli-malpli $1 {{PLURAL:$1|revizio|revizioj}}:",
     "importunknownsource": "Nekonata fonta speco de alŝuto",
     "importcantopen": "Ne povas malfermi import-dosieron",
     "importbadinterwiki": "Malbona intervikia ligilo",
-    "importnotext": "Malplena aŭ senteksta",
     "importsuccess": "La importo sukcesis!",
-    "importhistoryconflict": "Malkongrua historia versio ekzistas (eble la paĝo importiĝis antaŭe)",
     "importnosources": "Neniu transvikia importfonto estis difinita kaj rekta historio de alŝutoj estas malaktivigita.",
     "importnofile": "Neniu import-dosiero estis alŝutita.",
     "importuploaderrorsize": "Alŝuto de import-dosiero malsukcesis. La dosiero estas pli granda ol la permesita alŝut-grando.",
index 4c5a3c8..ef62a4b 100644 (file)
             "Wilfredor",
             "XalD",
             "XanaG",
-            "לערי ריינהארט"
+            "לערי ריינהארט",
+            "Chocolate con galleta",
+            "Csbotero"
         ]
     },
     "tog-underline": "Subrayar los enlaces:",
     "tog-showhiddencats": "Mostrar las categorías escondidas",
     "tog-norollbackdiff": "Omitir la diferencia después de revertir",
     "tog-useeditwarning": "Advertirme cuando abandone una página editada con cambios sin grabar",
-    "tog-prefershttps": "Utiliza una conexión segura siempre que haya iniciado una sesión",
+    "tog-prefershttps": "Utilizar una conexión segura siempre que haya iniciado una sesión",
     "underline-always": "Siempre",
     "underline-never": "Nunca",
     "underline-default": "Aspecto (skin) o valor predeterminado del navegador",
     "permalink": "Enlace permanente",
     "print": "Imprimir",
     "view": "Ver",
+    "view-foreign": "Ver en $1",
     "edit": "Editar",
+    "edit-local": "Editar descripción local",
     "create": "Crear",
+    "create-local": "Añadir descripción local",
     "editthispage": "Editar esta página",
     "create-this-page": "Crear esta página",
     "delete": "Borrar",
     "accountcreatedtext": "La cuenta de usuario de [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) ha sido creada.",
     "createaccount-title": "Creación de cuenta para {{SITENAME}}",
     "createaccount-text": "Alguien creó en {{SITENAME}} ($4) una cuenta asociada a este correo electrónico con el nombre «$2».\nLa contraseña asignada automáticamente es «$3». Por favor entra ahora y cambia tu contraseña.\n\nPuedes ignorar este mensaje si esta cuenta fue creada por error.",
-    "usernamehasherror": "El nombre de usuario no puede contener símbolos de almohadilla/numeral",
     "login-throttled": "Has intentado demasiadas veces iniciar sesión. Por favor espera $1 antes de intentarlo nuevamente.",
     "login-abort-generic": "Tu inicio de sesión no fue exitoso - Cancelado",
     "loginlanguagelabel": "Idioma: $1",
     "newpassword": "Contraseña nueva:",
     "retypenew": "Confirmar la contraseña nueva:",
     "resetpass_submit": "Establecer contraseña e iniciar sesión",
-    "changepassword-success": "La contraseña ha sido cambiada con éxito.",
+    "changepassword-success": "La contraseña se modificó correctamente.",
     "changepassword-throttled": "Has intentado acceder demasiadas veces.\nEspera $1 antes de intentarlo de nuevo.",
     "resetpass_forbidden": "No se pueden cambiar las contraseñas",
     "resetpass-no-info": "Debes iniciar sesión para acceder directamente a esta página.",
     "prefs-skin": "Apariencia",
     "skin-preview": "Previsualizar",
     "datedefault": "Sin preferencia",
-    "prefs-datetime": "Fecha y hora",
     "prefs-labs": "Características de los laboratorios",
     "prefs-user-pages": "Páginas de usuario",
     "prefs-personal": "Perfil de usuario",
     "upload-permitted": "Tipos de archivo permitidos: $1.",
     "upload-preferred": "Tipos de archivo preferidos: $1.",
     "upload-prohibited": "Tipos de archivo prohibidos: $1.",
-    "uploadlog": "registro de subidas",
     "uploadlogpage": "Subidas de archivos",
     "uploadlogpagetext": "Abajo hay una lista de los últimos archivos subidos.\nMira la [[Special:NewFiles|galería de archivos nuevos]] para una descripción visual",
     "filename": "Nombre del archivo",
     "filereuploadsummary": "Cambios de archivo:",
     "filestatus": "Estado de copyright:",
     "filesource": "Fuente:",
-    "uploadedfiles": "Archivos subidos",
     "ignorewarning": "Ignorar aviso y guardar de todos modos",
     "ignorewarnings": "Ignorar cualquier aviso",
     "minlength1": "Los nombres de archivo deben tener al menos una letra.",
     "overwroteimage": "subió una nueva versión de «[[$1]]»",
     "uploaddisabled": "Subida de archivos deshabilitada",
     "copyuploaddisabled": "Carga por URL deshabilitada.",
-    "uploadfromurl-queued": "Tu carga ha sido enviada a la cola.",
     "uploaddisabledtext": "No es posible subir archivos.",
     "php-uploaddisabledtext": "La subida de archivos está deshabilitada en PHP. Por favor compruebe <code>file_uploads</code> en php.ini.",
     "uploadscripted": "Este archivo contiene script o código HTML que puede ser interpretado erróneamente por un navegador web.",
     "upload-misc-error": "Error desconocido en la subida",
     "upload-misc-error-text": "Ha ocurrido un error durante la subida. Por favor verifica que la URL es válida y accesible e inténtalo de nuevo. Si el problema persiste, contacta con un [[Special:ListUsers/sysop|administrador]].",
     "upload-too-many-redirects": "La URL contenía demasiadas redirecciones",
-    "upload-unknown-size": "Tamaño desconocido",
     "upload-http-error": "Ha ocurrido un error HTTP: $1",
     "upload-copy-upload-invalid-domain": "No se pueden realizar cargas remotas desde este dominio.",
     "backend-fail-stream": "No se pudo transmitir el archivo «$1».",
     "img-auth-streaming": "Streaming «$1».",
     "img-auth-public": "La función de img_auth.php es mostrar archivos desde una wiki privada.\nEsta wiki está configurada como pública.\nPara óptima seguridad, img_auth.php está desactivado.",
     "img-auth-noread": "El usuario no tiene acceso para leer «$1».",
-    "img-auth-bad-query-string": "La dirección URL tiene una cadena de consulta no válida.",
     "http-invalid-url": "URL inválida: $1",
     "http-invalid-scheme": "Las URLs con el esquema «$1» no son compatibles.",
     "http-request-error": "La solicitud HTTP falló debido a un error desconocido.",
     "filehist-dimensions": "Dimensiones",
     "filehist-filesize": "Tamaño",
     "filehist-comment": "Comentario",
-    "filehist-missing": "No se encuentra el archivo",
     "imagelinks": "Usos del archivo",
     "linkstoimage": "{{PLURAL:$1|La siguiente página enlaza|Las siguientes páginas enlazan}} a este archivo:",
     "linkstoimage-more": "Hay más de {{PLURAL:$1|una página que enlaza|$1 páginas que enlazan}} con este archivo.\n\nLa lista siguiente sólo muestra {{PLURAL:$1|la primera página que enlaza|las primeras $1 páginas que enlazan}} con este archivo.\nTambién puedes consultar la [[Special:WhatLinksHere/$2|lista completa]].",
     "listgrouprights-removegroup-self": "Eliminar {{PLURAL:$2|grupo|grupos}} de tu propia cuenta: $1",
     "listgrouprights-addgroup-self-all": "Agregar todos los grupos a tu propia cuenta",
     "listgrouprights-removegroup-self-all": "Eliminar todos los grupos de tu propia cuenta",
+    "listgrouprights-namespaceprotection-header": "Restricciones del espacio de nombre",
+    "listgrouprights-namespaceprotection-namespace": "Espacio de nombre",
+    "listgrouprights-namespaceprotection-restrictedto": "Derechos de usuario para editar",
     "trackingcategories": "Categorías de seguimiento",
     "trackingcategories-msg": "Categoría de seguimiento",
     "trackingcategories-name": "Nombre del mensaje",
     "trackingcategories-desc": "Criterios de inclusión de categoría",
-    "noindex-category-desc": "La página contiene la palabra mágica <nowiki>__NOINDEX__</nowiki> (y está en un espacio de nombres donde la función está activada); y por ello los robots no la indizan.",
+    "noindex-category-desc": "La página contiene la palabra mágica <code><nowiki>__NOINDEX__</nowiki></code> (y está en un espacio de nombres donde la función está activada); y por ello los robots no la indizan.",
+    "post-expand-template-inclusion-category-desc": "Después de expandir todas las plantillas, el tamaño de la página es más grande que <code>$wgMaxArticleSize</code>, así que algunas plantillas no se expandieron.",
+    "post-expand-template-argument-category-desc": "Después de expandir un argumento de plantilla (algunos en tres llaves, como <code>{{{Foo}}})</code>, la página es más grande que <code>$wgMaxArticleSize</code>.",
+    "hidden-category-category-desc": "Esta es una categoría con <code><nowiki>__HIDDENCAT__</nowiki></code> en ella, que evita que aparezca en el cuadro de enlace de la categoría en las páginas, de forma predeterminada.",
     "trackingcategories-nodesc": "No hay descripción disponible.",
     "trackingcategories-disabled": "La categoría está desactivada",
     "mailnologin": "Ninguna dirección de envio",
     "emailuser-title-notarget": "Enviar un correo electrónico al usuario",
     "emailpage": "Enviar un correo electrónico a un usuario",
     "emailpagetext": "Puedes usar el formulario de abajo para enviar un correo electrónico a {{GENDER:$1|este usuario|esta usuaria}}.\nLa dirección de correo electrónico que indicaste en [[Special:Preferences|tus preferencias de usuario]] aparecerá en el campo \"Remitente\" o \"De\" para que el destinatario pueda responderte.",
-    "usermailererror": "El sistema de correo devolvió un error:",
     "defemailsubject": "Correo electrónico enviado por el usuario «$1» desde {{SITENAME}}",
     "usermaildisabled": "Correo electrónico del usuario deshabilitado",
     "usermaildisabledtext": "No puedes enviar correos electrónicos a otros usuarios en esta wiki",
     "noemailtitle": "No hay dirección de correo electrónico",
     "noemailtext": "Este usuario no ha especificado una dirección de correo electrónico válida.",
-    "nowikiemailtitle": "correos electrónicos no permitidos",
     "nowikiemailtext": "Este usuario ha elegido no recibir correos electrónicos de otros usuarios.",
     "emailnotarget": "Nombre de usuario no existente o no válido para el destinatario.",
     "emailtarget": "Introduce el nombre de usuario del destinatario",
     "watching": "Vigilando...",
     "unwatching": "Eliminando de la lista de seguimiento...",
     "watcherrortext": "Ocurrió un error al cambiar la configuración de tu lista de seguimiento para «$1».",
-    "enotif_mailer": "Notificación por correo de {{SITENAME}}",
     "enotif_reset": "Marcar todas las páginas como visitadas",
     "enotif_impersonal_salutation": "usuario de {{SITENAME}}",
     "enotif_subject_deleted": "$2 ha borrado la página $1 de {{SITENAME}}",
     "excontent": "el contenido era: «$1»",
     "excontentauthor": "el contenido era: «$1» (y el único autor fue «[[Special:Contributions/$2|$2]]»)",
     "exbeforeblank": "El contenido antes de blanquear era: «$1»",
-    "exblank": "la página estaba vacía",
     "delete-confirm": "Borrar «$1»",
     "delete-legend": "Borrar",
     "historywarning": "'''Aviso:''' La página que estás a punto de borrar tiene un historial de aproximadamente $1 {{PLURAL:$1|revisión|revisiones}}:",
     "importunknownsource": "Tipo de fuente de importación desconocida",
     "importcantopen": "No se pudo importar el archivo",
     "importbadinterwiki": "Enlace interwiki anómalo",
-    "importnotext": "Vacío o sin texto",
     "importsuccess": "¡La importación se ha realizado con éxito!",
-    "importhistoryconflict": "Existen revisiones en conflicto en el historial (puede que se haya importado esta página antes)",
     "importnosources": "No hay fuentes de importación transwiki y no está permitido subir directamente el historial.",
     "importnofile": "No se subieron archivos de importación.",
     "importuploaderrorsize": "Falló la carga del archivo de importaciones.\nSu tamaño es superior al máximo permitido.",
index 4c69566..bb4ce7a 100644 (file)
     "accountcreatedtext": "Kasutaja [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) konto on loodud.",
     "createaccount-title": "{{GRAMMAR:illative|{{SITENAME}}}} konto loomine",
     "createaccount-text": "Keegi on loonud {{GRAMMAR:illative|{{SITENAME}}}} ($4) sinu e-posti aadressile vastava kasutajatunnuse \"$2\". Parooliks seati \"$3\". Logi sisse ja muuda oma parool.\n\nKui kasutajakonto loomine on eksitus, võid käesolevat sõnumit lihtsalt eirata.",
-    "usernamehasherror": "Kasutajanimi ei või sisaldada trellimärke (\"#\").",
     "login-throttled": "Oled lühikese aja jooksul proovinud liiga palju kordi sisse logida.\nPalun oota $1, enne kui uuesti proovid.",
     "login-abort-generic": "Sisselogimine ebaõnnestus – Katkestatud",
     "loginlanguagelabel": "Keel: $1",
     "prefs-skin": "Kujundus",
     "skin-preview": "eelvaade",
     "datedefault": "Eelistus puudub",
-    "prefs-datetime": "Kuupäev ja kellaaeg",
     "prefs-labs": "Katsefunktsioonid",
     "prefs-user-pages": "Kasutajaleheküljed",
     "prefs-personal": "Kasutaja andmed",
     "upload-permitted": "Lubatud failitüübid: $1.",
     "upload-preferred": "Eelistatud failitüübid: $1.",
     "upload-prohibited": "Keelatud failitüübid: $1.",
-    "uploadlog": "üleslaadimislogi",
     "uploadlogpage": "Üleslaadimislogi",
     "uploadlogpagetext": "Allpool on loend viimastest failide üleslaadimistest. Visuaalsema esituse nägemiseks vaata [[Special:NewFiles|uute failide galeriid]].",
     "filename": "Faili nimi",
     "filereuploadsummary": "Faili muudatused:",
     "filestatus": "Autoriõiguse staatus:",
     "filesource": "Allikas:",
-    "uploadedfiles": "Üleslaaditud failid",
     "ignorewarning": "Ignoreeri hoiatust ja salvesta fail hoiatusest hoolimata",
     "ignorewarnings": "Ignoreeri hoiatusi",
     "minlength1": "Faili nimes peab olema vähemalt üks kirjamärk.",
     "overwroteimage": "laadis üles faili \"[[$1]]\" uue versiooni",
     "uploaddisabled": "Üleslaadimine hetkel keelatud",
     "copyuploaddisabled": "Internetiaadressilt üleslaadimine on keelatud.",
-    "uploadfromurl-queued": "Üleslaadimine on järjekorras.",
     "uploaddisabledtext": "Faili üleslaadimine on keelatud.",
     "php-uploaddisabledtext": "Failide üleslaadmine on PHP seadetes keelatud.\nPalun vaata <code>file_uploads</code> sätet.",
     "uploadscripted": "See fail sisaldab HTML- või skriptikoodi, mida veebilehitseja võib valesti kuvada.",
     "upload-misc-error": "Tundmatu viga üleslaadimisel",
     "upload-misc-error-text": "Üleslaadimisel ilmnes tundmatu tõrge.\nPalun veendu, et internetiaadress on õige ja ligipääsetav ning proovi uuesti.\nKui probleem ei kao, võta ühendust [[Special:ListUsers/sysop|administraatoriga]].",
     "upload-too-many-redirects": "URL sisaldas liiga palju ümbersuunamisi",
-    "upload-unknown-size": "Tundmatu suurus",
     "upload-http-error": "HTTP-viga: $1",
     "upload-copy-upload-invalid-domain": "Sellest domeenist pole kopeerimise teel üleslaadimine võimalik.",
     "backend-fail-stream": "Faili $1 ei saanud edastada.",
     "img-auth-streaming": "Faili \"$1\" voogedastus.",
     "img-auth-public": "img_auth.php on ette nähtud failide väljastamiseks privaatses vikis.\nSee viki on seadistatud kui avalik viki.\nTurvakaalutlustel on img_auth.php kasutus keelatud.",
     "img-auth-noread": "Faili \"$1\" lugemiseks vajalik juurdepääs puudub.",
-    "img-auth-bad-query-string": "URL-is on vigane päringusõne.",
     "http-invalid-url": "Vigane internetiaadress: $1",
     "http-invalid-scheme": "Aadressid, mis algavad eesliitega \"$1\", ei ole toetatud.",
     "http-request-error": "HTTP-päring nurjus tundmatu tõrke tõttu.",
     "filehist-dimensions": "Mõõtmed",
     "filehist-filesize": "Faili suurus",
     "filehist-comment": "Kommentaar",
-    "filehist-missing": "Fail puudub",
     "imagelinks": "Failikasutus",
     "linkstoimage": "Sellele pildile {{PLURAL:$1|viitab järgmine lehekülg|viitavad järgmised leheküljed}}:",
     "linkstoimage-more": "Sellele failile viitab enam kui {{PLURAL:$1|üks lehekülg|$1 lehekülge}}.\nJärgmises loendis on näidatud ainult {{PLURAL:$1|esimene viitav lehekülg|esimesed $1 viitavat lehekülge}}.\n[[Special:WhatLinksHere/$2|Kogu loetelu]] on saadaval.",
     "trackingcategories-msg": "Süsteemikategooria",
     "trackingcategories-name": "Sõnumi nimi",
     "trackingcategories-desc": "Kategooriasse arvamise kriteeriumid",
-    "noindex-category-desc": "Leheküljel on võlusõna <nowiki>__NOINDEX__</nowiki> ja lehekülg on nimeruumis, kus see silt on lubatud ning seetõttu robotid ei indekseeri lehekülge.",
-    "index-category-desc": "Leheküljel on <nowiki>__INDEX__</nowiki> ja lehekülg on nimeruumis, kus see silt on lubatud ning seetõttu indekseerivad robotid lehekülge seal, kus nad muidu seda ei teeks.",
+    "noindex-category-desc": "Robotid ei indekseeri lehekülge, sest sellel on võlusõna <code><nowiki>__NOINDEX__</nowiki></code> ja lehekülg on nimeruumis, kus see silt on lubatud.",
+    "index-category-desc": "Leheküljel on <code><nowiki>__INDEX__</nowiki></code> ja lehekülg on nimeruumis, kus see silt on lubatud ning seetõttu indekseerivad robotid lehekülge seal, kus nad muidu seda ei teeks.",
     "post-expand-template-inclusion-category-desc": "Kõigi mallide hõrendamise järel on lehekülg suurem kui <code>$wgMaxArticleSize</code>, mistõttu jäid mõned mallid hõrendamata.",
     "post-expand-template-argument-category-desc": "Malli argumendi (midagi kolmekordsete looksulgude vahel, näiteks <code>{{{Foo}}})</code> hõrendamise järel on lehekülg suurem kui <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Leheküljel on liiga palju kulukaid parserifunktsioone nagu <code>#ifexist</code>. Vaata [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit dokumentatsiooni].",
     "broken-file-category-desc": "Kategooria lisatakse, kui leheküljel on katkine pildilink, millega manustatakse fail, mida pole olemas.",
-    "hidden-category-category-desc": "Selle kategooria leheküljel on <nowiki>__HIDDENCAT__</nowiki>, mis vaikimisi ei lase näidata seda kategooriat lehekülgedel kategoorialinkide kastis.",
+    "hidden-category-category-desc": "Selle kategooria leheküljel on <code><nowiki>__HIDDENCAT__</nowiki></code>, mis vaikimisi ei lase näidata seda kategooriat lehekülgedel kategoorialinkide kastis.",
     "trackingcategories-nodesc": "Kirjeldus puudub.",
     "trackingcategories-disabled": "Kategooria on keelatud.",
     "mailnologin": "Saatja aadress puudub",
     "emailuser-title-notarget": "Kasutajale e-kirja saatmine",
     "emailpage": "Saada kasutajale e-kiri",
     "emailpagetext": "Alloleva vormi kaudu saad sellele {{GENDER:$1|kasutajale}} e-kirja saata. Et kasutaja saaks vastata, täidetakse kirja saatja väli e-posti aadressiga, mille oled sisestanud [[Special:Preferences|oma eelistuste leheküljel]].",
-    "usermailererror": "Saatmise viga:",
     "defemailsubject": "E-kiri {{GRAMMAR:genitive|{{SITENAME}}}} kasutajalt $1",
     "usermaildisabled": "Kasutajatele e-kirjade saatmine keelatud",
     "usermaildisabledtext": "Selles vikis ei saa teistele kasutajatele e-kirju saata.",
     "noemailtitle": "E-posti aadressi pole",
     "noemailtext": "See kasutaja pole määranud kehtivat e-posti aadressi.",
-    "nowikiemailtitle": "E-kirja saatmine ei ole lubatud",
     "nowikiemailtext": "See kasutaja ei soovi e-posti teistelt kasutajatelt.",
     "emailnotarget": "Saaja kasutajanimi on olematu või vigane.",
     "emailtarget": "Saaja kasutajanime sisestamine",
     "watching": "Jälgimine...",
     "unwatching": "Jälgimise lõpetamine...",
     "watcherrortext": "Lehekülje \"$1\" jaoks jälgimisloendi sätete muutmisel ilmnes tõrge.",
-    "enotif_mailer": "{{GRAMMAR:genitive|{{SITENAME}}}} lehekülje muutmise teavitaja",
     "enotif_reset": "Märgi kõik lehed loetuks",
     "enotif_impersonal_salutation": "{{GRAMMAR:genitive|{{SITENAME}}}} kasutaja",
     "enotif_subject_deleted": "{{GENDER:$2|$2}} kustutas {{GRAMMAR:genitive|{{SITENAME}}}} lehekülje $1",
     "excontent": "sisu oli: '$1'",
     "excontentauthor": "sisu oli: '$1' (ja ainuke kirjutaja oli '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "sisu enne lehekülje tühjendamist: '$1'",
-    "exblank": "lehekülg oli tühi",
     "delete-confirm": "Lehekülje \"$1\" kustutamine",
     "delete-legend": "Kustutamine",
     "historywarning": "'''Hoiatus:''' Kustutataval leheküljel on ligikaudu {{PLURAL:$1|ühe redaktsiooniga|$1 redaktsiooniga}} ajalugu:",
     "importunknownsource": "Tundmatut tüüpi impordiallikas",
     "importcantopen": "Ei saa imporditavat faili avada",
     "importbadinterwiki": "Vigane vikidevaheline link",
-    "importnotext": "Tühi või ilma tekstita",
     "importsuccess": "Importimine edukalt lõpetatud!",
-    "importhistoryconflict": "Konfliktne muudatuste ajalugu (võimalik, et seda lehekülge juba varem imporditud)",
     "importnosources": "Ühtegi vikidevahelist impordiallikat pole määratletud ja otsene ajaloo üleslaadimine on keelatud.",
     "importnofile": "Ühtegi imporditavat faili ei laaditud üles.",
     "importuploaderrorsize": "Üleslaaditava faili import ebaõnnestus.\nFail on lubatust suurem.",
index 44611e3..b44678d 100644 (file)
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]] lankidearentzat ([[{{ns:User talk}}:$1|eztabaida]]) kontua sortu da.",
     "createaccount-title": "{{SITENAME}}-rako kontua sortu",
     "createaccount-text": "Norbaitek zure e-postarekin kontu bat sortu du {{SITENAME}}(e)n ($4) \"$2\" izenarekin eta \"$3\" pasahitzarekin.\nOrain bertan sar zaitezke eta zure pasahitza aldatu.\n\nKontu honen sorrera akats bat dela uste baduzu mezu honi ez diozu zertan jaramonik egin.",
-    "usernamehasherror": "Erabiltzaile-izenak ezin du kuxin-karaktererik eduki",
     "login-throttled": "Saioa hasteko saiakera gehiegi egin berri dituzu.\nBerriro saiatu aurretik $1 itxoin, mesedez.",
     "login-abort-generic": "Zure sarrera ez da arrakastatsua izan - Abortatua",
     "loginlanguagelabel": "Hizkuntza: $1",
     "prefs-skin": "Itxura",
     "skin-preview": "Aurrebista",
     "datedefault": "Hobespenik ez",
-    "prefs-datetime": "Data eta ordua",
     "prefs-labs": "Labs ezaugarriak",
     "prefs-user-pages": "Erabiltzaile orriak",
     "prefs-personal": "Erabiltzaile profila",
     "upload-permitted": "Baimendutako fitxategi motak: $1.",
     "upload-preferred": "Fitxategi mota hobetsiak: $1.",
     "upload-prohibited": "Debekatutako fitxategi motak: $1.",
-    "uploadlog": "igoera erregistroa",
     "uploadlogpage": "Igoera erregistroa",
     "uploadlogpagetext": "Jarraian, igotako azken fitxategien zerrenda ageri da.\nIkus ezazu [[Special:NewFiles|fitxategi berrien galeria]], irudizkoagoa den ikuspegi orokor bat izateko.",
     "filename": "Fitxategi izena",
     "filereuploadsummary": "Fitxategi aldaketak:",
     "filestatus": "Copyright egoera:",
     "filesource": "Jatorria:",
-    "uploadedfiles": "Igotako fitxategiak",
     "ignorewarning": "Oharra ezikusi eta fitxategia gorde.",
     "ignorewarnings": "Edozein ohar ezikusi.",
     "minlength1": "Fitxategi izenek letra bat izan behar dute gutxienez.",
     "overwroteimage": "\"[[$1]]\"ren bertsio berri bat igo",
     "uploaddisabled": "Igoerak ezgaituta daude",
     "copyuploaddisabled": "URL bidezko igoera desaktibatuta.",
-    "uploadfromurl-queued": "Zure igoera ilaran jarri da.",
     "uploaddisabledtext": "Fitxategiak igotzea ezgaituta dago.",
     "php-uploaddisabledtext": "Fitxategi igoerak PHP-n ezinduta daude. Ikusi fitxategi_igoerak mesedez.",
     "uploadscripted": "Fitxategi honek web zerbitzariak modu ezegokian interpretatu lezakeen HTML edo script kodea dauka.",
     "upload-misc-error": "Errore ezezaguna igotzerakoan",
     "upload-misc-error-text": "Errore ezezagun bat gertatu da fitxategia igotzen ari zenean. Mesedez, egiaztatu URLa baliozkoa eta eskuragarria dela eta berriz saiatu. Arazoak jarraitzen badu, jar zaitez [[Special:ListUsers/sysop|administratzailearekin]] harremanetan.",
     "upload-too-many-redirects": "URLak birbideratze gehiegi zituen",
-    "upload-unknown-size": "Tamaina ezezaguna",
     "upload-http-error": "HTTP errorea gertatu da: $1",
     "upload-copy-upload-invalid-domain": "Domeinu honetan ezin dira igoerak kopiatu.",
     "backend-fail-stream": "Ezin izan da \"$1\" fitxategiaren stream egin.",
     "img-auth-isdir": "\"$1\" direktorio batera iristen saiatzen ari zara.\nFitxategien sarbidea baino ez da onartzen.",
     "img-auth-streaming": "\"$1\" sekuentziatzen.",
     "img-auth-noread": "Erabiltzaileak ez du \"$1\" irakurtzeko sarbiderik.",
-    "img-auth-bad-query-string": "URLan query esaldi baliogabea dago.",
     "http-invalid-url": "URL baliogabea: $1",
     "http-invalid-scheme": "\"$1\" eskema duten URLak ez dira baliagarriak.",
     "http-request-error": "HTTP eskariak akatsa izan du errore ezezagun bat dela eta.",
     "filehist-dimensions": "Neurriak",
     "filehist-filesize": "Tamaina",
     "filehist-comment": "Iruzkina",
-    "filehist-missing": "Fitxategia falta da",
     "imagelinks": "Fitxategiaren erabilera",
     "linkstoimage": "Hurrengo {{PLURAL:$1|orrialdeak du|$1 orrialdeek dute}} fitxategi honetarako lotura:",
     "linkstoimage-more": "$1 {{PLURAL:$1|orri lotura|orri lotura}} baino gehiago daude fitxategira.\nOndorengo zerrendak fitxategira dauden {{PLURAL:$1|lehen lotura|lehen $1 loturak}} erakusten ditu bakarrik.\n[[Special:WhatLinksHere/$2|Zerrenda osoa]] ere eskuragarri dago.",
     "emailuser-title-notarget": "Erabiltzaileari e-maila bidali",
     "emailpage": "Erabiltzaileari e-posta bidali",
     "emailpagetext": "{{GENDER:$1|Erabiltzaile}} honek baliozko e-posta helbide bat ezarri badu bere hobespenetan, beheko formularioa erabiliz mezu bat bidal dakioke.\n[[Special:Preferences|Hobespenetan]] daukazun e-posta helbidea azalduko da mezuaren bidaltzaile bezala eta beraz erantzun ahal izango dizu.",
-    "usermailererror": "Mail objektuak errore hau itzuli du:",
     "defemailsubject": "{{SITENAME}} e-posta \"$1\" lankideak",
     "usermaildisabled": "Erabiltzailearen e-maila desaktibatuta",
     "usermaildisabledtext": "Wiki honetan ezin diezu beste erabiltzaileei posta elektronikorik bidali",
     "noemailtitle": "Posta helbiderik ez",
     "noemailtext": "Erabiltzaile honek ez du baliozko e-posta helbiderik zehaztu.",
-    "nowikiemailtitle": "Ezin da e-postarik bidali",
     "nowikiemailtext": "Erabiltzaile honek beste erabiltzaileengandik e-postak ez jasotzea hautatu du.",
     "emailnotarget": "Jasotzailearentzat lankide izen ez-egokia edo ezezaguna.",
     "emailtarget": "Sartu jasolearen erabiltzaile izena",
     "watchlist-options": "Jarraitze-zerrendaren aukerak",
     "watching": "Zerrendan gehitzen...",
     "unwatching": "Zerrendatik kentzen...",
-    "enotif_mailer": "{{SITENAME}}(e)ko Oharpen Postaria",
     "enotif_reset": "Orrialde guztiak bisitatu bezala markatu",
     "enotif_impersonal_salutation": "{{SITENAME}} erabiltzailea",
     "enotif_subject_deleted": "{{SITENAME}}(e)ko $1 orrialdea {{GENDER:$2|ezabatu}} du $2 erabiltzaileak",
     "excontent": "edukia hau zen: '$1'",
     "excontentauthor": "edukia hau zen: \"$1\" (parte hartu duen lankide bakarra: \"[[Special:Contributions/$2|$2]]\")",
     "exbeforeblank": "hustu aurreko edukiera: '$1'",
-    "exblank": "orrialdea hutsik zegoen",
     "delete-confirm": "\"$1\" ezabatu",
     "delete-legend": "Ezabatu",
     "historywarning": "'''Oharra:''' Ezabatzera zoazen orrialdeak $1 {{PLURAL:$1|berrikuspen du|berrikuspen ditu}} gutxi gorabehera:",
     "importunknownsource": "Inportazio iturri mota ezezaguna",
     "importcantopen": "Ezin izan da inportazio fitxategia ireki",
     "importbadinterwiki": "Interwiki lotura ezegokia",
-    "importnotext": "Hutsik dago edo testurik gabe",
     "importsuccess": "Inportazioa burutu da!",
-    "importhistoryconflict": "Gatazka sortzen ari den berrikuspen historia dago (baliteke orrialdea lehenago inportatu izana)",
     "importnosources": "Ez dago wikien arteko inportazio iturririk definituta, eta historialak zuzenean igotzea ezgaituta dago.",
     "importnofile": "Ez da inportazio fitxategirik igo.",
     "importuploaderrorsize": "Inportatutako artxiboaren igoera-porrota.\nArtxiboa onartutako igoera-tamaina baino handiagoa da.",
index f969476..f16387d 100644 (file)
     "permalink": "پیوند پایدار",
     "print": "چاپ",
     "view": "نمایش",
+    "view-foreign": "مشاهده در $1",
     "edit": "ویرایش",
+    "edit-local": "ویرایش توضیحات محلی",
     "create": "ایجاد",
+    "create-local": "افزودن توضیحات محلی",
     "editthispage": "ویرایش این صفحه",
     "create-this-page": "ایجاد این صفحه",
     "delete": "حذف",
     "pool-timeout": "اتمام مهلت انتظار برای قفل",
     "pool-queuefull": "صف مخزن پر است",
     "pool-errorunknown": "خطای ناشناخته",
+    "pool-servererror": "پول سنتر سرویس در دسترس نیست ( $1 ).",
     "aboutsite": "دربارهٔ {{SITENAME}}",
     "aboutpage": "Project:درباره",
     "copyright": "محتوایات تحت اجازه‌نامهٔ $1 هستند مگر اینکه خلافش ذکر شده باشد.",
     "accountcreatedtext": "حساب کاربری برای [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|بحث]]) ایجاد شده است.",
     "createaccount-title": "ایجاد حساب کاربری در {{SITENAME}}",
     "createaccount-text": "یک نفر برای رایانامه شما یک حساب کاربری در {{SITENAME}} با نام «$2» ایجاد کرده‌است ($4)، که گذرواژهٔ آن چنین است: $3\nشما باید به سامانه وارد شوید تا گذرواژهٔ خود را تغییر بدهید.\n\nاگر این حساب اشتباهی ساخته شده است، این پیغام را نادیده بگیرید.",
-    "usernamehasherror": "نام کاربری نمی‌تواند شامل نویسه‌های درهم باشد",
     "login-throttled": "شما به تازگی چندین‌بار برای ثبت ورود تلاش کرده‌اید.\nلطفاً پیش از آنکه دوباره تلاش کنید $1 صبر کنید.",
     "login-abort-generic": "ورود شما ناموفق بود - خاتمهٔ ناگهانی داده شد",
     "loginlanguagelabel": "زبان: $1",
     "prefs-skin": "پوسته",
     "skin-preview": "پیش‌نمایش",
     "datedefault": "بدون ترجیح",
-    "prefs-datetime": "تاریخ و زمان",
     "prefs-labs": "گزینه‌های آزمایشی",
     "prefs-user-pages": "صفحه‌های کاربری",
     "prefs-personal": "داده‌های کاربر",
     "upload-permitted": "انواع مجاز پرونده‌ها: $1.",
     "upload-preferred": "انواع ترجیح‌داده شده پرونده‌ها: $1.",
     "upload-prohibited": "انواع نامجاز پرونده‌ها: $1.",
-    "uploadlog": "سیاههٔ بارگذاری‌ها",
     "uploadlogpage": "سیاههٔ بارگذاری‌ها",
     "uploadlogpagetext": "فهرست زیر فهرستی از آخرین بارگذاری پرونده‌ها است.\nبرای مرور دیداری [[Special:NewFiles|نگارخانهٔ پرونده‌های جدید]] را ببینید.",
     "filename": "نام پرونده",
     "filereuploadsummary": "تغییرات پرونده:",
     "filestatus": "وضعیت حق تکثیر:",
     "filesource": "منبع:",
-    "uploadedfiles": "پرونده‌های بارشده",
     "ignorewarning": "چشم‌پوشی از هشدار و ذخیرهٔ پرونده.",
     "ignorewarnings": "چشم‌پوشی از همهٔ هشدارها",
     "minlength1": "نام پرونده دست کم باید یک حرف باشد.",
     "overwroteimage": "نسخه جدیدی از  «[[$1]]» را بارگذاری کرد",
     "uploaddisabled": "بارگذاری غیرفعال است.",
     "copyuploaddisabled": "بارگذاری از طریق نشانی اینترنتی غیرفعال است.",
-    "uploadfromurl-queued": "بارگذاری شما به صف اضافه شد.",
     "uploaddisabledtext": "امکان بارگذاری پرونده غیرفعال است.",
     "php-uploaddisabledtext": "بارگذاری پرونده‌های پی‌اچ‌پی غیرفعال است.\nلطفاً تنظیمات file_uploads را بررسی کنید.",
     "uploadscripted": "این صفحه حاوی کد اچ‌تی‌ام‌ال یا اسکریپتی است که ممکن است به‌نادرست توسط مرورگر وب تفسیر شود.",
     "upload-misc-error": "خطای نامعلوم در بارگذاری",
     "upload-misc-error-text": "هنگام بارگذاری، خطایی نامعلوم رخ داد.\nلطفاً اطمینان حاصل کنید که نشانی اینترنتی معتبر و قابل دسترسی است و بعد دوباره تلاش کنید.\nاگر مشکل همچنان برقرار بود با یکی از [[Special:ListUsers/sysop|مدیران]] تماس بگیرید.",
     "upload-too-many-redirects": "نشانی اینترتی حاوی تعداد بیش از اندازه‌ای تغییرمسیر است",
-    "upload-unknown-size": "اندازهٔ نامشخص",
     "upload-http-error": "یک خطای اچ‌تی‌تی‌پی رخ داد: $1",
     "upload-copy-upload-invalid-domain": "بارگذاری کپی پرونده‌ها از این دامنه امکان‌پذیر نیست.",
     "backend-fail-stream": "نمی‌توان پروندهٔ $1 را ارسال کرد.",
     "img-auth-streaming": "در حال جاری ساختن «$1».",
     "img-auth-public": "عملکرد img_auth.php برونداد پرونده‌ها از یک ویکی خصوصی است.\nاین ویکی به عنوان یک ویکی عمومی تنظیم شده‌است.\nبرای امنیت بهینه، img_auth.php غیرفعال است.",
     "img-auth-noread": "کاربر دسترسی خواندن «$1» را ندارد.",
-    "img-auth-bad-query-string": "آدرس اینترنتی شامل یک رشتهٔ نامعتبر درخواست است.",
     "http-invalid-url": "نشانی نامعتبر: $1",
     "http-invalid-scheme": "نشانی‌های اینترنتی با طرح «$1» پشتیبانی نمی‌شوند.",
     "http-request-error": "درخواست اچ‌تی‌تی‌پی به علت خطایی ناشناخته، ناموفق بود.",
     "filehist-dimensions": "ابعاد",
     "filehist-filesize": "اندازهٔ پرونده",
     "filehist-comment": "توضیح",
-    "filehist-missing": "پروندهٔ ناموجود",
     "imagelinks": "به‌کاررفتن پرونده",
     "linkstoimage": "{{PLURAL:$1|صفحهٔ|صفحه‌های}} زیر به این تصویر پیوند {{PLURAL:$1|دارد|دارند}}:",
     "linkstoimage-more": "بیش از $1 صفحه به این پرونده پیوند {{PLURAL:$1|دارد|دارند}}.\nفهرست زیر تنها {{PLURAL:$1|اولین پیوند|اولین $1 پیوند}} به این صفحه را نشان می‌دهد.\n[[Special:WhatLinksHere/$2|فهرست کامل]] نیز موجود است.",
     "emailuser-title-notarget": "رایانامه به کاربر",
     "emailpage": "رایانامه به کاربر",
     "emailpagetext": "شما می‌توانید از فرم زیر برای ارسال یک رایانامه به این {{GENDER:$1|کاربر}} استفاده کنید.\nنشانی رایانامه‌ای که در [[Special:Preferences|ترجیحات کاربریتان]] وارد کرده‌اید در نشانی فرستنده (From) نامه خواهد آمد، تا گیرنده بتواند پاسخ دهد.",
-    "usermailererror": "رایانامه دچار خطا شد:",
     "defemailsubject": "رایانامه {{SITENAME}} از طرف کاربر «$1»",
     "usermaildisabled": "رایانامهٔ کاربر غیرقعال است",
     "usermaildisabledtext": "شما در این ویکی نمی‌توانید به دیگر کاربران رایانامه بفرستید",
     "noemailtitle": "نشانی رایانامه موجود نیست",
     "noemailtext": "این کاربر نشانی رایانامهٔ معتبری مشخص نکرده است،",
-    "nowikiemailtitle": "اجازهٔ ارسال رایانامه داده نشده‌است",
     "nowikiemailtext": "این کاربر انتخاب کرده که از دیگر کاربران رایانامه دریافت نکند.",
     "emailnotarget": "نام کاربری ناموجود یا نامعتبر برای گیرنده.",
     "emailtarget": "نام کاربری دریافت‌کننده را وارد کنید",
     "watching": "پی‌گیری...",
     "unwatching": "توقف پی‌گیری...",
     "watcherrortext": "ایرادی در هنگام عوض کردن تنظیمات فهرست پیگیرتان برای «$1» رخ داد.",
-    "enotif_mailer": "رایانامهٔ اطلاع‌رسانی {{SITENAME}}",
     "enotif_reset": "نشان‌گذاری همهٔ صفحه‌ها به‌عنوان بازدیدشده",
     "enotif_impersonal_salutation": "کاربر {{SITENAME}}",
     "enotif_subject_deleted": "{{SITENAME}} صفحهٔ $1 توسط {{gender:$2|$2}} حذف شد.",
     "excontent": "محتوای صفحه این بود: «$1»",
     "excontentauthor": "محتوای صفحه این بود: «$1» (و تنها مشارکت‌کننده «[[Special:Contributions/$2|$2]]» بود)",
     "exbeforeblank": "محتوای صفحه قبل از خالی‌کردن این بود: «$1»",
-    "exblank": "صفحه خالی بود",
     "delete-confirm": "حذف «$1»",
     "delete-legend": "حذف",
     "historywarning": "'''هشدار!''' صفحه‌ای که قصد دارید حذف کنید تاریخچه‌ای با حدود $1 {{PLURAL:$1|نسخه|نسخه}} دارد:",
     "importunknownsource": "نوع مأخذ درون‌ریزی معلوم نیست",
     "importcantopen": "پروندهٔ درون‌ریزی صفحه‌ها باز نشد",
     "importbadinterwiki": "پیوند میان‌ویکی نادرست",
-    "importnotext": "صفحه خالی یا بدون متن",
     "importsuccess": "درون‌ریزی با موفقیت انجام شد!",
-    "importhistoryconflict": "نسخه‌های ناسازگار از تاریخچهٔ این صفحه وجود دارد (احتمالاً این صفحه پیش از این درون‌ریزی شده است)",
     "importnosources": "هیچ منبعی برای درون‌ریزی اطلاعات از ویکی دیگر تعریف نشده‌است.",
     "importnofile": "هیچ پرونده‌ای برای درون‌ریزی بارگذاری نشده‌است.",
     "importuploaderrorsize": "در بارگذاری پروندهٔ درون‌ریزی، اشکال رخ داد.\nاندازهٔ پرونده بیشتر از حداکثر اندازهٔ مجاز است.",
index fbecb98..d8458d4 100644 (file)
     "disclaimers": "Deentine",
     "disclaimerpage": "Project:Deentine kuuɓtidinɗe",
     "edithelp": "Ballal Taƴtagol",
-    "helppage": "Help:Loowdi",
     "mainpage": "Hello jaɓɓorgo",
     "mainpage-description": "Hello jaɓɓorgo",
     "policy-url": "Eɓɓoore:Dawirgol",
index dbde037..0b2fa04 100644 (file)
     "permalink": "Ikilinkki",
     "print": "Tulosta",
     "view": "Näytä",
+    "view-foreign": "Katso kohdetta $1",
     "edit": "Muokkaa",
+    "edit-local": "Muokkaa paikallista kuvausta",
     "create": "Luo sivu",
+    "create-local": "Lisää paikallinen kuvaus",
     "editthispage": "Muokkaa tätä sivua",
     "create-this-page": "Luo tämä sivu",
     "delete": "Poista",
     "pool-timeout": "Lukon aikakatkaisu.",
     "pool-queuefull": "Lukkojono on täysi.",
     "pool-errorunknown": "Tuntematon virhe.",
+    "pool-servererror": "Pool counter -palvelu ei ole käytettävissä ($1).",
     "aboutsite": "Tietoja {{GRAMMAR:elative|{{SITENAME}}}}",
     "aboutpage": "Project:Tietoja",
     "copyright": "Sisältö on käytettävissä lisenssillä $1, ellei toisin ole mainittu.",
     "accountcreatedtext": "Käyttäjätunnus [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|keskustelu]]) luotiin.",
     "createaccount-title": "Tunnuksen luominen {{GRAMMAR:illative|{{SITENAME}}}}",
     "createaccount-text": "Joku on luonut tunnuksen $2 {{GRAMMAR:illative|{{SITENAME}}}} ($4).\nTunnus on \"$2\" ja sen salasana on \"$3\". Sinun on syytä kirjautua sisään ja vaihtaa salasanasi heti.\n\nSinun ei tarvitse välittää tästä viestistä, jos tämä tunnus on luotu virheellisesti.",
-    "usernamehasherror": "Käyttäjätunnus ei voi sisältää ristikkomerkkejä (#).",
     "login-throttled": "Olet tehnyt liian monta kirjautumisyritystä.\nOdota $1 ennen kuin yrität uudelleen.",
     "login-abort-generic": "Kirjautuminen epäonnistui – keskeytetty",
     "loginlanguagelabel": "Kieli: $1",
     "searcheverything-enable": "Hae kaikista nimiavaruuksista",
     "searchrelated": "samankaltainen",
     "searchall": "kaikki",
-    "showingresults": "{{PLURAL:$1|<strong>Yksi</strong> tulos|<strong>$1</strong> tulosta}} tuloksesta <strong>$2</strong> alkaen.",
+    "showingresults": "Alla on vain {{PLURAL:$1|<strong>1</strong> hakutulos|<strong>$1</strong> hakutulosta}} alkaen tuloksesta nro <strong>$2</strong>.",
     "showingresultsinrange": "Alla näytetään {{PLURAL:$1|<strong>1</strong> tulos|<strong>$1</strong> tulosta}} väliltä <strong>$2</strong> – <strong>$3</strong>.",
-    "showingresultsnum": "Alla on {{PLURAL:$3|'''Yksi''' hakutulos|'''$3''' hakutulosta}} alkaen '''$2.''' tuloksesta.",
+    "showingresultsnum": "Alla on {{PLURAL:$3|<strong>1</strong> hakutulos|<strong>$3</strong> hakutulosta}} alkaen tuloksesta nro <strong>$2</strong>.",
     "showingresultsheader": "{{PLURAL:$5|Tulokset '''$1'''–'''$3'''|Tulokset '''$1'''–'''$2''' kaikkiaan '''$3''' osuman joukosta}} haulle '''$4'''",
     "search-nonefound": "Hakusi ei tuottanut tulosta.",
     "powersearch-legend": "Laajennettu haku",
     "prefs-skin": "Ulkoasu",
     "skin-preview": "esikatselu",
     "datedefault": "Ei omaa määrittelyä",
-    "prefs-datetime": "Aika ja päiväys",
     "prefs-labs": "Testattavana olevat ominaisuudet",
     "prefs-user-pages": "Käyttäjäsivut",
     "prefs-personal": "Käyttäjätiedot",
     "upload-permitted": "Sallitut tiedostomuodot: $1.",
     "upload-preferred": "Suositellut tiedostomuodot: $1.",
     "upload-prohibited": "Kielletyt tiedostomuodot: $1.",
-    "uploadlog": "Tiedostoloki",
     "uploadlogpage": "Tiedostoloki",
     "uploadlogpagetext": "Alla on luettelo uusimmista tiedostonlisäyksistä. Kaikki ajat näytetään palvelimen aikavyöhykkeessä.",
     "filename": "Tiedoston nimi:",
     "filereuploadsummary": "Muutokset",
     "filestatus": "Tiedoston tekijänoikeudet",
     "filesource": "Lähde",
-    "uploadedfiles": "Lisätyt tiedostot",
     "ignorewarning": "Tallenna tiedosto varoituksesta huolimatta.",
     "ignorewarnings": "Ohita kaikki varoitukset",
     "minlength1": "Tiedoston nimessä pitää olla vähintään yksi merkki.",
     "overwroteimage": "tallensi uuden version [[$1]]",
     "uploaddisabled": "Tiedostojen tallennus ei ole käytössä.",
     "copyuploaddisabled": "Tallennus URL:n kautta on poistettu käytöstä.",
-    "uploadfromurl-queued": "Tallennuksesi on siirretty jonoon.",
     "uploaddisabledtext": "Tiedostojen tallennus on poistettu käytöstä.",
     "php-uploaddisabledtext": "PHP:n tiedostojen lähetys ei ole käytössä. Tarkista asetukset kohdasta file_uploads.",
     "uploadscripted": "Tämä tiedosto sisältää HTML-koodia tai skriptejä, jotka selain saattaa virheellisesti suorittaa.",
     "upload-misc-error": "Virhe",
     "upload-misc-error-text": "Tiedoston etälähetys ei onnistunut. Varmista, että antamasi osoite on oikein ja toimiva. Jos virhe ei katoa, ota yhteyttä sivuston [[Special:ListUsers/sysop|ylläpitäjään]].",
     "upload-too-many-redirects": "URL sisälsi liian monta ohjausta",
-    "upload-unknown-size": "Tuntematon koko",
     "upload-http-error": "HTTP-virhe: $1",
     "upload-copy-upload-invalid-domain": "Tiedostojen tallentamista tästä verkko-osoitteesta ei ole sallittu.",
     "backend-fail-stream": "Tiedoston $1 virtauttaminen epäonnistui.",
     "img-auth-streaming": "Toistetaan tiedostoa ”$1”.",
     "img-auth-public": "Img_auth.php:n tarkoitus on näyttää tiedostoja yksityisessä wikissä.\nTämä wiki on asennettu julkiseksi wikiksi.\nParhaan turvallisuuden vuoksi img_auth.php on poissa käytöstä.",
     "img-auth-noread": "Käyttäjillä ei ole oikeutta lukea tiedostoa ”$1”.",
-    "img-auth-bad-query-string": "Osoitteessa on epäkelpo query string -määritys.",
     "http-invalid-url": "Kelpaamaton URL: $1",
     "http-invalid-scheme": "Verkko-osoitteita kaavalla \"$1\" ei tueta",
     "http-request-error": "HTTP-pyyntö epäonnistui tuntemattoman virheen takia.",
     "filehist-dimensions": "Koko",
     "filehist-filesize": "Tiedostokoko",
     "filehist-comment": "Kommentti",
-    "filehist-missing": "Tiedosto puuttuu",
     "imagelinks": "Tiedoston käyttö",
     "linkstoimage": "{{PLURAL:$1|Seuraavalta sivulta|$1 sivulla}} on linkki tähän tiedostoon:",
     "linkstoimage-more": "Enemmän kuin $1 {{PLURAL:$1|sivu|sivua}} linkittää tähän tiedostoon.\nSeuraava lista näyttää {{PLURAL:$1|ensimmäisen linkittävän sivun|$1 ensimmäistä linkittävää sivua}} tähän tiedostoon.\n[[Special:WhatLinksHere/$2|Koko lista]] on saatavilla.",
     "listgrouprights-removegroup-self": "Voi poistaa itsensä {{PLURAL:$2|ryhmästä|ryhmistä}} $1",
     "listgrouprights-addgroup-self-all": "Voi lisätä itsensä kaikkiin ryhmiin",
     "listgrouprights-removegroup-self-all": "Voi poistaa itsensä kaikista ryhmistä",
+    "listgrouprights-namespaceprotection-header": "Nimiavaruuksien rajoitukset",
+    "listgrouprights-namespaceprotection-namespace": "Nimiavaruus",
+    "listgrouprights-namespaceprotection-restrictedto": "Käyttäjän muokkausoikeudet",
     "trackingcategories": "Tarkkailuluokat",
-    "trackingcategories-summary": "Tällä sivulla on luettelo sellaisista jälkiä seuraavista luokista (tarkkailuluokat), joiden sisällön synnyttää automaattisesti MediaWiki-ohjelmisto. Luokkien nimiä voi vaihtaa muuttamalla asianomaista järjestelmäviestiä nimiavaruudessa {{ns:8}}.",
+    "trackingcategories-summary": "Tällä sivulla on luettelo sellaisista ongelmia havaitsevista luokista (tarkkailuluokat), joiden sisällön koostaa automaattisesti MediaWiki-ohjelmisto. Luokkien nimiä voi vaihtaa muuttamalla asianomaista järjestelmäviestiä nimiavaruudessa {{ns:8}}.",
     "trackingcategories-msg": "Tarkkailuluokka",
     "trackingcategories-name": "Viestin nimi",
     "trackingcategories-desc": "Kriteerit luokkaan joutumiselle",
-    "post-expand-template-argument-category-desc": "Kun mallineen argumentti on laajennettu (argumentti on merkkijono kolmen kaarisulun sisällä kuten <code>{{{Foo}}})</code>, sivu on suurempi kuin <code>$wgMaxArticleSize</code>.",
+    "noindex-category-desc": "Tätä sivua eivät hakurobotit indeksoi, koska sivulla on taikasana <code><nowiki>__NOINDEX__</nowiki></code> ja koska sivu on sellaisessa nimiavaruudessa, jossa taikasanan käyttö on sallittua.",
+    "index-category-desc": "Tällä sivulla on koodi <code><nowiki>__INDEX__</nowiki></code> ja sivu on sellaisessa nimiavaruudessa, jossa koodin käyttö on sallittua. Tämän vuoksi hakurobotit indeksoivat tämän sivun, vaikka ilman koodia sivua ei indeksoitaisi normaalisti.",
+    "post-expand-template-inclusion-category-desc": "Jos kaikki mallineet laajennetaan, sivun koko on suurempi kuin <code>$wgMaxArticleSize</code>. Tämän vuoksi kaikkia mallineita ei laajennettu.",
+    "post-expand-template-argument-category-desc": "Kun mallineen argumentti on laajennettu (argumentti on merkkijono kolmen kaarisulun sisällä kuten <code>{{{Foo}}}</code>), sivu on suurempi kuin <code>$wgMaxArticleSize</code>.",
+    "broken-file-category-desc": "Tämä luokka sisältää ne sivut, joissa on rikkinäinen tiedostolinkki. Tällä tarkoitetaan linkkiä sellaiseen tiedostoon, jota ei olemassa.",
+    "hidden-category-category-desc": "Tämä on luokka, joka sisältää koodin <code><nowiki>__HIDDENCAT__</nowiki></code>. Koodi estää luokan näkymisen sivujen alareunassa olevassa luokkien laatikossa oletusarvoisesti.",
     "trackingcategories-nodesc": "Ei kuvausta olemassa.",
     "trackingcategories-disabled": "Luokka on poistettu käytöstä",
     "mailnologin": "Lähettäjän osoite puuttuu",
     "emailuser-title-notarget": "Lähetä sähköpostia käyttäjälle",
     "emailpage": "Lähetä sähköpostia käyttäjälle",
     "emailpagetext": "Jos tämä {{GENDER:$1|käyttäjä}} on antanut asetuksissaan kelvollisen sähköpostiosoitteen, alla olevalla lomakkeella voit lähettää hänelle viestin. [[Special:Preferences|Omissa asetuksissasi]] annettu sähköpostiosoite näkyy sähköpostin lähettäjän osoitteena, jotta vastaanottaja voi suoraan vastata viestiin.",
-    "usermailererror": "Postitus palautti virheen:",
     "defemailsubject": "Sähköpostia käyttäjältä $1 sivustolta {{SITENAME}}",
     "usermaildisabled": "Käyttäjien sähköposti poistettu käytöstä",
     "usermaildisabledtext": "Et voi lähettää sähköpostia muille käyttäjille tässä wikissä",
     "noemailtitle": "Ei sähköpostiosoitetta",
     "noemailtext": "Tämä käyttäjä ei ole määritellyt kelvollista sähköpostiosoitetta.",
-    "nowikiemailtitle": "Sähköpostin lähettäminen ei sallittu",
     "nowikiemailtext": "Tämä käyttäjä ei halua sähköpostia muilta käyttäjiltä.",
     "emailnotarget": "Vastaanottajan käyttäjänimeä ei ole tai se on väärä.",
     "emailtarget": "Vastaanottajan käyttäjätunnus",
     "watching": "Lisätään tarkkailulistalle...",
     "unwatching": "Poistetaan tarkkailulistalta...",
     "watcherrortext": "Sivun ”$1” tarkkailulista-asetusten muutoksissa tapahtui virhe.",
-    "enotif_mailer": "{{GRAMMAR:genitive|{{SITENAME}}}} sivu on muuttunut -ilmoitus",
     "enotif_reset": "Merkitse kaikki sivut nähdyiksi",
     "enotif_impersonal_salutation": "{{GRAMMAR:genitive|{{SITENAME}}}} käyttäjä",
     "enotif_subject_deleted": "{{GENDER:$2|$2}} poisti {{GRAMMAR:elative|{{SITENAME}}}} sivun $1",
     "excontent": "sisälsi: ”$1”",
     "excontentauthor": "sisälsi: ”$1” (ainoa muokkaaja oli $2)",
     "exbeforeblank": "ennen tyhjentämistä sisälsi: ”$1”",
-    "exblank": "oli tyhjä",
     "delete-confirm": "Poista ”$1”",
     "delete-legend": "Sivun poisto",
     "historywarning": "'''Varoitus:''' Sivua, jota olet poistamassa, on muokattu noin $1 {{PLURAL:$1|kerta|kertaa}}:",
     "importunknownsource": "Tuntematon lähdetyyppi",
     "importcantopen": "Tuontitiedoston avaus epäonnistui",
     "importbadinterwiki": "Kelpaamaton wikienvälinen linkki",
-    "importnotext": "Tyhjä tai ei tekstiä",
     "importsuccess": "Tuonti onnistui!",
-    "importhistoryconflict": "Sivusta on olemassa tuonnin kanssa ristiriitainen muokkausversio. Tämä sivu on saatettu tuoda jo aikaisemmin.",
     "importnosources": "Wikienvälisiä tuontilähteitä ei ole määritelty ja suorat historiatallennukset on poistettu käytöstä.",
     "importnofile": "Mitään tuotavaa tiedostoa ei lähetetty.",
     "importuploaderrorsize": "Tuontitiedoston tallennus epäonnistui. Tiedosto on suurempi kuin sallittu yläraja.",
index e1ed5b8..06493a4 100644 (file)
     "disclaimers": "Vastuuvaphaus",
     "disclaimerpage": "Project: Ylheinen varoitus",
     "edithelp": "Mookkausapua",
-    "helppage": "Help: Sisältö",
     "mainpage": "Alkusivu",
     "mainpage-description": "Alkusivu",
     "portal": "Kaikitten purthaali",
index 77d83ef..f34102d 100644 (file)
     "permalink": "Adresse de cette version",
     "print": "Imprimer",
     "view": "Lire",
+    "view-foreign": "Voir sur $1",
     "edit": "Modifier",
+    "edit-local": "Modifier la description locale",
     "create": "Créer",
+    "create-local": "ajouter une description locale",
     "editthispage": "Modifier cette page",
     "create-this-page": "Créer cette page",
     "delete": "Supprimer",
     "accountcreatedtext": "Le compte utilisateur pour [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|discussion]]) a été créé.",
     "createaccount-title": "Création d’un compte pour {{SITENAME}}",
     "createaccount-text": "Quelqu’un a créé un compte pour votre adresse de courriel sur {{SITENAME}} ($4) intitulé « $2 », avec le mot de passe « $3 ».\nVous devriez ouvrir une session et modifier dès à présent votre mot de passe.\n\nIgnorez ce message si ce compte a été créé par erreur.",
-    "usernamehasherror": "Le nom d'utilisateur ne peut pas contenir des caractères de hachage",
     "login-throttled": "Vous avez tenté un trop grand nombre de connexions dernièrement.\nVeuillez attendre $1 avant d'essayer à nouveau.",
     "login-abort-generic": "Votre tentative de connexion a échoué",
     "loginlanguagelabel": "Langue : $1",
     "prefs-skin": "Habillage",
     "skin-preview": "Prévisualiser",
     "datedefault": "Aucune préférence",
-    "prefs-datetime": "Date et heure",
     "prefs-labs": "Fonctionnalités « labs »",
     "prefs-user-pages": "Pages utilisateur",
     "prefs-personal": "Informations personnelles",
     "upload-permitted": "Formats de fichiers autorisés : $1.",
     "upload-preferred": "Formats de fichiers préférés : $1.",
     "upload-prohibited": "Formats de fichiers interdits : $1.",
-    "uploadlog": "Journal d’import de fichiers",
     "uploadlogpage": "Journal d’import de fichiers",
     "uploadlogpagetext": "Voici la liste des derniers fichiers importés sur le serveur.\nVoyez la [[Special:NewFiles|galerie des nouvelles images]] pour une présentation plus visuelle.",
     "filename": "Nom du fichier",
     "filereuploadsummary": "Modifications du fichier :",
     "filestatus": "Statut du droit d'auteur :",
     "filesource": "Source :",
-    "uploadedfiles": "Fichiers importés",
     "ignorewarning": "Ignorer l'avertissement et sauvegarder le fichier quand même",
     "ignorewarnings": "Ignorer les avertissements",
     "minlength1": "Le noms de fichiers doivent comprendre au moins une lettre.",
     "overwroteimage": "a importé une nouvelle version de « [[$1]] »",
     "uploaddisabled": "Désolé, l’import de fichiers est désactivé.",
     "copyuploaddisabled": "Import de fichier par URL désactivé.",
-    "uploadfromurl-queued": "Votre fichier a été mis dans la file d’attente.",
     "uploaddisabledtext": "L’import de fichiers est désactivé sur ce wiki.",
     "php-uploaddisabledtext": "L'import de fichiers a été désactivé dans PHP. Vérifiez l'option de configuration file_uploads.",
     "uploadscripted": "Ce fichier contient du code HTML ou un script qui pourrait être interprété de façon incorrecte par un navigateur web.",
     "upload-misc-error": "Erreur d’import inconnue",
     "upload-misc-error-text": "Une erreur inconnue est survenue pendant l’import.\nVeuillez vérifier que l’URL est valide et accessible, puis essayer à nouveau.\nSi le problème persiste, contactez un [[Special:ListUsers/sysop|administrateur]].",
     "upload-too-many-redirects": "L’URL contient trop de redirections.",
-    "upload-unknown-size": "Taille inconnue",
     "upload-http-error": "Une erreur HTTP est survenue : $1",
     "upload-copy-upload-invalid-domain": "La copie des téléversements n’est pas disponible depuis ce domaine.",
     "backend-fail-stream": "Impossible de lire le fichier $1.",
     "img-auth-streaming": "Lecture en continu de « $1 ».",
     "img-auth-public": "La fonction de img_auth.php est d'afficher des fichiers d'un wiki privé.\nCe wiki est configuré comme un wiki public.\nPour une sécurité optimale, img_auth.php est désactivé.",
     "img-auth-noread": "L'utilisateur n'a pas le droit en lecture sur « $1 ».",
-    "img-auth-bad-query-string": "L'URL a une chaîne de requête invalide.",
     "http-invalid-url": "URL incorrecte : $1",
     "http-invalid-scheme": "Les URL avec le schéma « $1 » ne sont pas prises en charge.",
     "http-request-error": "Erreur inconnue lors de l'envoi de la requête.",
     "filehist-dimensions": "Dimensions",
     "filehist-filesize": "Taille du fichier",
     "filehist-comment": "Commentaire",
-    "filehist-missing": "Fichier manquant",
     "imagelinks": "Utilisation du fichier",
     "linkstoimage": "{{PLURAL:$1|La page suivante utilise|Les $1 pages suivantes utilisent}} ce fichier :",
     "linkstoimage-more": "Plus {{PLURAL:$1|d'une page utilise|de $1 pages utilisent}} ce fichier.\nLa liste suivante affiche seulement {{PLURAL:$1|la première page qui utilise|les $1 premières pages qui utilisent}} ce fichier.\nUne [[Special:WhatLinksHere/$2|liste complète]] est disponible.",
     "listgrouprights-removegroup-self": "Peut se retirer {{PLURAL:$2|le groupe|les groupes}} de son propre compte : $1",
     "listgrouprights-addgroup-self-all": "Peut s'ajouter tous les groupes à son propre compte",
     "listgrouprights-removegroup-self-all": "Peut se retirer tous les groupes de son propre compte",
+    "listgrouprights-namespaceprotection-header": "Restrictions d'espace de noms",
+    "listgrouprights-namespaceprotection-namespace": "Espace de noms",
+    "listgrouprights-namespaceprotection-restrictedto": "Droit(s) permettant à l'utilisateur de modifier",
     "trackingcategories": "Catégories de suivi",
-    "trackingcategories-summary": "Cette page liste les catégories de suivi qui sont remplies automatiquement par le logiciel MédiaWiki. Leurs noms peuvent être changés en modifiant les messages systèmes correspondants dans l’espace de noms {{ns:8}}.",
+    "trackingcategories-summary": "Cette page liste les catégories de suivi qui sont remplies automatiquement par [[MediaWiki]]. Leurs noms peuvent être changés en modifiant les messages systèmes correspondants dans l’espace de noms {{ns:8}}.",
     "trackingcategories-msg": "Catégorie de suivi",
     "trackingcategories-name": "Nom du message",
     "trackingcategories-desc": "Critère d’inclusion de la catégorie",
-    "noindex-category-desc": "La page contient un mot magique <nowiki>__NOINDEX__</nowiki> (et est dans un espace de noms où ce marquage est autorisé), et donc ne sera pas indexée par les robots.",
-    "index-category-desc": "La page contient un <nowiki>__INDEX__</nowiki> (et est dans un espace de noms où ce marquage est autorisé), et sera donc indexée par les robots alors qu’elle ne l’aurait pas été normalement.",
+    "noindex-category-desc": "La page contient <code><nowiki>__NOINDEX__</nowiki></code> et est dans un espace de noms où ce marquage est autorisé ; elle ne sera donc pas indexée par les robots.",
+    "index-category-desc": "La page contient <code><nowiki>__INDEX__</nowiki></code> et est dans un espace de noms où ce marquage est autorisé ; elle sera donc indexée par les robots alors qu’elle ne l’aurait pas été normalement.",
     "post-expand-template-inclusion-category-desc": "Après avoir développé tous les modèles, la taille de la page dépasse <code>$wgMaxArticleSize</code> ; certains modèles n’ont donc pas été développés.",
-    "post-expand-template-argument-category-desc": "Après avoir développé l’argument d’un modèle (quelque chose entre accolades triples, comme <code>{{{Foo}}})</code>, la page dépasse <code>$wgMaxArticleSize</code>.",
+    "post-expand-template-argument-category-desc": "Après avoir développé l’argument d’un modèle (quelque chose entre accolades triples, comme <code>{{{Foo}}}</code>), la page dépasse <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Trop de fonctions coûteuses de l’analyseur (comme <code>#ifexist</code>) sont incluses dans une page. Voyez [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
-    "broken-file-category-desc": "Catégorie ajoutée su la page contient un lien de fichier incorrect (un lien pour inclure un fichier alors que celui-ci n’existe pas).",
-    "hidden-category-category-desc": "C’est une catégorie contenant <nowiki>__HIDDENCAT__</nowiki>, qui empêche son affichage dans la zone des liens de catégorie sur les pages, par défaut.",
+    "broken-file-category-desc": "La catégorie ajoutée sur la page contient un lien de fichier incorrect (un lien pour inclure un fichier alors que celui-ci n’existe pas).",
+    "hidden-category-category-desc": "Catégorie contenant <code><nowiki>__HIDDENCAT__</nowiki></code>, qui empêche son affichage dans la zone des liens de catégorie sur les pages, par défaut.",
     "trackingcategories-nodesc": "Aucune description disponible.",
     "trackingcategories-disabled": "La catégorie est désactivée",
     "mailnologin": "Pas d'adresse d'expéditeur",
     "emailuser-title-notarget": "Envoyer un courriel à l'utilisateur",
     "emailpage": "Envoyer un courriel à l'utilisateur",
     "emailpagetext": "Vous pouvez utiliser le formulaire ci-dessous pour envoyer un courriel à {{GENDER:$1|cet utilisateur|cette utilisatrice}}.\nL'adresse électronique que vous avez indiquée dans [[Special:Preferences|vos préférences]] apparaîtra dans le champ « Expéditeur » de votre message ; ainsi, le destinataire pourra vous répondre directement.",
-    "usermailererror": "Erreur dans l'objet du courriel :",
     "defemailsubject": "{{SITENAME}} Courriel de l'utilisateur « $1 »",
     "usermaildisabled": "L'envoi de courriels entre utilisateurs est désactivé",
     "usermaildisabledtext": "Vous ne pouvez pas envoyer de courriels à d'autres utilisateurs sur ce wiki",
     "noemailtitle": "Aucune adresse de courriel",
     "noemailtext": "Cet utilisateur n'a pas spécifié une adresse de courriel valide.",
-    "nowikiemailtitle": "Pas de courriel autorisé",
     "nowikiemailtext": "Cet utilisateur a choisi de ne pas recevoir de courriel de la part d'autres utilisateurs.",
     "emailnotarget": "Nom d'utilisateur du destinataire inexistant ou invalide.",
     "emailtarget": "Entrez le nom d'utilisateur du destinataire",
     "watching": "Suivi…",
     "unwatching": "Fin du suivi…",
     "watcherrortext": "Une erreur s'est produite lors de la modification des paramètres de votre liste de suivi pour « $1 ».",
-    "enotif_mailer": "Système de notification par courriel de {{SITENAME}}",
     "enotif_reset": "Marquer toutes les pages comme visitées",
     "enotif_impersonal_salutation": "Utilisateur de {{SITENAME}}",
     "enotif_subject_deleted": "La page $1 sur {{SITENAME}} a été supprimée par {{GENDER:$2|$2}}",
     "excontent": "contenait « $1 »",
     "excontentauthor": "contenait « $1 » (et son seul contributeur était [[Special:Contributions/$2|$2]])",
     "exbeforeblank": "contenait avant blanchiment « $1 »",
-    "exblank": "la page était vide",
     "delete-confirm": "Supprimer « $1 »",
     "delete-legend": "Supprimer",
     "historywarning": "'''Attention :''' la page que vous êtes sur le point de supprimer a un historique avec environ $1 {{PLURAL:$1|version|versions}} :",
     "importunknownsource": "Type inconnu de la source à importer",
     "importcantopen": "Impossible d'ouvrir le fichier à importer",
     "importbadinterwiki": "Mauvais lien inter-wiki",
-    "importnotext": "Vide ou sans texte",
     "importsuccess": "L'importation a réussi !",
-    "importhistoryconflict": "Un conflit a été détecté dans l'historique des versions (cette page a pu être importée auparavant).",
     "importnosources": "Aucune source d'importation inter-wiki n'a été définie et l'import direct d'historiques est désactivé.",
     "importnofile": "Aucun fichier d'importation n'a été envoyé.",
     "importuploaderrorsize": "L'import du fichier a échoué.\nSa taille est supérieure au maximum autorisé pour l'import de fichier.",
index 463b5f2..03f016a 100644 (file)
     "disclaimers": "Avertissements",
     "disclaimerpage": "Project:Avertissements ordinaires",
     "edithelp": "Aide",
-    "helppage": "Help:Aide",
     "mainpage": "Page Principale",
     "mainpage-description": "Page Principale",
     "policy-url": "Project:Régulations",
index fd71f92..e2fd0e8 100644 (file)
     "accountcreatedtext": "Det brükerkonto för [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) as iinracht wurden.",
     "createaccount-title": "En brükerkonto üüb {{SITENAME}} iinracht",
     "createaccount-text": "Diar as mä din e-mail adres för di en brükerkonto \"$2\" üüb {{SITENAME}} ($4) maaget wurden. För \"$2\" as automaatisk det paaswurd \"$3\" iinracht wurden.\nDü skulst di nü uunmelde an det paaswurd anre.\n\nWan det brükerkonto ütj fersen uunlaanj wurden as, säärst dü niks widjer onernem.",
-    "usernamehasherror": "Uun brükernöömer mut nian rütjen föörkem.",
     "login-throttled": "Dü heest tufölsis fersoocht, di uuntumeldin.\nWees so gud an teew $1, iar dü det noch ans ferschükst.",
     "login-abort-generic": "Det uunmeldin hää ei loket - Ufbreegen",
     "loginlanguagelabel": "Spriak: $1",
     "prefs-skin": "Skak",
     "skin-preview": "Föörskau",
     "datedefault": "Föör-iinstelang",
-    "prefs-datetime": "Dai an klooktidj",
     "prefs-labs": "Alpha mögelkhaiden",
     "prefs-user-pages": "Brükersidjen",
     "prefs-personal": "Brüker dooten",
     "upload-permitted": "Tuläät slacher faan datein: $1.",
     "upload-preferred": "Slacher faan datein, diar dü brük skulst: $1.",
     "upload-prohibited": "Ei tuläät slacher faan datein: $1.",
-    "uploadlog": "datei logbuk",
     "uploadlogpage": "Datei-logbuk",
     "uploadlogpagetext": "Detheer as det logbuk för huuchschüürd datein. Dü könst uk det [[Special:NewFiles|galerii faan nei datein]] uunluke.",
     "filename": "Dateinööm",
     "filereuploadsummary": "Feranrangen faan det datei:",
     "filestatus": "Copyright-Status:",
     "filesource": "Kwel",
-    "uploadedfiles": "Huuchschüürd datein",
     "ignorewarning": "Ei üüb wäärnangen aachte an det datei seekre",
     "ignorewarnings": "Ei am wäärnangen komre",
     "minlength1": "Dateinöömer skel tumanst ään buksteew lung wees.",
     "overwroteimage": "hää en nei werjuun faan „[[$1]]“ huuchschüürd",
     "uploaddisabled": "Huuchschüüren as ei aktiwiaret",
     "copyuploaddisabled": "Huuchschüüren faan URLs as ei aktiwiaret.",
-    "uploadfromurl-queued": "Din huuchschüürd datei teewt.",
     "uploaddisabledtext": "Det huuchschüüren faan datein as ei aktiwiaret.",
     "php-uploaddisabledtext": "Det huuchschüüren faan datein as uun PHP ei aktiwiaret.\nLuke di det iinstelang faan <code>file_uploads</code> uun.",
     "uploadscripted": "Uun detdiar datei stäänt HTML- of Scriptcode, an küd ütj fersen faan en browser ütjfeerd wurd.",
     "upload-misc-error": "Bi't huuchschüüren as wat skiaf gingen.",
     "upload-misc-error-text": "Bi't huuchschüüren as wat skiaf gingen. Luke di det URL noch ans uun, an of det sidj uk würelk diar as.\nWan det goorei wal, do skriiw tu en [[Special:ListUsers/sysop|administraator]].",
     "upload-too-many-redirects": "Det URL hää tuföl widjerfeerangen.",
-    "upload-unknown-size": "Ünbekäänd grate",
     "upload-http-error": "Diar as en HTTP-feeler mä: $1",
     "upload-copy-upload-invalid-domain": "Kopiin faan datein kön faan detdiar domeen ei huuchschüürd wurd.",
     "backend-fail-stream": "Det datei $1 küd ei auerdraanj wurd.",
     "img-auth-streaming": "„$1“ woort iinleesen.",
     "img-auth-public": "Mä img_auth.php wurd datein faan en priwoot Wiki ütjden.\nDetheer as oober en öfentelk Wiki.\nFör a seekerhaid as img_auth.php ei aktiwiaret.",
     "img-auth-noread": "Di brüker hää nian rocht, „$1“ tu leesen.",
-    "img-auth-bad-query-string": "Uun det URL san ei tuläät uffraagtiakens.",
     "http-invalid-url": "Ei tuläät URL: $1",
     "http-invalid-scheme": "URLs mä det münster „$1“ kön ei brükt wurd.",
     "http-request-error": "HTTP-feeler bi't uffraagin.",
     "filehist-dimensions": "Miaten",
     "filehist-filesize": "Dateigrate",
     "filehist-comment": "Komentaar",
-    "filehist-missing": "Datei ei diar",
     "imagelinks": "Hü det datei brükt woort",
     "linkstoimage": "{{PLURAL:$1|Detdiar sidj brükt|Jodiar $1 sidjen brük}} detdiar datei:",
     "linkstoimage-more": "Muar üs $1 {{PLURAL:$1|sidj ferwiset|sidjen ferwise}} üüb detdiar datei.\nDet list wiset {{PLURAL:$1|at iarst ferwisang|a iarst $1 ferwisangen}} üüb detdiar datei.\nDü könst uk det [[Special:WhatLinksHere/$2|hial list]] uunluke.",
     "trackingcategories-msg": "Kategorii ferfulge",
     "trackingcategories-name": "Nööm faan't bööd",
     "trackingcategories-desc": "Kriteerien för't iinbinjen faan kategoriin.",
-    "noindex-category-desc": "Üüb detdiar sidj stäänt det maagisk wurd <nowiki>__NOINDEX__</nowiki> an as uun en nöömrüm, huar det tuläät as. Sodenang woort det faan a bots ei indisiaret.",
-    "index-category-desc": "Üüb detdiar sidj stäänt det maagisk wurd <nowiki>__INDEX__</nowiki> an as uun en nöömrüm, huar det ei tuläät as. Sodenang woort det faan a bots likes indisiaret.",
+    "noindex-category-desc": "Üüb detdiar sidj stäänt det maagisk wurd <code><nowiki>__NOINDEX__</nowiki></code> an as uun en nöömrüm, huar det tuläät as. Sodenang woort det faan a bots ei indisiaret.",
+    "index-category-desc": "Üüb detdiar sidj stäänt det maagisk wurd <code><nowiki>__INDEX__</nowiki></code> an as uun en nöömrüm, huar det ei tuläät as. Sodenang woort det faan a bots likes indisiaret.",
     "post-expand-template-inclusion-category-desc": "Efter't ütjwidjin faan a föörlaagen as det sidj grater üs <code>$wgMaxArticleSize</code>, sodenang kön enkelt föörlaagen ei ütjwidjet wurd.",
     "post-expand-template-argument-category-desc": "Efter't ütjwidjin faan en föörlaagenargument (det stäänt uun trebelt kläämen so üs <code>{{{Foo}}})</code> as det sidj grater üs <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Diar san tu föl parser-funktjuunen (so üs <code>#ifexist</code>) uun det sidj iinbünjen. Luke efter uun't [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit brüker-hoonbuk].",
     "broken-file-category-desc": "Detdiar kategorii woort iinsaat, wan üüb det sidj en uunstaken ferwisang föörkomt. (Det as ferlicht en ferwisang üüb en datei, wat det goorei jaft.)",
-    "hidden-category-category-desc": "Det as en kategorii, huar <nowiki>__HIDDENCAT__</nowiki> üüb stäänt. Hat woort normoolerwiis ei bi a kategoriin uunwiset.",
+    "hidden-category-category-desc": "Det as en kategorii, huar <code><nowiki>__HIDDENCAT__</nowiki></code> üüb stäänt. Hat woort normoolerwiis ei bi a kategoriin uunwiset.",
     "trackingcategories-nodesc": "Diar as nian beskriiwang.",
     "trackingcategories-disabled": "Detdiar kategorii as ufsteld wurden",
     "mailnologin": "Bi't e-mail ferschüüren as wat skiaf gingen",
     "emailuser-title-notarget": "E-mail tu brüker",
     "emailpage": "E-mail tu brüker",
     "emailpagetext": "Dü könst {{GENDER:$1|di brüker|det brükerin}} mä det formulaar en e-mail schüür.\nDin aanj e-mail adres faan din [[Special:Preferences|iinstelangen]] woort uunwiset, so dat {{GENDER:$1|di brüker|det brükerin}} di saner amwai swaare koon.",
-    "usermailererror": "Det e-mail objekt wiset en feeler uun.",
     "defemailsubject": "{{SITENAME}} e-mail faan brüker „$1“",
     "usermaildisabled": "E-mail fun as ei aktiif",
     "usermaildisabledtext": "Dü könst nian e-mail tu ööder brükern schüür.",
     "noemailtitle": "Nian e-mail adres",
     "noemailtext": "Didiar brüker hää nian gudkäänd e-mail adres uunden.",
-    "nowikiemailtitle": "E-mail koon ei wechschüürd wurd",
     "nowikiemailtext": "Didiar brüker maad nian e-mails faan ööder brükern fu.",
     "emailnotarget": "Didiar brükernööm as ei bekäänd of ei gudkäänd, am ham en e-mail tu schüüren",
     "emailtarget": "Brükernööm faan di ööder brüker iindu",
     "watching": "Uun't uug behual ...",
     "unwatching": "Ei uun't uug behual ...",
     "watcherrortext": "Bi't anrin faan iinstelangen för „$1“ as wat skiaf gingen.",
-    "enotif_mailer": "{{SITENAME}}-e-mail-noorachten siinst",
     "enotif_reset": "Aal a sidjen üs besoocht kääntiakne",
     "enotif_impersonal_salutation": "{{SITENAME}}-brüker",
     "enotif_subject_deleted": "{{SITENAME}}-sidj $1 as faan {{GENDER:$2|$2}} stregen wurden.",
     "excontent": "diar sted: „$1“",
     "excontentauthor": "diar sted: „$1“ (iansagst bewerker: [[Special:Contributions/$2|$2]])",
     "exbeforeblank": "diar sted föör't leesag maagin: „$1“",
-    "exblank": "sidj wiar leesag",
     "delete-confirm": "Strik \"$1\"",
     "delete-legend": "Strike",
     "historywarning": "'''Paase üüb:''' Det sidj, wat dü strik wel, hää amanbi $1 {{PLURAL:$1|werjuun|werjuunen}}:",
     "importunknownsource": "Ünbekäänd importkwel",
     "importcantopen": "Det import-datei küd ei eeben maaget wurd.",
     "importbadinterwiki": "Ferkiard interwiki-link",
-    "importnotext": "Leesag of nään tekst",
     "importsuccess": "Import klaar!",
-    "importhistoryconflict": "Diar san al ääler werjuunen diar. Ferlicht as det sidj al ans importiaret wurden.",
     "importnosources": "För di transwiki-import san nian kwelen uunden. Dü könst werjuunen ei direkt huuchschüür.",
     "importnofile": "Diar as nian importdatei bestemet wurden.",
     "importuploaderrorsize": "Bi't huuchschüüren faan det importdatei as wat skiaf gingen. Det datei as tu grat.",
index eb41f36..f3a11a6 100644 (file)
     "permalink": "Fêste keppeling",
     "print": "Ofdrukke",
     "view": "Lêze",
-    "edit": "Wizigje",
+    "edit": "Feroarje",
     "create": "Oanmeitsje",
     "editthispage": "Side bewurkje",
     "create-this-page": "Dizze side oanmeitsje",
     "revdelete-hide-comment": "De bewurkingsgearfetting ferskûlje",
     "revdelete-hide-user": "Meidoggernamme/IP fan de meidogger ferskûlje",
     "revdelete-hide-restricted": "Dizze beheinings tapasse op behearders en dizze ynterface ôfslute",
+    "revdelete-radio-set": "Ferburgen",
+    "revdelete-radio-unset": "Sichtber",
     "revdelete-suppress": "Gegevens foar behearders likegoed as oaren ûnderdrukke",
     "revdelete-unsuppress": "Beheinings op tebeksette feroarings fuorthelje",
     "revdelete-log": "Reden:",
     "revdelete-submit": "Tapasse op selektearre bewurking",
-    "revdelete-success": "'''Sichtberens fan'e feroaring mei sukses ynsteld.'''",
+    "revdelete-success": "'''Sichtberens fan 'e feroaring mei sukses ynsteld.'''",
     "logdelete-success": "'''Sichtberens fan it barren mei sukses ynsteld.'''",
     "revdel-restore": "Sichtberens feroarje",
     "pagehist": "Sideskiednis",
     "prefs-skin": "Side-oansjen",
     "skin-preview": "Proefbyld",
     "datedefault": "Gjin foarkar",
-    "prefs-datetime": "Datum en tiid",
     "prefs-personal": "Persoanlike gegevens",
     "prefs-rc": "Koartlyn feroare",
     "prefs-watchlist": "Folchlist",
     "upload-permitted": "Talitten triemtypen: $1.",
     "upload-preferred": "Oanwiisde triemtypen: $1.",
     "upload-prohibited": "Ferbeane triemtypen: $1.",
-    "uploadlog": "oanbiedloch",
     "uploadlogpage": "Oanbiedloch",
     "uploadlogpagetext": "List fan de lêst oanbeane triemmen. (Tiid oanjûn as UTC).",
     "filename": "Triemnamme",
     "filereuploadsummary": "Triemferoarings:",
     "filestatus": "Auteursrjochtensituaasje:",
     "filesource": "Boarne:",
-    "uploadedfiles": "Oanbeane triemmen",
     "ignorewarning": "Negearje de warskôging en lis triem dochs fêst.",
     "ignorewarnings": "Negearje warskôgings",
     "minlength1": "Triemnammen moatte minstens út ien teken bestean.",
     "upload-file-error-text": "Der wie in ynterne fout doe't in tydlike triem op'e server oanmakke waard.\nNim kontakt op mei in [[Special:ListUsers/sysop|behearder]].",
     "upload-misc-error": "Unbekende oanbiedfout",
     "upload-misc-error-text": "Der is by it oanbieden in ûnbekende fout optreden.\nKontrolearje of de URL krekt en beskikber is en besykje it nochris.\nAs it probleem oanhâldt, nim dan kontakt op mei in\n[[Special:ListUsers/sysop|behearder]].",
-    "upload-unknown-size": "Unbekinde grutte",
     "upload-curl-error6": "Koe de URL net berikke",
     "upload-curl-error6-text": "De opjûne URL is net berikber.\nKontrolearje oft de URL krekt is en oft de webside beskikber is.",
     "upload-curl-error28": "Oanbiedtiid foarby",
     "filehist-dimensions": "Ofmjittings",
     "filehist-filesize": "Triem grutte",
     "filehist-comment": "Opmerkings",
-    "filehist-missing": "Triem net fûn",
     "imagelinks": "Ofbyldkeppelings",
     "linkstoimage": "Dizze {{PLURAL:$1|side is|$1 siden binne}} keppele oan it ôfbyld:",
     "linkstoimage-more": "Der {{PLURAL:$2|is|binne}} mear as $1 {{PLURAL:$1|ferwizing|ferwizings}} nei dizze triem.\nDe folgjende list jout allinne de earste {{PLURAL:$1|ferwizing|$1 ferwizings}} nei dizze triem wer.\nDer is ek in [[Special:WhatLinksHere/$2|folsleine list]].",
     "emailuser": "Skriuw meidogger",
     "emailpage": "E-post nei meidogger",
     "emailpagetext": "Fia dit berjocht kinne jo in e-mail oan dizze brûker ferstjoere.\nIt e-mailadres dat jo opjûn hawwe by [[Special:Preferences|jo foarkarren]] wurdt as ôfstjoerder  brûkt.\nDe ûntfanger kin dus daliks nei jo reagearje.",
-    "usermailererror": "Flatermelding by ferstjoeren:",
     "defemailsubject": "E-post fan {{SITENAME}}",
     "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.",
-    "nowikiemailtitle": "E-mail is net tastien",
     "nowikiemailtext": "Dizze brûker wol gjin e-mail ûntfange fan oare brûkers.",
     "email-legend": "In e-mail ferstjoere nei in oare brûker fan {{SITENAME}}",
     "emailfrom": "Fan:",
     "excontent": "ynhâld wie: '$1'",
     "excontentauthor": "ynhâld wie: '$1' (en de ienige bewurker wie: '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "foar de tekst wiske wie, wie dat: '$1'",
-    "exblank": "side wie leech",
     "delete-confirm": "\"$1\" wiskje",
     "delete-legend": "Wiskje",
     "historywarning": "Warskôging: De side dy't jo wiskje wolle hat skiednis:",
     "importunknownsource": "Unbekende ymportboarnetype",
     "importcantopen": "De ymporttriem koe net iepenen wurde.",
     "importbadinterwiki": "Ferkearde ynterwikiferwizing",
-    "importnotext": "Leech of gjin tekst",
     "importsuccess": "Ymport slagge!",
     "importnofile": "Gjin ymporttriem is oanbeane.",
     "import-noarticle": "Gjin side te ymportearjen!",
     "exif-gpstimestamp": "GPS-tiid (atoomklok)",
     "exif-gpsspeedref": "Snelheidsienheid",
     "exif-gpsdatestamp": "GPS-datum",
+    "exif-source": "Boarne",
+    "exif-contact": "Kontakt ynformaasje",
+    "exif-writer": "Skriuwer",
+    "exif-languagecode": "Taal",
+    "exif-iimcategory": "Kategory",
+    "exif-datetimereleased": "Utbrocht op",
+    "exif-serialnumber": "Searjenûmer fan de kamera",
+    "exif-cameraownername": "Eigner fan de kamera",
+    "exif-copyrightowner": "Copyright eigner",
+    "exif-disclaimer": "Foarbehâld",
     "exif-unknowndate": "Datum ûnbekend",
     "exif-orientation-1": "Normaal",
     "exif-componentsconfiguration-0": "bestiet net",
     "exif-sharpness-0": "Normaal",
     "exif-subjectdistancerange-0": "Unbekend",
     "exif-subjectdistancerange-2": "Tichtby",
+    "exif-gpsdestdistance-m": "Milen",
+    "exif-gpsdestdistance-n": "Seemilen",
     "watchlistall2": "alles",
     "namespacesall": "alles",
     "monthsall": "alle",
     "confirmemail_body": "Immen, nei gedachten jo, hat him by {{SITENAME}} oanmelde as \"$2\", mei dit netpostadres ($1).\n\nHjirtroch komme ek de netpostfunksjes fan {{SITENAME}} foar jo beskikber. Iepenje de neikommende keppeling om te befêstigjen dat jo wier josels by {{SITENAME}} mei dit netpostadres oanmelde hawwe:\n\n$3\n\nAt jo dat *net* wienen, brûk dy keppeling dan net, en klik hjir:\n\n$5\n\nDizze befêstigingskoade ferrint dan op $4.",
     "scarytranscludetoolong": "[URL-adres is te lang]",
     "confirmrecreate": "Sûnt jo begûn binne dizze side te bewurkjen, hat meidogger [[User:$1|$1]] ([[User talk:$1|oerlis]]) de side wiske. De reden dy't derfoar jûn waard wie:\n: ''$2''\nWolle jo de side wier op 'e nij skriuwe?",
+    "confirm_purge_button": "Okee",
+    "confirm-watch-button": "Okee",
+    "confirm-unwatch-button": "Okee",
+    "confirm-unwatch-top": "Dizze side fan myn folchlist ôfhelje",
+    "imgmultipageprev": "side werom",
     "imgmultipagenext": "folgjende side →",
     "imgmultigo": "Los!",
     "imgmultigoto": "Gean nei side $1",
+    "img-lang-default": "(standert taal)",
     "table_pager_next": "Folgjende side",
+    "table_pager_prev": "Side werom",
     "table_pager_first": "Earste side",
+    "table_pager_last": "Lêste side",
     "table_pager_limit_submit": "Los!",
     "table_pager_empty": "Gjin resultaat",
     "autosumm-blank": "Alle ynhâld fan de side weismiten",
     "autoredircomment": "Ferwiist troch nei [[$1]]",
     "autosumm-new": "Nije Side: $1",
     "livepreview-loading": "Ynlade...",
+    "livepreview-ready": "Lade... Klear!",
     "watchlistedit-normal-title": "Folchlist bewurkje",
     "watchlistedit-normal-submit": "Siden wiskje",
     "watchlistedit-raw-titles": "Siden:",
     "specialpages-group-spam": "Spamhelpmiddels",
     "blankpage": "Side is leech",
     "intentionallyblankpage": "Dizze side is bewust leech lizzen en wurdt brûkt foar benchmarks, ensfh.",
+    "tags-active-yes": "Ja",
+    "tags-active-no": "Nee",
+    "tags-edit": "bewurkje",
+    "tags-hitcount": "$1 {{PLURAL:$1|bewurking|bewurkings}}",
+    "comparepages": "Siden ferlykje",
+    "compare-page1": "Side 1",
+    "compare-page2": "Side 2",
+    "compare-rev1": "Revyzje 1",
+    "compare-rev2": "Revyzje 2",
+    "compare-submit": "Ferlykje",
+    "compare-invalid-title": "Unjildige titel.",
     "revdelete-restricted": "hat beheinings oplein oan behearders",
     "revdelete-unrestricted": "hat beheinings foar behearders goedmakke",
     "rightsnone": "(gjin)",
     "feedback-cancel": "Ofbrekke",
     "feedback-submit": "Feedback ferstjoere",
     "feedback-close": "Dien",
-    "searchsuggest-search": "Sykje"
+    "searchsuggest-search": "Sykje",
+    "expand_templates_ok": "Okee",
+    "expand_templates_remove_comments": "Berjochten fuorthelje"
 }
index 61946c0..2feec0a 100644 (file)
     "permalink": "Ligazón permanente",
     "print": "Imprimir",
     "view": "Ver",
+    "view-foreign": "Ver en $1",
     "edit": "Editar",
+    "edit-local": "Editar a descrición local",
     "create": "Crear",
+    "create-local": "Engadir a descrición local",
     "editthispage": "Editar esta páxina",
     "create-this-page": "Crear esta páxina",
     "delete": "Borrar",
     "accountcreatedtext": "Creouse a conta de usuario para [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|conversa]]).",
     "createaccount-title": "Creación dunha conta para {{SITENAME}}",
     "createaccount-text": "Alguén creou unha conta chamada \"$2\" para o seu enderezo de correo electrónico en {{SITENAME}} ($4), e con contrasinal \"$3\".\nDebe acceder ao sistema e mudar o contrasinal agora.\n\nPode facer caso omiso desta mensaxe se se creou esta conta por erro.",
-    "usernamehasherror": "O nome de usuario non pode conter cancelos (\"#\")",
     "login-throttled": "Fixo demasiados intentos de acceder ao sistema.\nPor favor, agarde $1 antes de probar outra vez.",
     "login-abort-generic": "Acceso ao sistema incorrecto; abortado",
     "loginlanguagelabel": "Lingua: $1",
     "prefs-skin": "Aparencia",
     "skin-preview": "Vista previa",
     "datedefault": "Ningunha preferencia",
-    "prefs-datetime": "Data e hora",
     "prefs-labs": "Características experimentais",
     "prefs-user-pages": "Páxinas de usuario",
     "prefs-personal": "Información de usuario",
     "upload-permitted": "Tipos de ficheiro permitidos: $1.",
     "upload-preferred": "Tipos de ficheiro preferidos: $1.",
     "upload-prohibited": "Tipos de ficheiro prohibidos: $1.",
-    "uploadlog": "rexistro de cargas",
     "uploadlogpage": "Rexistro de cargas",
     "uploadlogpagetext": "A continuación está a lista cos últimos ficheiros cargados no servidor.\nVexa a [[Special:NewFiles|galería de imaxes novas]] para ollar unha visión máis xeral.",
     "filename": "Nome do ficheiro",
     "filereuploadsummary": "Cambios no ficheiro:",
     "filestatus": "Estado dos dereitos de autor:",
     "filesource": "Fonte:",
-    "uploadedfiles": "Ficheiros cargados",
     "ignorewarning": "Ignorar a advertencia e gardar o ficheiro de calquera xeito",
     "ignorewarnings": "Ignorar as advertencias",
     "minlength1": "Os nomes dos ficheiros deben ter cando menos unha letra.",
     "overwroteimage": "enviou unha nova versión de \"[[$1]]\"",
     "uploaddisabled": "Sentímolo, a subida de ficheiros está desactivada.",
     "copyuploaddisabled": "A carga mediante URL está desactivada.",
-    "uploadfromurl-queued": "A súa carga púxose á cola.",
     "uploaddisabledtext": "A carga de ficheiros está desactivada.",
     "php-uploaddisabledtext": "As cargas de ficheiros PHP están desactivadas. Por favor, comprobe a característica file_uploads.",
     "uploadscripted": "Este ficheiro contén código HTML ou script que pode producir erros ao ser interpretado polo navegador.",
     "upload-misc-error": "Erro de carga descoñecido",
     "upload-misc-error-text": "Ocorreu un erro descoñecido durante a carga.\nComprobe que o enderezo URL é válido e accesible e, despois, inténteo de novo.\nSe o problema persiste, póñase en contacto cun [[Special:ListUsers/sysop|administrador]].",
     "upload-too-many-redirects": "O enderezo URL contiña moitas redireccións",
-    "upload-unknown-size": "Tamaño descoñecido",
     "upload-http-error": "Produciuse un erro HTTP: $1",
     "upload-copy-upload-invalid-domain": "A copia de cargas non está dispoñible neste dominio.",
     "backend-fail-stream": "Non se puido transmitir o ficheiro \"$1\".",
     "img-auth-streaming": "Secuenciando \"$1\".",
     "img-auth-public": "A función de img_auth.php é para ficheiros de saída desde un wiki privado.\nEste wiki está configurado como público.\nPara unha seguridade óptima, img_auth.php está desactivado.",
     "img-auth-noread": "O usuario non ten acceso á lectura de \"$1\".",
-    "img-auth-bad-query-string": "O enderezo URL ten unha secuencia de consulta incorrecta.",
     "http-invalid-url": "URL non válido: $1",
     "http-invalid-scheme": "Os enderezos URL co esquema \"$1\" non están soportados",
     "http-request-error": "Erro descoñecido ao enviar a solicitude.",
     "filehist-dimensions": "Dimensións",
     "filehist-filesize": "Tamaño do ficheiro",
     "filehist-comment": "Comentario",
-    "filehist-missing": "Falta o ficheiro",
     "imagelinks": "Uso do ficheiro",
     "linkstoimage": "{{PLURAL:$1|A seguinte páxina liga|As seguintes $1 páxinas ligan}} con esta imaxe:",
     "linkstoimage-more": "Máis {{PLURAL:$1|dunha páxina liga|de $1 páxinas ligan}} con este ficheiro.\nA seguinte lista só mostra {{PLURAL:$1|a primeira páxina que liga|as primeiras $1 páxina que ligan}} con el.\nHai dispoñible [[Special:WhatLinksHere/$2|unha lista completa]].",
     "trackingcategories-msg": "Categoría de seguimento",
     "trackingcategories-name": "Nome da mensaxe",
     "trackingcategories-desc": "Criterio de inclusión da categoría",
-    "noindex-category-desc": "A páxina contén a palabra máxica <nowiki>__NOINDEX__</nowiki> (e está nun espazo de nomes no que esa marca está permitida) e, polo tanto, non será indexada polos bots.",
-    "index-category-desc": "A páxina contén a palabra máxica <nowiki>__INDEX__</nowiki> (e está nun espazo de nomes no que esa marca está permitida) e, polo tanto, será indexada polos bots cando non debera selo normalmente.",
+    "noindex-category-desc": "A páxina non está indexada polos robots porque ten a palabra máxica <code><nowiki>__NOINDEX__</nowiki></code> e está nun espazo de nomes no que esa marca está permitida.",
+    "index-category-desc": "A páxina contén a palabra máxica <code><nowiki>__INDEX__</nowiki></code> (e está nun espazo de nomes no que esa marca está permitida) e, polo tanto, será indexada polos bots cando non debera selo normalmente.",
     "post-expand-template-inclusion-category-desc": "Despois de expandir todos os modelos, o tamaño da páxina é maior que <code>$wgMaxArticleSize</code>; algúns modelos non se expandiron.",
     "post-expand-template-argument-category-desc": "Despois de expandir o argumento dun modelo (algo entre chaves triples, como <code>{{{Proba}}}</code>), a páxina é maior que <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Hai demasiadas funcións analíticas custosas (como <code>#ifexist</code>) incluídas nunha páxina. Consulte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
     "broken-file-category-desc": "Categoría engadida se a páxina contén unha ligazón de ficheiro rota (unha ligazón para incorporar un ficheiro cando o ficheiro non existe).",
-    "hidden-category-category-desc": "Esta é unha categoría coa palabra máxica <nowiki>__HIDDENCAT__</nowiki>, que impide que se mostre por defecto na caixa de categorías das páxinas.",
+    "hidden-category-category-desc": "Esta é unha categoría coa palabra máxica <code><nowiki>__HIDDENCAT__</nowiki></code>, que impide que se mostre por defecto na caixa de categorías das páxinas.",
     "trackingcategories-nodesc": "Non hai ningunha descrición dispoñible.",
     "trackingcategories-disabled": "A categoría está desactivada",
     "mailnologin": "Non existe enderezo para o envío",
     "emailuser-title-notarget": "Enviar un correo electrónico a un usuario",
     "emailpage": "Enviar un correo electrónico a un usuario",
     "emailpagetext": "Pode usar o seguinte formulario para enviar unha mensaxe de correo electrónico a {{GENDER:$1|este usuario|esta usuaria}}.\nO enderezo de correo electrónico que inseriu [[Special:Preferences|nas súas preferencias]] aparecerá no campo \"De:\" do correo, polo que {{GENDER:$1|o receptor|a receptora}} da mensaxe poderá responderlle directamente.",
-    "usermailererror": "O obxecto enviado deu unha mensaxe de erro:",
     "defemailsubject": "Correo electrónico do usuario $1 de {{SITENAME}}",
     "usermaildisabled": "O correo electrónico do usuario está desactivado",
     "usermaildisabledtext": "Non pode enviar correos electrónicos a outros usuarios deste wiki",
     "noemailtitle": "Sen enderezo de correo electrónico",
     "noemailtext": "Este usuario non especificou un enderezo de correo electrónico válido.",
-    "nowikiemailtitle": "Sen correo electrónico habilitado",
     "nowikiemailtext": "Este usuario elixiu non recibir correos electrónicos doutros usuarios.",
     "emailnotarget": "O nome de usuario do destinatario non existe ou é incorrecto.",
     "emailtarget": "Introduza o nome de usuario do destinatario",
     "watching": "Vixiando...",
     "unwatching": "Deixando de vixiar...",
     "watcherrortext": "Houbo un erro ao cambiar as súas opcións de vixilancia para a páxina \"$1\".",
-    "enotif_mailer": "Sistema de notificacións por correo de {{SITENAME}}",
     "enotif_reset": "Marcar todas as páxinas como visitadas",
     "enotif_impersonal_salutation": "Usuario de {{SITENAME}}",
     "enotif_subject_deleted": "{{GENDER:$2|$2}} borrou a páxina chamada \"$1\" en {{SITENAME}}",
     "excontent": "o contido era: \"$1\"",
     "excontentauthor": "o contido era: \"$1\" (e o único editor foi [[Special:Contributions/$2|$2]])",
     "exbeforeblank": "o contido antes do baleirado era: \"$1\"",
-    "exblank": "a páxina estaba baleira",
     "delete-confirm": "Borrar \"$1\"",
     "delete-legend": "Borrar",
     "historywarning": "'''Atención:''' A páxina que está a piques de borrar ten un historial con aproximadamente $1 {{PLURAL:$1|revisión|revisións}}:",
     "importunknownsource": "Fonte de importación descoñecida",
     "importcantopen": "Non se pode abrir o ficheiro importado",
     "importbadinterwiki": "Ligazón interwiki incorrecta",
-    "importnotext": "Baleiro ou sen texto",
     "importsuccess": "A importación rematou!",
-    "importhistoryconflict": "Existe un conflito no historial de revisións (se cadra, xa se importou esta páxina anteriormente)",
     "importnosources": "Non se defininiu ningunha fonte de importación transwiki e os envíos directos dos historiais están desactivados.",
     "importnofile": "Non se enviou ningún ficheiro de importación.",
     "importuploaderrorsize": "Fallou o envío do ficheiro de importación. O ficheiro é máis grande que o tamaño de envío permitido.",
index 376f895..339c540 100644 (file)
     "disclaimers": "Chotraio",
     "disclaimerpage": "Project:Sadeo chotraio",
     "edithelp": "Sudarunk palov",
-    "helppage": "Help:Mozkur",
     "mainpage": "Mukhel Pan",
     "mainpage-description": "Mukhel Pan",
     "portal": "Somudaik proves-dar",
index 53ba295..f0c6be3 100644 (file)
     "disclaimers": "𐍅𐌰𐌳𐌾𐍉𐌱𐌹𐌻𐌰𐌲𐌴𐌹𐌽𐍃",
     "disclaimerpage": "Project:𐍅𐌰𐌳𐌾𐌹𐍃 𐌱𐌹𐌻𐌰𐌲𐌴𐌹𐌽𐍃",
     "edithelp": "𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌹𐌷𐌹𐌻𐍀𐌰",
-    "helppage": "Help:𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
     "mainpage": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
     "mainpage-description": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
     "portal": "𐌱𐌰𐌿𐍂𐌲𐌹𐍃 𐌲𐌰𐍅𐌹",
index b6cfa96..75e3690 100644 (file)
     "accountcreatedtext": "S Benutzerkonto fir [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|Diskussion]]) isch aagleit wore.",
     "createaccount-title": "Aalege vum e Benutzerkonto fir {{SITENAME}}",
     "createaccount-text": "Fir Dii isch e Benutzerkonto \"$2\" uf {{SITENAME}} ($4) aaglait wore. S Passwort fir \"$2\" , wu automatisch generiert woren isch, isch \"$3\". Du sottsch Di jetz aamälde un s Passwort ändere.\n\nWänn s Benutzerkonto us Versäh aaglait woren isch, chasch die Nochricht ignoriere.",
-    "usernamehasherror": "In Benutzernäme derf s kei Rautezeiche din haa",
     "login-throttled": "Du hesch z vilmol umesuscht versuecht, Di aazmälde. Bitte wart $1, voreb Du s non emol versuechsch.",
     "login-abort-generic": "Dyy Aamäldig isch nit erfolgryych gsii – Abbroche",
     "loginlanguagelabel": "Sproch: $1",
     "prefs-skin": "Benutzeroberflechi",
     "skin-preview": "Vorschou",
     "datedefault": "kei Aagab",
-    "prefs-datetime": "Datum un Zyt",
     "prefs-labs": "Alphafunktione",
     "prefs-user-pages": "Benutzersyte",
     "prefs-personal": "Benutzerdate",
     "upload-permitted": "Dateitype, wu erlaubt sin: $1.",
     "upload-preferred": "Dateitype, wu bevorzugt sin: $1.",
     "upload-prohibited": "Dateitype, wu nit erlaubt sin: $1.",
-    "uploadlog": "Datei-Logbuech",
     "uploadlogpage": "Dateie-Logbuech",
     "uploadlogpagetext": "Des isch s Logbuech vu dr uffegladene Dateie.\nLueg au d [[Special:NewFiles|Galerii vu neije Dateie]] fir e visuälle Iberblick.",
     "filename": "Dateiname",
     "filereuploadsummary": "Dateiänderige:",
     "filestatus": "Urheberrächts-Status:",
     "filesource": "Quälle:",
-    "uploadedfiles": "Uffegladeni Dateie",
     "ignorewarning": "Warnig ignoriere un d Datei spychere",
     "ignorewarnings": "Warnige ignoriere",
     "minlength1": "Dateinäme mien zmindescht e Buechstab lang syy.",
     "overwroteimage": "het e neiji Version vu „[[$1]]“ uffeglade",
     "uploaddisabled": "Uffelade deaktiviert",
     "copyuploaddisabled": "S Uffelade iber URL isch abschalte wore.",
-    "uploadfromurl-queued": "Dyy Uffeladig isch jetz in dr Warteschlang.",
     "uploaddisabledtext": "S Uffelade vu Dateie isch deaktiviert.",
     "php-uploaddisabledtext": "S Uffelade vu PHP-Dateie isch deaktiviert wore. Bitte iberprief d file_uploads-Yystellig.",
     "uploadscripted": "In däre Datei git s HTML- oder Scriptcode, wu fälschligerwyys vun eme Webbrowser usgfiert chennt were.",
     "upload-misc-error": "Nit bekannte Fähler bim Uffelade",
     "upload-misc-error-text": "Bim Uffelade isch e nit bekannte Fähler uftrette.\nPrief d URL uf Fähler un dr Online-Status vu dr Syte un versuech s no mol.\nWänn s Problem alno uftritt, informier e [[Special:ListUsers/sysop|Ammann]].",
     "upload-too-many-redirects": "In dr URL het s zvyl Wyterleitige",
-    "upload-unknown-size": "Nit bekannti Greßi",
     "upload-http-error": "E HTTP-Fähler isch ufträtte: $1",
     "upload-copy-upload-invalid-domain": "As Kopi uffeladbari Dateie sin iber die Domain nit verfiegbar.",
     "backend-fail-stream": "D Datei $1 het nit chenne ibertrait wäre.",
     "img-auth-streaming": "Am Lade vu „$1“.",
     "img-auth-public": "img_auth.php git Dateie vun eme privaten Wiki uus.\nDes Wiki isch as effentlig Wiki konfiguriert.\nUs Sicherheitsgrinde isch img_auth.php deaktiviert.",
     "img-auth-noread": "Benutzer derf „$1“ nit läse.",
-    "img-auth-bad-query-string": "D URL wyst e nit giltigi Abfrogzeichnefolg uf.",
     "http-invalid-url": "Nit giltigi URL: $1",
     "http-invalid-scheme": "URL mit em Schema „$1“ wäre nit unterstitzt",
     "http-request-error": "Fähler bim Verschicke vu dr Aafrog.",
     "filehist-dimensions": "Mäß",
     "filehist-filesize": "Dateigrößi",
     "filehist-comment": "Kommentar",
-    "filehist-missing": "Datei fählt",
     "imagelinks": "Verwändig vu dr Datei",
     "linkstoimage": "Di {{PLURAL:$1|Syte|$1 Sytene}} händ en Link zu dem Bild:",
     "linkstoimage-more": "Meh as {{PLURAL:$1|ei Syte verwyyst|$1 Syte verwyyse}} uf die Datei.\nDie Lischt zeigt nume {{PLURAL:$1|dr erscht Link|di erschte $1 Link}} uf die Datei.\nE [[Special:WhatLinksHere/$2|vollständigi Lischt]] isch verfiegbar.",
     "emailuser-title-notarget": "E-Mail an Benutzer",
     "emailpage": "E-Mail an Benutzer",
     "emailpagetext": "Du chasch {{GENDER:$1|em Benutzer|dr Benutzeri}} mit däm Formular e E-Mail schicke.\nAs Absender wird d E-Mail-Adräss us Dyyne [[Special:Preferences|Yystellige]] yytrait, ass {{GENDER:$1|dr Benutzer|d Benutzeri}} Dir cha Antwort gee.",
-    "usermailererror": "S Mail-Objekt het e Fähler zruckgee:",
     "defemailsubject": "{{SITENAME}}-E-Mail vum Benutzer „$1“",
     "usermaildisabled": "Benutzer-E-Mail abgstellt",
     "usermaildisabledtext": "Du chasch in däm Wiki kei E-Mail an anderi Benutzer schicke",
     "noemailtitle": "Kei e-Mail-Adrässe",
     "noemailtext": "Dää Benutzer het kei bstätigti E-Mail-Adräss aagee oder wet kei E-Mail vo andere Benutzer.",
-    "nowikiemailtitle": "Kei E-Mail Versand mögli",
     "nowikiemailtext": "De Benutzer möcht kei E-Mails vo andri Benutzer erhalte",
     "emailnotarget": "Benutzername fir dr Empfang vun ere E-Mail git s nit oder isch nit giltig.",
     "emailtarget": "Dr Benutzername vum Empfänger yygee",
     "watching": "Am beobachte …",
     "unwatching": "Nümm am beobachten …",
     "watcherrortext": "Bim Ändere vu dr Beobachtigslischtenyystellige fir „$1“ het s e Fähler gee.",
-    "enotif_mailer": "{{SITENAME}} E-Mail-Benochrichtigungsdienscht",
     "enotif_reset": "Alli Syte as aagluegt markiere",
     "enotif_impersonal_salutation": "{{SITENAME}}-Benutzer",
     "enotif_subject_deleted": "{{SITENAME}}-Syte $1 isch vu {{GENDER:$2|$2}} glescht wore",
     "excontent": "Alter Inhalt: '$1'",
     "excontentauthor": "einzige Inhalt: '$1' (bearbeitet worde nume dür '$2')",
     "exbeforeblank": "Inhalt voreb d Syte gläärt woren isch: '$1'",
-    "exblank": "Syte isch läär gsi",
     "delete-confirm": "„$1“ lesche",
     "delete-legend": "Lesche",
     "historywarning": "'''Warnig:'''  Die Syte, wu Du wit lesche, het e Versionsgschicht mit schetzigswyys $1 {{PLURAL:$1|Version|Versione}}:",
     "importunknownsource": "Importquell isch unbekannt",
     "importcantopen": "D Importdatei het nit chenne ufgmacht wäre.",
     "importbadinterwiki": "Falscher Interwiki-Link",
-    "importnotext": "Leer oder kei Teggscht",
     "importsuccess": "Dr Import isch abgschlosse.",
-    "importhistoryconflict": "Es het scho ältri Versione wo mit dere kollidiere. Es isch mögli dass die Syte scho emool importiert worde isch.",
     "importnosources": "Für de Transwiki-Import sin kei Quelle definiert worde. Wege dem isch s direkte Ufelade vo Gschichtsversione gsperrt.",
     "importnofile": "Es isch kei Importdatei ufeglade worde.",
     "importuploaderrorsize": "S Ufelade vo dr Importdatei isch misslunge. D Datei isch grösser als erlaubt isch.",
index e96592a..6cf8776 100644 (file)
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) માટે સભ્ય ખાતું બનાવવામાં આવ્યું છે.",
     "createaccount-title": "{{SITENAME}} માટે ખાતુ બનાવ્યું",
     "createaccount-text": "કોઇકે {{SITENAME}} ($4) પર, નામ \"$2\", ગુપ્તસંજ્ઞા \"$3\", શાથે તમારા ઇ-મેઇલ એડ્રેસ માટે ખાતુ બનાવેલ છે.\n\nતમે હવે પ્રવેશ કરી અને ગુપ્તસંજ્ઞા બદલી શકો છો.\n\nજો આ ખાતુ ભુલથી બનેલું હોય તો,આ સંદેશને અવગણી શકો છો.",
-    "usernamehasherror": "સભ્યનામમાં ગડબડિયા ચિહ્નો ન હોઈ શકે",
     "login-throttled": "તમે હાલમાં ઘણાં જ પ્રવેશ પ્રયત્નો કર્યા છે.\nકૃપા કરી ફરી પ્રયત્ન કરતાં પહેલાં $1 રાહ જુઓ.",
     "login-abort-generic": "તમારું પ્રવેશ નિષ્ફળ થયું - છોડી દેવાયું",
     "loginlanguagelabel": "ભાષા: $1",
     "prefs-skin": "ફલક",
     "skin-preview": "ફેરફાર બતાવો",
     "datedefault": "મારી પસંદ",
-    "prefs-datetime": "તારીખ અને સમય",
     "prefs-labs": "પ્રયોગશાળા લક્ષણો",
     "prefs-user-pages": "સભ્ય પાનાંઓ",
     "prefs-personal": "સભ્ય ઓળખ",
     "upload-permitted": "રજામંદ ફાઈલ પ્રકારો: $1.",
     "upload-preferred": "ઈચ્છીત ફાઈલ પ્રકારો: $1.",
     "upload-prohibited": "પ્રતિબંધીત ફાઈલ પ્રકારો: $1.",
-    "uploadlog": "ચઢાવેલી ફાઇલોનું માહિતિ પત્રક",
     "uploadlogpage": "ચઢાવેલી ફાઇલોનું માહિતિ પત્રક",
     "uploadlogpagetext": "નીચે હાલમાં ચડાવેલી ફાઇલોની યાદી છે.\nવધુ ફાઇલો દ્રશમાન કરવા [[Special:NewFiles|gallery of new files]] જુઓ",
     "filename": "ફાઇલ નામ",
     "filereuploadsummary": "ફાઈલ ફેરફારો",
     "filestatus": "પ્રકાશનાધિકાર સ્થિતિ",
     "filesource": "સ્રોત:",
-    "uploadedfiles": "ફાઇલ ચડાવો",
     "ignorewarning": "ચેતવણીને અવગણી ને પણ ફાઇલ સાચવો",
     "ignorewarnings": "કોઇ પણ ચેતવણી અવગણો",
     "minlength1": "ફાઇલ નામની લંબાઇ કમ સે કમ એક અક્ષર જેટલી તો હોવી જ જોઇએ.",
     "overwroteimage": " \"[[$1]]\" ની નવી આવૃત્તિ ચઢાવો.",
     "uploaddisabled": "ફાઇલ ચઢાવ પ્રતિબંધિત",
     "copyuploaddisabled": "URL દ્વાર ફાઇલ ચઢાવ પ્રતિબંધિત",
-    "uploadfromurl-queued": "તમારી ચઢાવેલી ફાઇલ કતારમાં ઉમેરાઇ છે.",
     "uploaddisabledtext": "ફાઇલ ચઢાવવું નિષ્ક્રીય બનાવ્યું છે",
     "php-uploaddisabledtext": "PHPમાં ફાઇલ અપલોડ નિષ્ક્રીય કરી દેવાયો છે.\nફાઇલ ચડાવવાના વિકલ્પ ફરી તપાસો.",
     "uploadscripted": "આ ફાઇલ HTML કે અન્ય સ્ક્રીપ્ટ કોડ ધરાવે છે જે વેબ બ્રાઉઝર દ્વારા ભૂલથી ઉપયોગમાં લઇ શકાય છે.",
     "upload-misc-error": "અજ્ઞાત ફાઇલ ચડાવ ચૂક",
     "upload-misc-error-text": "ફાઈલ ચડાવતી વખતે કાંઇક ત્રુટિ રહી ગઇ.\nખાત્રી કરો કે URL વૈધ છે અને સક્રીય છે અને ફરી પ્રયત્ન કરો.\nતેમ છતાં પણ  પ્રોબ્લેમ રહે તો અહીં સંપર્ક કરશો [[Special:ListUsers/sysop|administrator]].",
     "upload-too-many-redirects": "URLમાં ઘણાં ઉપ નિર્દેશનો છે.",
-    "upload-unknown-size": "અજ્ઞાત કદ",
     "upload-http-error": " HTTP ત્રુટિ : $1",
     "upload-copy-upload-invalid-domain": "આ વેબસાઇટ પરથી ફાઈલ નહીં ચડાવાય.",
     "backend-fail-stream": "ફાઈલ $1 ને લાવી ન શકાઈ.",
     "img-auth-streaming": "ચિત્ર માહીતી  \"$1\" ઉતરી રહી છે.",
     "img-auth-public": "img_auth.php દ્વારા કાર્યાન્વીત થતી ક્રિયા નીજી વિકિ માંથી ફાઇલ કાઢવા વપરાય છે. \nઆ વિકિ ની ગોઠવણ જન વિકી તરીકે થયેલી છે.\nમહત્તમ સુરક્ષા માટે, img_auth.php ને નિષ્ક્રિય કરાઇ છે.",
     "img-auth-noread": "\"$1\" વાંચવાને સભ્યને પરવાનગી નથી.",
-    "img-auth-bad-query-string": "આ URL માં અમાન્ય ક્વેરી શબ્દમાળા છે",
     "http-invalid-url": "અવૈધ URL: $1",
     "http-invalid-scheme": "$1 પદ્ધતિના URLs અહીં ચાલતી નથી",
     "http-request-error": "અજ્ઞાત ત્રુટીને કારણે HTTP અરજી નિષ્ફળ",
     "filehist-dimensions": "પરિમાણો",
     "filehist-filesize": "ફાઇલનું કદ",
     "filehist-comment": "ટિપ્પણી",
-    "filehist-missing": "ફાઇલ ગાયબ",
     "imagelinks": "ફાઇલનો વપરાશ",
     "linkstoimage": "આ ફાઇલ સાથે {{PLURAL:$1|નીચેનું પાનું જોડાયેલું|$1 નીચેનાં પાનાઓ જોડાયેલાં}} છે",
     "linkstoimage-more": "$1 કરતાં વધુ {{PLURAL:$1|પાનું|પાનાં}} આ ફાઇલ સાથે જોડાય છે.\nનીચે જણાવેલ યાદી ફક્ત આ ફાઇલ સાથે જોડાયેલ {{PLURAL:$1|પ્રથમ પાનાની કડી|પ્રથમ $1 પાનાંની કડીઓ}} બતાવે છે.\nઅહીં [[Special:WhatLinksHere/$2|પુરી યાદી]]  મળશે.",
     "emailuser-title-notarget": "ઇ-મેલ વપરાશકર્તા",
     "emailpage": "ઈ-મેલ સભ્ય",
     "emailpagetext": "તમે નીચે દર્શાવેલ ફોર્મ વાપરી આ {{GENDER:$1|સભ્ય}}ને ઇ-મેલ મોકલી શકો છો.\nતમે [[Special:Preferences|તમારી પસંદમાં]] જે ઇ-મેલ લખ્યો હશે તે \"દ્વારા\"ના નામ હેઠળ દેખાશે, જેથી ઇ-મેલ મેળવનાર તમને સંદેશાનો જવાબ આપી શકશે.",
-    "usermailererror": "મેલ વસ્તુ પાઠવવામાં ત્રુટિ",
     "defemailsubject": "{{SITENAME}} સભ્ય $1 તરફથી ઈ-મેલ",
     "usermaildisabled": "સભ્યનો ઈ-મેલ નિષ્ક્રિય કરાયો",
     "usermaildisabledtext": "તમે આ વિકિ પર અન્ય સભ્યોને ઇ-મેલ મોકલી ન શકો",
     "noemailtitle": "ઈ-મેલ એડ્રેસ નથી",
     "noemailtext": "આ સભ્યએ  વૈધ ઇ-મેલ સરનામું નથી આપ્યું.",
-    "nowikiemailtitle": "કોઇ પણ ઇ મેલની રજા નથી",
     "nowikiemailtext": "અન્ય સભ્યો ઇ-મેલ ન મોકલે તેવી આ સભ્યની પસંદગી છે.",
     "emailnotarget": "પ્રાપ્તકર્તા માટે બિન-હયાત અથવા અમાન્ય વપરાશકર્તા નામ.",
     "emailtarget": "પ્રાપ્તકર્તા નું સભ્યનામ દાખલ કરો",
     "watching": "નજર રાખી રહ્યાં છો...",
     "unwatching": "નજર રાખવાની બંધ કરી છે...",
     "watcherrortext": "તમારી ધ્યાનસૂચિ નાં સેટિંગ્સ માં \"$1\" માં ફેરફાર કરતી વખતે ભૂલ આવી.",
-    "enotif_mailer": "{{SITENAME}} સૂચના ઈ-મેલ પ્રેષક",
     "enotif_reset": "બધા પાનાને મુલાકાત લેવાયેલા અંકિત કરો",
     "enotif_impersonal_salutation": "{{SITENAME}} સભ્ય",
     "enotif_subject_deleted": "{{SITENAME}} પૃષ્ઠ $1 {{gender:$2|$2}}એ દૂર કર્યું છે",
     "excontent": "આટલી જ માહિતી હતી: \"$1\"",
     "excontentauthor": "માત્ર આજ માહિતી હતી : \"$1\" (અને યોગદાન કરનાર માત્ર \"[[Special:Contributions/$2|$2]]\" જ હતા)",
     "exbeforeblank": "આ પાનું ભૂંસતા પહેલા તેમાં આ શબ્દો હતાં: $1",
-    "exblank": "પાનું ખાલી હતું",
     "delete-confirm": "$1ને ભૂસી નાંખો.",
     "delete-legend": "રદ કરો",
     "historywarning": "'''ચેતવણી:''' જે પાનું તમે હટાવવા જઇ રહ્યાં છો તેને આશરે $1 {{PLURAL:$1|પુનરાવર્તન|પુનરાવર્તનો}}નો ઇતિહાસ છે:",
     "importunknownsource": "અજ્ઞાત આયાતી સ્રોત પ્રકાર",
     "importcantopen": "આયાતી ફાઈલ નાખોલી શકાઈ",
     "importbadinterwiki": "ખરાબ આંતરીકા વિકિ કડી",
-    "importnotext": "ખાલી કે શબ્દ વિહીન",
     "importsuccess": "આયાત સંપૂર્ણ",
-    "importhistoryconflict": "એક બીજાથી વિસંગત ફેરફારો અસ્તિત્વ ધરાવે છે ( કદાક આ પાનું પહેલાં આયાત કરાયું હોય)",
     "importnosources": "કોઇ પણ આંતર વિકિ સ્રોત જણાવાયા નથી અને સીધા ઇતિહાસ ફાઇલ ચડાવવા પર રોક લાગેલી છે.",
     "importnofile": "કોઇ પણ આયાતી ફાઇલ ન ચડાવી શકાઇ",
     "importuploaderrorsize": "આયાતી ફાઇલ ચડાવવાનું અસફળ\nમંજૂર કદ કરતા આ ફાઈલાનું કદ મોટું છે.",
index 8ae4767..dafdb28 100644 (file)
     "disclaimers": "Hattara",
     "disclaimerpage": "Project:Babban gargaɗi",
     "edithelp": "Taimako kan gyara",
-    "helppage": "Help:Tsaraba",
     "mainpage": "Marhabin",
     "privacy": "Manufar kare sirri",
     "privacypage": "Project:Manufar kare sirri",
index 8092add..1025467 100644 (file)
     "prefs-skin": "ʻIli",
     "skin-preview": "Nāmua",
     "datedefault": "ʻAʻohe makemake",
-    "prefs-datetime": "Ka lā a me ka hola",
     "prefs-user-pages": "ʻAoʻao mea ho‘ohana",
     "prefs-personal": "ʻAoʻao mea hoʻohana",
     "prefs-rc": "Nā loli hou",
     "filedesc": "Hōʻuluʻulu manaʻo",
     "fileuploadsummary": "Hōʻuluʻulu manaʻo:",
     "filesource": "Kumu:",
-    "uploadedfiles": "Waihona hoʻouka ʻia",
     "uploadwarning": "Akahele hoʻouka",
     "savefile": "Waihona mālama",
     "uploadedimage": "ua hoʻouka iā \"[[$1]]\"",
     "watchthisupload": "E kiaʻi i kēia waihona",
     "upload-warning-subj": "Akahele hoʻouka",
     "upload-file-error": "Hewa kūloko",
-    "upload-unknown-size": "Nui ʻikeʻole",
     "upload-http-error": "Ua loaʻa kekahi hewa HTTP: $1",
     "license": "Laikini:",
     "license-header": "Laikini",
     "filehist-dimensions": "Nā Nui",
     "filehist-filesize": "Nui o ka waihona",
     "filehist-comment": "Kaumanaʻo",
-    "filehist-missing": "Nele ka waihona",
     "imagelinks": "Nā Hana waihona",
     "linkstoimage": "Loulou {{PLURAL:$1|kekahi ‘ao‘ao|kēia mau ‘ao‘ao $1}} i kēia waihona:",
     "nolinkstoimage": "ʻAʻohe ʻaoʻao e loulou i kēia waihona.",
index 998c186..6787695 100644 (file)
     "permalink": "קישור קבוע",
     "print": "גרסה להדפסה",
     "view": "צפייה",
-    "view-foreign": "תצ×\95גה ב{{GRAMMAR:תחילית|$1}}",
+    "view-foreign": "×\94צגה ב{{GRAMMAR:תחילית|$1}}",
     "edit": "עריכה",
     "edit-local": "עריכת התיאור המקומי",
     "create": "יצירה",
     "accountcreatedtext": "חשבון המשתמש [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|שיחה]]) נוצר.",
     "createaccount-title": "יצירת חשבון ב{{grammar:תחילית|{{SITENAME}}}}",
     "createaccount-text": "מישהו יצר חשבון בשם $2 ב{{grammar:תחילית|{{SITENAME}}}} ($4), והסיסמה הזמנית של החשבון היא \"$3\". עליכם להיכנס ולשנות עכשיו את הסיסמה.\n\nבאפשרותכם להתעלם מהודעה זו, אם החשבון נוצר בטעות.",
-    "usernamehasherror": "שם משתמש אינו יכול לכלול תווי סולמית",
     "login-throttled": "ביצעתם לאחרונה ניסיונות רבים מדי להיכנס לחשבון זה.\nאנא המתינו $1 לפני שתנסו שוב.",
     "login-abort-generic": "הכניסה לחשבון לא הצליחה - היא הופסקה",
     "loginlanguagelabel": "שפה: $1",
     "prefs-skin": "עיצוב",
     "skin-preview": "תצוגה מקדימה",
     "datedefault": "ברירת המחדל",
-    "prefs-datetime": "תאריך ושעה",
     "prefs-labs": "אפשרויות מעבדה",
     "prefs-user-pages": "דפי משתמש",
     "prefs-personal": "פרטי המשתמש",
     "upload-permitted": "סוגי קבצים מותרים: $1.",
     "upload-preferred": "סוגי קבצים מומלצים: $1.",
     "upload-prohibited": "סוגי קבצים אסורים: $1.",
-    "uploadlog": "יומן העלאות קבצים",
     "uploadlogpage": "יומן העלאות",
     "uploadlogpagetext": "להלן רשימה של העלאות הקבצים האחרונות שבוצעו.\nראו את [[Special:NewFiles|גלריית הקבצים החדשים]] להצגה ויזואלית שלהם.",
     "filename": "שם הקובץ",
     "filereuploadsummary": "השינויים בקובץ:",
     "filestatus": "מעמד זכויות יוצרים:",
     "filesource": "מקור:",
-    "uploadedfiles": "קבצים שהועלו",
     "ignorewarning": "התעלמות מהאזהרה ושמירת הקובץ בכל זאת",
     "ignorewarnings": "התעלמות מכל האזהרות",
     "minlength1": "שמות קבצים צריכים להיות בני תו אחד לפחות.",
     "overwroteimage": "העלה גרסה חדשה של הקובץ [[$1]]",
     "uploaddisabled": "העלאת קבצים מבוטלת.",
     "copyuploaddisabled": "העלאת קבצים מכתובת URL מבוטלת.",
-    "uploadfromurl-queued": "העלאתכם הועברה לתור המשימות.",
     "uploaddisabledtext": "אפשרות העלאת הקבצים מבוטלת.",
     "php-uploaddisabledtext": "אפשרות העלאת הקבצים מבוטלת ברמת PHP. אנא בדקו את ההגדרה file_uploads.",
     "uploadscripted": "הקובץ כולל קוד סקריפט או HTML שעשוי להתפרש או להתבצע בטעות על ידי הדפדפן.",
     "upload-misc-error": "שגיאת העלאה בלתי ידועה",
     "upload-misc-error-text": "שגיאת העלאה בלתי ידועה התרחשה במהלך ההעלאה.\nאנא ודאו שכתובת ה־URL תקינה וזמינה ונסו שוב.\nאם הבעיה חוזרת על עצמה, אנא צרו קשר עם [[Special:ListUsers/sysop|מפעיל מערכת]].",
     "upload-too-many-redirects": "הכתובת מכילה הפניות רבות מדי",
-    "upload-unknown-size": "גודל בלתי ידוע",
     "upload-http-error": "התרחשה שגיאת HTTP‏: $1",
     "upload-copy-upload-invalid-domain": "העלאת קבצים משרת זה אינה אפשרית.",
     "backend-fail-stream": "לא הייתה אפשרות להזרים את הקובץ \"$1\".",
     "img-auth-streaming": "מבצע הזרמה של \"$1\".",
     "img-auth-public": "img_auth.php משמש להצגת קבצים מתוך אתר ויקי פרטי.\nאתר ויקי זה מוגדר כציבורי.\nכדי להשיג אבטחה מרבית, img_auth.php מבוטל.",
     "img-auth-noread": "למשתמש אין הרשאה לקרוא את \"$1\".",
-    "img-auth-bad-query-string": "לכתובת ה־URL יש מחרוזת פרמטרים בלתי תקינה.",
     "http-invalid-url": "כתובת URL בלתי תקינה: $1",
     "http-invalid-scheme": "כתובות URL מהסוג \"$1\" אינן נתמכות.",
     "http-request-error": "בקשת ה־HTTP נכשלה עקב שגיאה בלתי ידועה.",
     "filehist-dimensions": "ממדים",
     "filehist-filesize": "גודל הקובץ",
     "filehist-comment": "הערה",
-    "filehist-missing": "הקובץ חסר",
     "imagelinks": "שימוש בקובץ",
     "linkstoimage": "{{PLURAL:$1|הדף הבא משתמש|הדפים הבאים משתמשים}} בקובץ זה:",
     "linkstoimage-more": "יותר {{PLURAL:$1|מדף אחד מקשר|מ־$1 דפים מקשרים}} לקובץ זה.\nהרשימה הבאה מראה רק את {{PLURAL:$1|הדף הראשון שמקשר|$1 הדפים הראשונים שמקשרים}} לקובץ זה.\nניתן לצפות ב[[Special:WhatLinksHere/$2|רשימה המלאה]].",
     "listgrouprights-removegroup-self": "הסרת {{PLURAL:$2|הקבוצה|הקבוצות}} מהחשבון האישי: $1",
     "listgrouprights-addgroup-self-all": "הוספת כל הקבוצות לחשבון האישי",
     "listgrouprights-removegroup-self-all": "הסרת כל הקבוצות מהחשבון האישי",
+    "listgrouprights-namespaceprotection-header": "הגבלות על מרחבי שם",
+    "listgrouprights-namespaceprotection-namespace": "מרחב השם",
+    "listgrouprights-namespaceprotection-restrictedto": "ההרשאה או ההרשאות המאפשרות למשתמשים לערוך",
     "trackingcategories": "קטגוריות מעקב",
     "trackingcategories-summary": "דף זה כולל רשימה של קטגוריות מעקב, שנוצרות אוטומטית על־ידי תוכנת מדיה‏‏֫־ויקי. ניתן לשנות את שמותיהן על‏‏֫־ידי שינוי הודעות המערכת הרלוונטיות במרחב השם \"{{ns:8}}\".",
     "trackingcategories-msg": "קטגוריית מעקב",
     "trackingcategories-name": "שם ההודעה",
     "trackingcategories-desc": "הקריטריון להכללה בקטגוריה",
-    "noindex-category-desc": "×\94×\93×£ ×\9b×\95×\9c×\9c ×\90ת ×\9e×\99×\9cת ×\94קס×\9d <nowiki>__×\9c×\90\9c×\97×\99פ×\95ש__</nowiki> (×\95×\94×\95×\90 ×\91×\9eר×\97×\91 ×©×\9d ×©×\91×\95 ×\93×\92×\9c ×\9b×\96×\94 ×\9e×\95תר ×\9cש×\99×\9e×\95ש), ×\95×\9c×\9b×\9f ×\90×\99× ×\95 ×\9e×\90×\95× ×\93קס ×¢×\9câ\80\8fâ\80\8fÖ«Ö¾×\99×\93×\99 ×¨×\95×\91×\95×\98×\99×\9d.",
-    "index-category-desc": "הדף כולל את מילת הקסם <nowiki>__לחיפוש__</nowiki> (והוא במרחב שם שבו דגל כזה מותר לשימוש), ולכן הוא מאונדקס על‏‏֫־ידי רובוטים אף שכברירת מחדל הוא לא היה מאונדקס על ידם.",
+    "noindex-category-desc": "×\94×\93×£ ×\90×\99× ×\95 ×\9e×\90×\95× ×\93קס ×¢×\9câ\80\8fâ\80\8fÖ¾×\99×\93×\99 ×¨×\95×\91×\95×\98×\99×\9d ×\9b×\99×\95×\95×\9f ×©×\94×\95×\90 ×\9b×\95×\9c×\9c ×\90ת ×\9e×\99×\9cת ×\94קס×\9d <code><nowiki>__NOINDEX__</nowiki></code> ×\95×\94×\95×\90 ×\91×\9eר×\97×\91 ×©×\9d ×©×\91×\95 ×\93×\92×\9c ×\9b×\96×\94 ×\9e×\95תר ×\9cש×\99×\9e×\95ש.",
+    "index-category-desc": "הדף כולל את מילת הקסם <code><nowiki>__INDEX__</nowiki></code> (והוא במרחב שם שבו דגל כזה מותר לשימוש), ולכן הוא מאונדקס על‏‏֫־ידי רובוטים אף שכברירת מחדל הוא לא היה מאונדקס על ידם.",
     "post-expand-template-inclusion-category-desc": "לאחר הרחבת כל התבניות, גודל הדף גדול מ‏‏֫־<code>$wgMaxArticleSize</code>, ולכן מספר תבניות אינן מורחבות.",
     "post-expand-template-argument-category-desc": "לאחר הרחבת ארגומנט של תבנית (משהו בסוגריים משולשים, כגון <code>{{{Foo}}})</code>, הדף גדול מ‏‏֫‏‏֫־<code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "יותר מדי פונקציות מפענח יקרות לשימוש (כגון #קיים) מוכללות בדף. ראו [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
     "emailuser-title-notarget": "שליחת דוא\"ל למשתמש",
     "emailpage": "שליחת דואר למשתמש",
     "emailpagetext": "ניתן להשתמש בטופס כדי לשלוח הודעת דואר אלקטרוני {{GENDER:$1|למשתמש זה|למשתמשת זו}}.\nכתובת הדואר האלקטרוני שכתבתם ב[[Special:Preferences|העדפות המשתמש שלכם]] תופיע ככתובת שההודעה נשלחה ממנה, כדי לאפשר תגובה ישירה.",
-    "usermailererror": "אובייקט הדואר החזיר שגיאה:",
     "defemailsubject": "דוא\"ל מ{{grammar:תחילית|{{SITENAME}}}} מהמשתמש \"$1\"",
     "usermaildisabled": "שליחת דוא\"ל למשתמשים מבוטלת",
     "usermaildisabledtext": "אינכם רשאים לשלוח דואר אלקטרוני למשתמשים אחרים באתר זה",
     "noemailtitle": "אין כתובת דואר אלקטרוני",
     "noemailtext": "משתמש זה לא הזין כתובת דואר אלקטרוני תקינה.",
-    "nowikiemailtitle": "שליחת דוא\"ל אינה אפשרית",
     "nowikiemailtext": "משתמש זה בחר שלא לקבל דואר אלקטרוני ממשתמשים אחרים.",
     "emailnotarget": "שם המשתמש של הנמען לא קיים או בלתי תקין.",
     "emailtarget": "הקלידו את שם המשתמש של הנמען",
     "unwatchthispage": "הפסקת המעקב אחרי דף זה",
     "notanarticle": "זהו אינו דף תוכן",
     "notvisiblerev": "הגרסה האחרונה שנוצרה על־ידי משתמש אחר נמחקה",
-    "watchlist-details": "ברשימת המעקב יש {{PLURAL:$1|דף אחד|$1 דפים}} (לא כולל דפי שיחה).",
+    "watchlist-details": "ברשימת המעקב יש {{PLURAL:$1|דף אחד|$1 דפים}}, כאשר דפי השיחה אינם נספרים בנפרד.",
     "wlheader-enotif": "הודעות דוא\"ל מאופשרות.",
     "wlheader-showupdated": "דפים שהשתנו מאז ביקורך האחרון בהם מוצגים ב'''הדגשה'''.",
     "watchmethod-recent": "בודק את הדפים שברשימת המעקב לשינויים אחרונים.",
     "watching": "בהוספה לרשימת המעקב…",
     "unwatching": "בהסרה מרשימת המעקב…",
     "watcherrortext": "אירעה שגיאה בעת שינוי הגדרות רשימת המעקב של \"$1\".",
-    "enotif_mailer": "הודעות {{SITENAME}}",
     "enotif_reset": "סימון כל הדפים כאילו נצפו",
     "enotif_impersonal_salutation": "משתמש של {{SITENAME}}",
     "enotif_subject_deleted": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נמחק על ידי $2",
     "excontent": "התוכן היה: \"$1\"",
     "excontentauthor": "התוכן היה: \"$1\" ({{GENDER:$2|והתורם היחיד היה|והתורמת היחידה הייתה}} \"[[Special:Contributions/$2|$2]]\")",
     "exbeforeblank": "התוכן לפני שרוקן היה: \"$1\"",
-    "exblank": "הדף היה ריק",
     "delete-confirm": "מחיקת $1",
     "delete-legend": "מחיקה",
     "historywarning": "'''אזהרה:''' לדף שאתם עומדים למחוק יש היסטוריית שינויים של {{PLURAL:$1|גרסה אחת|$1 גרסאות}}:",
     "importunknownsource": "סוג ייבוא בלתי ידוע",
     "importcantopen": "פתיחת קובץ הייבוא נכשלה",
     "importbadinterwiki": "קישור בינוויקי שגוי",
-    "importnotext": "ריק או חסר טקסט",
     "importsuccess": "הייבוא הושלם בהצלחה!",
-    "importhistoryconflict": "ישנה התנגשות עם ההיסטוריה הקיימת של הדף (ייתכן שהדף יובא בעבר)",
     "importnosources": "אין מקורות לייבוא בין־אתרי, וייבוא ישיר של דף עם היסטוריה אינו מאופשר כעת.",
     "importnofile": "לא הועלה קובץ ייבוא.",
     "importuploaderrorsize": "העלאת קובץ הייבוא נכשלה. הקובץ היה גדול יותר מגודל ההעלאה המותר.",
index cc674d7..af9f1fd 100644 (file)
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|वार्ता]]) के लिये खाता निर्मित कर दिया गया है।",
     "createaccount-title": "{{SITENAME}} के लिये खाता बनाएँ",
     "createaccount-text": "आपके ई-मेल पते के लिये किसी ने {{SITENAME}} ($4) पर \"$2\" सदस्य नाम से \"$3\" कूटशब्द (पासवर्ड) सहित खाता खोला है।\nआपको लॉग इन कर के अपना कूटशब्द (पासवर्ड) तुरंत बदल लेना चाहिये।\n\nयदि यह खाता गलती से खोला गया है, तो आप इस मेसेज को नज़रंदाज़ कर सकते हैं।",
-    "usernamehasherror": "सदस्यनाम में हैश कैरैक्टर वर्जित हैं।",
     "login-throttled": "आपने हाल ही में कई बार लॉग इन करने के प्रयास किये हैं।\nपुनः प्रयास करने से पहले कृपया $1 प्रतीक्षा करें।",
     "login-abort-generic": "आपका सत्रारम्भ असफल रहा - निष्फलित",
     "loginlanguagelabel": "भाषा: $1",
     "prefs-skin": "त्वचा",
     "skin-preview": "झलक",
     "datedefault": "खा़स पसंद नहीं",
-    "prefs-datetime": "दिनांक तथा समय",
     "prefs-labs": "लैब विशेषताएँ",
     "prefs-user-pages": "सदस्य पृष्ठ",
     "prefs-personal": "सदस्य व्यक्तिरेखा",
     "upload-permitted": "अनुमतित फ़ाइल प्रकार: $1।",
     "upload-preferred": "पसंदीदा फ़ाइल प्रकार: $1।",
     "upload-prohibited": "प्रतिबंधिक फ़ाइल प्रकार: $1।",
-    "uploadlog": "अपलोड लॉग",
     "uploadlogpage": "अपलोड लॉग",
     "uploadlogpagetext": "नीचे हाल ही में अपलोड की गई फ़ाइलों की सूची है।\nकृपया और द्रैश्यिक विवरण के लिए [[Special:NewFiles|नई फ़ाइलों की गैलरी]] देखें।",
     "filename": "फ़ाइल का नाम",
     "filereuploadsummary": "फ़ाइल में बदलाव:",
     "filestatus": "कॉपीराइट स्थिति:",
     "filesource": "स्रोत:",
-    "uploadedfiles": "अपलोड की हुई फ़ाइलें",
     "ignorewarning": "चेतावनियाँ नज़र‍ंदाज़ करें और फ़ाइल अपलोड करें",
     "ignorewarnings": "सभी चेतावनियों को नज़रंदाज़ करें",
     "minlength1": "फ़ाइल का नाम कम-से-कम एक अक्षर का होना चाहिये।",
     "overwroteimage": "\"[[$1]]\" का नया अवतरण अपलोड किया",
     "uploaddisabled": "अपलोड प्रतिबंधित हैं।",
     "copyuploaddisabled": "यू॰आर॰एल द्वारा अपलोड अक्षम हैं।",
-    "uploadfromurl-queued": "आपका अपलोड पंक्तिबद्ध किया गया।",
     "uploaddisabledtext": "फ़ाइल अपलोड अक्षम हैं।",
     "php-uploaddisabledtext": "पी॰एच॰पी में फ़ाइल अपलोड बंद हैं।\nकृपया file_uploads जमाव की जाँच करें।",
     "uploadscripted": "इस फ़ाइल में एच॰टी॰एम॰एल या स्क्रिप्ट कोड है, जो वेब ब्राउज़र द्वारा गलत पढ़ा जा सकता है।",
     "upload-misc-error": "अज्ञात अपलोड त्रुटि",
     "upload-misc-error-text": "अपलोड के दौरान कोई अज्ञात त्रुटि आई।\nकृपया यह पुष्टि कर लें कि यू॰आर॰एल वैध है और उस तक पहुँचा जा सकता है, उसके बाद फिर कोशिश करें।\nअगर फिर भी समस्या आती है तो किसी [[Special:ListUsers/sysop|प्रबंधक]] से संपर्क करें।",
     "upload-too-many-redirects": "इस यू॰आर॰एल में अत्यधिक पुनर्निर्देशन हैं",
-    "upload-unknown-size": "अज्ञात आकार",
     "upload-http-error": "एक एच॰टी॰टी॰पी त्रुटि आई: $1",
     "upload-copy-upload-invalid-domain": "कॉपी अपलोड इस डोमेन से उपलब्ध नहीं हैं।",
     "backend-fail-stream": "फ़ाइल $1 स्ट्रीम नहीं हो पाई।",
     "img-auth-streaming": "\"$1\" को स्ट्रीम किया जा रहा है।",
     "img-auth-public": "img_auth.php निजी विकि से फ़ाइलें प्रदान करने का काम करता है।\nयह विकि सार्वजनिक विकि है।\nउचित सुरक्षा के लिए img_auth.php को अक्षम है।",
     "img-auth-noread": "प्रयोक्ता को \"$1\" पढ़ने का अधिकार नहीं है।",
-    "img-auth-bad-query-string": "यू॰आर॰एल में अवैध क्वेरी स्ट्रिंग है।",
     "http-invalid-url": "अमान्य यू॰आर॰एल: $1",
     "http-invalid-scheme": "\"$1\" से शुरू होने वाले यू॰आर॰एल स्वीकार्य नहीं हैं।",
     "http-request-error": "एच॰टी॰टी॰पी अनुरोध अज्ञात त्रुटि के कारण असफल रहा।",
     "filehist-dimensions": "आकार",
     "filehist-filesize": "फ़ाईल का आकार (बाइट)",
     "filehist-comment": "टिप्पणी",
-    "filehist-missing": "फ़ाइल मौजूद नहीं है",
     "imagelinks": "फ़ाइल का उपयोग",
     "linkstoimage": "निम्नोक्त {{PLURAL:$1|पृष्ठ|$1 पन्नों}} में इस फ़ाइल की कड़ियाँ हैं:",
     "linkstoimage-more": "{{PLURAL:$1|$1}} से अधिक पृष्ठ इस फ़ाइल से जुड़ते हैं।\nनिम्नोक्त सूची फ़ाइल से जुड़ने वाले {{PLURAL:$1|$1 पृष्ठ|$1 पृष्ठ}} दिखाती है।\n[[Special:WhatLinksHere/$2|पूरी सूची]] भी उपलब्ध है।",
     "emailuser-title-notarget": "सदस्य को ई-मेल करें",
     "emailpage": "सदस्य को ई-मेल करें",
     "emailpagetext": "नीचे दिए पर्चे को जरिए आप इस {{GENDER:$1|सदस्य}} को ई-मेल भेज सकते हैं।\nआपने जो पता [[Special:Preferences|अपनी पसंद]] में दिया था वह इस ई-मेल के \"भेजने वाले\" के तौर पर आएगा, अतः प्राप्तकर्ता आपको सीधे जवाब दे सकेंगे।",
-    "usermailererror": "मेल ऑब्जेक्ट ने त्रुटि दी:",
     "defemailsubject": "{{SITENAME}} ई-मेल \"$1\" सदस्य से",
     "usermaildisabled": "सदस्य ई-मेल अक्षम किया गया",
     "usermaildisabledtext": "आप इस विकि पर ई-मेल अन्य सदस्यों को ई-मेल नहीं भेज सकते हैं",
     "noemailtitle": "कोई ई-मेल एड्रेस नहीं",
     "noemailtext": "इस सदस्य ने वैध ई-मेल पता नहीं दिया है।",
-    "nowikiemailtitle": "ई-मेल की अनुमति नहीं है",
     "nowikiemailtext": "इस सदस्य ने अन्य सदस्यों से ई-मेल न प्राप्त करने का फ़ैसला लिया हुआ है।",
     "emailnotarget": "प्राप्तकर्ता के लिए अस्तित्वहीन या अमान्य सदस्यनाम।",
     "emailtarget": "प्राप्तकर्ता का सदस्यनाम भरें",
     "watching": "ध्यान दे रहे हैं...",
     "unwatching": "ध्यान हटा रहे हैं...",
     "watcherrortext": "\"$1\" के लिये आपकी ध्यानसूची सेटिंग बदलते समय त्रुटि हुई।",
-    "enotif_mailer": "{{SITENAME}} सूचना इ-मेल कर्ता",
     "enotif_reset": "सभी पृष्ठ देखे हुए दर्शाएँ",
     "enotif_impersonal_salutation": "{{SITENAME}} सदस्य",
     "enotif_subject_deleted": "{{SITENAME}} पृष्ठ $1 को {{gender:$2|$2}} ने हटा दिया है",
     "excontent": "पाठ था: '$1'",
     "excontentauthor": "पाठ था: '$1' (और सिर्फ '[[Special:Contributions/$2|$2]]' का योगदान था।)",
     "exbeforeblank": "खाली करने से पहले पाठ था: '$1'",
-    "exblank": "पृष्ठ खाली था",
     "delete-confirm": "\"$1\" को हटाएँ",
     "delete-legend": "हटाएँ",
     "historywarning": "''' चेतावनी: ''' आप जो पृष्ठ हटाने जा रहे हैं उसके इतिहास में लगभग $1 {{PLURAL:$1|अवतरण}} हैं:",
     "importunknownsource": "अज्ञात आयात स्रोत प्रकार",
     "importcantopen": "आयात फ़ाईल खोल नहीं पायें",
     "importbadinterwiki": "अवैध अन्तरविकि कड़ी",
-    "importnotext": "खाली अथवा पाठ नहीं",
     "importsuccess": "आयात सफल हुआ!",
-    "importhistoryconflict": "उपलब्ध इतिहास अवतरण आपसमें विरोधी हैं (यह पृष्ठ पहलेसे आयात कर दिया गया होनेकी आशंका हैं)",
     "importnosources": "कोई भी ट्रान्सविकी आयात स्रोत मिले नहीं और प्रत्यक्ष इतिहास अपलोड बन्द कर दिए गए हैं।",
     "importnofile": "कोईभी आयात फ़ाईल अपलोड नहीं हुई हैं।",
     "importuploaderrorsize": "आयात फ़ाईल अपलोड हुई नहीं। इसका आकार अनुमतिसे ज्यादा हैं।",
index 19e360f..ea7a0e1 100644 (file)
     "accountcreatedtext": "Suradnički je račun [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) stvoren.",
     "createaccount-title": "Otvaranje suradničkog računa za {{SITENAME}}",
     "createaccount-text": "Netko je stvorio suradnički račun s Vašom adresom elektronske pošte na {{SITENAME}} ($4) nazvan \"$2\", s lozinkom \"$3\". Trebali biste se prijaviti i odmah promijeniti lozinku.\n\nMožete zanemariti ovu poruku ako je suradnički račun stvoren nenamjerno.",
-    "usernamehasherror": "Suradničko ime ne može sadržavati znakove #",
     "login-throttled": "Nedavno ste se previše puta pokušali prijaviti.\nMolimo Vas pričekajte $1 prije nego što pokušate ponovno.",
     "login-abort-generic": "Vaša prijava bila je neuspješna - Prekinuto",
     "loginlanguagelabel": "Jezik: $1",
     "prefs-skin": "Izgled",
     "skin-preview": "Pregled",
     "datedefault": "Nemoj postaviti",
-    "prefs-datetime": "Datum i vrijeme",
     "prefs-labs": "Labs mogućnosti",
     "prefs-user-pages": "Suradničke stranice",
     "prefs-personal": "Podaci o suradniku",
     "upload-permitted": "Dopušteni tipovi datoteka: $1.",
     "upload-preferred": "Poželjni tipovi datoteka: $1.",
     "upload-prohibited": "Zabranjeni tipovi datoteka: $1.",
-    "uploadlog": "evidencija postavljanja",
     "uploadlogpage": "Evidencija_postavljanja",
     "uploadlogpagetext": "Dolje je popis nedavno postavljenih slika.",
     "filename": "Ime datoteke",
     "filereuploadsummary": "Izmjene datoteke:",
     "filestatus": "Status autorskih prava:",
     "filesource": "Izvor:",
-    "uploadedfiles": "Postavljene datoteke",
     "ignorewarning": "Zanemari upozorenja i snimi datoteku.",
     "ignorewarnings": "Zanemari sva upozorenja",
     "minlength1": "Ime datoteke mora imati barem jedno slovo.",
     "overwroteimage": "postavljena nova inačica od \"[[$1]]\"",
     "uploaddisabled": "Postavljanje je onemogućeno",
     "copyuploaddisabled": "Postavljanje URL-om onemogućeno.",
-    "uploadfromurl-queued": "Vaše postavljanje je na čekanju.",
     "uploaddisabledtext": "Postavljanje datoteka je onemogućeno.",
     "php-uploaddisabledtext": "Postavljanja datoteka su onemogućena u PHP-u. Molimo provjerite postavke za postavljanje datoteka.",
     "uploadscripted": "Ova datoteka sadrži HTML ili skriptu, što može dovesti do grešaka u web pregledniku.",
     "upload-misc-error": "Nepoznata pogrješka pri snimanju",
     "upload-misc-error-text": "Dogodila se nepoznata pogrješka pri snimanju.\nProvjerite valjanost i dostupnost URL-a i pokušajte opet.\nAko se problem ponovi, javite to [[Special:ListUsers/sysop|administratoru]].",
     "upload-too-many-redirects": "URL je sadržavao previše preusmjeravanja",
-    "upload-unknown-size": "Nepoznata veličina",
     "upload-http-error": "HTTP-pogrješka: $1",
     "upload-copy-upload-invalid-domain": "Kopije postavljenih datoteka nisu dostupne s ove domene.",
     "backend-fail-stream": "Ne mogu prikazati datoteku $1.",
     "img-auth-streaming": "Tok \"$1\".",
     "img-auth-public": "Funkcija img_auth.php služi za izlaz datoteka s privatnih wikija.\nOvaj wiki je postavljena kao javni wiki.\nZa optimalnu sigurnost, img_auth.php je onemogućena.",
     "img-auth-noread": "Suradnik nema pristup za čitanje \"$1\".",
-    "img-auth-bad-query-string": "URL ima nevažeći izraz upita.",
     "http-invalid-url": "Nevaljan URL: $1",
     "http-invalid-scheme": "URL-ovi s prefiksom \"$1\" nisu podržani.",
     "http-request-error": "HTTP zahtjev nije uspio zbog nepoznate pogreške.",
     "filehist-dimensions": "Dimenzije",
     "filehist-filesize": "Veličina datoteke",
     "filehist-comment": "Komentar",
-    "filehist-missing": "Nedostaje datoteka",
     "imagelinks": "Upotreba datoteke",
     "linkstoimage": "{{PLURAL:$1|Sljedeća stranica povezuje|$1 sljedećih stranice povezuju}} na ovu datoteku:",
     "linkstoimage-more": "Više od $1 {{PLURAL:$1|stranice povezuje|stranica povezuje}} na ovu datoteku.\nSljedeći popis prikazuje {{PLURAL:$1|stranice koje|prvih $1 stranica koje}} vode na ovu datoteku.\n[[Special:WhatLinksHere/$2|Ovdje se nalazi]] potpuni popis.",
     "emailuser-title-notarget": "Pošalji e-poštu suradniku",
     "emailpage": "Pošalji e-poštu suradniku",
     "emailpagetext": "Možete koristiti ovaj obrazac za slanje elektroničke pošte {{GENDER:$1|suradniku|suradnici}}.\nE-mail adresa iz Vaših [[Special:Preferences|postavki]] nalazit će se u \"From\" polju poruke i primatelj će Vam moći izravno odgovoriti.",
-    "usermailererror": "Sustav pošte javio je pogrešku:",
     "defemailsubject": "{{SITENAME}} e-mail od suradnika \"$1\"",
     "usermaildisabled": "Suradnička e-pošta je onemogućena",
     "usermaildisabledtext": "Ne možete slati e-poštu drugim suradnicima na ovom wikiju",
     "noemailtitle": "Nema adrese primaoca",
     "noemailtext": "Ovaj suradnik nije odredio valjanu e-mail adresu.",
-    "nowikiemailtitle": "E-mail nije dozvoljen",
     "nowikiemailtext": "Ovaj suradnik je odlučio ne primati e-mail od drugih suradnika.",
     "emailnotarget": "Nepostojeće ili nevažeće suradničko ime za primatelja.",
     "emailtarget": "Unesite suradničko ime primatelja",
     "watching": "Pratim...",
     "unwatching": "Prestajem pratiti...",
     "watcherrortext": "Došlo je do pogreške kod izmjene Vašeg popisa praćenja za \"$1\".",
-    "enotif_mailer": "{{SITENAME}} - izvješća o promjenama",
     "enotif_reset": "Označi sve stranice kao već posjećene",
     "enotif_impersonal_salutation": "{{SITENAME}} suradnik",
     "enotif_subject_deleted": "{{gender:$2|Suradnik|Suradnica}} $2 {{gender:$2|je obrisao|je obrisala}} stranicu $1 projekta {{SITENAME}}",
     "excontent": "sadržaj je bio: '$1'",
     "excontentauthor": "sadržaj je bio: '$1' (a jedini urednik '$2')",
     "exbeforeblank": "sadržaj prije brisanja je bio: '$1'",
-    "exblank": "stranica je bila prazna",
     "delete-confirm": "Obriši \"$1\"",
     "delete-legend": "Izbriši",
     "historywarning": "'''Upozorenje''':  Stranica koju želite obrisati ima starije izmjene s približno $1 {{PLURAL:$1|inačicom|inačice|inačica}}:",
     "importunknownsource": "Nepoznat tip stranica za uvoz",
     "importcantopen": "Ne mogu otvoriti datoteku za uvoz",
     "importbadinterwiki": "Neispravna međuwiki poveznica",
-    "importnotext": "Prazno ili bez teksta",
     "importsuccess": "Uvoz je uspio!",
-    "importhistoryconflict": "Došlo je do konflikta među prijašnjim inačicama (ova je stranica možda već uvezena)",
     "importnosources": "Nije unesen nijedan izvor za transwiki uvoz i neposredno postavljanje povijesti je onemogućeno.",
     "importnofile": "Nije postavljena uvozna datoteka.",
     "importuploaderrorsize": "Uvoz datoteke nije uspio. Datoteka je veća od dopuštene veličine.",
index 2882461..a9315f6 100644 (file)
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|vita]]) felhasználói fiókja sikeresen létrejött.",
     "createaccount-title": "Új {{SITENAME}}-azonosító létrehozása",
     "createaccount-text": "Valaki létrehozott számodra egy \"$2\" nevű {{SITENAME}}-azonosítót ($4).\nA hozzá tartozó jelszó \"$3\", melyet a bejelentkezés után minél előbb változtass meg.\n\nHa nem kértél új azonosítót, és tévedésből kaptad ezt a levelet, hagyd figyelmen kívül.",
-    "usernamehasherror": "A felhasználónév nem tartalmazhat hash karaktereket",
     "login-throttled": "Túl sok hibás bejelentkezés.\nVárj $1, mielőtt újra próbálkozol.",
     "login-abort-generic": "A bejelentkezés sikertelen – megszakítva",
     "loginlanguagelabel": "Nyelv: $1",
     "prefs-skin": "Felület",
     "skin-preview": "előnézet",
     "datedefault": "Nincs beállítás",
-    "prefs-datetime": "Dátum és idő",
     "prefs-labs": "Kísérleti funkciók",
     "prefs-user-pages": "Felhasználói lapok",
     "prefs-personal": "Felhasználói adatok",
     "upload-permitted": "Engedélyezett fájltípusok: $1.",
     "upload-preferred": "Támogatott fájltípusok: $1.",
     "upload-prohibited": "Tiltott fájltípusok: $1.",
-    "uploadlog": "feltöltési napló",
     "uploadlogpage": "Feltöltési napló",
     "uploadlogpagetext": "Lentebb látható a legutóbbi felküldések listája.\nLásd még az [[Special:NewFiles|új fáljlok galériáját]]",
     "filename": "Fájlnév",
     "filereuploadsummary": "Változtatások:",
     "filestatus": "Szerzői jogi állapot:",
     "filesource": "Forrás:",
-    "uploadedfiles": "Feltöltött fájlok",
     "ignorewarning": "Biztosan így akarom feltölteni",
     "ignorewarnings": "Hagyd figyelmen kívül a figyelmeztetéseket",
     "minlength1": "A fájlnévnek legalább egy betűből kell állnia.",
     "overwroteimage": "feltöltötte a(z) „[[$1]]” fájl új változatát",
     "uploaddisabled": "Feltöltések kikapcsolva",
     "copyuploaddisabled": "A feltöltés URL alapján le van tiltva.",
-    "uploadfromurl-queued": "A feltöltésed a várakozási sorba került.",
     "uploaddisabledtext": "A fájlfeltöltés nem engedélyezett.",
     "php-uploaddisabledtext": "A PHP-s fájlfeltöltés le van tiltva. Ellenőrizd a file_uploads beállítást.",
     "uploadscripted": "Ez a fájl olyan HTML- vagy parancsfájlkódot tartalmaz, melyet tévedésből egy webböngésző esetleg értelmezni próbálhatna.",
     "upload-misc-error": "Ismeretlen feltöltési hiba",
     "upload-misc-error-text": "A feltöltés során ismeretlen hiba történt.  Kérjük, ellenőrizd, hogy az URL érvényes-e és hozzáférhető-e, majd próbáld újra.  Ha a probléma továbbra is fennáll, akkor lépj kapcsolatba az [[Special:ListUsers/sysop|adminisztrátorral]].",
     "upload-too-many-redirects": "Az URL túl sokszor volt átirányítva",
-    "upload-unknown-size": "Ismeretlen méretű",
     "upload-http-error": "HTTP-hiba történt: $1",
     "upload-copy-upload-invalid-domain": "Másolás nem engedélyezett ebből a tartományból.",
     "backend-fail-stream": "Nem sikerült sugározni ezt a fájlt: $1.",
     "img-auth-streaming": "„$1” továbbítása.",
     "img-auth-public": "Az img_auth.php funkciója az, hogy fájlokat közvetítsen egy privát wikiből.\nEz a wiki publikus, így a biztonság miatt az img_auth.php ki van kapcsolva.",
     "img-auth-noread": "A szerkesztő nem jogosult a(z) „$1” olvasására.",
-    "img-auth-bad-query-string": "Az URL-cím érvénytelen lekérdezést tartalmaz.",
     "http-invalid-url": "Érvénytelen URL-cím: $1",
     "http-invalid-scheme": "A(z) „$1” sémájú URL-ek nem támogatottak.",
     "http-request-error": "A HTTP-kérés nem sikerült egy ismeretlen hiba miatt.",
     "filehist-dimensions": "Felbontás",
     "filehist-filesize": "Fájlméret",
     "filehist-comment": "Megjegyzés",
-    "filehist-missing": "A fájl hiányzik",
     "imagelinks": "Fájlhasználat",
     "linkstoimage": "Az alábbi {{PLURAL:$1|lap hivatkozik|lapok hivatkoznak}} erre a fájlra:",
     "linkstoimage-more": "Több, mint {{PLURAL:$1|egy|$1}} oldal hivatkozik erre a fájlra.\nA következő lista csak az {{PLURAL:$1|első linket|első $1 linket}} tartalmazza.\nA teljes lista [[Special:WhatLinksHere/$2|ezen a lapon]] található meg.",
     "emailuser-title-notarget": "E-mail küldése a felhasználónak",
     "emailpage": "E-mail küldése",
     "emailpagetext": "{{GENDER:$1|felhasználó}}nevű szerkesztő e-mail-címére ezen űrlap kitöltésével üzenetet tudsz küldeni.\nFeladóként a [[Special:Preferences|beállításaid]]nál megadott e-mail-címed fog szerepelni, így a címzett közvetlenül tud majd válaszolni neked.",
-    "usermailererror": "A levélküldő objektum hibával tért vissza:",
     "defemailsubject": "{{SITENAME}} e-mail a következő felhasználótól: „$1”",
     "usermaildisabled": "Email fogadás letiltva",
     "usermaildisabledtext": "Nem küldhetsz emailt más felhasználóknak ezen a wikin",
     "noemailtitle": "Nincs e-mail cím",
     "noemailtext": "Ez a szerkesztő nem adott meg érvényes e-mail címet.",
-    "nowikiemailtitle": "Nem küldhető e-mail üzenet",
     "nowikiemailtext": "Ez a szerkesztő nem kíván másoktól e-mail üzeneteket fogadni.",
     "emailnotarget": "A címzett nem létezik vagy a felhasználónév érvénytelen.",
     "emailtarget": "Írd be címzett felhasználónevét",
     "watching": "Figyelés...",
     "unwatching": "Figyelés befejezése...",
     "watcherrortext": "Hiba történt a(z) „$1” lapra vonatkozó figyelőlista-beállítások módosítása közben.",
-    "enotif_mailer": "{{SITENAME}} Értesítéspostázó",
     "enotif_reset": "Az összes lap megjelölése felkeresettként",
     "enotif_impersonal_salutation": "{{SITENAME}} felhasználó",
     "enotif_subject_deleted": "$2 törölte a $1 {{SITENAME}} oldalt.",
     "excontent": "a lap tartalma: „$1”",
     "excontentauthor": "a lap tartalma: „$1” (és csak „[[Special:Contributions/$2|$2]]” szerkesztette)",
     "exbeforeblank": "az eltávolítás előtti tartalom: „$1”",
-    "exblank": "a lap üres volt",
     "delete-confirm": "$1 törlése",
     "delete-legend": "Törlés",
     "historywarning": "'''Figyelem:''' a lapnak, amit törölni készülsz, körülbelül $1 változattal rendelkező laptörténete van:",
     "importunknownsource": "Ismeretlen import forrástípus",
     "importcantopen": "Nem nyitható meg az importfájl",
     "importbadinterwiki": "Rossz wikiközi hivatkozás",
-    "importnotext": "Üres, vagy nincs szöveg",
     "importsuccess": "Az importálás befejeződött!",
-    "importhistoryconflict": "Ütköző előzményváltozat létezik (lehet, hogy már importálták ezt a lapot)",
     "importnosources": "Nincsenek transzwikiimport-források definiálva, a közvetlen laptörténet-felküldés pedig nem megengedett.",
     "importnofile": "Nem került importfájl feltöltésre.",
     "importuploaderrorsize": "Az importálandó fájl feltöltése nem sikerült, mert nagyobb, mint a megengedett feltöltési méret.",
index a19abdd..20c78f0 100644 (file)
     "accountcreatedtext": "Akun pengguna untuk [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|bicara]]) telah dibuat.",
     "createaccount-title": "Pembuatan akun untuk {{SITENAME}}",
     "createaccount-text": "Seseorang telah membuat sebuah akun untuk alamat surel Anda di {{SITENAME}} ($4) dengan nama \"$2\" dan kata sandi \"$3\". Anda dianjurkan untuk masuk log dan mengganti kata sandi Anda sekarang.\n\nAnda dapat mengabaikan pesan ini jika akun ini dibuat karena suatu kesalahan.",
-    "usernamehasherror": "Nama pengguna tidak bisa mengandung tanda pagar",
     "login-throttled": "Anda sudah terlalu sering mencoba masuk log.\nSilakan menunggu $1 sebelum mencoba lagi.",
     "login-abort-generic": "Proses masuk Anda tidak berhasil - Dibatalkan",
     "loginlanguagelabel": "Bahasa: $1",
     "prefs-skin": "Kulit",
     "skin-preview": "Pratayang",
     "datedefault": "Tak ada preferensi",
-    "prefs-datetime": "Tanggal dan waktu",
     "prefs-labs": "Fitur Labs",
     "prefs-user-pages": "Halaman pengguna",
     "prefs-personal": "Profil",
     "upload-permitted": "Jenis berkas yang diperbolehkan: $1.",
     "upload-preferred": "Jenis berkas yang disarankan: $1.",
     "upload-prohibited": "Jenis berkas yang dilarang: $1.",
-    "uploadlog": "log pengunggahan",
     "uploadlogpage": "Log pengunggahan",
     "uploadlogpagetext": "Berikut adalah daftar unggahan berkas terbaru. \nLihat [[Special:NewFiles|galeri berkas baru]] untuk tampilan visual.",
     "filename": "Nama berkas",
     "filereuploadsummary": "Perubahan berkas:",
     "filestatus": "Status hak cipta:",
     "filesource": "Sumber:",
-    "uploadedfiles": "Berkas yang telah dimuat",
     "ignorewarning": "Abaikan peringatan dan langsung simpan berkas.",
     "ignorewarnings": "Abaikan peringatan apa pun",
     "minlength1": "Nama berkas paling tidak harus terdiri dari satu huruf.",
     "overwroteimage": "memuat versi baru dari \"[[$1]]\"",
     "uploaddisabled": "Maaf, fasilitas pemuatan dimatikan.",
     "copyuploaddisabled": "Pengunggahan dengan URL dimatikan.",
-    "uploadfromurl-queued": "Pengunggahan Anda telah terantri.",
     "uploaddisabledtext": "Pemuatan berkas tidak diizinkan.",
     "php-uploaddisabledtext": "Pemuatan berkas dimatikan di PHP. Silakan cek pengaturan file_uploads.",
     "uploadscripted": "Berkas ini mengandung HTML atau kode yang dapat diinterpretasikan dengan keliru oleh penjelajah web.",
     "upload-misc-error": "Kesalahan pemuatan yang tak dikenal",
     "upload-misc-error-text": "Suatu kesalahan yang tak dikenal terjadi sewaktu pemuatan. Harap pastikan bahwa URL tersebut valid dan dapat diakses dan silakan coba lagi. Jika masalah ini tetap terjadi, kontak administrator sistem.",
     "upload-too-many-redirects": "URL mengandung terlalu banyak pengalihan",
-    "upload-unknown-size": "Ukuran tidak diketahui",
     "upload-http-error": "Kesalahan HTTP terjadi: $1",
     "upload-copy-upload-invalid-domain": "Unggahan salinan tidak tersedia dari domain ini.",
     "backend-fail-stream": "Tidak bisa mengalikan berkas $1.",
     "img-auth-streaming": "Streaming \"$1\".",
     "img-auth-public": "Fungsi dari img_auth.php adalah mengeluarkan berkas dari wiki pribadi.\nWiki ini di atur sebagai wiki umum.\nUntuk pilihan keamanan, img_auth.php dinonaktifkan.",
     "img-auth-noread": "Pengguna tidak memiliki akses untuk membaca \"$1\".",
-    "img-auth-bad-query-string": "URL memiliki string kueri yang tidak sah.",
     "http-invalid-url": "URL tidak sah: $1",
     "http-invalid-scheme": "URL dengan skema \"$1\" tidak didukung.",
     "http-request-error": "Permintaan HTTP gagal karena kesalahan yang tidak diketahui.",
     "filehist-dimensions": "Dimensi",
     "filehist-filesize": "Besar berkas",
     "filehist-comment": "Komentar",
-    "filehist-missing": "Berkas tidak ditemukan",
     "imagelinks": "Pranala berkas",
     "linkstoimage": "{{PLURAL:$1||}}$1 halaman berikut memiliki pranala ke berkas ini:",
     "linkstoimage-more": "Lebih dari $1 {{PLURAL:$1|halaman|halaman}} memiliki pranala ke berkas ini.\nDaftar berikut menampilkan {{PLURAL:$1|halaman dengan pranala langsung|$1 halaman dengan pranala langsung}} ke berkas ini.\nJuga tersedia [[Special:WhatLinksHere/$2|daftar selengkapnya]].",
     "emailuser-title-notarget": "Kirim surel",
     "emailpage": "Kirim surel ke pengguna ini",
     "emailpagetext": "Anda dapat menggunakan formulir di bawah ini untuk mengirimkan surel ke {{GENDER:$1|pengguna}} ini.\nAlamat surel yang Anda masukkan di [[Special:Preferences|preferensi akun Anda]] akan muncul sebagai alamat \"Dari\" dalam surel tersebut, sehingga penerima dapat langsung membalas kepada Anda.",
-    "usermailererror": "Kesalahan objek surat:",
     "defemailsubject": "Surel {{SITENAME}} dari pengguna \"$1\"",
     "usermaildisabled": "Surel pengguna dinonaktifkan",
     "usermaildisabledtext": "Anda tidak dapat mengirim surel pada pengguna lain di wiki ini",
     "noemailtitle": "Tidak ada alamat surel",
     "noemailtext": "Pengguna ini tidak memberikan suatu alamat surel yang valid.",
-    "nowikiemailtitle": "Surel tak diizinkan",
     "nowikiemailtext": "Pengguna ini telah memilih untuk tidak menerima surel dari pengguna lain.",
     "emailnotarget": "Nama pengguna penerima tidak ada atau tidak sah.",
     "emailtarget": "Masukkan nama pengguna penerima",
     "watching": "Memantau...",
     "unwatching": "Menghilangkan pemantauan...",
     "watcherrortext": "Terjadi kesalahan saat mengubah preferensi daftar pantauan Anda untuk \" $1 \".",
-    "enotif_mailer": "Pengirim Notifikasi {{SITENAME}}",
     "enotif_reset": "Tandai semua halaman sebagai telah dikunjungi",
     "enotif_impersonal_salutation": "Pengguna {{SITENAME}}",
     "enotif_subject_deleted": "Halaman $1 di {{SITENAME}} telah dihapus oleh {{gender:$2|$2}}",
     "excontent": "isi sebelumnya: '$1'",
     "excontentauthor": "isinya hanya berupa: '$1' (dan satu-satunya penyumbang adalah '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "isi sebelum dikosongkan: '$1'",
-    "exblank": "halaman kosong",
     "delete-confirm": "Hapus \"$1\"",
     "delete-legend": "Hapus",
     "historywarning": "'''Peringatan:''' Halaman yang akan Anda hapus mempunyai sejarah dengan $1 {{PLURAL:$1|revisi|revisi}}:",
     "importunknownsource": "Sumber impor tidak dikenali",
     "importcantopen": "Berkas impor tidak dapat dibuka",
     "importbadinterwiki": "Pranala interwiki rusak",
-    "importnotext": "Kosong atau tidak ada teks",
     "importsuccess": "Impor sukses!",
-    "importhistoryconflict": "Terjadi konflik revisi sejarah (mungkin pernah mengimpor halaman ini sebelumnya)",
     "importnosources": "Tidak ada sumber impor transwiki yang telah dibuat dan pemuatan riwayat secara langsung telah di non-aktifkan.",
     "importnofile": "Tidak ada berkas sumber impor yang telah dimuat.",
     "importuploaderrorsize": "Pemuatan berkas impor gagal. Ukuran berkas melebihi ukuran yang diperbolehkan.",
index f35f165..2613139 100644 (file)
@@ -18,7 +18,6 @@
     "october": "Nuliaġvik",
     "november": "Quyyavik",
     "december": "Uvluiḷaq",
-    "helppage": "Help:anniqsuiruq",
     "mainpage": "Makpiġaaq Kanna",
     "mainpage-description": "Makpibaaq Kanna",
     "portal-url": "Project:qargi"
index 3ae472d..a200043 100644 (file)
     "accountcreatedtext": "Notandaaðgangurinn fyrir [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|spjall]]) hefur verið búinn til.",
     "createaccount-title": "Innskráningagerð á {{SITENAME}}",
     "createaccount-text": "Einhver bjó til aðgang fyrir netfangið þitt á {{SITENAME}} ($4) undir nafninu „$2“, með lykilorðið „$3“.\nÞú ættir að skrá þig inn og breyta lykilorðinu núna.\n\nÞú getur hunsað þessi skilaboð, ef villa hefur átt sér stað.",
-    "usernamehasherror": "Notendanöfn mega ekki innihalda kassa (#)",
     "login-throttled": "Þér hefur mistekist að skrá þig inn undir þessu notendanafni of oft.\nVinsamlegast bíðið $1 áður en þú reynir aftur.",
     "login-abort-generic": "Innskráningin misheppnaðist - hætt var við hana.",
     "loginlanguagelabel": "Tungumál: $1",
     "prefs-skin": "Þema",
     "skin-preview": "Forskoða",
     "datedefault": "Sjálfgefið",
-    "prefs-datetime": "Tímasnið og tímabelti",
     "prefs-labs": "Stillingar á tilraunastigi",
     "prefs-user-pages": "Notendasíður",
     "prefs-personal": "Notandaupplýsingar",
     "upload-permitted": "Heimilaðar skráargerðir: $1.",
     "upload-preferred": "Ákjósanlegustu skrárgerðirnar: $1.",
     "upload-prohibited": "Óheimiluð skrárgerð: $1.",
-    "uploadlog": "innhlaðningarskrá",
     "uploadlogpage": "Innhlaðningarskrá",
     "uploadlogpagetext": "Fyrir neðan er listi yfir nýlegustu innhlöðnu skrárnar.\nSjá [[Special:NewFiles|myndasafn nýrra mynda]] fyrir myndrænna yfirlit.",
     "filename": "Skráarnafn",
     "filereuploadsummary": "Skráarbreytingar:",
     "filestatus": "Staða höfundaréttar:",
     "filesource": "Heimild:",
-    "uploadedfiles": "Hlóð inn skráunum",
     "ignorewarning": "Hunsa viðvaranir og vista þessa skrá",
     "ignorewarnings": "Hunsa allar viðvaranir",
     "minlength1": "Skráarnöfn þurfa að vera að minnsta kosti einn stafur að lengd",
     "overwroteimage": "hlóð inn nýrri útgáfu af \"[[$1]]\"",
     "uploaddisabled": "Lokað er fyrir að hlaða inn myndum.",
     "copyuploaddisabled": "Lokað er fyrir að hlaða inn myndum frá vefslóð.",
-    "uploadfromurl-queued": "Upphlaðið þitt hefur verið sett í biðröð.",
     "uploaddisabledtext": "Lokað er fyrir að hlaða inn skrám.",
     "php-uploaddisabledtext": "Skráar upphlöð eru óvirk í PHP.\nVinsamlegast athugaðu stillinguna í file_uploads.",
     "uploadscripted": "Þetta skjal inniheldur (X)HTML eða forskriftu sem gæti valdið villum í vöfrum.",
     "upload-misc-error": "Óþekkt innhleðsluvilla",
     "upload-misc-error-text": "Upphal þitt mistókst vegna óþekktrar villu.\nAthugaðu hvort vefslóðin sé rétt og aðgengileg og að því loknu reyndu aftur.\nEf vandamálið lagast ekki, hafðu samband við [[Special:ListUsers/sysop|stjórnanda]].",
     "upload-too-many-redirects": "Vefslóðin inniheldur of margar tilvísanir.",
-    "upload-unknown-size": "Óþekkt stærð",
     "upload-http-error": "HTTP villa kom upp við upphal skráarinnar: $1",
     "upload-copy-upload-invalid-domain": "Lokað er fyrir afritun skráa frá öðrum vefþjón á þessu vefsvæði.",
     "backend-fail-stream": "Gat ekki streymt skránni „$1“.",
     "img-auth-streaming": "Streymi \"$1\".",
     "img-auth-public": "Virkni img_auth.php er að flytja út skrár frá einkawiki.\nÞessi wiki er stilltur sem opinber wiki.\nVegna öryggissjónarmiða er img_auth.php óvirkt.",
     "img-auth-noread": "Notandinn hefur ekki rétt til að lesa \"$1\"",
-    "img-auth-bad-query-string": "Vefslóðin hefur ógildan fyrirspurnar streng.",
     "http-invalid-url": "Vitlaust veffang: $1",
     "http-invalid-scheme": "Vefslóðir með \"$1\" forskeyti eru óstuddar.",
     "http-request-error": "HTTP beiðni mistókst vegna óþekktrar villu.",
     "filehist-dimensions": "Víddir",
     "filehist-filesize": "Stærð skráar",
     "filehist-comment": "Athugasemd",
-    "filehist-missing": "Skrá vantar",
     "imagelinks": "Skráartenglar",
     "linkstoimage": "Eftirfarandi {{PLURAL:$1|síða tengist|$1 síður tengjast}} í þessa skrá:",
     "linkstoimage-more": "Fleiri en $1 {{PLURAL:$1|síða tengist|síður tengjast}} þessari skrá.\nEftirfarandi listi sýnir {{PLURAL:$1|fyrsta myndatengilinn|fyrstu $1 myndatenglana}}.\n[[Special:WhatLinksHere/$2|Tæmandi listi]] er til staðar.",
     "emailuser-title-notarget": "Senda tölvupóst",
     "emailpage": "Senda tölvupóst",
     "emailpagetext": "Hafi notandinn tilgreint netfang í stillingunum sínum er hægt að senda póst til {{GENDER:$1|hans|hennar|hans}} hér.\nPóstfangið sem þú tilgreindir í [[Special:Preferences|stillingunum þínum]] birtist í \"Frá:\" hluta tölvupóstsins, svo að viðtakandi hans geti svarað beint til þín.",
-    "usermailererror": "Póst hlutur skilaði villu:",
     "defemailsubject": "{{SITENAME}} skilaboð frá notandanum \"$1\"",
     "usermaildisabled": "Netfang notenda er óvirkt",
     "usermaildisabledtext": "Þú getur ekki sent tölvupóst til annara notenda á þessum wiki",
     "noemailtitle": "Ekkert póstfang",
     "noemailtext": "Þessi notandi hefur ekki tilgreint gilt netfang.",
-    "nowikiemailtitle": "Tölvupóstur óheimill",
     "nowikiemailtext": "Þessi notandi hefur valið að fá engan tölvupóst frá öðrum notendum.",
     "emailnotarget": "Notendanafn er ekki til eða ógilt fyrir þennan viðtakanda.",
     "emailtarget": "Tilgreindu notendanafn viðtakanda",
     "watching": "Vakta...",
     "unwatching": "Afvakta...",
     "watcherrortext": "Villa kom upp við breytingu á stillingum vaktlistans fyrir \"$1\".",
-    "enotif_mailer": "{{SITENAME}} tilkynningasendill",
     "enotif_reset": "Merkja allar síður sem skoðaðar",
     "enotif_impersonal_salutation": "{{SITENAME}}notandi",
     "enotif_subject_deleted": "$1 á {{SITENAME}} hefur verið eytt af {{gender:$2|$2}}",
     "excontent": "innihaldið var: „$1“",
     "excontentauthor": "innihaldið var: '$1' (og öll framlög voru frá '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "innihald fyrir tæmingu var: '$1'",
-    "exblank": "síðan var tóm",
     "delete-confirm": "Eyða „$1“",
     "delete-legend": "Eyða",
     "historywarning": "'''Viðvörun:''' Síðan sem þú ert um það bil að eyða hefur breytingarskrá með $1 {{PLURAL:$1|breytingu|breytingum}}:",
     "importunknownsource": "Óþekkt innflutningstilfangsgerð",
     "importcantopen": "Get ekki opnað innflutt skjal",
     "importbadinterwiki": "Villa í tungumálatengli",
-    "importnotext": "Tómt eða enginn texti",
     "importsuccess": "Innflutningi lokið!",
-    "importhistoryconflict": "Breytingarskrá þessarar síðu er þegar til (gæti hafa verið flutt inn áður)",
     "importnosources": "Engin uppspretta hefur verið valin og bein upphlöð breytingarskráa eru óvirk.",
     "importnofile": "Engri skrá var hlaðið inn.",
     "importuploaderrorsize": "Upphlöðun skráarinnar mistókst.\nSkráin er stærri en hámarsstærð síðna segir til um.",
index db10f28..1c5468a 100644 (file)
     "accountcreatedtext": "È stata creata un'utenza per [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|msg]]).",
     "createaccount-title": "Creazione di un accesso a {{SITENAME}}",
     "createaccount-text": "Qualcuno ha creato un accesso a {{SITENAME}} ($4) a nome di $2, associato a questo indirizzo di posta elettronica. La password per l'utente \"$2\" è impostata a \"$3\".\nÈ opportuno eseguire un accesso quanto prima e cambiare la password immediatamente.\n\nSe l'accesso è stato creato per errore, si può ignorare questo messaggio.",
-    "usernamehasherror": "Il nome utente non può contenere caratteri hash",
     "login-throttled": "Sono stati effettuati troppi tentativi di accesso in breve tempo.\nAttendi $1 e riprova in seguito.",
     "login-abort-generic": "Il tuo login non ha avuto successo - Annullato",
     "loginlanguagelabel": "Lingua: $1",
     "content-model-javascript": "JavaScript",
     "content-model-css": "CSS",
     "expensive-parserfunction-warning": "'''Attenzione:''' Questa pagina contiene troppe chiamate alle parser functions.\n\nDovrebbe averne meno di $2, al momento ce {{PLURAL:$1|n'è $1|ne sono $1}}.",
-    "expensive-parserfunction-category": "Pagine con troppe chiamate alle parser functions",
+    "expensive-parserfunction-category": "Pagine con troppe chiamate alle funzioni parser",
     "post-expand-template-inclusion-warning": "'''Attenzione:''' la dimensione dei template inclusi è troppo grande.\nAlcuni template non verranno inclusi.",
     "post-expand-template-inclusion-category": "Pagine per le quali la dimensione dei template inclusi supera il limite consentito",
     "post-expand-template-argument-warning": "'''Attenzione:''' questa pagina contiene uno o più argomenti di template troppo grandi per essere espansi. Tali argomenti verranno omessi.",
     "prefs-skin": "Aspetto grafico (skin)",
     "skin-preview": "Anteprima",
     "datedefault": "Nessuna preferenza",
-    "prefs-datetime": "Data e ora",
     "prefs-labs": "Funzionalità sperimentali",
     "prefs-user-pages": "Pagine utente",
     "prefs-personal": "Profilo utente",
     "upload-permitted": "Tipi di file consentiti: $1.",
     "upload-preferred": "Tipi di file consigliati: $1.",
     "upload-prohibited": "Tipi di file non consentiti: $1.",
-    "uploadlog": "File caricati",
     "uploadlogpage": "File caricati",
     "uploadlogpagetext": "Di seguito sono elencati gli ultimi file caricati.\nConsultare la [[Special:NewFiles|galleria dei nuovi file]] per una visione d'insieme.",
     "filename": "Nome del file",
     "filereuploadsummary": "Cambiamenti al file:",
     "filestatus": "Informazioni sul copyright:",
     "filesource": "Fonte:",
-    "uploadedfiles": "Elenco dei file caricati",
     "ignorewarning": "Ignora l'avviso e salva comunque il file",
     "ignorewarnings": "Ignora i messaggi di avvertimento del sistema",
     "minlength1": "Il nome del file dev'essere composto da almeno un carattere.",
     "overwroteimage": "ha caricato una nuova versione di \"[[$1]]\"",
     "uploaddisabled": "Il caricamento dei file è disabilitato.",
     "copyuploaddisabled": "Il caricamento tramite URL è disabilitato.",
-    "uploadfromurl-queued": "Il caricamento è stato accodato.",
     "uploaddisabledtext": "Il caricamento dei file non è attivo.",
     "php-uploaddisabledtext": "Il caricamento di file tramite PHP è disabilitato. Controlla la configurazione di file_uploads.",
     "uploadscripted": "Questo file contiene codice HTML o di script, che potrebbe essere interpretato erroneamente da un browser web.",
     "upload-misc-error": "Errore di caricamento sconosciuto",
     "upload-misc-error-text": "Si è verificato un errore non identificato durante il caricamento del file. Verificare che la URL sia corretta e accessibile e provare di nuovo. Se il problema persiste, contattare un [[Special:ListUsers/sysop|amministratore]].",
     "upload-too-many-redirects": "L'URL conteneva troppi redirect",
-    "upload-unknown-size": "Dimensione sconosciuta",
     "upload-http-error": "Si è verificato un errore HTTP: $1",
     "upload-copy-upload-invalid-domain": "Non è consentito il caricamento di copie da questo dominio.",
     "backend-fail-stream": "Impossibile trasmettere il file $1.",
     "img-auth-streaming": "\"$1\" in streaming.",
     "img-auth-public": "La funzione di img_auth.php è di dare in output file da un sito wiki privato.\nQuesto sito è configurato come un wiki pubblico.\nPer una sicurezza ottimale, img_auth.php è disattivato.",
     "img-auth-noread": "L'utente non ha accesso alla lettura di \"$1\".",
-    "img-auth-bad-query-string": "L'URL contiene una stringa di query non valida.",
     "http-invalid-url": "URL non valido: $1",
     "http-invalid-scheme": "URL con il prefisso \"$1\" non sono supportati.",
     "http-request-error": "Richiesta HTTP fallita a causa di un errore sconosciuto.",
     "filehist-dimensions": "Dimensioni",
     "filehist-filesize": "Dimensione del file",
     "filehist-comment": "Commento",
-    "filehist-missing": "File mancante",
     "imagelinks": "Uso del file",
     "linkstoimage": "{{PLURAL:$1|La seguente pagina contiene|Le seguenti $1 pagine contengono}} collegamenti al file:",
     "linkstoimage-more": "Più di $1 {{PLURAL:$1|pagina punta|pagine puntano}} a questo file.\nDi seguito sono elencate solo {{PLURAL:$1|la prima pagina che punta|le prime $1 pagine che puntano}} a questo file.\nÈ disponibile un [[Special:WhatLinksHere/$2|elenco completo]].",
     "listgrouprights-removegroup-self": "Può rimuoversi {{PLURAL:$2|dal gruppo|dai gruppi}}: $1",
     "listgrouprights-addgroup-self-all": "Può aggiungersi a tutti i gruppi",
     "listgrouprights-removegroup-self-all": "Può rimuoversi da tutti i gruppi",
+    "listgrouprights-namespaceprotection-header": "Restrizioni per namespace",
+    "listgrouprights-namespaceprotection-namespace": "Namespace",
+    "listgrouprights-namespaceprotection-restrictedto": "Diritto che consente all'utente di modificare",
     "trackingcategories": "Categorie di monitoraggio",
     "trackingcategories-summary": "Questa pagina elenca le categorie di monitoraggio che vengono popolate automaticamente dal software MediaWiki. I loro nomi possono essere cambiati modificando i relativi messaggi di sistema nel namespace {{ns:8}}.",
     "trackingcategories-msg": "Categoria di monitoraggio",
     "trackingcategories-name": "Nome del messaggio",
     "trackingcategories-desc": "Criteri per l'inclusione nella categoria",
-    "noindex-category-desc": "La pagina contiene la parola magica <nowiki>__NOINDEX__</nowiki> (e si trova in un namespace dove tale flag è consentito) e quindi non è indicizzata dai robot.",
-    "index-category-desc": "La pagina contiene <nowiki>__INDEX__</nowiki> (e si trova in un namespace dove tale flag è consentito) e quindi è indicizzata dai robot, anche se normalmente non lo sarebbe.",
+    "noindex-category-desc": "La pagina non è indicizzata dai robot perché contiene la parola magica <code><nowiki>__NOINDEX__</nowiki></code> e si trova in un namespace dove tale flag è consentito.",
+    "index-category-desc": "La pagina contiene <code><nowiki>__INDEX__</nowiki></code> (e si trova in un namespace dove tale flag è consentito) e quindi è indicizzata dai robot, anche se normalmente non lo sarebbe.",
     "post-expand-template-inclusion-category-desc": "Dopo aver espanso tutti i template, la dimensione della pagina sarà più grande di <code>$wgMaxArticleSize</code>, e dunque alcuni non si espanderanno.",
     "post-expand-template-argument-category-desc": "Dopo aver espanso il parametro di un template (qualcosa tra parentesi graffe, come <code>{{{Foo}}})</code>, la pagina sarà più grande di <code>$wgMaxArticleSize</code>.",
+    "expensive-parserfunction-category-desc": "La pagina usa troppe funzioni parser (come <code>#ifexist</code>). Vedi [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+    "broken-file-category-desc": "Categoria aggiunta se la pagina contiene un collegamento interrotto ad un file (un collegamento per incorporare un file quando questo non esiste).",
+    "hidden-category-category-desc": "Questa è una categoria che contiene <code><nowiki>__HIDDENCAT__</nowiki></code>, il quale impedisce che venga mostrata, in modo predefinito, nel riquadro dei collegamenti alle categorie delle pagine.",
     "trackingcategories-nodesc": "Nessuna descrizione disponibile.",
     "trackingcategories-disabled": "La categoria è disabilitata",
     "mailnologin": "Nessun indirizzo cui inviare il messaggio",
     "emailuser-title-notarget": "Invia una email a un utente",
     "emailpage": "Invia un messaggio email all'utente",
     "emailpagetext": "Usare il modulo sottostante per inviare un messaggio e-mail all'{{GENDER:$1|utente}} indicato. L'indirizzo specificato nelle [[Special:Preferences|preferenze]] del mittente apparirà nel campo \"Da:\" del messaggio per consentire al destinatario di rispondere direttamente.",
-    "usermailererror": "L'oggetto mail ha restituito l'errore:",
     "defemailsubject": "Messaggio da {{SITENAME}} dall'utente \"$1\"",
     "usermaildisabled": "e-mail utente disabilitata",
     "usermaildisabledtext": "Non è possibile inviare e-mail ad altri utenti su questo wiki",
     "noemailtitle": "Nessun indirizzo e-mail",
     "noemailtext": "Questo utente non ha indicato un indirizzo e-mail valido.",
-    "nowikiemailtitle": "E-mail non permessa",
     "nowikiemailtext": "Questo utente ha scelto di non ricevere messaggi di posta elettronica dagli altri utenti.",
     "emailnotarget": "Nome utente del destinatario inesistente o non valido.",
     "emailtarget": "Inserisci il nome utente del destinatario",
     "watching": "Aggiunta agli osservati speciali...",
     "unwatching": "Eliminazione dagli osservati speciali...",
     "watcherrortext": "Si è verificato un errore durante la modifica degli osservati speciali per \"$1\".",
-    "enotif_mailer": "Sistema di notifica via e-mail di {{SITENAME}}",
     "enotif_reset": "Segna tutte le pagine come già visitate",
     "enotif_impersonal_salutation": "Utente di {{SITENAME}}",
     "enotif_subject_deleted": "La pagina $1 di {{SITENAME}} è stata cancellata da {{gender:$2|$2}}",
     "excontent": "il contenuto era: '$1'",
     "excontentauthor": "il contenuto era: '$1' (e l'unico contributore era '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "Il contenuto prima dello svuotamento era: '$1'",
-    "exblank": "la pagina era vuota",
     "delete-confirm": "Cancella \"$1\"",
     "delete-legend": "Cancella",
     "historywarning": "'''Attenzione:''' La pagina che stai per cancellare ha una cronologia con approssimativamente $1 {{PLURAL:$1|revisione|revisioni}}:",
     "importunknownsource": "Tipo di origine sconosciuto per l'importazione",
     "importcantopen": "Impossibile aprire il file di importazione",
     "importbadinterwiki": "Collegamento inter-wiki errato",
-    "importnotext": "Testo vuoto o mancante",
     "importsuccess": "Importazione riuscita.",
-    "importhistoryconflict": "La cronologia contiene delle versioni in conflitto (questa pagina potrebbe essere già stata importata)",
     "importnosources": "Non è stata definita una fonte per l'importazione transwiki; l'importazione diretta della cronologia non è attiva.",
     "importnofile": "Non è stato caricato nessun file per l'importazione.",
     "importuploaderrorsize": "Caricamento del file per l'importazione non riuscito. Il file supera le dimensioni massime consentite per l'upload.",
index 7e33afb..afe47c9 100644 (file)
     "accountcreatedtext": "利用者アカウント [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|トーク]]) を作成しました。",
     "createaccount-title": "{{SITENAME}}のアカウント作成",
     "createaccount-text": "誰か (おそらくあなた) が、{{SITENAME}} ($4) にあなたのメールアドレスのアカウントを作成しました。\nアカウント名「$2」、パスワード「$3」です。\n今すぐログインしてパスワードを変更してください。\n\nこのアカウントが何かの手違いで作成された場合は、このメッセージを無視してください。",
-    "usernamehasherror": "利用者名には番号記号を含めることができません",
     "login-throttled": "ログインの失敗が制限回数を超えました。\n$1待ってから再度試してください。",
     "login-abort-generic": "ログインに失敗しました - 中止",
     "loginlanguagelabel": "言語: $1",
     "prefs-skin": "外装",
     "skin-preview": "プレビュー",
     "datedefault": "選択なし",
-    "prefs-datetime": "日付と時刻",
     "prefs-labs": "ラボの機能",
     "prefs-user-pages": "利用者ページ",
     "prefs-personal": "利用者情報",
     "upload-permitted": "許可されているファイル形式: $1。",
     "upload-preferred": "推奨されているファイル形式: $1。",
     "upload-prohibited": "禁止されているファイル形式: $1。",
-    "uploadlog": "アップロード記録",
     "uploadlogpage": "アップロード記録",
     "uploadlogpagetext": "以下はファイルアップロードの最近の記録です。\n画像付きで見るには[[Special:NewFiles|新規ファイルの一覧]]をご覧ください。",
     "filename": "ファイル名",
     "filereuploadsummary": "ファイルの変更:",
     "filestatus": "著作権情報:",
     "filesource": "出典:",
-    "uploadedfiles": "アップロードされたファイル",
     "ignorewarning": "警告を無視してファイルを保存",
     "ignorewarnings": "警告を無視",
     "minlength1": "ファイル名には少なくとも1文字必要です。",
     "overwroteimage": "「[[$1]]」の新しい版をアップロードしました",
     "uploaddisabled": "アップロード機能は無効になっています。",
     "copyuploaddisabled": "URL からのアップロードは無効になっています。",
-    "uploadfromurl-queued": "アップロードがキューに追加されました。",
     "uploaddisabledtext": "ファイルのアップロードは、無効になっています。",
     "php-uploaddisabledtext": "ファイルのアップロードがPHPで無効化されています。\nfile_uploadsの設定を確認してください。",
     "uploadscripted": "このファイルは、ウェブブラウザーが誤って解釈してしまうおそれがあるHTMLまたはスクリプトコードを含んでいます。",
     "upload-misc-error": "不明なアップロードエラー",
     "upload-misc-error-text": "アップロード中に不明なエラーが発生しました。\n指定した URL が正しいこととアクセスできることを確認して、もう一度試してください。\nそれでもこのエラーが発生する場合は、[[Special:ListUsers/sysop|管理者]]に連絡してください。",
     "upload-too-many-redirects": "そのURLに含まれるリダイレクトが多すぎます",
-    "upload-unknown-size": "サイズ不明",
     "upload-http-error": "HTTP エラー発生: $1",
     "upload-copy-upload-invalid-domain": "このドメインからのアップロードは許可されていません。",
     "backend-fail-stream": "ファイル $1 をストリームできませんでした。",
     "img-auth-streaming": "「$1」を転送中。",
     "img-auth-public": "img_auth.phpの機能は、非公開ウィキからのファイルの出力です。\nこのウィキは公開ウィキとして構成されています。\n最適なセキュリティのため、img_auth.phpを無効にしています。",
     "img-auth-noread": "利用者は「$1」の読み取り権限を持っていません。",
-    "img-auth-bad-query-string": "URLの中に無効なクエリ文字列があります。",
     "http-invalid-url": "無効なURL: $1",
     "http-invalid-scheme": "スキーム「$1」の URL には未対応です。",
     "http-request-error": "不明なエラーによりHTTPリクエストに失敗しました。",
     "filehist-dimensions": "寸法",
     "filehist-filesize": "ファイルサイズ",
     "filehist-comment": "コメント",
-    "filehist-missing": "ファイルがありません",
     "imagelinks": "ファイルの使用状況",
     "linkstoimage": "以下の{{PLURAL:$1|ページ|​&#32;$1 ページ}}がこのファイルにリンクしています:",
     "linkstoimage-more": "このファイルへは $1 を超える数のページからリンクがあります。\n以下の一覧ではこのファイルにリンクしている最初の $1 ページのみを表示しています。\n[[Special:WhatLinksHere/$2|完全な一覧]]も参照してください。",
     "trackingcategories-summary": "このページでは、MediaWiki ソフトウェアが自動的に追加した追跡用カテゴリを列挙します。これらの名前は、{{ns:8}} 名前空間内の対応するシステム メッセージを修正することで変更できます。",
     "trackingcategories-msg": "追跡用カテゴリ",
     "trackingcategories-name": "メッセージ名",
+    "post-expand-template-inclusion-category-desc": "テンプレートを展開したあとのページ サイズが <code>$wgMaxArticleSize</code> よりも大きいため、一部のテンプレートが展開されなかった",
+    "post-expand-template-argument-category-desc": "テンプレート引数 (<code>{{{Foo}}}</code> のような三重中括弧部分) を展開したあとのページが <code>$wgMaxArticleSize</code> よりも大きい",
+    "expensive-parserfunction-category-desc": "高負荷なパーサー関数 (<code>#ifexist</code> など) の呼び出し回数が多過ぎるページ。[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit] を参照してください。",
+    "broken-file-category-desc": "リンク切れしたファイルを含むページ (ファイルを埋め込むリンクがあり、そのファイルが存在しない) に追加されるカテゴリ",
+    "hidden-category-category-desc": "<code><nowiki>__HIDDENCAT__</nowiki></code> を含むカテゴリ。このカテゴリは、既定ではページのカテゴリ リンク ボックス内に表示されません。",
     "trackingcategories-nodesc": "説明はありません。",
     "mailnologin": "送信アドレスがありません",
     "mailnologintext": "他の利用者宛にメールを送信するためには、[[Special:UserLogin|ログイン]]し、[[Special:Preferences|個人設定]]で有効なメールアドレスを設定する必要があります。",
     "emailuser-title-notarget": "利用者にメールを送信",
     "emailpage": "利用者にメールを送信",
     "emailpagetext": "以下のフォームを使用してこの{{GENDER:$1|利用者}}にメールを送信できます。\n「差出人」として、[[Special:Preferences|利用者の個人設定]]で入力したメールアドレスが設定されます。これにより、受信者があなたに直接返信できるようになります。",
-    "usermailererror": "メールが以下のエラーを返しました:",
     "defemailsubject": "{{SITENAME}} 利用者「$1」からのメール",
     "usermaildisabled": "利用者メール機能は無効です",
     "usermaildisabledtext": "このウィキでは他の利用者にメールを送信できません",
     "noemailtitle": "メールアドレスがありません",
     "noemailtext": "この利用者は有効なメールアドレスを登録していません。",
-    "nowikiemailtitle": "メールは許可されていません",
     "nowikiemailtext": "この利用者は他の利用者からメールを受け取らない設定にしています。",
     "emailnotarget": "受信者の利用者名が存在しない、あるいは無効です。",
     "emailtarget": "受信者の利用者名を入力してください",
     "watching": "ウォッチリストに追加中...",
     "unwatching": "ウォッチリストから除去中...",
     "watcherrortext": "ウォッチリストの「$1」の設定を変更中にエラーが発生しました。",
-    "enotif_mailer": "{{SITENAME}} 通知メール",
     "enotif_reset": "すべてのページを訪問済みにする",
     "enotif_impersonal_salutation": "{{SITENAME}}の利用者",
     "enotif_subject_deleted": "{{SITENAME}} ページ $1 を $2 が{{GENDER:$2|削除しました}}",
     "excontent": "内容:「$1」",
     "excontentauthor": "内容:「$1」(投稿者は「[[Special:Contributions/$2|$2]]」のみ)",
     "exbeforeblank": "白紙化前の内容:「$1」",
-    "exblank": "白紙ページ",
     "delete-confirm": "「$1」の削除",
     "delete-legend": "削除",
     "historywarning": "<strong>警告:</strong> 削除しようとしているページには、約$1版の履歴があります:",
     "importunknownsource": "取り込み元のタイプが不明です",
     "importcantopen": "取り込みファイルが開けませんでした",
     "importbadinterwiki": "ウィキ間リンクが正しくありません",
-    "importnotext": "内容が空、または本文がありません",
     "importsuccess": "取り込みが完了しました!",
-    "importhistoryconflict": "取り込み時にいくつかの版が競合しました (以前に同じページが取り込まれているかもしれません)",
     "importnosources": "ウィキ間移動の取り込み元が定義されていないため、履歴の直接アップロードは無効になっています。",
     "importnofile": "取り込みファイルはアップロードされませんでした。",
     "importuploaderrorsize": "取り込みファイルのアップロードに失敗しました。\nファイルが、アップロードできるサイズを超えています。",
index 6c2e421..3d72b45 100644 (file)
     "disclaimers": "nunxusra lo za'i na fuzme",
     "disclaimerpage": "Project:kampu nunxusra be lo za'i na fuzme",
     "edithelp": "stika nunsidju",
-    "helppage": "Help:lo se vasru",
     "mainpage": "Ralju Ckupau",
     "mainpage-description": "ralju ckupau",
     "portal": "bende ckupau",
index 3a4142e..0dbe6ed 100644 (file)
     "disclaimers": "Førbeholt",
     "disclaimerpage": "Project:Huses førbeholt",
     "edithelp": "Hjælp til redigærenge",
-    "helppage": "Help:Hjælpførside",
     "mainpage": "Førsit",
     "mainpage-description": "Førsit",
     "policy-url": "Project:Politik",
index 271cf74..60e6af4 100644 (file)
     "accountcreatedtext": "მომხმარებლის ანგარიში [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|განხილვა]]) შექმნილია.",
     "createaccount-title": "ანგარიშის შექმნა {{SITENAME}}-თვის",
     "createaccount-text": "ვიღაცამ შექმნა ანგარიში სახელით „$2“ და პაროლით „$3“ თქვენი ელექტრონული ფოსტისთვის {{SITENAME}}-ში ($4). გთხოვთ დარეგისტრირდეთ და შეცვალოთ პაროლი.\n\nშეგიძლიათ ყურადღება არ მიაქციოთ ამ შეტყობინებას, თუ ანგარიში შეცდომით შეიქმნა.",
-    "usernamehasherror": "მომხმარებლის სახელი არ უნდა შეიცავდეს დიეზის სიმბოლოს.",
     "login-throttled": "You have made too many recent login attempts.\nPlease wait $1 before trying again.",
     "login-abort-generic": "თქვენი ავტორიზაცია წარუმატებელია – გაუქმდა",
     "loginlanguagelabel": "ენა: $1",
     "prefs-skin": "გარეკანი",
     "skin-preview": "წინასწარი გადახედვა",
     "datedefault": "წყარო მითითებული არაა",
-    "prefs-datetime": "თარიღი და დრო",
     "prefs-labs": "ექსპერიმენტალური ფუნქციები",
     "prefs-user-pages": "მომხმარებლის გვერდები",
     "prefs-personal": "მომხმარებლის მონაცემები",
     "rclistfrom": "ახალი ცვლილებების ჩვენება დაწყებული $1-დან",
     "rcshowhideminor": "მცირე რედაქტირების $1",
     "rcshowhidebots": "რობოტების  $1",
+    "rcshowhidebots-show": "ჩვენება",
+    "rcshowhidebots-hide": "დამალვა",
     "rcshowhideliu": "$1 რეგისტრირებული მომხმარებელი",
     "rcshowhideanons": "ანონიმური მომხმარებლების $1",
     "rcshowhidepatr": "გაკონტროლებული ცვლილებების $1",
     "upload-permitted": "მიღებული ფაილის ტიპები: $1.",
     "upload-preferred": "სასურველი ფაილის ტიპები: $1.",
     "upload-prohibited": "აკრძალული ფაილის ტიპები: $1.",
-    "uploadlog": "გადმოტვირთვის რეგისტრაცია",
     "uploadlogpage": "გადმოტვირთვის რეგისტრაცია",
     "uploadlogpagetext": "ქვემოთ არის ყველაზე ბოლოს ატვირთული ფაილების სია.",
     "filename": "ფაილის სახელი",
     "filereuploadsummary": "ფაილის ცვლილებები:",
     "filestatus": "საავტორო უფლებების სტატუსი:",
     "filesource": "წყარო:",
-    "uploadedfiles": "ფაილების დამატება",
     "ignorewarning": "გაფრთხილება უგულებელყავი და მაინც შეინახე ფაილი.",
     "ignorewarnings": "უგულებელყავი ნებისმიერი გაფრთხილება",
     "minlength1": "ფაილის სახელი უნდა იყოს არანაკლებ ერთი ასო.",
     "overwroteimage": "ატვირთულია „[[$1]]-ის“ ახალი ვერსია",
     "uploaddisabled": "ატვირთვა გამორთულია.",
     "copyuploaddisabled": "URL ატვირთვა გაღიშულია",
-    "uploadfromurl-queued": "თქვენი ატვირთვა რიგში ჩადგა.",
     "uploaddisabledtext": "ფაილების ატვირთვა შეუძლებელია.",
     "php-uploaddisabledtext": "ფაილების ატვირთვა შეჩერებულია PHP-ით. გთხოვთ შეამოწმოთ file_uploads-ის მნიშვნელობა.",
     "uploadscripted": "ფაილი შეიცავს HTML-კოდს, ან სკრიპტს, რომელიც ბროუზერმა შეიძლება არასწორედ გაანალიზოს.",
     "upload-misc-error": "უცნობია ატვირთვის შეცდომა",
     "upload-misc-error-text": "ატვირთვისას უცნობი სახის შეცდომა გაიპარა.\nგთხოვთ შეამოწმოთ თუ URL სწორია და ხელმისაწვდომია და ისევ სცადოთ.\nთუ პრობლემა ვერ გადაიჭრა, მიმართეთ [[Special:ListUsers/sysop|ადმინისტრატორს]].",
     "upload-too-many-redirects": "URL შეიცავს ძალიან ბევრ გადამისამართებებს",
-    "upload-unknown-size": "უცნობი ზომა",
     "upload-http-error": "მოხდა HTTP შეცდომა: $1",
     "upload-copy-upload-invalid-domain": "ამ დომენში ატვირთვების კოპირება არ არის ხელმისაწვდომი.",
     "backend-fail-stream": "ფაილი $1 ტრანსლირება ვერ მოხერხდა.",
     "img-auth-streaming": "ნაკადური გადაცემა «$1».",
     "img-auth-public": "img_auth.php-ის დანიშვნა გამოიწვევს ფაილების დახურული ვიკიდან გაოტანას.\nეს ვიკი გამართულია როგორც საზოგადი.\nუსაფრთხოების ოპტიმიზააციისთვის img_auth.php გათიშულია.",
     "img-auth-noread": "მომხმარებელს არა აქვს ნებართვა \"$1\"-ის წასაკითხად.",
-    "img-auth-bad-query-string": "URL შეიცავს არასწორ მოთხოვნას.",
     "http-invalid-url": "არასწორი ბმული: $1",
     "http-invalid-scheme": "«$1» სქემის მქონე მისამართები მხარდაჭერილები არ არიან.",
     "http-request-error": "HTTP მოთხოვნის შეცდომა უცნობი მიზეზის გამო.",
     "filehist-dimensions": "განზომილებები",
     "filehist-filesize": "ფაილის ზომა",
     "filehist-comment": "კომენტარი",
-    "filehist-missing": "ფაილი ვერ მოიძებნა",
     "imagelinks": "ფაილის გამოყენება",
     "linkstoimage": "მომდევნო {{PLURAL:$1|გვერდი|გვერდები}} ებმის ამ ფაილს:",
     "linkstoimage-more": "$1-ზე მეტი {{PLURAL:$1|გვერდები|გვერდების|გვერდები}} რომლებსაც აქვთ ბმულები ამ ფაილზე.\nმოცემულ სიაში {{PLURAL:$1|წარმოდგენილია მხოლოდ $1 ბმული|წარმოდგენილია მხოლოდ $1 ბმულები|წარმოდგენილია მხოლოდ $1 ბმულების}} ამ ფაილზე.\nშეგიძლიათ ნახოთ ასევე [[Special:WhatLinksHere/$2|სრული სია]].",
     "emailuser-title-notarget": "ელ. ფოსტის გაგზავნა მომხმარებელთან",
     "emailpage": "ელ. ფოსტა მომხმარებელს",
     "emailpagetext": "თუ ამ მომხმარებელმა თავის პარამეტრებში ელ. ფოსტის მოქმედი მისამართი მიუთითა, ქვემოთ მოყვანილი ფორმის შევსებისას შეგიძლიათ {{GENDER:$1|მისთვის}} შეტყობინების გაგზავნა. ელ. ფოსტის მისამართი, რომელიც [[Special:Preferences|თქვენს პარამეტრებში]] მიუთითეთ, დაფიქსირდება „გამომგზავნის“ ველში, რათა ადრესატმა პასუხის გაცემა შეძლოს.",
-    "usermailererror": "ელ. ფოსტა დაბრუნდა შეცდომის გამო:",
     "defemailsubject": "ელ-ფოსტა საიტის {{SITENAME}} მომხმარებლისგან „$1“",
     "usermaildisabled": "მომხმარებლის e-mail გათიშულია",
     "usermaildisabledtext": "თქვენ ვერ გაგზავნით e-mail-ს.",
     "noemailtitle": "ელ. ფოსტის მისამართი მითითებული არ არის",
     "noemailtext": "მომხმარებელმა არ მიუთითა მოქმედი ელ. ფოსტის მისამართი.",
-    "nowikiemailtitle": "წერილების გაგზავნის უფლება არ გაქვთ.",
     "nowikiemailtext": "ამ მომხმარებელს არ სურს წერილების მიღება სხვა მომხმარებლებისაგან.",
     "emailnotarget": "არარსებული ან არასწორი მომხმარებლის სახელი.",
     "emailtarget": "შეიყვანეთ მომხმარებლის სახელი ელ-ფოსტის გასაგზავნად.",
     "watching": "კონტროლებადი...",
     "unwatching": "არაკონტროლირებადი...",
     "watcherrortext": "\"$1\"–თვის კონტროლის სიის პარამეტრების ცვლილებისას მოხდა შეცდომა.",
-    "enotif_mailer": "{{SITENAME}}. ელ. ფოსტით შეტყობინების სამსახური",
     "enotif_reset": "აღნიშნე ყველა გვერდი, როგორც გადასინჯული",
     "enotif_impersonal_salutation": "ვიკიპედიის მომხმარებელი",
     "enotif_subject_deleted": "გვერდი პროექტიდან „{{SITENAME}}“ სახელწოდებით „$1“ წაშალა {{gender:$2|მომხმარებელმა}} $2",
     "excontent": "შინაარსი იყო: „$1“",
     "excontentauthor": "შინაარსი იყო: „$1“ (და ერთადერთი ავტორი იყო „[[Special:Contributions/$2|$2]]“)",
     "exbeforeblank": "გვერდის შინაარსი წაშლამდე იყო შემდეგი: „$1“",
-    "exblank": "გვერდი ცარიელი იყო",
     "delete-confirm": "„$1“-ის წაშლა",
     "delete-legend": "წაშლა",
     "historywarning": "'''ყურადღება:''' გვერდს, რომლის წაშლასაც აპირებთ, აქვს დიდი ისტორია: ($1)",
     "importunknownsource": "იმპორტის წყაროს ტიპი უცნობია",
     "importcantopen": "იმპორტირებული ფაილი არ გაიხსნა",
     "importbadinterwiki": "არასწორი ინტერვიკი ბმული",
-    "importnotext": "ცარიელია",
     "importsuccess": "იმპორტი განხორციელდა!",
-    "importhistoryconflict": "არსებულ ვერსიათა კონფლიქტი. შესაძლოა იგი უკვე იქნა იმპორტირებული.",
     "importnosources": "ტრანსვიკი იმპორტის წყარო არ არის არჩეული. ცვლილებათა ისტორიის პირდაპირი ატვირთვა გათიშულია.",
     "importnofile": "საიმპორტო ფაილის ატვირთვა ვერ მოხერხდა.",
     "importuploaderrorsize": "ვერ მოხერხდა ფაილის ატვირთვა ან იმპორტირება. ფაილის ზომ არღვევს მითითებულ ზღვარს.",
index 257fb68..aad4a1c 100644 (file)
     "currentevents": "Mâmbu ya malu-malu",
     "currentevents-url": "Lukanu:Mâmbu ya malu-malu",
     "edithelp": "Lusadisu ya kusoba",
-    "helppage": "Lusadisu:Mâmbu",
     "mainpage": "Mukânda ya ngudi",
     "mainpage-description": "Mukânda ya ngudi",
     "portal": "Mbôngi",
index 84caf33..93d6dd4 100644 (file)
     "accountcreated": "Hesab vırajiya",
     "accountcreatedtext": "Serba $1i hesabê karberi vırajiya.",
     "createaccount-title": "Serba {{SITENAME}}i vırajiyaene hesabê karberi",
-    "usernamehasherror": "Namê karberi de karakteri gunê têwerte ra mebê",
     "loginlanguagelabel": "Zon: $1",
     "changepassword": "Parola bıvurne",
     "resetpass_header": "Parola hesabi bıvurne",
     "updated": "(Bi rozane)",
     "note": "'''Not:'''",
     "previewnote": "Teme! ena teyna verqeyda.'''\nVurnayışê tu hama qeyd nıbiyo!",
-    "editing": "$1 Vurnayis",
+    "editing": "$1 vurino",
     "editingsection": "Vurnaena $1 (qısım)",
     "editingcomment": "$1 vurnino (qısımo newe)",
-    "editconflict": "Têverabiyaena vurnaişi: $1",
+    "editconflict": "Têverabiyayena vurnayişi: $1",
     "yourtext": "Metnê to",
     "storedversion": "Metıno qeydkerde",
     "yourdiff": "Ferqi",
     "permissionserrorstext-withaction": "Desturê to be $2 çino, serba {{PLURAL:$1|na sebebi|nê sebebu}} ra:",
     "recreate-moveddeleted-warn": "'''Hişyari: no pel o ke şıma vırazeni vere cû vırazyayo.'''\n\nDiqet bıkeri no vurnayişê şıma re gerek esto:",
     "moveddeleted-notice": "Ma ena pele wederna.\nQe referansi logê wedernayışi bın de mocnayiya.",
-    "edit-conflict": "Têverabiyaena vurnaişi.",
+    "edit-conflict": "Têverabiyayena vurnayişi.",
     "post-expand-template-inclusion-warning": "'''Teme''': Zerrekê şabloni zaf gırso.\nTaê şabloni ilawe nêbenê.",
     "post-expand-template-inclusion-category": "Pelê ke tede gırşênia şabloni serde sono",
     "post-expand-template-argument-warning": "Hişyari: No pel de tewr tay yew şablono herayi esto.",
     "prefs-skin": "Çerme",
     "skin-preview": "Verqayt",
     "datedefault": "Tercihi çinê",
-    "prefs-datetime": "Tarix u zeman",
     "prefs-personal": "Dosya karberi",
     "prefs-rc": "Vurnaisê peyêni",
     "prefs-watchlist": "Lista şêrkerdene",
     "upload_directory_missing": "İndeksê bar-kerdena ($1)i çino u terefê ''webserver''i ra nêşikino ke bıaferiyo.",
     "upload_directory_read_only": "İndeksê bar-kerdena ($1)i terefê ''webserver''i nênuşino.",
     "uploaderror": "Xeta bar-kerdene",
-    "uploadlog": "qeydê barkerdene",
     "uploadlogpage": "Qeydê dosya barkerdene",
     "filename": "Namê dosya",
     "filedesc": "Xulasa",
     "filereuploadsummary": "Vurnaisê dosya:",
     "filestatus": "Halê heqa telifi:",
     "filesource": "Çıme:",
-    "uploadedfiles": "Dosyê barkerdey",
     "empty-file": "Dosya ke ti şawit veng biy.",
     "savefile": "Dosya qeyd ke",
     "uploadedimage": "\"[[$1]]\" bar bi",
     "filehist-dimensions": "Budi",
     "filehist-filesize": "Gırşênia dosya",
     "filehist-comment": "Areze-kerdene",
-    "filehist-missing": "Dosya vindbiyaiya",
     "imagelinks": "Gurenaisê dosya",
     "linkstoimage": "Ano {{PLURAL:$1|girê pele|$1 girê pelu}} be na dosya:",
     "nolinkstoimage": "Pelanê ser ena dosyayê link biyê çin o.",
index 0d9431d..8723143 100644 (file)
     "hidetoc": "жасыру",
     "collapsible-collapse": "Түру",
     "collapsible-expand": "Жазу",
-    "thisisdeleted": "$1 қарайсыз ба, немесе қалпына келтіресіз бе?",
+    "thisisdeleted": "$1 қарайсыз ба немесе қалпына келтіресіз бе?",
     "viewdeleted": "$1 қарайсыз ба?",
-    "restorelink": "{{PLURAL:$1|жойылған өңдеме|$1 жойылған өңдемелер}}",
+    "restorelink": "{{PLURAL:$1|жойылған өңдемені|$1 жойылған өңдемені}}",
     "feedlinks": "Арна:",
     "feed-invalid": "Жарамсыз жазылымды арна түрі.",
     "feed-unavailable": "Синдикация таспалары қолжетімсіз",
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|талқылауы]]) үшін жаңа қатысушы тіркелгісі жасалды.",
     "createaccount-title": "{{SITENAME}} үшін тіркелу",
     "createaccount-text": "Кейбіреу е-пошта мекенжайыңызды пайдаланып {{SITENAME}} жобасында ($4) «$2» атауымен, «$3» құпия сөзімен тіркелгі жасаған.\nЖобаға кіріуіңіз және құпия сөзіңізді өзгертуіңіз тиісті.\n\nЕгер бұл тіркелгі қателікпен жасалса, осы хабарға елемеуіңіз мүмкін.",
-    "usernamehasherror": "Қатысушы есіміне тор белгі нышаны енгізілмейді.",
     "login-throttled": "Сіз жүйеге кіру үшін тым көп талпыныс жасадыңыз. Өтінемін, қайта кірмес бұрын $1 күте тұрыңыз.",
     "login-abort-generic": "Жүйеге кіру үшін сәтсіз талпыныс жасадыңыз.",
     "loginlanguagelabel": "Тіл: $1",
     "prefs-skin": "Мәнерлер",
     "skin-preview": "Қарап шығу",
     "datedefault": "Еш қалаусыз",
-    "prefs-datetime": "Уақыт",
     "prefs-labs": "Тәжірибелік мүмкіндіктер",
     "prefs-user-pages": "Қатысушы беттері",
     "prefs-personal": "Жеке деректері",
     "upload-permitted": "Рұқсат етілген файл түрлері: $1.",
     "upload-preferred": "Ұнамды файл түрлері $1.",
     "upload-prohibited": "Рұқсат етілмеген файл түрлері: $1.",
-    "uploadlog": "жүктеу журналы",
     "uploadlogpage": "Жүктеу журналы",
     "uploadlogpagetext": "Төменде ең соңғы жүктелген файлдар тізімі.\nТағы көрнекі қарап шығу үшін [[Special:NewFiles|жаңа файлдар көрмесі]] дегенді қараңыз.",
     "filename": "Файл атауы",
     "filereuploadsummary": "Файлдағы өзгерістер",
     "filestatus": "Ауторлық құқықтар күйі:",
     "filesource": "Қайнар көзі:",
-    "uploadedfiles": "Жүктелген файлдар",
     "ignorewarning": "Ескетуді елеме де файлды қалайда сақта.",
     "ignorewarnings": "Ескертулерді елемеу",
     "minlength1": "Файл атауында ең кемінде бір әріп болуы жөн.",
     "overwroteimage": "«[[$1]]» деген файлдың жаңа нұсқасын жүктеді",
     "uploaddisabled": "Жүктеу өшірілген",
     "copyuploaddisabled": "URL арқылы жүктеу өшірілген.",
-    "uploadfromurl-queued": "Сіздің жүктеулеріңіз кезекте тұр.",
     "uploaddisabledtext": "Файл жүктеу өшірілген.",
     "uploadscripted": "Бұл файлда веб шолғышты қателікпен талдатқызатын HTML не әмір коды бар.",
     "uploadvirus": "Бұл файлда вирус бар! Егжей-тегжейлері: $1",
     "upload-misc-error": "Жүктеу кезіндегі белгісіз қате",
     "upload-misc-error-text": "Жүктеу кезінде белгісіз қатеге ұшырасты.\nURL жарамды және қатынаулы екенін тексеріп шығыңыз да қайта байқап көріңіз.\nЕгер бұл мәселе әлде де қалса, [[Special:ListUsers/sysop|жүйе әкімшімен]] қатынасыңыз.",
     "upload-too-many-redirects": "URL шектен тыс жылжытуларға ие",
-    "upload-unknown-size": "Белгісіз өлшем",
     "backend-fail-delete": "«$1» файлы жойылмайды.",
     "backend-fail-describe": "\"$1\" файлы үшін метадерегі өзгертілмейді.",
     "backend-fail-alreadyexists": "\"$1\" файлы бұрыннан бар.",
     "filehist-dimensions": "Өлшемдері",
     "filehist-filesize": "Файл өлшемі",
     "filehist-comment": "Пікір",
-    "filehist-missing": "Жоғалған файл",
     "imagelinks": "Файл қолданылуы",
     "linkstoimage": "Бұл файлға келесі {{PLURAL:$1|беттер|$1 бет}} сілтейді:",
     "nolinkstoimage": "Бұл файлға еш бет сілтемейді.",
     "emailuser-title-notarget": "Қатысушы е-поштасы",
     "emailpage": "Қатысушыға хат жазу",
     "emailpagetext": "Төмендегі пішін арқылы бұл {{GENDER:$1|қатысушыға}} е-пошта хабарламасын жөнелтуге болады.\n[[Special:Preferences|Қатысушы баптауыңызда]] енгізген е-пошта мекенжайыңыз «Кімнен» деген бас жолағында көрінеді, сондықтан хат алушысы тура жауап бере алады.",
-    "usermailererror": "Mail нысаны қате қайтарды:",
     "defemailsubject": "\"$1\" есімді қатысушының {{SITENAME}} е-поштасының хаты",
     "usermaildisabled": "Қатысушының электронды поштасы қосылмаған",
     "usermaildisabledtext": "Бұл уикиде басқа қатысушыларға хат жібере алмайсыз",
     "watchlist-options": "Бақылау тізімінің баптаулары",
     "watching": "Бақылауда…",
     "unwatching": "Бақыламауда…",
-    "enotif_mailer": "{{SITENAME}} ескерту хат жіберу қызметі",
     "enotif_reset": "Барлық бет келіп-кетілді деп белгіле",
     "enotif_impersonal_salutation": "{{SITENAME}} қатысушысы",
     "enotif_subject_deleted": "{{SITENAME}} $1 бетін $2 қатысушысы {{GENDER:$2|жойған}}",
     "excontent": "болған мағлұматы: '$1'",
     "excontentauthor": "болған мағлұматы (тек \"[[Special:Contributions/$2|$2]]\" үлесі): \"$1\"",
     "exbeforeblank": "тазарту алдындағы болған мағлұматы: \"$1\"",
-    "exblank": "бет бос болды",
     "delete-confirm": "«$1» дегенді жою",
     "delete-legend": "Жою",
     "historywarning": "'''Ескету:'' Жоюы көзделген бетте бет тарихында шамамен $1 {{PLURAL:$1|түзетілуі|түзетілулері}} бар:",
     "viewdeletedpage": "Жойылған беттерді қарау",
     "undeletepagetext": "Келесі {{PLURAL:$1|бет жойылған бірақ|$1 бет жойылған бірақ}} мағлұматы мұрағатта бар\nжәне қалпына келтіруге болады. Мұрағат ұдайы тазаланып тұруы мүмкін.",
     "undelete-fieldset-title": "Нұсқаларды қалпына келтіру",
-    "undeleteextrahelp": "Ð\91үкÑ\96л Ð±ÐµÑ\82Ñ\82Ñ\96 Ò\9bалпÑ\8bна ÐºÐµÐ»Ñ\82Ñ\96Ñ\80Ñ\83 Ò¯Ñ\88Ñ\96н, Ð±Ð°Ñ\80лÑ\8bÒ\9b Ò\9bÒ±Ñ\81белгÑ\96 ÐºÓ©Ð·Ð´ÐµÑ\80дÑ\96 Ð±Ð¾Ñ\81аÑ\82Ñ\8bп '''''{{int:Ò\9aалпÑ\8bна ÐºÐµÐ»Ñ\82Ñ\96Ñ\80!}}''''' Ð±Ð°Ñ\82Ñ\8bÑ\80маÑ\81Ñ\8bн Ð½Ò±Ò\9bÑ\8bÒ£Ñ\8bз.\nÐ\91өлекÑ\82еÑ\83мен Ò\9bалпÑ\8bна ÐºÐµÐ»Ñ\82Ñ\96Ñ\80Ñ\83 Ð¾Ñ\80Ñ\8bндаÑ\83 Ò¯Ñ\88Ñ\96н, ÐºÐµÐ»Ñ\82Ñ\96Ñ\80емÑ\96н Ð´ÐµÐ³ÐµÐ½ Ñ\82үзеÑ\82Ñ\83леÑ\80Ñ\96не Ñ\81Ó\99йкеÑ\81 ÐºÓ©Ð·Ð´ÐµÑ\80ге Ò\9bÒ±Ñ\81белгÑ\96 Ñ\81алÑ\8bÒ£Ñ\8bз Ð´Ð°, Ð¶Ó\99не '''''{{int:Ò\9aалпÑ\8bна ÐºÐµÐ»Ñ\82Ñ\96Ñ\80!}}''''' Ñ\82үймеÑ\81Ñ\96н Ð½Ò±Ò\9bÑ\8bÒ£Ñ\8bз. '''''Ò\9aайÑ\82а Ò\9bой''''' Ñ\82үймеÑ\81Ñ\96н Ð½Ò±Ò\9bÑ\8bÒ\93анда Ð¼Ó\99ндеме Ð°Ñ\83маÒ\93Ñ\8b Ñ\82азаÑ\80Ñ\82адÑ\8b Ð¶Ó\99не Ð±Ð°Ñ\80лÑ\8bÒ\9b Ò\9bÒ±Ñ\81белгÑ\96 ÐºÓ©Ð·Ð´ÐµÑ\80Ñ\96н Ð±Ð¾Ñ\81аÑ\82адÑ\8b.",
+    "undeleteextrahelp": "ТолÑ\8bÒ\9b Ð±ÐµÑ\82 Ñ\82аÑ\80иÑ\85Ñ\8bн Ò\9bалпÑ\8bна ÐºÐµÐ»Ñ\82Ñ\96Ñ\80Ñ\83 Ò¯Ñ\88Ñ\96н Ð±Ð°Ñ\80лÑ\8bÒ\9b Ò\9bÒ±Ñ\81белгÑ\96 ÐºÓ©Ð·Ð´ÐµÑ\80дÑ\96 Ð±Ð¾Ñ\81аÑ\82Ñ\8bп <strong><em>{{int:undeletebtn}}</em></strong> Ð±Ð°Ñ\82Ñ\8bÑ\80маÑ\81Ñ\8bн Ð½Ò±Ò\9bÑ\8bÒ£Ñ\8bз.\nÐ\91өлекÑ\82еÑ\83мен Ò\9bалпÑ\8bна ÐºÐµÐ»Ñ\82Ñ\96Ñ\80Ñ\83дÑ\96 Ð¾Ñ\80Ñ\8bндаÑ\83 Ò¯Ñ\88Ñ\96н Ò\9bалпÑ\8bна ÐºÐµÐ»Ñ\82Ñ\96Ñ\80Ñ\83 ÐºÐµÑ\80ек Ñ\82үзеÑ\82Ñ\83леÑ\80Ñ\96не Ñ\81Ó\99йкеÑ\81 ÐºÓ©Ð·Ð´ÐµÑ\80ге Ò\9bÒ±Ñ\81белгÑ\96мен Ð±ÐµÐ»Ð³Ñ\96леп <strong><em>{{int:undeletebtn}}</em></strong> Ð±Ð°Ñ\82Ñ\8bÑ\80маÑ\81Ñ\8bн Ð±Ð°Ñ\81Ñ\8bÒ£Ñ\8bз.",
     "undeleterevisions": "$1 түзету мұрағатталды",
     "undeletehistory": "Егер бет мағлұматын қалпына келтірсеңіз, тарихында барлық түзетулер да\nқайтарылады. Егер жоюдан соң дәл солай атауымен жаңа бет басталса, қалпына келтірілген түзетулер\nтарихтың алдында көрсетіледі. Тағы да файл түзетулерін қалпына келтіргенде тиымдары жойылатын ескеріңіз.",
     "undeleterevdel": "Егер бұл үстіңгі бетте аяқталса, не файл түзетуі жарым-жартылай жойылған болса, жою болдырмауы орындалмайды.\nОсындай жағдайларда, ең жаңа жойылған түзетуін алып тастауыңыз не жасыруын болдырмауыңыз жөн.",
     "undeletebtn": "Қалпына келтір!",
     "undeletelink": "қарау/қалпына келтіру",
     "undeleteviewlink": "қарау",
-    "undeleteinvert": "ТаңдалÒ\93андÑ\8b Ð°Ð»Ð¼Ð°Ñ\81Ñ\82ыру",
+    "undeleteinvert": "ТаңдалÒ\93андÑ\8b Ð¶Ð°Ñ\81ыру",
     "undeletecomment": "Себебі:",
     "undeletedrevisions": "{{PLURAL:$1|1 түзету|$1 түзету}} қалпына келтірілді",
     "undeletedrevisions-files": "{{PLURAL:$1|1 түзету|$1 түзету}} және {{PLURAL:$2|1 файл|$2 файл}} қалпына келтірілді",
     "importunknownsource": "Cырттан алынатын қайнар түрі белгісіз",
     "importcantopen": "Сырттан алынатын файл ашылмайды",
     "importbadinterwiki": "Жарамсыз уики-аралық сілтеме",
-    "importnotext": "Бұл бос, немесе мәтіні жоқ",
     "importsuccess": "Сырттан алу аяқталды!",
-    "importhistoryconflict": "Тарихында қақтығысты түзету бар (бұл бет алдында сырттан алынған сияқты)",
     "importnosources": "Уики-апару үшін сырттан алынатын еш қайнар көзі анықталмаған, және тарихын тікелей қотарып беруі өшірілген.",
     "importnofile": "Сырттан алынған файл жүктелген жоқ.",
     "importuploaderrorsize": "Сырттан алынған файлдың жүктелуі сәтсіз өтті. Файл мөлшері рұқсат етілгеннен мөлшерден асады.",
index 20ff74c..b6d6856 100644 (file)
     "currentevents": "Maannakkut pisut",
     "disclaimers": "Aalajangersagaq",
     "edithelp": "Ikiuutit",
-    "helppage": "Help:Ikiuutit",
     "mainpage": "Saqqaa",
     "mainpage-description": "Saqqaa",
     "portal": "Allattartup saqqaa",
index bb0f1ab..6eeee07 100644 (file)
@@ -36,7 +36,8 @@
             "Yknok29",
             "לערי ריינהארט",
             "관인생략",
-            "아라"
+            "아라",
+            "Keysuck"
         ]
     },
     "tog-underline": "링크에 밑줄:",
     "print": "인쇄",
     "view": "보기",
     "edit": "편집",
+    "edit-local": "로컬 설명 편집",
     "create": "만들기",
+    "create-local": "로컬 설명 추가",
     "editthispage": "이 문서 편집하기",
     "create-this-page": "이 문서 만들기",
     "delete": "삭제",
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|토론]]) 사용자 계정이 만들어졌습니다.",
     "createaccount-title": "{{SITENAME}} 계정 만들기",
     "createaccount-text": "누군가가 {{SITENAME}} ($4)에서 사용자 이름 \"$2\", 비밀번호 \"$3\"로 당신의 이메일 주소가 등록된 계정을 만들었습니다. \n지금 로그인하여 비밀번호를 바꾸십시오.\n\n실수로 계정을 잘못 만들었다면 이 메시지는 무시해도 됩니다.",
-    "usernamehasherror": "사용자 계정 이름에는 해시 문자가 들어갈 수 없습니다",
     "login-throttled": "로그인에 연속으로 실패하였습니다.\n$1 기다렸다가 다시 시도하세요.",
     "login-abort-generic": "로그인에 실패했습니다 - 중지됨",
     "loginlanguagelabel": "언어: $1",
     "resetpass_header": "비밀번호 바꾸기",
     "oldpassword": "이전 비밀번호:",
     "newpassword": "새 비밀번호:",
-    "retypenew": "새 비밀번호 입력:",
+    "retypenew": "새 비밀번호 다시 입력:",
     "resetpass_submit": "비밀번호를 설정하고 로그인하기",
     "changepassword-success": "비밀번호가 성공적으로 바뀌었습니다!",
     "changepassword-throttled": "최근 너무 많이 로그인을 시도했습니다.\n$1 뒤에 다시 시도하세요.",
     "noarticletext": "이 문서가 현재 존재하지 않습니다.\n이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|검색하거나]],\n이 문서에 관련된 <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인하거나,\n문서를 직접 [{{fullurl:{{FULLPAGENAME}}|action=edit}} 편집]</span>할 수 있습니다.",
     "noarticletext-nopermission": "이 문서가 현재 존재하지 않습니다.\n이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|검색하거나]], 이 문서에 관련된 <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인할 수 있습니다.</span> 그러나 이 문서를 만들 수 있는 권한은 없습니다.",
     "missing-revision": "\"{{FULLPAGENAME}}\"이라는 문서의 #$1판이 존재하지 않습니다.\n\n이 문제는 주로 삭제된 문서를 가리키는 오래된 문서 역사 링크로 인해 발생합니다.\n자세한 내용은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 확인할 수 있습니다.",
-    "userpage-userdoesnotexist": "\"$1\" 계정은 등록되어 있지 않습니다.\n이 문서를 만들거나 편집하려면 계정이 존재 하는지 확인해주세요.",
+    "userpage-userdoesnotexist": "\"$1\" 사용자 계정은 등록되어 있지 않습니다.\n이 문서를 만들거나 편집하려면 계정이 존재하는지 확인해주세요.",
     "userpage-userdoesnotexist-view": "\"$1\" 사용자 계정은 등록되지 않았습니다.",
     "blocked-notice-logextract": "이 사용자는 현재 차단되어 있습니다.\n해당 사용자의 최근 차단 기록을 참고하십시오:",
     "clearyourcache": "'''참고:''' 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.\n* '''파이어폭스 / 사파리''': ''Shift'' 키를 누르면서 새로 고침을 클릭하거나, ''Ctrl-F5'' 또는 ''Ctrl-R'' 을 입력 (Mac에서는 ''⌘-R'')\n* '''구글 크롬''': ''Ctrl-Shift-R''키를 입력 (Mac에서는 ''⌘-Shift-R'')\n* '''인터넷 익스플로러''': ''Ctrl'' 키를 누르면서 새로 고침을 클릭하거나, ''Ctrl-F5''를 입력.\n* '''오페라''': ''도구→설정''에서 캐시를 비움",
     "prefs-skin": "스킨",
     "skin-preview": "미리 보기",
     "datedefault": "기본 값",
-    "prefs-datetime": "날짜와 시각",
     "prefs-labs": "실험 중인 기능",
     "prefs-user-pages": "사용자 문서",
     "prefs-personal": "사용자 정보",
     "upload-permitted": "허용하는 파일 확장자: $1",
     "upload-preferred": "권장하는 파일 확장자: $1",
     "upload-prohibited": "금지하는 파일 확장자: $1",
-    "uploadlog": "올리기 기록",
     "uploadlogpage": "올리기 기록",
     "uploadlogpagetext": "최근 올라온 파일 목록입니다.\n갤러리 형식으로 확인하고 싶으시다면 [[Special:NewFiles|새 파일 목록]]을 보세요.",
     "filename": "파일 이름",
     "filereuploadsummary": "파일의 바뀜:",
     "filestatus": "저작권 상태:",
     "filesource": "출처:",
-    "uploadedfiles": "파일 올리기",
     "ignorewarning": "경고를 무시하고 파일 저장",
     "ignorewarnings": "모든 경고 무시하기",
     "minlength1": "파일 이름은 적어도 1글자 이상이어야 합니다.",
     "fileexists": "같은 이름의 파일이 이미 있습니다. 파일을 바꾸고 싶지 않다면 <strong>[[:$1]]</strong> 파일을 확인해 주세요.\n[[$1|thumb]]",
     "filepageexists": "이 파일의 설명 문서가 <strong>[[:$1]]</strong>에 존재하지만, 이 이름을 가진 파일이 존재하지 않습니다.\n입력한 설명은 설명 문서에 반영되지 않을 것입니다.\n설명을 반영시키려면, 직접 편집하셔야 합니다.\n[[$1|thumb]]",
     "fileexists-extension": "비슷한 이름의 파일이 존재합니다: [[$2|thumb]]\n* 올리려는 파일 이름: <strong>[[:$1]]</strong>\n* 존재하는 파일 이름: <strong>[[:$2]]</strong>\n다른 이름으로 선택하세요.",
-    "fileexists-thumbnail-yes": "이 파일은 원본 그림이 아닌, 다른 그림의 크기를 줄인 섬네일 파일인 것 같습니다.\n[[$1|thumb]]\n<strong>[[:$1]]</strong> 파일을 확인하세요.\n해당 파일이 현재 올리려는 파일과 같다면 더 작은 크기의 그림을 올릴 필요는 없습니다.",
-    "file-thumbnail-no": "파일 이름이 <strong>$1</strong>으로 시작합니다.\n이 파일은 원본 그림이 아닌, 다른 그림의 크기를 줄인 섬네일 파일인 것 같습니다.\n더 해상도가 좋은 파일이 있다면 그 파일을 올리거나 아니면 올리려는 파일 이름을 바꾸세요.",
+    "fileexists-thumbnail-yes": "파일은 그림의 크기를 줄인 (섬네일) 파일인 것 같습니다.\n[[$1|thumb]]\n<strong>[[:$1]]</strong> 파일을 확인하세요.\n해당 파일이 현재 올리려는 파일과 같다면 더 작은 크기의 그림을 올릴 필요는 없습니다.",
+    "file-thumbnail-no": "파일 이름이 <strong>$1</strong>으로 시작합니다.\n이 파일은 그림의 크기를 줄인 (섬네일) 파일인 것 같습니다.\n더 해상도가 좋은 파일이 있다면 그 파일을 올리거나 아니면 올리려는 파일 이름을 바꾸세요.",
     "fileexists-forbidden": "같은 이름의 파일이 이미 있고, 덮어쓸 수 없습니다.\n그래도 파일을 올리시려면, 뒤로 돌아가서 다른 이름으로 시도해 주시기 바랍니다.\n[[File:$1|thumb|center|$1]]",
     "fileexists-shared-forbidden": "같은 이름의 파일이 이미 위키미디어 공용에 있습니다.\n그래도 파일을 올리려면 뒤로 돌아가서 다른 이름으로 시도해 주시기 바랍니다.\n[[File:$1|thumb|center|$1]]",
     "file-exists-duplicate": "현재 올리고 있는 {{PLURAL:$1|파일}}이 아래 파일과 중복됩니다:",
     "overwroteimage": "사용자가 \"[[$1]]\" 파일의 새 판을 올렸습니다.",
     "uploaddisabled": "올리기 비활성화됨",
     "copyuploaddisabled": "URL로 파일 올리기가 비활성화되어 있습니다.",
-    "uploadfromurl-queued": "올리기 명령이 대기열에 추가됐습니다.",
     "uploaddisabledtext": "파일 올리기 기능이 비활성화되어 있습니다.",
     "php-uploaddisabledtext": "PHP 파일 올리기가 비활성화되었습니다. 파일 올리기 설정을 확인하십시오.",
     "uploadscripted": "이 파일에는 HTML이나 다른 스크립트 코드가 포함되어 있어, 웹 브라우저에서 오류를 일으킬 수 있습니다.",
     "upload-misc-error": "알 수 없는 파일 올리기 오류",
     "upload-misc-error-text": "파일을 올리는 중 알 수 없는 오류가 발생했습니다.\nURL이 올바르고 접근 가능한지를 확인하고 다시 시도하세요.\n문제가 계속되면 [[Special:ListUsers/sysop|관리자]]에게 연락해주세요.",
     "upload-too-many-redirects": "URL이 너무 많은 넘겨주기를 포함하고 있습니다.",
-    "upload-unknown-size": "크기를 알 수 없음",
     "upload-http-error": "HTTP 오류 발생: $1",
     "upload-copy-upload-invalid-domain": "이 도메인에 속하지 않는 웹사이트의 파일을 올릴 수 없습니다.",
     "backend-fail-stream": "\"$1\" 파일을 스트림할 수 없습니다.",
     "img-auth-streaming": "\"$1\" 파일을 전송하는 중입니다.",
     "img-auth-public": "img_auth.php는 개인 위키 파일을 바깥 사이트로 전송하는 기능입니다.\n이 기능은 기본적으로 공개적인 위키에서 사용하도록 설계되어 있습니다.\n보안적인 문제로 기본적으로 img_auth.php 기능은 비활성화되어 있습니다.",
     "img-auth-noread": "\"$1\" 파일을 볼 권한이 없습니다.",
-    "img-auth-bad-query-string": "URL에 잘못된 쿼리 문자열이 있습니다.",
     "http-invalid-url": "잘못된 URL: $1",
     "http-invalid-scheme": "\"$1\"로 시작하는 URL은 지원되지 않습니다.",
     "http-request-error": "알 수 없는 오류로 HTTP 요청에 실패했습니다.",
     "filehist-dimensions": "크기",
     "filehist-filesize": "파일 크기",
     "filehist-comment": "덧글",
-    "filehist-missing": "파일이 없음",
     "imagelinks": "이 파일을 사용하는 문서",
     "linkstoimage": "다음 {{PLURAL:$1|문서 $1개}}가 이 파일을 가리키고 있습니다:",
     "linkstoimage-more": "$1개 이상의 {{PLURAL:$1|문서}}가 이 파일을 가리키고 있습니다.\n다음 목록은 이 파일을 {{PLURAL:$1|가리키는 처음 문서 $1개}}만 보여주고 있습니다.\n이 파일을 가리키는 [[Special:WhatLinksHere/$2|모든 문서 목록]]을 볼 수 있습니다.",
     "listgrouprights-removegroup-self": "자신에게서 다음 {{PLURAL:$2|권한}}을 해제: $1",
     "listgrouprights-addgroup-self-all": "자신에게 모든 권한을 부여",
     "listgrouprights-removegroup-self-all": "자신의 계정에서 모든 권한을 해제",
+    "trackingcategories-name": "메시지 이름",
     "mailnologin": "보낼 이메일 주소가 없음",
     "mailnologintext": "다른 사용자에게 이메일을 보내려면 [[Special:UserLogin|로그인]]한 다음 [[Special:Preferences|사용자 환경 설정]]에서 자신의 이메일 주소를 저장해야 합니다.",
     "emailuser": "이메일 보내기",
     "emailuser-title-notarget": "사용자에게 이메일 보내기",
     "emailpage": "사용자에게 이메일 보내기",
     "emailpagetext": "이 {{GENDER:$1|사용자}}가 환경 설정에 올바른 이메일 주소를 적었다면, 아래 양식을 통해 이메일을 보낼 수 있습니다.\n이메일을 받은 사용자가 바로 답장할 수 있도록 하기 위해 [[Special:Preferences|사용자 환경 설정]]에 적은 이메일 주소가 \"보내는 사람\" 정보에 들어갑니다. 따라서 받는 사람이 당신에게 직접 답장을 보낼 수 있습니다.",
-    "usermailererror": "메일 개체에서 오류 발생:",
     "defemailsubject": "\"$1\" 사용자가 보낸 {{SITENAME}} 이메일",
     "usermaildisabled": "사용자 이메일 비활성화됨",
     "usermaildisabledtext": "이 위키에서 다른 사용자에게 메일을 보낼 수 없습니다",
     "noemailtitle": "이메일 주소 없음",
     "noemailtext": "이 사용자는 올바른 이메일 주소를 입력하지 않았습니다.",
-    "nowikiemailtitle": "이메일이 허용되지 않음",
     "nowikiemailtext": "이 사용자는 다른 사용자로부터의 이메일을 받지 않도록 설정하였습니다.",
     "emailnotarget": "없는 사용자를 받는 이로 지정하였거나 사용자 이름이 잘못되었습니다.",
     "emailtarget": "받는 사용자 이름 입력",
     "watching": "주시 추가 중…",
     "unwatching": "주시 해제 중…",
     "watcherrortext": "\"$1\" 문서에 대한 주시 여부를 바꾸는 중 오류가 발생했습니다.",
-    "enotif_mailer": "{{SITENAME}} 자동 알림 메일",
     "enotif_reset": "모든 문서를 방문한 것으로 표시하기",
     "enotif_impersonal_salutation": "{{SITENAME}} 사용자",
     "enotif_subject_deleted": "{{SITENAME}} $1 문서를 $2 사용자가 {{GENDER:$2|삭제했습니다}}",
     "excontent": "내용: \"$1\"",
     "excontentauthor": "내용: \"$1\" (유일한 편집자는 \"[[Special:Contributions/$2|$2]]\")",
     "exbeforeblank": "비우기 전의 내용: \"$1\"",
-    "exblank": "빈 문서",
     "delete-confirm": "\"$1\" 삭제",
     "delete-legend": "삭제",
     "historywarning": "'''경고:''' 삭제하려는 문서에 이전 {{PLURAL:$1|편집 역사}} 약 $1개가 있습니다:",
     "thumbnail_error_remote": "$1에서 반환한 오류 메시지:\n$2",
     "djvu_page_error": "DjVu 페이지 범위 벗어남",
     "djvu_no_xml": "DjVu 파일의 XML 정보를 읽을 수 없음",
-    "thumbnail-temp-create": "임시 섬네일 파일을 만들 수 없습니다.",
+    "thumbnail-temp-create": "임시 섬네일 파일을 만들 수 없습니다",
     "thumbnail-dest-create": "대상 경로에 섬네일을 저장할 수 없습니다.",
-    "thumbnail_invalid_params": "ì\84¬ë\84¤ì\9d¼ ë§¤ê°\9cë³\80ì\88\98ê°\80 ì\9e\98못ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤.",
+    "thumbnail_invalid_params": "ì\84¬ë\84¤ì\9d¼ ë³\80ì\88\98ê°\80 ì\9e\98못ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤",
     "thumbnail_dest_directory": "새 목적 디렉터리를 만들 수 없습니다.",
     "thumbnail_image-type": "그림 형식이 지원되지 않습니다",
     "thumbnail_gd-library": "GD 라이브러리 설정이 잘못되었습니다: $1 함수를 찾을 수 없습니다.",
     "importunknownsource": "알 수 없는 가져오기 원본 유형",
     "importcantopen": "파일을 열 수 없습니다.",
     "importbadinterwiki": "인터위키 링크가 잘못되었습니다.",
-    "importnotext": "내용이 없습니다",
     "importsuccess": "가져오기 완료!",
-    "importhistoryconflict": "문서 역사가 충돌하는 판이 있습니다. (이전에 이 문서를 가져온 적이 있을 수도 있습니다)",
     "importnosources": "문서를 가져올 출처가 정의되지 않았고 문서 역사 올리기가 비활성화되었습니다.",
     "importnofile": "가져오기용 파일이 올려지지 않았습니다.",
     "importuploaderrorsize": "파일 올리기를 통한 가져오기에 실패했습니다.\n파일이 허용된 크기 제한보다 큽니다.",
     "api-error-illegal-filename": "이 파일 이름을 사용할 수 없습니다.",
     "api-error-internal-error": "내부 오류: 올린 파일을 위키에서 처리하는 중 어떤 문제가 발생했습니다.",
     "api-error-invalid-file-key": "내부 오류: 임시 저장소에서 파일을 찾지 못했습니다.",
-    "api-error-missingparam": "내부 오류: 요청 중 매개변수가 누락되었습니다.",
+    "api-error-missingparam": "내부 오류: 요청에 변수가 없습니다.",
     "api-error-missingresult": "내부 오류: 파일의 복제가 성공했는지 판단할 수 없습니다.",
     "api-error-mustbeloggedin": "파일을 올리려면 로그인해야 합니다.",
     "api-error-mustbeposted": "내부 오류: HTTP POST에 요청이 필요합니다.",
index e74b94b..8b71870 100644 (file)
     "disclaimers": "Мийö сöстöмöсь йöз одзын",
     "disclaimerpage": "Project:Мийö сöстöмöсь йöз одзын",
     "edithelp": "Уджкерись понда отсöт",
-    "helppage": "Help:Отсöт",
     "mainpage": "Пондöтчан листбок",
     "mainpage-description": "Пондöтчан листбок",
     "privacy": "Астор дорьян йылiсь",
index 577a4a7..0e3cab7 100644 (file)
     "accountcreatedtext": "$1 къошулуучугъа тергеу джазыу (аккаунт) къуралды.",
     "createaccount-title": "{{SITENAME}}: тергеу джазыу (аккаунт) къурау",
     "createaccount-text": "Ким эсе да, электрон почтагъызны адресин джазыб  {{SITENAME}} ($4) проектде «$3» пароль бла «$2» тергеу джазыу (аккаунт) къурагъанды. Сиз кириб паролну тюрлендирсегиз тыйыншлыды.\n\nТергеу джазыуну (аккаунтну) халат бла къурагъан эсегиз, игнор этигиз да къоюгъуз бу билдириуню.",
-    "usernamehasherror": "Къошулуучуну атында «#» символ болургъа джарамайда.",
     "login-throttled": "Сиз асыры кёб кере кирирге кюрешгенсиз.\nДжангыдан кёргюнчю бираз заман ётдюрюгюз.",
     "login-abort-generic": "Системагъа кириу джетишимсиз болду",
     "loginlanguagelabel": "Тил: $1",
     "prefs-skin": "Джасауу",
     "skin-preview": "Ал къарау",
     "datedefault": "Сайлау джокъду",
-    "prefs-datetime": "Дата бла сагъат",
     "prefs-labs": "Эксперимент амалла",
     "prefs-user-pages": "Къошулуучуну бетлери",
     "prefs-personal": "Энчи билгиле",
     "upload-permitted": "Эркинлик берилген файлланы типлери: $1.",
     "upload-preferred": "Изленнген файлланы типлери: $1.",
     "upload-prohibited": "Джасакъ этилген файлланы типлери: $1.",
-    "uploadlog": "Джюклеулени журналы",
     "uploadlogpage": "Джюклеулени журналы",
     "uploadlogpagetext": "Тюбюнде эм ахыр къошулгъан файлланы тизмеси барды.\nДагъыда [[Special:NewFiles|dosyalджангы файлланы галереясына]] къара, анда джангы джюклеулени юсюнден билгиле толу кёрюгюзюлгендиле.",
     "filename": "Файлны аты",
     "filereuploadsummary": "Файлны тюрлениулери:",
     "filestatus": "Джайылыу хакълары:",
     "filesource": "Къайнакъ:",
-    "uploadedfiles": "Джюкленнген файлла",
     "ignorewarning": "Эсгертиулеге къарамай сакълат файлны",
     "ignorewarnings": "Эсгертиулеге къарама",
     "minlength1": "Файлны аты эм азы бла бир харифден болургъа керекди.",
     "overwroteimage": "«[[$1]]» суратны джангы версиясы джюкленнгенди",
     "uploaddisabled": "Джюклеуге эркинлик джокъду",
     "copyuploaddisabled": "URL кёре джюклеу джукъланыбды.",
-    "uploadfromurl-queued": "Сизни джюклеуюгюз кёзюуге салыннганды.",
     "uploaddisabledtext": "Файлланы джюклеу мадар джукъланыбды",
     "php-uploaddisabledtext": "PHP-да файл джюклеу амал джукъланыбды.\nfile_uploads джарашдырыулагъа бир къарагъыз.",
     "uploadscripted": "Бу файл, браузер бла халатлы таныргъа боллукъ, HTML-код неда скрипт джюрютеди.",
     "upload-misc-error": "Билинмеген джюклеу халат",
     "upload-misc-error-text": "Джюклеуню кёзюуюнде билинмеген халат болду.\nURL-адрес тюз болгъанын осмакълагъыз эмда джангыдан сынагъыз.\nПроблема джангыдан чыкъса, [[Special:ListUsers/sysop|администраторгъа]] джазыгъыз.",
     "upload-too-many-redirects": "URL асыры кёб джибериу тутады",
-    "upload-unknown-size": "Билинмеген ёлчем",
     "upload-http-error": "HTTP хата болду: $1",
     "backend-fail-stream": "«$1» файл окъулмады.",
     "backend-fail-backup": "«$1» файлны резерв копиясын этерге болмайды.",
     "filehist-dimensions": "Ёлчеми",
     "filehist-filesize": "Файлны ёлчеми",
     "filehist-comment": "Эсгериу",
-    "filehist-missing": "Файл джокъду",
     "imagelinks": "Файлны хайырланыуу",
     "linkstoimage": "Бу файлгъа {{PLURAL:$1|1=бет|$1 бет}} джибередиле:",
     "linkstoimage-more": "$1 дегенден артыкъ {{PLURAL:$1|бет}} бу файлгъа джибериу береди.\nБу тизмеде бу файлгъа {{PLURAL:$1|къуру $1 джибериу}} кёргюзюледи.\n[[Special:WhatLinksHere/$2|Толу тизме]] да барды.",
     "emailuser-title-notarget": "Электрон джазма джазыу",
     "emailpage": "Къошулуучугъа письмо джибер",
     "emailpagetext": "Бу къошулуучуну почтасына письмо джиберир ючюн бу форманы толтурургъа боллукъсуз.\nЫзына адрес болуб, сиз [[Special:Preferences|джарашдырыуларыгъызда]] джазгъан адрес белгиленникди, ол себебден сизни письмогъузну аллыкъ сизге тюз джууаб берирге мадарлы боллукъду.",
-    "usermailererror": "Халат ючюн элетктрон письмо ызына къайтды:",
     "defemailsubject": "{{SITENAME}} — $1 къошулуучудан билдириу",
     "usermaildisabled": "Къошулуучуну электрон почтасы джукъланыбды",
     "usermaildisabledtext": "Сиз бу викини башха къошулуучуларына электрон письмола джиберелмейсиз",
     "noemailtitle": "Электрон почтаны адреси джокъду",
     "noemailtext": "Бу къошулуучу керти электрон адресин бермегенди.",
-    "nowikiemailtitle": "Электрон письмо джиберирге эркинлик джокъду",
     "nowikiemailtext": "Бу къошулуучу, башха къошулуучуладан электрон писмо алыргъа излемегенин билдиргенди.",
     "emailtarget": "Аллыкъ къошулуучуну атын джазыгъыз",
     "emailusername": "Къошулуучуну аты:",
     "watchlist-options": "Кёзде тургъан тизмени джарашдырыулары",
     "watching": "Кёзде тургъан тизмеге къошуу...",
     "unwatching": "Кёзде тургъан тизмеден кетериу...",
-    "enotif_mailer": "{{SITENAME}} Билдириу Почта",
     "enotif_reset": "Бютеу бетлени къаралгъанча белгиле",
     "enotif_impersonal_salutation": "{{SITENAME}} къошулуучу",
     "enotif_lastvisited": "Ахыр кириуюгюзден бу кереге дери болгъан бютеу тюрлениулени кёрюр ючюн $1-ге къара.",
     "excontent": "ичиндеги: $1",
     "excontentauthor": "ичиндеги: «$1» (юлюш къошхан джангыз къошулуучу [[Special:Contributions/$2|$2]] эди)",
     "exbeforeblank": "Кетериуню алындагъы ичи: '$1'",
-    "exblank": "бет бош эди",
     "delete-confirm": "«$1» — кетериу",
     "delete-legend": "Кетер",
     "historywarning": "'''Эсгериу:''' кетериле тургъан бетни $1 {{PLURAL:$1|1=версиялы|версиялы}} тарихи барды:",
     "importunknownsource": "Билинмеген импорт къайнакъ типи",
     "importcantopen": "Импорт этилген файл ачылалмады",
     "importbadinterwiki": "Терс интер-вики джибериу",
-    "importnotext": "Бош неда текст джокъду",
     "importsuccess": "Импорт этилиб бошады!",
-    "importhistoryconflict": "Бар болгъан версияланы арасында уруш (бу бет алгъаракъ импорт этилген болур)",
     "importnosources": "Викиле арасы къайнакъ сайланмагъанды эм  тюрлендириулени тарихини тюз джюклеую джукъланыбды.",
     "importnofile": "Импорт ючюн файл джюкленмегенди.",
     "importuploaderrorsize": "Импорт этилген  файлны джюклеую джетишимсиз болду.\nФайл, эркинлик берилген джюклеу ёлчеминден уллуду.",
index bcbcb53..01ba585 100644 (file)
     "disclaimers": "Disklamardèm",
     "disclaimerpage": "Projèkt:Jènèral disklamar",
     "edithelp": "Èdithèp",
-    "helppage": "Help:Kòntèntdèm",
     "mainpage": "Men Pej",
     "mainpage-description": "Men Pej",
     "policy-url": "Project:Pòlisia",
index 921899c..ff80917 100644 (file)
     "print": "Drécken",
     "view": "Weisen",
     "edit": "Änneren",
+    "edit-local": "Lokal Beschreiwung änneren",
     "create": "Uleeën",
+    "create-local": "Lokal Beschreiwung derbäisetzen",
     "editthispage": "Dës Säit änneren",
     "create-this-page": "Dës Säit uleeën",
     "delete": "Läschen",
     "accountcreatedtext": "De Benotzerkont fir [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|Diskussioun]]) gouf geschaf.",
     "createaccount-title": "Opmaache vun engem Benotzerkont op {{SITENAME}}",
     "createaccount-text": "Et gouf e Benotzerkont \"$2\" fir Iech op {{SITENAME}} ($4) ugeluecht mat dem Passwuert \"$3\".\nDir sollt Iech aloggen an Äert Passwuert elo änneren.\n\nWann dëse Benotzerkont ongewollt ugeluecht gouf, kënnt Dir dës Noriicht einfach ignoréieren.",
-    "usernamehasherror": "Am Benotzernumm däerfe keng ''hash'' Zeeche sinn",
     "login-throttled": "Dir hutt zevill dacks versicht Iech anzeloggen.\nWaart w.e.g. $1 ier Dir et nach eng Kéier probéiert.",
     "login-abort-generic": "Dir sidd net ageloggt - Aloggen ofgebrach",
     "loginlanguagelabel": "Sprooch: $1",
     "prefs-skin": "Skin",
     "skin-preview": "Kucken",
     "datedefault": "Egal (Standard)",
-    "prefs-datetime": "Datum an Auerzäit",
     "prefs-labs": "\"Labs\"-Funktiounen",
     "prefs-user-pages": "Benotzersäiten",
     "prefs-personal": "Benotzerprofil",
     "upload-permitted": "Erlaabt Formater vun de Fichieren: $1.",
     "upload-preferred": "Fichierszorten déi am beschte funktionéieren: $1.",
     "upload-prohibited": "Verbuede Fichiers Formater: $1.",
-    "uploadlog": "Lëscht vun den eropgeluedene Fichieren",
     "uploadlogpage": "Logbuch vum Eroplueden",
     "uploadlogpagetext": "Dëst ass d'Lëscht vun de rezente Fichieren déi eropgeluede goufen.\nKuckt [[Special:NewFiles|d'Gallerie vun de neie Fichieren]] wann Dir méi e visuellen Iwwerbléck wëllt",
     "filename": "Numm vum Fichier",
     "filereuploadsummary": "Ännerunge vum Fichier:",
     "filestatus": "Copyright Status:",
     "filesource": "Quell:",
-    "uploadedfiles": "Eropgeluede Fichieren",
     "ignorewarning": "Warnung ignoréieren an de Fichier nawell späicheren",
     "ignorewarnings": "Ignoréier all Iwwerschreiwungswarnungen",
     "minlength1": "D'Nimm vu Fichiere musse mindestens e Buschtaf am Numm hunn.",
     "overwroteimage": "huet eng nei Versioun vun \"[[$1]]\" eropgelueden",
     "uploaddisabled": "Pardon, d'Eropluede vu Fichieren ass ausgeschalt.",
     "copyuploaddisabled": "D'Eroplueden iwwer URL ass desaktivéiert.",
-    "uploadfromurl-queued": "Dat wat Dir eropgelueden hutt gouf an d'Waardelëscht agedroen.",
     "uploaddisabledtext": "D'Eropluede vu Fichieren ass ausgeschalt.",
     "php-uploaddisabledtext": "D'Eropluede vu Fichieren ass am PHP desaktivéiert. Kuckt w.e.g. d'Astellung ''file_uploads'' no.",
     "uploadscripted": "An dësem Fichier ass HTML- oder Scriptcode, dee vun engem Webbrowser falsch interpretéiert kéint ginn.",
     "upload-misc-error": "Onbekannte Feeler beim Eroplueden",
     "upload-misc-error-text": "Beim Eroplueden ass en onbekannte Feeler geschitt.\nKuckt d'URL w.e.g. no, a vergewëssert iech datt d'Säit online ass a probéiert et dann nach eng Kéier.\nWann de Problem weider besteet, dann un de [[Special:ListUsers/sysop|Administrateuren]].",
     "upload-too-many-redirects": "Et waren zevill Viruleedungen fir d'URL do",
-    "upload-unknown-size": "Onbekannte Gréisst",
     "upload-http-error": "Et ass en HTTP-Feeler geschitt: $1",
     "upload-copy-upload-invalid-domain": "Vun dësem Domain ass d'Eropluede vu Kopien net méiglech.",
     "backend-fail-stream": "De Fichier $1 konnt net iwwerdroe ginn.",
     "img-auth-streaming": "\"$1\" lueden.",
     "img-auth-public": "D'Funktioun img_auth.php erlaabt et fir Fichieren vun enger privater Wiki erauszeginn.\nDës Wiki ass als ëffentlech Wiki konfiguréiert.\nFir eng optimal Sécherheet ass img_auth.php ausgeschalt.",
     "img-auth-noread": "De Benotzer hut keen Zougang fir \"$1\" ze liesen",
-    "img-auth-bad-query-string": "D'URL huet eng net valabel Rei vun Zeechen.",
     "http-invalid-url": "Net-valabel URL: $1",
     "http-invalid-scheme": "URLe mam Schema \"$1\" ginn net ënnerstëtzt",
     "http-request-error": "D'HTTP-Ufro huet wéinst engem onbekannte Feeler net funktionéiert.",
     "filehist-dimensions": "Dimensiounen",
     "filehist-filesize": "Gréisst vum Fichier",
     "filehist-comment": "Bemierkung",
-    "filehist-missing": "Fichier feelt",
     "imagelinks": "Benotze vu Fichieren",
     "linkstoimage": "Dës {{PLURAL:$1|Säit benotzt|Säite benotzen}} dëse Fichier:",
     "linkstoimage-more": "Méi wéi {{PLURAL:$1|eng Säit ass|$1 Säite si}} mat dësem Fichier verlinkt.\nDës Lëscht weist nëmmen {{PLURAL:$1|den éischte Link|déi éischt $1 Linken}} op dëse Fichier.\nEng [[Special:WhatLinksHere/$2|komplett Lëscht]] ass disponibel.",
     "emailuser-title-notarget": "Dem Benotzer eng E-Mail schécken",
     "emailpage": "Dem Benotzer eng E-Mail schécken",
     "emailpagetext": "Dir kënnt mat dësem Formulaire {{GENDER:$1|dësem Benotzer}} en E-Mail-Message schécken.\nD'E-Mail-Adress, déi Dir an [[Special:Preferences|Ären Astellungen]] aginn hutt, steet an der \"From\" Adress vun der Mail, sou datt den Destinataire Iech direkt äntwerte kann.",
-    "usermailererror": "E-Mail-Objet mellt deen heite Feeler:",
     "defemailsubject": "{{SITENAME}} E-Mail vum Benotzer \"$1\"",
     "usermaildisabled": "Benotzer E-Mail ausgeschalt",
     "usermaildisabledtext": "Dir kënnt op dëser Wiki anere Benotzer keng E-Mail schécken",
     "noemailtitle": "Keng E-Mailadress",
     "noemailtext": "Dëse Benotzer huet keng valabel E-Mail-Adress uginn.",
-    "nowikiemailtitle": "Keng E-Mail erlaabt",
     "nowikiemailtext": "Dëse Benotzer wëllt keng E-Maile vun anere Benotzer kréien.",
     "emailnotarget": "Et gëtt keen oder just een net valabele Benotzernumm fir den Empfänger.",
     "emailtarget": "Gitt de Benotzernumm vum Empfänger an",
     "watching": "Iwwerwaachen …",
     "unwatching": "Net méi iwwerwaachen …",
     "watcherrortext": "Beim Ännere vun den Astellunge vun der Iwwerwaachungslëscht fir \"$1\" ass e Feeler geschitt.",
-    "enotif_mailer": "{{SITENAME}} E-Mail-Informatiounssystem",
     "enotif_reset": "All Säiten als besicht markéieren",
     "enotif_impersonal_salutation": "{{SITENAME}}-Benotzer",
     "enotif_subject_deleted": "D'{{SITENAME}}-Säit $1 gouf vum {{gender:$2|$2}} geläscht",
     "excontent": "Inhalt war: '$1'",
     "excontentauthor": "Op der Säit stoung: '$1' (An als eenzegen dru geschriwwen hat de Benotzer '[[Special:Contributions/$2|$2]]').",
     "exbeforeblank": "Den Inhalt virum Läsche war: '$1'",
-    "exblank": "D'Säit war eidel",
     "delete-confirm": "Läsche vu(n) \"$1\"",
     "delete-legend": "Läschen",
     "historywarning": "'''Opgepasst:''' Déi Säit déi Dir läsche wëllt huet en Historique mat ongeféier $1 {{PLURAL:$1|Versioun|Versiounen}}:",
     "importunknownsource": "Onbekannt Importquell",
     "importcantopen": "De Fichier dee sollt importéiert gi konnt net opgemaach ginn",
     "importbadinterwiki": "Falschen Interwiki-Link",
-    "importnotext": "Eidel oder keen Text",
     "importsuccess": "Den Import ass fäerdeg!",
-    "importhistoryconflict": "Et gëtt Konflikter am Historique vun de Versiounen, (méiglecherweis gouf dës Säit virdrun importéiert).",
     "importnosources": "Fir den Transwiki-Import si keng Quellen definéiert an et ass net méiglech fir Säite mat alle Versiounen aus dem Transwiki-Tëschespäicher eropzelueden.",
     "importnofile": "Et gouf keen importéierte Fichier eropgelueden",
     "importuploaderrorsize": "D'Eropluede vum importéierte Fichier huet net funktionéiert. De Fichier ass méi grouss wéi maximal erlaabt.",
index 4d99866..f91cd20 100644 (file)
     "disclaimers": "Kūondõkst",
     "disclaimerpage": "Project:Kūondõkst",
     "edithelp": "Redigīerimiz opātõks",
-    "helppage": "Help:Sižāli",
     "mainpage": "Eḑḑilēḑ",
     "mainpage-description": "Eḑḑilēḑ",
     "portal": "Kubgõnd vǟrõd",
index 5810392..a55ee5c 100644 (file)
     "accountcreated": "Konts izveidots",
     "accountcreatedtext": "Lietotāja konts priekš $1 tika izveidots.",
     "createaccount-title": "Lietotāja konta izveidošana {{grammar:lokatīvs|{{SITENAME}}}}",
-    "usernamehasherror": "Lietotājvārds nevar saturēt hash simbolus",
     "login-throttled": "Jūs esat veicis pārāk daudz pieslēgšanās mēģinājumus.\nLūdzu, uzgaidiet $1 pirms mēģiniet vēlreiz.",
     "login-abort-generic": "Jūsu pieteikšanās bija neveiksmīga — Darbība pārtraukta",
     "loginlanguagelabel": "Valoda: $1",
     "showhideselectedversions": "Rādīt/slēpt izvēlētās versijas",
     "editundo": "atcelt",
     "diff-empty": "(Nav atšķirību)",
+    "diff-multi-sameuser": "({{PLURAL:$1|Viena starpversija|$1 starpversijas}}, ko izdarījis viens lietotājs, nav parādīta{{PLURAL:$1||s}})",
+    "diff-multi-otherusers": "({{PLURAL:$1|Viena starpversija|$1 starpversijas}}, ko {{PLURAL:$2|saglabājis|saglabājuši}} {{PLURAL:$2|viens cits lietotājs|$2 lietotāji}}, nav parādīta{{PLURAL:$1||s}})",
+    "diff-multi-manyusers": "({{PLURAL:$1|Viena starpversija|$1 starpversijas}}, ko saglabājuši vairāk nekā $2 {{PLURAL:$2|lietotājs|lietotāji}}, nav parādīta{{PLURAL:$1||s}})",
     "searchresults": "Meklēšanas rezultāti",
     "searchresults-title": "Meklēšanas rezultāti \"$1\"",
     "toomanymatches": "Tika atgriezti poārāk daudzi rezultāti, lūdzu pamēģini citādāku pieprasījumu",
     "prefs-skin": "Apdare",
     "skin-preview": "Priekšskats",
     "datedefault": "Vienalga",
-    "prefs-datetime": "Datums un laiks",
     "prefs-labs": "Laboratorijas funkcijas",
     "prefs-user-pages": "Lietotāja lapas",
     "prefs-personal": "Lietotāja dati",
     "upload-permitted": "Atļautie failu tipi: $1.",
     "upload-preferred": "Ieteicamie failu tipi: $1.",
     "upload-prohibited": "Aizliegtie failu tipi: $1.",
-    "uploadlog": "augšupielādes reģistrs",
     "uploadlogpage": "Augšupielādes reģistrs",
     "uploadlogpagetext": "Zemāk ir redzams jaunāko augšuplādēto failu saraksts.\nPārskatāmāka versija ir pieejama [[Special:NewFiles|jauno attēlu galerijā]].",
     "filename": "Faila nosaukums",
     "filereuploadsummary": "Faila izmaiņas:",
     "filestatus": "Autortiesību statuss:",
     "filesource": "Izejas kods:",
-    "uploadedfiles": "Augšupielādēja failus",
     "ignorewarning": "Ignorēt brīdinājumu un saglabāt failu",
     "ignorewarnings": "Ignorēt visus brīdinājumus",
     "minlength1": "Failu vārdiem jābūt vismaz vienu simbolu gariem.",
     "overwroteimage": "augšupielādēta jauna \"[[$1]]\" versija",
     "uploaddisabled": "Augšupielāde atslēgta",
     "copyuploaddisabled": "URL augšupielādes nav atļautas.",
-    "uploadfromurl-queued": "Tava augšupielāde tika pievienota rindā.",
     "uploaddisabledtext": "Failu augšupielāde ir atslēgta.",
     "php-uploaddisabledtext": "Failu augšupielāde ir atslēgta PHP.\nLūdzu, pārbaudi file_uploads uzstādījumu.",
     "uploadscripted": "Šis fails satur HTML vai skriptu kodu, kuru, interneta pārlūks, var kļūdas pēc, mēģināt interpretēt (ar potenciāli sliktām sekām).",
     "upload-file-error-text": "Iekšējā kļūda, mēģinot izveidot pagaidu failu uz servera.\nLūdzu, sazinieties ar [[Special:ListUsers/sysop|administratoru.]]",
     "upload-misc-error": "Nezināma augšupielādes kļūda",
     "upload-too-many-redirects": "URL sastāvēja pārāk daudz pāradresāciju",
-    "upload-unknown-size": "Nezināms izmērs",
     "upload-http-error": "HTTP kļūda: $1",
     "backend-fail-stream": "Nevar straumēt failu $1.",
     "backend-fail-backup": "Nevar dublēt failu $1.",
     "filehist-dimensions": "Izmēri",
     "filehist-filesize": "Faila izmērs",
     "filehist-comment": "Komentārs",
-    "filehist-missing": "Fails pazudis",
     "imagelinks": "Faila lietojums",
     "linkstoimage": "{{PLURAL:$1|Šajā lapā ir saite|Šajās $1 lapās ir saites}} uz šo failu:",
     "nolinkstoimage": "Nevienā lapā nav norāžu uz šo attēlu.",
     "emailuser-title-notarget": "Sūtīt e-pastu lietotājam",
     "emailpage": "Sūtīt e-pastu lietotājam",
     "emailpagetext": "Ar šo veidni ir iespējams nosūtīt e-pastu šim lietotājam.\nTā e-pasta adrese, kuru tu esi norādījis [[Special:Preferences|savā izvēļu lapā]], parādīsies e-pasta \"From\" lauciņā, tādejādi saņēmējs varēs tev atbildēt.",
-    "usermailererror": "Pasta objekts atgrieza kļūdu:",
     "defemailsubject": "{{SITENAME}} e-pasts no lietotāja \"$1\"",
     "usermaildisabled": "Lietotāja e-pasts atslēgts",
     "usermaildisabledtext": "Jūs nevarat sūtīt e-pastu citiem lietotājiem šajā viki",
     "noemailtitle": "Nav e-pasta adreses",
     "noemailtext": "Šis lietotājs nav norādījis derīgu e-pasta adresi.",
-    "nowikiemailtitle": "E-pasts nav atļauts",
     "nowikiemailtext": "Šis lietotājs ir vēlējies nesaņemt e-pastu no citiem lietotājiem.",
     "emailnotarget": "Neeksistējošs vai nederīgs saņēmēja lietotājvārds.",
     "emailtarget": "Ievadiet saņēmēja lietotājvārdu",
     "watchlist-options": "Uzraugāmo rakstu saraksta opcijas",
     "watching": "Uzrauga...",
     "unwatching": "Neuzrauga...",
-    "enotif_mailer": "{{SITENAME}} paziņojumu izsūtīšana",
     "enotif_reset": "Atzīmēt visas lapas kā apskatītas",
     "enotif_impersonal_salutation": "{{SITENAME}} lietotājs",
     "enotif_lastvisited": "$1 lai apskatītos visas izmaiņas kopš tava pēdējā apmeklējuma.",
     "excontent": "lapas saturs bija: '$1'",
     "excontentauthor": "saturs bija: \"$1\" (vienīgais autors: [[Special:Contributions/$2|$2]])",
     "exbeforeblank": "lapas saturs pirms satura dzēšanas bija šāds: '$1'",
-    "exblank": "lapa bija tukša",
     "delete-confirm": "Dzēst \"$1\"",
     "delete-legend": "Dzēšana",
     "historywarning": "'''Brīdinājums:''' Lapai, ko tu gatavojies dzēst, ir vēsture ar aptuveni $1 {{PLURAL:$1|versiju|versijām}}:",
     "importunknownsource": "Nezināms importēšanas avota veids",
     "importcantopen": "Nevarēja atvērt importējamo failu",
     "importbadinterwiki": "Slikta starpviki saite",
-    "importnotext": "Tukšs vai nav teksta",
     "importsuccess": "Importēšana pabeigta!",
     "importnosources": "Tiešā hronoloģijas augšuplāde ir atslēgta. Nav definēts neviens ''Transwiki'' importa avots (''source'').",
     "importnofile": "Neviens importējamais fails netika augšupielādēts.",
index f0710f0..eeda04c 100644 (file)
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|書]])簿增矣。",
     "createaccount-title": "於{{SITENAME}}增簿",
     "createaccount-text": "有人於{{SITENAME}}用爾之電郵增名為 \"$2\" 之簿 ($4),符節為 \"$3\" 。汝應登,再改符節也。\n\n如簿誤增,爾可略之。",
-    "usernamehasherror": "簿名無含切細符也",
     "login-throttled": "爾多試於此簿登中。\n請候再試之。",
     "login-abort-generic": "登簿未成——棄",
     "loginlanguagelabel": "語:$1",
     "prefs-skin": "面版",
     "skin-preview": "草覽",
     "datedefault": "原註",
-    "prefs-datetime": "日時",
     "prefs-personal": "概簿",
     "prefs-rc": "近易",
     "prefs-watchlist": "哨站",
     "upload-permitted": "可之物類:$1。",
     "upload-preferred": "議之物類:$1。",
     "upload-prohibited": "禁之物類:$1。",
-    "uploadlog": "誌獻",
     "uploadlogpage": "誌獻",
     "uploadlogpagetext": "近獻如下。\n看[[Special:NewFiles|新畫獻]]示獻功。",
     "filename": "名",
     "filereuploadsummary": "動:",
     "filestatus": "授權:",
     "filesource": "源:",
-    "uploadedfiles": "進獻",
     "ignorewarning": "強儲之",
     "ignorewarnings": "警略。",
     "minlength1": "名務逾一字元。",
     "overwroteimage": "新置「[[$1]]」矣",
     "uploaddisabled": "進獻已阻",
     "copyuploaddisabled": "由URL之貢被禁也。",
-    "uploadfromurl-queued": "爾之貢已排之。",
     "uploaddisabledtext": "檔之貢被禁也。",
     "php-uploaddisabledtext": "PHP之貢被禁也。查 file_uploads 之。",
     "uploadvirus": "此檔含毒也!\n詳:$1",
     "upload-warning-msg": "爾自[$2]之貢出問。爾可回[[Special:Upload/stash/$1|貢表]]修此問。",
     "upload-proto-error": "協訂錯誤",
     "upload-too-many-redirects": "網址含多轉",
-    "upload-unknown-size": "未知之積",
     "upload-http-error": "發一HTTP之錯:$1",
     "backend-fail-notexists": "無檔 $1 。",
     "backend-fail-alreadyexists": "$1 已含。",
     "filehist-dimensions": "度",
     "filehist-filesize": "檔幅",
     "filehist-comment": "註",
-    "filehist-missing": "失檔",
     "imagelinks": "檔所繫者",
     "linkstoimage": "下頁連本檔有$1:",
     "linkstoimage-more": "連檔有多於$1。\n下表示連檔之首$1。\n[[Special:WhatLinksHere/$2|整表]]可供之閱也。",
     "emailuser": "捎君",
     "emailpage": "捎書",
     "emailpagetext": "表下捎焉,以郵制君。\n署[[Special:Preferences|子簿郵]]以候往返。",
-    "usermailererror": "驛報有誤:",
     "defemailsubject": "{{SITENAME}}來書",
     "usermaildisabled": "無他人之郵",
     "usermaildisabledtext": "無發電郵於wiki上之他戶也",
     "noemailtitle": "無郵",
     "noemailtext": "此君無郵。",
-    "nowikiemailtitle": "無許之郵",
     "nowikiemailtext": "此君謝收郵之。",
     "email-legend": "發郵至{{SITENAME}}之另一簿",
     "emailfrom": "自:",
     "watchlist-options": "哨項",
     "watching": "出陣…",
     "unwatching": "收兵…",
-    "enotif_mailer": "{{SITENAME}}報",
     "enotif_reset": "令為盡閱",
     "enotif_impersonal_salutation": "貴客",
     "enotif_lastvisited": "自子出簿,有易見$1。",
     "excontent": "文乃「$1」",
     "excontentauthor": "文乃「$1」,乃「[[Special:Contributions/$2|$2]]」獨作。",
     "exbeforeblank": "清文前乃為:「$1」",
-    "exblank": "缺頁",
     "delete-confirm": "刪\"$1\"",
     "delete-legend": "刪",
     "historywarning": "警示,此頁約有誌$1:",
     "importunknownsource": "入類不明",
     "importcantopen": "入未可啟",
     "importbadinterwiki": "維基內鏈壞",
-    "importnotext": "空檔或無文",
     "importsuccess": "入匯成矣!",
-    "importhistoryconflict": "舊審沖,疑早存焉",
     "importnosources": "互匯而未定入源,審、誌不予直進。",
     "importnofile": "無匯入也。",
     "importuploaderrorsize": "檔未入匯。幅越焉。",
index 9b01e23..6446d43 100644 (file)
     "disclaimers": "Kʼabuli na var ixvenu ondepe",
     "disclaimerpage": "Project:Mtelot kʼabuli na var ixvenu ondepe",
     "edithelp": "Muçʼoşi iktirinen?",
-    "helppage": "Help:Doloxe na renanpe",
     "mainpage": "Dudi Butʼkʼa",
     "mainpage-description": "Dudi But'k'a",
     "privacy": "Şinaxeri Hakʼepe",
index f2a5cdf..60bcc72 100644 (file)
     "accountcreatedtext": "Корисничкта сметка за [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|разговор]]) е направена.",
     "createaccount-title": "Создавање на сметка за {{SITENAME}}",
     "createaccount-text": "Некој направил сметка со вашата е-поштенска адреса на {{SITENAME}} ($4) со име „$2“ и  лозинка „$3“.\nБи требало сега да се пријавите и да ја промените вашата лозинка.\n\nМожете да ја занемарите оваа порака ако сметката била направена по грешка.",
-    "usernamehasherror": "Корисничкото име не може да содржи тараба",
     "login-throttled": "Имате премногу обиди за најава за кратко време.\nПочекајте $1 пред да се обидете повторно.",
     "login-abort-generic": "Најавата е неуспешна - Прекинато",
     "loginlanguagelabel": "Јазик: $1",
     "prefs-skin": "Руво",
     "skin-preview": "Преглед",
     "datedefault": "Небитно",
-    "prefs-datetime": "Датум и време",
     "prefs-labs": "Експериментални можности",
     "prefs-user-pages": "Кориснички страници",
     "prefs-personal": "Кориснички профил",
     "upload-permitted": "Допуштени податотечни типови: $1.",
     "upload-preferred": "Претпочитани податотечни типови: $1.",
     "upload-prohibited": "Недопуштени податотечни типови: $1.",
-    "uploadlog": "дневник на подигања",
     "uploadlogpage": "Дневник на подигања",
     "uploadlogpagetext": "Наведен е список на најновите подигања на податотеки.\nПогледнете ја [[Special:NewFiles|галеријата на нови податотеки]] за визуелен преглед.",
     "filename": "Име на податотеката",
     "filereuploadsummary": "Измени во податотеката:",
     "filestatus": "Copyright статус:",
     "filesource": "Извор:",
-    "uploadedfiles": "Подигнати податотеки",
     "ignorewarning": "Занемари ги предупредувањата и зачувај ја податотеката",
     "ignorewarnings": "Занемари предупредувања",
     "minlength1": "Името на податотеката мора да содржи барем една буква.",
     "overwroteimage": "подигнато нова верзија на „[[$1]]“",
     "uploaddisabled": "Забрана за подигања",
     "copyuploaddisabled": "Подигањето од URL е оневозможено.",
-    "uploadfromurl-queued": "Вашето подигање е ставено во редица.",
     "uploaddisabledtext": "Подигањето на податотеки е оневозможено.",
     "php-uploaddisabledtext": "Подигањето на податотеки е оневозможено во PHP. \nПроверете го нагодувањето file_uploads.",
     "uploadscripted": "Податотеката содржи HTML-код или сценарио што може погрешно да се протолкува во прелистувачот.",
     "upload-misc-error": "Непозната грешка при подигањето",
     "upload-misc-error-text": "Се појави грешка при подигањето.\nПроверете дали URL-адресата е правилна и достапна, па обидете се повторно.\nАко пак се појави проблем, обратете се кај некој [[Special:ListUsers/sysop|администратор]].",
     "upload-too-many-redirects": "Оваа URL адреса содржеше премногу пренасочувања",
-    "upload-unknown-size": "Непозната големина",
     "upload-http-error": "HTTP грешка: $1",
     "upload-copy-upload-invalid-domain": "Примероци од подигањата не се достапни на овој домен.",
     "backend-fail-stream": "Не можев да ја емитувам податотеката $1.",
     "img-auth-streaming": "Емитување „$1“.",
     "img-auth-public": "Функцијата на img_auth.php служи за излез на податотеки од лични викија.\nОва вики е нагодено како јавно вики.\nОд причини на оптимална сигурност, img_auth.php е оневозможен.",
     "img-auth-noread": "Корисникот нема пристап за читање на „$1“.",
-    "img-auth-bad-query-string": "URL-адресата има неважечка низа за барање.",
     "http-invalid-url": "Неважечка URL: $1",
     "http-invalid-scheme": "Не се поддржани URL-адреси со шема „$1“",
     "http-request-error": "Неуспешно HTTP барање поради непозната грешка.",
     "filehist-dimensions": "Димензии",
     "filehist-filesize": "Големина",
     "filehist-comment": "Коментар",
-    "filehist-missing": "Непостоечка податотека",
     "imagelinks": "Употреба на податотеката",
     "linkstoimage": "До оваа податотека {{PLURAL:$1|води следнава страница|водат следниве $1 страници}}:",
     "linkstoimage-more": "Повеќе од {{PLURAL:$1|една страница е поврзана|$1 страници се поврзани}} со оваа податотека.\nСледниов список {{PLURAL:$1|ја прикажува само првата поврзана страница|ги прикажува само првите $1 поврзани страници}} до оваа податотека.\nЦелосен список може да добиете [[Special:WhatLinksHere/$2|тука]].",
     "listgrouprights-removegroup-self": "Може да брише {{PLURAL:$2|група|групи}} од сопствената корисничка сметка: $1",
     "listgrouprights-addgroup-self-all": "Може да ги додаде сите групи на сопствената корисничка сметка",
     "listgrouprights-removegroup-self-all": "Може да ги избрише сите групи од сопствената корисничка сметка",
+    "listgrouprights-namespaceprotection-header": "Ограничувања за именски простори",
+    "listgrouprights-namespaceprotection-namespace": "Именски простор",
+    "listgrouprights-namespaceprotection-restrictedto": "Права што им овозможуваат на корисниците да уредуваат",
     "trackingcategories": "Следачки категории",
     "trackingcategories-summary": "На страницава се наведени следачки категории што автоматски се пополнуваат од програмот на МедијаВики. Нивните називи можат да се сменат со измена на соодветните системски пораки во именскиот простор {{ns:8}}.",
     "trackingcategories-msg": "Следачка категорија",
     "trackingcategories-name": "Назив на пораката",
     "trackingcategories-desc": "Критериуми за вклучување",
-    "noindex-category-desc": "СÑ\82Ñ\80аниÑ\86аÑ\82а Ñ\81одÑ\80жи Ð²Ð¾Ð»Ñ\88ебен Ð·Ð±Ð¾Ñ\80 <nowiki>__NOINDEX__</nowiki> (и Ñ\81е Ð½Ð°Ð¾Ñ\93а Ð²Ð¾ Ð¸Ð¼ÐµÐ½Ñ\81ки Ð¿Ñ\80оÑ\81Ñ\82оÑ\80 ÐºÐ°Ñ\98Ñ\88Ñ\82о Ðµ Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½), Ð¿Ð° Ð·Ð°Ñ\82оа Ð½Ðµ Ñ\81е Ð¸Ð½Ð´ÐµÐºÑ\81иÑ\80а Ð¾Ð´ Ñ\80обоÑ\82и.",
-    "index-category-desc": "Страницата содржи <nowiki>__INDEX__</nowiki> (и се наоѓа во именски простор кајшто ова е дозволено), па затоа се индексира од роботи, што инаку не би било.",
+    "noindex-category-desc": "РобоÑ\82иÑ\82е Ð½Ðµ Ñ\98а Ð¸Ð½Ð´ÐµÐºÑ\81иÑ\80ааÑ\82 Ñ\81Ñ\82Ñ\80аниÑ\86ава Ð±Ð¸Ð´ÐµÑ\98Ñ\9cи Ð³Ð¾ Ñ\81одÑ\80жи Ð²Ð¾Ð»Ñ\88ебниоÑ\82 Ð·Ð±Ð¾Ñ\80 <code><nowiki>__NOINDEX__</nowiki></code> Ð¸ Ñ\81е Ð½Ð°Ð¾Ñ\93а Ð²Ð¾ Ð¸Ð¼ÐµÐ½Ñ\81ки Ð¿Ñ\80оÑ\81Ñ\82оÑ\80 ÐºÐ°Ñ\98Ñ\88Ñ\82о Ðµ Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½.",
+    "index-category-desc": "Страницата содржи <code><nowiki>__INDEX__</nowiki></code> (и се наоѓа во именски простор кајшто ова е дозволено), па затоа се индексира од роботи, што инаку не би било.",
     "post-expand-template-inclusion-category-desc": "По проширувањето на сите шаблони, страницата е поголема од <code>$wgMaxArticleSize</code>, па затоа некои шаблони не се проширени.",
     "post-expand-template-argument-category-desc": "По проширување на шаблонски аргумент (нешто во тројни кадрави загради, како на пр. <code>{{{Foo}}})</code>, страницата е поголема од <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Во страницата има премногу оптоварувачки расчленувачки функции (како <code>#ifexist</code>). Погл. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
     "broken-file-category-desc": "Категорјата се става ако страницата содржи неисправна податотечка врска (врска за вметнување на податотека што не постои).",
-    "hidden-category-category-desc": "Ова е категорија што содржи <nowiki>__HIDDENCAT__</nowiki>, што значи дека по основно не се прикажува во страниците.",
+    "hidden-category-category-desc": "Ова е категорија што содржи <code><nowiki>__HIDDENCAT__</nowiki></code>, што значи дека по основно не се прикажува во страниците.",
     "trackingcategories-nodesc": "Нема опис.",
     "trackingcategories-disabled": "Категоријата е оневозможена",
     "mailnologin": "Нема адреса за праќање",
     "emailuser-title-notarget": "Е-пошта за корисникот",
     "emailpage": "Е-пошта",
     "emailpagetext": "Можете да го употребите следниов образец за да му испратите е-пошта на овој {{GENDER:$1|корисник}}.\nАдреса која ја имате наведено во [[Special:Preferences|вашите нагодувања]] ќе се прикаже во полето „Од“ на пораката, со што примачот ќе може да ви одговори директно вам.",
-    "usermailererror": "Настана следната грешка при праќање е-пошта:",
     "defemailsubject": "{{SITENAME}} — писмо од корисникот „$1“",
     "usermaildisabled": "Корисничката е-пошта е оневозможена",
     "usermaildisabledtext": "Не можете да испратите е-порака до дрги корисници на ова вики",
     "noemailtitle": "Нема е-поштенска адреса",
     "noemailtext": "Овој корисник нема наведено важечка е-поштенска адреса.",
-    "nowikiemailtitle": "Не е допуштено користење на е-пошта",
     "nowikiemailtext": "Овој корисник избрал да не прима е-пошта од други корисници.",
     "emailnotarget": "Непостоечко или неважечко корисничко име за примачот.",
     "emailtarget": "Внесете го корисничкото име на примачот",
     "watching": "Набљудување...",
     "unwatching": "Отстранувам од набљудувани...",
     "watcherrortext": "Се појави грешка при менувањето на вашите нагодувања списокот на набљудувања за „$1“.",
-    "enotif_mailer": "{{SITENAME}} Систем за известување",
     "enotif_reset": "Означи ги сите страници како посетени",
     "enotif_impersonal_salutation": "Википедија корисник",
     "enotif_subject_deleted": "Страницата $1 на {{SITENAME}} е избришана од {{gender:$2|$2}}",
     "excontent": "содржината беше: '$1'",
     "excontentauthor": "содржината беше: '$1' (и единствениот автор беше '$2')",
     "exbeforeblank": "содржината пред бришењето беше: '$1'",
-    "exblank": "страницата беше празна",
     "delete-confirm": "Избриши „$1“",
     "delete-legend": "Бришење",
     "historywarning": "'''Предупредување:''' Страницата што сакате да ја избришете има историја со околу $1 {{PLURAL:$1|преработка|преработки}}:",
     "importunknownsource": "Непознат тип за внесување",
     "importcantopen": "Не може да се отвори увезената податотека",
     "importbadinterwiki": "Лоша меѓувики-врска",
-    "importnotext": "Празно или без текст",
     "importsuccess": "Увезувањето е завршено!",
-    "importhistoryconflict": "Постои конфликтна историја на верзиите (можно е страницата веќе да била внесена)",
     "importnosources": "Нема определено меѓувики-извори за увоз и директните подигања на историја се оневозможени.",
     "importnofile": "Нема подигнато увозна податотека.",
     "importuploaderrorsize": "Подигањето на увозната податотека не успеа.\nПодатотеката ја надминува допуштената големина.",
index e3633d4..501f2e9 100644 (file)
     "permalink": "സ്ഥിരംകണ്ണി",
     "print": "അച്ചടിയ്ക്കുക",
     "view": "കാണുക",
+    "view-foreign": "$1 സംരംഭത്തിൽ കാണുക",
     "edit": "തിരുത്തുക",
+    "edit-local": "ഇവിടുത്തെ വിവരണം തിരുത്തുക",
     "create": "ഈ താൾ സൃഷ്ടിക്കുക",
+    "create-local": "ഇവിടെ വിവരണം ചേർക്കുക",
     "editthispage": "ഈ താൾ തിരുത്തുക",
     "create-this-page": "ഈ താൾ സൃഷ്ടിക്കുക",
     "delete": "മായ്ക്കുക",
     "pool-timeout": "പൂട്ട് മാറാനുള്ള കാത്തിരിപ്പ് സമയം",
     "pool-queuefull": "പൂൾ ക്യൂ നിറഞ്ഞിരിക്കുന്നു",
     "pool-errorunknown": "അപരിചിതമായ പിഴവ്",
+    "pool-servererror": "പൂൾ കൗണ്ടർ സേവനം ലഭ്യമല്ല ($1).",
     "aboutsite": "{{SITENAME}} സം‌രംഭത്തെക്കുറിച്ച്",
     "aboutpage": "Project:വിവരണം",
     "copyright": "പ്രത്യേകം പറയാത്ത പക്ഷം ഉള്ളടക്കം $1 പ്രകാരം ലഭ്യം.",
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) എന്ന ഉപയോക്താവിനായി അംഗത്വം സൃഷ്ടിക്കപ്പെട്ടിരിക്കുന്നു.",
     "createaccount-title": "{{SITENAME}} സംരംഭത്തിൽ അംഗത്വം സൃഷ്ടിക്കൽ",
     "createaccount-text": "{{SITENAME}} സംരംഭത്തിൽ ($4) താങ്കളുടെ ഇമെയിൽ വിലാസത്തിൽ ആരോ ഒരു അംഗത്വം \"$2\" എന്ന ഉപയോക്തൃനാമത്തിൽ ഉണ്ടാക്കിയിരിക്കുന്നു (രഹസ്യവാക്ക്: \"$3\").  താങ്കൾ ഇപ്പോൾ ലോഗിൻ ചെയ്തു രഹസ്യവാക്ക് മാറ്റേണ്ടതാകുന്നു.\n\nഅംഗത്വം അബദ്ധവശാൽ ഉണ്ടാക്കിയതാണെങ്കിൽ താങ്കൾക്ക് ഈ സന്ദേശം നിരാകരിക്കാവുന്നതാണ്‌.",
-    "usernamehasherror": "ഉപയോക്തൃനാമത്തിൽ ഹാഷ് ലിപികൾ ഉൾപ്പെടുത്തരുത്",
     "login-throttled": "താങ്കൾ നിരവധി പ്രാവശ്യം ലോഗിൻ ചെയ്യാൻ ശ്രമിച്ചിരിക്കുന്നു.\nപുതിയതായി ശ്രമിക്കുന്നതിനു മുമ്പ് $1 ദയവായി കാത്തിരിക്കുക.",
     "login-abort-generic": "താങ്കളുടെ പ്രവേശിക്കൽ പരാജയപ്പെട്ടു - റദ്ദാക്കപ്പെട്ടിരിക്കുന്നു",
     "loginlanguagelabel": "ഭാഷ: $1",
     "prefs-skin": "ദൃശ്യരൂപം",
     "skin-preview": "എങ്ങനെയുണ്ടെന്നു കാണുക",
     "datedefault": "ക്രമീകരണങ്ങൾ വേണ്ട",
-    "prefs-datetime": "ദിവസവും സമയവും",
     "prefs-labs": "പരീക്ഷണശാലയിൽ തയ്യാറാകുന്ന സൗകര്യങ്ങൾ",
     "prefs-user-pages": "ഉപയോക്തൃതാളുകൾ",
     "prefs-personal": "എന്നെപ്പറ്റി",
     "upload-permitted": "അനുവദനീയമായ പ്രമാണ തരങ്ങൾ: $1.",
     "upload-preferred": "പ്രോത്സാഹിപ്പിക്കുന്ന പ്രമാണ തരങ്ങൾ: $1.",
     "upload-prohibited": "നിരോധിക്കപ്പെട്ട തരം പ്രമാണങ്ങൾ: $1.",
-    "uploadlog": "അപ്‌ലോഡ് പ്രവർത്തനരേഖ",
     "uploadlogpage": "അപ്‌ലോഡ് രേഖ",
     "uploadlogpagetext": "സമീപകാലത്ത് അപ്‌ലോഡ് ചെയ്ത പ്രമാണങ്ങളുടെ പട്ടിക താഴെ കാണാം.",
     "filename": "പ്രമാണത്തിന്റെ പേര്",
     "filereuploadsummary": "പ്രമാണത്തിലെ മാറ്റങ്ങൾ:",
     "filestatus": "പകർപ്പവകാശത്തിന്റെ സ്ഥിതി:",
     "filesource": "സ്രോതസ്സ്:",
-    "uploadedfiles": "അപ്‌ലോഡ് ചെയ്ത പ്രമാണങ്ങൾ",
     "ignorewarning": "മുന്നറിയിപ്പ് അവഗണിച്ച് പ്രമാണം സേവ് ചെയ്യുക",
     "ignorewarnings": "അറിയിപ്പുകൾ അവഗണിക്കുക",
     "minlength1": "പ്രമാണത്തിന്റെ പേരിൽ ഒരക്ഷരമെങ്കിലും ഉണ്ടാവണം.",
     "overwroteimage": "\"[[$1]]\" എന്ന പ്രമാണത്തിന്റെ പുതിയ പതിപ്പ് അപ്‌ലോഡ് ചെയ്തിരിക്കുന്നു",
     "uploaddisabled": "അപ്‌ലോഡുകൾ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു.",
     "copyuploaddisabled": "യൂ.ആർ.എൽ. വഴിയുള്ള അപ്‌‌ലോഡ് നിർജ്ജീവമാക്കിയിരിക്കുന്നു.",
-    "uploadfromurl-queued": "താങ്കളുടെ അപ്‌‌ലോഡ് നിർവഹിക്കാൻ ഉൾപ്പെടുത്തിയിരിക്കുന്നു.",
     "uploaddisabledtext": "പ്രമാണം അപ്‌ലോഡ് ചെയ്യുന്നതു സാദ്ധ്യമല്ലാതാക്കിയിരിക്കുന്നു.",
     "php-uploaddisabledtext": "പി.എച്ച്.പി.യിൽ പ്രമാണ അപ്‌‌ലോഡുകൾ സാദ്ധ്യമല്ലാതാക്കിയിരിക്കുന്നു.\nദയവായി file_uploads ക്രമീകരണങ്ങൾ പരിശോധിക്കുക.",
     "uploadscripted": "ഈ പ്രമാണത്തിൽ വെബ് ബ്രൗസർ തെറ്റായി വ്യാഖ്യാനിച്ചേക്കാവുന്ന എച്ച്.റ്റി.എം.എൽ. അല്ലെങ്കിൽ സ്ക്രിപ്റ്റ് കോഡ് ഉണ്ട്.",
     "upload-misc-error": "കാരണം അജ്ഞാതമായ അപ്‌ലോഡ് പിഴവ്",
     "upload-misc-error-text": "അപ്‌ലോഡിങ്ങ് സമയത്ത് അജ്ഞാതമായ പിഴവ് സംഭവിച്ചു.\nദയവായി യൂ.ആർ.എൽ. സാധുവാണോ എന്നും അതു പ്രാപ്യമാണോ എന്നും പരിശോധിച്ചതിനു ശേഷം വീണ്ടും പരിശ്രമിക്കുക.\nതുടർന്നും പ്രശ്നം അവശേഷിക്കുകയാണെങ്കിൽ [[Special:ListUsers/sysop|കാര്യനി‌ർവാഹകരിലൊരാളെ]] സമീപിക്കുക.",
     "upload-too-many-redirects": "യൂ.ആർ.എല്ലിൽ നിരവധി തിരിച്ചുവിടലുകളുണ്ട്",
-    "upload-unknown-size": "വലിപ്പം അറിയില്ല",
     "upload-http-error": "ഒരു എച്ച്.റ്റി.റ്റി.പി. പിഴവു സംഭവിച്ചിരിക്കുന്നു: $1",
     "upload-copy-upload-invalid-domain": "ഈ ഡൊമൈനിൽ നിന്നും പകർത്തി അപ്‌ലോഡ് ചെയ്യൽ ലഭ്യമല്ല.",
     "backend-fail-stream": "$1 എന്ന പ്രമാണം സ്ട്രീം ചെയ്യാൻ കഴിഞ്ഞില്ല.",
     "img-auth-streaming": "സ്ട്രീമിങ് \"$1\".",
     "img-auth-public": "img_auth.php എന്ന ഗുണനിർവഹണം സ്വകാര്യ‌‌വിക്കികളിൽ പ്രമാണങ്ങൾ ഔട്ട്പുട്ട് ചെയ്യുന്നതിനുള്ളതാണ്.\nഈ വിക്കി ഒരു പൊതുജന വിക്കിയായാണ് ക്രമീകരിച്ചിരിക്കുന്നത്.\nസുരക്ഷയ്ക്ക് ഏറ്റവും അനുകൂലിതമായെന്നതിനാൽ img_auth.php നിർജീവമാക്കിയിരിക്കുന്നു.",
     "img-auth-noread": "\"$1\" എടുത്തുനോക്കാൻ ഉപയോക്താവിനു കഴിയില്ല.",
-    "img-auth-bad-query-string": "യൂ.ആർ.എല്ലിൽ അസാധുവായ ക്വറി പദം ഉണ്ട്.",
     "http-invalid-url": "അസാധുവായ യു.ആർ.എൽ.: $1",
     "http-invalid-scheme": "\"$1\" രീതിയിലുള്ള യു.ആർ.എല്ലുകൾ പിന്തുണയ്ക്കുന്നില്ല",
     "http-request-error": "അഭ്യർത്ഥന അയയ്ക്കുന്നതിൽ അപരിചിതമായ പിഴവ്:",
     "filehist-dimensions": "അളവുകൾ",
     "filehist-filesize": "പ്രമാണത്തിന്റെ വലിപ്പം",
     "filehist-comment": "അഭിപ്രായം",
-    "filehist-missing": "പ്രമാണം ലഭ്യമല്ല",
     "imagelinks": "പ്രമാണത്തിന്റെ ഉപയോഗം",
     "linkstoimage": "താഴെ കാണുന്ന {{PLURAL:$1|താളിൽ|$1 താളുകളിൽ}}  ഈ ചിത്രം ഉപയോഗിക്കുന്നു:",
     "linkstoimage-more": "ഈ പ്രമാണത്തിലേയ്ക്ക് {{PLURAL:$1|ഒരു താളിലധികം കണ്ണി|$1 താളിലധികം കണ്ണികൾ}} ഉണ്ട്.\nതാഴെക്കൊടുത്തിരിക്കുന്ന പട്ടിക ഈ പ്രമാണത്തിലേയ്ക്കു മാത്രമുള്ള {{PLURAL:$1|ആദ്യ താളിന്റെ കണ്ണി|ആദ്യ $1 താളുകളുടെ കണ്ണികൾ}} കാട്ടുന്നു.\n[[Special:WhatLinksHere/$2|മുഴുവൻ പട്ടികയും]] ലഭ്യമാണ്.",
     "trackingcategories-msg": "പിന്തുടരൽ വർഗ്ഗം",
     "trackingcategories-name": "സന്ദേശത്തിന്റെ പേര്",
     "trackingcategories-desc": "വർഗ്ഗം ഉൾപ്പെടുത്തുന്നതിനുള്ള മാനദണ്ഡം",
-    "noindex-category-desc": "ഈ താളിൽ <nowiki>__NOINDEX__</nowiki> എന്ന മാന്ത്രികവാക്ക് ഉണ്ട് (അത് അനുവദിച്ചിട്ടുള്ള നാമമേഖലയിലും ആണ്), അതുകൊണ്ടിത് റോബോട്ടുകളാൽ സൂചികാവത്കരിക്കപ്പെടില്ല.",
-    "index-category-desc": "ഈ താളിൽ <nowiki>__INDEX__</nowiki> എന്ന മാന്ത്രികവാക്ക് ഉണ്ട് (അത് അനുവദിച്ചിട്ടുള്ള നാമമേഖലയിലും ആണ്), അതുകൊണ്ടിത്, സാധാരണഗതിയിൽ പാടില്ലാത്തതാണെങ്കിലും റോബോട്ടുകളാൽ സൂചികാവത്കരിക്കപ്പെടുന്നതാണ്.",
+    "noindex-category-desc": "ഈ താളിൽ <code><nowiki>__NOINDEX__</nowiki></code> എന്ന മാന്ത്രികവാക്ക് ഉണ്ട്, അത് അനുവദിച്ചിട്ടുള്ള നാമമേഖലയിലും ആണ്, അതുകൊണ്ടിത് റോബോട്ടുകളാൽ സൂചികാവത്കരിക്കപ്പെടില്ല.",
+    "index-category-desc": "ഈ താളിൽ <code><nowiki>__INDEX__</nowiki></code> എന്ന മാന്ത്രികവാക്ക് ഉണ്ട് (അത് അനുവദിച്ചിട്ടുള്ള നാമമേഖലയിലും ആണ്), അതുകൊണ്ടിത്, സാധാരണഗതിയിൽ പാടില്ലാത്തതാണെങ്കിലും റോബോട്ടുകളാൽ സൂചികാവത്കരിക്കപ്പെടുന്നതാണ്.",
     "post-expand-template-inclusion-category-desc": "എല്ലാ ഫലകങ്ങളും വികസിപ്പിച്ചു കഴിയുമ്പോൾ, താളിന്റെ വലിപ്പം <code>$wgMaxArticleSize</code> എന്നതിലും കൂടുതലാവുമെന്നതിനാൽ, ചില ഫലകങ്ങൾ വികസിപ്പിച്ചിരുന്നില്ല.",
     "post-expand-template-argument-category-desc": "ഫലകത്തിലേയ്ക്കുള്ള ചരം വികസിപ്പിച്ച ശേഷം (<code>{{{പന}}}</code> പോലെയുള്ള മൂന്ന് കോഷ്ഠകങ്ങളിലെ എഴുത്ത്), താളിന്റെ വലിപ്പം <code>$wgMaxArticleSize</code> എന്നതിലും കൂടുതലായി.",
     "expensive-parserfunction-category-desc": "നിരവധി വ്യയമേറിയ പാഴ്സർ ഫങ്ഷനുകൾ ( #എങ്കിൽ പോലെയുള്ളവ) താളിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്നു. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit] കാണുക.",
     "broken-file-category-desc": "താളിൽ നിലവിലില്ലാത്ത പ്രമാണത്തിലോട്ട് കണ്ണി ചേർത്തിട്ടുണ്ടെങ്കിൽ വർഗ്ഗം ചേർക്കപ്പെടും.",
-    "hidden-category-category-desc": "ഈ വർഗ്ഗത്തിൽ <nowiki>__HIDDENCAT__</nowiki> ഉള്ളതിനാൽ, താളുകളിലെ വർഗ്ഗങ്ങളുടെ കണ്ണികൾ കാണിക്കുന്ന പെട്ടിയിൽ സ്വതേ പ്രത്യക്ഷപ്പെടുന്നതല്ല.",
+    "hidden-category-category-desc": "ഈ വർഗ്ഗത്തിൽ <code><nowiki>__HIDDENCAT__</nowiki></code> ഉള്ളതിനാൽ, താളുകളിലെ വർഗ്ഗങ്ങളുടെ കണ്ണികൾ കാണിക്കുന്ന പെട്ടിയിൽ സ്വതേ പ്രത്യക്ഷപ്പെടുന്നതല്ല.",
     "trackingcategories-nodesc": "വിവരണം ലഭ്യമല്ല.",
     "trackingcategories-disabled": "വർഗ്ഗം നിർജ്ജീവമാക്കിയിരിക്കുന്നു",
     "mailnologin": "അയയ്ക്കാനുള്ള വിലാസം ലഭ്യമല്ല",
     "emailuser-title-notarget": "ഉപയോക്താവിന് ഇമെയിൽ അയക്കുക",
     "emailpage": "ഉപയോക്താവിന് ഇമെയിൽ അയക്കുക",
     "emailpagetext": "താഴെ കാണുന്ന ഫോം ഈ {{GENDER:$1|ഉപയോക്താവിന്‌}} ഇമെയിൽ അയക്കാൻ ഉപയോഗിക്കാവുന്നതാണ്.\n[[Special:Preferences|ഉപയോക്താവിന്റെ ക്രമീകരണങ്ങളിൽ]] കൊടുത്തിട്ടുള്ള ഇമെയിൽ വിലാസം \"ദാതാവ്\" ആയി വരുന്നതാണ്‌, അതുകൊണ്ട് സ്വീകർത്താവിന്‌ താങ്കൾക്ക് നേരിട്ട് മറുപടി അയക്കാൻ കഴിയും.",
-    "usermailererror": "മെയിലുണ്ടായ പിഴവ് തിരിച്ചയച്ചിരിക്കുന്നു:",
     "defemailsubject": "\"$1\" എന്ന ഉപയോക്താവ് അയച്ച {{SITENAME}} ഇമെയിൽ",
     "usermaildisabled": "ഉപയോക്തൃ ഇമെയിൽ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു",
     "usermaildisabledtext": "ഈ വിക്കിയിലെ മറ്റുപയോക്താക്കൾക്ക് ഇമെയിൽ അയയ്ക്കാൻ താങ്കൾക്ക് കഴിയില്ല",
     "noemailtitle": "ഇമെയിൽ വിലാസം ഇല്ല",
     "noemailtext": "ഈ ഉപയോക്താവ് സാധുവായ ഇമെയിൽ വിലാസം നൽകിയിട്ടില്ല.",
-    "nowikiemailtitle": "ഇമെയിൽ അനുവദിക്കപ്പെട്ടിട്ടില്ല",
     "nowikiemailtext": "ഈ ഉപയോക്താവ് മറ്റുള്ളവരിൽ നിന്നും ഇമെയിൽ സ്വീകരിക്കുന്നത് ഒഴിവാക്കിയിരിക്കുന്നു.",
     "emailnotarget": "സ്വീകർത്താവിന്റെ ഉപയോക്തൃനാമം നിലവിലില്ല അല്ലെങ്കിൽ അസാധുവാണ്.",
     "emailtarget": "സ്വീകർത്താവിന്റെ ഉപയോക്തൃനാമം നൽകുക",
     "watching": "ശ്രദ്ധിക്കുന്നു...",
     "unwatching": "അവഗണിക്കുന്നു...",
     "watcherrortext": "\"$1\" എന്ന താൾ ശ്രദ്ധിക്കുന്നതിന്റെ സ്ഥിതിയിൽ മാറ്റം വരുത്തിയപ്പോൾ ഒരു പിഴവുണ്ടായിരിക്കുന്നു.",
-    "enotif_mailer": "{{SITENAME}} വിജ്ഞാപന മെയിലർ",
     "enotif_reset": "എല്ലാ താളുകളും സന്ദർശിച്ചതായി രേഖപ്പെടുത്തുക",
     "enotif_impersonal_salutation": "{{SITENAME}} ഉപയോക്താവ്",
     "enotif_subject_deleted": "{{SITENAME}} സംരംഭത്തിലെ $1 എന്ന താൾ {{gender:$2|$2}} മായ്ച്ചിരിക്കുന്നു",
     "excontent": "ഉള്ളടക്കം: '$1'",
     "excontentauthor": "ഉള്ളടക്കം: '$1' ('[[Special:Contributions/$2|$2]]' മാത്രമേ ഈ താളിൽ തിരുത്തൽ നടത്തിയിട്ടുള്ളൂ)",
     "exbeforeblank": "ശൂന്യമാക്കപ്പെടുന്നതിനു മുമ്പുള്ള ഉള്ളടക്കം: '$1'",
-    "exblank": "താൾ ശൂന്യമായിരുന്നു",
     "delete-confirm": "\"$1\" മായ്ക്കുക",
     "delete-legend": "മായ്ക്കുക",
     "historywarning": "'''മുന്നറിയിപ്പ്''': താങ്കൾ മായ്ക്കുവാൻ പോകുന്ന താളിനു ഏകദേശം {{PLURAL:$1|ഒരു നാൾപ്പതിപ്പ്|$1 നാൾപ്പതിപ്പുകൾ}} ഉള്ള നാൾവഴി ഉണ്ട്:",
     "importunknownsource": "അപരിചിതമായ ഇറക്കുമതി സ്രോതസ്സ് തരം",
     "importcantopen": "ഇറക്കുമതി പ്രമാണം തുറക്കാൻ കഴിഞ്ഞില്ല",
     "importbadinterwiki": "മോശമായ അന്തർവിക്കി കണ്ണി",
-    "importnotext": "ശൂന്യം അല്ലെങ്കിൽ ഉള്ളടക്കം ഒന്നുമില്ല",
     "importsuccess": "ഇറക്കുമതി ചെയ്തുകഴിഞ്ഞു!",
-    "importhistoryconflict": "നാൾപ്പതിപ്പുകളിൽ പൊരുത്തക്കേടുണ്ട് (ഈ താൾ ഇതിനു മുൻപ് ഇറക്കുമതി ചെയ്തിട്ടുണ്ടാവാം)",
     "importnosources": "ട്രാൻസ്‌‌വിക്കി ഇറക്കുമതി സ്രോതസ്സുകളൊന്നും നിർവചിച്ചിട്ടില്ല, നേരിട്ടുള്ള നാൾവഴി അപ്‌‌ലോഡുകൾ പ്രവർത്തനരഹിതവുമാക്കിയിരിക്കുന്നു.",
     "importnofile": "ഇറക്കുമതി പ്രമാണങ്ങളൊന്നും അപ്‌‌ലോഡ് ചെയ്തിട്ടില്ല.",
     "importuploaderrorsize": "ഇറക്കുമതി ചെയ്ത പ്രമാണത്തിന്റെ അപ്‌‌ലോഡ് പരാജയപ്പെട്ടു.\nപ്രമാണം അപ്‌‌ലോഡിങ്ങിനനുവദിക്കപ്പെട്ടിരിക്കുന്ന അളവിലും വലുതാണ്.",
index 41cc245..a34eb27 100644 (file)
@@ -92,7 +92,6 @@
     "disclaimers": "Деклараций",
     "disclaimerpage": "Project:Декларацие ӂенералэ",
     "edithelp": "Ажутор пентру едитаре",
-    "helppage": "Help:Купринс",
     "mainpage": "Прима паӂина",
     "mainpage-description": "Прима паӂина",
     "privacy": "Политика де интимитате",
index cd582d3..b85882d 100644 (file)
     "disclaimers": "Вӓшештӹмӹ шая (ответственность) гӹц карангмаш",
     "disclaimerpage": "Project:Вӓшештӹмӓш (ответственность) гӹц карангмаш",
     "edithelp": "Тӧрлӓш манын палшык",
-    "helppage": "Help:Палшык",
     "mainpage": "Тӹнг ӹлӹштӓш",
     "mainpage-description": "Тӹнг ӹлӹштӓш",
     "privacy": "Весӹвлӓлӓн шайышташ ак ли ылмы политика",
index 27f4057..fedb292 100644 (file)
@@ -28,7 +28,6 @@
     "currentevents": "Imwin",
     "currentevents-url": "Project:Imwin",
     "edithelp": "Oomo/edar Ipuok",
-    "helppage": "Help:Oangan",
     "mainpage": "Bwiema peij",
     "mainpage-description": "Bwiema peij",
     "editsection": "Kiwiwid",
index 93a8e2c..4aabc37 100644 (file)
@@ -10,7 +10,7 @@
     "tog-hideminor": "Am chòe-kīn ê sió kái-piàn",
     "tog-hidepatrolled": "Am chòe-kīn sûn koè--ê  kái-piàn",
     "tog-newpageshidepatrolled": "Sin-ia̍h ê chheng-toaⁿ am sûn koè--ê",
-    "tog-extendwatchlist": "Khok-chhiong kàm-sī-toaⁿ kàu hián-sī só͘-ū ê kái-piàn",
+    "tog-extendwatchlist": "thián-khui kàm-sī-toaⁿ, khoàⁿ choân-pō͘  kái ê, m̄-nā choè-kīn niā.",
     "tog-usenewrc": "Ka-kiông pán ê chòe-kīn-ê-kái-piàn (su-iàu JavaScript)",
     "tog-numberheadings": "Phiau-tê chū-tōng pian-hō",
     "tog-showtoolbar": "Hián-sī pian-chi̍p ke-si-tiâu (su-iàu JavaScript)",
     "prefs-skin": "Phôe",
     "skin-preview": "Chhì khoàⁿ",
     "datedefault": "Chhìn-chhái",
-    "prefs-datetime": "Ji̍t-kî kap sî-kan",
     "prefs-personal": "Iōng-chiá chu-liāu",
     "prefs-rc": "Chòe-kīn ê kái-piàn & stub ê hián-sī",
     "prefs-watchlist": "Kàm-sī-toaⁿ",
     "filename": "Tóng-àn",
     "filedesc": "Khài-iàu",
     "fileuploadsummary": "Khài-iàu:",
-    "uploadedfiles": "Tóng-àn í-keng sàng chiūⁿ-bāng",
     "ignorewarning": "Mài chhap kéng-kò, kā tóng-àn pó-chûn khí lâi.",
     "ignorewarnings": "Mài chhap kéng-kò",
     "badfilename": "Iáⁿ-siōng ê miâ í-keng kái chò \"$1\".",
     "watchlistfor2": "予$1 $2",
     "nowatchlist": "Lí ê kàm-sī-toaⁿ bô pòaⁿ hāng.",
     "watchnologin": "Bô teng-ji̍p",
-    "watchnologintext": "Lí it-tēng ài [[Special:UserLogin|teng-ji̍p]] chiah ē-tàng siu-kái lí ê kàm-sī-toaⁿ.",
     "addedwatchtext": "\"[[:$1]]\" chit ia̍h í-keng ka-ji̍p lí ê [[Special:Watchlist|kàm-sī-toaⁿ]]. Bī-lâi chit ia̍h a̍h-sī siong-koan ê thó-lūn-ia̍h nā ū kái-piàn, ē lia̍t tī hia. Tông-sî tī [[Special:RecentChanges|Chòe-kīn ê kái-piàn]] ē iōng '''chho·-thé''' hián-sī ia̍h ê piau-tê, án-ne khah bêng-hián. Ká-sú lí beh chiōng chit ia̍h tùi lí ê kàm-sī-toaⁿ tû tiāu, khì khòng-chè-tiâu chhi̍h \"Mài kàm-sī\" chiū ē-sái-tit.",
     "removedwatchtext": "\"[[:$1]]\" chit ia̍h í-keng tùi lí ê kàm-sī-toaⁿ tû tiāu.",
     "watch": "kàm-sī",
     "excontent": "lōe-iông sī: '$1'",
     "excontentauthor": "loē-iông sī: '$1' (î-it ê kòng-hiàn-chiá sī '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "chìn-chêng ê lōe-iông sī: '$1'",
-    "exblank": "ia̍h khang-khang",
     "historywarning": "Kéng-kò: Lí beh thâi ê ia̍h ū le̍k-sú:",
     "confirmdeletetext": "Lí tih-beh kā 1 ê ia̍h a̍h-sī iáⁿ-siōng (pau-koat siong-koan ê le̍k-sú) éng-kiú tùi chu-liāu-khò· thâi tiāu. Chhiáⁿ khak-tēng lí àn-sǹg án-ne chò, jī-chhiáⁿ liáu-kái hiō-kó, jī-chhiáⁿ bô ûi-hoán [[{{MediaWiki:Policy-url}}]].",
     "actioncomplete": "Chip-hêng sêng-kong",
index 820f27f..ecbad71 100644 (file)
     "accountcreatedtext": "Brukerkontoen for [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskusjon]]) har blitt opprettet.",
     "createaccount-title": "Kontooppretting på {{SITENAME}}",
     "createaccount-text": "Noen opprettet en konto for din e-postadresse på {{SITENAME}} ($4) med navnet «$2», med «$3» som passord. Du burde logge inn og endre passordet nå.\n\nDu kan ignorere denne beskjeden dersom kontoen ble opprettet ved en feil.",
-    "usernamehasherror": "Brukernavn kan ikke inneholde nummertegn.",
     "login-throttled": "Du har prøvd å logge inn for mange ganger.\nVent $1 før du prøver på nytt.",
     "login-abort-generic": "Innleggingen ble avbrutt.",
     "loginlanguagelabel": "Språk: $1",
     "prefs-skin": "Utseende",
     "skin-preview": "Forhåndsvisning",
     "datedefault": "Ingen foretrukket",
-    "prefs-datetime": "Dato og tid",
     "prefs-labs": "Lab-funksjoner",
     "prefs-user-pages": "Brukersider",
     "prefs-personal": "Brukerdata",
     "upload-permitted": "Tillatte filtyper: $1.",
     "upload-preferred": "Foretrukne filtyper: $1",
     "upload-prohibited": "Forbudte filtyper: $1.",
-    "uploadlog": "opplastingslogg",
     "uploadlogpage": "Opplastingslogg",
     "uploadlogpagetext": "Her er en liste over de siste opplastede filene.\nSe [[Special:NewFiles|galleriet over nye filer]] for en mer visuell visning",
     "filename": "Filnavn",
     "filereuploadsummary": "Filendringer:",
     "filestatus": "Opphavsrettsstatus:",
     "filesource": "Kilde:",
-    "uploadedfiles": "Filer som er lastet opp",
     "ignorewarning": "Ignorer advarselen og lagre filen likevel",
     "ignorewarnings": "Ignorer eventuelle advarsler",
     "minlength1": "Filnavn må være på minst én bokstav.",
     "overwroteimage": "last opp en ny versjon av «[[$1]]»",
     "uploaddisabled": "Opplastingsfunksjonen er slått av",
     "copyuploaddisabled": "Opplasting via nettadresse deaktivert.",
-    "uploadfromurl-queued": "Opplastingen din har blitt satt i kø.",
     "uploaddisabledtext": "Opplasting er slått av.",
     "php-uploaddisabledtext": "PHP-filopplasting er deaktivert. Sjekk innstillingen for file_uploads.",
     "uploadscripted": "Denne filen inneholder HTML eller skripting som kan feiltolkes av en nettleser.",
     "upload-misc-error": "Ukjent opplastingsfeil",
     "upload-misc-error-text": "En ukjent feil forekom under opplastingen.\nBekreft at adressen er gyldig og tilgjengelig, og prøv igjen.\nOm problemet fortsetter, kontakt en [[Special:ListUsers/sysop|administrator]].",
     "upload-too-many-redirects": "URL-en inneholdt for mange omdirigeringer",
-    "upload-unknown-size": "Ukjent størrelse",
     "upload-http-error": "En HTTP-feil oppstod: $1",
     "upload-copy-upload-invalid-domain": "Opplasting av kopier er ikke tilgjengelig fra dette domenet.",
     "backend-fail-stream": "Kunne ikke strømme filen $1.",
     "img-auth-streaming": "Sender «$1».",
     "img-auth-public": "Funksjonen til img_auth.php er å lage filer fra en privat wiki.\nDenne wikien er satt opp som en offentlig wiki.\nFor best mulig sikkerhet er img_auth.php slått av.",
     "img-auth-noread": "Brukeren har ikke tilgang til å lese «$1».",
-    "img-auth-bad-query-string": "URL-en har en ugyldig spørrestreng.",
     "http-invalid-url": "Ugyldig internettadresse: $1",
     "http-invalid-scheme": "Internettadresser med «$1»-formen støttes ikke",
     "http-request-error": "HTTP-forespørselen feilet på grunn av en ukjent feil.",
     "filehist-dimensions": "Dimensjoner",
     "filehist-filesize": "Filstørrelse",
     "filehist-comment": "Kommentar",
-    "filehist-missing": "Fil mangler",
     "imagelinks": "Filbruk",
     "linkstoimage": "Følgende {{PLURAL:$1|side|$1 sider}} har lenker til denne filen:",
     "linkstoimage-more": "Mer enn $1 {{PLURAL:$1|side|sider}} lenker til denne filen.\nFølgende liste viser {{PLURAL:$1|den første siden|de $1 første sidene}}.\nEn [[Special:WhatLinksHere/$2|fullstendig liste]] er tilgjengelig.",
     "trackingcategories-msg": "Sporingskategori",
     "trackingcategories-name": "Beskjednavn",
     "trackingcategories-desc": "Kategori-inklusjonskriterium",
-    "noindex-category-desc": "Denne siden er påført et <nowiki>__NOINDEX__</nowiki> magisk ord (og er i et navnerom hvor det flagget er tillatt), og blir derfor ikke indeksert av roboter.",
-    "index-category-desc": "Denne siden er påført et <nowiki>__INDEX__</nowiki> magisk ord (og er i et navnerom hvor det flagget er tillatt), og vil derfor bli indeksert av roboter mens det normalt ikke vil skje.",
+    "noindex-category-desc": "Denne siden er påført et <code><nowiki>__NOINDEX__</nowiki></code> magisk ord (og er i et navnerom hvor det flagget er tillatt), og blir derfor ikke indeksert av roboter.",
+    "index-category-desc": "Denne siden er påført et <code><nowiki>__INDEX__</nowiki></code> magisk ord (og er i et navnerom hvor det flagget er tillatt), og vil derfor bli indeksert av roboter mens det normalt ikke vil skje.",
     "post-expand-template-inclusion-category-desc": "Etter ekspandering av alle malene, så er siden større enn <code>$wgMaxArticleSize</code>, så noen maler er ikke ekspandert.",
     "post-expand-template-argument-category-desc": "Etter ekspandering av et malargument (noe i trippel krøllparentes, slik som <code>{{{Foo}}})</code>, så er siden større en <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "For mange kostbare parserfunksjoner (som <code>#ifexist</code>) er inkludert på en side. Se [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
     "broken-file-category-desc": "Kategorien blir lagt til hvis siden inneholder en brutt fil-lenke (en lenke for å bygge inn en fil når filen selv ikke eksisterer).",
-    "hidden-category-category-desc": "Dette er en kategori som er påført et <nowiki>__HIDDENCAT__</nowiki> magisk ord, som hindrer den fra å dukke opp i lenkeboksen for kategorier på siden, som standard.",
+    "hidden-category-category-desc": "Dette er en kategori som er påført et <code><nowiki>__HIDDENCAT__</nowiki></code> magisk ord, som hindrer den fra å dukke opp i lenkeboksen for kategorier på siden, som standard.",
     "trackingcategories-nodesc": "Ingen beskrivelse er tilgjengelig",
     "trackingcategories-disabled": "Kategorien er deaktivert",
     "mailnologin": "Ingen avsenderadresse",
     "emailuser-title-notarget": "E-post til bruker",
     "emailpage": "E-post til bruker",
     "emailpagetext": "Du kan bruke skjemaet under for å sende en e-post til denne {{GENDER:$1|brukeren}}.\nE-postadressen du har satt i [[Special:Preferences|innstillingene dine]] vil vises i «Fra»-feltet i e-posten, slik at mottakeren kan svare deg direkte.",
-    "usermailererror": "E-postobjekt returnerte feilen:",
     "defemailsubject": "E-post fra {{SITENAME}}-brukeren «$1»",
     "usermaildisabled": "Brukerepost deaktivert",
     "usermaildisabledtext": "Du kan ikke sende epost til andre brukere på denne wikien",
     "noemailtitle": "Ingen e-postadresse",
     "noemailtext": "Dene brukeren har ikke oppgitt en gyldig e-postadresse.",
-    "nowikiemailtitle": "Ingen e-post tillatt",
     "nowikiemailtext": "Denne brukeren har valgt å ikke motta e-post fra andre brukere.",
     "emailnotarget": "Ikke-eksisterende eller ugyldig brukernavn for mottaker.",
     "emailtarget": "Skriv inn brukernavnet på mottakeren",
     "watching": "Overvåker…",
     "unwatching": "Fjerner fra overvåkningsliste…",
     "watcherrortext": "Det oppsto en feil under endring av overvåkningsinnstillingene dine for «$1».",
-    "enotif_mailer": "{{SITENAME}}s påminnelsessystem",
     "enotif_reset": "Merk alle sider som besøkt",
     "enotif_impersonal_salutation": "{{SITENAME}}-bruker",
     "enotif_subject_deleted": "{{SITENAME}}-siden $1 har blitt slettet av {{gender:$2|$2}}",
     "excontent": "Innholdet var: «$1»",
     "excontentauthor": "innholdet var «$1» (og eneste bidragsyter var [[Special:Contributions/$2|$2]])",
     "exbeforeblank": "innholdet før siden ble tømt var: «$1»",
-    "exblank": "siden var tom",
     "delete-confirm": "Slett «$1»",
     "delete-legend": "Slett",
     "historywarning": "Advarsel: Siden du er i ferd med å slette har en historikk med omtrent {{PLURAL:$1|én revisjon|$1 revisjoner}}:",
     "importunknownsource": "Ukjent importkildetype",
     "importcantopen": "Kunne ikke åpne importfil",
     "importbadinterwiki": "Ugyldig interwikilenke",
-    "importnotext": "Tom eller ingen tekst",
     "importsuccess": "Importering ferdig.",
-    "importhistoryconflict": "Motstridende revisjoner finnes (siden kan ha blitt importert tidligere)",
     "importnosources": "Ingen transwikiimportkilder er angitt, og direkte historikkimporteringer er slått av.",
     "importnofile": "Ingen importfil opplastet.",
     "importuploaderrorsize": "Importfilopplasting mislyktes. Filen er større enn tillatt opplastingsstørrelse.",
index ada401c..82d52f4 100644 (file)
     "permalink": "Vaste verwiezing",
     "print": "Aofdrokken",
     "view": "Lezen",
+    "view-foreign": "Bekieken op $1",
     "edit": "Bewarken",
     "create": "Anmaken",
     "editthispage": "Disse zied bewarken",
     "youhavenewmessages": "Je hebben $1 ($2).",
     "youhavenewmessagesfromusers": "Je hebben $1 van {{PLURAL:$3|n aandere gebruker|$3 gebrukers}} ($2).",
     "youhavenewmessagesmanyusers": "Je hebben $1 van n bulte gebrukers ($2).",
-    "newmessageslinkplural": "{{PLURAL:$1|n niej bericht|nieje berichten}}",
-    "newmessagesdifflinkplural": "leste {{PLURAL:$1|wieziging|wiezigingen}}",
+    "newmessageslinkplural": "{{PLURAL:$1|n niej bericht|999=nieje berichten}}",
+    "newmessagesdifflinkplural": "leste {{PLURAL:$1|wieziging|999=wiezigingen}}",
     "youhavenewmessagesmulti": "Je hebben nieje berichten op $1",
     "editsection": "bewark",
     "editold": "bewark",
     "passwordtooshort": "Wachtwoorden mutten uut tenminsten {{PLURAL:$1|$1 teken|$1 tekens}} bestaon.",
     "password-name-match": "Joew wachtwoord en gebrukersnaam maggen niet liek alleens ween.",
     "password-login-forbidden": "t Gebruuk van disse gebrukersnaam mit dit wachtwoord is niet toe-estaon.",
-    "mailmypassword": "Niej wachtwoord opsturen",
+    "mailmypassword": "Wachtwoord opniej instellen",
     "passwordremindertitle": "Niej tiedelik wachtwoord veur {{SITENAME}}",
     "passwordremindertext": "Der hef der ene evreugen, vanaof t IP-adres $1 (warschienlik jie zelf),\num n niej wachtwoord veur {{SITENAME}} ($4) op te sturen.\nDer is n tiedelik wachtwoord an-emaakt veur gebruker \"$2\":\n\"$3\". As dit niet de bedoeling was, meld dan effen an en kies n niej wachtwoord.\nJoew tiedelike wachtwoord zal verlopen over {{PLURAL:$5|één dag|$5 dagen}}.\n\nA'j dit verzeuk niet zelf edaon hebben of a'j t wachtwoord weer weten\nen t niet meer wiezigen willen, negeer dit bericht dan\nen blief joew bestaonde wachtwoord gebruken.",
     "noemail": "Gien netpostadres eregistreerd veur \"$1\".",
     "accountcreatedtext": "De gebrukersnaam veur [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) is an-emaakt.",
     "createaccount-title": "Gebrukers anmaken veur {{SITENAME}}",
     "createaccount-text": "Der hef der ene n gebruker an-emaakt op {{SITENAME}} ($4), mit de naam $2 en t wachtwoord \"$3\". \nMeld je eigen noen an en wiezig t wachtwoord.\n\nNegeer dit bericht as disse gebruker zonder joew toestemming an-emaakt is.",
-    "usernamehasherror": "In n gebrukersnaam ma'j gien hekjen gebruken.",
     "login-throttled": "Je hebben lestens te vake eprobeerd um an te melden mit n verkeerd wachtwoord.\nJe mutten effen $1 wachten veurda'j t opniej proberen.",
     "login-abort-generic": "Je bin niet an-emeld. De procedure is aofebreuken.",
     "loginlanguagelabel": "Taal: $1",
     "suspicious-userlogout": "Joew verzeuk um of te melden is aofewezen umdat t dernaor uutziet dat t verstuurd is deur n kepotte webkieker of tussenopslagbuffer",
     "createacct-another-realname-tip": "Joew echte naam opgeven is niet verplicht.\nA'j t invullen, dan zu'w t gebruken um erkenning te geven veur joew warkzaamhejen.",
+    "pt-login": "Anmelden",
+    "pt-login-button": "Anmelden",
+    "pt-createaccount": "Inschrieven",
+    "pt-userlogout": "Aofmelden",
     "php-mail-error-unknown": "Der was n onbekende fout mit de mail()-funksie van PHP",
     "user-mail-no-addy": "Eprobeerd n berichjen te versturen zonder n netpostadres",
     "user-mail-no-body": "Der is eprobeerd n netbreef zonder tekste of mit n biester korte tekste te versturen.",
     "changepassword": "Wachtwoord wiezigen",
-    "resetpass_announce": "Je bin an-emeld mit n veurlopige kode die mit de netpost toe-estuurd wörden. Um t anmelden te voltooien, mu'j n niej wachtwoord invoeren:",
+    "resetpass_announce": "Um t anmelden te voltooien, mu'j n niej wachtwoord invoeren.",
     "resetpass_text": "<!-- Tekste hier invoegen -->",
     "resetpass_header": "Wachtwoord wiezigen",
     "oldpassword": "Wachtwoord da'j noen hebben",
     "retypenew": "Niej wachtwoord (opniej)",
     "resetpass_submit": "Voer t wachtwoord in en meld je an",
     "changepassword-success": "Joew wachtwoord is ewiezigd!",
+    "changepassword-throttled": "Je hebben lestens te vake eprobeerd um an te melden mit n verkeerd wachtwoord.\nJe mutten effen $1 wachten veurda'j t opniej proberen.",
     "resetpass_forbidden": "Wachtwoorden kunnen niet ewiezigd wörden",
     "resetpass-no-info": "Je mutten an-emeld ween veurda'j disse zied gebruken kunnen.",
     "resetpass-submit-loggedin": "Wachtwoord wiezigen",
     "resetpass-abort-generic": "De wachtwoordwieziging is aofebreuken deur n uutbreiding.",
     "passwordreset": "Wachtwoord opniej instellen",
     "passwordreset-text-one": "Vul dit formulier in um joew wachtwoord opniej in te stellen.",
-    "passwordreset-text-many": "{{PLURAL:$1|Vul een van de gegevensvelden in um joew wachtwoord opniej in te stellen.}}",
+    "passwordreset-text-many": "{{PLURAL:$1|Vul een van de gegevensvelden in um per netpost n tiejelik wachtwoord te ontvangen.}}",
     "passwordreset-legend": "Wachtwoord opniej instellen",
     "passwordreset-disabled": "Je kunnen op disse wiki joew wachtwoord niet opniej instellen.",
     "passwordreset-emaildisabled": "Netpostmeugelikhejen bin uutezet op disse wiki.",
     "content-failed-to-parse": "Kon de inhoud van t MIME-type $2 veur t model $1 niet verwarken: $3.",
     "invalid-content-data": "Ongeldige inhoudsgegevens",
     "content-not-allowed-here": "De inhoud \"$1\" is niet toe-estaan op de zied [[$2]].",
-    "editwarning-warning": "A'j disse zied verlaoten dan bi'j de wieziging die'j emaakt hebben waorschienlik kwiet.\nA'j an-emeld bin, dan ku'j disse waorschuwing uutzetten in t tabblad \"Bewarkingsveld\" in joew veurkeuren.",
+    "editwarning-warning": "A'j disse zied verlaoten dan bi'j de wieziging die'j emaakt hebben waorschienlik kwiet.\nA'j an-emeld bin, dan ku'j disse waorschuwing uutzetten in t tabblad \"{{int:prefs-editing}}\" in joew veurkeuren.",
     "content-model-wikitext": "wikitekste",
     "content-model-text": "tekste zonder opmaak",
     "content-model-javascript": "JavaScript",
     "revdelete-hide-user": "Gebrukersnaam/IP-adres van disse gebruker",
     "revdelete-hide-restricted": "Gegevens veur beheerders en aander volk onderdrokken",
     "revdelete-radio-same": "(niet wiezigen)",
-    "revdelete-radio-set": "Zichtbaor",
-    "revdelete-radio-unset": "Verbörgen",
+    "revdelete-radio-set": "Verbörgen",
+    "revdelete-radio-unset": "Zichtbaor",
     "revdelete-suppress": "Gegevens veur beheerders en aander volk onderdrokken",
     "revdelete-unsuppress": "Beparkingen veur weerummezetten versies vortdoon",
     "revdelete-log": "Reden:",
     "shown-title": "Laot $1 {{PLURAL:$1|resultaot|resultaoten}} per zied zien",
     "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3)",
     "searchmenu-exists": "'''Der is n zied mit de naam \"[[:$1]]\" op disse wiki.'''",
-    "searchmenu-new": "'''De zied \"[[:$1]]\" op disse wiki anmaken!'''",
+    "searchmenu-new": "<strong>De zied \"[[:$1]]\" op disse wiki anmaken!</strong> \n{{PLURAL:$2|0=|Zie oek de zied mit joew zeukresultaoten.|Zie oek de lieste mit evunnen zeukresultaoten.}}",
     "searchprofile-articles": "Artikels",
     "searchprofile-project": "Hulp- en projektziejen",
     "searchprofile-images": "Multimedia",
     "search-section": "(onderwarp $1)",
     "search-suggest": "Bedoelden je: $1",
     "search-interwiki-caption": "Zusterprojekten",
-    "search-interwiki-default": "$1 resultaoten:",
+    "search-interwiki-default": "Resultaoten van $1:",
     "search-interwiki-more": "(meer)",
     "search-relatedarticle": "Verwaant",
     "searcheverything-enable": "In alle naamruumten zeuken",
     "prefs-skin": "{{SITENAME}}-uterlik",
     "skin-preview": "bekieken",
     "datedefault": "Gien veurkeur",
-    "prefs-datetime": "Daotum en tied",
     "prefs-labs": "Alphafunksies",
     "prefs-user-pages": "Gebrukersziejen",
     "prefs-personal": "Gebrukersgegevens",
     "recentchanges-label-unpatrolled": "Disse bewarking is nog niet nao-ekeken",
     "recentchanges-label-plusminus": "Disse ziedgrootte is mit dit antal bytes ewiezigd",
     "recentchanges-legend-newpage": "(zie oek de [[Special:NewPages|lieste mit nieje ziejen]])",
-    "rcnotefrom": "Dit bin de wiezigingen sinds <b>$2</b> (maximum van <b>$1</b> wiezigingen).",
+    "rcnotefrom": "Dit bin de wiezigingen sinds <strong>$2</strong> (maximum van <strong>$1</strong> wiezigingen).",
     "rclistfrom": "Bekiek wiezigingen vanaof $1",
     "rcshowhideminor": "$1 kleine wiezigingen",
     "rcshowhidebots": "$1 botgebrukers",
-    "rcshowhideliu": "$1 an-emelde gebrukers",
+    "rcshowhideliu": "$1 eregistreerden gebrukers",
     "rcshowhideanons": "$1 anonieme gebrukers",
     "rcshowhidepatr": "$1 nao-ekeken bewarkingen",
     "rcshowhidemine": "$1 mien bewarkingen",
     "upload-permitted": "Toe-estaone bestaandstypes: $1.",
     "upload-preferred": "An-ewezen bestaandstypes: $1.",
     "upload-prohibited": "Verbeujen bestaandstypes: $1.",
-    "uploadlog": "logboek mit nieje bestaanden",
     "uploadlogpage": "Logboek mit nieje bestaanden",
     "uploadlogpagetext": "Hieronder steet n lieste mit bestaanden die net niej bin.\nZie de [[Special:NewFiles|uutstalling mit media]] veur n overzichte.",
     "filename": "Bestaandsnaam",
     "filereuploadsummary": "Bestaandswiezigingen:",
     "filestatus": "Auteursrechtstaotus",
     "filesource": "Bron",
-    "uploadedfiles": "Nieje bestaanden",
     "ignorewarning": "Negeer alle waorschuwingen",
     "ignorewarnings": "Negeer waorschuwingen",
     "minlength1": "Bestaandsnamen mutten uut tenminsten één letter bestaon.",
     "overwroteimage": "Nieje versie van \"[[$1]]\" op-estuurd",
     "uploaddisabled": "t Opsturen van bestaanden is uutezet.",
     "copyuploaddisabled": "t Opsturen van bestaanden via n webadres is uutezet.",
-    "uploadfromurl-queued": "Joew bestaand is in de wachtrie ezet.",
     "uploaddisabledtext": "t Opsturen van bestaanden is uutezet.",
     "php-uploaddisabledtext": "t Opsturen van PHP-bestaanden is uutezet. Kiek de instellingen veur t opsturen van bestaanden effen nao.",
     "uploadscripted": "In dit bestaand steet HTML- of skriptkode die verkeerd elezen kan wörden deur de webkieker.",
     "upload-misc-error": "Onbekende fout bie t inlaojen van joew bestaand",
     "upload-misc-error-text": "Der is bie t inlaojen van t bestaand n onbekende fout op-etrejen. \nKiek effen nao of de verwiezing t wel döt en probeer t opniej. \nAs t probleem zo blif, neem dan kontakt op mit één van de [[Special:ListUsers/sysop|beheerders]].",
     "upload-too-many-redirects": "Der zatten te veule deurverwiezingen in de URL.",
-    "upload-unknown-size": "Onbekende grootte",
     "upload-http-error": "Der is n HTTP-fout op-etrejen: $1",
     "upload-copy-upload-invalid-domain": "Bestaanden per kopie opsturen is niet beschikbaor vanuut dit domein.",
     "backend-fail-stream": "t Was niet meugelik t bestaand $1 te streumen.",
     "img-auth-streaming": "Bezig mit t streumen van \"$1\".",
     "img-auth-public": "t Doel van img_auth.php is de uutvoer van bestaanden van n besleuten wiki.\nDisse wiki is in-esteld as publieke wiki.\nUm beveiligingsredens is img_auth.php uutezet.",
     "img-auth-noread": "De gebruker hef gien leestoegang tot \"$1\".",
-    "img-auth-bad-query-string": "In t webadres steet n ongeldige zeukopdrachte.",
     "http-invalid-url": "Ongeldig webadres: $1",
     "http-invalid-scheme": "Webadressen mit de opmaak \"$1\" wörden niet ondersteund.",
     "http-request-error": "Fout bie t verzenden van t verzeuk.",
     "filehist-dimensions": "Grootte",
     "filehist-filesize": "Bestaandsgrootte",
     "filehist-comment": "Opmarkingen",
-    "filehist-missing": "Bestaand ontbrik",
     "imagelinks": "Bestaandsgebruuk",
     "linkstoimage": "Dit bestaand wörden gebruukt op de volgende {{PLURAL:$1|zied|$1 ziejen}}:",
     "linkstoimage-more": "Der {{PLURAL:$2|is|bin}} meer as $1 {{PLURAL:$1|verwiezing|verwiezingen}} naor dit bestaand.\nDe volgende lieste gif allinnig de eerste {{PLURAL:$1|verwiezing|$1 verwiezingen}} naor dit bestaand weer.\nDe [[Special:WhatLinksHere/$2|hele lieste]] is oek beschikbaor.",
     "emailuser-title-notarget": "Gebruker n bericht sturen",
     "emailpage": "Gebruker n bericht sturen",
     "emailpagetext": "Deur middel van dit formulier ku'j n bericht sturen naor disse {{GENDER:$1|gebruker}}.\nt Adres da'j op-egeven hebben bie [[Special:Preferences|joew veurkeuren]] zal as aofzender gebruukt wörden.\nDe ontvanger kan dus drek beantwoorden.",
-    "usermailererror": "Foutmelding bie t versturen:",
     "defemailsubject": "Bericht van {{SITENAME}}-gebruker \"$1\"",
     "usermaildisabled": "n Persoonlik berichjen sturen geet niet.",
     "usermaildisabledtext": "Je kunnen gien berichjes sturen naor aandere gebrukers van disse wiki",
     "noemailtitle": "Gebruker hef gien netpostadres op-egeven",
     "noemailtext": "Disse gebruker hef gien geldig e-mailadres in-evoerd.",
-    "nowikiemailtitle": "Netpost is niet toe-estaon",
     "nowikiemailtext": "Disse gebruker wil gien netpost toe-estuurd kriegen van aandere gebrukers.",
     "emailnotarget": "Niet-bestaonde of ongeldige ontvanger.",
     "emailtarget": "Voer de gebrukersnaam of ontvanger in",
     "watching": "Volg...",
     "unwatching": "Niet volgen...",
     "watcherrortext": "Der is n fout op-etrejen tiejens t wiezigen van joew volgliesinstellingen veur \"$1\".",
-    "enotif_mailer": "{{SITENAME}}-berichgevingssysteem",
     "enotif_reset": "Markeer alle ziejen as bezöcht.",
     "enotif_impersonal_salutation": "{{SITENAME}}-gebruker",
     "enotif_subject_deleted": "{{SITENAME}}: zied $1 is vortedaon deur {{GENDER:$2|$2}}",
     "enotif_lastvisited": "Zie $1 veur alle wiezigingen sinds joew leste bezeuk.",
     "enotif_lastdiff": "Zie $1 um disse wieziging te bekieken.",
     "enotif_anon_editor": "anonieme gebruker $1",
-    "enotif_body": "Huj $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nSamenvatting van de wieziging: $PAGESUMMARY $PAGEMINOREDIT\n\nKontaktgevevens van de auteur:\nNetpost: $PAGEEDITOR_EMAIL\nWiki: $PAGEEDITOR_WIKI\n\nJe kriegen veerder gien berichten, behalven a'j disse zied bezeuken.\nOp joew volglieste ku'j veur alle ziejen die'j volgen de waorschuwingsinstellingen deraof haolen.\n\nGroeten van t {{SITENAME}}-waorschuwingssysteem.\n\n--\nJe kunnen joew netpostinstellingen wiezigen op:\n{{canonicalurl:{{#special:Preferences}}}}\n\nJe kunnen de volgliestinstellingen wiezigen op:\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nJe kunnen de zied van joew volglieste aofhaolen deur op de volgende verwiezing te klikken:\n$UNWATCHURL\n\nOpmarkingen en veerdere hulpe:\n{{canonicalurl:{{MediaWiki:Helppage}}}}",
+    "enotif_body": "Huj $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nSamenvatting van de wieziging: $PAGESUMMARY $PAGEMINOREDIT\n\nKontaktgevevens van de auteur:\nNetpost: $PAGEEDITOR_EMAIL\nWiki: $PAGEEDITOR_WIKI\n\nJe kriegen veerder gien berichten, behalven a'j disse zied bezeuken terwiel je an-emeld bin. Op joew volglieste ku'j veur alle ziejen die'j volgen de waorschuwingsinstellingen deraof haolen.\n\nGroeten van t {{SITENAME}}-waorschuwingssysteem.\n\n--\nJe kunnen joew netpostinstellingen wiezigen op:\n{{canonicalurl:{{#special:Preferences}}}}\n\nJe kunnen de volgliestinstellingen wiezigen op:\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nJe kunnen de zied van joew volglieste aofhaolen deur op de volgende verwiezing te klikken:\n$UNWATCHURL\n\nOpmarkingen en veerdere hulpe:\n{{canonicalurl:{{MediaWiki:Helppage}}}}",
     "created": "an-emaakt",
     "changed": "ewiezigd",
     "deletepage": "Vortdoon",
     "excontent": "De tekste was: '$1'",
     "excontentauthor": "De tekste was: '$1' (zied an-emaakt deur: [[Special:Contributions/$2|$2]])",
     "exbeforeblank": "veurdat disse zied leegemaakt wörden stung hier: '$1'",
-    "exblank": "Zied was leeg",
     "delete-confirm": "\"$1\" vortdoon",
     "delete-legend": "Vortdoon",
     "historywarning": "'''Waorschuwing''': de zied die'j vortdoon, hef $1 {{PLURAL:$1|versie|versies}}:",
     "protect-locked-blocked": "Je kunnen beveiligingsnivo's niet wiezigen terwiel je eblokkeerd bin. Hier bin de instellingen zo as ze noen bin veur de zied '''$1''':",
     "protect-locked-dblock": "Beveiligingsnivo's kunnen effen niet ewiezigd wörden umdat de databanke noen beveiligd is.\nHier staon de instellingen zo as ze noen bin veur de zied '''$1''':",
     "protect-locked-access": "Je hebben gien rechten um t beveilingsnivo van ziejen te wiezigen.\nHier staon de instellingen zo as ze noen bin veur de zied '''$1''':",
-    "protect-cascadeon": "Disse zied wörden beveiligd, umdat t op-eneumen is in de volgende {{PLURAL:$1|zied|ziejen}} die beveiligd {{PLURAL:$1|is|bin}} mit de kaskadeopsie. Je kunnen t beveiligingsnivo van disse zied anpassen, mer dat hef gien invleud op de kaskadebeveiliging.",
+    "protect-cascadeon": "Disse zied wörden beveiligd, umdat t op-eneumen is in de volgende {{PLURAL:$1|zied|ziejen}} die beveiligd {{PLURAL:$1|is|bin}} mit de kaskadeopsie. Wiezigingen in t beveiligingsnivo van disse zied hebben gien invleud op de kaskadebeveiliging.",
     "protect-default": "Veur alle gebrukers",
     "protect-fallback": "Allinnig gebrukers mit t recht \"$1\" toestaon",
     "protect-level-autoconfirmed": "Allinnig automaties bevestigden gebrukers toestaon",
     "range_block_disabled": "De meugelikheid veur beheerders um n groep adressen te blokkeren is uutezet.",
     "ipb_expiry_invalid": "De op-egeven verlooptied is ongeldig.",
     "ipb_expiry_temp": "Blokkeringen veur verbörgen gebrukers mutten permanent ween.",
-    "ipb_hide_invalid": "Kan disse gebruker niet verbargen; warschienlik hef e al te veule bewarkingen emaakt.",
+    "ipb_hide_invalid": "Kan disse gebruker niet verbargen; waorschienlik hef e al meer as {{PLURAL:$1|één bewarking|$1 bewarkingen}} edaon.",
     "ipb_already_blocked": "\"$1\" is al eblokkeerd",
     "ipb-needreblock": "$1 is al eblokkeerd.\nWi'j de instellingen wiezigen?",
     "ipb-otherblocks-header": "Aandere {{PLURAL:$1|blokkering|blokkeringen}}",
     "importunknownsource": "Onbekend invoerbrontype",
     "importcantopen": "Kon t invoerbestaand niet los doon",
     "importbadinterwiki": "Foute interwikiverwiezing",
-    "importnotext": "Leeg of gien tekste",
     "importsuccess": "Invoeren suksesvol!",
-    "importhistoryconflict": "Der bin konflikten in de geschiedenisse van de zied (is misschien eerder al in-evoerd)",
     "importnosources": "Gien transwiki-invoerbronnen vastesteld en t drek inlaojen van versies is eblokkeerd.",
     "importnofile": "Der is gien invoerbestaand op-estuurd.",
     "importuploaderrorsize": "t Opsturen van t invoerbestaand is mislokt.\nt Bestaand is groter as de in-estelde limiet.",
     "importuploaderrortemp": "t Opsturen van t invoerbestaand is mislokt.\nDe tiedelike map is niet anwezig.",
     "import-parse-failure": "Fout bie t verwarken van de XML-invoer",
     "import-noarticle": "Der bin gien ziejen um in te voeren!",
-    "import-nonewrevisions": "Alle versies bin al eerder in-evoerd.",
+    "import-nonewrevisions": "Gien eerdere versies in-evoerd (alles was der al, of is overesleugen vanwegen fouten).",
     "xml-error-string": "$1 op regel $2, kolom $3 (byte $4): $5",
     "import-upload": "XML-gegevens derbie doon",
     "import-token-mismatch": "De sessiegegevens bin verleuren egaon. Probeer t opniej.",
     "svg-long-desc": "SVG-bestaand, uutgangsgrootte $1 × $2 beeldpunten, bestaandsgrootte: $3",
     "svg-long-desc-animated": "Bewegend SVG-bestaand, uutgangsgrootte $1 × $2 beeldpunten, bestaandsgrootte: $3",
     "svg-long-error": "Ongeldig SVG-bestaand: $1",
-    "show-big-image": "Volle resolusie",
+    "show-big-image": "Oorspronkelik bestaand",
     "show-big-image-preview": "Grootte van disse weergave: $1.",
     "show-big-image-other": "Aandere {{PLURAL:$2|resolusie|resolusies}}: $1.",
     "show-big-image-size": "$1 × $2 beeldpunten",
     "version-hook-name": "Hooknaam",
     "version-hook-subscribedby": "In-eschreven deur",
     "version-version": "(Versie $1)",
-    "version-license": "Lisensie",
+    "version-license": "MediaWiki-lisensie",
     "version-poweredby-credits": "Disse wiki wörden an-estuurd deur '''[https://www.mediawiki.org/ MediaWiki]''', auteursrecht © 2001-$1 $2.",
     "version-poweredby-others": "aanderen",
     "version-poweredby-translators": "vertalers van translatewiki.net",
     "version-entrypoints": "Webadressen veur ingangen",
     "version-entrypoints-header-entrypoint": "Ingang",
     "version-entrypoints-header-url": "Webadres",
-    "redirect": "Deurverwiezen op bestaandsnaam, gebrukersnummer of versienummer",
+    "redirect": "Deurverwiezen op bestaandsnaam, gebrukersnummer, ziednummer of versienummer",
     "redirect-legend": "Deurverwiezen naor n bestaand of zied",
-    "redirect-summary": "Disse spesiale zied verwis deur naor n bestaand (as de bestaandsnaam op-egeven wörden), n zied (as n versienummer op-egeven wörden) of n gebrukerszied (as t gebrukersnummer op-egeven wörden). Gebruuk: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]], of [[{{#Special:Redirect}}/user/101]].",
+    "redirect-summary": "Disse spesiale zied verwis deur naor n bestaand (as de bestaandsnaam op-egeven wörden), n zied (as n zied- of versienummer op-egeven wörden) of n gebrukerszied (as t gebrukersnummer op-egeven wörden). Gebruuk: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], of [[{{#Special:Redirect}}/user/101]].",
     "redirect-submit": "Zeuk",
     "redirect-lookup": "Opzeuken:",
     "redirect-value": "Weerde:",
     "fileduplicatesearch-result-n": "Der {{PLURAL:$2|is één bestaand|bin $2 bestaanden}} die liek alleens bin as \"$1\".",
     "fileduplicatesearch-noresults": "Der is gien bestaand mit de naam \"$1\" evunnen.",
     "specialpages": "Spesiale ziejen",
-    "specialpages-note": "* Normale spesiale ziejen.\n* <strong class=\"mw-specialpagerestricted\">Beparkt toegankelike spesiale ziejen.</strong>\n* <span class=\"mw-specialpagecached\">Spesiale ziejen mit allinnig gegevens uut t tussengeheugen (kunnen verouwerd ween).</span>",
+    "specialpages-note": "* Normale spesiale ziejen.\n* <span class=\"mw-specialpagerestricted\">Beparkt toegankelike spesiale ziejen.</span>",
     "specialpages-group-maintenance": "Onderhoudsliesten",
     "specialpages-group-other": "Aandere spesiale ziejen",
     "specialpages-group-login": "Anmelden / inschrieven",
index 5ea4680..66e60b0 100644 (file)
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|वार्ता]])$1 प्रयोगकर्ताको लागि खाता खोलिएको छ ।",
     "createaccount-title": "{{SITENAME}}कोलागि खाता खोल्ने काम",
     "createaccount-text": "कसैले तपाईको इमेल ठेगानालाई {{SITENAME}} ($4) मा \"$2\" नामको खाता बनाएको छ, जसको पासवर्ड \"$3\" छ।",
-    "usernamehasherror": "प्रयोगकर्तानाममा ह्यास अक्षरहरु राख्न मिल्दैन।",
     "login-throttled": "तपाईंले भर्खरै धेरै पल्ट प्रवेशको निम्ति प्रयास गर्नुभएको छ ,कृपया $1 पर्खेर मात्र प्रयास गर्नुहोस्।",
     "login-abort-generic": "तपाईंको प्रवेश असफल भयो - छोड़ियो",
     "loginlanguagelabel": "भाषा: $1",
     "prefs-skin": "काँचुली",
     "skin-preview": "पूर्वावलोकन",
     "datedefault": "कुनै अभिरुचि छैन",
-    "prefs-datetime": "मिति र समय",
     "prefs-labs": "प्रयोगशाला गुणहरु",
     "prefs-user-pages": "प्रयोगकर्ता पृष्ठहरू",
     "prefs-personal": "प्रयोगकर्ताको विवरण",
     "upload-permitted": "अनुमति पाएका फ़ाइल प्रकार:$1.",
     "upload-preferred": "चाहिएका फ़ाइल प्रकार:$1.",
     "upload-prohibited": "निषिद्ध फ़ाइल प्रकार:$1.",
-    "uploadlog": "उर्ध्वभरण लग",
     "uploadlogpage": "उर्ध्वभरण लग",
     "uploadlogpagetext": "भर्खरै उर्ध्वभरण गरिएका फ़ाइलहरुको सूची तल दिइएकोछ ।\nविस्तृत अवलोकनको लागि [[Special:NewFiles|नयाँ फ़ाइलको ग्यालरी]]मा हेर्नुहोस्।",
     "filename": "फाइलनाम",
     "filereuploadsummary": "फ़ाइल परिवर्तनहरू:",
     "filestatus": "लेखाधिकार स्थिति:",
     "filesource": "स्रोत:",
-    "uploadedfiles": "उर्ध्वभरण गरिएका फाइलहरू",
     "ignorewarning": "चेतावनीलाई अनदेखा गर्दै जसरि भएपनि फाइल संग्रह गर्ने",
     "ignorewarnings": "कुनै चेतावनीप्रति ध्यान नदिने",
     "minlength1": "फाइलको नाम कम्तिमा एक अक्षरको हुनैपर्छ।",
     "overwroteimage": " \"[[$1]]\"को एउटा नयाँ संस्करण उर्ध्वभरण गरियो",
     "uploaddisabled": "उर्ध्वभरण अक्षम पारिएकोछ",
     "copyuploaddisabled": " URL प्रयोग गरी उर्ध्वभरण निश्कृय पारिएको छ।",
-    "uploadfromurl-queued": "तपाईको उर्ध्वभरणलाई प्रतिक्षा सुचिमा राखिएको छ।",
     "uploaddisabledtext": "फाइल उर्ध्वभरण अक्षम पारिएकोछ",
     "php-uploaddisabledtext": "PHP मा फाइल उर्ध्वभरण अक्षम गरिएकोछ।\nकृपया फाइल उर्ध्वभरण व्यवस्था(setting) जाँच्नुहोस्।",
     "uploadvirus": "फाइलमा भाइरस छ!\nविवरण:$1",
     "upload-file-error": "आन्तरिक त्रुटि",
     "upload-misc-error": "अज्ञात अपलोड त्रुटि",
     "upload-too-many-redirects": "यस URL मा धेरै पुननिर्देशनहरु छन् ।",
-    "upload-unknown-size": "अज्ञात  आकार",
     "upload-http-error": "HTTP त्रुटि भयो: $1",
     "backend-fail-delete": " $1 फाइल मेट्न सकिएन ।",
     "backend-fail-alreadyexists": " $1 पहिके देखि नै रहेको छ ।",
     "filehist-dimensions": "आकारहरू",
     "filehist-filesize": "फाइल आकार",
     "filehist-comment": "टिप्पणी",
-    "filehist-missing": "फाइल हराइरहेको छ",
     "imagelinks": "फाइलको प्रयोगहरु",
     "linkstoimage": "यस फाइलमा निम्न{{PLURAL:$1|पृष्ठ जोडिन्छ|$1 पृष्ठहरु जोडिन्छन}}:",
     "nolinkstoimage": "यो फाईलसंग लिंकभएको कुनै पृष्ठ छैन.",
     "emailuser": "यो प्रयोगकर्तालाई ई-मेल पठाउनुहोस्",
     "emailuser-title-notarget": "प्रयोगकर्तालाई इमेल गर्नुहोस्",
     "emailpage": "प्रयोगकर्तालाई इमेल गर्नुहोस्",
-    "usermailererror": "मेल अब्जेक्टले देखाएको त्रुटि:",
     "defemailsubject": "{{SITENAME}} प्रयपोगकर्ता \"$1\" बाट इमेल",
     "usermaildisabled": "प्रयोगकर्ता इमेल निरस्त गरिएको",
     "usermaildisabledtext": "यस विकिमा तपाईं अरु प्रयोगकर्तालाई ई-मेल पठाउन सक्नुहुन्न",
     "noemailtitle": "ईमेल ठेगाना नभएको",
     "noemailtext": "प्रयोगकर्ताले सही ई-मेल ठेगाना दर्शाएको छैन।",
-    "nowikiemailtitle": "ई-मेलको अनुमति छैन",
     "nowikiemailtext": "यी प्रयोगकर्ताले अरु प्रयोगकर्ताहरुबाट ई-मेल स्वीकार नगर्ने छनोट गरेकाछन्।",
     "emailnotarget": "प्राप्तकर्ताको रुपमा नभएको अथवा अमान्य प्रयोगकर्ता।",
     "emailtarget": "प्राप्तकर्ताको प्रयोगकर्ता नाम हाल्नुहोस्",
     "watching": "निगरानी गर्दै...",
     "unwatching": "निगरानीबाट हटाउँदै...",
     "watcherrortext": "\"$1\"को लागि तपाइँको निगरानी सुची परिवर्तन गर्ने क्रममा यौटा त्रुटी भएको छ।",
-    "enotif_mailer": "{{SITENAME}} जानकारी प्रेषक",
     "enotif_reset": "सबै पृष्ठहरु भनी दाग दिने",
     "enotif_impersonal_salutation": "{{SITENAME}} प्रयोगकर्ता",
     "enotif_lastvisited": "अघिल्लो हेराइपछिका सबै परिवर्तनहरुको निम्ति हेर्नुहोस्: $1",
     "excontent": "लेख थियो: '$1'",
     "excontentauthor": "लेखेको थियो:\"$1\" (र  योगदान कर्ता थिए \"[[Special:Contributions/$2|$2]]\")",
     "exbeforeblank": "खालि गर्नु भन्दा अघिको सामग्री थियो: \"$1\"",
-    "exblank": "पृष्ठ खाली छ",
     "delete-confirm": "मेट्नुहोस् \"$1\"",
     "delete-legend": "मेट्नुहोस्",
     "historywarning": " चेतावनी: तपाईंले मेटाउन लाग्नुभएको पृष्ठको इतिहासको लगभग $1 {{PLURAL:$1|पुनरावृत्ति छ|पुनरावृत्तिहरु छन्}}:",
     "importunknownsource": "अज्ञात आयात स्रोत प्रकार ।",
     "importcantopen": "आयात गर्ने स्रोत फाइल खोल्न सकिएन ।",
     "importbadinterwiki": "खराव अन्तर विकि लिंक",
-    "importnotext": "पाठ नभएको या  खाली",
     "importsuccess": "आयात सम्पन्न भयो!",
-    "importhistoryconflict": "पुनरावलोकन इतिहासमा द्वन्द रहेको छ (तपाईँले यो पृष्ठ पहिलेनै आयात गरिसक्नु भएको हुनुपर्दछ )",
     "importnofile": "कुनै पनि आयात फाइल अपलोड गरिएन ।",
     "importuploaderrorsize": "आयात फाइलको अपलोड असफल भयो।\nफाइल अनुमति दिइए भन्दा ठूलो छ।",
     "importuploaderrorpartial": "आयात फाइलको अपलोड असफल भयो।\nफाइल आंशिकरुपमा अपलोड भयो।",
index 1169fb1..73314c6 100644 (file)
     "disclaimers": "डिस्क्लेमर्स",
     "disclaimerpage": "Project:साधारण डिस्क्लेमर्स",
     "edithelp": "सम्पादन ग्वहालि",
-    "helppage": "Help:धलःपौ",
     "mainpage": "मू पौ",
     "mainpage-description": "मू पौ",
     "policy-url": "Project:नीति",
index c5feb40..7cbd573 100644 (file)
@@ -64,7 +64,6 @@
     "aboutpage": "Project: Hagaao",
     "currentevents": "Tau Fakaholoaga Mogonei",
     "edithelp": "Lagomatai ke he Fakahakohako",
-    "helppage": "Help: Ke lata mo e tau mena i loto",
     "mainpage": "Matapatu Lau",
     "mainpage-description": "Matapatu Lau",
     "portal": "Maaga ke Matutaki",
index a25c5a1..b443d41 100644 (file)
     "permalink": "Permanente koppeling",
     "print": "Afdrukken",
     "view": "Lezen",
+    "view-foreign": "Bekijken op $1",
     "edit": "Bewerken",
+    "edit-local": "Lokale beschrijving bewerken",
     "create": "Aanmaken",
+    "create-local": "Lokale beschrijving toevoegen",
     "editthispage": "Deze pagina bewerken",
     "create-this-page": "Deze pagina aanmaken",
     "delete": "Verwijderen",
     "pool-timeout": "De maximaal te wachten tijd voor het wachten op een lock is verstreken",
     "pool-queuefull": "De wachtrij van de poel is vol",
     "pool-errorunknown": "Er is een onbekende fout opgetreden",
+    "pool-servererror": "De dienst \"pool counter\" is niet beschikbaar ($1).",
     "aboutsite": "Over {{SITENAME}}",
     "aboutpage": "Project:Info",
     "copyright": "De inhoud is beschikbaar onder de $1 tenzij anders aangegeven.",
     "accountcreatedtext": "De gebruiker [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|overleg]]) is aangemaakt.",
     "createaccount-title": "Gebruikers registreren voor {{SITENAME}}",
     "createaccount-text": "Iemand heeft een gebruiker op {{SITENAME}} ($4) aangemaakt met de naam \"$2\" en uw e-mailadres.\nHet wachtwoord voor \"$2\" is \"$3\".\nMeld u aan en wijzig uw wachtwoord.\n\nNegeer dit bericht als deze gebruiker zonder uw medeweten is aangemaakt.",
-    "usernamehasherror": "Een gebruikersnaam mag het teken hekje (\"#\") niet bevatten.",
     "login-throttled": "U heeft recentelijk te veel mislukte aanmeldpogingen gedaan.\nWacht alstublieft $1 voordat u het opnieuw probeert.",
     "login-abort-generic": "U bent niet aangemeld. De procedure is afgebroken.",
     "loginlanguagelabel": "Taal: $1",
     "prefs-skin": "Vormgeving",
     "skin-preview": "Voorvertoning",
     "datedefault": "Geen voorkeur",
-    "prefs-datetime": "Datum en tijd",
     "prefs-labs": "Alphafunctionaliteit",
     "prefs-user-pages": "Gebruikerspagina's",
     "prefs-personal": "Gebruikersprofiel",
     "upload-permitted": "Toegelaten bestandstypes: $1.",
     "upload-preferred": "Aangewezen bestandstypes: $1.",
     "upload-prohibited": "Verboden bestandstypes: $1.",
-    "uploadlog": "uploadlogboek",
     "uploadlogpage": "Uploadlogboek",
     "uploadlogpagetext": "Hieronder staan de nieuwste bestanden.\nZie de [[Special:NewFiles|galerij met nieuwe bestanden]] voor een visueler overzicht.",
     "filename": "Bestandsnaam",
     "filereuploadsummary": "Bestandswijzigingen:",
     "filestatus": "Auteursrechtenstatus:",
     "filesource": "Bron:",
-    "uploadedfiles": "Geüploade bestanden",
     "ignorewarning": "Deze waarschuwing negeren en het bestand toch opslaan",
     "ignorewarnings": "Alle waarschuwingen negeren",
     "minlength1": "Bestandsnamen moeten minstens één letter bevatten.",
     "overwroteimage": "heeft een nieuwe versie van \"[[$1]]\" toegevoegd",
     "uploaddisabled": "Uploaden is uitgeschakeld",
     "copyuploaddisabled": "Het uploaden van bestanden via een URL is uitgeschakeld.",
-    "uploadfromurl-queued": "Uw upload is in de wachtrij geplaatst.",
     "uploaddisabledtext": "Het uploaden van bestanden is uitgeschakeld.",
     "php-uploaddisabledtext": "Het uploaden van bestanden is uitgeschakeld in PHP.\nControleer de instelling \"file_uploads\".",
     "uploadscripted": "Dit bestand bevat HTML- of scriptcode die foutief door uw browser kan worden weergegeven.",
     "upload-misc-error": "Onbekende uploadfout",
     "upload-misc-error-text": "Er is tijdens het uploaden een onbekende fout opgetreden.\nControleer of de URL correct en beschikbaar is en probeer het opnieuw.\nAls het probleem aanhoudt, neem dan contact op met een [[Special:ListUsers/sysop|moderator]].",
     "upload-too-many-redirects": "De URL bevatte te veel doorverwijzingen",
-    "upload-unknown-size": "Onbekende grootte",
     "upload-http-error": "Er is een HTTP-fout opgetreden: $1",
     "upload-copy-upload-invalid-domain": "Uploaden per kopie is niet beschikbaar vanuit dit domein.",
     "backend-fail-stream": "Het was niet mogelijk het bestand $1 te streamen.",
     "img-auth-streaming": "Bezig met het streamen van \"$1\".",
     "img-auth-public": "Het doel van img_auth.php is de uitvoer van bestanden van een besloten wiki.\nDeze wiki is ingesteld als publieke wiki.\nOm beveiligingsreden is img_auth.php uitgeschakeld.",
     "img-auth-noread": "De gebruiker heeft geen leestoegang tot \"$1\".",
-    "img-auth-bad-query-string": "De URL bevat een ongeldige querystring.",
     "http-invalid-url": "Ongeldige URL: $1",
     "http-invalid-scheme": "URL's met de opmaak \"$1\" worden niet ondersteund",
     "http-request-error": "Fout bij het verzenden van het verzoek.",
     "filehist-dimensions": "Afmetingen",
     "filehist-filesize": "Bestandsgrootte",
     "filehist-comment": "Opmerking",
-    "filehist-missing": "Het bestand is niet aangetroffen",
     "imagelinks": "Bestandsgebruik",
     "linkstoimage": "Dit bestand wordt op de volgende {{PLURAL:$1|pagina|$1 pagina's}} gebruikt:",
     "linkstoimage-more": "Er {{PLURAL:$2|is|zijn}} meer dan $1 {{PLURAL:$1|koppeling|koppelingen}} naar dit bestand.\nDe volgende lijst geeft alleen de eerste {{PLURAL:$1|koppeling|$1 koppelingen}} naar dit bestand weer.\nEr is ook een [[Special:WhatLinksHere/$2|volledige lijst]].",
     "listgrouprights-removegroup-self": "De volgende {{PLURAL:$2|groep|groepen}} verwijderen van eigen gebruiker: $1",
     "listgrouprights-addgroup-self-all": "Alle groepen toevoegen aan eigen gebruiker",
     "listgrouprights-removegroup-self-all": "Alle groepen verwijderen van eigen gebruiker",
+    "listgrouprights-namespaceprotection-header": "Naamruimtebeperkingen",
+    "listgrouprights-namespaceprotection-namespace": "Naamruimte",
+    "listgrouprights-namespaceprotection-restrictedto": "Recht(en) waardoor gebruiker kan bewerken",
     "trackingcategories": "Volgcategorieën",
     "trackingcategories-summary": "Op deze pagina worden volgcategorieën weergegeven die automatisch worden gevuld door de MediaWikisoftware. De namen van de categorieën kunnen gewijzigd worden door de bijbehorende systeemberichten in de naamruimte \"{{ns:8}}\" bij te werken.",
     "trackingcategories-msg": "Volgcategorie",
     "trackingcategories-name": "Berichtnaam",
     "trackingcategories-desc": "Opnamecriteria",
-    "noindex-category-desc": "De pagina bevat het magische woord <nowiki>__NOINDEX__</nowiki> (en bevindt zich in een naamruimte waarin dat magische woord is toegestaan), en wordt niet geïndexeerd door robots.",
-    "index-category-desc": "De pagina bevat het magische woord <nowiki>__NOINDEX__</nowiki> (en bevindt zich in een naamruimte waarin dat magische woord is toegestaan), en wordt geïndexeerd door robots, terwijl dat normaliter niet zou gebeuren.",
+    "noindex-category-desc": "De pagina bevat het magische woord <code><nowiki>__NOINDEX__</nowiki></code> (en bevindt zich in een naamruimte waarin dat magische woord is toegestaan), en wordt niet geïndexeerd door robots.",
+    "index-category-desc": "De pagina bevat het magische woord <code><nowiki>__INDEX__</nowiki></code> (en bevindt zich in een naamruimte waarin dat magische woord is toegestaan), en wordt geïndexeerd door robots, terwijl dat normaliter niet zou gebeuren.",
     "post-expand-template-inclusion-category-desc": "Na het uitbreiden van alle sjablonen, is de pagina groter dan <code>$wgMaxArticleSize</code>, dus zijn sommige sjablonen niet uitgebreid.",
     "post-expand-template-argument-category-desc": "Na het uitbreiden van een sjabloonparameter (iets in de drievoudige accolades, zoals <code>{{{Foo}}})</code>), is de pagina groter dan <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Op de pagina worden te veel kostbare parserfuncties (zoals <code>#ifexist</code>) gebruikt. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Meer informatie].",
     "broken-file-category-desc": "Een categorie die wordt toegevoegd als een pagina een niet-bestaande koppeling bevat (een koppeling om een bestand toe te voegen als dat bestand niet bestaat).",
-    "hidden-category-category-desc": "Dit is een categoriepagina die het magische woord <nowiki>__HIDDENCAT__</nowiki> bevat, waardoor de categorie standaard niet zichtbaar is in de lijst met categorieën op pagina's.",
+    "hidden-category-category-desc": "Dit is een categoriepagina die het magische woord <code><nowiki>__HIDDENCAT__</nowiki></code> bevat, waardoor de categorie standaard niet zichtbaar is in de lijst met categorieën op pagina's.",
     "trackingcategories-nodesc": "Geen beschrijving beschikbaar.",
     "trackingcategories-disabled": "Categorie uitgeschakeld",
     "mailnologin": "Geen verzendadres beschikbaar",
     "emailuser-title-notarget": "Gebruiker e-mailen",
     "emailpage": "Gebruiker e-mailen",
     "emailpagetext": "Via dit formulier kunt u een e-mail aan {{GENDER:$1|deze gebruiker}} verzenden.\nHet e-mailadres dat u hebt opgegeven bij [[Special:Preferences|uw voorkeuren]] wordt als afzender gebruikt.\nDe ontvanger kan dus direct naar u reageren.",
-    "usermailererror": "Foutmelding bij het verzenden:",
     "defemailsubject": "E-mail van {{SITENAME}}-gebruiker \"$1\"",
     "usermaildisabled": "Gebruikerse-mail uitgeschakeld",
     "usermaildisabledtext": "U kunt geen e-mail verzenden naar andere gebruikers op deze wiki",
     "noemailtitle": "Van deze gebruiker is geen e-mailadres bekend",
     "noemailtext": "Deze gebruiker heeft geen geldig e-mailadres opgegeven.",
-    "nowikiemailtitle": "E-mail is niet toegestaan",
     "nowikiemailtext": "Deze gebruiker wil geen e-mail ontvangen van andere gebruikers.",
     "emailnotarget": "Niet-bestaande of ongeldige ontvanger.",
     "emailtarget": "Voer de geadresseerde in",
     "watching": "Bezig met plaatsen op volglijst…",
     "unwatching": "Bezig met verwijderen van volglijst…",
     "watcherrortext": "Er is een fout opgetreden tijdens het wijzigen van uw volglijstinstellingen voor \"$1\".",
-    "enotif_mailer": "{{SITENAME}}-berichtensysteem",
     "enotif_reset": "Alle pagina's markeren als bezocht",
     "enotif_impersonal_salutation": "gebruiker van {{SITENAME}}",
     "enotif_subject_deleted": "{{SITENAME}}: pagina $1 is verwijderd door {{GENDER:$2|$2}}",
     "excontent": "De inhoud was: \"$1\"",
     "excontentauthor": "De inhoud was: \"$1\" ([[Special:Contributions/$2|$2]] was de enige auteur)",
     "exbeforeblank": "De inhoud was: \"$1\"",
-    "exblank": "pagina was leeg",
     "delete-confirm": "\"$1\" verwijderen",
     "delete-legend": "Verwijderen",
     "historywarning": "'''Waarschuwing:''' de pagina die u wilt verwijderen heeft ongeveer $1 {{PLURAL:$1|versie|versies}}:",
     "importunknownsource": "Onbekend importbrontype",
     "importcantopen": "Kon het importbestand niet openen",
     "importbadinterwiki": "Verkeerde interwikikoppeling",
-    "importnotext": "Leeg of geen tekst",
     "importsuccess": "Import afgerond!",
-    "importhistoryconflict": "Er zijn conflicten in de geschiedenis van de pagina (is misschien eerder geïmporteerd)",
     "importnosources": "Er zijn geen transwiki-importbronnen gedefinieerd en directe geschiedenis-uploads zijn uitgeschakeld.",
     "importnofile": "Er is geen importbestand geüpload.",
     "importuploaderrorsize": "Upload van het importbestand in mislukt.\nHet bestand is groter dan de ingestelde limiet.",
     "version-entrypoints": "URL's voor ingangen",
     "version-entrypoints-header-entrypoint": "Ingang",
     "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]",
+    "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Paginapad]",
+    "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Scriptpad]",
     "redirect": "Doorverwijzen op bestandsnaam, gebruikersnummer, paginanummer, of versienummer",
     "redirect-legend": "Doorverwijzen naar een bestand of pagina",
     "redirect-summary": "Deze speciale pagina verwijst door naar een bestand (als een bestandsnaam wordt opgegeven), een pagina (als een paginanummer of versienummer wordt opgegeven) of een gebruikerspagina (als een gebruikersnummer wordt opgegeven). Gebruik: [[{{#Special:Redirect}}/file/Voorbeeld.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] of [[{{#Special:Redirect}}/user/101]].",
index 02cab21..e9bdc0a 100644 (file)
     "accountcreatedtext": "Brukarkontoen til [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskusjon]]) er oppretta.",
     "createaccount-title": "Oppretting av brukarkonto på {{SITENAME}}",
     "createaccount-text": "Nokon oppretta ein brukarkonto for $2 på {{SITENAME}} ($4). Passordet til «$2» er «$3». Du bør logge inn og endre passordet ditt med ein gong.\n\nDu kan sjå bort frå denne meldinga dersom kontoen vart oppretta med eit uhell.",
-    "usernamehasherror": "Brukarnamn kan ikkje innehalda nummerteikn.",
     "login-throttled": "Du har prøvd å logge inn for mange gonger. Ver venleg og vent før du prøver igjen.",
     "login-abort-generic": "Innlogginga er avbroten.",
     "loginlanguagelabel": "Språk: $1",
     "prefs-skin": "Drakt",
     "skin-preview": "førehandsvis",
     "datedefault": "Standard",
-    "prefs-datetime": "Dato og klokkeslett",
     "prefs-labs": "Testfunksjonar",
     "prefs-user-pages": "Brukarsider",
     "prefs-personal": "Brukaropplysningar",
     "upload-permitted": "Godtekne filtypar: $1.",
     "upload-preferred": "Føretrekte filtypar: $1.",
     "upload-prohibited": "Ikkje godtekne filtypar: $1.",
-    "uploadlog": "opplastingslogg",
     "uploadlogpage": "Opplastingslogg",
     "uploadlogpagetext": "Dette er ei liste over filer som nyleg er lasta opp.",
     "filename": "Filnamn",
     "filereuploadsummary": "Filendringar:",
     "filestatus": "Opphavsrettsstatus:",
     "filesource": "Kjelde:",
-    "uploadedfiles": "Filer som er opplasta",
     "ignorewarning": "Sjå bort frå åtvaringa og lagre fila likevel",
     "ignorewarnings": "Oversjå åtvaringar",
     "minlength1": "Filnamn må ha minst eitt teikn.",
     "overwroteimage": "lasta opp ein ny versjon av «[[$1]]»",
     "uploaddisabled": "Beklagar, funksjonen for opplasting er deaktivert på denne nettenaren.",
     "copyuploaddisabled": "Opplasting gjennom URL er slege av.",
-    "uploadfromurl-queued": "Opplastinga di er sett i kø.",
     "uploaddisabledtext": "Filopplasting er slått av.",
     "php-uploaddisabledtext": "PHP-filopplasting er deaktivert. Sjå innstillinga for file_uploads.",
     "uploadscripted": "Fila inneheld HTML- eller skriptkode som feilaktig kan bli tolka og køyrd av nettlesarar.",
     "upload-misc-error": "Ukjend feil ved opplastinga",
     "upload-misc-error-text": "Ein ukjend feil oppstod under opplastinga. Ver venleg og stadfest at nettadressa er gyldig og tilgjengeleg, og prøv ein gong til. Dersom problemet held fram, ta kontakt med ein [[Special:ListUsers/sysop|administrator]].",
     "upload-too-many-redirects": "URL-en inneheldt for mange omdirigeringar",
-    "upload-unknown-size": "Ukjend storleik",
     "upload-http-error": "Ein HTTP-feil oppstod: $1",
     "upload-copy-upload-invalid-domain": "Kopiopplastingar er ikkje tilgjengelege frå dette domenet.",
     "backend-fail-stream": "Kunne ikkje strøyma fila «$1».",
     "img-auth-streaming": "Sendar \"$1\".",
     "img-auth-public": "Funksjonen til img_auth.php er å laga filer frå ein privat wiki.\nDenne wikien er sett opp som ein ålmennt tilgjengeleg wiki.\nFor best tryggleik, er img_auth.php sett ut av funksjon.",
     "img-auth-noread": "Brukaren har ikkje rettar til å lesa «$1».",
-    "img-auth-bad-query-string": "URL-en har ein ugild spørjestreng.",
     "http-invalid-url": "Ugyldig URL: $1",
     "http-invalid-scheme": "URL-ar med  «$1»-førestavinga er ikkje støtta.",
     "http-request-error": "HTTP-førespurnaden feila grunna ein ukjend feil.",
     "filehist-dimensions": "Oppløysing",
     "filehist-filesize": "Filstorleik",
     "filehist-comment": "Kommentar",
-    "filehist-missing": "Fila manglar",
     "imagelinks": "Filbruk",
     "linkstoimage": "{{PLURAL:$1|Den følgjande sida|Dei følgjande $1 sidene}} har lenkjer til denne fila:",
     "linkstoimage-more": "Meir enn $1 {{PLURAL:$1|side|sider}} lenkjer til denne fila.\nFølgjande liste viser {{PLURAL:$1|den første sida|dei $1 første sidene}}.\nEi [[Special:WhatLinksHere/$2|fullstendig liste]] er tilgjengeleg.",
     "emailuser-title-notarget": "Send e-post åt brukar",
     "emailpage": "Send e-post åt brukar",
     "emailpagetext": "Du kan nytte skjemaet nedanfor til å sende ein e-post til denne {{GENDER:$1|brukaren}}.\nE-postadressa du har sett i [[Special:Preferences|innstillingane dine]] vil dukke opp i «frå»-feltet på denne e-posten, så mottakaren er i stand til å svare.",
-    "usermailererror": "E-post systemet gav feilmelding:",
     "defemailsubject": "{{SITENAME}} epost frå brukar \"$1\"",
     "usermaildisabled": "Brukare-post slegen av",
     "usermaildisabledtext": "Du kan ikkje senda e-postar til andre brukarar på wikien",
     "noemailtitle": "Inga e-postadresse",
     "noemailtext": "Denne brukaren har ikkje oppgjeve ei gyldig e-postadresse.",
-    "nowikiemailtitle": "Ingen e-post tillaten",
     "nowikiemailtext": "Denne brukaren har vald å ikkje motta e-postar frå andre brukarar.",
     "emailnotarget": "Ikkje-eksisterande eller ugyldig brukarnamn for mottakar.",
     "emailtarget": "Skriv inn brukarnamnet til mottakaren",
     "watching": "Overvakar...",
     "unwatching": "Fjernar frå overvakinglista...",
     "watcherrortext": "Det oppstod ein feil under endringa av overvakingsinnstillingane dine for «$1».",
-    "enotif_mailer": "{{SITENAME}}-endringsmeldingssendar",
     "enotif_reset": "Merk alle sidene som vitja",
     "enotif_impersonal_salutation": "{{SITENAME}}-brukar",
     "enotif_subject_deleted": "{{SITENAME}}-sida $1 har vorte sletta av {{gender:$2|$2}}",
     "excontent": "innhaldet var: «$1»",
     "excontentauthor": "innhaldet var: «$1» (og den einaste bidragsytaren var «[[Special:Contributions/$2|$2]]»)",
     "exbeforeblank": "innhaldet før sida vart tømd var: «$1»",
-    "exblank": "sida var tom",
     "delete-confirm": "Slett «$1»",
     "delete-legend": "Slett",
     "historywarning": "'''Åtvaring:''' Sida du held på å slette har ein historikk med om lag $1 {{PLURAL:$1|versjon|versjonar}}:",
     "importunknownsource": "Ukjend importkjeldetype",
     "importcantopen": "Kunne ikkje opne importfil",
     "importbadinterwiki": "Ugyldig interwikilenkje",
-    "importnotext": "Tom eller ingen tekst",
     "importsuccess": "Importeringa er ferdig!",
-    "importhistoryconflict": "Det kan vera at det er konflikt i historikken (kanskje sida vart importert før)",
     "importnosources": "Ingen kjelder for transwikiimport er oppgjevne og funksjonen for opplasting av historikk er deaktivert.",
     "importnofile": "Inga importfil er lasta opp.",
     "importuploaderrorsize": "Opplastinga av importfila var mislukka. Fila er større enn det som er lov å laste opp.",
index 221b236..c516f05 100644 (file)
     "currentevents": "Nuni eventes",
     "currentevents-url": "Project:Nuni eventes",
     "edithelp": "Helpo pri modifiko de pagines",
-    "helppage": "Help:Kontenaje",
     "mainpage": "Chefi pagine",
     "mainpage-description": "Chefi pagine",
     "portal": "Li komun chambre",
index 2f3bbc7..69410b4 100644 (file)
@@ -90,7 +90,6 @@
     "aboutpage": "Project: baa haneʼ",
     "copyright": "Díí naaltsoos bikáaʼgi saad shijaaʼígíí \"$1\" beehazʼą́ąnii bikʼehgo choidííłįįł",
     "edithelp": "anáʼálwoʼ",
-    "helppage": "Help:Bee hadítʼéhígíí",
     "mainpage": "Íiyisíí Naaltsoos",
     "mainpage-description": "Íiyisíí Naaltsoos",
     "retrievedfrom": "\"$1\" bitsʼą́ą́dę́ę́ʼ",
index fd88bed..57e52a5 100644 (file)
@@ -53,7 +53,6 @@
     "currentevents": "Saray nagagawa natan",
     "currentevents-url": "Project:Saray nagagawa natan",
     "edithelp": "Tolong nipakar ed panagbalo na artikulo",
-    "helppage": "Help:Saray Laman",
     "mainpage": "Arapan ya Bolong",
     "mainpage-description": "Arapan ya Bolong",
     "portal": "Pwerta na komyunidad",
index 11c6ec4..d690593 100644 (file)
     "disclaimers": "Deklarashon di Liberashon for di Responsabilidatnan",
     "disclaimerpage": "Project:Deklarashon di Liberashon for di Responsabilidat General",
     "edithelp": "Ayudo ku editamentu",
-    "helppage": "Help:Kontenido",
     "mainpage": "Página Prinsipal",
     "mainpage-description": "Página Prinsipal",
     "policy-url": "Project:Pólisa",
index 92bf0e5..2a5329b 100644 (file)
     "disclaimers": "Impressum",
     "disclaimerpage": "Project:Impressum",
     "edithelp": "Help tom Beoabeide",
-    "helppage": "Help:Enhault",
     "mainpage": "Hauptsied",
     "mainpage-description": "Hauptsied",
     "policy-url": "Project:Policy",
index 6e370a0..3aabf75 100644 (file)
@@ -25,7 +25,6 @@
     "talk": "diskushun",
     "currentevents": "Dem Kurent Iwent",
     "currentevents-url": "Project:Dem Kurent Iwent",
-    "helppage": "Help:Dem Kontent",
     "mainpage": "Mien Paij",
     "mainpage-description": "Mien Paij",
     "portal": "Trii'nohlij",
index 0f936af..9e2fc67 100644 (file)
@@ -88,7 +88,7 @@
     "tog-enotifminoredits": "Wyślij e‐mail także w przypadku drobnych zmian na stronach lub w plikach",
     "tog-enotifrevealaddr": "Nie ukrywaj mojego adresu e‐mail w powiadomieniach",
     "tog-shownumberswatching": "Pokaż liczbę użytkowników obserwujących stronę",
-    "tog-oldsig": "Twój obecny podpis",
+    "tog-oldsig": "Twój obecny podpis:",
     "tog-fancysig": "Traktuj podpis jako wikikod (nie linkuj automatycznie całości)",
     "tog-uselivepreview": "Używaj dynamicznego podglądu (eksperymentalny)",
     "tog-forceeditsummary": "Informuj o niewypełnieniu opisu zmian",
     "underline-always": "zawsze",
     "underline-never": "nigdy",
     "underline-default": "według ustawień skórki lub przeglądarki",
-    "editfont-style": "Styl czcionki w polu edycyjnym",
+    "editfont-style": "Styl czcionki w polu edycyjnym:",
     "editfont-default": "domyślny przeglądarki",
     "editfont-monospace": "czcionka o stałej szerokości",
     "editfont-sansserif": "czcionka bezszeryfowa",
     "userlogin-yourname": "Nazwa użytkownika",
     "userlogin-yourname-ph": "Wprowadź swoją nazwę użytkownika",
     "createacct-another-username-ph": "Wprowadź nazwę użytkownika",
-    "yourpassword": "Hasło",
+    "yourpassword": "Hasło:",
     "userlogin-yourpassword": "Hasło",
     "userlogin-yourpassword-ph": "Wpisz swoje hasło",
     "createacct-yourpassword-ph": "Wprowadź hasło",
     "accountcreatedtext": "Konto dla [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|dyskusja]]) zostało utworzone.",
     "createaccount-title": "Utworzenie konta w {{GRAMMAR:MS.lp|{{SITENAME}}}}",
     "createaccount-text": "Ktoś utworzył w {{GRAMMAR:MS.lp|{{SITENAME}}}} ($4), podając Twój adres e‐mail, konto „$2”. Aktualnym hasłem jest „$3”.\nZaloguj się teraz i je zmień.\n\nMożesz zignorować tę wiadomość, jeśli konto zostało utworzone przez pomyłkę.",
-    "usernamehasherror": "Nazwa użytkownika nie może zawierać znaków kratki „#”",
     "login-throttled": "Zbyt wiele razy próbowałeś zalogować się na to konto.\nOdczekaj $1 zanim ponowisz próbę.",
     "login-abort-generic": "Logowanie nieudane – przerwano",
     "loginlanguagelabel": "Język: $1",
     "search-error": "Wystąpił błąd podczas wyszukiwania:$1",
     "preferences": "Preferencje",
     "mypreferences": "Preferencje",
-    "prefs-edits": "Liczba edycji",
+    "prefs-edits": "Liczba edycji:",
     "prefsnologintext2": "Musisz $1 aby ustawić preferencje.",
     "prefs-skin": "Skórka",
     "skin-preview": "podgląd",
     "datedefault": "Domyślny",
-    "prefs-datetime": "Data i czas",
     "prefs-labs": "Funkcje doświadczalne",
     "prefs-user-pages": "Strony użytkowników",
     "prefs-personal": "Dane użytkownika",
     "prefs-watchlist": "Obserwowane",
     "prefs-watchlist-days": "Liczba dni widocznych na liście obserwowanych",
     "prefs-watchlist-days-max": "Maksimum $1 {{PLURAL:$1|dzień|dni}}",
-    "prefs-watchlist-edits": "Liczba edycji pokazywanych w rozszerzonej liście obserwowanych",
+    "prefs-watchlist-edits": "Liczba edycji pokazywanych w rozszerzonej liście obserwowanych:",
     "prefs-watchlist-edits-max": "Maksymalnie 1000",
     "prefs-watchlist-token": "Identyfikator listy obserwowanych:",
     "prefs-misc": "Ustawienia różne",
     "saveprefs": "Zapisz",
     "restoreprefs": "Przywróć wszystkie domyślne preferencje (we wszystkich zakładkach)",
     "prefs-editing": "Edycja",
-    "rows": "Wiersze",
-    "columns": "Kolumny",
+    "rows": "Wiersze:",
+    "columns": "Kolumny:",
     "searchresultshead": "Wyszukiwanie",
     "stub-threshold": "Maksymalny (w bajtach) rozmiar strony oznaczanej jako <a href=\"#\" class=\"stub\">zalążek (stub)</a>",
     "stub-threshold-disabled": "Wyłączone",
-    "recentchangesdays": "Liczba dni prezentowanych w ostatnich zmianach",
+    "recentchangesdays": "Liczba dni prezentowanych w ostatnich zmianach:",
     "recentchangesdays-max": "(maksymalnie $1 {{PLURAL:$1|dzień|dni}})",
-    "recentchangescount": "Domyślna liczba wyświetlanych edycji",
+    "recentchangescount": "Domyślna liczba wyświetlanych edycji:",
     "prefs-help-recentchangescount": "Uwzględnia ostatnie zmiany, historię stron i rejestry.",
     "prefs-help-watchlist-token2": "To jest tajny klucz umożliwiający dostęp do kanału internetowego zmian w obserwowanych przez ciebie stronach.\nKażdy, kto go zna, będzie mógł je zobaczyć, więc zachowaj go dla siebie.\n[[Special:ResetTokens|Kliknij tu, jeśli musisz go zresetować]].",
     "savedprefs": "Twoje preferencje zostały zapisane.",
-    "timezonelegend": "Strefa czasowa",
-    "localtime": "Czas lokalny",
+    "timezonelegend": "Strefa czasowa:",
+    "localtime": "Czas lokalny:",
     "timezoneuseserverdefault": "Użyj domyślnej dla tej wiki ($1)",
     "timezoneuseoffset": "Inna (określ różnicę czasu)",
-    "servertime": "Czas serwera",
+    "servertime": "Czas serwera:",
     "guesstimezone": "Pobierz z przeglądarki",
     "timezoneregion-africa": "Afryka",
     "timezoneregion-america": "Ameryka",
     "prefs-files": "Pliki",
     "prefs-custom-css": "własny CSS",
     "prefs-custom-js": "własny JavaScript",
-    "prefs-common-css-js": "Wspólny CSS/JS dla wszystkich skórek",
+    "prefs-common-css-js": "Wspólny CSS/JS dla wszystkich skórek:",
     "prefs-reset-intro": "Na tej stronie można przywrócić domyślne ustawienia preferencji dla tej witryny.\nTej operacji nie można później cofnąć.",
-    "prefs-emailconfirm-label": "Potwierdzenie adresu e‐mail",
-    "youremail": "Twój adres e‐mail",
+    "prefs-emailconfirm-label": "Potwierdzenie adresu e‐mail:",
+    "youremail": "Twój adres e‐mail:",
     "username": "{{GENDER:$1|Nazwa użytkownika}}:",
     "uid": "{{GENDER:$1|Identyfikator użytkownika}}:",
     "prefs-memberingroups": "{{GENDER:$2|Członek}} {{PLURAL:$1|grupy|grup}}:",
-    "prefs-registration": "Data rejestracji",
-    "yourrealname": "Imię i nazwisko",
-    "yourlanguage": "Język interfejsu",
+    "prefs-registration": "Data rejestracji:",
+    "yourrealname": "Imię i nazwisko:",
+    "yourlanguage": "Język interfejsu:",
     "yourvariant": "Wariant języka treści",
     "prefs-help-variant": "Preferowany wariant ortografii, który ma zostać użyty przy wyświetlaniu treści tej wiki.",
-    "yournick": "Twój podpis",
+    "yournick": "Nowy podpis:",
     "prefs-help-signature": "Wypowiedzi na stronach dyskusji powinny być podpisywane za pomocą „<nowiki>~~~~</nowiki>”, dzięki temu automatycznie wstawiany jest Twój podpis wraz z bieżącą datą.",
     "badsig": "Nieprawidłowy podpis, sprawdź znaczniki HTML.",
     "badsiglength": "Twój podpis jest zbyt długi.\nDopuszczalna długość to $1 {{PLURAL:$1|znak|znaki|znaków}}.",
     "upload-permitted": "Dopuszczalne formaty plików: $1.",
     "upload-preferred": "Zalecane formaty plików: $1.",
     "upload-prohibited": "Zabronione formaty plików: $1.",
-    "uploadlog": "rejestr przesyłania plików",
     "uploadlogpage": "Przesłane",
     "uploadlogpagetext": "Lista ostatnio przesłanych plików.\nPrzejdź na stronę [[Special:NewFiles|galerii nowych plików]], by zobaczyć pliki jako miniaturki.",
     "filename": "Nazwa pliku",
     "filereuploadsummary": "Zmiany w pliku:",
     "filestatus": "Status prawny",
     "filesource": "Źródło",
-    "uploadedfiles": "Przesłane pliki",
     "ignorewarning": "Zignoruj ostrzeżenia i wymuś zapisanie pliku",
     "ignorewarnings": "Ignoruj wszystkie ostrzeżenia",
     "minlength1": "Nazwa pliku musi składać się co najmniej z jednej litery.",
     "overwroteimage": "przesłano nową wersję pliku „[[$1]]“",
     "uploaddisabled": "Przesyłanie plików wyłączone",
     "copyuploaddisabled": "Przesyłanie poprzez podanie adres URL jest wyłączone.",
-    "uploadfromurl-queued": "Żądanie przesłania pliku zostało dołączone do kolejki.",
     "uploaddisabledtext": "Możliwość przesyłania plików została wyłączona.",
     "php-uploaddisabledtext": "Przesyłanie plików PHP zostało zablokowane. Sprawdź ustawienie „file_uploads”.",
     "uploadscripted": "Plik zawiera kod HTML lub skrypt, który może zostać błędnie zinterpretowany przez przeglądarkę internetową.",
     "upload-misc-error": "Nieznany błąd przesyłania",
     "upload-misc-error-text": "Wystąpił nieznany błąd podczas przesyłania.\nSprawdź, czy podany adres URL jest poprawny i dostępny, a następnie spróbuj ponownie.\nJeśli problem będzie się powtarzał, skontaktuj się z [[Special:ListUsers/sysop|administratorem]].",
     "upload-too-many-redirects": "URL zawiera zbyt wiele przekierowań",
-    "upload-unknown-size": "Nieznany rozmiar",
     "upload-http-error": "Wystąpił błąd protokołu HTTP – $1",
     "upload-copy-upload-invalid-domain": "Przesyłanie kopii z tej domeny nie jest dostępne.",
     "backend-fail-stream": "Nie można odczytać pliku $1.",
     "img-auth-streaming": "Strumieniowanie „$1”.",
     "img-auth-public": "Funkcja img_auth.php służy do pobierania plików z prywatnej wiki.\nPonieważ ta wiki została skonfigurowana jako publiczna dla zapewnienia optymalnego bezpieczeństwa img_auth.php została wyłączona.",
     "img-auth-noread": "Użytkownik nie ma dostępu do odczytu „$1”.",
-    "img-auth-bad-query-string": "Adres URL zawiera nieprawidłowe zapytanie.",
     "http-invalid-url": "Niepoprawny adres URL: $1",
     "http-invalid-scheme": "Adresy „$1“ nie są obsługiwane.",
     "http-request-error": "Nieudane żądanie HTTP ze względu na nieznany błąd.",
     "filehist-dimensions": "Wymiary",
     "filehist-filesize": "Rozmiar pliku",
     "filehist-comment": "Opis",
-    "filehist-missing": "Brak pliku",
     "imagelinks": "Wykorzystanie pliku",
     "linkstoimage": "{{PLURAL:$1|Poniższa strona odwołuje|Następujące strony odwołują}} się do tego pliku:",
     "linkstoimage-more": "Więcej niż $1 {{PLURAL:$1|strona linkuje|strony linkują|stron linkuje}} do tego pliku.\nPoniższa lista pokazuje jedynie {{PLURAL:$1|pierwszy link|pierwsze $1 linki|pierwszych $1 linków}} do tego pliku.\nDostępna jest też [[Special:WhatLinksHere/$2|pełna lista]].",
     "listgrouprights-removegroup-self": "Możliwość usunięcia własnego konta z {{PLURAL:$2|grupy|grup:}} $1",
     "listgrouprights-addgroup-self-all": "Może dodać własne konto do wszystkich grup",
     "listgrouprights-removegroup-self-all": "Może usunąć własne konto ze wszystkich grup",
+    "listgrouprights-namespaceprotection-header": "Ograniczenia przestrzeni nazw",
+    "listgrouprights-namespaceprotection-namespace": "Przestrzeń nazw",
+    "listgrouprights-namespaceprotection-restrictedto": "Uprawnienia pozwalające użytkownikom na edytowanie",
     "trackingcategories": "Śledzenie kategorii",
     "trackingcategories-msg": "Śledzenie kategorii",
     "trackingcategories-name": "Nazwa komunikatu",
     "emailuser-title-notarget": "Wyślij wiadomość e‐mail",
     "emailpage": "Wyślij e‐mail do użytkownika",
     "emailpagetext": "Możesz użyć poniższego formularza, aby wysłać wiadomość e‐mail do {{GENDER:$1|tego użytkownika|tej użytkowniczki}}.\nAdres e‐mailowy, który został przez Ciebie wprowadzony w [[Special:Preferences|Twoich preferencjach]], zostanie umieszczony w polu „Od”, dzięki czemu odbiorca będzie mógł Ci odpowiedzieć.",
-    "usermailererror": "Moduł obsługi poczty zwrócił błąd:",
     "defemailsubject": "{{SITENAME}} – e‐mail od użytkownika „$1“",
     "usermaildisabled": "E‐mail użytkownika jest wyłączony",
     "usermaildisabledtext": "Nie możesz wysyłać e‐maili do innych użytkowników tej wiki",
     "noemailtitle": "Brak adresu e‐mail",
     "noemailtext": "Ten użytkownik nie podał poprawnego adresu e‐mail.",
-    "nowikiemailtitle": "Brak zezwolenia na otrzymywanie e‐maili",
     "nowikiemailtext": "Ten użytkownik nie chce otrzymywać wiadomości e‐mail od innych użytkowników.",
     "emailnotarget": "Adresat nie istnieje lub podana nazwa użytkownika jest nieprawidłowa.",
     "emailtarget": "Wpisz nazwę użytkownika, który jest adresatem",
     "watching": "Dodaję do obserwowanych...",
     "unwatching": "Przestaję obserwować...",
     "watcherrortext": "Wystąpił błąd podczas zmiany obecności „$1” na liście obserwowanych.",
-    "enotif_mailer": "Powiadomienie z {{GRAMMAR:D.lp|{{SITENAME}}}}",
     "enotif_reset": "Zaznacz wszystkie strony jako odwiedzone",
     "enotif_impersonal_salutation": "użytkownik {{GRAMMAR:D.lp|{{SITENAME}}}}",
     "enotif_subject_deleted": "Strona projektu {{SITENAME}} o nazwie $1 została usunięta przez {{gender:$2|$2}}",
     "excontent": "treść: „$1”",
     "excontentauthor": "treść: „$1” (jedyny autor: [[Special:Contributions/$2|$2]])",
     "exbeforeblank": "poprzednia zawartość, obecnie pustej strony: „$1”",
-    "exblank": "Strona była pusta",
     "delete-confirm": "Usuwanie „$1”",
     "delete-legend": "Usuń",
     "historywarning": "'''Uwaga!''' Strona, którą chcesz usunąć, ma w przybliżeniu {{PLURAL:$1|jedną starszą wersję|$1 starsze wersje|$1 starszych wersji}}:",
     "importunknownsource": "Nieznany format importowanych danych",
     "importcantopen": "Nie można otworzyć importowanego pliku",
     "importbadinterwiki": "Błędny link interwiki",
-    "importnotext": "Brak tekstu lub zawartości",
     "importsuccess": "Import zakończony powodzeniem!",
-    "importhistoryconflict": "Wystąpił konflikt wersji (ta strona mogła zostać zaimportowana już wcześniej)",
     "importnosources": "Możliwość bezpośredniego importu historii została wyłączona, ponieważ nie zdefiniowano źródła.",
     "importnofile": "Importowany plik nie został przesłany.",
     "importuploaderrorsize": "Przesyłanie pliku importowanego zawiodło. Jest większy niż dopuszczalny rozmiar dla przesyłanych plików.",
     "pageinfo-firsttime": "Data utworzenia strony",
     "pageinfo-lastuser": "Autor ostatniej edycji",
     "pageinfo-lasttime": "Data ostatniej edycji",
-    "pageinfo-edits": "Liczba edycji",
+    "pageinfo-edits": "Całkowita liczba edycji",
     "pageinfo-authors": "Całkowita liczba autorów",
     "pageinfo-recent-edits": "Liczba ostatnich edycji (w przeciągu $1)",
     "pageinfo-recent-authors": "Liczba ostatnich autorów",
     "previousdiff": "← poprzednia edycja",
     "nextdiff": "następna edycja →",
     "mediawarning": "'''Uwaga!''' Plik w tym formacie może zawierać złośliwy kod.\nJeśli go otworzysz, możesz zarazić swój system.",
-    "imagemaxsize": "Ograniczenie wielkości obrazków<br />''(na stronach opisu plików)''",
+    "imagemaxsize": "Ograniczenie wielkości obrazków:<br /><em>(na stronach opisu plików)</em>",
     "thumbsize": "Rozmiar miniaturki",
     "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|strona|strony|stron}}",
     "file-info": "rozmiar pliku: $1, typ MIME: $2",
index 38348b1..b1c2b23 100644 (file)
     "accountcreatedtext": "Ël cont utent për [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|ciaciarade]]) a l'é stàit creà.",
     "createaccount-title": "Creassion d'un cont për {{SITENAME}}",
     "createaccount-text": "Cheidun a l'ha duvertà un cont për soa adrëssa ëd pòsta eletrònica ansima a {{SITENAME}} ($4) butand da stranòm «$2» e da ciav «$3». A dovrìa rintré ant ël sistema e cambiesse soa ciav pì ampressa ch'a peul.\n\nSe sòn a l'é rivà për eror, a peul lassé perde e fé gnente sensa problema.",
-    "usernamehasherror": "Lë stranòm d'utent a peul pa conten-e dij caràter ciapulà",
     "login-throttled": "A l'ha fàit tròpi tentativ recent d'intré ant ël sistema.\nPër piasì, ch'a speta $1 prima ëd prové torna.",
     "login-abort-generic": "Sò tentitiv d'intré ant ël sistema a l'é falì - Abortì",
     "loginlanguagelabel": "Lenga: $1",
     "prefs-skin": "Facia",
     "skin-preview": "Preuva",
     "datedefault": "Franch l'istess",
-    "prefs-datetime": "Data e ora",
     "prefs-labs": "Caraterìstiche dël laboratòri",
     "prefs-user-pages": "Pàgine utent",
     "prefs-personal": "Profil dl'utent",
     "upload-permitted": "Sòrt d'archivi consentìe: $1.",
     "upload-preferred": "Sòrt d'archivi preferìe: $1.",
     "upload-prohibited": "Sòrt d'archivi proibìe: $1.",
-    "uploadlog": "Registr dij càrich",
     "uploadlogpage": "Registr dij càrich",
     "uploadlogpagetext": "Ambelessì-sota a-i é na lista dj'ùltim archivi carià.\nBeiché la [[Special:NewFiles|galarìa dj'archivi neuv]] për na presentassion pì visual.",
     "filename": "Nòm dl'archivi",
     "filereuploadsummary": "Modìfiche dl'archivi:",
     "filestatus": "Situassion dij drit d'autor:",
     "filesource": "Sorgiss:",
-    "uploadedfiles": "Archivi carià",
     "ignorewarning": "Lassé perde j'avis e salvé an tute le manere",
     "ignorewarnings": "Lassé perde j'avis",
     "minlength1": "Ij nòm ëd j'archivi a devo esse longh almanch un caràter.",
     "overwroteimage": "a l'ha carìa na version neuva ëd \"[[$1]]\"",
     "uploaddisabled": "Càrich blocà.",
     "copyuploaddisabled": "Ël càrich për mojen ëd n'adrëssa dl'aragnà a l'é disabilità.",
-    "uploadfromurl-queued": "Sò càrich a l'é stàit butà an coa.",
     "uploaddisabledtext": "La possibilità ëd carié dj'archivi a l'é staita disabilità.",
     "php-uploaddisabledtext": "Ij cariament d'archivi a son disabilità an PHP.\nPër piasì, ch'a controla l'ampostassion file_uploads.",
     "uploadscripted": "St'archivi-sì a l'ha andrinta chèich-còs (dël còdes HTML ò pura un senari) che a podrìa esse travajà mal da chèich programa ëd navigassion.",
     "upload-misc-error": "Eror nen identificà antramentr ch'as cariava",
     "upload-misc-error-text": "A l'é staie n'eror nen identificà dëmentrè ch'as cariava chèich-còs.\nPër piasì, ch'a varda che soa anliura a sia bon-a e che a rësponda e peuj ch'a preuva torna.\nSe a-i riva sossì n'àotra vira, ch'as buta an comunicassion con n'[[Special:ListUsers/sysop|aministrator]].",
     "upload-too-many-redirects": "L'adrëssa dl'aragnà a l'avìa tròpe ridiression",
-    "upload-unknown-size": "Dimension pa conossùa",
     "upload-http-error": "A l'é staje n'eror HTTP: $1.",
     "upload-copy-upload-invalid-domain": "Cariagi ëd cobie a l'é pa disponìbil da sto domini.",
     "backend-fail-stream": "A peul pa sequensialisé l'archivi $1.",
     "img-auth-streaming": "Letura an continuà ëd \"$1\".",
     "img-auth-public": "La funsion d'img_auth.php a l'é dë smone dj'archivi da na wiki privà.\nSta wiki-sì a l'é configurà com na wiki pùblica.\nPër na sicurëssa otimal, img_auth.php a l'é disabilità.",
     "img-auth-noread": "L'utent a l'ha pa ij privilegi për lese \"$1\".",
-    "img-auth-bad-query-string": "L'anliura a l'ha na stringa d'arcesta pa bon-a.",
     "http-invalid-url": "Adrëssa dl'aragnà pa bon-a: $1.",
     "http-invalid-scheme": "J'adrësse dl'aragnà con ël prefiss \"$1\" a son pa mantnùe.",
     "http-request-error": "L'arcesta Http a l'é falìa për n'eror pa conossù.",
     "filehist-dimensions": "Amzure",
     "filehist-filesize": "Amzure dl'archivi",
     "filehist-comment": "Coment",
-    "filehist-missing": "Archivi mancant",
     "imagelinks": "Usagi dl'archivi",
     "linkstoimage": "{{PLURAL:$1|La pàgina sì-sota a l'ha|Le $1 pàgine sì-sota a l'han}} andrinta dj'anliure a cost archivi:",
     "linkstoimage-more": "Pì che $1 {{PLURAL:$1|pàgina|pàgine}} a l'han dj'anliure a cost archivi.\nLa lista sì-sota a smon mach {{PLURAL:$1|la prima pàgina ch'a l'ha|le prime $1 pàgine ch'a l'han}} d'anliure a s'archivi.\nA l'é disponìbil na [[Special:WhatLinksHere/$2|lista completa]].",
     "emailuser-title-notarget": "Mandeje un mëssagi ëd pòsta eletrònica a st'utent-sì",
     "emailpage": "Mandeje un mëssagi ëd pòsta eletrònica a st'utent-sì",
     "emailpagetext": "A peul dovré ël formolari sì-sota për mandé un mëssagi ëd pòsta eletrònica a st'{{GENDER:$1|utent}}-sì.\nL'adrëssa ëd pòsta eletrònica ch'a l'ha butà ant ij [[Special:Preferences|sò gust]] a sarà butà ant l'adrëssa «Da» ëd sò mëssagi, parèj chi ch'a l'arsèiv a podrà rësponde diretament a chiel.",
-    "usermailererror": "L'oget che a goèrna la pòsta eletrònica a l'ha dàit eror:",
     "defemailsubject": "Mëssagi da l'utent \"$1\"",
     "usermaildisabled": "Pòsta eletrònica dl'utent disabilità",
     "usermaildisabledtext": "A peul pa mandé ëd mëssagi ëd pòsta eletrònica a d'àutri utent ansima a costa wiki",
     "noemailtitle": "Gnun-a adrëssa ëd pòsta eletrònica",
     "noemailtext": "Cost utent-sì a l'ha pa spessificà n'adrëssa ëd pòsta eletrònica vàlida.",
-    "nowikiemailtitle": "Gnun mëssagi ëd pòsta eletrònica a l'é autorisà",
     "nowikiemailtext": "Cost utent a l'ha sërnù ëd nen arsèive dij mëssagi ëd pòsta eletrònica da j'àutri utent.",
     "emailnotarget": "Stranòm dël destinatari pa esistent o pa bon.",
     "emailtarget": "Ch'a anserissa lë stranòm dël destinatari",
     "watching": "Sot-euj...",
     "unwatching": "Ën gavand da lòn ch'as ten sot-euj...",
     "watcherrortext": "A l'é capitaje n'eror durant la modìfica ëd j'ampostassion ëd lòn ch'as ten sot-euj për «$1».",
-    "enotif_mailer": "{{SITENAME}} - Servissi ëd Notìfica Postal",
     "enotif_reset": "Marché tute le pàgine tanme visità",
     "enotif_impersonal_salutation": "utent ëd {{SITENAME}}",
     "enotif_subject_deleted": "La pàgina $1 ëd {{SITENAME}} a l'é stàita scancelà da {{gender:$2|$2}}",
     "excontent": "Ël contnù a l'era: '$1'",
     "excontentauthor": "ël contnù a l'era: «$1» (e l'ùnich contributor a l'era stàit «[[Special:Contributions/$2|$2]]»)",
     "exbeforeblank": "anans d'esse dësvujdà ël contnù a l'era: «$1»",
-    "exblank": "La pàgina a l'era veujda",
     "delete-confirm": "Scancelé «$1»",
     "delete-legend": "Scancelé",
     "historywarning": "'''Avis:''' La pàgina che a l'é antramentr che a scancela a l'ha na stòria con pi o men $1 {{PLURAL:$1|revision|revision}}:",
     "importunknownsource": "Sorgiss d'amportassion ëd na sòrt nen conossùa",
     "importcantopen": "L'archivi da amporté a l'é pa podusse deurbe",
     "importbadinterwiki": "Liura antra wiki diferente cioca",
-    "importnotext": "Veujd o con gnun test",
     "importsuccess": "Amportassion finìa!",
-    "importhistoryconflict": "A-i son dle stòrie dë sta pàgina-sì che as contradiso un-a con l'àutra (a peul esse che sta pàgina-sì a l'avèissa già amportala)",
     "importnosources": "A l'é pa stàita definìa gnun-a sorgiss d'amportassion da na wiki diferenta, e carié mach le stòrie as peul nen.",
     "importnofile": "Pa gnun archivi d'amportassion carià.",
     "importuploaderrorsize": "A l'é falìe la caria dl'archivi d'amporté. L'archivi a resta pì gròss che lòn ch'as peul cariesse.",
index 5b01173..9c5b3bd 100644 (file)
     "permalink": "تلپاتې تړنه",
     "print": "چاپ",
     "view": "کتل",
+    "view-foreign": "په $1 باندې کتل",
     "edit": "سمول",
+    "edit-local": "سيمه ايزې څرگندونې سمول",
     "create": "جوړول",
+    "create-local": "سيمه ايزې څرگندونې ورگډول",
     "editthispage": "همدا مخ سمول",
     "create-this-page": "همدا مخ ليکل",
     "delete": "ړنگول",
     "accountcreatedtext": "د [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|خبرې اترې]]) لپاره يو گڼون جوړ شو.",
     "createaccount-title": "د {{SITENAME}} د گڼون جوړېدنه",
     "createaccount-text": "يو چا د {{SITENAME}} په وېبځي ($4) کې ستاسې د برېښليک پتې لپاره د \"$2\" په نامه يو گڼون جوړ کړی چې پټنوم يې \"$3\" دی.\nتاسې بايد غونډال ته ورننوځۍ او همدا اوس خپل پټنوم بدل کړی.\n\nکه چېرته دا کړنه په تېروتنه کې شوی وي نو تاسې کولای شی چې دا پيغام بابېزه وگڼۍ.",
-    "usernamehasherror": "کارن-نوم نشي کېدلای چې کرښکې لوښې ولري",
     "login-throttled": "تاسې څو واره هڅه کړې چې غونډال ته ورننوځۍ.\nلطفاً د بيا هڅې نه مخکې $1 شېبې تم شۍ.",
     "login-abort-generic": "غونډال کې مو ننوتل نابريالی شو - ناڅاپي بند شو",
     "loginlanguagelabel": "ژبه: $1",
     "prefs-skin": "پوښۍ",
     "skin-preview": "مخکتنه",
     "datedefault": "هېڅ نه ټاکل",
-    "prefs-datetime": "نېټه او وخت",
     "prefs-labs": "د آزمېښتون ځانگړنې",
     "prefs-user-pages": "کارن مخونه",
     "prefs-personal": "د کارن پېژنليک",
     "upload-permitted": "د پرېښودلو دوتنو ډولونه: $1.",
     "upload-preferred": "د غوره دوتنو ډولونه: $1.",
     "upload-prohibited": "د منع شويو دوتنو ډولونه: $1.",
-    "uploadlog": "د پورته شويو دوتنو يادښت",
     "uploadlogpage": "د پورته شويو دوتنو يادښت",
     "uploadlogpagetext": "دا لاندې د نوو پورته شوو دوتنو لړليک دی.",
     "filename": "د دوتنې نوم",
     "filereuploadsummary": "د دوتنې بدلونونه:",
     "filestatus": "د رښتو دريځ:",
     "filesource": "سرچينه:",
-    "uploadedfiles": "پورته شوې دوتنې",
     "ignorewarning": "گواښنه بې پامه گڼل او دوتنه خوندي کول",
     "ignorewarnings": "هر ډول ګواښونه له پامه غورځول",
     "minlength1": "پکار ده چې د دوتنو نومونه لږ تر لږه يو حرف ولري.",
     "upload-warning-subj": "د پورته کولو ګواښ",
     "upload-proto-error": "ناسم پروتوکول",
     "upload-file-error": "کورنۍ ستونزه",
-    "upload-unknown-size": "ناڅرګنده کچه",
     "upload-http-error": "د HTTP يوه ستونزه رامېنځ ته شوې: $1",
     "backend-fail-notexists": "د $1 په نوم دوتنه نشته.",
     "backend-fail-delete": "د \"$1\" دوتنه ړنګه نه شوه.",
     "filehist-dimensions": "ډډې",
     "filehist-filesize": "د دوتنې کچه",
     "filehist-comment": "تبصره",
-    "filehist-missing": "دوتنه ورکه ده",
     "imagelinks": "د دوتنې کارېدنه",
     "linkstoimage": "دا {{PLURAL:$1|لاندينی مخ|$1 لانديني مخونه}} د همدې دوتنې سره تړنې لري:",
     "nolinkstoimage": "داسې هېڅ کوم مخ نه شته چې د دغې دوتنې سره تړنې ولري.",
     "listgrouprights-removegroup-self": "خپل گڼون نه د {{PLURAL:$2|ډله|ډلې}} ليري کول: $1",
     "listgrouprights-addgroup-self-all": "خپل گڼون کې ټولې ډلې ورگډول",
     "listgrouprights-removegroup-self-all": "خپل گڼون نه ټولې ډلې ليري کول",
+    "listgrouprights-namespaceprotection-namespace": "نوم-تشيال",
+    "trackingcategories-name": "پيغام نوم",
     "mailnologin": "د لېږلو پته نشته",
     "emailuser": "کارن ته برېښليک لېږل",
     "emailuser-title-target": "دې {{GENDER:$1|کارن}} ته برېښليک لېږل",
     "usermaildisabled": "د کارن برېښليک ناچارند دی",
     "usermaildisabledtext": "په دې ويکي تاسې نورو کارنانو ته برېښليک نه شی ورلېږلی",
     "noemailtitle": "هېڅ کومه برېښليک پته نشته.",
-    "nowikiemailtitle": "د برېښليک لېږلو اجازه نشته",
     "nowikiemailtext": "دې کارن د نورو کارنانو لخوا د برېښليک د نه ترلاسه کولو چاره خوښه کړې.",
     "emailtarget": "د ترلاسه کوونکي کارن-نوم وټاپۍ",
     "emailusername": "کارن-نوم:",
     "unwatch": "نه کتل",
     "unwatchthispage": "څارنې په ټپه درول",
     "notanarticle": "يو منځپانګيز مخ نه دی",
-    "watchlist-details": "ستاسې کتنلړ کې {{PLURAL:$1|$1 مخ دی|$1 مخونه دي}}، د خبرو اترو مخونه مو پکې نه دي شمېرلي.",
+    "watchlist-details": "ستاسې کتنلړ کې {{PLURAL:$1|$1 مخ دی|$1 مخونه دي}}، د خبرو اترو مخونه مو بېل نه دي شمېرلي.",
     "wlheader-enotif": "برېښليک خبرونه چارنه شوې.",
     "wlheader-showupdated": "هغه مخونه چې ستاسې د کتلو نه وروسته بدلون موندلی په '''روڼ''' ليک په نښه شوي.",
     "watchlistcontains": "ستاسې کتنلړ $1 {{PLURAL:$1|مخ|مخونه}} لري.",
     "watchlist-options": "د کتنلړ خوښنې",
     "watching": "د کتلو په حال کې...",
     "unwatching": "د نه کتلو په حال کې...",
-    "enotif_mailer": "د {{SITENAME}} خبرتيايي برېښليک",
     "enotif_reset": "ټول مخونه کتل شوي نخښه کول",
     "enotif_impersonal_salutation": "{{SITENAME}} کارن",
     "enotif_subject_deleted": "د {{SITENAME}} مخ $1 د {{gender:$2|$2}} لخوا ړنگ شوی",
     "confirm": "تاييد",
     "excontent": "د مخ مېنځپانگه دا وه: \"$1\"",
     "excontentauthor": "د مخ مېنځپانگه دا وه: \"$1\" (او يواځينی ونډه وال \"[[Special:Contributions/$2|$2]]\" وه)",
-    "exblank": "مخ تش وه",
     "delete-confirm": "\"$1\" ړنگول",
     "delete-legend": "ړنگول",
     "historywarning": "گواښنه:''' دا مخ چې تاسې يې د ړنگېدو تکل لرئ نژدې $1 {{PLURAL:$1|بڼه|بڼې}} پېښليک لري:",
     "delete-edit-reasonlist": "د ړنگولو سببونه سمول",
     "rollback_short": "په شابېول",
     "rollbacklink": "په شابېول",
+    "rollbacklinkcount": "$1 {{PLURAL:$1|سمون|سمونونه}} پرشابېول",
     "protectlogpage": "د ژغورنې يادښت",
     "protectedarticle": "\"[[$1]]\" وژغورل شو",
     "modifiedarticleprotection": "د \"[[$1]]\" لپاره د ژغورنې کچه بدله شوه",
     "import-upload-filename": "د دوتنې نوم:",
     "import-comment": "تبصره:",
     "import-revision-count": "$1 {{PLURAL:$1|بڼه|بڼې}}",
-    "importnotext": "تش او يا بې متنه مخ",
     "importlogpage": "د واردولو يادښت",
     "import-logentry-upload-detail": "$1 {{PLURAL:$1|بڼه|بڼې}}",
     "javascripttest": "د جاوا سکرېپټ آزمېښت",
     "tooltip-watchlistedit-normal-submit": "سرليکونه غورځول",
     "tooltip-watchlistedit-raw-submit": "کتنلړ اوسمهالول",
     "tooltip-upload": "د پورته کولو پيل",
-    "tooltip-rollback": "Ù¾Ù\87 Ù\87Ù\85دÛ\90 Ù\85Ø® Ú©Û\90 \"Ù¾Ù\87 Ø´Ø§Ø¨Û\90Ù\88Ù\84\" Ø¯ Ù\88رÙ\88ستÙ\86Ù\8a Ù\88Ù\86Ú\89Ù\88اÙ\84 Ø³Ù\85Ù\88Ù\86 (سÙ\85Ù\88Ù\86Ù\88Ù\86Ù\87) Ù¾Ù\87 Ù\8aÙ\88Ù\87 Ú©Ù\84Û\90Ú© Ù¾Ù\87 Ú\85Ù¼ Ù\88رګرځوي.",
+    "tooltip-rollback": "Ù¾Ù\87 Ù\87Ù\85دÛ\90 Ù\85Ø® Ú©Û\90 \"Ù¾Ù\87 Ø´Ø§Ø¨Û\90Ù\88Ù\84\" Ø¯ Ù\88رÙ\88ستÙ\86Ù\8a Ù\88Ù\86Ú\89Ù\88اÙ\84 Ø³Ù\85Ù\88Ù\86 (سÙ\85Ù\88Ù\86Ù\88Ù\86Ù\87) Ù¾Ù\87 Ù\8aÙ\88Ù\87 Ú©Ù\84Û\90Ú© Ù¾Ù\87 Ú\85Ù¼ Ù\88رگرځوي.",
     "tooltip-undo": "\"ناکړ\" همدا سمون پر شا گرځوي او د سمون کړکۍ د مخکتنې په بڼه پرانيزي.\nدا کړنه د لنډيز په برخه کې د سمونونو د سببونو د ورگډولو آسانتيا برابروي.",
     "tooltip-preferences-save": "غوره توبونه خوندي کول",
     "tooltip-summary": "يو لنډ لنډيز کښل",
     "expand_templates_input": "ځايونکی متن:",
     "expand_templates_output": "پايله",
     "expand_templates_ok": "ښه",
+    "expand_templates_remove_nowiki": "په پايلو کې د <nowiki> نښلنونه ځپل",
+    "expand_templates_generate_rawhtml": "خام HTML ښکاره کول",
     "expand_templates_preview": "مخکتنه"
 }
index 12dce84..eacdef8 100644 (file)
@@ -69,7 +69,8 @@
             "Waldir",
             "Yves Marques Junqueira",
             "לערי ריינהארט",
-            "555"
+            "555",
+            "Fabsouza1"
         ]
     },
     "tog-underline": "Sublinhar links:",
     "print": "Imprimir",
     "view": "Ver",
     "edit": "Editar",
+    "edit-local": "Editar descrição local",
     "create": "Criar",
+    "create-local": "Adicionar descrição local",
     "editthispage": "Editar esta página",
     "create-this-page": "Iniciar esta página",
     "delete": "Eliminar",
     "pool-timeout": "Tempo limite de espera para o bloqueio excedido",
     "pool-queuefull": "A fila de processos está cheia",
     "pool-errorunknown": "Erro desconhecido",
+    "pool-servererror": "O servidor de contador do pool não está disponível ($1).",
     "aboutsite": "Sobre {{SITENAME}}",
     "aboutpage": "Project:Sobre",
     "copyright": "Conteúdo disponível sob $1, salvo indicação em contrário.",
     "gotaccountlink": "Autenticar-se",
     "userlogin-resetlink": "Esqueceu-se do seu nome de usuário ou da senha?",
     "userlogin-resetpassword-link": "Esqueceu sua senha?",
+    "userlogin-helplink2": "Ajuda com o login",
     "userlogin-loggedin": "Você já está conectado como {{GENDER:$1|$1}}.\nUse o formulário abaixo para iniciar sessão como outro usuário.",
     "userlogin-createanother": "Crie uma outra conta",
     "createacct-join": "Insira suas informações abaixo.",
     "accountcreatedtext": "A conta de usuário para [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) foi criada.",
     "createaccount-title": "Criação de conta em {{SITENAME}}",
     "createaccount-text": "Alguém criou uma conta de nome $2 para o seu endereço de email no wiki {{SITENAME}} ($4), tendo como senha \"$3\".\nVocê deve se autenticar e alterar sua senha.\n\nIgnore esta mensagem caso a conta tenha sido criada por engano.",
-    "usernamehasherror": "Nome de usuário não pode conter o símbolo de cardinal (#).",
     "login-throttled": "Você recentemente tentou iniciar sessão muitas vezes.\nPor favor aguarde $1 antes de tentar novamente.",
     "login-abort-generic": "A sua autenticação não teve êxito - Abortada",
     "loginlanguagelabel": "Idioma: $1",
     "resetpass-abort-generic": "Uma extensão cancelou a alteração da senha.",
     "resetpass-expired": "Sua senha expirou. Por favor insira uma nova senha para autenticar-se.",
     "resetpass-expired-soft": "Sua senha expirou e necessita ser resetada. Por favor escolha uma nova agora, ou clique \"{{int:resetpass-submit-cancel}}\" para resetar mais tarde.",
+    "resetpass-validity-soft": "Sua senha não é válida: $1\n\nPor favor escolha uma nova senha agora, ou clique \"{{int:resetpass-submit-cancel}}\" para redefini-la mais tarde.",
     "passwordreset": "Redefinir senha",
     "passwordreset-text-one": "Complete este formulário para trocar sua senha.",
     "passwordreset-text-many": "{{PLURAL:$1|Preencha um dos campos para trocar sua senha.}}",
     "revdelete-no-file": "O arquivo especificado não existe.",
     "revdelete-show-file-confirm": "Tem a certeza de que quer visualizar uma revisão eliminada do arquivo \"<nowiki>$1</nowiki>\" de $2 em $3?",
     "revdelete-show-file-submit": "Sim",
+    "revdelete-selected-text": "'''{{PLURAL:$1|Revisão selecionada|Revisões selecionadas}} de [[:$1]]:'''",
+    "revdelete-selected-file": "{{PLURAL:$1|Versão do arquivo selecionado|Versões do arquivo selecionado}} of [[:$2]]:",
     "logdelete-selected": "{{PLURAL:$1|Evento de registro selecionado|Eventos de registro selecionados}}:",
     "revdelete-text-text": "Revisões apagadas continuarão a aparecer na página de histórico, mas parte de seus conteúdos estarão inacessíveis ao público.",
     "revdelete-text-file": "Versões dos arquivos apagados continuarão a aparecer no arquivo de histórico, mas parte de seus conteúdos estarão inacessíveis ao público.",
     "prefs-skin": "Tema",
     "skin-preview": "Pré-visualização",
     "datedefault": "Sem preferência",
-    "prefs-datetime": "Data e hora",
     "prefs-labs": "Características de laboratório",
     "prefs-user-pages": "Páginas de usuário",
     "prefs-personal": "Dados do usuário",
     "upload-permitted": "Tipos de arquivos permitidos: $1.",
     "upload-preferred": "Tipos de arquivos preferidos: $1.",
     "upload-prohibited": "Tipos de arquivo proibidos: $1.",
-    "uploadlog": "registro de uploads",
     "uploadlogpage": "Registro de uploads",
     "uploadlogpagetext": "Segue listagem dos uploads de arquivos mais recentes.\nA [[Special:NewFiles|galeria de arquivos novos]] oferece uma listagem mais visual.",
     "filename": "Nome do arquivo",
     "filereuploadsummary": "Alterações no arquivo:",
     "filestatus": "Status dos direitos autorais:",
     "filesource": "Fonte:",
-    "uploadedfiles": "Arquivos enviados",
     "ignorewarning": "Ignorar aviso e salvar mesmo assim.",
     "ignorewarnings": "Ignorar todos os avisos",
     "minlength1": "Os nomes de arquivos precisam ter pelo menos uma letra.",
     "overwroteimage": "enviou uma nova versão de \"[[$1]]\"",
     "uploaddisabled": "Envio de arquivos desativado.",
     "copyuploaddisabled": "O upload por URL encontra-se desativado.",
-    "uploadfromurl-queued": "O seu upload foi adicionado à fila.",
     "uploaddisabledtext": "O envio de arquivos encontra-se desativado.",
     "php-uploaddisabledtext": "O envio de arquivos via PHP está desativado.\nVerifique a configuração file_uploads.",
     "uploadscripted": "Este arquivo contém HTML ou código que pode ser erroneamente interpretado por um navegador web.",
     "upload-misc-error": "Erro desconhecido ao enviar",
     "upload-misc-error-text": "Ocorreu um erro desconhecido durante o envio.\nVerifique se o endereço (URL) é válido e acessível e tente novamente.\nCaso o problema persista, procure um [[Special:ListUsers/sysop|administrador]].",
     "upload-too-many-redirects": "A URL contém redirecionamentos demais",
-    "upload-unknown-size": "Tamanho desconhecido",
     "upload-http-error": "Ocorreu um erro HTTP: $1",
     "upload-copy-upload-invalid-domain": "Não é possível realizar envios remotos neste domínio.",
     "backend-fail-stream": "Não foi possível transmitir o arquivo  $1.",
     "img-auth-streaming": "Realizando ''streaming'' de \"$1\".",
     "img-auth-public": "A img_auth.php produz arquivos a partir de um wiki privado.\nEste wiki está configurado como um wiki público.\nPara melhor segurança, o img_auth.php está desativado.",
     "img-auth-noread": "Usuário não tem acesso para ler \"$1\".",
-    "img-auth-bad-query-string": "A URL tem um texto de consulta inválido.",
     "http-invalid-url": "URL inválida: $1",
     "http-invalid-scheme": "URLs que iniciam com o prefixo \"$1\" não são aceitas.",
     "http-request-error": "A requisição HTTP falhou devido a um erro desconhecido.",
     "filehist-dimensions": "Dimensões",
     "filehist-filesize": "Tamanho do arquivo",
     "filehist-comment": "Comentário",
-    "filehist-missing": "Arquivo faltando",
     "imagelinks": "Uso do arquivo",
     "linkstoimage": "{{PLURAL:$1|A página|As $1 páginas}} a seguir tem link para este arquivo:",
     "linkstoimage-more": "Mais de $1 {{PLURAL:$1|página|páginas}} tem algum link para este arquivo.\nA lista a seguir mostra apenas {{PLURAL:$1|o primeiro link|os $1 primeiros links}} para este arquivo.\nUma [[Special:WhatLinksHere/$2|listagem completa]] está disponível.",
     "download": "download",
     "unwatchedpages": "Páginas não vigiadas",
     "listredirects": "Listar redirecionamentos",
+    "listduplicatedfiles": "Lista de arquivos com duplicatas",
+    "listduplicatedfiles-summary": "Esta é uma lista de arquivos, onde a versão mais recente do arquivo é uma duplicata da versão mais recente de algum outro arquivo. Somente os arquivos locais são considerados.",
+    "listduplicatedfiles-entry": "O arquivo [[:File:$1|$1]] tem [[$3|{{PLURAL:$2|uma duplicata|$2 duplicatas}}]].",
     "unusedtemplates": "Predefinições não utilizadas",
     "unusedtemplatestext": "Esta página lista todas as páginas no espaço nominal {{ns:template}} que não estão incluídas em uma outra página. Lembre-se de conferir se há outros links para as predefinições antes de apaga-las.",
     "unusedtemplateswlh": "outros links",
     "protectedpages-unknown-timestamp": "Desconhecido",
     "protectedpages-unknown-performer": "Usuário desconhecido",
     "protectedtitles": "Títulos protegidos",
-    "protectedtitles-summary": "Está página lista os títulos já protegidos de criação. Para ver a lista de páginas existentes que estão protegidas, consulte [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
+    "protectedtitles-summary": "Está página lista os títulos já protegidos desde a criação. Para ver a lista de páginas existentes que estão protegidas, consulte [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
     "protectedtitlesempty": "Neste momento, nenhum dos títulos está protegido com estes parâmetros.",
     "listusers": "Lista de usuários",
     "listusers-editsonly": "Mostrar apenas usuários com edições",
     "listgrouprights-removegroup-self": "Pode remover {{PLURAL:$2|grupo|grupos}} da própria conta: $1",
     "listgrouprights-addgroup-self-all": "Pode adicionar todos os grupos à própria conta",
     "listgrouprights-removegroup-self-all": "Pode remover todos os grupos da própria conta",
+    "trackingcategories": "Monitorando categorias",
     "mailnologin": "Nenhum endereço de envio",
     "mailnologintext": "Necessita de estar [[Special:UserLogin|autenticado]] e de possuir um endereço de e-mail válido nas suas [[Special:Preferences|preferências]] para poder enviar um e-mail a outros usuários.",
     "emailuser": "Enviar-lhe um e-mail",
     "emailuser-title-notarget": "Enviar e-mail",
     "emailpage": "Contactar usuário",
     "emailpagetext": "Você pode usar o formulário a seguir para enviar um e-mail para {{GENDER:$1|este usuário|esta usuária}}.\nO endereço de e-mail que você inseriu em [[Special:Preferences|suas preferências de usuário]] irá aparecer como o endereço do remetente da mensagem, com o destinatário podendo responder diretamente para você.",
-    "usermailererror": "Erro no email:",
     "defemailsubject": "E-mail do usuário \"$1\" da {{SITENAME}}",
     "usermaildisabled": "O e-mail do usuário foi desativado",
     "usermaildisabledtext": "Você não tem como enviar e-mails a outros usuários deste wiki.",
     "noemailtitle": "Sem endereço de e-mail",
     "noemailtext": "Este usuário não especificou um endereço de e-mail válido.",
-    "nowikiemailtitle": "E-mail não permitido",
     "nowikiemailtext": "Este usuário optou por não receber e-mail de outros usuários.",
     "emailnotarget": "O nome do destinatário não existe ou é inválido.",
     "emailtarget": "Insira o nome de usuário do destinatário",
     "watching": "Vigiando...",
     "unwatching": "Deixando de vigiar...",
     "watcherrortext": "Ocorreu um erro ao alterar a configuração da sua lista de páginas vigiadas para \"$1\".",
-    "enotif_mailer": "{{SITENAME}} Email de Notificação",
     "enotif_reset": "Marcar todas páginas como visitadas",
     "enotif_impersonal_salutation": "Usuário do projeto \"{{SITENAME}}\"",
     "enotif_subject_deleted": "A página $1 da {{SITENAME}} foi eliminada por {{gender:$2|$2}}",
     "excontent": "o conteúdo era: '$1'",
     "excontentauthor": "o conteúdo era: \"$1\" (e o único editor era \"[[Special:Contributions/$2|$2]]\")",
     "exbeforeblank": "o conteúdo antes de esvaziar era: '$1'",
-    "exblank": "página esvaziada",
     "delete-confirm": "Eliminar \"$1\"",
     "delete-legend": "Eliminar",
     "historywarning": "'''Atenção:''' A página que você está prestes a eliminar possui um histórico com aproximadamente $1 {{PLURAL:$1|revisão|revisões}}:",
     "importunknownsource": "Tipo de fonte de importação desconhecida",
     "importcantopen": "Não foi possível abrir o arquivo de importação",
     "importbadinterwiki": "Ligação de interwiki incorreta",
-    "importnotext": "Vazio ou sem texto",
     "importsuccess": "Importação completa!",
-    "importhistoryconflict": "Existem conflitos de edições no histórico (talvez esta página já foi importada antes)",
     "importnosources": "Não foram definidas fontes de importação transwiki e o carregamento direto de históricos encontra-se desativado.",
     "importnofile": "Nenhum arquivo de importação foi carregado.",
     "importuploaderrorsize": "O envio do arquivo a ser importado falhou. O arquivo é maior do que o tamanho máximo permitido para upload.",
index 6372cee..564ffe2 100644 (file)
     "permalink": "Ligação permanente",
     "print": "Imprimir",
     "view": "Ver",
+    "view-foreign": "Ver em $1",
     "edit": "Editar",
+    "edit-local": "Editar descrição local",
     "create": "Criar",
     "editthispage": "Editar esta página",
     "create-this-page": "Criar esta página",
     "accountcreatedtext": "A conta de utilizador para [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) foi criada.",
     "createaccount-title": "Criação de conta na {{SITENAME}}",
     "createaccount-text": "Alguém criou uma conta com o nome $2 para o seu endereço de correio eletrónico, na wiki {{SITENAME}} ($4), com a palavra-chave \"$3\".\nDeve agora autenticar-se e alterar a sua palavra-chave.\n\nSe a conta foi criada por engano, pode ignorar esta mensagem.",
-    "usernamehasherror": "O nome de utilizador não pode conter o símbolo de cardinal (#).",
     "login-throttled": "Realizou demasiadas tentativas de autenticação com esta conta.\nAguarde $1 antes de tentar novamente, por favor.",
     "login-abort-generic": "A sua autenticação não teve êxito - Cancelada",
     "loginlanguagelabel": "Língua: $1",
     "prefs-skin": "Tema",
     "skin-preview": "Antever tema",
     "datedefault": "Sem preferência",
-    "prefs-datetime": "Data e hora",
     "prefs-labs": "Funcionalidades dos laboratórios",
     "prefs-user-pages": "Páginas de utilizador",
     "prefs-personal": "Dados do utilizador",
     "upload-permitted": "Tipos de ficheiro permitidos: $1.",
     "upload-preferred": "Tipos de ficheiro preferidos: $1.",
     "upload-prohibited": "Tipos de ficheiro proibidos: $1.",
-    "uploadlog": "registo de carregamento",
     "uploadlogpage": "Registo de carregamento",
     "uploadlogpagetext": "Segue-se uma lista dos carregamentos mais recentes.\nConsulte a [[Special:NewFiles|galeria de novos ficheiros]] para visioná-los.",
     "filename": "Nome do ficheiro",
     "filereuploadsummary": "Alterações ao ficheiro:",
     "filestatus": "Estado dos direitos de autor:",
     "filesource": "Fonte:",
-    "uploadedfiles": "Ficheiros carregados",
     "ignorewarning": "Ignorar o aviso e gravar o ficheiro.",
     "ignorewarnings": "Ignorar todos os avisos",
     "minlength1": "Os nomes de ficheiros devem de ter pelo menos uma letra.",
     "overwroteimage": "enviou uma nova versão de \"[[$1]]\"",
     "uploaddisabled": "Carregamentos impossibilitados",
     "copyuploaddisabled": "Upload por URL impossibilitado.",
-    "uploadfromurl-queued": "O seu upload foi adicionado à fila.",
     "uploaddisabledtext": "O carregamento de ficheiros está impossibilitado.",
     "php-uploaddisabledtext": "O carregamento de ficheiros está impossibilitado no PHP.\nVerifique a configuração file_uploads, por favor.",
     "uploadscripted": "Este ficheiro contém HTML ou código que pode ser erradamente interpretado por um browser.",
     "upload-misc-error": "Erro de carregamento desconhecido",
     "upload-misc-error-text": "Ocorreu um erro desconhecido durante o envio.\nVerifique se o endereço (URL) é válido e acessível e tente novamente.\nCaso o problema persista, contacte um [[Special:ListUsers/sysop|administrador]].",
     "upload-too-many-redirects": "A URL continha demasiados redirecionamentos",
-    "upload-unknown-size": "Tamanho desconhecido",
     "upload-http-error": "Ocorreu um erro HTTP: $1",
     "upload-copy-upload-invalid-domain": "Não é possível realizar carregamentos remotos neste domínio.",
     "backend-fail-stream": "Não foi possível transmitir o ficheiro $1.",
     "img-auth-streaming": "A fazer o ''streaming'' de \"$1\".",
     "img-auth-public": "A função do img_auth.php é produzir ficheiros a partir de uma wiki privada.\nEsta wiki está configurada como uma wiki pública.\nPara optimizar a segurança, o img_auth.php está impossibilitado de executar.",
     "img-auth-noread": "O utilizador não tem acesso de leitura ao ficheiro \"$1\".",
-    "img-auth-bad-query-string": "A URL tem um texto de consulta inválido.",
     "http-invalid-url": "URL inválida: $1",
     "http-invalid-scheme": "URLs iniciadas pelo prefixo \"$1\" não são aceites.",
     "http-request-error": "O pedido HTTP falhou devido a um erro desconhecido.",
     "filehist-dimensions": "Dimensões",
     "filehist-filesize": "Tamanho do ficheiro",
     "filehist-comment": "Comentário",
-    "filehist-missing": "Ficheiro em falta",
     "imagelinks": "Uso do ficheiro",
     "linkstoimage": "{{PLURAL:$1|A seguinte página contém|As seguintes $1 páginas contêm}} links para este ficheiro:",
     "linkstoimage-more": "Mais de {{PLURAL:$1|uma página contém|$1 páginas contêm}} links para este ficheiro.\nA lista abaixo apresenta apenas {{PLURAL:$1|a primeira página|as primeiras $1 páginas}}.\nEncontra-se disponível uma [[Special:WhatLinksHere/$2|lista completa]].",
     "listgrouprights-removegroup-self": "Remover a própria conta {{PLURAL:$2|do grupo|dos grupos}}: $1",
     "listgrouprights-addgroup-self-all": "Adicionar a própria conta a todos os grupos",
     "listgrouprights-removegroup-self-all": "Remover a própria conta de todos os grupos",
+    "listgrouprights-namespaceprotection-header": "Restrições do campo nominal",
+    "listgrouprights-namespaceprotection-namespace": "Campo nominal",
+    "trackingcategories-name": "Nome da mensagem",
     "mailnologin": "Não existe endereço de envio",
     "mailnologintext": "Precisa de estar [[Special:UserLogin|autenticado]] e ter um endereço de correio válido nas suas [[Special:Preferences|preferências]], para poder enviar correio eletrónico a outros utilizadores.",
     "emailuser": "Enviar correio eletrónico a este utilizador",
     "emailuser-title-notarget": "Enviar correio eletrónico ao utilizador",
     "emailpage": "Enviar correio eletrónico ao utilizador",
     "emailpagetext": "Pode usar o formulário abaixo para enviar uma mensagem por correio eletrónico para {{GENDER:$1|este utilizador|esta utilizadora}}.\nO endereço de correio que introduziu nas [[Special:Preferences|suas preferências]] irá aparecer no campo do remetente da mensagem \"De:\", para que o destinatário lhe possa responder diretamente.",
-    "usermailererror": "O sistema de correio devolveu o erro:",
     "defemailsubject": "Correio eletrónico da {{SITENAME}}, do utilizador \"$1\"",
     "usermaildisabled": "O correio eletrónico do utilizador foi desativado",
     "usermaildisabledtext": "Não pode enviar correio eletrónico a outros utilizadores desta wiki",
     "noemailtitle": "Sem endereço de correio eletrónico",
     "noemailtext": "Este utilizador não especificou um endereço de correio eletrónico válido.",
-    "nowikiemailtitle": "Correio eletrónico não é permitido",
     "nowikiemailtext": "Este utilizador optou por não receber correio eletrónico de outros utilizadores.",
     "emailnotarget": "O nome do destinatário não existe ou é inválido.",
     "emailtarget": "Introduza o nome de utilizador do destinatário.",
     "watching": "A vigiar...",
     "unwatching": "Deixando de vigiar...",
     "watcherrortext": "Ocorreu um erro ao alterar a configuração da sua lista de páginas vigiadas para \"$1\".",
-    "enotif_mailer": "Gerador de Notificações da {{SITENAME}}",
     "enotif_reset": "Marcar todas as páginas como visitadas",
     "enotif_impersonal_salutation": "Utilizador da \"{{SITENAME}}\"",
     "enotif_subject_deleted": "A página  $1 de {{SITENAME}} foi {{GENDER:$2|eliminada}} por $2",
     "excontent": "o conteúdo era: \"$1\"",
     "excontentauthor": "o conteúdo era: \"$1\" (e o único editor era [[Special:Contributions/$2|$2]]\")",
     "exbeforeblank": "o conteúdo antes de esvaziar era: \"$1\"",
-    "exblank": "página esvaziada",
     "delete-confirm": "Eliminar \"$1\"",
     "delete-legend": "Eliminar",
     "historywarning": "'''Aviso:''' A página que está prestes a eliminar tem um histórico com aproximadamente $1 {{PLURAL:$1|revisão|revisões}}:",
     "importunknownsource": "Tipo da fonte de importação desconhecido",
     "importcantopen": "Não foi possível abrir o ficheiro a importar",
     "importbadinterwiki": "Link interwikis incorrecto",
-    "importnotext": "Vazio ou sem texto",
     "importsuccess": "Importação completa!",
-    "importhistoryconflict": "Existem conflitos de edições no histórico (talvez esta página já tenha sido importada anteriormente)",
     "importnosources": "Não foram definidas fontes de importação transwikis e o carregamento direto de históricos encontra-se desativado.",
     "importnofile": "Nenhum ficheiro de importação foi carregado.",
     "importuploaderrorsize": "O carregamento do ficheiro importado falhou.\nO ficheiro é maior do que o tamanho máximo permitido.",
index 50a8701..ba64764 100644 (file)
             "Žekřil71pl",
             "פוילישער",
             "គីមស៊្រុន",
-            "아라"
+            "아라",
+            "Jdforrester"
         ]
     },
     "sidebar": "{{notranslate}}",
     "category-media-header": "In category description page. Parameters:\n* $1 - category name\nSee also:\n* {{msg-mw|Category header}}",
     "category-empty": "The text displayed in category page when that category is empty",
     "hidden-categories": "Used in the categories section of pages.\n\nFollowed by a colon and a list of categories.\n\nParameters:\n* $1 - number of hidden categories\n{{Identical|Hidden category}}",
-    "hidden-category-category": "Name of the [[mw:Help:Tracking categories|tracking category]] where hidden categories will be listed.\n{{Identical|Hidden category}}",
+    "hidden-category-category": "Name of the [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where hidden categories will be listed.\n\nSee also:\n* {{msg-mw|Hidden-category-category-desc}}\n{{Identical|Hidden category}}",
     "category-subcat-count": "This message is displayed at the top of a category page showing the number of pages in the category.\n\nParameters:\n* $1 - number of subcategories shown\n* $2 - total number of subcategories in category",
     "category-subcat-count-limited": "This message is displayed at the top of a category page showing the number of pages in the category when not all pages in a category are counted.\n\nParameters:\n* $1 - number of subcategories shown",
     "category-article-count": "This message is used on category pages. Parameters:\n* $1 – number of pages shown\n* $2 – total number of pages in category",
     "category-file-count": "This message is displayed at the top of a category page showing the number of pages in the category.\n\nParameters:\n* $1 – number of files shown\n* $2 – total number of files in category",
     "category-file-count-limited": "This message is displayed at the top of a category page showing the number of pages in the category when not all pages in a category are counted.\n\nParameters:\n* $1 - number of files shown",
     "listingcontinuesabbrev": "Shown in contiuation of each first letter group. This message follows the first letter.\n\nSee http://test.wikipedia.org/wiki/Category:Test_ko?uselang={{SUBPAGENAME}}, for example.",
-    "index-category": "Name of the [[mw:Help:Tracking categories|tracking category]] where pages with the <nowiki>__INDEX__</nowiki> behavior switch are listed. For description of this behavior switch see [[mw:Help:Magic_words#Behavior_switches|MediaWiki]].",
-    "noindex-category": "Name of the [[mw:Help:Tracking categories|tracking category]] where pages with the <nowiki>__NOINDEX__</nowiki> behavior switch are listed. For description of this behavior switch see [[mw:Help:Magic_words#Behavior_switches|MediaWiki]].",
-    "broken-file-category": "Name of [[mw:Help:Tracking categories|tracking category]] where pages that embed files that do not exist (\"broken images\") are listed.",
+    "index-category": "Name of the [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where pages with the <nowiki>__INDEX__</nowiki> behavior switch are listed.\n\nFor description of this behavior switch see [[mw:Special:MyLanguage/Help:Magic_words#Behavior_switches|MediaWiki]].\n\nSee also:\n* {{msg-mw|Index-category-desc}}",
+    "noindex-category": "Name of the [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where pages with the <nowiki>__NOINDEX__</nowiki> behavior switch are listed.\n\nFor description of this behavior switch see [[mw:Special:MyLanguage/Help:Magic_words#Behavior_switches|MediaWiki]].\n\nSee also:\n* {{msg-mw|Noindex-category-desc}}",
+    "broken-file-category": "Name of [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where pages that embed files that do not exist (\"broken images\") are listed.\n\nSee also:\n* {{msg-mw|Broken-file-category-desc}}",
     "categoryviewer-pagedlinks": "{{Optional}}\nThe pagination links in category viewer. Parameters:\n* $1 - the previous link, uses {{msg-mw|Prevn}}\n* $2 - the next link, uses {{msg-mw|Nextn}}",
     "about": "{{Identical|About}}",
     "article": "A 'content page' is a page that forms part of the purpose of the wiki. It includes the main page and pages in the main namespace and any other namespaces that are included when the wiki is customised. For example on Wikimedia Commons 'content pages' include pages in the file and category namespaces. On Wikinews 'content pages' include pages in the Portal namespace. For technical definition of 'content namespaces' see [[mw:Manual:Using_custom_namespaces#Content_namespaces|MediaWiki]].\n\nPossible alternatives to the word 'content' are 'subject matter' or 'wiki subject' or 'wiki purpose'.\n\n{{Identical|Content page}}",
     "disclaimerpage": "{{doc-important|Do not change the <code>Project:</code> part.}}\nUsed as page for that contains the site disclaimer. Used at the bottom of every page on the wiki. Example: [[{{MediaWiki:Disclaimerpage}}|{{MediaWiki:Disclaimers}}]].",
     "edithelp": "This is the text that appears on the editing help link that is near the bottom of the editing page",
     "edithelppage": "The help page displayed when a user clicks on editing help link which is present on the right of Show changes button.\n{{doc-important|Do not change the \"<tt>Help:</tt>\" part.}}",
-    "helppage": "{{doc-important|Do not change the <code>Help:</code> part.}}\nThe link destination used by default in the sidebar, and in {{msg-mw|Noarticletext}}.",
+    "helppage": "{{ignored}}\nThe link destination used by default in the sidebar, and in {{msg-mw|Noarticletext}}.",
     "mainpage": "Defines the link and display name of the main page of the wiki. Shown as the top link in the navigation part of the interface. Please do not change it too often, that could break things!\n\nSee also:\n* {{msg-mw|Mainpage}}\n* {{msg-mw|Accesskey-n-mainpage}}\n* {{msg-mw|Tooltip-n-mainpage}}\n{{Identical|Main page}}",
     "mainpage-description": "The same as {{msg-mw|mainpage}}, used as link text on [[MediaWiki:Sidebar]].\n\nThis makes it possible to the change the link destination (the message \"mainpage\") without changing the link text or without disabling translations.\n\nSee also:\n* {{msg-mw|Mainpage-description}}\n* {{msg-mw|Accesskey-n-mainpage-description}}\n* {{msg-mw|Tooltip-n-mainpage-description}}\n{{Identical|Main page}}",
     "policy-url": "{{doc-important|Do not change the <code>Project:</code> part.}}\nThe URL of the project page describing the policies of the wiki.\n\nThis is shown below every page (the left link).",
     "filenotfound": "Parameters:\n* $1 - file name",
     "fileexistserror": "Parameters:\n* $1 - file name",
     "unexpected": "This message indicates the value $2 is unexpected for $1. Parameters:\n* $1 - name\n* $2 - value",
+    "formerror": "Generic error message show to a user when they try to submit information that could not be processed for any reason.",
     "badarticleerror": "Used as error message in moving page.\n\nSee also:\n* {{msg-mw|Articleexists}}\n* {{msg-mw|Bad-target-model}}",
     "cannotdelete": "Error message in deleting. Parameters:\n* $1 - page name or file name",
     "cannotdelete-title": "Title of error page when the user cannot delete a page. Parameters:\n* $1 - the page name",
     "userloginnocreate": "Since 1.22 no longer used in core, but may still be used by some extensions. A variant of {{msg-mw|Userlogin}} when the user is not allowed to create a new account. DEPRECATED\n\n{{Identical|Log in}}",
     "logout": "Used as link text in your personal toolbox (upper right side).\n\nSee also:\n* {{msg-mw|Logout}}\n* {{msg-mw|Accesskey-pt-logout}}\n* {{msg-mw|Tooltip-pt-logout}}\n{{Identical|Log out}}",
     "userlogout": "{{doc-special|UserLogout|unlisted=1}}\n{{Identical|Log out}}",
+    "userlogout-summary": "{{ignored}}",
     "notloggedin": "This message is displayed in the standard skin when not logged in. The message is placed above the login link in the top right corner of pages.\n\n{{Identical|Not logged in}}",
     "userlogin-noaccount": "In the [[Special:Userlogin]] form, this is the text prior to button inviting user to join project.\n{{Identical|Do not have an account}}",
     "userlogin-joinproject": "Text of button inviting user to create an account.\n\nSee example: [[Special:UserLogin]]",
     "user-mail-no-addy": "This is the error message in case an email could not be sent because there was no email address to send it to.",
     "user-mail-no-body": "This is the error message in case an email has an empty or unreasonably short body.",
     "changepassword": "Section heading on [[Special:Preferences]], tab 'User profile'.\n{{Identical|Change password}}",
+    "changepassword-summary": "{{ignored}}",
     "resetpass_announce": "Used in [[Special:UserLogin]].",
     "resetpass_text": "{{optional}}",
     "resetpass_header": "Header on box on special page [[Special:ChangePassword]].\n\n{{Identical|Reset password}}",
     "passwordreset-emailsent-capture": "Used in [[Special:PasswordReset]].\n\nSee also:\n* {{msg-mw|Passwordreset-emailsent}}\n* {{msg-mw|Passwordreset-emailerror-capture}}",
     "passwordreset-emailerror-capture": "Error message displayed in [[Special:PasswordReset]] when sending an email fails. Parameters:\n* $1 - error message\n* $2 - username, used for GENDER\nSee also:\n* {{msg-mw|Passwordreset-emailsent}}\n* {{msg-mw|Passwordreset-emailsent-capture}}",
     "changeemail": "Title of [[Special:ChangeEmail|special page]].",
+    "changeemail-summary": "{{ignored}}",
     "changeemail-header": "Header on [[Special:ChangeEmail]].",
     "changeemail-text": "Text of [[Special:ChangeEmail]].",
     "changeemail-no-info": "Error message for [[Special:ChangeEmail]].\n\nParameters:\n* $1 (unused) - a link to [[Special:UserLogin]] with {{msg-mw|loginreqlink}} as link description",
     "changeemail-cancel": "Cancel button on [[Special:ChangeEmail]]\n\n{{Identical|Cancel}}",
     "changeemail-throttled": "Error message shown at [[Special:ChangeEmail]] after the user has tried to login with incorrect password too many times.\n\nThe user has to wait a certain time before trying to log in again.\n\nParameters:\n* $1 - the time to wait before the next login attempt. Automatically formatted using the following duration messages:\n** {{msg-mw|Duration-millennia}}\n** {{msg-mw|Duration-centuries}}\n** {{msg-mw|Duration-decades}}\n** {{msg-mw|Duration-years}}\n** {{msg-mw|Duration-weeks}}\n** {{msg-mw|Duration-days}}\n** {{msg-mw|Duration-hours}}\n** {{msg-mw|Duration-minutes}}\n** {{msg-mw|Duration-seconds}}\n\nThis is a protection against robots trying to find the password by trying lots of them.\nThe number of attempts and waiting time are configured via [[mw:Manual:$wgPasswordAttemptThrottle|$wgPasswordAttemptThrottle]].\nThis message is used in html.\n\nSee also:\n* {{msg-mw|Changepassword-throttled}}",
     "resettokens": "{{doc-special|ResetTokens}}\nIn this case \"token\" may be translated as \"key\", or similar.\n{{Identical|Reset token}}",
+    "resettokens-summary": "{{ignored}}",
     "resettokens-text": "Text on [[Special:ResetTokens]].",
     "resettokens-no-tokens": "Additional text on [[Special:ResetTokens]] if the user has no tokens.",
     "resettokens-legend": "Form legend on [[Special:ResetTokens]].\n{{Identical|Reset token}}",
     "yourdiff": "",
     "copyrightwarning": "Copyright warning displayed under the edit box in editor. Parameters:\n* $1 - link\n* $2 - license name",
     "copyrightwarning2": "Copyright warning displayed under the edit box in editor\n*$1 - license name",
+    "editpage-head-copy-warn": "{{ignored}}Custom copyright warning in the header of an edit page.",
     "editpage-tos-summary": "{{notranslate}}",
     "longpage-hint": "{{notranslate}}\n* <tt>$1</tt>: Size of the textbox formatted for output, using an appropriate unit ({{msg-mw|size-bytes}}, {{msg-mw|size-kilobytes}}, {{msg-mw|size-megabytes}}, {{msg-mw|size-gigabytes}})\n* <tt>$2</tt>: Size of the textbox in bytes, not formatnum",
     "longpageerror": "Warning displayed when trying to save a text larger than the maximum size allowed.\n\nParameters:\n* $1 - submitted size (in kilobytes)\n* $2 - maximum size (in kilobytes)",
     "content-model-javascript": "Name for the JavaScript content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}",
     "content-model-css": "Name for the CSS content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}",
     "expensive-parserfunction-warning": "On some (expensive) [[MetaWikipedia:Help:ParserFunctions|parser functions]] (e.g. <code><nowiki>{{#ifexist:}}</nowiki></code>) there is a limit of how many times it may be used. This is an error message shown when the limit is exceeded.\n\nParameters:\n* $1 - the current number of parser function calls\n* $2 - the allowed number of parser function calls\nSee also [[:mw:Manual:$wgExpensiveParserFunctionLimit|$wgExpensiveParserFunctionLimit in the MediaWiki manual]].\n\nSee also:\n* {{msg-mw|Expensive-parserfunction-category}}",
-    "expensive-parserfunction-category": "This message is used as a category name for a [[mw:Help:Tracking categories|tracking category]] where pages are placed automatically if they contain too many calls to expensive parser functions.\n\nSee also:\n* {{msg-mw|Expensive-parserfunction-warning}}",
+    "expensive-parserfunction-category": "This message is used as a category name for a [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where pages are placed automatically if they contain too many calls to expensive parser functions.\n\nSee also:\n* {{msg-mw|Expensive-parserfunction-category-desc}}\n* {{msg-mw|Expensive-parserfunction-warning}}",
     "post-expand-template-inclusion-warning": "When templates are expanded, there is a size limit for the number of bytes yielded. Usually that occurs from excessively nested templates, recursive templates, or ones having x-zillion of #if #case or similar contructs in them. When the wikicode parser detects this, it outputs a red warning message to the page.\n\n\nSee also:\n* {{msg-mw|Post-expand-template-inclusion-category}}",
-    "post-expand-template-inclusion-category": "This message is used as a category name for a [[mw:Help:Tracking categories|tracking category]] where pages are placed automatically if the expanded size of the templates they contain exceeds the limit.\nWhen templates are expanded, there is a size limit for the number of bytes yielded. Usually that occurs from excessively nested templates, recursive templates, or ones having x-zillion of #if #case or similar contructs in them. When the wikicode parser detects this, it outputs a red warning message to the page.\n\nSee also:\n* {{msg-mw|Post-expand-template-inclusion-warning}}",
+    "post-expand-template-inclusion-category": "This message is used as a category name for a [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where pages are placed automatically if the expanded size of the templates they contain exceeds the limit.\n\nWhen templates are expanded, there is a size limit for the number of bytes yielded. Usually that occurs from excessively nested templates, recursive templates, or ones having x-zillion of #if #case or similar contructs in them. When the wikicode parser detects this, it outputs a red warning message to the page.\n\nSee also:\n* {{msg-mw|Post-expand-template-inclusion-category-desc}}\n* {{msg-mw|Post-expand-template-inclusion-warning}}",
     "post-expand-template-argument-warning": "Used as warning in parser limitation.\n\nSee also:\n* {{msg-mw|Post-expand-template-argument-category}}",
-    "post-expand-template-argument-category": "This message is used as a category name for a [[mw:Help:Tracking categories|tracking category]] where pages are placed automatically if they contain omitted template arguments.\n\nSee also:\n* {{msg-mw|Post-expand-template-argument-warning}}",
+    "post-expand-template-argument-category": "This message is used as a category name for a [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where pages are placed automatically if they contain omitted template arguments.\n\nSee also:\n* {{msg-mw|Post-expand-template-argument-category-desc}}\n* {{msg-mw|Post-expand-template-argument-warning}}",
     "parser-template-loop-warning": "Parameters:\n* $1 - page title",
     "parser-template-recursion-depth-warning": "Parameters:\n* $1 - limit value of recursion depth",
     "language-converter-depth-warning": "Error message shown when a page uses too deeply nested language conversion syntax. Parameters:\n* $1 - the value of the depth limit",
     "revdelete-no-file": "Used as error message in [[Special:RevisionDelete]].",
     "revdelete-show-file-confirm": "A confirmation message shown on [[Special:Revisiondelete]] when the request does not contain a valid token (e.g. when a user clicks a link received in mail).\n\nParameters:\n* $1 - a file name\n* $2 - a date\n* $3 - a time\n{{Identical|Are you sure you want to view the deleted revision of the file...}}",
     "revdelete-show-file-submit": "Reply to {{msg-mw|Revdelete-show-file-confirm}}.\n\n{{Identical|Yes}}",
-    "revdelete-selected-text": "{{Related|Revdelete-selected}}",
-    "revdelete-selected-file": "{{Related|Revdelete-selected}}",
-    "logdelete-selected": "{{RevisionDelete}}\nParameters:\n* $1 - number of log events\n* $2 - (Unused) localized name of Special:Log, maybe with type as subpage\n{{Related|Revdelete-selected}}",
+    "revdelete-selected-text": "Parameters:\n* $1 - number of revisions\n* $2 - page title\n{{Related|Revdelete-selected}}",
+    "revdelete-selected-file": "Parameters:\n* $1 - number of revisions\n* $2 - page title\n{{Related|Revdelete-selected}}",
+    "logdelete-selected": "{{RevisionDelete}}\nParameters:\n* $1 - number of log events\n* $2 - (Unused) localized name of [[Special:Log]], maybe with type as subpage\n{{Related|Revdelete-selected}}",
     "revdelete-text-text": "{{RevisionDelete}}\nThis is the introduction explaining the feature.\n\nSee also:\n* {{msg-mw|Revdelete-text-file}}\n* {{msg-mw|Logdelete-text}}\n* {{msg-mw|Revdelete-text-others}}",
     "revdelete-text-file": "{{RevisionDelete}}\nThis is the introduction explaining the feature.\n\nSee also:\n* {{msg-mw|Revdelete-text-text}}\n* {{msg-mw|Logdelete-text}}\n* {{msg-mw|Revdelete-text-others}}",
     "logdelete-text": "{{RevisionDelete}}\nThis is the introduction explaining the feature.\n\nSee also:\n* {{msg-mw|Revdelete-text-text}}\n* {{msg-mw|Revdelete-text-file}}\n* {{msg-mw|Revdelete-text-others}}",
     "diff-multi-otherusers": "This message appears in the revision history of a page when comparing two versions which aren't consecutive, and at least one of the intermediate revisions was created by a user other than the user who created the new revision.\n\nParameters:\n* $1 - the number of revisions\n* $2 - the number of distinct other users who made those revisions\n{{Related|Diff-multi}}",
     "diff-multi-manyusers": "This message appears in the revision history of a page when comparing two versions which aren't consecutive, and the intermediate revisions have been edited by more than 100 users.\n\nParameters:\n* $1 - the number of revisions, will always be 101 or more\n* $2 - the number of users that were found, which was limited at 100\n{{Related|Diff-multi}}",
     "difference-missing-revision": "Text displayed when the requested revision does not exist using a diff link.\n\nExample: [{{canonicalurl:Project:News|diff=426850&oldid=99999999}} Diff with invalid revision#]\n\nParameters:\n* $1 - the list of missing revisions IDs\n* $2 - the number of items in $1 (one or two)",
+    "search-summary": "{{doc-specialpagesummary|search}}",
     "searchresults": "This is the title of the page that contains the results of a search.\n\n{{Identical|Search results}}",
     "searchresults-title": "Appears as page title in the html header of the search result special page.\n\nParameters:\n* $1 - the search term",
     "toomanymatches": "Used as section header in [[Special:Search]], when there are too many hits.",
     "searchdisabled": "{{doc-singularthey}}\nIn this sentence, \"their indexes\" refers to \"Google's indexes\".\n\nShown on [[Special:Search]] when the internal search is disabled.",
     "googlesearch": "{{notranslate}}\nShown when [[mw:Manual:$wgDisableTextSearch|$wgDisableTextSearch]] is set to true and no [[mw:Manual:$wgSearchForwardUrl|$wgSearchForwardUrl]] is set.\n\nParameters:\n* $1 - the search term\n* $2 - \"UTF-8\" (hard-coded)\n* $3 - the message {{msg-mw|Searchbutton}}",
     "search-error": "Shown when an error has occurred when performing a search. Parameters:\n* $1 - the localized error that was returned",
+    "opensearch-desc": "{{ignored}}Link description of the [www.opensearch.org/ OpenSearch] link in the HTML head of pages.",
     "preferences": "Title of the [[Special:Preferences]] page.\n{{Identical|Preferences}}",
+    "preferences-summary": "{{doc-specialpagesummary|preferences}}",
     "mypreferences": "Action link label that leads to [[Special:Preferences]]; appears in the top menu (e.g. \"Username Talk Preferences Watchlist Contributions Log out\").\n\nSee also:\n* {{msg-mw|Mypreferences}}\n* {{msg-mw|Accesskey-pt-preferences}}\n* {{msg-mw|Tooltip-pt-preferences}}\n{{Identical|Preferences}}",
     "prefs-edits": "In user preferences.",
     "prefsnologintext2": "Parameters:\n* $1 - a link to [[Special:UserLogin]] with {{msg-mw|loginreqlink}} as link description",
     "prefs-skin": "Used in user preferences.\n{{Identical|Skin}}",
     "skin-preview": "{{doc-actionlink}}\nThe link beside each skin name in [[Special:Preferences|your user preferences]], tab \"skin\".\n{{Identical|Preview}}",
     "datedefault": "Used as checkbox label in [[Special:Preferences#mw-prefsection-datetime|user preferences]], {{msg-mw|prefs-datetime}} tab.\n\nThis message indicates {{msg-mw|prefs-dateformat}} is default (= not specified).",
-    "prefs-datetime": "{{Identical|Date}}",
     "prefs-labs": "Header of a subsection at [[Special:Preferences]], tab ''{{int:prefs-editing}}'', listing features that are experimental",
     "prefs-user-pages": "Header of a subsection at [[Special:Preferences]], tab ''{{int:prefs-misc}}'', listing features that are related to user pages",
     "prefs-personal": "Title of a tab in [[Special:Preferences]].\n{{Identical|User profile}}",
     "email-address-validity-valid": "Used as hint for {{msg-mw|changeemail-newemail}} field in [[Special:ChangeEmail]], when the provided E-mail address is valid.",
     "email-address-validity-invalid": "Used as warning for {{msg-mw|changeemail-newemail}} field in [[Special:ChangeEmail]], when the provided E-mail address is invalid.",
     "userrights": "Page title of [[Special:UserRights]].",
+    "userrights-summary": "{{doc-specialpagesummary|userrights}}",
     "userrights-lookup-user": "Label text when managing user rights ([[Special:UserRights]])",
     "userrights-user-editname": "Displayed on [[Special:UserRights]].",
     "editusergroup": "Button name, in page [[Special:Userrights]] (only available to administrators), in the section named {{MediaWiki:userrights-lookup-user}}.\n\n{{Identical|Edit user groups}}",
     "upload_directory_missing": "Parameters:\n* $1 - directory name",
     "upload_directory_read_only": "Parameters:\n* $1 - directory name",
     "uploaderror": "Used as section header in [[Special:Upload]].\n\nSee also:\n* {{msg-mw|upload-tryagain|Submit text}}",
+    "upload-summary": "{{doc-specialpagesummary|upload}}",
     "upload-recreate-warning": "Used as warning in [[Special:Upload]].",
     "uploadtext": "{{doc-important|<code>thumb</code> and <code>left</code> are magic words. Leave them untranslated!}}\nText displayed when uploading a file using [[Special:Upload]].",
     "upload-permitted": "Used in [[Special:Upload]]. Parameters:\n* $1 - list of file types, defined in the variable [[mw:Special:MyLanguage/Manual:$wgFileExtensions|$wgFileExtensions]]\nSee also:\n* {{msg-mw|Upload-preferred}}\n* {{msg-mw|Upload-prohibited}}",
     "upload-preferred": "Used in [[Special:Upload]]. Parameters:\n* $1 - list of file types, defined in the variable [[mw:Special:MyLanguage/Manual:$wgFileExtensions|$wgFileExtensions]]\nSee also:\n* {{msg-mw|Upload-permitted}}\n* {{msg-mw|Upload-prohibited}}",
     "upload-prohibited": "Used in [[Special:Upload]]. Parameters:\n* $1 - list of file types, defined in the variable [[mw:Special:MyLanguage/Manual:$wgFileBlacklist|$wgFileBlacklist]]\nSee also:\n* {{msg-mw|Upload-permitted}}\n* {{msg-mw|Upload-preferred}}",
     "uploadfooter": "{{notranslate}}",
+    "upload-default-description": "{{ignored}}Custom default upload description. The contents of this message be will inserted in the field \"Summary\" on [[Special:Upload]].",
     "uploadlogpage": "{{doc-logpage}}\n\nPage title of [[Special:Log/upload]].",
     "uploadlogpagetext": "Appears on top of [[Special:Log/upload]].",
     "filename": "{{Identical|Filename}}",
     "upload-file-error-text": "See also:\n* {{msg-mw|Upload-file-error|title}}\n* {{msg-mw|Upload-file-error-text|text}}",
     "upload-misc-error": "See also:\n* {{msg-mw|Upload-misc-error|title}}\n* {{msg-mw|Upload-misc-error-text|text}}",
     "upload-misc-error-text": "See also:\n* {{msg-mw|Upload-misc-error|title}}\n* {{msg-mw|Upload-misc-error-text|text}}",
+    "upload-too-many-redirects": "Error message shown when uploading a file via URL, if the upload failed because the URL returned too many redirects.",
     "upload-http-error": "Parameters:\n* $1 - error message",
     "upload-copy-upload-invalid-domain": "Error message shown if a user is trying to upload (i.e. copy) a file from a website that is not in $wgCopyUploadsDomains (if set).\n\nSee also:\n* {{msg-mw|http-invalid-url}}\n* {{msg-mw|tmp-create-error}}\n* {{msg-mw|tmp-write-error}}",
     "backend-fail-stream": "Parameters:\n* $1 - a filename",
     "filepage-nofile-link": "This message appears when visiting a File page for which there's no file, if the user can upload files, and file uploads are enabled. (Otherwise, see {{msg-mw|Filepage-nofile}})\n\nParameters:\n* $1 - URL of upload page for this file\nFilepage-nofile and Filepage-nofile-link message deprecate {{msg-mw|Noimage}}",
     "uploadnewversion-linktext": "Used on pages in the \"File\" namespace to update the file version.",
     "shared-repo-from": "This message is shown on an image description page when a duplicate of the image exists on a shared repository such as Wikimedia Commons.\n\nExample: http://test.wikipedia.org/wiki/File:Wiki.png#filelinks\n\nParameters:\n* $1 - the name of the shared repository. On wikimedia sites, $1 is {{msg-mw|Shared-repo-name-shared}}. The default value for $1 is {{msg-mw|Shared-repo}}.",
-    "shared-repo": "This message can be used as parameter <code>$1</code> in the following messages:\n* {{msg-mw|shared-repo-from}}\n* {{msg-mw|sharedupload}}\n* {{msg-mw|sharedupload-desc-here}}\n* {{msg-mw|sharedupload-desc-there}}",
-    "shared-repo-name-wikimediacommons": "{{optional}}\n{{Identical|Wikimedia Commons}}",
+    "shared-repo": "This message can be used as parameter <code>$1</code> in the following messages:\n* {{msg-mw|view-foreign}}\n* {{msg-mw|shared-repo-from}}\n* {{msg-mw|sharedupload}}\n* {{msg-mw|sharedupload-desc-here}}\n* {{msg-mw|sharedupload-desc-there}}",
+    "shared-repo-name-wikimediacommons": "{{optional}}\n\nA specific version of {{msg-mw|shared-repo}}; see [[MediaWiki:Shared-repo/qqq]] for more information.\n\n{{Identical|Wikimedia Commons}}",
     "filepage.css": "{{Optional}}",
     "upload-disallowed-here": "This message appears on an image page in place of the normal reupload link if they cannot upload - e.g. if the image page is upload protected and they do not have the right privilege.",
     "filerevert": "Used as page title. Parameters:\n* $1 - page title\n{{Identical|Revert}}",
     "mimetype": "Used as label for input box in the MIMESearch form on [[Special:MIMESearch]].\n\nSee also:\n* {{msg-mw|Mimesearch|page title}}\n* {{msg-mw|Ilsubmit|Submit button text}}\n{{Identical|MIME type}}",
     "download": "Direct download link in each line returned by [[Special:MIMESearch]]. Points to the actual file, rather than the image description page.\n{{Identical|Download}}",
     "unwatchedpages": "{{doc-special|UnwatchedPages}}",
+    "unwatchedpages-summary": "{{doc-specialpagesummary|unwatchedpages}}",
     "listredirects": "{{doc-special|ListRedirects}}",
+    "listredirects-summary": "{{doc-specialpagesummary|listredirects}}",
     "listduplicatedfiles": "{{doc-special|ListDuplicatedFiles}}",
     "listduplicatedfiles-summary": "Summary at top of Special:ListDuplicatedFiles",
     "listduplicatedfiles-entry": "A list item on [[Special:ListDuplicatedFiles]]. Parameters:\n* $1 - the file name (no namespace prefix)\n* $2 - the number of duplicates this file has\n* $3 - the name of the duplicate search page (aka \"Special:FileDuplicateSearch/Foo.png\" or \"Spécial:Recherche_fichier_en_double/Firefox.png\")",
     "unusedtemplates": "{{doc-special|UnusedTemplates}}",
+    "unusedtemplates-summary": "{{doc-specialpagesummary|unusedtemplates}}",
     "unusedtemplatestext": "Shown on top of [[Special:Unusedtemplates]]",
     "unusedtemplateswlh": "Used as link text in [[Special:UnusedTemplates]].\n\nThe link points to the \"What links here\" page.",
     "randompage": "{{doc-special|RandomPage}}\nSee also:\n* {{msg-mw|Randompage}}\n* {{msg-mw|Accesskey-n-randompage}}\n* {{msg-mw|Tooltip-n-randompage}}\n{{Identical|Random page}}",
     "randomredirect": "{{doc-special|RandomRedirect}}",
     "randomredirect-nopages": "Parameters:\n* $1 - list of namespaces\n* $2 - (Unused) number of namespaces\nSee also:\n* {{msg-mw|Randompage-nopages}}",
     "statistics": "{{doc-special|Statistics}}\n{{Identical|Statistics}}",
+    "statistics-summary": "{{doc-specialpagesummary|statistics}}",
     "statistics-header-pages": "Used in [[Special:Statistics]]",
     "statistics-header-edits": "Used in [[Special:Statistics]]",
     "statistics-header-views": "Used in [[Special:Statistics]]",
     "statistics-mostpopular": "Used in [[Special:Statistics]]",
     "statistics-footer": "{{notranslate}}",
     "pageswithprop": "{{doc-special|PagesWithProp}}\n{{Identical|Page with page property}}",
+    "pageswithprop-summary": "{{doc-specialpagesummary|pageswithprop}}",
     "pageswithprop-legend": "Legend for the input form on [[Special:PagesWithProp]].\n{{Identical|Page with page property}}",
     "pageswithprop-text": "Introductory text for the input form on [[Special:PagesWithProp]]",
     "pageswithprop-prop": "Label for the property name input field on [[Special:PagesWithProp]].\n{{Identical|Property name}}",
     "pageswithprop-prophidden-long": "Information shown on [[Special:PagesWithProp]] when property value is longer than 1 kilobyte.\n\nParameters:\n* $1 - size of property value in kilobytes\nSee also:\n* {{msg-mw|pageswithprop-prophidden-binary}}",
     "pageswithprop-prophidden-binary": "Information shown on [[Special:PagesWithProp]] when property value contains binary data.\n\nParameters:\n* $1 - size of property value in kilobytes\nSee also:\n* {{msg-mw|pageswithprop-prophidden-long}}",
     "doubleredirects": "{{doc-special|DoubleRedirects}}",
+    "doubleredirects-summary": "{{doc-specialpagesummary|doubleredirects}}",
     "doubleredirectstext": "Shown on top of [[Special:Doubleredirects]]",
     "double-redirect-fixed-move": "This is the message in the log when the software (under the username {{msg-mw|Double-redirect-fixer}}) updates the redirects after a page move.\n\nParameters:\n* $1 - redirect page title\n* $2 - new page title\nSee also:\n* {{msg-mw|Fix-double-redirects}}\n* {{msg-mw|Double-redirect-fixed-maintenance}}",
     "double-redirect-fixed-maintenance": "This is the message in the log when the software (under the username {{msg-mw|Double-redirect-fixer}}) updates the redirects after running maintenance/fixDoubleRedirects.php.\n\nParameters:\n* $1 - redirect page title\n* $2 - new page title\nSee also:\n* {{msg-mw|Double-redirect-fixed-move}}",
     "double-redirect-fixer": "This is the '''username''' of the user who updates the double redirects after a page move.\n\nA user is created with this username, so it is perhaps better to not change this message too often.\n\nSee also:\n* {{msg-mw|Double-redirect-fixed-move}}\n* {{msg-mw|Fix-double-redirects}}",
     "brokenredirects": "{{doc-special|BrokenRedirects}}",
+    "brokenredirects-summary": "{{doc-specialpagesummary|brokenredirects}}",
     "brokenredirectstext": "Shown on top of [[Special:BrokenRedirects]].",
     "brokenredirects-edit": "Link in [[Special:BrokenRedirects]]\n\n{{Identical|Edit}}",
     "brokenredirects-delete": "Link in [[Special:BrokenRedirects]] for admins\n\n{{Identical|Delete}}",
     "withoutinterwiki-legend": "Used on [[Special:WithoutInterwiki]] as title of fieldset.",
     "withoutinterwiki-submit": "{{Identical|Show}}",
     "fewestrevisions": "{{doc-special|FewestRevisions}}",
+    "fewestrevisions-summary": "{{doc-specialpagesummary|fewestrevisions}}",
     "nbytes": "Message used on the history page of a wiki page. Each version of a page consist of a number of bytes. $1 is the number of bytes that the page uses. Uses plural as configured for a language based on $1.",
     "ncategories": "Used in the special page '[[Special:MostCategories]]' in brackets after each entry on the list signifying how many categories a page is part of. $1 is the number of categories.",
     "ninterwikis": "Used in the special page '[[Special:MostInterwikis]]' in brackets after each entry on the list signifying how many interwikis a page is part of.\n\nParameters:\n* $1 - the number of interwiki links",
     "ntransclusions": "Used on [[Special:MostLinkedTemplates]] to indicate how often a template is in use.\n\nParameters:\n* $1 - number of pages\nSee also:\n* {{msg-mw|Nimagelinks}}",
     "specialpage-empty": "Used on a special page when there is no data. For example on [[Special:Unusedimages]] when all images are used.",
     "lonelypages": "{{doc-special|LonelyPages}}",
+    "lonelypages-summary": "{{doc-specialpagesummary|lonelypages}}",
     "lonelypagestext": "Text displayed in [[Special:LonelyPages]]",
     "uncategorizedpages": "{{doc-special|UncategorizedPages}}",
+    "uncategorizedpages-summary": "{{doc-specialpagesummary|uncategorizedpages}}",
     "uncategorizedcategories": "{{doc-special|UncategorizedCategories}}",
+    "uncategorizedcategories-summary": "{{doc-specialpagesummary|uncategorizedcategories}}",
     "uncategorizedimages": "{{doc-special|UncategorizedImages}}",
     "uncategorizedimages-summary": "{{notranslate}}\nused in [[Special:Uncategorizedimages]]. [[mw:Manual:Interface/Special pages summary|mw manual]].",
     "uncategorizedtemplates": "{{doc-special|UncategorizedTemplates}}",
+    "uncategorizedtemplates-summary": "{{doc-specialpagesummary|uncategorizedtemplates}}",
     "unusedcategories": "{{doc-special|UnusedCategories}}",
+    "unusedcategories-summary": "{{doc-specialpagesummary|unusedcategories}}",
     "unusedimages": "{{doc-special|UnusedImages}}",
+    "unusedimages-summary": "{{doc-specialpagesummary|unusedimages}}",
     "popularpages": "{{doc-special|PopularPages}}",
+    "popularpages-summary": "{{doc-specialpagesummary|popularpages}}",
     "wantedcategories": "{{doc-special|WantedCategories}}",
+    "wantedcategories-summary": "{{doc-specialpagesummary|wantedcategories}}",
     "wantedpages": "{{doc-special|WantedPages}}",
+    "wantedpages-summary": "{{doc-specialpagesummary|wantedpages}}",
     "wantedpages-badtitle": "Error message shown when [[Special:WantedPages]] is listing a page with a title that shouldn't exist.\n\nParameters:\n* $1 - a page title",
     "wantedfiles": "{{doc-special|WantedFiles}}",
+    "wantedfiles-summary": "{{doc-specialpagesummary|wantedfiles}}",
     "wantedfiletext-cat": "Message displayed at top of [[special:WantedFiles]]. $1 contains the name of the tracking category for broken files (Including Category prefix). {{msg-mw|wantedfiletext-nocat}} is used if the tracking category is disabled.",
     "wantedfiletext-nocat": "Message displayed at top of [[special:WantedFiles]] when broken file tracking category is disabled. See {{msg-mw|wantedfiletext-cat}}.",
     "wantedtemplates": "{{doc-special|WantedTemplates}}",
+    "wantedtemplates-summary": "{{doc-specialpagesummary|wantedtemplates}}",
     "mostlinked": "{{doc-special|MostLinked}}",
+    "mostlinked-summary": "{{doc-specialpagesummary|mostlinked}}",
     "mostlinkedcategories": "{{doc-special|MostLinkedCategories}}",
+    "mostlinkedcategories-summary": "{{doc-specialpagesummary|mostlinkedcategories}}",
     "mostlinkedtemplates": "{{doc-special|MostLinkedTemplates}}",
+    "mostlinkedtemplates-summary": "{{doc-specialpagesummary|mostlinkedtemplates}}",
     "mostcategories": "{{doc-special|MostCategories}}",
+    "mostcategories-summary": "{{doc-specialpagesummary|mostcategories}}",
     "mostimages": "{{doc-special|MostImages}}",
     "mostimages-summary": "{{notranslate}}\nThe summary displayed at the top of [[Special:Mostimages]]. [[mw:Manual:Interface/Special pages summary|mw manual]].",
     "mostinterwikis": "{{doc-special|MostInterwikis}}",
+    "mostinterwikis-summary": "{{doc-specialpagesummary|mostinterwikis}}",
     "mostrevisions": "{{doc-special|MostRevisions}}",
     "mostrevisions-summary": "{{notranslate}}\nThe summary displayed at the top of [[Special:Mostrevisions]]. [[mw:Manual:Interface/Special pages summary|mw manual]].",
     "prefixindex": "{{doc-special|PrefixIndex}}\nWhen the user limits the list to a certain namespace, {{msg-mw|allinnamespace}} is used instead.",
     "protectedpages-reason": "This is a column header in the table on the page [[Special:ProtectedPages]].\n{{Identical|Reason}}",
     "protectedpages-unknown-timestamp": "This is shown, when the date and time is unknown for a protection on the page [[Special:ProtectedPages]].\n{{Identical|Unknown}}",
     "protectedpages-unknown-performer": "This is shown, when the protecting user is unknown for a protection on the page [[Special:ProtectedPages]].",
+    "protectedpages-unknown-reason": "{{ignored}}Comment used for extremely old protection log events (before there was a reason field).",
     "protectedtitles": "{{doc-special|ProtectedTitles}}",
     "protectedtitles-summary": "Summary of [[Special:ProtectedTitles]].\n\nSee also:\n* {{msg-mw|Protectedpages-summary}}",
     "protectedtitlesempty": "Used on [[Special:ProtectedTitles]]. This text appears if the list of protected titles is empty. See the [[mw:Project:Protected_titles|help page on MediaWiki]] for more information.",
     "newpages-summary": "{{notranslate}}\nThe summary displayed at the top of [[Special:Newpages]]. [[mw:Manual:Interface/Special pages summary|mw manual]].",
     "newpages-username": "{{Identical|Username}}",
     "ancientpages": "{{doc-special|AncientPages}}\nSee [[mw:Manual:Interface/Special pages title|manual]].",
+    "ancientpages-summary": "{{doc-specialpagesummary|ancientpages}}",
     "move": "Name of Move tab. Should be in the imperative mood.\n\nSee also:\n* {{msg-mw|Move}}\n* {{msg-mw|Accesskey-ca-move}}\n* {{msg-mw|Tooltip-ca-move}}\n{{Identical|Move}}",
     "movethispage": "{{Identical|Move this page}}",
     "unusedimagestext": "Header message of [[Special:UnusedFiles]]",
     "suppress": "{{Identical|Oversight}}",
     "querypage-disabled": "On special pages that use expensive database queries but are not cacheable, this message is displayed when 'miser mode' is on (i.e. no expensive queries allowed).",
     "booksources": "{{doc-special|BookSources}}\n\n'''This message shouldn't be changed unless it has serious mistakes.'''\n\nIt's used as the page name of the configuration page of [[Special:BookSources]]. Changing it breaks existing sites using the default version of this message.\n\nSee also:\n* {{msg-mw|Booksources|title}}\n* {{msg-mw|Booksources-text|text}}",
+    "booksources-summary": "{{doc-specialpagesummary|booksources}}",
     "booksources-search-legend": "Box heading on [[Special:BookSources|book sources]] special page. The box is for searching for places where a particular book can be bought or viewed.",
     "booksources-isbn": "{{optional}}\nThis is a label that appears before a text input field on the Special:BookSources page.\n{{Identical|ISBN}}",
     "booksources-go": "Name of button in [[Special:BookSources]]\n\n{{Identical|Go}}",
     "log-title-wildcard": "* Appears in: [[Special:Log]]\n* Description: A check box to enable prefix search option",
     "showhideselectedlogentries": "Text of the button which brings up the [[mw:RevisionDelete|RevisionDelete]] menu on [[Special:Log]].",
     "allpages": "{{doc-special|AllPages}}\nFirst part of the navigation bar for the special page [[Special:AllPages]] and [[Special:PrefixIndex]].\nThe other parts are {{msg-mw|Prevpage}} and {{msg-mw|Nextpage}}.\n{{Identical|All pages}}",
+    "allpages-summary": "{{doc-specialpagesummary|allpages}}",
     "alphaindexline": "Used on [[Special:AllPages]] if the main namespace contains more than 960 pages. Indicates the page range displayed behind the link. \"from page $1 to page $2\". $1 is the source page name. $1 is the target page name.",
     "nextpage": "Third part of the navigation bar for the special page [[Special:AllPages]] and [[Special:PrefixIndex]]. $1 is a page title. The other parts are {{msg-mw|Allpages}} and {{msg-mw|Prevpage}}.\n\n{{Identical|Next page}}",
     "prevpage": "Second part of the navigation bar for the special page [[Special:AllPages]] and [[Special:PrefixIndex]]. $1 is a page title. The other parts are {{msg-mw|Allpages}} and {{msg-mw|Nextpage}}.\n\n{{Identical|Previous page}}",
     "cachedspecial-viewing-cached-ts": "Message notifying they are watching a cached page. This is a message displayed on special pages (contaning lists of pages with certain properties) that are served from the cache, as opposed to having been compiled run-time. This means that the displayed data may differ from the current situation.",
     "cachedspecial-refresh-now": "Link text pointing to the most recent version of the page.",
     "categories": "The page name of [[Special:Categories]].\n{{Identical|Category}}",
+    "categories-summary": "{{doc-specialpagesummary|categories}}",
     "categoriespagetext": "{{doc-important|Do not translate or change links.}}\nText displayed in [[Special:Categories]].\n\nIn order to translate \"Unused categories\" and \"wanted categories\" see {{msg-mw|Unusedcategories}} and {{msg-mw|Wantedcategories}}.\n\nParameters:\n* $1 - number of categories",
     "categoriesfrom": "Used as label for the input box in [[Special:Categories]].\n\nThis message follows the fieldset label {{msg-mw|categories}}, and is followed by the input box.",
     "special-categories-sort-count": "Commented out at this time.\n\nThis message is used on [[Special:Categories]] to sort the list by the number of members in the categories.\n\nSee also:\n* {{msg-mw|Special-categories-sort-abc}}",
     "special-categories-sort-abc": "Commented out at this time.\n\nThis message is used on [[Special:Categories]] to sort the list by the category name.\n\nSee also:\n* {{msg-mw|Special-categories-sort-count}}",
     "deletedcontributions": "The message is shown as a link on [[Special:SpecialPages]] to [[Special:DeletedContributions]].\n\n{{Identical|Deleted user contributions}}",
+    "deletedcontributions-summary": "{{doc-specialpagesummary|deletedcontributions}}",
     "deletedcontributions-title": "Title of [[Special:DeletedContributions]] (extension), a special page with a list of edits to pages which were deleted. Only viewable by sysops.\n\n{{Identical|Deleted user contributions}}",
     "sp-deletedcontributions-contribs": "Link to user's contributions on [[Special:DeletedContributions]].\n{{Identical|Contribution}}",
     "linksearch": "Title of [[Special:LinkSearch|special page]] and legend of fieldset on that page.\n\n{{Identical|External link}}",
+    "linksearch-summary": "{{doc-specialpagesummary|linksearch}}",
     "linksearch-pat": "Legend for input box on [[Special:LinkSearch]].",
     "linksearch-ns": "Legend for dropdown box on [[Special:LinkSearch|special page]].\n\n{{Identical|Namespace}}",
     "linksearch-ok": "Button label on [[Special:LinkSearch|special page]]e\n\n{{Identical|Search}}",
     "listusers-noresult": "identical with {{msg-mw|activeusers-noresult}}",
     "listusers-blocked": "Used on [[Special:ActiveUsers]] when a user has been blocked. Parameters:\n* $1 - (Optional) a user name for use with GENDER\n{{Identical|Blocked}}",
     "activeusers": "Title of [[Special:ActiveUsers]]",
+    "activeusers-summary": "{{doc-specialpagesummary|activeusers}}",
     "activeusers-intro": "Used as introduction in [[Special:ActiveUsers]]. Parameters:\n* $1 - number of days (<code>$wgActiveUserDays</code>)",
     "activeusers-count": "Used in [[Special:ActiveUsers]] to show the active user's recent action count in brackets ([]).\n* $1 is the number of recent actions\n* $2 is the user's name for use with GENDER (optional)\n* $3 is the maximum number of days of the RecentChangesList",
     "activeusers-from": "Used as label for checkbox in the form on [[Special:ActiveUsers]].\n\nidentical with {{msg-mw|listusersfrom}}\n\nSee also:\n* {{msg-mw|activeusers|legend for the form}}\n* {{msg-mw|activeusers-hidebots|label for checkbox}}\n* {{msg-mw|activeusers-hidesysops|label for checkbox}}",
     "listgrouprights-removegroup-self": "This is an individual right for groups, used on [[Special:ListGroupRights]].\n* $1 - the group names\n* $2 - the number of group names in $1",
     "listgrouprights-addgroup-self-all": "Used on [[Special:ListGroupRights]].\n{{Related|Listgrouprights}}",
     "listgrouprights-removegroup-self-all": "Used on [[Special:ListGroupRights]].\n{{Related|Listgrouprights}}",
+    "listgrouprights-namespaceprotection-header": "Shown on [[Special:ListGroupRights]] as the header for the namespace restrictions table.",
+    "listgrouprights-namespaceprotection-namespace": "Shown on [[Special:ListGroupRights]] as the 'namespace' column header for the namespace restrictions table.",
+    "listgrouprights-namespaceprotection-restrictedto": "Shown on [[Special:ListGroupRights]] as the 'right(s) allowing user to edit' column header for the namespace restrictions table.",
     "trackingcategories": "[[Special:TrackingCategories]] page implementing list of Tracking categories [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]].\n{{Identical|Tracking category}}",
     "trackingcategories-summary": "Description for [[Special:TrackingCategories]] page [[mw:Help:Tracking categories|tracking category]]",
     "trackingcategories-msg": "Header for the message column of the table on [[Special:TrackingCategories]]. This column lists the mediawiki message that controls the tracking category in question.\n{{Identical|Tracking category}}",
     "trackingcategories-name": "Header for the message column of the table on [[Special:TrackingCategories]]. This column lists the name of the tracking category in the content language.",
     "trackingcategories-desc": "Header for the message column of the table on [[Special:TrackingCategories]]. This column lists the inclusion criteria for the category.",
-    "noindex-category-desc": "No-index category-description. Shown on [[Special:TrackingCategories]]",
-    "index-category-desc": "Index category-description. Shown on [[Special:TrackingCategories]]",
-    "post-expand-template-inclusion-category-desc": "Post expand template inclusion category description. Shown on [[Special:TrackingCategories]]",
-    "post-expand-template-argument-category-desc": "Post expand template argument category description. Shown on [[Special:TrackingCategories]]",
-    "expensive-parserfunction-category-desc": "Expensive parserfunction category description. Shown on [[Special:TrackingCategories]]",
-    "broken-file-category-desc": "Broken file category description. Shown on [[Special:TrackingCategories]]",
-    "hidden-category-category-desc": "Hidden-category category description. Shown on [[Special:TrackingCategories]]",
+    "noindex-category-desc": "No-index category-description. Shown on [[Special:TrackingCategories]].\n\nSee also:\n* {{msg-mw|Noindex-category}}",
+    "index-category-desc": "Index category-description. Shown on [[Special:TrackingCategories]].\n\nSee also:\n* {{msg-mw|Index-category}}",
+    "post-expand-template-inclusion-category-desc": "Post expand template inclusion category description. Shown on [[Special:TrackingCategories]].\n\nSee also:\n* {{msg-mw|Post-expand-template-inclusion-category}}",
+    "post-expand-template-argument-category-desc": "Post expand template argument category description. Shown on [[Special:TrackingCategories]].\n\nSee also:\n* {{msg-mw|Post-expand-template-argument-category}}",
+    "expensive-parserfunction-category-desc": "Expensive parserfunction category description. Shown on [[Special:TrackingCategories]].\n\nSee also:\n* {{msg-mw|Expensive-parserfunction-category}}",
+    "broken-file-category-desc": "Broken file category description. Shown on [[Special:TrackingCategories]].\n\nSee also:\n* {{msg-mw|Broken-file-category}}",
+    "hidden-category-category-desc": "Hidden-category category description. Shown on [[Special:TrackingCategories]].\n\nSee also:\n* {{msg-mw|Hidden-category-category}}",
     "trackingcategories-nodesc": "Tracking category description not available message",
     "trackingcategories-disabled": "This message is used as the contents of the column \"Tracking category\" on [[Special:TrackingCategories]] when a particular tracking category has been disabled.",
     "mailnologin": "Used in [[Special:EmailUser]].\n\nUsed as title of the error message {{msg-mw|Mailnologintext}}.",
     "emailuser": "Link in the sidebar to send an e-mail to a user.\n\nSee also:\n* {{msg-mw|Emailuser}}\n* {{msg-mw|Accesskey-t-emailuser}}\n* {{msg-mw|Tooltip-t-emailuser}}",
     "emailuser-title-target": "{{doc-special|EmailUser|unlisted=1}}\nUsed when a user was given to e-mail. Parameters:\n* $1 - a plain text username, used for GENDER.",
     "emailuser-title-notarget": "{{doc-special|EmailUser|unlisted=1}}\nUsed when no user given to e-mail yet.",
+    "emailuser-summary": "{{doc-specialpagesummary|emailuser}}",
     "emailpage": "Title of special page [[Special:EmailUser]], when it is the destination of the sidebar link {{msg-mw|Emailuser}} on a user's page.",
     "emailpagetext": "This is the text that is displayed above the email form on [[Special:EmailUser]].\n\nSpecial:EmailUser appears when you click on the link \"Email this user\" in the sidebar, but only if there is an email address in the recipient's user preferences. If there isn't then the message {{msg-mw|Noemailtext}} will appear instead of Special:EmailUser.\n\nParameters:\n* $1 - username",
     "defemailsubject": "The default subject of EmailUser emails. Parameters:\n* $1 - the username of the user sending the email and can be used for GENDER",
     "usermessage-editor": "The user name for the user that is the editor of system messages. See [{{canonicalurl:Thread:Support/Message_info_please}} discussion on Support].",
     "usermessage-template": "{{optional}}",
     "watchlist": "{{Identical|Watchlist}}",
+    "watchlist-summary": "{{doc-specialpagesummary|watchlist}}",
     "mywatchlist": "Link at the upper right corner of the screen.\n\nSee also:\n* {{msg-mw|Mywatchlist}}\n* {{msg-mw|Accesskey-pt-watchlist}}\n* {{msg-mw|Tooltip-pt-watchlist}}\n{{Identical|Watchlist}}",
     "watchlistfor2": "Subtitle on [[Special:Watchlist]].\nParameters:\n* $1 - Username of current user\n* $2 - Tool links (View relevant changes | View and edit watchlist | Edit raw watchlist)\n{{Identical|For $1}}",
     "nowatchlist": "Displayed when there is no pages in the watchlist.",
     "restriction-level-autoconfirmed": "Used on [[Special:ProtectedPages]] and [[Special:ProtectedTitles]]. An option in the drop-down box 'Restriction level', and in brackets after each page name entry. See the [[mw:Project:Protected_titles|help page on MediaWiki]] and on [[meta:Protect|Meta]] for more information.\n\nSee also:\n*{{msg-mw|Restriction-level-sysop}}\n*{{msg-mw|Restriction-level-all}}",
     "restriction-level-all": "Used on [[Special:ProtectedPages]] and [[Special:ProtectedTitles]]. An option in the drop-down box 'Restriction level'. See the [[mw:Project:Protected_titles|help page on MediaWiki]] and on [[meta:Protect|Meta]] for more information.\n\nSee also:\n*{{msg-mw|Restriction-level-sysop}}\n*{{msg-mw|Restriction-level-autoconfirmed}}",
     "undelete": "{{doc-special|Undelete}}\nSee also:\n* {{msg-mw|Undelete}}\n* {{msg-mw|Accesskey-ca-undelete}}\n* {{msg-mw|Tooltip-ca-undelete}}\n{{Identical|View deleted pages}}",
+    "undelete-summary": "{{doc-specialpagesummary|undelete}}",
     "undeletepage": "Title of special page [[Special:Undelete]]. This special page is only visible to administrators.",
     "undeletepagetitle": "Used as introduction in [[Special:Undelete]]. Parameters:\n* $1 - page title",
     "viewdeletedpage": "Title of the [[Special:Undelete]].\n\n{{Identical|View deleted pages}}",
     "tooltip-namespace_association": "Used in [[Special:Recentchanges]] as a tooltip for the associated namespace checkbox.\n\nSee also:\n* {{msg-mw|Namespace association}}",
     "blanknamespace": "Name for main namespace (blank namespace) in drop-down menus at [[Special:RecentChanges]] and other special pages.\n{{Identical|Main}}",
     "contributions": "Display name for the 'User contributions', shown in the sidebar menu of all user pages and user talk pages.\n\nAlso the page name of the target page.\n\nThe target page shows an overview of the most recent contributions by a user.\n\nParameters:\n* $1 - username\n\nSee also:\n* {{msg-mw|Contributions}}\n* {{msg-mw|Accesskey-t-contributions}}\n* {{msg-mw|Tooltip-t-contributions}}",
+    "contributions-summary": "{{doc-specialpagesummary|contributions}}",
     "contributions-title": "{{Gender}}\nThe page title in your browser bar, but not the page title.\n\nParameters:\n* $1 - the username\nSee also:\n* {{msg-mw|Contributions}}",
     "mycontris": "In the personal urls page section - right upper corner.\n\nSee also:\n* {{msg-mw|Mycontris}}\n* {{msg-mw|Accesskey-pt-mycontris}}\n* {{msg-mw|Tooltip-pt-mycontris}}\n{{Identical|Contribution}}",
     "contribsub2": "Contributions for \"user\" (links). Parameters:\n* $1 is an IP address or a username, with a link which points to the user page (if registered user).\n* $2 is list of tool links. The list contains a link which has text {{msg-mw|Sp-contributions-talk}}.\n* $3 is a plain text username used for GENDER.\n{{Identical|For $1}}",
     "sp-contributions-newonly": "Used as checkbox label at [[Special:Mycontributions|Special:Contributions]].\n\n\"page creation\" means the \"first revision\" of a page.\n\nPreceded by {{msg-mw|Sp-contributions-toponly}}.",
     "sp-contributions-submit": "{{Identical|Search}}",
     "sp-contributions-explain": "{{optional}}",
-    "sp-contributions-footer": "{{notranslate}}",
-    "sp-contributions-footer-anon": "{{notranslate}}",
+    "sp-contributions-footer": "{{ignored}}This is the footer for users that are not anonymous or newbie on [[Special:Contributions]].",
+    "sp-contributions-footer-anon": "{{ignored}}This is the footer for anonymous users on [[Special:Contributions]].",
+    "sp-contributions-footer-newbies": "{{ignored}}This is the footer for newbie users on [[Special:Contributions]].",
+    "contributions-userdoesnotexist": "This message is used in [[Special:Contributions]]. It is used to tell the user that the name he searched for doesn\\'t exists. Parameters: \n* $1 is the name that was searched for",
     "whatlinkshere": "The text of the link in the toolbox (on the left, below the search menu) going to [[Special:WhatLinksHere]].\n\nSee also:\n* {{msg-mw|Whatlinkshere}}\n* {{msg-mw|Accesskey-t-whatlinkshere}}\n* {{msg-mw|Tooltip-t-whatlinkshere}}",
     "whatlinkshere-title": "Title of the special page [[Special:WhatLinksHere]]. This page appears when you click on the 'What links here' button in the toolbox. $1 is the name of the page concerned.",
+    "whatlinkshere-summary": "{{doc-specialpagesummary|whatlinkshere}}",
     "whatlinkshere-page": "{{Identical|Page}}",
     "linkshere": "This message is the header line of the [[Special:WhatLinksHere/$1]] page generated by clicking \"What links here\" in the sidebar toolbox.\n\nIt is followed by a navigation bar built using {{msg-mw|Viewprevnext}}.\n\nParameters:\n* $1 - page title",
     "nolinkshere": "Used in [[Special:WhatLinksHere]] if empty. Parameters:\n* $1 - page title\nSee also:\n* {{msg-mw|Nolinkshere-ns}}",
     "autoblockid": "Used as name of autoblock, instead of autoblocked IPs. Parameters:\n* $1 - autoblock ID",
     "block": "{{doc-special|Block}}\n{{Identical|Block user}}",
     "unblock": "{{doc-special|Unblock}}",
+    "unblock-summary": "{{doc-specialpagesummary|unblock}}",
     "blockip": "Used as the text of a link in the sidebar toolbox. Clicking this link takes you to [[Special:Block]], with a relevant username or IP address (e.g. \"Username\" on [[User talk:Username]], [[Special:Contributions/Username]], etc.) already filled in.\n\n{{Identical|Block user}}",
     "blockip-legend": "Legend/Header for the fieldset around the input form of [[Special:Block]].\n\n{{Identical|Block user}}",
     "blockiptext": "Used in the {{msg-mw|Blockip}} form in [[Special:Block]].\n\nRefers to {{msg-mw|Policy-url}}.\n\nThis message may follow the message {{msg-mw|Ipb-otherblocks-header}} and other block messages.\n\nSee also:\n* {{msg-mw|Unblockiptext}}",
     "blockipsuccesstext": "Used in [[Special:Block]].\nThe title (subject) for this message is {{msg-mw|Blockipsuccesssub}}.\n\nParameters:\n* $1 - username, can be used for GENDER",
     "ipb-blockingself": "Used as confirmation message in [[Special:Block]].\n\nSee also:\n* {{msg-mw|Ipb-confirmhideuser}}",
     "ipb-confirmhideuser": "Used as confirmation message in [[Special:Block]].\n\nSee also:\n* {{msg-mw|Ipb-blockingself}}",
+    "ipb-confirmaction": "Confirmation message displayed to users asking them to think again before really blocking someone.",
     "ipb-edit-dropdown": "Shown beneath the user block form on the right side. It is a link to {{msg-mw|Ipbreason-dropdown|notext=1}}.\n\nSee also:\n* {{msg-mw|Delete-edit-reasonlist}}\n* {{msg-mw|Protect-edit-reasonlist}}",
     "ipb-unblock-addr": "Used as page title in [[Special:Block]], if the target user is specified.\n\nParameters:\n* $1 - target username\n\nSee also:\n* {{msg-mw|Ipb-unblock}}",
     "ipb-unblock": "Used as page title in [[Special:Block]], if the target user is not specified.\n\nSee also:\n* {{msg-mw|Ipb-unblock-addr}}",
     "blocklist-by": "This is a column header in the table on the page [[Special:BlockList]].",
     "blocklist-params": "This is a column header in the table on the page [[Special:BlockList]].",
     "blocklist-reason": "This is a column header in the table on the page [[Special:BlockList]].\n\n{{Identical|Reason}}",
+    "blocklist-summary": "{{doc-specialpagesummary|blocklist}}",
     "ipblocklist-submit": "Used as Submit button text in the form on [[Special:BlockList]].\n\nSee also:\n* {{msg-mw|Ipblocklist-legend}}\n* {{msg-mw|Ipblocklist-submit}}\n{{Identical|Search}}",
     "ipblocklist-localblock": "[[File:Special IPBlockList new.png|thumb|Example]]\nUsed on [[Special:IPBlockList]] as header when global blocks exists too.",
     "ipblocklist-otherblocks": "[[File:Special IPBlockList new.png|thumb|Example]]\nUsed on [[Special:IPBlockList]] as header for other blocks, i.e. from GlobalBlocking or TorBlocks.\n\nParameters:\n* $1 - number of blocks\nSee also:\n* {{msg-mw|Ipb-otherblocks-header}}",
     "cant-see-hidden-user": "Used as (red) error message on [[Special:Block]] when you try to change (as sysop without the hideuser right) the block of a hidden user.",
     "ipbblocked": "Error message shown when a user tries to alter block settings when they are themselves blocked.",
     "ipbnounblockself": "Error message shown when a user without the <code>unblockself</code> right tries to unblock themself.",
+    "ipb-default-expiry": "{{ignored}}The default block expiry on the block form on [[Special:Block]].",
     "lockdb": "The title of the special page [[Special:LockDB]].\n\nAlso used as the title of the error message {{msg-mw|Databasenotlocked}} in [[Special:UnlockDB]].\n\nSee also:\n* {{msg-mw|Lockdb}}\n* {{msg-mw|Unlockdb}}\n* {{msg-mw|Lockfilenotwritable|error in Special:LockDB}}\n* {{msg-mw|Databasenotlocked|error in Special:UnlockDB}}\n{{Identical|Lock database}}",
     "unlockdb": "The title of the special page [[Special:UnlockDB]].\n\n{{Identical|Unlock database}}",
     "lockdbtext": "Used in the Lock form on [[Special:LockDB]].\n\nSee also:\n* {{msg-mw|Lockbtn}}\n* {{msg-mw|Unlockbtn}}\n* {{msg-mw|Lockdbtext}}\n* {{msg-mw|Unlockdbtext}}",
     "databasenotlocked": "Used as error message in [[Special:UnlockDB]].\nThe title of this error message is {{msg-mw|Lockdb}}.\n\nSee also:\n* {{msg-mw|Lockdb|title}}\n* {{msg-mw|Databasenotlocked|message}}",
     "lockedbyandtime": "Used as part of the message when a database is locked through [[Special:LockDB]]. Parameters:\n* $1 is the user that locked the database.\n* $2 is the date on which the lock was made\n* $3 is the time at which the lock was made",
     "move-page": "Used as page title of [[Special:MovePage]] to move pages.\n\nSee example: [[Special:MovePage/Portal:En]].\n\nParameters:\n* $1 - the name of the page to be moved (without link)",
+    "movepage-summary": "{{doc-specialpagesummary|movepage}}",
     "move-page-legend": "Legend of the fieldset around the input form of [[Special:MovePage/testpage]].\n\nSee also:\n* {{msg-mw|movearticle|label for old title}}\n* {{msg-mw|newtitle|label for new title}}\n* {{msg-mw|movereason|label for textarea}}\n* {{msg-mw|movetalk|label for checkbox}}\n* {{msg-mw|move-leave-redirect|label for checkbox}}\n* {{msg-mw|fix-double-redirects|label for checkbox}}\n* {{msg-mw|move-subpages|label for checkbox}}\n* {{msg-mw|move-talk-subpages|label for checkbox}}\n* {{msg-mw|move-watch|label for checkbox}}\n{{Identical|Move page}}",
     "movepagetext": "Introduction shown when moving a page ([[Special:MovePage]]).\n\nSpecial pages mentioned: {{msg-mw|Doubleredirects}}, {{msg-mw|Brokenredirects}}\n\nSee also:\n* {{msg-mw|Movepagetext-noredirectfixer}}",
     "movepagetext-noredirectfixer": "A variant of the following message ''Movepagetext'' displayed when the automatic redirect fixer is not enabled.\n\nSpecial pages mentioned: {{msg-mw|Doubleredirects}}, {{msg-mw|Brokenredirects}}\n\nSee also:\n* {{msg-mw|Movepagetext}}",
     "movesubpagetext": "Used in [[Special:MovePage]]. Parameters:\n* $1 - number of subpages\nSee also:\n* {{msg-mw|movesubpage|section header}}\n* {{msg-mw|movenosubpage|without subpage}}",
     "movenosubpage": "See also:\n* {{msg-mw|movesubpage|section header}}\n* {{msg-mw|movenosubpage|without subpage}}\n* {{msg-mw|movesubpagetext|with subpages}}",
     "movereason": "Used in [[Special:MovePage]]. The text for the inputbox to give a reason for the page move.\n\nSee also:\n* {{msg-mw|Move-page-legend|legend for the form}}\n* {{msg-mw|Movearticle|label for old title}}\n* {{msg-mw|Newtitle|label for new title}}\n* {{msg-mw|Movetalk|label for checkbox}}\n* {{msg-mw|Move-leave-redirect|label for checkbox}}\n* {{msg-mw|Fix-double-redirects|label for checkbox}}\n* {{msg-mw|Move-subpages|label for checkbox}}\n* {{msg-mw|Move-talk-subpages|label for checkbox}}\n* {{msg-mw|Move-watch|label for checkbox}}\n{{Identical|Reason}}",
+    "move-redirect-text": "{{ignored}}The text that's added to a redirected page when that redirect is created.",
     "revertmove": "{{Identical|Revert}}",
     "delete_and_move": "Button text on the move page when the target page already exists.",
     "delete_and_move_text": "Used when moving a page, but the destination page already exists and needs deletion.\n\nThis message is to confirm that you really want to delete the page.\n\nParameters:\n* $1 - the destination page title\n\nSee also:\n* {{msg-mw|Delete and move confirm}}",
     "move-over-sharedrepo": "Notice when a file with that filename already exists on a shared repository, such as Wikimedia Commons.\n\nParameters:\n* $1 - the destination page title",
     "file-exists-sharedrepo": "Used in [[Special:MovePage]].",
     "export": "Page title of [[Special:Export]], a page where a user can export pages from a wiki to a file.",
+    "export-summary": "{{doc-specialpagesummary|export}}",
     "exporttext": "{{doc-important|Leave the line <code><nowiki>[[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]</nowiki></code> exactly as it is!}}\nMain text on [[Special:Export]].\n\nRefers to {{msg-mw|Mainpage}}.",
     "exportall": "A label of checkbox option in [[Special:Export]]",
     "exportcuronly": "A label of checkbox option in [[Special:Export]]",
     "thumbnail_image-missing": "This is the parameter 1 of the message {{msg-mw|thumbnail error}}.\n*$1 is the path incl. filename of the missing image",
     "thumbnail_image-failure-limit": "Used as <code>$1</code> in {{msg-mw|Thumbnail error}}.\n\nParameters:\n* $1 - the maximum allowed number of failed attempts",
     "import": "The title of the special page [[Special:Import]];",
+    "import-summary": "{{doc-specialpagesummary|import}}",
     "importinterwiki": "Used as legend for the Import form in [[Special:Import]].",
     "import-interwiki-text": "Used as summary for the Import form in [[Special:Import]].",
     "import-interwiki-source": "Used as label for input box in [[Special:Import]].",
     "importuploaderrorsize": "Used as error message when importing from file.\n\nSee also:\n* {{msg-mw|importnofile}}\n* {{msg-mw|importuploaderrorpartial}}\n* {{msg-mw|importuploaderrortemp}}",
     "importuploaderrorpartial": "Used as error message when importing from file.\n\nSee also:\n* {{msg-mw|importnofile}}\n* {{msg-mw|importuploaderrorsize}}\n* {{msg-mw|importuploaderrortemp}}",
     "importuploaderrortemp": "Used as error message when importing from file.\n\nSee also:\n* {{msg-mw|importnofile}}\n* {{msg-mw|importuploaderrorsize}}\n* {{msg-mw|importuploaderrorpartial}}",
+    "import-parse-failure": "Error message shown when importing one or more pages to the wiki via an XML file, if the import failed because the XML in the file could not be parsed.",
     "import-noarticle": "Used as error message when importing from interwiki.\n\nSee also:\n* {{msg-mw|Import-noarticle}}\n* {{msg-mw|Importbadinterwiki}}",
     "import-nonewrevisions": "Used in [[Special:Import]].",
     "xml-error-string": "Parameters:\n* $1 - Some kind of message, perhaps name of the error?\n* $2 - line number\n* $3 - column number\n* $4 - ?? $this->mByte . $this->mContext\n* $5 - error description\nExample:\n* Import failed: XML import parse failure at line 1, col 1 (byte 3; \"- <mediawiki xml\"): Empty document",
     "accesskey-watchlistedit-normal-submit": "{{doc-accesskey|watchlistedit-normal-submit}}\nSee also:\n* {{msg-mw|Watchlistedit-normal-submit}}\n* {{msg-mw|Accesskey-watchlistedit-normal-submit}}\n* {{msg-mw|Tooltip-watchlistedit-normal-submit}}",
     "accesskey-watchlistedit-raw-submit": "{{doc-accesskey|watchlistedit-raw-submit}}\nSee also:\n* {{msg-mw|Watchlistedit-raw-submit}}\n* {{msg-mw|Accesskey-watchlistedit-raw-submit}}\n* {{msg-mw|Tooltip-watchlistedit-raw-submit}}",
     "tooltip-pt-userpage": "Tooltip shown when hovering the mouse over the link to your own User page in the upper-side personal toolbox.\n\nSee also:\n<!--* username-->\n* {{msg-mw|Accesskey-pt-userpage}}\n* {{msg-mw|Tooltip-pt-userpage}}",
+    "tooltip-pt-anonuserpage": "Tooltip for a link to the user page of the current anonymous user.",
     "tooltip-pt-mytalk": "Tooltip shown when hovering over the {{msg-mw|Mytalk}} link in your personal toolbox (upper right side).\n\nSee also:\n* {{msg-mw|Mytalk}}\n* {{msg-mw|Accesskey-pt-mytalk}}\n* {{msg-mw|Tooltip-pt-mytalk}}",
     "tooltip-pt-anontalk": "Used as tooltip for link {{msg-mw|Anontalk}}.\n\nSee also:\n* {{msg-mw|Anontalk}}\n* {{msg-mw|Accesskey-pt-anontalk}}\n* {{msg-mw|Tooltip-pt-anontalk}}",
     "tooltip-pt-preferences": "Tooltip shown when hovering over the {{msg-mw|Mypreferences}} link in your personal toolbox (upper right side).\n\nSee also:\n* {{msg-mw|Mypreferences}}\n* {{msg-mw|Accesskey-pt-preferences}}\n* {{msg-mw|Tooltip-pt-preferences}}\n{{Identical|Preferences}}",
     "tooltip-preferences-save": "Used as tooltip for Save button.\n\nSee also:\n* {{msg-mw|Saveprefs}}\n* {{msg-mw|Accesskey-preferences-save}}\n* {{msg-mw|Tooltip-preferences-save}}",
     "tooltip-summary": "Used as tooltip for Summary input box in Editor page.\n\nSee also:\n* {{msg-mw|Summary}}\n* {{msg-mw|Accesskey-summary}}\n* {{msg-mw|Tooltip-summary}}",
     "interlanguage-link-title": "{{Optional}}\nFormat of a sidebar interwiki link tooltip. Parameters:\n* $1 - page name in the target wiki\n* $2 - target wiki language autonym",
+    "interlanguage-link-title-langonly": "{{ignored}}Interlanguage link title. Parameters: $1 replaced with a language name.",
     "common.css": "{{optional}}\nCSS applied to all users.",
     "cologneblue.css": "{{optional}}",
     "monobook.css": "{{optional}}\nCSS applied to users using Monobook skin.",
     "spam_blanking": "Edit summary for spam cleanup script.\n\nUsed when a page is blanked (made to have no content, but still exist) because the script could not find an appropriate revision to set the page to.\n\nParameters:\n* $1 - a spammed domain name",
     "spam_deleting": "Edit summary for spam cleanup script.\n\nUsed when a page is deleted because all revisions contained a particular link.\n\nParameters:\n* $1 - a spammed domain name",
     "simpleantispam-label": "Used as label for the input box in \"Edit\" page.\n\nThe label and the input box are always hidden.",
+    "pageinfo-header": "{{ignored}}Custom text for the top of the info page (action=info).",
     "pageinfo-title": "Page title for action=info. Parameters:\n* $1 is the page name",
     "pageinfo-not-current": "Error message displayed when information for an old revision is requested. Example: [{{fullurl:Project:News|oldid=4266597&action=info}}]",
     "pageinfo-header-basic": "Table section header in action=info. See [{{canonicalurl:MediaWiki:Pageinfo-header-basic/en|action=info}} example].\n{{Identical|Basic information}}",
     "pageinfo-hidden-categories": "The list of hidden categories on the page. Parameters:\n* $1 - the number of hidden categories on the page\n{{Identical|Hidden category}}",
     "pageinfo-templates": "The list of templates transcluded within the page. Parameters:\n* $1 is the number of templates transcluded within the current page.\nSee also:\n* {{msg-mw|Pageinfo-transclusions}}",
     "pageinfo-transclusions": "The list of pages on which this page is transcluded. Parameters:\n* $1 is the number of pages the current page is transcluded on.\nSee also:\n* {{msg-mw|Pageinfo-templates}}",
+    "pageinfo-footer": "{{ignored}}Custom text for the bottom of the info page (action=info).",
     "pageinfo-toolboxlink": "Information link for the page (like 'What links here', but to action=info for the current page instead)",
     "pageinfo-redirectsto": "Key for the row shown if this page is a redirect. Verb. See [{{canonicalurl:w:Main_page|action=info}} example].",
     "pageinfo-redirectsto-info": "Text to put in parentheses for the link to the action=info of the redirect target.\n{{Identical|Info}}",
     "exif-contrast": "{{Related|Exif-contrast}}",
     "exif-saturation": "{{Related|Exif-saturation}}",
     "exif-sharpness": "{{Related|Exif-sharpness}}",
+    "exif-devicesettingdescription": "The section header shown above device settings extracted from a file's EXIF data on the file's page.",
     "exif-subjectdistancerange": "{{Related|Exif-subjectdistancerange}}",
     "exif-imageuniqueid": "A unique identifier for the image in the form of a 128-bit hexadecimal string. See http://www.exif.org/Exif2-2.PDF for details on exif properties.",
     "exif-gpsversionid": "Version of the GPS IFD used to store location information. This is usually 2.2.0.0",
     "exif-gpsaltituderef": "No longer used except for when using foreign image repository with old version of mediawiki. 0 for above sea level, 1 for below sea level.",
     "exif-gpsaltitude": "Altitude in meters that the image was taken at.",
     "exif-gpstimestamp": "Time (does not include date) that GPS measurement was taken, in UTC. Since often this is at the same time as photo was taken, this is sometimes more reliable than {{msg-mw|exif-datetimeoriginal}}.",
+    "exif-gpssatellites": "Label for EXIF information. Indicates the GPS satellites used for measurements.",
     "exif-gpsstatus": "See also:\n* {{msg-mw|Exif-gpsstatus-a}}\n* {{msg-mw|Exif-gpsstatus-v}}",
     "exif-gpsmeasuremode": "Is the measurement 2D (latitude and longitude) or 3D (latitude, longitude, and altitude).\n\nSee also:\n* {{msg-mw|Exif-gpsmeasuremode-2}}\n* {{msg-mw|Exif-gpsmeasuremode-3}}",
     "exif-gpsdop": "How accurate the GPS information is. See http://en.wikipedia.org/wiki/Dilution_of_precision_(GPS)\n{{Related|Exif-gpsdop}}",
     "exif-gpstrack": "See also:\n* {{msg-mw|Exif-gpstrackref}}\n* {{msg-mw|Exif-gpsimgdirection}}\n* {{msg-mw|Exif-gpsimgdirectionref}}\n* {{msg-mw|Exif-gpsdestbearing}}\n* {{msg-mw|Exif-gpsdestbearingref}}",
     "exif-gpsimgdirectionref": "See also:\n* {{msg-mw|Exif-gpstrack}}\n* {{msg-mw|Exif-gpstrackref}}\n* {{msg-mw|Exif-gpsimgdirection}}\n* {{msg-mw|Exif-gpsdestbearing}}\n* {{msg-mw|Exif-gpsdestbearingref}}",
     "exif-gpsimgdirection": "See also:\n* {{msg-mw|Exif-gpstrack}}\n* {{msg-mw|Exif-gpstrackref}}\n* {{msg-mw|Exif-gpsimgdirectionref}}\n* {{msg-mw|Exif-gpsdestbearing}}\n* {{msg-mw|Exif-gpsdestbearingref}}",
+    "exif-gpsmapdatum": "Label for EXIF information. Indicates the geodetic survey data used by the GPS receiver.",
     "exif-gpsdestlatituderef": "{{Related|Exif-gpslatitude}}",
     "exif-gpsdestlatitude": "The latitude of the location shown in the picture, if it is different from latitude of the camera location. See {{msg-mw|exif-gpslatitude}}.\n{{Related|Exif-gpslatitude}}\n{{Identical|Latitude}}",
     "exif-gpsdestlongituderef": "{{Related|Exif-gpslatitude}}",
     "exif-gpsdestbearing": "See also:\n* {{msg-mw|Exif-gpstrack}}\n* {{msg-mw|Exif-gpstrackref}}\n* {{msg-mw|Exif-gpsimgdirection}}\n* {{msg-mw|Exif-gpsimgdirectionref}}\n* {{msg-mw|Exif-gpsdestbearingref}}",
     "exif-gpsdestdistanceref": "I think \"reference\" stands for \"unit\". See {{msg-mw|Exif-gpsspeedref}}\n{{Related|Exif-gpsdestdistance}}",
     "exif-gpsdestdistance": "{{Related|Exif-gpsdestdistance}}",
+    "exif-gpsprocessingmethod": "Label for EXIF information. A character string recording the name of the method used for location finding.",
+    "exif-gpsareainformation": "Label for EXIF information. Contains a character string recording the name of the GPS area.",
     "exif-gpsdatestamp": "Date (does not generally include time unless recorded in XMP) that GPS measurement was taken, in UTC. Since often this is at the same date as photo was taken, this is sometimes more reliable than {{msg-mw|exif-datetimeoriginal}}.",
+    "exif-gpsdifferential": "Label for EXIF information. Indicates whether differential correction is applied to the GPS receiver.",
     "exif-coordinate-format": "{{optional}}\nFor formatting GPS latitude coordinates. Parameters:\n* $1 - degrees\n* $2 - minutes\n* $3 - seconds (up to two decimal places)\n* $4 - direction (N, S, W, or E)\n* $5 - (Unused) coordinate as a single positive or negative real number",
     "exif-jpegfilecomment": "This is not a true exif tag, but the contents of the JPEG COM segment. This often contains a file source, but can potentially contain any comment about the file. This is similar to {{msg-mw|exif-usercomment}}, {{msg-mw|exif-pngfilecomment}}, and {{msg-mw|exif-giffilecomment}}.",
     "exif-keywords": "List of keywords for the photograph (or other media).\n\nThis can come from IPTC-iim 2:25 keyword field, or XMP's dc:subject field.",
     "livepreview-error": "Used as error message. Parameters:\n* $1 - ...\n* $2 - ...\nSee also:\n* {{msg-mw|Livepreview-failed}}\n* {{msg-mw|Livepreview-error}}",
     "lag-warn-normal": "Used as warning about slave lag. Parameters:\n* $1 - number of seconds\nSee also:\n* {{msg-mw|Lag-warn-high}}",
     "lag-warn-high": "Used as warning about slave lag. Parameters:\n* $1 - number of seconds\nSee also:\n* {{msg-mw|Lag-warn-normal}}",
+    "editwatchlist-summary": "{{doc-specialpagesummary|editwatchlist}}",
     "watchlistedit-numitems": "Message on [[Special:EditWatchlist]]. This is paired with the message {{Msg-mw|Watchlistedit-noitems}} which appears instead of this message when $1 is 0.",
     "watchlistedit-noitems": "Message on [[Special:EditWatchlist]], which only appears when a user's watchlist is empty.",
     "watchlistedit-normal-title": "Title of [[Special:Watchlist/edit|special page]].",
     "unknown_extension_tag": "This is an error shown when you use an unknown extension tag name.\n\nThis feature allows tags like <code><nowiki><pre></nowiki></code> to be called with a parser like <code><nowiki>{{#tag:pre}}</nowiki></code>.\n\nParameters:\n* $1 - the unknown extension tag name",
     "duplicate-defaultsort": "See definition of [[w:Sorting|sort key]] on Wikipedia. Parameters:\n* $1 - old default sort key\n* $2 - new default sort key",
     "version": "{{doc-special|Version}}\n{{Identical|Version}}",
+    "version-summary": "{{doc-specialpagesummary|version}}",
     "version-extensions": "Header on [[Special:Version]].",
     "version-specialpages": "Part of [[Special:Version]].\n{{Identical|Special page}}",
     "version-parserhooks": "This message is a heading at [[Special:Version]] for extensions that modifies the parser of wikitext.",
     "version-software": "Message shown on [[Special:Version]].\nThis message is followed by the list of installed software (MediaWiki, PHP and MySQL).",
     "version-software-product": "Shown in [[Special:Version]].\n{{Identical|Product}}",
     "version-software-version": "{{Identical|Version}}",
+    "version-db-mysql-url": "{{ignored}}URL to the website of MySQL",
+    "version-db-mariadb-url": "{{ignored}}URL to the website of MariaDB",
+    "version-db-percona-url": "{{ignored}}URL to the website of Percona",
+    "version-db-postgres-url": "{{ignored}}URL to the website of PostgreSQL",
+    "version-db-oracle-url": "{{ignored}}URL to the website of Oracle",
+    "version-db-sqlite-url": "{{ignored}}URL to the website of SQLite",
+    "version-db-mssql-url": "{{ignored}}URL to the website of Microsoft SQL Server",
     "version-entrypoints": "Header on [[Special:Version]] above a table that lists the URLs of various entry points in this MediaWiki installation. Entry points are the \"places\" where the wiki's content and information can be accessed in various ways, for instance the standard index.php which shows normal pages, histories etc.",
     "version-entrypoints-header-entrypoint": "Header for the first column in the entry points table on [[Special:Version]].\nSee also {{msg-mw|Version-entrypoints}}",
     "version-entrypoints-header-url": "Header for the second column in the entry points table on [[Special:Version]].\n{{Identical|URL}}",
     "fileduplicatesearch-result-n": "Result line after the list of files of [[Special:FileDuplicateSearch]]\n\n* $1 is the name of the requested file.\n* $2 is the number of identical duplicates of the requested file",
     "fileduplicatesearch-noresults": "Parameters:\n* $1 - file name",
     "specialpages": "{{doc-special|SpecialPages|unlisted=1}}\nDisplay name of link to [[Special:SpecialPages]] shown on all pages in the toolbox.\n\nSee also:\n* {{msg-mw|Specialpages}}\n* {{msg-mw|Accesskey-t-specialpages}}\n* {{msg-mw|Tooltip-t-specialpages}}\n{{Identical|Special page}}",
+    "specialpages-summary": "{{doc-specialpagesummary|specialpages}}",
     "specialpages-note-top": "Heading for {{msg-mw|specialpages-note}}.\n{{Identical|Legend}}",
     "specialpages-note": "Footer note for the [[Special:SpecialPages]] page",
     "specialpages-group-maintenance": "{{doc-special-group|like=[[Special:DoubleRedirects]], [[Special:LonelyPages]] and [[Special:WantedPages]]}}",
     "intentionallyblankpage": "Text displayed in [[Special:BlankPage]].\n\nSee also:\n* {{msg-mw|Intentionallyblankpage|page title}}",
     "external_image_whitelist": "As usual please leave all the wiki markup, including the spaces, as they are. You can translate the text, including 'Leave this line exactly as it is'. The first line of this messages has one (1) leading space.\n\nSee definition of [[w:Regular_expression|regular expression]] on Wikipedia.",
     "tags": "Shown on [[Special:Specialpages]] for page listing the tags that the software may mark an edit with, and their meaning. For more information on tags see [[mw:Manual:Tags|MediaWiki]].\n\nIt appears that the word 'valid' describes 'tags', not 'change'. It also appears that you could use the term 'defined' instead of 'valid', or perhaps use a phrase meaning 'The change tags that are in use'.",
+    "tags-summary": "{{doc-specialpagesummary|tags}}",
     "tag-filter": "Caption of a filter shown on lists of changes (e.g. [[Special:Log]], [[Special:Contributions]], [[Special:Newpages]], [[Special:Recentchanges]], [[Special:Recentchangeslinked]], page histories)",
     "tag-filter-submit": "Caption of the submit button displayed next to the tag filter on lists of changes (e.g. [[Special:Log]], [[Special:Contributions]], [[Special:Newpages]], [[Special:Recentchanges]], [[Special:Recentchangeslinked]], page histories)\n\n{{Identical|Filter}}",
     "tag-list-wrapper": "Wrapper for the list of tags shown on recent changes, watchlists, history pages and diffs.\n\nParameters:\n* $1 - number of distinct tags for given edit\n* $2 - comma-separated list of tags for given edit",
     "tags-edit": "Used on [[Special:Tags]]. Verb. Used as display text on a link to create/edit a description.\n{{Identical|Edit}}",
     "tags-hitcount": "Shown in the \"{{msg-mw|Tags-hitcount-header}}\" column in [[Special:Tags]]. For more information on tags see [[mw:Manual:Tags|MediaWiki]].\n\nParameters:\n* $1 - the number of changes marked with the tag",
     "comparepages": "The title of [[Special:ComparePages]]",
+    "comparepages-summary": "{{doc-specialpagesummary|comparepages}}",
     "compare-page1": "Label for the field of the 1st page in the comparison for [[Special:ComparePages]]\n{{Identical|Page}}",
     "compare-page2": "Label for the field of the 2nd page in the comparison for [[Special:ComparePages]]\n{{Identical|Page}}",
     "compare-rev1": "Label for the field of the 1st revision in the comparison for [[Special:ComparePages]]\n{{Identical|Revision}}",
     "patrol-log-diff": "The text of the diff link in {{msg-mw|Patrol-log-line}} (inside <code>$1</code> there).\n\nParameters:\n* $1 - revision ID\n{{Identical|Revision}}",
     "1movedto2": "{{ignored}}This is ''logentry'' message only used on IRC. Parameters:\n* $1 - the original page name\n* $2 - the destination page name\nSee also:\n* {{msg-mw|1movedto2 redir}}",
     "1movedto2_redir": "{{ignored}}This is ''logentry'' message only used on IRC. Parameters:\n* $1 - the original page name\n* $2 - the destination page name\nSee also:\n* {{msg-mw|1movedto2}}",
+    "move-redirect-suppressed": "{{ignored}}Message unused?",
     "newuserlog-create-entry": "Part of the \"Newuserlog\" extension. It is the summary in the [[Special:RecentChanges|recent changes]] and on [[Special:Log/newusers]].",
     "newuserlog-create2-entry": "Part of the \"Newuserlog\" extension.\n\nIt is the summary in the [[Special:RecentChanges|recent changes]] and on [[Special:Log/newusers]] when creating an account for someone else (\"$1\").\n\nPreceded by the name of the user doing this task.\n\nParameters:\n* $1 - username",
     "newuserlog-autocreate-entry": "This message is used in the [[:mw:Extension:Newuserlog|new user log]] to mark an account that was created by MediaWiki as part of a [[:mw:Extension:CentralAuth|CentralAuth]] global account.",
index 0f55f36..14289ec 100644 (file)
     "disclaimers": "Infurmaziòn legêli",
     "disclaimerpage": "Project: Avìs generèl",
     "edithelp": "Livar dal spiegaziòn",
-    "helppage": "Help:Tòt j argumént",
     "mainpage": "Prèma Pagina",
     "privacy": "Léz sora agli infurmaziòn persunèli",
     "privacypage": "Project: Léz sora agli infurmaziòn persunèli",
index 93712c6..b91e233 100644 (file)
     "disclaimers": "Ismigilen",
     "disclaimerpage": "Project:Asmigel amatu",
     "edithelp": "Tallalt deg uẓareg",
-    "helppage": "Help:Tira d yiwlafen",
     "mainpage": "Tasna Tamezwarut",
     "mainpage-description": "Tasna Tamezwarut",
     "portal": "Tawwart n timetti",
index 0d836da..d49f434 100644 (file)
@@ -7,7 +7,8 @@
             "Kazu89",
             "Shirayuki",
             "Urhixidur",
-            "לערי ריינהארט"
+            "לערי ריינהארט",
+            "Davent"
         ]
     },
     "tog-underline": "Suttastritgar colliaziuns:",
@@ -72,7 +73,7 @@
     "january": "schaner",
     "february": "favrer",
     "march": "mars",
-    "april": "avril",
+    "april": "avrigl",
     "may_long": "matg",
     "june": "zercladur",
     "july": "fanadur",
@@ -84,7 +85,7 @@
     "january-gen": "schaner",
     "february-gen": "favrer",
     "march-gen": "mars",
-    "april-gen": "avril",
+    "april-gen": "avrigl",
     "may-gen": "matg",
     "june-gen": "zercladur",
     "july-gen": "fanadur",
     "accountcreatedtext": "Il conto d'utilisader [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) è vegnì creà.",
     "createaccount-title": "Crear in conto per {{SITENAME}}",
     "createaccount-text": "Insatgi ha creà in conto d'utilisader per tia adressa dad e-mail sin {{SITENAME}} ($4). Il pled-clav generà automaticamain per l'utilisader «$2» è «$3». Ti ta duessas t'annunzar uss e midar tes pled-clav. \n\nSche ti na levas betg crear quest conto d'utilisader pos ti ignorar quest e-mail.",
-    "usernamehasherror": "Il num d'utilisader na po betg cuntegnair il segn da rauta (#)",
     "login-throttled": "Ti has empruvà memia savens da t'annunziar.\nSpetga $1 avant ch'empruvar anc ina giada.",
     "login-abort-generic": "Annunzia senza success - Annullà",
     "loginlanguagelabel": "Lingua: $1",
     "prefs-skin": "Skin",
     "skin-preview": "Prevista",
     "datedefault": "Nagina preferenza",
-    "prefs-datetime": "Data e temp",
     "prefs-labs": "Funcziuns experimentalas",
     "prefs-user-pages": "Paginas dad utilisader",
     "prefs-personal": "Profil da l'utilisader",
     "upload-permitted": "Tips da datotecas lubids: $1.",
     "upload-preferred": "Tips da datotecas preferids: $1.",
     "upload-prohibited": "Tips da datotecas betg lubids: $1.",
-    "uploadlog": "protocol da datotecas chargiadas si",
     "uploadlogpage": "Protocol da datotecas chargiadas si",
     "uploadlogpagetext": "Quai è ina glista da las datotecas ch'èn vegnidas chargiadas si sco ultimas.\nGuarda era la [[Special:NewFiles|galleria da novas datotecas]] per ina survista pli visuala.",
     "filename": "Num da datoteca",
     "filereuploadsummary": "Midadas da la datoteca:",
     "filestatus": "Status dals dretgs d'autur:",
     "filesource": "Funtauna:",
-    "uploadedfiles": "Datotecas chargiadas si",
     "ignorewarning": "Ignorar l'avertiment e memorisar la datoteca",
     "ignorewarnings": "Ignorar tut ils avertiments (Warnung)",
     "minlength1": "Nums da datotecas ston esser almain in bustab lung.",
     "overwroteimage": "ha chargià si ina nova versiun da \"[[$1]]\"",
     "uploaddisabled": "Chargiar si è deactivà.",
     "copyuploaddisabled": "Il transferir per URL è deactivà.",
-    "uploadfromurl-queued": "Tia datoteca per transferir è vegnida agiuntada a la colonna da spetga.",
     "uploaddisabledtext": "La funcziun da chargiar si datotecas è deactivada.",
     "php-uploaddisabledtext": "La funcziun da chargiar si datotecas è deactivada en PHP. \nControllescha per plaschair l'opziun <code>file_uploads</code>.",
     "uploadscripted": "Questa datoteca cuntegna HTML u code da scripts che pudess vegnir exequì per sbagl dal navigatur.",
     "upload-misc-error": "Errur da transferir nunenconuschenta",
     "upload-misc-error-text": "Ina errur nunenconuschenta è capitada durant transferir. \nControllescha per plaschair che l'URL è valida ed accessibla ed emprova anc ina giada.\nSch'il problem exista anc adina, contactescha in [[Special:ListUsers/sysop|administratur]].",
     "upload-too-many-redirects": "La URL ha cuntegnì memia blers renviaments",
-    "upload-unknown-size": "Grondezza nunenconuschenta",
     "upload-http-error": "In sbagl da HTTP è capità: $1",
     "upload-copy-upload-invalid-domain": "Transferir copias n'è betg pussaivel sin questa domain.",
     "backend-fail-stream": "Impussibel da leger la datoteca $1.",
     "img-auth-streaming": "Stream da \"$1\".",
     "img-auth-public": "La funcziun da img_auth.php è da returnar datotecas d'in vichi privat.\nQuest vichi è configurà sco public.\nPer cuntanscher segirezza opgimala è img_auth.php deactivà.",
     "img-auth-noread": "L'utilisader n'ha betg access da leger \"$1\".",
-    "img-auth-bad-query-string": "L'URL ha in string da query nunvalid.",
     "http-invalid-url": "URL nunvalida: $1",
     "http-invalid-scheme": "URLs dal schema \"$1\" na vegnan betg sustegnidas.",
     "http-request-error": "La damonda HTTP n'è betg reussida causa ina errur nunenconuschenta.",
     "filehist-dimensions": "dimensiuns",
     "filehist-filesize": "grondezza da datoteca",
     "filehist-comment": "commentari",
-    "filehist-missing": "Datoteca manca",
     "imagelinks": "Utilisaziun da la datoteca",
     "linkstoimage": "{{PLURAL:$1|La suandanta pagina è colliada|Las suandantas $1 paginas èn colliadas}} cun questa datoteca:",
     "linkstoimage-more": "Dapli che {{PLURAL:$1|ina pagina è colliada|$1 paginas èn colliadas}} a questa datoteca.\nLa suandanta glista mussa be {{PLURAL:$1|l'emprima colliaziun|las emprimas $1 colliaziuns}} a questa pagina.\nIna [[Special:WhatLinksHere/$2|glista cumpletta]] è disponibla",
     "emailuser-title-notarget": "Trametter in e-mail a l'utilisader",
     "emailpage": "Trametter in e-mail a l'utilisader",
     "emailpagetext": "Ti pos utilisar il formular sutvart per trametter in'e-mail a {{GENDER:$1|quest utilisader|questa utilisadra}}.\nL'adressa dad e-mail che ti has endatà en [[Special:Preferences|tias preferenzas]] vegn inditgada sco speditur da l'e-mail, uschia {{GENDER:$1|ch'il retschavider|che la retschavidra}} po rispunder directamain a tai.",
-    "usermailererror": "La funcziun dad e-mail ha returnà ina errur:",
     "defemailsubject": "{{SITENAME}} e-mail da l'utilisader \"$1\"",
     "usermaildisabled": "Trametter e-mails è deactivà",
     "usermaildisabledtext": "Ti na pos betg trametter e-mails ad auters utilisaders sin questa wiki",
     "noemailtitle": "Nagina adressa dad e-mail",
     "noemailtext": "Quest utilisader n'ha betg inditgà ina adressa dad e-mail valida.",
-    "nowikiemailtitle": "Betg lubì da termetter e-mail",
     "nowikiemailtext": "Quest utilisader ha tschernì ch'el na vul betg reschaiver e-mails dad auters utilisaders.",
     "emailnotarget": "Num d'utilisader nunexistent u nunvalid sco desinatur.",
     "emailtarget": "Endatescha il num d'utilisader dal destinatur",
     "watching": "observ...",
     "unwatching": "observ betg pli...",
     "watcherrortext": "Ina errur è capitada durant midar tia configuraziun da tia glista d'observaziun per \"$1\".",
-    "enotif_mailer": "Servetsch d'infurmaziun per e-mail da {{SITENAME}}",
     "enotif_reset": "Marcar tut las paginas sco visitadas.",
     "enotif_impersonal_salutation": "Utilisader da {{SITENAME}}",
     "enotif_subject_deleted": "La pagina $1 da {{SITENAME}} è vegnida stizzada da {{GENDER:$2|$2}}",
     "excontent": "il cuntegn era: \"$1\"",
     "excontentauthor": "il cuntegn era: \"$1\" (ed il sulet contribuent era \"[[Special:Contributions/$2|$2]]\")",
     "exbeforeblank": "il cuntegn avant svidar la pagina era: \"$1\"",
-    "exblank": "la pagina era vida",
     "delete-confirm": "Stizzar \"$1\"",
     "delete-legend": "Stizzar",
     "historywarning": "'''Attenziun:''' L'artitgel che ti vuls stizzar ha ina cronologia cun circa {{PLURAL:$1|ina versiun|$1 versiuns}}:",
     "importunknownsource": "Funtauna d'import nunenconuschenta",
     "importcantopen": "Betg pussaivel dad avrir la datoteca d'import",
     "importbadinterwiki": "Colliaziun interwiki nunvalida",
-    "importnotext": "Vid u nagin text",
     "importsuccess": "Terminà l'import!",
-    "importhistoryconflict": "La cronologia cuntegna versiuns che stattan en conflict (eventualmain è questa pagina gia vegnida importada ina giada)",
     "importnosources": "Naginas funtaunas per l'import transwiki èn vegnidas definidas e la funcziun da chargiar si directamain la coronologia è deactivada.",
     "importnofile": "Nagina datoteca d'import è vegnida chargiada si.",
     "importuploaderrorsize": "Betg reussì da chargiar si la datoteca d'import.\nLa datoteca è pli gronda che la grondezza maximala per chargiar si.",
index 4844455..48873b6 100644 (file)
@@ -91,7 +91,6 @@
     "disclaimers": "Termenurya",
     "disclaimerpage": "Project:Termenurya",
     "edithelp": "Editisaripnasko zhutipen",
-    "helppage": "Help:Zhutipen",
     "mainpage": "Sherutni patrin",
     "mainpage-description": "Sherutni patrin",
     "portal": "Maladipnasko than",
index 0baf13d..81a97ad 100644 (file)
     "accountcreatedtext": "Contul utilizatorului pentru [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|discuție]]) a fost creat.",
     "createaccount-title": "Creare de cont la {{SITENAME}}",
     "createaccount-text": "Cineva a creat un cont asociat adresei dumneavoastră de e-mail pe {{SITENAME}} ($4) numit „$2” și având parola „$3”.\nEste de dorit să vă autentificați și să schimbați parola cât mai repede.\n\nIgnorați acest mesaj dacă crearea contului s-a produs în urma unei greșeli.",
-    "usernamehasherror": "Numele de utilizator nu poate conține caractere diez (#)",
     "login-throttled": "Ați avut prea multe încercări recente de a vă autentifica.\nVă rugăm să așteptați $1 până să reîncercați.",
     "login-abort-generic": "Procesul de autentificare a eșuat și a fost abandonat",
     "loginlanguagelabel": "Limba: $1",
     "prefs-skin": "Aspect",
     "skin-preview": "Previzualizare",
     "datedefault": "Nici o preferință",
-    "prefs-datetime": "Data și ora",
     "prefs-labs": "Opțiuni „labs”",
     "prefs-user-pages": "Pagini de utilizator",
     "prefs-personal": "Informații personale",
     "right-protect": "Schimbă nivelurile de protejare și modifică pagini protejate în cascadă",
     "right-editprotected": "Modifică pagini protejate ca „{{int:protect-level-sysop}}”",
     "right-editsemiprotected": "Modifică pagini protejate ca „{{int:protect-level-autoconfirmed}}”",
-    "right-editinterface": "Modificare interfața cu utilizatorul",
+    "right-editinterface": "Modifică interfața cu utilizatorul",
     "right-editusercssjs": "Modifică fișierele CSS și JS ale altor utilizatori",
     "right-editusercss": "Modifică fișierele CSS ale altor utilizatori",
     "right-edituserjs": "Modifică fișierele JS ale altor utilizatori",
     "upload-permitted": "Tipuri de fișiere permise: $1.",
     "upload-preferred": "Tipuri de fișiere preferate: $1.",
     "upload-prohibited": "Tipuri de fișiere interzise: $1.",
-    "uploadlog": "jurnal fișiere trimise",
     "uploadlogpage": "Jurnal fișiere trimise",
     "uploadlogpagetext": "Mai jos este afișată lista ultimelor fișiere trimise.\nVezi [[Special:NewFiles|galeria fișierelor noi]] pentru o mai bună vizualizare.",
     "filename": "Nume fișier",
     "filereuploadsummary": "Modificări ale fișierului:",
     "filestatus": "Statutul drepturilor de autor:",
     "filesource": "Sursă:",
-    "uploadedfiles": "Fișiere trimise",
     "ignorewarning": "Ignoră avertismentul și salvează fișierul",
     "ignorewarnings": "Ignoră orice avertismente",
     "minlength1": "Numele fișierelor trebuie să fie cel puțin o literă.",
     "overwroteimage": "încărcat o versiune nouă a fișierului \"[[$1]]\"",
     "uploaddisabled": "Ne pare rău, trimiterea de imagini este dezactivată.",
     "copyuploaddisabled": "Trimiterea prin URL este dezactivată.",
-    "uploadfromurl-queued": "Fișierul a fost pus în șirul de așteptare.",
     "uploaddisabledtext": "Încărcările de fișiere sunt dezactivate.",
     "php-uploaddisabledtext": "Încărcarea de fișiere este dezactivată în PHP.\nVă rugăm să verificați setările din file_uploads.",
     "uploadscripted": "Fișierul conține HTML sau cod script care poate fi interpretat în mod eronat de un browser.",
     "upload-misc-error": "Eroare de încărcare necunoscută",
     "upload-misc-error-text": "A apărut o eroare necunoscută în timpul încărcării.\nVă rugăm să verificați dacă adresa URL este validă și accesibilă și încercați din nou.\nDacă problema persistă, contactați un [[Special:ListUsers/sysop|administrator]].",
     "upload-too-many-redirects": "URL-ul conținea prea multe redirecționări",
-    "upload-unknown-size": "Mărime necunoscută",
     "upload-http-error": "A avut loc o eroare HTTP: $1",
     "upload-copy-upload-invalid-domain": "Încărcarea copiilor nu este disponibilă pentru acest domeniu.",
     "backend-fail-stream": "Imposibil de citit fișierul $1.",
     "img-auth-streaming": "Derularea continuă a \"$1\".",
     "img-auth-public": "Funcția img_auth.php este pentru a exporta fișiere de pe un wiki privat.\nAcest wiki este configurat ca unul public.\nPentru securitate optimă, img_auth.php este dezactivat.",
     "img-auth-noread": "Acest utilizator nu are acces să citească \"$1\".",
-    "img-auth-bad-query-string": "Adresa URL are un șir de interogare invalid.",
     "http-invalid-url": "URL invalid: $1",
     "http-invalid-scheme": "Adresele URL cu schema „$1” nu sunt acceptate.",
     "http-request-error": "Cererea HTTP a eșuat din cauza unei erori necunoscute.",
     "filehist-dimensions": "Dimensiuni",
     "filehist-filesize": "Mărimea fișierului",
     "filehist-comment": "Comentariu",
-    "filehist-missing": "Fișier lipsă",
     "imagelinks": "Utilizarea fișierului",
     "linkstoimage": "{{PLURAL:$1|Următoarea pagină trimite spre|Următoarele $1 pagini trimit spre|Următoarele $1 de pagini trimit spre}} această imagine:",
     "linkstoimage-more": "Mai mult de $1 {{PLURAL:$1|pagină este legată|pagini sunt legate}} de acest fișier.\nUrmătoarea listă arată {{PLURAL:$1|prima legătură|primele $1 legături}} către acest fișier.\nO [[Special:WhatLinksHere/$2|listă completă]] este disponibilă.",
     "listgrouprights-removegroup-self": "{{PLURAL:$2|Poate fi șters grupul|Pot fi șterse grupurile}} pentru contul propriu: $1",
     "listgrouprights-addgroup-self-all": "Pot fi adăugate toate grupurile contului propriu",
     "listgrouprights-removegroup-self-all": "Pot fi șterse toate grupurile din contul propriu",
+    "listgrouprights-namespaceprotection-header": "Restricții de spațiu de nume",
+    "listgrouprights-namespaceprotection-namespace": "Spațiu de nume",
+    "listgrouprights-namespaceprotection-restrictedto": "Drept(uri) care permit(e) utilizatorului modificări",
     "trackingcategories": "Categorii de urmărire",
     "trackingcategories-summary": "Această pagină conține categorii de urmărire care sunt populate în mod automat de către software-ul MediaWiki. Numele acestora se pot schimba modificând mesajele de sistem relevante din spațiul de nume {{ns:8}}.",
     "trackingcategories-msg": "Categorie de urmărire",
     "trackingcategories-name": "Numele mesajului",
     "trackingcategories-desc": "Criteriile de includere în categorie",
-    "noindex-category-desc": "Pagina conține cuvântul magic <nowiki>__NOINDEX__</nowiki> (aflându-se într-un spațiu de nume care permite acest marcaj) și, drept urmare, nu este indexată de roboți.",
-    "index-category-desc": "Pagina conține cuvântul magic <nowiki>__INDEX__</nowiki> (aflându-se într-un spațiu de nume care permite acest marcaj) și, ca urmare, este indexată de roboți, deși în mod normal acest lucru nu s-ar fi întâmplat.",
+    "noindex-category-desc": "Pagina conține cuvântul magic <code><nowiki>__NOINDEX__</nowiki></code> (aflându-se într-un spațiu de nume care permite acest marcaj) și, drept urmare, nu este indexată de roboți.",
+    "index-category-desc": "Pagina conține cuvântul magic <code><nowiki>__INDEX__</nowiki></code> (aflându-se într-un spațiu de nume care permite acest marcaj) și, ca urmare, este indexată de roboți, deși în mod normal acest lucru nu s-ar fi întâmplat.",
     "post-expand-template-inclusion-category-desc": "După extinderea tuturor formatelor, dimensiunea paginii a depășit <code>$wgMaxArticleSize</code>, astfel că anumite formate nu au fost extinse.",
     "post-expand-template-argument-category-desc": "După extinderea argumentului unui format (ceva plasat între acolade triple, precum <code>{{{Foo}}})</code>, pagina a depășit <code>$wgMaxArticleSize</code>.",
     "broken-file-category-desc": "Categorie adăugată dacă pagina conține o legătură întreruptă către un fișier (o legătură folosită pentru încorporarea unui fișier atunci când fișierul nu există).",
-    "hidden-category-category-desc": "Această categorie conține <nowiki>__HIDDENCAT__</nowiki>, ceea ce împiedică în mod implicit afișarea ei în zona cu legături către categorii din cadrul paginilor.",
+    "hidden-category-category-desc": "Această categorie conține <code><nowiki>__HIDDENCAT__</nowiki></code>, ceea ce împiedică în mod implicit afișarea ei în zona cu legături către categorii din cadrul paginilor.",
     "trackingcategories-nodesc": "Nicio descriere disponibilă.",
     "trackingcategories-disabled": "Categoria este dezactivată",
     "mailnologin": "Nu există adresă de trimitere",
     "emailuser-title-notarget": "E-mail către utilizator",
     "emailpage": "E-mail către utilizator",
     "emailpagetext": "Puteți folosi formularul de mai jos pentru a trimite un e-mail {{GENDER:$1|acestui utilizator|acestei utilizatoare}}.\nAdresa de e-mail specificată de dumneavoastră în [[Special:Preferences|preferințele de utilizator]] va apărea ca adresa expeditorului e-mailului; astfel, destinatarul va putea să vă răspundă direct.",
-    "usermailererror": "Obiectul de mail a dat eroare:",
     "defemailsubject": "E-mail {{SITENAME}} de la utilizatorul „$1”",
     "usermaildisabled": "E-mail dezactivat",
     "usermaildisabledtext": "Nu puteți trimite e-mail altor utilizatori ai acestui wiki.",
     "noemailtitle": "Fără adresă de e-mail",
     "noemailtext": "Utilizatorul nu a specificat o adresă validă de e-mail.",
-    "nowikiemailtitle": "Nu este permis e-mail-ul",
     "nowikiemailtext": "Acest utilizator a ales să nu primească e-mail-uri de la alți utilizatori.",
     "emailnotarget": "Destinatarul este un nume de utilizator inexistent sau invalid.",
     "emailtarget": "Introduceți numele de utilizator al destinatarului",
     "watching": "Se urmărește...",
     "unwatching": "Așteptați...",
     "watcherrortext": "A apărut o eroare în timp ce se modificau setările listei de pagini urmărite pentru „$1”.",
-    "enotif_mailer": "Sistemul de notificare {{SITENAME}}",
     "enotif_reset": "Marchează toate paginile vizitate",
     "enotif_impersonal_salutation": "Utilizator {{SITENAME}}",
     "enotif_subject_deleted": "Pagina $1 de la {{SITENAME}} a fost ștearsă de către {{gender:$2|$2}}",
     "excontent": "conținutul era: '$1'",
     "excontentauthor": "conținutul era: „$1” (unicul contribuitor: [[Special:Contributions/$2|$2]])",
     "exbeforeblank": "conținutul înainte de golire era: '$1'",
-    "exblank": "pagina era goală",
     "delete-confirm": "Şterge \"$1\"",
     "delete-legend": "Şterge",
     "historywarning": "'''Atenție:''' istoricul paginii pe care o ștergeți conține aproximativ $1 {{PLURAL:$1|versiune|versiuni|de versiuni}}:",
     "importunknownsource": "Tipul sursei de import este necunoscut",
     "importcantopen": "Fișierul importat nu a putut fi deschis",
     "importbadinterwiki": "Legătură interwiki greșită",
-    "importnotext": "Gol sau fără text",
     "importsuccess": "Import reușit!",
-    "importhistoryconflict": "Există istorii contradictorii (se poate să fi importat această pagină înainte)",
     "importnosources": "Nici o sursă de import transwiki a fost definită și încărcările directe ale istoricului sunt oprite.",
     "importnofile": "Nici un fișier pentru import nu a fost încărcat.",
     "importuploaderrorsize": "Încărcarea fișierului a eșuat.\nFișierul are o mărime mai mare decât limita de încărcare permisă.",
index 42b25cd..f5b6b44 100644 (file)
     "accountcreatedtext": "Создана учётная запись участника [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|обс.]]).",
     "createaccount-title": "{{SITENAME}}: создание учётной записи",
     "createaccount-text": "Кто-то создал учётную запись «$2» на сервере проекта {{SITENAME}} ($4), указав ваш адрес электронной почты. \n\nПароль учётной записи — «$3». Вам следует авторизоваться на сайте и изменить пароль.\n\nПроигнорируйте данное сообщение, если учётная запись была создана по ошибке.",
-    "usernamehasherror": "Имя участника не может содержать символ «решётки»",
     "login-throttled": "Вы сделали слишком много попыток представиться системе.\nПожалуйста, подождите $1 перед тем, как попробовать снова.",
     "login-abort-generic": "Неудачная попытка представиться системе",
     "loginlanguagelabel": "Язык: $1",
     "prefs-skin": "Тема оформления",
     "skin-preview": "Предпросмотр",
     "datedefault": "По умолчанию",
-    "prefs-datetime": "Дата и время",
     "prefs-labs": "Экспериментальные возможности",
     "prefs-user-pages": "Страницы участника",
     "prefs-personal": "Личные данные",
     "upload-permitted": "Разрешённые типы файлов: $1.",
     "upload-preferred": "Предпочтительные типы файлов: $1.",
     "upload-prohibited": "Запрещённые типы файлов: $1.",
-    "uploadlog": "журнал загрузок",
     "uploadlogpage": "Журнал загрузок",
     "uploadlogpagetext": "Ниже представлен список последних загрузок файлов.\nСм. также [[Special:NewFiles|галерею новых файлов]], где сведения о новых загрузках представлены в более наглядном виде.",
     "filename": "Имя файла",
     "filereuploadsummary": "Изменения в файле:",
     "filestatus": "Условия распространения:",
     "filesource": "Источник:",
-    "uploadedfiles": "Загруженные файлы",
     "ignorewarning": "Игнорировать предупреждения и сохранить файл",
     "ignorewarnings": "Игнорировать предупреждения",
     "minlength1": "Название файла должно содержать хотя бы одну букву.",
     "overwroteimage": "загружена новая версия «[[$1]]»",
     "uploaddisabled": "Загрузка запрещена",
     "copyuploaddisabled": "Загрузка по URL отключена.",
-    "uploadfromurl-queued": "Ваша загрузка поставлена в очередь.",
     "uploaddisabledtext": "Загрузка файлов отключена.",
     "php-uploaddisabledtext": "Загрузка файлов отключена в настройках PHP. Пожалуйста, проверьте значение свойства file_uploads.",
     "uploadscripted": "Файл содержит HTML-код или скрипт, который может быть ошибочно обработан браузером.",
     "upload-misc-error": "Неизвестная ошибка загрузки",
     "upload-misc-error-text": "Неизвестная ошибка загрузки. Пожалуйста, проверьте, что адрес верен, и повторите попытку. Если проблема остаётся, обратитесь к [[Special:ListUsers/sysop|администратору]].",
     "upload-too-many-redirects": "URL содержит слишком много перенаправлений",
-    "upload-unknown-size": "Неизвестный размер",
     "upload-http-error": "Произошла ошибка HTTP: $1",
     "upload-copy-upload-invalid-domain": "Копирование загрузок не доступно в этом домене.",
     "backend-fail-stream": "Не удалось транслировать файл $1.",
     "img-auth-streaming": "Потоковая передача «$1».",
     "img-auth-public": "Назначением img_auth.php является вывод файлов из закрытой вики.\nЭта вики настроена как общедоступная.\nДля оптимизации безопасности img_auth.php отключена.",
     "img-auth-noread": "Участник не имеет доступа на чтение «$1».",
-    "img-auth-bad-query-string": "URL-адрес содержит неправильную строку запроса.",
     "http-invalid-url": "Ошибочный URL: $1",
     "http-invalid-scheme": "Не поддерживаются адреса со схемой «$1»",
     "http-request-error": "Сбой HTTP-запроса из-за неизвестной ошибки.",
     "filehist-dimensions": "Размеры",
     "filehist-filesize": "Размер файла",
     "filehist-comment": "Примечание",
-    "filehist-missing": "Файл отсутствует",
     "imagelinks": "Использование файла",
     "linkstoimage": "{{PLURAL:$1|Следующая $1 страница ссылается|Следующие $1 страниц ссылаются|Следующие $1 страницы ссылаются}} на данный файл:",
     "linkstoimage-more": "Более $1 {{PLURAL:$1|страницы|страниц}} ссылаются на этот файл.\nВ данном списке {{PLURAL:$1|представлена только $1 ссылка|представлены только $1 ссылок|представлены только $1 ссылки}} на этот файл.\nДоступен также [[Special:WhatLinksHere/$2|полный список]].",
     "listgrouprights-removegroup-self": "может удалять свою учётную запись из {{PLURAL:$2|1=группы|групп}}: $1",
     "listgrouprights-addgroup-self-all": "Может добавлять все группы к своей учётной записи",
     "listgrouprights-removegroup-self-all": "может удалять все группы со своей учётной записи",
+    "listgrouprights-namespaceprotection-header": "Ограничения пространства имён",
+    "listgrouprights-namespaceprotection-namespace": "Пространство имён",
+    "listgrouprights-namespaceprotection-restrictedto": "Права, позволяющие участнику редактировать",
     "trackingcategories": "Отслеживающие категории",
     "trackingcategories-summary": "На этой странице перечислены отслеживающие категории, которые автоматически заполняются программным обеспечением MediaWiki. Их можно переименовать, изменив соответствующие системные сообщения в пространстве имён {{ns:8}}.",
     "trackingcategories-msg": "Отслеживающая категория",
     "trackingcategories-name": "Имя сообщения",
     "trackingcategories-desc": "Критерий включения в категорию",
-    "noindex-category-desc": "Ð\9dа Ñ\81Ñ\82Ñ\80аниÑ\86е Ð¸Ð¼ÐµÐµÑ\82Ñ\81Ñ\8f Â«Ð²Ð¾Ð»Ñ\88ебное Ñ\81лово» <nowiki>__NOINDEX__</nowiki> (и Ñ\81Ñ\82Ñ\80аниÑ\86а Ð½Ð°Ñ\85одиÑ\82Ñ\81Ñ\8f Ð² Ð¿Ñ\80оÑ\81Ñ\82Ñ\80анÑ\81Ñ\82ве Ð¸Ð¼Ñ\91н, Ð³Ð´Ðµ Ñ\80азÑ\80еÑ\88Ñ\91н Ñ\8dÑ\82оÑ\82 Ñ\84лаг), Ð¿Ð¾Ñ\8dÑ\82омÑ\83 Ð¾Ð½Ð° Ð½Ðµ Ð¸Ð½Ð´ÐµÐºÑ\81иÑ\80Ñ\83Ñ\8eÑ\82Ñ\81Ñ\8f Ð¿Ð¾Ð¸Ñ\81ковÑ\8bми Ñ\80обоÑ\82ами.",
+    "noindex-category-desc": "СÑ\82Ñ\80аниÑ\86а Ð½Ðµ Ð¸Ð½Ð´ÐµÐºÑ\81иÑ\80Ñ\83Ñ\8eÑ\82Ñ\81Ñ\8f Ð¿Ð¾Ð¸Ñ\81ковÑ\8bми Ñ\80обоÑ\82ами, Ð¿Ð¾Ñ\82омÑ\83 Ñ\87Ñ\82о Ð½Ð° Ð½ÐµÐ¹ Ð¸Ð¼ÐµÐµÑ\82Ñ\81Ñ\8f Â«Ð²Ð¾Ð»Ñ\88ебное Ñ\81лово» <code><nowiki>__NOINDEX__</nowiki></code>, Ð¸ Ð¾Ð½Ð° Ð½Ð°Ñ\85одиÑ\82Ñ\81Ñ\8f Ð² Ð¿Ñ\80оÑ\81Ñ\82Ñ\80анÑ\81Ñ\82ве Ð¸Ð¼Ñ\91н, Ð³Ð´Ðµ Ñ\80азÑ\80еÑ\88Ñ\91н Ñ\8dÑ\82оÑ\82 Ñ\84лаг).",
     "index-category-desc": "На странице имеется «волшебное слово» __INDEX__ (и страница находится в пространстве имён, где разрешён этот флаг), поэтому она индексируются поисковыми роботами в тех случаях, когда этого обычно не происходит.",
     "post-expand-template-inclusion-category-desc": "После показа всех шаблонов размер страницы станет больше, чем <code>$wgMaxArticleSize</code>, поэтому некоторые шаблоны не были показаны полностью.",
     "post-expand-template-argument-category-desc": "После раскрытия аргумента шаблона (что-нибудь в тройных фигурных скобках, например, <code>{{{Foo}}})</code>, страница станет больше, чем <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "На странице используется слишком много ресурсоёмких функций (таких, как <code>#ifexist</code>). Подробнее — на странице [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
     "broken-file-category-desc": "Категория добавляется, если страница содержит некорректную файловую ссылку (ссылку на несуществующий файл).",
-    "hidden-category-category-desc": "Это категория с добавленной меткой <nowiki>__HIDDENCAT__</nowiki> в ней, что по умолчанию предотвращает её отображение на страницах в разделе категорий.",
+    "hidden-category-category-desc": "Это категория с добавленной меткой <code><nowiki>__HIDDENCAT__</nowiki></code> в ней, что по умолчанию предотвращает её отображение на страницах в разделе категорий.",
     "trackingcategories-nodesc": "Описание отсутствует.",
     "trackingcategories-disabled": "Категория отключена",
     "mailnologin": "Адрес для отправки отсутствует",
     "emailuser-title-notarget": "Написание электронного письма участнику",
     "emailpage": "Письмо участнику",
     "emailpagetext": "С помощью данной формы можно отправить сообщение на адрес электронной почты {{GENDER:$1|этого участника|этой участницы}}.\nВ качестве обратного адреса будет указан тот адрес, который вы указали в [[Special:Preferences|своих настройках]], таким образом получатель будет иметь возможность ответить непосредственно вам.",
-    "usermailererror": "При отправке сообщения электронной почты произошла ошибка:",
     "defemailsubject": "{{SITENAME}} — Письмо от $1",
     "usermaildisabled": "Электронная почта участника отключена",
     "usermaildisabledtext": "Вы не можете отправлять электронные письма другим участникам этой вики",
     "noemailtitle": "Адрес электронной почты отсутствует",
     "noemailtext": "Этот участник не указал действительный адрес электронной почты.",
-    "nowikiemailtitle": "Нет разрешения отправлять письма",
     "nowikiemailtext": "Этот участник указал, что не желает получать письма от других участников.",
     "emailnotarget": "Несуществующее или ошибочное имя участника-получателя.",
     "emailtarget": "Введите имя участника-получателя",
     "watching": "Добавление в список наблюдения…",
     "unwatching": "Удаление из списка наблюдения…",
     "watcherrortext": "Произошла ошибка при изменении настройки наблюдения для «$1».",
-    "enotif_mailer": "{{SITENAME}} Служба извещений по почте",
     "enotif_reset": "Отметить все страницы как просмотренные",
     "enotif_impersonal_salutation": "Участник {{grammar:genitive|{{SITENAME}}}}",
     "enotif_subject_deleted": "Страница проекта «{{SITENAME}}» с именем «$1» была удалена {{gender:$2|участником|участницей}} $2",
     "excontent": "содержимое: «$1»",
     "excontentauthor": "содержимое: «$1» (единственным автором был [[Special:Contributions/$2|$2]])",
     "exbeforeblank": "содержимое до очистки: «$1»",
-    "exblank": "страница была пуста",
     "delete-confirm": "$1 — удаление",
     "delete-legend": "Удаление",
     "historywarning": "'''Внимание:''' эта страница имеет историю изменений приблизительно из $1 {{PLURAL:$1|версии|версий}}:",
     "importunknownsource": "Неизвестный тип импортируемой страницы",
     "importcantopen": "Невозможно открыть импортируемый файл",
     "importbadinterwiki": "Неправильная интервики-ссылка",
-    "importnotext": "Текст отсутствует",
     "importsuccess": "Импортирование выполнено!",
-    "importhistoryconflict": "Конфликт существующих версий (возможно, эта страница уже была импортирована)",
     "importnosources": "Не был выбран источник межвики-импорта, прямая загрузка истории изменений отключена.",
     "importnofile": "Файл для импорта не был загружен.",
     "importuploaderrorsize": "Не удалось загрузить или импортировать файл. Размер файла превышает установленный предел.",
index f3a1d59..37206aa 100644 (file)
@@ -96,7 +96,6 @@
     "currentevents": "Evenimente di tora",
     "disclaimers": "Nipricunuschire",
     "edithelp": "Agiutor ti alãxire",
-    "helppage": "Help:Conținut",
     "mainpage": "Prota frânḑâ",
     "mainpage-description": "Prota frânḑâ",
     "portal": "Portalu a comunitatiľei",
index 7652498..4972df2 100644 (file)
@@ -88,7 +88,6 @@
     "disclaimers": "Тајменулс",
     "disclaimerpage": "Project:тајменул",
     "edithelp": "Ајутор пентре едитаере",
-    "helppage": "Help:Ајутор",
     "mainpage": "Пажу принципу",
     "mainpage-description": "Пажу принципу",
     "privacy": "Политикмус де лижитул",
index f1c808c..d3275f3 100644 (file)
@@ -88,7 +88,6 @@
     "disclaimers": "tǎmenuls",
     "disclaimerpage": "Project:tǎmenul",
     "edithelp": "Ajutor pentru editaere",
-    "helppage": "Help:Ajutor",
     "mainpage": "Pažu principu",
     "mainpage-description": "Pažu principu",
     "privacy": "Politikmus de ližitul",
index e5b9747..d0dce63 100644 (file)
     "permalink": "स्थायिपरिसन्धिः",
     "print": "मुद्र्यताम्",
     "view": "दृश्यताम्",
+    "view-foreign": "$1 अत्र दृश्यताम्",
     "edit": "सम्पाद्यताम्",
+    "edit-local": "स्थानीयवर्णनं सम्पाद्यताम्",
     "create": "सृज्यताम्",
+    "create-local": "स्थानीयवर्णनं योज्यताम्",
     "editthispage": "इदं पृष्ठं सम्पाद्यताम्",
     "create-this-page": "इदं पृष्ठं सृज्यताम्",
     "delete": "अपाक्रियताम्",
     "accountcreatedtext": "[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) कृते \"योजसम्भाषणम्\" इति पृष्ठं रचितम् ।",
     "createaccount-title": "{{SITENAME}} कृते सदस्यता प्राप्यताम्",
     "createaccount-text": "{{SITENAME}} ($4) इत्यत्र, \"$2\" नाम्ना, \"$3\" कूटशब्देन, च कोऽपि भवतः/भवत्याः ई-पत्रसङ्केतस्य उपयोगं कृत्वा सदस्यतां प्रापत् ।\nअधुना भवान्/भवती प्रवेशं कृत्वा गुप्तसङ्ख्यां परिवर्तयितं शक्नोति ।\nएषा सदस्यताप्राप्तिः क्षत्या अभवत् चेत्, एनं सन्देशम् अवगणोतु ।",
-    "usernamehasherror": "# इत्यस्य सङ्केतस्य उपयोगः योजकनाम्नि कर्तुं न शक्यते ।",
     "login-throttled": "भवता/भवत्या अत्यधिकाः प्रवेशप्रयासाः कृताः । \nकृपया $1 कालं यावत् प्रतिक्षां करोतु ।",
     "login-abort-generic": "भवतः/भवत्याः प्रवेशप्रयासः विफलीभूतः - परित्यक्तः",
     "loginlanguagelabel": "भाषा : $1",
     "userjspreview": "<strong>एतत् केवलं योजकस्य JabaScript इत्यस्य प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
     "sitecsspreview": "<strong>एतत् केवलं CSS इत्यस्य प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
     "sitejspreview": "<strong>एतत् केवलं JavaScript इत्यस्य प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
-    "userinvalidcssjstitle": "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना:'''  \"$1\" à¤\87ति à¤¤à¥\8dवà¤\95à¥\8d à¤¨ à¤µà¤¿à¤¦à¥\8dयतà¥\87।\nमनसि à¤§à¤¾à¤°à¤¯à¤¤à¥\81 à¤¯à¤¤à¥\8d à¤¸à¥\8dवà¥\87à¤\9aà¥\8dà¤\9bया à¤ªà¤°à¤¿à¤µà¤°à¥\8dतिताà¤\83 .css, .js à¤\9aà¥\87ति à¤ªà¥\83षà¥\8dठाà¤\83 à¤²à¤\98à¥\82नà¤\95à¥\8dषरानà¥\8d à¤ªà¥\8dरयà¥\8bà¤\9cयनà¥\8dति, à¤¯à¤¥à¤¾  {{ns:user}}:Foo/Vector.css à¤\87तà¥\8dयà¥\87तसà¥\8dय à¤¸à¥\8dथानà¥\87  {{ns:user}}:Foo/vector.css à¤\87तà¥\8dयà¥\87ततà¥\8d।",
-    "updated": "(à¤\85दà¥\8dयतनà¥\80à¤\95à¥\83तà¤\83)",
+    "userinvalidcssjstitle": "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना:'''  \"$1\" à¤\87ति à¤¤à¥\8dवà¤\95à¥\8d à¤¨ à¤µà¤¿à¤¦à¥\8dयतà¥\87।\nयà¥\8bà¤\9cà¤\95परिवरà¥\8dतितà¥\87 .css, .js à¤¸à¤\9eà¥\8dà¤\9aिà¤\95à¥\87 à¤²à¤\98à¥\81-à¤\86à¤\99à¥\8dà¤\97ावरà¥\8dणमालायाà¤\83 à¤µà¤°à¥\8dणà¥\88à¤\83 à¤²à¤¿à¤\96à¥\8dयà¥\87तà¥\87 à¥¤ à¤\89दा. {{ns:user}}:Foo/Vector.css à¤\8fवà¤\82 à¤¨ à¤²à¥\87à¤\96नà¥\80यमà¥\8d à¥¤ à¤²à¤\98à¥\81वरà¥\8dणà¥\88à¤\83 {{ns:user}}:Foo/vector.css à¤\8fवà¤\82 à¤²à¥\87à¤\96नà¥\80यमà¥\8d ।",
+    "updated": "(नवà¥\80à¤\95à¥\83तमà¥\8d (updated))",
     "note": "'''सूचना:'''",
-    "previewnote": "'''एतत् केवलं प्राग्दृश्यं वर्तते इति स्मरतु'''\nभवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि ।",
-    "continue-editing": "समà¥\8dपादनमà¥\8d à¤\85नà¥\81वरà¥\8dतताम्",
-    "previewconflict": "à¤\85सà¥\8dमिनà¥\8d à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयà¥\87 à¤¦à¤°à¥\8dशितमसà¥\8dति à¤¯à¤¤à¥\8d à¤\89परिवरà¥\8dति à¤ªà¤¾à¤  à¤\95à¥\8dषà¥\87तà¥\8dरसà¥\8dय à¤ªà¤¾à¤ à¤\83 à¤°à¤\95à¥\8dषणपशà¥\8dà¤\9aातà¥\8d à¤\95à¥\80दà¥\83शà¤\83 à¤¦à¥\83षà¥\8dà¤\9fिà¤\97à¥\8bà¤\9aरà¤\83 à¤­à¤µà¤¿à¤·à¥\8dयति।",
-    "session_fail_preview": "'''क्षम्यताम्! अस्माभिः भवतः सम्पादनस्य संसाधनं न कर्तुं शक्तम् यस्माद्धि सत्रस्य सूचनाः लुप्ताः।'''\nकृपया पुनः चेष्टताम्।\nचेदेतत् अधुनाऽपि न कार्यशीलं स्यात्, [[Special:UserLogout|सत्राद्बहिः गत्वा]] पुनः प्रवेशं करोतु।",
-    "session_fail_preview_html": "लेखभागाभावात् ते परिचर्यां समापयितुं न शक्यते ।[[Special:UserLogout|logging out]]",
-    "token_suffix_mismatch": "'''तà¥\87 à¤¸à¤®à¥\8dपादनà¤\82 à¤¤à¤¿à¤°à¥\8dसà¥\8dà¤\95à¥\83तमà¥\8d à¥¤ à¤¯à¤¤à¤\83 à¤¤à¥\87 à¤\97à¥\8dराहà¤\95à¤\83 à¤¸à¤®à¥\8dपादनपà¥\8dरतà¥\80à¤\95à¥\87 à¤²à¥\87à¤\96ानà¤\9aिहà¥\8dनानि à¤\95à¥\8dषतविà¤\95à¥\8dषतानि à¤\85à¤\95रà¥\8bतà¥\8d। '''\nपाठà¥\8dयपà¥\81à¤\9fसà¥\8dय à¤¸à¤\82रà¤\95à¥\8dषणारà¥\8dथà¤\82 à¤¸à¤®à¥\8dपादनावà¤\95ाशà¤\83 à¤ªà¤¿à¤¹à¤¿à¤¤à¤\83 à¥¤ à¤\85नामिà¤\95ानामà¥\8d à¤\89पयà¥\8bà¤\97à¤\95ालà¥\87 à¤\95दाà¤\9aितà¥\8d à¤\8fवà¤\82 à¤¸à¤®à¥\8dभवति ।",
-    "edit_form_incomplete": "'''समà¥\8dपादनसà¥\8dय à¤\95तिà¤\9aनाà¤\82शाà¤\83 à¤µà¤¿à¤¤à¤¾à¤°à¤\95à¤\82 à¤¨ à¤ªà¥\8dरापà¥\8dताà¤\83 ; à¤¸à¤®à¥\8dपादनà¤\82  à¤¦à¥\8dविवरà¤\82 à¤ªà¤°à¤¿à¤¶à¥\80लयतà¥\81 à¥¤ à¤¤à¥\87 à¤¸à¤®à¥\8dपादनानि à¤\85नाहतानि, à¤ªà¥\81नà¤\83 à¤¯à¤¤à¤¤à¤¾à¤®à¥\8d  '''",
+    "previewnote": "<strong>एतत् केवलं प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
+    "continue-editing": "समà¥\8dपादनविभाà¤\97à¤\82 à¤\97मà¥\8dयताम्",
+    "previewconflict": "à¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤¯à¤¦à¤¿ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤°à¤\95à¥\8dषिषà¥\8dयति, à¤¤à¤°à¥\8dहि à¤\85तà¥\8dर à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयà¥\87 à¤¯à¤¥à¤¾ à¤¦à¥\83शà¥\8dयतà¥\87, à¤¤à¤¥à¥\88व à¤°à¤\95à¥\8dषितà¤\82 à¤­à¤µà¤¿à¤·à¥\8dयति ।",
+    "session_fail_preview": "'''क्षम्यताम् ! प्रवेशसूचनायाः लोपत्वात् भवता/भवत्या कृतानि परिवर्तनानि रक्षितुं वयं न अशक्नुम ।\nअधुनापि यदि सा एव समस्या अस्ति, तर्हि [[Special:UserLogout|निर्गमनं कृत्वा]] पुनः प्रविश्यताम् ।",
+    "session_fail_preview_html": "'''क्षम्यताम् ! प्रवेशसूचनायाः लोपत्वात् भवता/भवत्या कृतानि परिवर्तनानि रक्षितुं वयं न अशक्नुम ।\n\n<em>कारणं {{SITENAME}} इत्यत्र मूल-HTML-समर्थितं भवति । अतः JavaScript इत्यस्मात् रक्षितुं प्राग्दृश्यं निगूढं भवति ।</em>\n\n<strong>भवता/भवत्या कृतं सम्पादनं यदि उचितमस्ति, तर्हि पुनः प्रयासं करोतु ।</strong>\n\nअधुनापि यदि सा एव समस्या अस्ति, तर्हि [[Special:UserLogout|निर्गमनं कृत्वा]] पुनः प्रविश्यताम् ।",
+    "token_suffix_mismatch": "'''भवता/भवतà¥\8dया à¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¨à¤¿à¤°à¤¸à¥\8dतानि à¤\95à¥\83तानि à¥¤ à¤\95राणà¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\97वà¥\87षà¤\95à¥\87न (browser) à¤¸à¤®à¥\8dपादनà¥\87 à¤\95ानिà¤\9aन à¤µà¤¿à¤°à¤¾à¤®à¤\9aिहà¥\8dनानि à¤\85सà¥\8dतवà¥\8dयसà¥\8dतà¤\95à¥\83तानि à¥¤'''\nलà¥\87à¤\96सà¥\8dय à¤ªà¤¾à¤ à¤\83 à¤\85सà¤\82सà¥\8dà¤\95à¥\83तà¤\83 à¤¨ à¤¸à¥\8dयातà¥\8d, à¤\85तà¤\83 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¨à¤¿à¤°à¤¸à¥\8dतà¥\80à¤\95à¥\83तानि à¥¤\nà¤\85यà¥\8bà¤\97à¥\8dयपà¥\8dरतिनिधà¥\87à¤\83 (proxy server) à¤\89पयà¥\8bà¤\97à¥\87नापि à¤\95à¥\81तà¥\8dरà¤\9aितà¥\8d à¤\8fतादà¥\83शà¤\82 भवति ।",
+    "edit_form_incomplete": "'''समà¥\8dपादनसà¥\8dय à¤\95तिà¤\9aनाà¤\82शाà¤\83 à¤µà¤¿à¤¤à¤°à¤\95à¥\87 (server) à¤¨ à¤°à¤\95à¥\8dषिताà¤\83 à¥¤ à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤\95à¥\83तानि à¤¸à¤®à¥\8dपादनानि à¤¯à¥\8bà¤\97à¥\8dयानि à¤\9aà¥\87तà¥\8d à¤ªà¥\81नà¤\83 à¤ªà¥\8dरयततामà¥\8d à¥¤'''",
     "editing": "$1 सम्पाद्यते",
-    "creating": "$1 à¤¸à¤°à¥\8dà¤\9cनमà¥\8d",
-    "editingsection": "$1 (विभाà¤\97सà¥\8dय) à¤¸à¤®à¥\8dपादनà¤\82 à¤\95à¥\81रà¥\8dवनà¥\8d à¤\85सà¥\8dति",
-    "editingcomment": "$1 संपादनम् (विभागः)",
-    "editconflict": "सम्पादनयोः/सम्पादनानाम् अन्तर्विरोधः : $1",
-    "explainconflict": "तà¥\87 à¤¸à¤®à¥\8dपादनावसरà¥\87 à¤\95à¥\8bपि à¤\85नà¥\8dयà¤\83 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतितवानà¥\8d à¥¤ à¤\89परितनलà¥\87à¤\96सà¥\8dय à¤\95à¥\8dषà¥\87तà¥\8dरà¤\82 à¤¸à¤¦à¥\8dयà¤\83 à¤µà¤¿à¤¦à¥\8dयमानपà¥\81à¤\9fयà¥\81à¤\95à¥\8dतमसà¥\8dति à¥¤ à¤¤à¥\87 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनमà¥\8d à¤\85धà¤\83 à¤²à¥\87à¤\96à¤\95à¥\8dषà¥\87तà¥\8dरà¥\87 à¤¦à¥\83शà¥\8dयतà¥\87 à¥¤ à¤µà¤¿à¤¦à¥\8dयमानलà¥\87à¤\96à¥\88à¤\83 à¤¸à¤¹ à¤¤à¥\87 à¤ªà¤°à¤¿à¤µà¤°à¥\8dताननि à¤µà¤¿à¤²à¥\80नयतà¥\81 à¥¤ à¤¯à¤¦à¤¾ à¤¸à¤\82रà¤\95à¥\8dषणपà¥\8dरयतà¥\8dनà¤\83 à¤\95à¥\8dरियतà¥\87 à¤¤à¤¦à¤¾ à¤\95à¥\87वलमà¥\8d à¤\89परिपठà¥\8dयभाà¤\97à¤\83 à¤\8fव à¤¸à¥\81रà¤\95à¥\8dषितà¤\82 à¤­à¤µति ।",
-    "yourtext": "भवतः पाठः",
-    "storedversion": "रà¤\95à¥\8dषिता à¤\86वà¥\83तà¥\8dतिà¤\83",
-    "nonunicodebrowser": "'''पूर्वसूचना: भवतः विचरकं यूनीकोड्-अनुकूलम् नास्ति।'''\nभवान् सुरक्षिततया सम्पादनं करोतु इत्येतदर्थं एका युक्तिः कृताऽस्ति: आस्की-इतराणि अक्षराणि सम्पादनपिटके षौडशिक(hexadecimal) कूटेषु द्रक्ष्यन्ते।",
-    "editingold": "''' पूर्वसूचना : कालातीतपुटस्य सम्पादनं करोति  ''' यदि एतत् रक्षितुं यतते परिवर्तनं नैव रक्ष्यते ।",
+    "creating": "$1 à¤¸à¥\83à¤\9cà¥\8dयतà¥\87",
+    "editingsection": "$1 (विभाà¤\97à¤\83) à¤¸à¤®à¥\8dपादà¥\8dयतà¥\87",
+    "editingcomment": "$1 (नवीनविभागः) सम्पाद्यते",
+    "editconflict": "सम्पादनयोः अन्तर्विरोधः : $1",
+    "explainconflict": "भवता/भवतà¥\8dया à¤¯à¤¦à¤¾ à¤¸à¤®à¥\8dपादनà¤\82 à¤ªà¥\8dरारबà¥\8dधà¤\82, à¤¤à¤¦à¤¾à¤°à¤­à¥\8dय à¤\85नà¥\8dयà¤\9cनà¤\83 à¤\85पि à¤\85तà¥\8dर à¤¸à¤®à¥\8dपादनà¤\82 à¤\95à¥\81रà¥\8dवनà¥\8d à¤\86सà¥\80तà¥\8d à¥¤\nà¤\85धà¥\81ना à¤¯à¤¥à¤¾ à¤¸à¥\8dथितिà¤\83 à¤\85सà¥\8dति, à¤¤à¤¥à¤¾ à¤\89परि à¤ªà¥\87à¤\9fिà¤\95ायाà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¶à¤\95à¥\8dयतà¥\87 à¥¤\nà¤\85धà¤\83 à¤ªà¥\87à¤\9fिà¤\95ायाà¤\82 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤ªà¥\8dरदरà¥\8dशितानि à¤¸à¤¨à¥\8dति à¥¤ \nà¤\85धà¥\81ना à¤ªà¥\83षà¥\8dठà¥\87 à¤¯à¤¤à¥\8d à¤²à¤¿à¤\96ितà¤\82 à¤µà¤°à¥\8dततà¥\87, à¤¤à¥\87न à¤¸à¤¹ à¤¸à¥\8dवसà¥\8dय à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¯à¥\8bà¤\9cनà¥\80यानि à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤ \nभवानà¥\8d/भवतà¥\80 à¤¯à¤¦à¤¾ \" à¤\8fततà¥\8d {{int:savearticle}}\" à¤¨à¥\81दति, à¤¤à¤¦à¤¾\n<strong>à¤\95à¥\87वलà¤\82</strong> à¤\89परिसà¥\8dतनपà¥\87à¤\9fिà¤\95ायाà¤\82 à¤¯à¤¤à¥\8d à¤²à¤¿à¤\96ितमà¥\8d à¤\85सà¥\8dति, à¤¤à¤¤à¥\8d à¤°à¤\95à¥\8dषितà¤\82 à¤­à¤µà¤¿à¤·à¥\8dयति ।",
+    "yourtext": "भवतः/भवत्याः पाठः",
+    "storedversion": "रà¤\95à¥\8dषितसà¤\82सà¥\8dà¤\95रणमà¥\8d",
+    "nonunicodebrowser": "<strong>पूर्वसूचना : भवतः/भवत्याः गवेषकं (browser) Unicode न समर्थयति ।</strong>\nअत्र भवान्/भवती योग्यरीत्या सम्पादनं कर्तुं शक्ष्यति :\nये वर्णाः ASCII कूटे न भविष्यन्ति, ते hexadecimal वर्णत्वेन प्रदर्शयन्ते ।",
+    "editingold": "<strong>पूर्वसूचना : भवता/भवत्या अस्य पृष्ठस्य कालातीत-आवृत्तिं समाद्यते । </strong>\nएतत् पृष्ठं यदि भवान्/भवती रक्षिष्यति, तर्हि सद्यः आवृत्ति-तः पुरा यानि परिवर्तनानि आसन्, तानि नशिष्यन्ति ।",
     "yourdiff": "भेदाः",
-    "copyrightwarning": "à¤\95à¥\83पया à¤¸à¤\82सà¥\8dमरà¥\8dतवà¥\8dयà¤\82 à¤¯à¤¤à¥\8d {{SITENAME}} à¤\87तà¥\8dयà¥\87तदà¥\8d à¤ªà¥\8dरति à¤\95à¥\83तानि à¤¸à¤°à¥\8dवाणि à¤¯à¥\8bà¤\97दानानि $2 à¤\87तà¥\8dयसà¥\8dय à¤ªà¥\8dरतिबà¤\82धाà¤\82तरà¥\8dà¤\97तानि à¤¸à¤¨à¥\8dति (à¤\85धिà¤\95ाय à¤\9cà¥\8dà¤\9eानाय $1 à¤\87तà¥\8dयà¥\87तदà¥\8d à¤ªà¤¶à¥\8dयतà¥\81)।\n\nयदि à¤­à¤µà¤¾à¤¨à¥\8d à¤¸à¥\8dवà¤\95à¥\80यानि à¤²à¤¿à¤\96ितानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतमनà¥\8dतशà¥\8dà¤\9a, à¤ªà¥\81नà¤\83 à¤µà¤¿à¤¤à¤°à¥\8dयमनà¥\8dतशà¥\8dà¤\9a à¤¨ à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81मिà¤\9aà¥\8dà¤\9bति à¤¤à¤¦à¤¾ à¤®à¤¾ à¤\95à¥\83पया à¤®à¤¾à¤½à¤¤à¥\8dर à¤¯à¥\8bà¤\97दानà¤\82 à¤\95रà¥\8bतà¥\81। <br />\n\nभवानà¥\8d à¤\8fतदपि à¤ªà¥\8dरमाणà¥\80à¤\95रà¥\8bति à¤¯à¤¤à¥\8d à¤\8fतदà¥\8d à¤­à¤µà¤¤à¤¾ à¤¸à¥\8dवतà¤\83 à¤²à¤¿à¤\96ितमसà¥\8dति à¤\85थवा à¤\95सà¥\8dमाà¤\9aà¥\8dà¤\9aतà¥\8d à¤\9cनारà¥\8dपितातà¥\8d à¤µà¤¾ à¤®à¥\81à¤\95à¥\8dतातà¥\8d à¤µà¤¾ à¤¸à¥\8dरà¥\8bतसà¤\83 à¤ªà¥\8dरतिलिपà¥\80à¤\95à¥\83तमसà¥\8dति।\n\n'''पà¥\8dरतिलिपà¥\8dयधिà¤\95ारयà¥\81तानà¥\8d à¤²à¥\87à¤\96ानà¥\8d, à¤\85नà¥\81à¤\9cà¥\8dà¤\9eाà¤\82 à¤µà¤¿à¤¨à¤¾, à¤®à¤¾à¤½à¤¤à¥\8dर à¤ªà¥\8dरददातà¥\81!'''",
-    "copyrightwarning2": "à¤\95à¥\83पया à¤¸à¤\82सà¥\8dमरà¥\8dतवà¥\8dयà¤\82 à¤¯à¤¤à¥\8d {{SITENAME}} à¤\87तà¥\8dयà¥\87तदà¥\8d à¤ªà¥\8dरति à¤\95à¥\83तानि à¤¸à¤°à¥\8dवाणि à¤¯à¥\8bà¤\97दानानि  à¤\87तà¥\8dयसà¥\8dय à¤ªà¥\8dरतिबà¤\82धाà¤\82तरà¥\8dà¤\97तानि à¤¸à¤¨à¥\8dति (à¤\85धिà¤\95ाय à¤\9cà¥\8dà¤\9eानाय $1 à¤\87तà¥\8dयà¥\87तदà¥\8d à¤ªà¤¶à¥\8dयतà¥\81)।\n\nयदि à¤­à¤µà¤¾à¤¨à¥\8d à¤¸à¥\8dवà¤\95à¥\80यानि à¤²à¤¿à¤\96ितानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतमनà¥\8dतशà¥\8dà¤\9a, à¤ªà¥\81नà¤\83 à¤µà¤¿à¤¤à¤°à¥\8dयमनà¥\8dतशà¥\8dà¤\9a à¤¨ à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81मिà¤\9aà¥\8dà¤\9bति à¤¤à¤¦à¤¾ à¤®à¤¾ à¤\95à¥\83पया à¤®à¤¾à¤½à¤¤à¥\8dर à¤¯à¥\8bà¤\97दानà¤\82 à¤\95रà¥\8bतà¥\81। <br />\n\nभवानà¥\8d à¤\8fतदपि à¤ªà¥\8dरमाणà¥\80à¤\95रà¥\8bति à¤¯à¤¤à¥\8d à¤\8fतदà¥\8d à¤­à¤µà¤¤à¤¾ à¤¸à¥\8dवतà¤\83 à¤²à¤¿à¤\96ितमसà¥\8dति à¤\85थवा à¤\95सà¥\8dमाà¤\9aà¥\8dà¤\9aतà¥\8d à¤\9cनारà¥\8dपितातà¥\8d à¤µà¤¾ à¤®à¥\81à¤\95à¥\8dतातà¥\8d à¤µà¤¾ à¤¸à¥\8dरà¥\8bतसà¤\83 à¤ªà¥\8dरतिलिपà¥\80à¤\95à¥\83तमसà¥\8dति।\n\n'''पà¥\8dरतिलिपà¥\8dयधिà¤\95ारयà¥\81तानà¥\8d à¤²à¥\87à¤\96ानà¥\8d, à¤\85नà¥\81à¤\9cà¥\8dà¤\9eाà¤\82 à¤µà¤¿à¤¨à¤¾, à¤®à¤¾à¤½à¤¤à¥\8dर à¤ªà¥\8dरददातà¥\81!'''",
-    "longpageerror": "रुटिः: भवता प्रदत्तः पाठः {{PLURAL:}} $1 किलोबैटमितः दीर्घः, अतः एषः अधिकतमानुज्ञातात् $2 मितात् दीर्घतरः अस्ति। एषः रक्षितुं न शक्यते।'''",
-    "readonlywarning": "पूर्वसूचना ''' निर्वहणार्थं पाठः पिहितः । अधुना भवान् सम्पादनं रक्षितुं नैव शक्नोति । पाठसञ्चिकायां संश्लेष्य कार्यफलं रक्षतु । एतद्विवरणं प्रतिबन्धकः प्रशासकः विरतरि ।$1",
-    "protectedpagewarning": "'''पूर्वसूचना ''' प्रशासकपदयुक्ताः योजकाः एव सम्पादनं कर्तुमर्हन्ति । अतः एतत्पुटं सुरक्षितम् । निदेशार्थम् अधः जघन्यप्रवेशः सूचितः ।",
-    "semiprotectedpagewarning": "'''सà¥\82à¤\9aना ''' à¤ªà¤\9eà¥\8dà¤\9cà¥\80à¤\95à¥\83तयà¥\8bà¤\9cà¤\95ानाà¤\82  à¤\89पयà¥\8bà¤\97ारà¥\8dथ à¤\95à¥\87वलमà¥\8d à¤\8fततà¥\8dपà¥\81à¤\9fमà¥\8d à¤\85भिरà¤\95à¥\8dषितमà¥\8d à¥¤ à¤\9cà¤\98नà¥\8dयपà¥\8dरवà¥\87शसà¥\8dय à¤¸à¥\82à¤\9aना à¤\86नà¥\81à¤\95à¥\82लà¥\8dयारà¥\8dथमà¥\8d à¤\85धà¥\8bनिदà¥\87शिता à¥¤",
-    "cascadeprotectedwarning": "'''पूर्वसूचना ''' प्रशासकसौकर्ययुक्तानां योजकानाम् सम्पादनार्थम् एतत् पुटम् अभिरक्षितमस्ति । यतः अधोनिदेशितनिर्झरे एतदन्तर्गतम् । {{PLURAL:$1|page|pages}}:",
-    "titleprotectedwarning": "'''पूर्वसूचना  [[Special:ListGroupRights|specific rights]] जनानां सर्जनार्थम् एतत्पुटम् अभिरक्षितम् । '''",
+    "copyrightwarning": "à¤\95à¥\83पया à¤§à¥\8dयानà¤\82 à¤¦à¤¦à¤¾à¤¤à¥\81 à¤¯à¤¤à¥\8d, {{SITENAME}} à¤\87तà¥\8dयतà¥\8dर à¤\95à¥\83तानि à¤¸à¤°à¥\8dवाणि à¤¯à¥\8bà¤\97दानानि $2 à¤\87तà¥\8dयसà¥\8dय à¤¨à¤¿à¤¯à¤¨à¤¾à¤¨à¥\81सारà¤\82 à¤­à¤µà¤¿à¤·à¥\8dयनà¥\8dति à¥¤ (विसà¥\8dतारà¥\87ण à¤\9cà¥\8dà¤\9eातà¥\81à¤\82 $1 à¤\85तà¥\8dर à¤¨à¥\81दतà¥\81)\nभवानà¥\8d/भवतà¥\80 à¤¸à¥\8dवसà¥\8dय à¤¯à¥\8bà¤\97दानà¥\87षà¥\81 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन-पà¥\81नरà¥\8dनिरà¥\8dदà¥\87शन-à¤\86दिनि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¤\9aà¥\87तà¥\8d, à¤\85तà¥\8dर à¤¯à¥\8bà¤\97दानà¤\82 à¤®à¤¾ à¤\95रà¥\8bतà¥\81 à¥¤ (à¤\85तà¥\8dर à¤¤à¥\81 à¤²à¤¿à¤\96ितà¥\87 à¤¨à¤¿à¤°à¤¨à¥\8dतरà¤\82 à¤ªà¤¿à¤°à¤µà¤°à¥\8dतनà¤\82 à¤­à¤µà¤¤à¥\8dयà¥\87व à¤\87ति à¤­à¤¾à¤µà¤\83)\n<br />\n\nà¤\85सà¥\8dमभà¥\8dयà¤\82 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤ªà¥\8dरतिà¤\9cà¥\8dà¤\9eा à¤\95रà¥\8dतवà¥\8dया à¤¯à¤¤à¥\8d, \"à¤\85तà¥\8dर à¤¯à¤¤à¥\8dà¤\95िमपि à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤²à¥\87à¤\96िषà¥\8dयति, à¤¤à¤¤à¥\8d à¤¸à¤°à¥\8dवà¤\82 à¤¸à¥\8dवरà¤\9aितà¤\82, à¤¸à¤¾à¤°à¥\8dवà¤\9cनà¥\80à¤\95à¤\82 à¤\9a à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤ à¤\95à¥\81तसà¥\8dमातà¥\8d à¤¸à¥\8dथानातà¥\8d à¤ªà¥\8dरतिलिपिà¤\95à¥\83तमà¥\8d à¤\85पि à¤¸à¤¾à¤°à¥\8dवà¤\9cनà¥\80à¤\95मà¥\87व à¤¸à¥\8dयातà¥\8d\" à¤\87ति à¥¤ \n<strong>à¤\85नà¥\8dयसà¥\8dय à¤¸à¤°à¥\8dवाधिà¤\95ारानà¥\8dतरà¥\8dà¤\97तà¤\82 (copyright) à¤¯à¤¤à¥\8d à¤­à¤µà¤¤à¤¿, à¤¤à¤¤à¥\8d à¤µà¤¿à¤¨à¤¾ à¤\85नà¥\81मतà¥\8dया à¤\85तà¥\8dर à¤²à¤¿à¤\96तà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dयतà¥\87 à¥¤</strong>",
+    "copyrightwarning2": "à¤\95à¥\83पया à¤§à¥\8dयानà¤\82 à¤¦à¤¦à¤¾à¤¤à¥\81 à¤¯à¤¤à¥\8d, {{SITENAME}} à¤\87तà¥\8dयतà¥\8dर à¤\95à¥\83तानि à¤¸à¤°à¥\8dवाणि à¤¯à¥\8bà¤\97दानानि à¤\85नà¥\8dययà¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82, à¤ªà¤°à¤¿à¤°à¥\8dवतितà¥\81à¤\82, à¤¨à¤¿à¤·à¥\8dà¤\95ाशयितà¥\81à¤\82 à¤\9a à¤¶à¤\95à¥\8dयनà¥\8dतà¥\87 à¥¤ \nभवानà¥\8d/भवतà¥\80 à¤¸à¥\8dवसà¥\8dय à¤¯à¥\8bà¤\97दानà¥\87षà¥\81 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन-पà¥\81नरà¥\8dनिरà¥\8dदà¥\87शन-à¤\86दिनि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¤\9aà¥\87तà¥\8d, à¤\85तà¥\8dर à¤¯à¥\8bà¤\97दानà¤\82 à¤®à¤¾ à¤\95रà¥\8bतà¥\81 à¥¤ (à¤\85तà¥\8dर à¤¤à¥\81 à¤²à¤¿à¤\96ितà¥\87 à¤¨à¤¿à¤°à¤¨à¥\8dतरà¤\82 à¤ªà¤¿à¤°à¤µà¤°à¥\8dतनà¤\82 à¤­à¤µà¤¤à¥\8dयà¥\87व à¤\87ति à¤­à¤¾à¤µà¤\83)\n<br />\n\nà¤\85सà¥\8dमभà¥\8dयà¤\82 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤ªà¥\8dरतिà¤\9cà¥\8dà¤\9eा à¤\95रà¥\8dतवà¥\8dया à¤¯à¤¤à¥\8d, \"à¤\85तà¥\8dर à¤¯à¤¤à¥\8dà¤\95िमपि à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤²à¥\87à¤\96िषà¥\8dयति, à¤¤à¤¤à¥\8d à¤¸à¤°à¥\8dवà¤\82 à¤¸à¥\8dवरà¤\9aितà¤\82, à¤¸à¤¾à¤°à¥\8dवà¤\9cनà¥\80à¤\95à¤\82 à¤\9a à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤ à¤\95à¥\81तसà¥\8dमातà¥\8d à¤¸à¥\8dथानातà¥\8d à¤ªà¥\8dरतिलिपिà¤\95à¥\83तमà¥\8d à¤\85पि à¤¸à¤¾à¤°à¥\8dवà¤\9cनà¥\80à¤\95मà¥\87व à¤¸à¥\8dयातà¥\8d\" à¤\87ति à¥¤ \n<strong>à¤\85नà¥\8dयसà¥\8dय à¤¸à¤°à¥\8dवाधिà¤\95ारानà¥\8dतरà¥\8dà¤\97तà¤\82 (copyright) à¤¯à¤¤à¥\8d à¤­à¤µà¤¤à¤¿, à¤¤à¤¤à¥\8d à¤µà¤¿à¤¨à¤¾ à¤\85नà¥\81मतà¥\8dया à¤\85तà¥\8dर à¤²à¤¿à¤\96तà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dयतà¥\87 à¥¤</strong>",
+    "longpageerror": "<strong>दोषः : भवता/भवत्या लिखितः पाठः  {{PLURAL:$1|सहाष्टकं|$1 सहाष्टकानि}} दीर्घः अस्ति । एषः पाठः बृह्त्तमसीमया अपेक्षया {{PLURAL:$2|सहाष्टकं|$2 सहाष्टकानि}} दीर्घः अस्ति ।(सहस्राष्टकानि (kilobytes) इत्यस्य सङ्क्षेपः सहाष्टकम्)</strong>\nएतत् रक्षितुं न शक्यते ।",
+    "readonlywarning": "<strong>पूर्वसूचना : दत्तांशः (database) किलितः अस्ति । अतः अधुना भवान्/भवती स्वस्य सम्पादनं रक्षितुं न शक्नोति ।</strong>\nस्वस्य परिवर्तितस्य लेखस्य .txt .doc वा सञ्चिकां निर्माय किञ्चित् कालानन्तरं रक्षतु । \nदत्तांश-किलनस्य कारणं प्रबन्धकेन दत्तं यत्, : $1",
+    "protectedpagewarning": "'''पूर्वसूचना : पृष्ठमेतत् संरक्षितं वर्तते । अतः केवलं प्रबन्धकाः अत्र सम्पादनं कर्तुं शक्नुवन्ति ।'''\n\nसद्यःकालीना संरक्षितावलिः (log) अधः दत्ता अस्ति :",
+    "semiprotectedpagewarning": "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना : à¤ªà¥\83षà¥\8dठमà¥\87ततà¥\8d à¤¸à¤\82रà¤\95à¥\8dषितà¤\82 à¤µà¤°à¥\8dततà¥\87 à¥¤ à¤\85तà¤\83 à¤\95à¥\87वलà¤\82 à¤ªà¤\9eà¥\8dà¤\9cिà¤\95à¥\83तयà¥\8bà¤\9cà¤\95ाà¤\83 à¤\85तà¥\8dर à¤¸à¤®à¥\8dपादनà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\81वनà¥\8dति à¥¤'''\n\nसदà¥\8dयà¤\83à¤\95ालà¥\80ना à¤¸à¤\82रà¤\95à¥\8dषितावलिà¤\83 (log) à¤\85धà¤\83 à¤¦à¤¤à¥\8dता à¤\85सà¥\8dति :",
+    "cascadeprotectedwarning": "'''पूर्वसूचना :''' पृष्ठमेतत् संरक्षितं वर्तते । अतः केवलं प्रबन्धकाः अत्र सम्पादनं कर्तुं शक्नुवन्ति ।\nनिम्ननियमान्तर्गतम् एतत्{{PLURAL:$1|पृष्ठं रक्षितं|पृष्ठानि रक्षितानि}}:",
+    "titleprotectedwarning": "'''पूर्वसूचना : एतत् पृष्ठं संरक्षितम् अस्ति । अतः अस्य सम्पादनं कर्तुं [[Special:ListGroupRights|विशेषाधिकारः]] अपेक्ष्यते ।'''\nसद्यःकालीना संरक्षितावलिः (log) अधः दत्ता अस्ति :",
     "templatesused": "अस्मिन् पृष्ठे प्रयुक्त{{PLURAL:$1|फलकम्|फलकानि}}:",
-    "templatesusedpreview": "अस्मिन् प्राग्दृश्ये प्रयुक्ताः {{PLURAL:$1|बिंबधराः |बिंबधराः}}:",
-    "templatesusedsection": "{{PLURAL:$1|Template|Templates}} अस्मिन् विभागे उपयुक्तम् ।",
+    "templatesusedpreview": "अस्मिन् प्राग्दृश्ये प्रयुक्त{{PLURAL:$1|फलकम्|फलकानि}}:",
+    "templatesusedsection": "अस्मिन् विभागे प्रयुक्त{{PLURAL:$1|फलकम्|फलकानि}}:",
     "template-protected": "(संरक्षितम्)",
     "template-semiprotected": "अर्धसंरक्षितम्",
     "hiddencategories": "इदं पृष्ठं {{PLURAL:$1|1 निगूढे वर्गे |$1 निगूढेषु वर्गेषु}} अन्तर्भवति :",
-    "nocreatetext": "{{SITENAME}} à¤¨à¥\82तनपà¥\81à¤\9fनिरà¥\8dमाणसà¥\8dय à¤\95à¥\8dषमता à¤¨à¤¿à¤¯à¤¤à¤¾ à¥¤ à¤µà¤°à¥\8dतमानापà¥\81à¤\9fानाà¤\82 à¤¸à¤®à¥\8dपादनारà¥\8dथà¤\82 à¤¨à¤¿à¤°à¥\8dà¤\97à¤\9aà¥\8dà¤\9bतà¥\81 à¥¤ à¤\85थवा [[Special:UserLogin|log in or create an account]].",
-    "nocreate-loggedin": "नà¥\82तनपà¥\81à¤\9fनिरà¥\8dमारà¥\8dथम् अनुमतिः नास्ति ।",
-    "sectioneditnotsupported-title": "विभाà¤\97समà¥\8dपादनà¤\82 à¤¨ à¤ªà¥\8bषितमà¥\8d à¥¤",
-    "sectioneditnotsupported-text": "à¤\85सà¥\8dमिनà¥\8d à¤ªà¥\81à¤\9fà¥\87 à¤µà¤¿à¤­à¤¾à¤\97समà¥\8dपादनणà¥\8d à¤¨ à¤ªà¥\8bषितमà¥\8d ।",
-    "permissionserrors": "à¤\85नà¥\81à¤\9cà¥\8dà¤\9eा-विभà¥\8dरमाः",
-    "permissionserrorstext": "भवानà¥\8d à¤¤à¤¤à¥\8d à¤\95रà¥\8dतà¥\81à¤\82 à¤\85नà¥\81à¤\9cà¥\8dà¤\9eाà¤\82 à¤¨ à¤§à¤¾à¤°à¤¯à¤¤à¤¿ {{PLURAL:$1|à¤\85धà¥\8bऽà¤\99à¥\8dà¤\95ितातà¥\8d à¤\95ारणातà¥\8d |à¤\85धà¥\8bऽà¤\99à¥\8dà¤\95ितà¥\87भà¥\8dयà¤\83 à¤\95ारणà¥\87भà¥\8dयà¤\83:}}",
+    "nocreatetext": "{{SITENAME}} à¤\9cालसà¥\8dथानà¥\87ऽसà¥\8dमिनà¥\8d à¤¨à¤µà¥\80नपà¥\83षà¥\8dठनिरà¥\8dमातà¥\81मà¥\8d à¤\85नà¥\81मतिà¤\83 à¤¨ à¤µà¤¿à¤¦à¥\8dयतà¥\87 à¥¤\nभवानà¥\8d/भवतà¥\80 à¤ªà¥\8dरतिà¤\97तà¥\8dवा à¤µà¤¿à¤¦à¥\8dयमानà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयतà¥\81 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤  à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 [[Special:UserLogin|पà¥\8dरविशà¥\8dयतामà¥\8d à¤¸à¤¦à¤¸à¥\8dयता à¤ªà¥\8dरापà¥\8dयतामà¥\8d à¤µà¤¾]].",
+    "nocreate-loggedin": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤ªà¤¾à¤°à¥\8dशà¥\8dवà¥\87 à¤¨à¤µà¥\80नपà¥\83षà¥\8dठà¤\82 à¤°à¤\9aितà¥\81म् अनुमतिः नास्ति ।",
+    "sectioneditnotsupported-title": "विभाà¤\97सà¥\8dय à¤¸à¤®à¥\8dपादनà¤\82 à¤¶à¤\95à¥\8dयà¤\82 à¤¨à¤¾à¤¸à¥\8dति",
+    "sectioneditnotsupported-text": "पà¥\83षà¥\8dठà¥\87ऽसà¥\8dमिनà¥\8d à¤µà¤¿à¤­à¤¾à¤\97समà¥\8dपादनà¤\82 à¤¶à¤\95à¥\8dयà¤\82 à¤¨à¤¾à¤¸à¥\8dति ।",
+    "permissionserrors": "à¤\85नà¥\81मतिदà¥\8bषः",
+    "permissionserrorstext": "à¤\8fततà¥\8d à¤\95रà¥\8dतà¥\81à¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤ªà¤¾à¤°à¥\8dशà¥\8dवà¥\87 à¤\85नà¥\81मति à¤¨à¤¾à¤¸à¥\8dति, à¤¨à¤¿à¤®à¥\8dन{{PLURAL:$1|à¤\95ारणमà¥\8d|à¤\95ारणानि}}:",
     "permissionserrorstext-withaction": "$1 निम्नकारणत्वात्  $2 सम्पादनस्य अनुमतिः नास्ति ।\n{{PLURAL:$1|कारणम्|कारणानि}}:",
-    "recreate-moveddeleted-warn": "'''पूर्वसूचना: पूर्वम् अपाकृतं पृष्टं भवता रच्यमानम् अस्ति ।'''\nअस्य पृष्ठस्य सम्पादनं करणात् प्राक् गभीरतया चिन्तनं करोतु ।\nअस्य पृष्ठस्य निर्माणं न्यायसङ्गतम् इति भवतः/भवत्याः मतमस्ति चेत् अत्र परिवर्तनं करोतु । सौकर्यार्थं पृष्ठ-अपाकरणस्य प्राक्तनसम्पादनस्य आवलिः अत्र वर्तते ।",
+    "recreate-moveddeleted-warn": "'''पूर्वसूचना: पूर्वम् अपाकृतं पृष्टं भवता रच्यमानम् अस्ति ।'''\nअस्य पृष्ठस्य सम्पादनं करणात् प्राक् गभीरतया चिन्तनं करोतु ।\nअस्य पृष्ठस्य निर्माणं न्यायसङ्गतम् इति भवतः/भवत्याः मतमस्ति चेत्, अत्र परिवर्तनं करोतु । सौकर्यार्थं पृष्ठ-अपाकरणस्य प्राक्तनसम्पादनस्य आवलिः अत्र दीयते ।",
     "moveddeleted-notice": "इदं पृष्ठम् अपाकृतम् अस्ति।\nअस्य अपाकरणस्य, स्थानान्तरणस्य च विवरणम् अधः प्रदत्तम् ।",
-    "log-fulllog": "पूर्ण प्रवर्तनरेख पश्यतु",
-    "edit-hook-aborted": "पाशेन (हुक् इत्यनेन) सम्पादनं परित्यक्तम्।\nअनेन न किमपि कारणं प्रदत्तम्।",
-    "edit-gone-missing": "पà¥\83षà¥\8dठà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतितà¥\81à¤\82 à¤¨à¤¾à¤ªà¤¾à¤°à¤¯à¤¤à¥\8d।\nपà¥\8dरतà¥\80यतà¥\87 à¤¯à¤¦à¤¿à¤¦à¤\82 à¤\85पाà¤\95à¥\83तमसà¥\8dति।",
-    "edit-conflict": "सम्पादनयोः/सम्पादनानां अन्तर्विरोधः।",
-    "edit-no-change": "भवतà¤\83 à¤¸à¤®à¥\8dपादनमà¥\8d à¤\89पà¥\87à¤\95à¥\8dषितमà¥\8d, à¤¯à¤¤à¥\8b à¤¹à¤¿ à¤­à¤µà¤¤à¤¾ à¤ªà¤¾à¤ à¥\87 à¤¨ à¤\95िमपि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤\95à¥\83तमà¥\8d।",
+    "log-fulllog": "पूर्णसंरक्षितावलिं दृश्यताम्",
+    "edit-hook-aborted": "hook द्वारा सम्पादनक्रिया मध्ये एव स्थगिता । स्थगनस्य कारणं न दत्तम् ।",
+    "edit-gone-missing": "à¤\85सà¥\8dमिनà¥\8d à¤ªà¥\83षà¥\8dठà¥\87 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤¨à¤¾à¤­à¥\82तà¥\8d à¥¤\nà¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤ªà¥\81रा à¤\8fव à¤\95à¥\87नापि à¤\85पाà¤\95à¥\83तमà¥\8d à¤\87ति à¤­à¤¾à¤¤à¤¿ ।",
+    "edit-conflict": "सम्पादनयोः अन्तर्विरोधः ।",
+    "edit-no-change": "भवता/भवतà¥\8dया à¤\95à¥\83तà¤\82 à¤¸à¤®à¥\8dपादमà¥\8d à¤\85वà¤\97णितमà¥\8d à¥¤ à¤\95ारणà¤\82 à¤²à¥\87à¤\96à¥\87 à¤¨ à¤\95िमपि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤\9cातमसà¥\8dति ।",
     "postedit-confirmation": "सम्पादनं रक्षितम् ।",
-    "edit-already-exists": "नूतनं पृष्ठं स्रष्टुं नापारयत्।\nइदं पूर्वे एव विद्यते।",
-    "defaultmessagetext": "सन्देशपाठं स्थिरयतु ।",
-    "invalid-content-data": "अमान्यः सामग्रीदत्तांशः",
-    "content-not-allowed-here": "[[$2]] इति पृष्ठे \"$1\" सामग्री अनुमता नास्ति।",
-    "editwarning-warning": "अस्मात् पृष्ठात् गमनेन अत्र भवता कृतानि परिवर्तनानि निष्फलानि भवेयुः ।\nभवता यदि प्रविष्टं तर्हि मम इष्टतमानि इत्यत्र अस्मिन् विभागे सम्पादनेन एषः प्रबोधः यथा न आगच्छेत् तथा कर्तुं शक्यते ।",
+    "edit-already-exists": "नूतनपृष्ठस्य निर्माणं नाभूत् ।\nपूर्वस्मादेव एतत् पृष्ठं विद्यते ।",
+    "defaultmessagetext": "मूलसन्देशः",
+    "content-failed-to-parse": "$1 कृते $2 इत्यस्य विभाजनं विफलम् अभवत् । दोषः : $3",
+    "invalid-content-data": "अयोग्यः लेखः",
+    "content-not-allowed-here": "[[$2]] पृष्ठे \"$1\" सामग्री अनुमता नास्ति",
+    "editwarning-warning": "एतत् पृष्ठं त्यक्तवा यदि गमिष्यति, तर्हि भवता/भवत्या कृतस्य सम्पादनस्य रक्षणं न भविष्यति ।\n\nभवता/भवत्या यदि प्रवेशः प्राप्तः अस्ति, तर्हि एषा सूचना अत्र \"{{int:prefs-editing}}\" निगूढितुं शक्यते ।",
+    "editpage-notsupportedcontentformat-title": "लेखस्य प्रारूपम् अयोग्यम्",
+    "editpage-notsupportedcontentformat-text": "लेखस्य सामग्र्याः $1 इति प्रारूपं $2 सामग्री-उदाहरणानुगुणं नास्ति ।",
     "content-model-wikitext": "विकिपाठः",
     "content-model-text": "शुद्धपाठः",
     "content-model-javascript": "जावालिपिः",
     "content-model-css": "सी-एस्-एस्",
-    "expensive-parserfunction-warning": "'''प्रबोधः :''' अस्मिन् पृष्ठे प्रभूतानि जटिलानि पार्सर्-फ़ंक्शन्-आह्वानानि सन्ति।\nअत्र $2 संख्यातः  {{PLURAL:$2|न्यूनं आह्वानं|न्यूनानि आह्वानानि}} भवितव्यानि, सद्यः तत्र {{PLURAL:$1 $1 आह्वानं विद्यते|$1 आह्वानानि विद्यन्ते}}।",
-    "expensive-parserfunction-category": "पà¥\8dरभà¥\82तà¥\87भà¥\8dयà¤\83 à¤\9cà¤\9fिलà¥\87भà¥\8dयà¤\83 à¤ªà¤¾à¤°à¥\8dसरà¥\8d-फà¤\82à¤\95à¥\8dशनà¥\8d-à¤\86हà¥\8dवानà¥\87भà¥\8dयà¤\83 à¤¯à¥\81à¤\95à¥\8dतानि à¤ªà¥\83षà¥\8dठाणि।",
+    "expensive-parserfunction-warning": "<strong>पूर्वसूचना :</strong> अस्मिन् पृष्ठे बहवः विभाजिताः नियोजिताः (functions) विद्यन्ते ।\n\nअत्र न्यूनातिन्यूनं $2 {{PLURAL:$2|आह्वानं|आह्वानानि}} शक्यते । तत्र {{PLURAL:$1|अधुना $1 आह्वाहनं|अधिना $1 आह्वाहनानि}}",
+    "expensive-parserfunction-category": "à¤\85सà¥\8dमिनà¥\8d à¤ªà¥\83षà¥\8dठà¥\87 à¤¬à¤¹à¤µà¤\83 à¤µà¤¿à¤­à¤¾à¤\9cिताà¤\83 à¤¨à¤¿à¤¯à¥\8bà¤\9cिताà¤\83 (functions) à¤µà¤¿à¤¦à¥\8dयनà¥\8dतà¥\87 ।",
     "post-expand-template-inclusion-warning": "'''पूर्वसूचना:''' फलकस्य आकारः बृहत् वर्तते । कानिचन फलकानि नान्तर्भविष्यन्ति ।",
     "post-expand-template-inclusion-category": "सूचनाफलकस्य अपेक्षया पृष्ठं बृहत् वर्तते ।",
     "post-expand-template-argument-warning": "'''पूर्वसूचना''' अस्मिन् पृष्ठे स्थितस्य फलकस्य एकः विकल्पः बहु बृहत् वर्तते । तस्य विकल्पस्य अंशाः अपाकृताः ।",
     "post-expand-template-argument-category": "येषु पृष्ठेषु फलके स्थिताः विकल्पाः न पूरिताः तेषां पृष्ठानाम् आवलिः",
-    "parser-template-loop-warning": "बिमà¥\8dबधर-पाशà¤\83 à¤ªà¥\8dरापà¥\8dतà¤\83: [[$1]]",
-    "parser-template-recursion-depth-warning": "बिमà¥\8dबधर-पà¥\81नरावरà¥\8dतनारà¥\8dथà¤\82 à¤\97हनतायाà¤\83 à¤¸à¥\80मा à¤\85तिà¤\95à¥\8dरानà¥\8dताऽसà¥\8dति ($1)",
-    "language-converter-depth-warning": "भाषा-परिवरà¥\8dतà¤\95सà¥\8dय à¤\97हनतायाà¤\83 à¤¸à¥\80मा à¤\85तिà¤\95à¥\8dरानà¥\8dताऽसà¥\8dति (*$1)",
-    "node-count-exceeded-category": "सनà¥\8dधिà¤\97णनमà¥\8d à¤\85तिà¤\95à¥\8dरानà¥\8dतपà¥\81à¤\9fानि à¥¤",
-    "node-count-exceeded-warning": "सनà¥\8dधिà¤\97णनà¥\87न à¤¤à¤¿à¤\95à¥\8dरानà¥\8dतपà¥\81à¤\9fमà¥\8d à¥¤",
-    "expansion-depth-exceeded-category": "पà¥\81à¤\9fविसà¥\8dतारसà¥\8dय à¤\97ाहà¤\83 à¤\85तिà¤\95à¥\8dरानà¥\8dतà¤\83 à¥¤",
-    "expansion-depth-exceeded-warning": "विसà¥\8dतारà¤\97ाहातिà¤\95à¥\8dरानà¥\8dतपà¥\81à¤\9fमà¥\8d à¥¤",
-    "parser-unstrip-loop-warning": "अपट्टरन्धः दृष्टः ।",
-    "parser-unstrip-recursion-limit": "अपट्टपुनरवतरणमितिः अतिक्रान्ता ।$1",
+    "parser-template-loop-warning": "फलà¤\95सà¥\8dय à¤ªà¤°à¤¿à¤\95à¥\8dरमà¤\83 (loop) à¤ªà¥\8dरापà¥\8dतà¤\83 : [[$1]]",
+    "parser-template-recursion-depth-warning": "फलà¤\95-पà¥\8dरतà¥\8dयावरà¥\8dतनसà¥\8dय (recursion) à¤¸à¥\80मा à¤¸à¤®à¤¾à¤ªà¥\8dता ($1)",
+    "language-converter-depth-warning": "भाषा-परिवरà¥\8dतà¤\95सà¥\8dय à¤¸à¥\80मा à¤¸à¤®à¤¾à¤ªà¥\8dता ($1)",
+    "node-count-exceeded-category": "यà¥\87षà¥\81 à¤¸à¤¨à¥\8dधà¥\87à¤\83 (node) à¤¸à¥\80मा à¤¸à¤®à¤¾à¤ªà¥\8dता, à¤¤à¥\87षाà¤\82 à¤ªà¥\83षà¥\8dठानामà¥\8d à¤\86वलिà¤\83",
+    "node-count-exceeded-warning": "पà¥\83षà¥\8dठà¥\87ऽसà¥\8dमिनà¥\8d à¤¸à¤¨à¥\8dधà¥\87à¤\83 (node) à¤¸à¥\80मा à¤¸à¤®à¤¾à¤ªà¥\8dता",
+    "expansion-depth-exceeded-category": "यà¥\87षà¥\81 à¤µà¤¿à¤¸à¥\8dतारसà¥\80मा à¤¸à¤®à¤¾à¤ªà¥\8dता, à¤¤à¥\87षाà¤\82 à¤ªà¥\83षà¥\8dठानामà¥\8d à¤\86वलिà¤\83",
+    "expansion-depth-exceeded-warning": "पà¥\83षà¥\8dठà¥\87ऽसà¥\8dमिनà¥\8d à¤µà¤¿à¤¸à¥\8dतारसà¥\80मा à¤¸à¤®à¤¾à¤ªà¥\8dता",
+    "parser-unstrip-loop-warning": "Unstrap परिक्रमः (loop) प्राप्तः",
+    "parser-unstrip-recursion-limit": "Unstrip इत्यस्य प्रत्यावर्तनस्य (recursion) सीमा समाप्ता ($1)",
     "converter-manual-rule-error": "मानवीये भाषापरिवर्तने दोषः दृष्टः ।",
-    "undo-success": "सम्पादनमिदं विपरीतीकर्तुं शक्यते।\nकृपया अधस्तात् तुलनां दृष्ट्वा निश्चितीकरोतु यत् भवान् एवमेव कर्तुमिच्छति। तदा भवान् विपरीतीकर्तुं निम्नांकितानि परिवर्तनानि रक्षतु।",
-    "undo-failure": "सम्पादनम् अकर्तुं न पारयत् यस्मात् मध्ये परस्परविरोधीनि सम्पादनानि अभवन्।",
-    "undo-norev": "इदं सम्पादनं अकर्तुं न पारयत् यस्मात् एतत् न विद्यते अथवा अपाकृतस्ति।",
-    "undo-summary": " [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) इत्यनेन कृताम् $1 इति आवृत्तिम् अकरोतु",
-    "cantcreateaccounttitle": "लेखा स्रष्टुं न शक्यते",
-    "cantcreateaccount-text": "('''$1''') इति आइपिसंकेतात् लेखासृजनम् [[User:$3|$3]] इत्यनेन अवरुद्धीकृतः अस्ति।\nएतदर्थं $3 इत्यनेन प्रदत्तं कारणम्''$2'' इत्यस्ति।",
+    "undo-success": "एतत् सम्पादनं पूर्ववत् कर्तुं शक्यते ।\nकृपया अधः दत्तयोः तुलनां कृत्वा यत् आवश्यकं, तत् संरक्षतु । ततः पूर्ववत्-करणप्रक्रिया समाप्तं भविष्यति ।",
+    "undo-failure": "सम्पादनं पूर्ववत् कर्तुं न शक्यते । कारणं मध्ये परस्परविपरितानि सम्पादनानि अभवन् ।",
+    "undo-norev": "सम्पादनमिदं पूर्ववत् कर्तुं न शक्यते । कारणं सम्पादनम् पूर्वमेव अपाकृतं अथवा न विद्यते ।",
+    "undo-nochange": "पूर्वमेव एतत् सम्पादनं पूर्ववत् कृतं स्यात् ।",
+    "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) द्वारा कृता  $1 पूर्ववत्-प्रक्रिया निरस्तीक्रियताम् ।",
+    "undo-summary-username-hidden": "निगूढितयोजकद्वारा कृता  $1 पूर्ववत्-प्रक्रिया निरस्तीक्रियताम् ।",
+    "cantcreateaccounttitle": "सदस्यता प्राप्तुं न शक्यते",
+    "cantcreateaccount-text": "(<strong>$1</strong>) इत्यस्य संविदः (IP) कृते सदस्यता प्राप्तुं न शक्यते । कारणं [[User:$3|$3]] द्वारा सा संवित्सङ्ख्या प्रतिबन्धिता अस्ति । \n\n$3 इत्यनेन कारणं दत्तं यत्, <em>$2</em>",
+    "cantcreateaccount-range-text": "सदस्यताप्राप्तेः सीमा-आक्रान्तासु '''$1''' अन्तर्जालसंवित्सु (IP) भवतः/भवत्याः अन्तर्जालसंवद् ('''$4''') अन्तर्भवति । अतः [[User:$3|$3]] द्वारा भवतः/भवत्याः अन्तर्जालसंविद् प्रतिबन्धिता ।\n\n$3 इत्यनेन कारणं दत्तं यत्, ''$2''",
     "viewpagelogs": "अस्य पृष्ठस्य संरक्षितावलिः (logs) दृश्यताम्",
-    "nohistory": "à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\95à¥\83तà¥\87 à¤ªà¥\83षà¥\8dठà¥\87तिहासà¤\83 à¤¨ à¤µà¤°à¥\8dततà¥\87।",
-    "currentrev": "सदà¥\8dयà¤\83à¤\95ालà¥\80ना आवृत्तिः",
+    "nohistory": "à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\87तिहासà¤\83 à¤¨ à¤µà¤°à¥\8dततà¥\87 ।",
+    "currentrev": "नà¥\82तनतमा आवृत्तिः",
     "currentrev-asof": "$1 समयस्य संस्करणम्",
     "revisionasof": "$1 इत्यस्य संस्करणं",
     "revision-info": "$1 पर्यन्तं $2 द्वारा जातानां परिवर्तनानाम् आवलिः",
     "last": "पूर्वतनम्",
     "page_first": "प्रथमम्",
     "page_last": "अन्तिमम्",
-    "histlegend": "भेदस्य चयनम्: आवृत्तिभेदस्य दर्शनाय अग्रे प्रदत्ता रेडियोमञ्जूषा नुद्यताम्, एण्टर्-कुड्मलं नुद्यताम्, अधः दत्तं कुड्मलं वा नुद्यताम् । <br />\nनूतनसंस्करणम् = नूतनासु आवृत्तिषु भेदः, \n(पूर्वतनम्) = पूर्वतनासु आवृत्तिषु भेदः, (लघु) = लघु सम्पादनम्",
-    "history-fieldset-title": "अन्वेषणस्य (browse) इतिहासः",
+    "histlegend": "भेदस्य चयनम् : आवृत्तिभेदस्य दर्शनाय अग्रे प्रदत्ता रेडियो-मञ्जूषा नुद्यताम्, एण्टर्-कुड्मलं नुद्यताम्, अधः दत्तं कुड्मलं वा नुद्यताम् । <br />\nनूतनसंस्करणम् = नूतनासु आवृत्तिषु भेदः, \n(पूर्वतनम्) = पूर्वतनासु आवृत्तिषु भेदः, (लघु) = लघु सम्पादनम्",
+    "history-fieldset-title": "अन्वेषणस्य इतिहासः",
     "history-show-deleted": "केवलम् अपाकृतम्",
     "histfirst": "पुरातनतमम्",
     "histlast": "नूतनतमम्",
-    "historysize": "({{PLURAL:$1|1 à¤¬à¥\88à¤\9fमà¥\8d|$1 à¤¬à¥\88à¤\9fानि}})",
+    "historysize": "({{PLURAL:$1|1 à¤\85षà¥\8dà¤\9fà¤\95à¤\82|$1 à¤\85षà¥\8dà¤\9fà¤\95ानि}})",
     "historyempty": "(रिक्तम्)",
-    "history-feed-title": "à¤\86वरà¥\8dतनà¥\87तिहासà¤\83",
-    "history-feed-description": "विà¤\95à¥\8dयामà¥\8d à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\86वरà¥\8dतनेतिहासः",
+    "history-feed-title": "सà¤\82सà¥\8dà¤\95रणसà¥\8dय à¤\87तिहासà¤\83",
+    "history-feed-description": "à¤\85सà¥\8dमिनà¥\8d à¤µà¤¿à¤\95ि-à¤\9cालसà¥\8dथानà¥\87 à¤¤à¤¸à¥\8dमà¥\88 à¤ªà¥\83षà¥\8dठाय à¤¸à¤\82सà¥\8dà¤\95रणेतिहासः",
     "history-feed-item-nocomment": "$1 द्वारा $3 दिनाङ्के $4 समये",
-    "history-feed-empty": "याà¤\9aितà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤¨ à¤µà¤¿à¤¦à¥\8dयतà¥\87।\nà¤\87दà¤\82 à¤µà¤¿à¤\95ितà¤\83 à¤\85पाà¤\95à¥\83तमà¥\8d à¤\85थवा à¤ªà¥\81नरà¥\8dनामितà¤\82 à¤¸à¥\8dयातà¥\8d।\nसमà¥\8dबनà¥\8dधितानि à¤¨à¥\82तनानि à¤ªà¥\83षà¥\8dठाणि à¤¸à¤®à¥\8dपà¥\8dरापà¥\8dतà¥\81à¤\82 [[Special:Search|विà¤\95à¥\8dयामà¥\8d à¤\85नà¥\8dवà¥\87षणà¤\82]] à¤\95रà¥\8bतà¥\81।",
-    "rev-deleted-comment": "(समà¥\8dपादनसà¥\8dय à¤¸à¤¾à¤°à¤\83 à¤\85पाà¤\95à¥\83तमसà¥\8dति)",
+    "history-feed-empty": "à¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤¨ à¤µà¤¿à¤¦à¥\8dयतà¥\87 à¥¤ \nà¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¨à¤¾à¤®à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनमà¥\8d, à¤\85पाà¤\95रणà¤\82 à¤\9a à¤\95à¥\83तà¤\82 à¤¸à¥\8dयातà¥\8d à¥¤ \n à¤\85नà¥\87न à¤¸à¤®à¥\8dबदà¥\8dधानि à¤ªà¥\83षà¥\8dठानि [[Special:Search|विà¤\95ि-à¤\9cालसà¥\8dथानà¥\87 à¤\85नà¥\8dविषà¥\8dयतामà¥\8d]] ।",
+    "rev-deleted-comment": "(समà¥\8dपादनसà¥\8dय à¤¸à¤¾à¤°à¤\83 à¤\85पाà¤\95à¥\83तà¤\83)",
     "rev-deleted-user": "(प्रयोक्तृनाम अपाकृतमस्ति)",
-    "rev-deleted-event": "(à¤\85भिलà¥\87à¤\96न-à¤\95à¥\8dरिया à¤\85पाà¤\95à¥\83ताऽसà¥\8dति)",
-    "rev-deleted-user-contribs": "[पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤\85थवा à¤\86à¤\87पà¥\80सà¤\82à¤\95à¥\87तà¤\83 à¤\85पाà¤\95à¥\83तà¤\83 - à¤¸à¤®à¥\8dपादनà¤\82 à¤¯à¥\8bà¤\97दानà¥\87भà¥\8dयà¤\83 à¤¨à¤¿à¤\97à¥\82ढमसà¥\8dति]",
-    "rev-deleted-text-permission": "à¤\85सà¥\8dय à¤ªà¥\81à¤\9fसà¥\8dय à¤ªà¥\81नरवतरणमà¥\8d à¤\85पमारà¥\8dà¤\9cितमà¥\8d à¥¤ à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dयतà¥\87  à¥¤ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
-    "rev-deleted-text-unhide": "à¤\85सà¥\8dय à¤ªà¥\81à¤\9fसà¥\8dय à¤ªà¥\81नरवतरणमà¥\8d à¤\85पमारà¥\8dà¤\9cितमà¥\8d à¥¤ à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dयतà¥\87 à¥¤ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].\nYou can still [$1 view this revision]",
-    "rev-suppressed-text-unhide": "à¤\85सà¥\8dय à¤ªà¥\81à¤\9fसà¥\8dय à¤ªà¥\81नरवतरणà¤\82 ''' à¤¨à¤¿à¤·à¤¿à¤¦à¥\8dधमà¥\8d ''' à¤¯à¤¦à¤¿ à¤\85नà¥\81वरà¥\8dतनमिà¤\9aà¥\8dà¤\9bति à¤¤à¤°à¥\8dहि à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dयतà¥\87 à¥¤ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].\nYou can still [$1 view this revision]",
-    "rev-deleted-text-view": "à¤\8fतसà¥\8dमातà¥\8d à¤\85नà¥\8dतरतà¤\83 à¤\95िà¤\9eà¥\8dà¤\9aिदवतरणà¤\82 à¤ªà¤°à¤¿à¤®à¤¾à¤°à¥\8dà¤\9cितमà¥\8d à¥¤ à¤\8fतदनà¥\8dतरà¤\82 à¤¦à¥\83षà¥\8dà¤\9fà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\81वनà¥\8dति à¥¤ à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¤¹à¤\9fानà¥\87 à¤\95à¥\80 à¤²à¥\89à¤\97]",
-    "rev-suppressed-text-view": "à¤\85सà¥\8dमिनà¥\8dननà¥\8dतरà¥\87 à¤\95िà¤\9eà¥\8dà¤\9aिदवतरणà¤\82 à¤¸à¤\99à¥\8dà¤\97à¥\81पतमà¥\8d à¥¤ à¤¤à¤¦à¤¨à¥\8dतरमà¥\8d à¤\85तà¥\8dर à¤¦à¥\83षà¥\8dà¤\9fà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\81वनà¥\8dति à¥¤ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].",
-    "rev-deleted-no-diff": "à¤\8fततà¥\8d à¤¦à¥\83षà¥\8dà¤\9fà¥\81à¤\82 à¤¨à¥\88व à¤¶à¤\95à¥\8dयतà¥\87 à¤¯à¤¤à¤\83 à¤ªà¥\81नरावरà¥\8dतनà¤\82 à¤ªà¤°à¤¿à¤®à¤¾à¤°à¥\8dà¤\9cितमà¥\8d à¥¤ à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dयतà¥\87 à¥¤ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
-    "rev-suppressed-no-diff": "à¤\8fतदनà¥\8dतरà¤\82 à¤¦à¥\83षà¥\8dà¤\9fà¥\81à¤\82 à¤¨à¥\88व à¤¶à¤\95à¥\8dयतà¥\87 à¤¯à¤¤à¤\83 à¤\85तà¥\8dर à¤\95िà¤\9eà¥\8dà¤\9aिदवतरणà¤\82 à¤ªà¤°à¤¿à¤®à¤¾à¤°à¥\8dà¤\9cितमà¥\8d ।",
-    "rev-deleted-unhide-diff": "à¤\85सà¥\8dय à¤ªà¥\81à¤\9fसà¥\8dय à¤ªà¥\81नरवतरणमà¥\8d à¤\85पमारà¥\8dà¤\9cितमà¥\8d à¥¤ à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dयतà¥\87 à¥¤ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].\nYou can still [$1 view this revision]",
-    "rev-suppressed-unhide-diff": "à¤\85सà¥\8dय à¤ªà¥\81à¤\9fसà¥\8dय à¤ªà¥\81नरवतरणà¤\82 ''' à¤¨à¤¿à¤·à¤¿à¤¦à¥\8dधमà¥\8d ''' à¤¯à¤¦à¤¿ à¤\85नà¥\81वरà¥\8dतनमिà¤\9aà¥\8dà¤\9bति à¤¤à¤°à¥\8dहि à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dयतà¥\87 à¥¤ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].\nYou can still [$1 view this revision]",
-    "rev-deleted-diff-view": "à¤\8fतसà¥\8dमातà¥\8d à¤\85नà¥\8dतरतà¤\83 à¤\95िà¤\9eà¥\8dà¤\9aिदवतरणà¤\82 à¤ªà¤°à¤¿à¤®à¤¾à¤°à¥\8dà¤\9cितमà¥\8d à¥¤ à¤\8fतदनà¥\8dतरà¤\82 à¤¦à¥\83षà¥\8dà¤\9fà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\81वनà¥\8dति à¥¤ à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¤¹à¤\9fानà¥\87 à¤\95à¥\80 à¤²à¥\89à¤\97]",
-    "rev-suppressed-diff-view": "à¤\85सà¥\8dमिनà¥\8dननà¥\8dतरà¥\87 à¤\95िà¤\9eà¥\8dà¤\9aिदवतरणà¤\82 à¤¸à¤\99à¥\8dà¤\97à¥\81पतमà¥\8d à¥¤ à¤¤à¤¦à¤¨à¥\8dतरमà¥\8d à¤\85तà¥\8dर à¤¦à¥\83षà¥\8dà¤\9fà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\81वनà¥\8dति à¥¤ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].",
+    "rev-deleted-event": "(सà¤\82रà¤\95à¥\8dषिताऽऽवलà¥\8dयà¤\83(log) à¤\85पाà¤\95à¥\83ताà¤\83)",
+    "rev-deleted-user-contribs": "[पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¥\8d à¤µà¤¾ à¤\85पाà¤\95à¥\83तमà¥\8d - à¤¯à¥\8bà¤\97दानाऽऽवलà¥\8dयामà¥\8d à¤\8fतानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¨à¤¿à¤\97à¥\82ढितानि à¤¸à¤¨à¥\8dति à¥¤]",
+    "rev-deleted-text-permission": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+    "rev-deleted-text-unhide": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि à¤\87à¤\9aà¥\8dà¤\9bति, à¤¤à¤°à¥\8dहि à¤\85तà¥\8dरापि [$1 view this revision] à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤",
+    "rev-suppressed-text-unhide": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि à¤\87à¤\9aà¥\8dà¤\9bति, à¤¤à¤°à¥\8dहि à¤\85तà¥\8dरापि [$1 view this revision] à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤",
+    "rev-deleted-text-view": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+    "rev-suppressed-text-view": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+    "rev-deleted-no-diff": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+    "rev-suppressed-no-diff": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> ।",
+    "rev-deleted-unhide-diff": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\n\nयदि à¤\87à¤\9aà¥\8dà¤\9bति, à¤¤à¤°à¥\8dहि à¤\85तà¥\8dरापि [$1 view this revision] à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤",
+    "rev-suppressed-unhide-diff": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि à¤\87à¤\9aà¥\8dà¤\9bति, à¤¤à¤°à¥\8dहि à¤\85तà¥\8dरापि [$1 view this revision] à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤",
+    "rev-deleted-diff-view": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+    "rev-suppressed-diff-view": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
     "rev-delundel": "दृश्यताम्/गोप्यताम्",
     "rev-showdeleted": "दर्श्यताम्",
-    "revisiondelete": "à¤\85वतरणà¤\82 à¤ªà¤°à¤¿à¤®à¤¾à¤°à¥\8dà¤\9cयतà¥\81/पà¥\81नस्थापयतु",
-    "revdelete-nooldid-title": "लà¤\95à¥\8dषà¥\8dयरà¥\82पा à¤\86वà¥\83तà¥\8dतिà¤\83 à¤\85मानà¥\8dयाऽसà¥\8dति।",
-    "revdelete-nooldid-text": "एतत्कार्यं कर्तुं भवतः अवतरणं न दत्तम् । अथवा भवता दत्तावतरणस्य अस्तित्वं नास्ति । अथवा सद्यः अवतरणस्य सङ्गोपनं कुर्वन् अस्ति ।",
+    "revisiondelete": "सà¤\82सà¥\8dà¤\95रणानि à¤¨à¤¿à¤·à¥\8dà¤\95ासयतà¥\81/पà¥\81नसà¥\8dस्थापयतु",
+    "revdelete-nooldid-title": "à¤\85यà¥\8bà¤\97à¥\8dयलà¤\95à¥\8dषà¥\8dयसà¥\8dय à¤¸à¤\82शà¥\8bधनमà¥\8d",
+    "revdelete-nooldid-text": "एतत् कार्यं कर्तुं भवता/भवत्या लक्ष्य न निर्धारितम् एतत् संस्करणं न भवेत् वा । भवान्/भवती एतत् संस्करणं निगूढितुम् प्रयतति इत्यपि शक्यम् ।",
     "revdelete-no-file": "निर्दिष्टा सञ्चिका न विद्यते ।",
-    "revdelete-show-file-confirm": "$2 à¤¤à¤\83 $3 à¤®à¤§à¥\8dयà¥\87 \"<nowiki>$1</nowiki>\" à¤\87ति à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 à¤¨à¤¿à¤°à¤¸à¥\8dतà¤\82 à¤ªà¤°à¤¿à¤·à¥\8dà¤\95रणà¤\82 à¤­à¤µà¤¾à¤¨à¥\8d à¤¨à¥\82नà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81मà¥\8d à¤\87à¤\9aà¥\8dà¤\9bति ?",
+    "revdelete-show-file-confirm": "$2 à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95सà¥\8dय  $3 à¤¸à¤®à¤¯à¤ªà¤°à¥\8dयनà¥\8dतसà¥\8dय  \"<nowiki>$1</nowiki>\" à¤\87तà¥\8dयसà¥\8dयाà¤\83 à¤\85पाà¤\95à¥\83तसà¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 à¤¸à¤\82सà¥\8dà¤\95रणाऽऽवलिà¤\82 à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤¨à¤¿à¤¶à¥\8dà¤\9aयà¥\87न à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81मà¥\8d à¤\88पà¥\8dसति ?",
     "revdelete-show-file-submit": "आम्",
-    "logdelete-selected": "{{PLURAL:$1|Selected log event|Selected log events}}:",
-    "revdelete-confirm": "भवान् एतत् कार्यं करोति इति दढयतु । भवान् अस्य परिणामं जानाति । [[{{MediaWiki:Policy-url}}|the policy]] भवान् एतदनुसारं करोति ।",
-    "revdelete-suppress-text": "अधोनिदेशितपरिस्थितिषु केवलं निग्रहः कार्यः । \n* अवमाननीयाः विषयाः ।\n* अप्रधानाः वैयक्तिकविषयाः\n* गृहसङ्केतः, दूरवाणीसङ्ख्या, सामाजिकसुरक्षासङ्ख्या, इत्यादयः ।",
-    "revdelete-legend": "दृश्यप्रतिबन्धं निश्चिनोतु ।",
-    "revdelete-hide-text": "अवतरणस्य पाठं गोपयतु ।",
-    "revdelete-hide-image": "सञ्चिकाधेयं गोपयतु ।",
-    "revdelete-hide-name": "प्रक्रियां लक्ष्यं च गोपयतु ।",
-    "revdelete-hide-comment": "सम्पादनसारं गोपयतु ।",
-    "revdelete-hide-user": "सम्पादकस्य योजकनाम/आइपिसंकेतः गोप्यताम्।",
-    "revdelete-hide-restricted": "प्रबन्धकेभ्यः अन्येभ्यश्च समंकं गोपयतु।",
-    "revdelete-radio-same": "मा परिवर्तयतु।",
-    "revdelete-radio-set": "आम्",
-    "revdelete-radio-unset": "न हि",
-    "revdelete-suppress": "प्रबन्धकेभ्यः अन्येभ्यश्च समंकं गोपयतु।",
-    "revdelete-unsuppress": "प्रत्यानीताऽऽवृत्तिभ्यः  वर्जनाः अपाकरोतु।",
+    "revdelete-selected-text": "[[:$2]] इत्यस्य {{PLURAL:$1|चित-परिवर्तनं|चित-परिवर्तनानि}} :",
+    "revdelete-selected-file": "[[:$2]] इत्यस्य {{PLURAL:$1|चित-सञ्चिका|चित-सञ्चिकाः}} :",
+    "logdelete-selected": "[[:$2]] इत्यस्य {{PLURAL:$1|चित-संरक्षिताऽऽवलेः घटना|संरक्षिताऽऽवलेः घटनाः}} :",
+    "revdelete-text-text": "पृष्ठस्य इतिहासे अधुनापि अपाकृतानि संस्करणानि द्रष्टुं शक्यन्ते । परन्तु सामान्ययोजकेभ्यः तत्र परिवर्तनम् अशक्यम् ।",
+    "revdelete-text-file": "सञ्चिकायाः इतिहासे अधुनापि अपाकृतानां सञ्चिकानां संस्करणानि द्रष्टुं शक्यन्ते । परन्तु सामान्ययोजकेभ्यः तत्र परिवर्तनम् अशक्यम् ।",
+    "logdelete-text": "संरक्षिताऽऽवलीनां(log) संस्करणानि संरक्षिताऽऽवल्यां द्रष्टुं शक्यन्ते । परन्तु सामान्ययोजकेभ्यः तत्र परिवर्तनम् अशक्यम् ।",
+    "revdelete-confirm": "एतस्याः [[{{MediaWiki:Policy-url}}|नीतेः]] अन्तर्गतं भवता/भवत्या एतत् कार्यं गभीरतया क्रियमाणम् अस्ति इत्यस्य पुष्टतां करोतु ।",
+    "revdelete-suppress-text": "<strong>केवलं</strong> निम्नकारणेभ्यः निषेधः योग्यः....\n१ भयोत्पादकमाहिती स्यात्\n२ वैयक्तिकमाहिती स्यात्\n३ <em>गृहसङ्केतः, दूरभाषसङ्केतः, राष्ट्रियपरिचयपत्रस्य अङ्कः इत्यादीनि माहितयः स्युः ।</em>",
+    "revdelete-legend": "दृश्यप्रतिबन्धं निश्चितं करोतु",
+    "revdelete-hide-text": "संस्करणस्थं लेखनं (text)",
+    "revdelete-hide-image": "सञ्चिकाधेयं गोप्यताम्",
+    "revdelete-hide-name": "प्रक्रियां, लक्ष्यं च गोप्यताम्",
+    "revdelete-hide-comment": "सम्पादनसारं गोप्यताम्",
+    "revdelete-hide-user": "योजकस्य प्रयोकतृनाम/अन्तर्जालसंविद् (IP)",
+    "revdelete-hide-restricted": "प्रबन्धकेभ्यः, अन्येभ्यश्च माहिती गोप्यताम्",
+    "revdelete-radio-same": "(मा परिवर्त्यताम्)",
+    "revdelete-radio-set": "निगूढितम्",
+    "revdelete-radio-unset": "प्रत्यक्षम्",
+    "revdelete-suppress": "प्रबन्धकेभ्यः, अन्येभ्यश्च माहिती गोप्यताम्",
+    "revdelete-unsuppress": "पुनस्स्थापितसंस्करणानां प्रतिबन्धः अपाक्रियताम्",
     "revdelete-log": "कारणम् :",
-    "revdelete-submit": "{{PLURAL:$1|चितायां आवृत्त्यां|चितासु आवृत्तिषु}} अनुप्रयोजयतु।",
-    "revdelete-success": "अवतरणदृश्यता साफल्येन उन्नतीकृता ।",
-    "revdelete-failure": "अवतरणदृश्यता उन्नतीकरणं न शक्यते ।$1",
-    "logdelete-success": "नामाङ्कनदृश्यता साफल्येन योजिता ।",
-    "logdelete-failure": "नामाभिलेखदृश्यता सपला नाभवत् । $1",
+    "revdelete-submit": "{{PLURAL:$1|चित-संस्करणे|चित-संस्करणेषु}} प्रयोगं क्रियताम्",
+    "revdelete-success": "<strong>संस्करणस्य दृश्यता साफल्येन अद्यतनकृता </strong>",
+    "revdelete-failure": "<strong>संस्करणस्य दृश्यता अद्यतना नाभवत् </strong> $1",
+    "logdelete-success": "<strong>संरक्षिताऽऽवल्याः दृश्यता योग्यतया परिवर्तिता ।</strong>",
+    "logdelete-failure": "<strong>संरक्षिताऽऽवल्याः दृश्यता न परिवर्तिता ।</strong> $1",
     "revdel-restore": "दृश्यता परिवर्त्यताम्",
     "pagehist": "पृष्ठस्य इतिहासः",
-    "deletedhist": "परिमारà¥\8dà¤\9cितà¥\87तिहासà¤\83 à¥¤",
-    "revdelete-hide-current": "$2 $1 दिनाङ्कितस्य गोपने दोषः । एतत् प्रकृतावतरणम्, एतत् न गोपनीयम् ।",
-    "revdelete-show-no-access": "$2, $1: दिनाङ्कितस्य दर्शने दोषः । एतत् पञ्जीकृतमिति अङ्कितम् । एतत् प्राप्तुं नैव शक्नोति ।",
-    "revdelete-modify-no-access": " $2, $1 दिनाङ्कितं परिवर्तने दोषः । एतत् निर्बन्धितमिति अङ्कितम् । एतत् प्राप्तुं नैव शक्नोति ।",
-    "revdelete-modify-missing": "$1 दिनाङ्कितं परिवर्तने दोषः । मूलपाठात् विहीनम् एतत् ।",
-    "revdelete-no-change": "'''पूर्वसूचना ''' $2, $1 दिनाङ्किताः पूर्वमेव दृश्यतासंयोजनम् आभ्यर्थिताः ।",
-    "revdelete-concurrent-change": "$2, $1: दिनाङ्कितदेषपरिमार्जनानि । अस्य स्तरः केनचित् परिवर्तितं यत् भवता परिवर्तितुं प्रयत्नः कृतः । प्रवेशं परिशीलयतु ।",
-    "revdelete-only-restricted": "$2, $1: दिनाङ्कितस्य गोपने दोषाः। अन्यदृश्यविकल्पानां चयनेन विना एतत् निग्रहितुं नैव शक्नोति ।",
-    "revdelete-reason-dropdown": "*परित्यागाय समानकारणाः\n** प्रतिलिपिअधिकारअतिक्रम\n** अयोग्यवैयक्तिकविज्ञप्ति",
-    "revdelete-otherreason": "à¤\85नà¥\8dयतà¥\8d/सà¤\99à¥\8dà¤\95लितं कारणम् :",
+    "deletedhist": "à¤\85पाà¤\95à¥\83तà¤\83 à¤\87तिहासà¤\83",
+    "revdelete-hide-current": "$2 दिनाङ्कस्य $1 समये कस्यापि वस्तोः निगूढनं कार्यं न सफलीभीतम् । एतत् सद्यःकालीन संस्करणमस्ति । एतत् निगूढितुं शक्यते ।",
+    "revdelete-show-no-access": "$2 दिनाङ्कस्य $1 समयस्य वस्तुनि दोषः दृष्टः । तत् वस्तुः निषिद्धावल्याम् अस्ति । भवान्/भवती तस्य परिवर्तनं कर्तुं न शक्नोति ।",
+    "revdelete-modify-no-access": "$2 दिनाङ्कस्य $1 समयस्य परिवर्तितवस्तुनि दोषः दृष्टः । तत् वस्तुः निषिद्धावल्याम् अस्ति । भवान्/भवती तस्य परिवर्तनं कर्तुं न शक्नोति ।",
+    "revdelete-modify-missing": " ID $1 इत्यस्य परिवर्तने दोषः : एतत् दत्तांशे न प्राप्तम् !",
+    "revdelete-no-change": "'''पूर्वसूचना :''' $2, $1 इत्यस्मिन् याचितवस्तूनि पूर्वस्मादेव विद्यन्ते ।",
+    "revdelete-concurrent-change": "$2, $1:",
+    "revdelete-only-restricted": "$2, $1: दिनाङ्कितस्य गोपने दोषाः। अन्यदृश्यविकल्पानां चयनेन विना एतत् निग्रहितुं नैव शक्नोति",
+    "revdelete-reason-dropdown": "* अपाकरणस्य सामान्यकारणानि\n** प्रतिकृत्यधिकारस्य उल्लङ्घनम्\n** अयोग्या टिप्पणी वैयक्तिकमाहिती वा\n** अयोग्यं सभ्यनाम\n** हानिकारकमाहिती",
+    "revdelete-otherreason": "à¤\85परà¤\82/à¤\85तिरिà¤\95à¥\8dतं कारणम् :",
     "revdelete-reasonotherlist": "अन्यानि कारणानि",
     "revdelete-edit-reasonlist": "सम्पादनस्य अपाकरणाय कारणानि",
     "revdelete-offender": "अवतरणकर्ता ।",
     "prefs-skin": "त्वक्",
     "skin-preview": "प्राग्दृश्यम्",
     "datedefault": "वरीयांसि नास्ति",
-    "prefs-datetime": "दिनाङ्कः, समयः च",
     "prefs-labs": "प्रयोगशालालक्षणानि ।",
     "prefs-user-pages": "योजकपुटानि ।",
-    "prefs-personal": "यà¥\8bà¤\9cà¤\95à¤\83 à¤µà¥\8dयà¤\95à¥\8dतिरेखा",
-    "prefs-rc": "सद्योजातानि परिवर्तनानि",
-    "prefs-watchlist": "दà¥\83षà¥\8dà¤\9fि सूची",
+    "prefs-personal": "यà¥\8bà¤\9cà¤\95सà¥\8dय à¤°à¥\82परेखा",
+    "prefs-rc": "सद्यो जातानि परिवर्तनानि",
+    "prefs-watchlist": "निरà¥\80à¤\95à¥\8dषासूची",
     "prefs-watchlist-days": "दृष्टि सूची दर्शनार्थे  दिवसानि",
     "prefs-watchlist-days-max": "अधिकतमानि $1 {{PLURAL:$1|दिनानि}}",
     "prefs-watchlist-edits": "विस्तृतावलोकनावल्यां प्रदर्शयितुम् अत्यधिकपरिवर्तनानि ।",
     "prefs-changeemail": "विद्युन्मानपत्रसङ्केतं परिवर्तयतु ।",
     "prefs-setemail": "विद्युन्मानपत्रसङ्केतं योजयतु ।",
     "prefs-email": "इमेल वैकल्पिकाः",
-    "prefs-rendering": "सà¥\8dवरà¥\81पà¤\83",
+    "prefs-rendering": "सà¥\8dवरà¥\82पमà¥\8d",
     "saveprefs": "संरक्ष्यताम्",
     "restoreprefs": "समग्राः व्यवस्थादय व्यवस्थानुसारं पुनः संरक्ष्यताम्",
     "prefs-editing": "सम्पादनम्",
     "prefs-help-email": "ई-पत्रसङ्केतः अनिवार्यः नास्ति । किन्तु कूटशब्दः विस्मर्यते चेत् तस्य परिवर्तनाय आवश्यकः भवति ।",
     "prefs-help-email-others": "योजकपृष्ठ-सम्भाषणपृष्ठयोः माध्यमेन,  ई-पत्रमाध्यमेन वा अन्ये योजकाः भवतः/भवत्याः सम्पर्कं कर्तुं शक्नुयुः ।\nसम्पर्केऽस्मिन् भवतः/भवत्याः ई-पत्रसङ्केतम् अन्ययोजकाः ज्ञातुं न प्रभवतन्ति ।",
     "prefs-help-email-required": "विद्युन्मानपत्रसङ्केतः आवश्यकः ।",
-    "prefs-info": "मूलसूचनाः ।",
+    "prefs-info": "मूलसूचनाः",
     "prefs-i18n": "अन्ताराष्ट्रिकरणम् ।",
     "prefs-signature": "हस्ताक्षर",
     "prefs-dateformat": "दिनाङ्कस्य प्रारूपः",
     "upload-permitted": "अनुमतसञ्चिकाभेदाः $1.",
     "upload-preferred": "अनुमतसञ्चिकाभेदाः $1.",
     "upload-prohibited": "अनुमतसञ्चिकाभेदाः $1.",
-    "uploadlog": "उत्तरणस्य सूची ।",
     "uploadlogpage": "उपारोहिताऽऽवलिः (Upload log)",
     "uploadlogpagetext": "अधः सद्यः काले उत्तारितसञ्चिकानाम् आवली अस्ति ।\nअधिकदृश्यविवरणार्थम् एतत् पश्यतु [[Special:NewFiles|gallery of new files]]",
     "filename": "सञ्चिकानाम",
     "filereuploadsummary": "सञ्चिकापरिवर्तनानि ।",
     "filestatus": "प्रतिकृत्यधिकारस्य स्थितिः ।",
     "filesource": "मूल:",
-    "uploadedfiles": "आरोपिताः सञ्चिकाः",
     "ignorewarning": "पूर्वसूचनां निर्लक्ष्य सञ्चिकाः कथञ्चित् संरक्षतु ।",
     "ignorewarnings": "पूर्वसूचनाः निर्लक्षतु ।",
     "minlength1": "सञ्चिकानाम न्यूनतिन्यूनम् एकाक्षरं भवेत् ।",
     "overwroteimage": "\"[[$1]]\" इत्यस्य नूतनावतरणम् उत्तारयतु ।",
     "uploaddisabled": "सक्रियम् उत्तारयतु ।",
     "copyuploaddisabled": "निष्क्रियतः यु.आर्.एल् तः उत्तारयतु  ।",
-    "uploadfromurl-queued": "ते उत्तारणम् अनुपङ्कौ अस्ति ।",
     "uploaddisabledtext": "उत्तारितसञ्चिकाः निष्क्रियाः ।",
     "php-uploaddisabledtext": "PHP मध्ये उत्तारितसञ्चिकाः निष्क्रियाः ।",
     "uploadscripted": "HTMLयुक्ताः अथवा लिपिसङ्केतयुक्ताः सञ्चिकाः जालदर्शिकया बाधिताः ।",
     "upload-misc-error": "अज्ञातः उत्तारणदोषः ।",
     "upload-misc-error-text": "उत्तारणावसरे कश्चन अज्ञातदोषः उपगतः । \nURL मान्यम् अभिगम्यं वेति परिशील्य पुनः यतताम् ।[[Special:ListUsers/sysop|administrator]]",
     "upload-too-many-redirects": "URL अधिकपुनर्निदेशान् अन्तर्गतम् ।",
-    "upload-unknown-size": "अज्ञात आकार",
     "upload-http-error": "कश्चन HTTP दोषः उपगतः $1",
     "upload-copy-upload-invalid-domain": "अस्मिन् कोशे प्रतिकृत्युत्तारणम् उपलब्धं नास्ति ।",
     "backend-fail-stream": "सञ्चिका क्रमगता न $1.",
     "img-auth-streaming": "\"$1\"इत्यस्य प्रवाहिनी ।",
     "img-auth-public": "स्वायत्तविकितः सञ्चिकाः नेतुम् अयं कार्यक्रमः img_auth.php उपयुज्यते ।\nएषा विकिः सार्वजनिकविकिः इति  दृढिता । \nवैकल्पिकसुरक्षार्थं img_auth.php अपलपितः । ।",
     "img-auth-noread": "\"$1\"पठने योजकस्य अभिगमनं नास्ति ।",
-    "img-auth-bad-query-string": " URL मध्ये अमान्यं प्रश्नतन्तुः अस्ति ।",
     "http-invalid-url": " $1 इति अमान्यम् URL ।",
     "http-invalid-scheme": "\"$1\"योजनायुक्तं URLs नानुमोदितानि ।",
     "http-request-error": " अज्ञातदोषात् HTTP अभ्यर्थनं निष्पलम् ।",
     "filehist-dimensions": "आयामाः",
     "filehist-filesize": "सञ्चिकाकारः ।",
     "filehist-comment": "टिप्पणी",
-    "filehist-missing": "सञ्चिका विनष्टा ।",
     "imagelinks": "सञ्चिकायाः उपयोगः",
     "linkstoimage": "{{PLURAL:$1|अधो निर्दिष्टपृष्ठस्य परिसन्धयः संलग्नाः सन्ति|$1 अधो निर्दिष्टपृष्ठानां परिसन्धिः संलग्ना अस्ति}}:",
     "linkstoimage-more": "{{PLURAL:$1|$1}} तः अधिकपुटानि अस्यां सञ्चिकायां योज्यन्ते । \nअधोनिदेशितसूची सञ्चिकाभिः योजनीयपुटानि पश्यति ।{{PLURAL:$1|$1 पृष्ठ|$1 पृष्ठ}} \n[[Special:WhatLinksHere/$2|पूर्णसूची]] अपि लभ्यते ।",
     "booksources-invalid-isbn": "दत्तं ISBN मान्यम् इति  न भाति । मूलस्रोततः प्रतिकृतीः कर्तुं परिशीलयतु ।",
     "specialloguserlabel": "आचारी :",
     "speciallogtitlelabel": "लक्ष्यम् (शीर्षकम् / योजकः)",
-    "log": "सà¤\82सक्षितावल्यः (Logs)",
+    "log": "सà¤\82रक्षितावल्यः (Logs)",
     "all-logs-page": "सर्वसार्वजनिकप्रवेशः ।",
     "alllogstext": "{{SITENAME}}इत्यस्य उबलब्धप्रवेशानां  संयुक्तप्रदर्शनम् ।\nप्रवेशप्रकारं चित्वा भवान् दृश्यं क्षाययितुं शक्नोति । योजकनाम,  सदस्य नाम (ह्रस्वदीर्घाक्षरसंवादी) प्रभावितपुटम् ।",
     "logempty": "प्रवेशे मेलयुक्तपुटं नास्ति ।",
     "emailuser-title-notarget": "ईपत्र योजकः",
     "emailpage": "ई-मेल योजक",
     "emailpagetext": "अस्मै योजकाय विद्युन्मानपत्रं प्रेषयितुम् अधो दत्तप्रपत्रम् उपयोक्तुं शक्नोति । \n[[Special:Preferences|your user preferences]] अत्र भवता विनिवेशितः वि-पत्रसङ्केतः सकाशात् इति स्थाने प्रतिभाति । अनेन स्वीकर्ता साक्षात् प्रत्युत्तरं दातुं प्रभविष्यति ।",
-    "usermailererror": "पत्राचारपदार्थस्य प्रत्यागतदोषः ।",
     "defemailsubject": "{{SITENAME}}\"$1\" इति योजकात् विद्युन्मानपत्रम् ।",
     "usermaildisabled": "योजकस्य विद्युन्मानपत्रं निष्क्रियम् ।",
     "usermaildisabledtext": "अस्यां विक्याम् अन्ययोजकेभ्यः विद्युन्मानपत्रं प्रेषयितुं नै शक्नोति ।",
     "noemailtitle": "विद्युन्मानपत्रसङ्केतः नास्ति ।",
     "noemailtext": "अस्य योजकस्य निरिदिष्टः विद्युन्मानपत्रसङ्केतः नास्ति ।",
-    "nowikiemailtitle": "विद्युन्मानपत्रम् अननुमतम् ।",
     "nowikiemailtext": "अयं योजकः अन्ययोजकेभ्यः विद्युन्मानपत्राणि स्वीकार्तुं नेच्छति ।",
     "emailnotarget": "स्वीकर्तुः अस्तित्वविहीनम् अथवा अमान्यं योजकनाम  ।",
     "emailtarget": "स्वीकर्तुः योजकनाम लिखतु ।",
     "watching": "निरीक्षते...",
     "unwatching": "निरीक्षाम् अपाकरोति...",
     "watcherrortext": " \"$1\" कृते अवलोकनावल्याः व्यवस्थापरिवर्तनावसरे दोषः संविधितः ।",
-    "enotif_mailer": "{{SITENAME}} सूचितः विद्युन्मानपत्रप्रेषकः ।",
     "enotif_reset": "सन्दर्शितानि इति सर्वपुटानि अङ्कयतु ।",
     "enotif_impersonal_salutation": "{{SITENAME}} योजक",
     "enotif_subject_deleted": "{{SITENAME}} पृष्ठं $1 इत्येतत् {{gender:$2 इत्यनेन|$2 इत्यनया}} अपाकृतमस्ति।",
     "excontent": "\"$1\" आधेयः आसीत् ।",
     "excontentauthor": "आधेयः $1आसीत् । अपि च योगदाता तु \"[[Special:Contributions/$2|$2]]\" आसीत् ।",
     "exbeforeblank": "रिक्तीकरणात् पूर्वम् आधेयः \"$1\" आसीत् ।",
-    "exblank": "पुटं रिक्तमासीत् ।",
     "delete-confirm": "विलुप्यताम् \"$1\"",
     "delete-legend": "विलुप्यताम्",
     "historywarning": "' पूर्वसूचना ''' भवता अपमर्जनसिद्धपुटे बहुशः  $1 इतिहासयुक्तः अस्ति ।{{PLURAL:$1|revision|revisions}}:",
     "importunknownsource": "अज्ञातायातस्रोतप्रकारः ।",
     "importcantopen": "आयातसञ्चिकाः उद्घाटयितुं न शक्यते ।",
     "importbadinterwiki": "प्रदुष्टः अन्तर्विक्यनुबन्धः ।",
-    "importnotext": "रिक्तम् अथवा पाठः नास्ति ।",
     "importsuccess": "आयातः समाप्तः ।",
-    "importhistoryconflict": "उपलब्धाः इतिहासपुनरावृत्तयः परस्परं विपरीताः। (एतत्पुटं पूर्वमेव आयातम् इति भाति ।)",
     "importnosources": "कोऽपि ट्रान्स्विकि आयातः नोपलब्धः अपि च प्रत्यक्षेतिहासस्य उत्तारणं निष्कियम् ।",
     "importnofile": "कापि आयातसञ्चिका उत्तारिता ।",
     "importuploaderrorsize": "आयातसञ्चिकाः अनुत्तारिताः। अस्याः आकारः अधिकतरः अस्ति ।",
     "simpleantispam-label": "अनिष्टसन्देशविरोधपरीक्षणम् ।\nअस्मिन् '''नहि''' पूर्यताम् !",
     "pageinfo-title": "\"$1\" कृते सूचनाः ।",
     "pageinfo-not-current": "क्षम्यताम्, पुरातनाभ्यः आवृत्तिभ्यः एषा सूचना दातुं न शक्यते।",
-    "pageinfo-header-basic": "मूलसूचनाः ।",
+    "pageinfo-header-basic": "मूलसूचनाः",
     "pageinfo-header-edits": "इतिहासः सम्पाद्यताम्",
     "pageinfo-header-restrictions": "पृष्ठसंरक्षणम्",
     "pageinfo-header-properties": "पृष्ठस्य गुणधर्मः",
index 371fe22..8554226 100644 (file)
     "accountcreatedtext": "The uiser accoont fer [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|tauk]]) haes been cræftit.",
     "createaccount-title": "Accoont makin for {{SITENAME}}",
     "createaccount-text": "Somebodie cræftit aen accoont fer yer wab-mail address oan {{SITENAME}} ($4) named \"$2\", wi passwaird \"$3\".\nYe shid log in n chynge yer passwaird nou.\n\nYe can ignore this message, gif this accoont wis cræftit bi mistak.",
-    "usernamehasherror": "Uisername canna contain hash chairacters",
     "login-throttled": "Ye'v makit ower monie recynt login attempts.\nPlease wait $1 afore giein it anither gae.",
     "login-abort-generic": "Yer login wisna successful - Aborted",
     "loginlanguagelabel": "Leid: $1",
     "prefs-skin": "Huil",
     "skin-preview": "First Leuk",
     "datedefault": "Nae preference",
-    "prefs-datetime": "Date n time",
     "prefs-labs": "Labs featurs",
     "prefs-user-pages": "Uiser pages",
     "prefs-personal": "Uiser data",
     "uploadtext": "Uise the form ablo tae uplaid files.\nTae see or rake aforegaun uplaided files gang til the [[Special:FileList|leet o uplaided files]], (re)uplaids ar loggit in the [[Special:Log/upload|uplaid log]] aes weel, n delytions in the [[Special:Log/delete|delytion log]].\n\nTae incluid ae file in ae page, uise aen airtin in yin o the follaein forms:\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong> tae uise the ful version o the file\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt tex]]</nowiki></code></strong> tae uise ae 200 pixel wide rendeetion in ae kist in the cair margin wi \"alt tex\" aes descreeption\n* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong> fer linkin directlie til the file wioot displeyin the file.",
     "upload-permitted": "Permitit file types: $1.",
     "upload-prohibited": "Proheebited file types: $1.",
-    "uploadlog": "uplaid log",
     "uploadlogpage": "Uplaid log",
     "uploadlogpagetext": "Ablo is a leet o the maist recent file uplaids.",
     "filedesc": "Ootline",
     "filereuploadsummary": "File chynges:",
     "filestatus": "Copyricht status:",
     "filesource": "Soorce:",
-    "uploadedfiles": "Uplaidit files",
     "ignorewarning": "Ignore warnishment n hain file oniewey.",
     "ignorewarnings": "Ignore ony warnins",
     "minlength1": "Filenames maun be at least yin letter.",
     "overwroteimage": "uplaided ae new version o \"[[$1]]\"",
     "uploaddisabled": "Sorry, uplaidin is disabled.",
     "copyuploaddisabled": "Uplaid bi URL disabled.",
-    "uploadfromurl-queued": "Yer uplaid haes been pit in line.",
     "uploaddisabledtext": "File uplaids ar disabled.",
     "php-uploaddisabledtext": "File uplaids ar disabled in PHP.\nPlease check the file_uploads settin.",
     "uploadscripted": "This file hauds HTML or script code that micht be wrang interpretit bi a wab brouser.",
     "upload-misc-error": "Onkent uplaid mistake",
     "upload-misc-error-text": "Aen onkent mistak occurred during the uplaid.\nPlease vereefie that the URL is valit n accessible n gie it anither gae.\nGif the proablem persists, contact aen [[Special:ListUsers/sysop|admeenistrater]].",
     "upload-too-many-redirects": "The URL contained oewr monie reguidals",
-    "upload-unknown-size": "Onkent size",
     "upload-http-error": "Aen HTTP mistake occurred: $1",
     "upload-copy-upload-invalid-domain": "Copie uplaids arna available fae this domain.",
     "backend-fail-stream": "Coudna stream file \"$1\".",
     "img-auth-streaming": "Streamin \"$1\".",
     "img-auth-public": "The function o img_auth.php is tae ootpit files fae ae preevate wiki.\nThis wiki is confeegured aes ae publeec wiki.\nFr optimal securitie, img_auth.php is disabled.",
     "img-auth-noread": "Uiser disna hae access tae read \"$1\".",
-    "img-auth-bad-query-string": "The URL haaes aen onvalid speirin string.",
     "http-invalid-url": "Onvalid URL: $1",
     "http-invalid-scheme": "URLs wi the \"$1\" preefix ar naw supported.",
     "http-request-error": "HTTP request failed cause o onkent mistak.",
     "filehist-user": "Uiser",
     "filehist-dimensions": "Dimensions",
     "filehist-comment": "Comment",
-    "filehist-missing": "File missin",
     "imagelinks": "File uisage",
     "linkstoimage": "The follaein {{PLURAL:$1|page airts|$1 pages airt}} tae this file:",
     "linkstoimage-more": "Mair than $1 {{PLURAL:$1|page airts|pages airt}} til this file.\nThe follaein leet shaws the {{PLURAL:$1|first page airtin|first $1 page airtins}} til this file yinlie.\nAe [[Special:WhatLinksHere/$2|ful leet]] is available.",
     "trackingcategories-msg": "The Trackin Categerie",
     "trackingcategories-name": "The Message name",
     "trackingcategories-desc": "Categerie inclusion criteria",
-    "noindex-category-desc": "The page haes ae <nowiki>__NOINDEX__</nowiki> mageec waird oan it (n is in ae namespace whaur that flag is permitit), n sae it's na indext bi the robots.",
-    "index-category-desc": "The page haes ae <nowiki>__INDEX__</nowiki> oan it (n is in ae namespace whaur that flag is permitit), n sae it's indext bi the robots whaur it widna normallie be.",
+    "noindex-category-desc": "The page haes ae <code><nowiki>__NOINDEX__</nowiki></code> mageec waird oan it (n is in ae namespace whaur that flag is permitit), n sae it's na indext bi the robots.",
+    "index-category-desc": "The page haes ae <code><nowiki>__INDEX__</nowiki></code> oan it (n is in ae namespace whaur that flag is permitit), n sae it's indext bi the robots whaur it widna normallie be.",
     "post-expand-template-inclusion-category-desc": "Efter makin aw o the templates muckler, the page size is muckler than <code>$wgMaxArticleSize</code>, sae some templates were na makit muckler.",
     "post-expand-template-argument-category-desc": "Efter makin ae template argument muckler (sommit in triple braces, lik <code>{{{Foo}}})</code>, the page is muckler than <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Ower monie expenseeve parser functions (lik <code>#ifexist</code>) incluidit oan ae page. See [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
     "broken-file-category-desc": "Categerie eikit gif the page contains ae broken file airtin (aen airtin tae embed ae file whan the file disna exeest).",
-    "hidden-category-category-desc": "This is ae categerie wi <nowiki>__HIDDENCAT__</nowiki> oan it, This prevents it fae shawin up in the categerie airtins kist oan pages, bi defaut.",
+    "hidden-category-category-desc": "This is ae categerie wi <code><nowiki>__HIDDENCAT__</nowiki></code> oan it, This prevents it fae shawin up in the categerie airtins kist oan pages, bi defaut.",
     "trackingcategories-nodesc": "Nae descreeption is available.",
     "trackingcategories-disabled": "The categerie is disabled",
     "mailnologin": "Nae send address",
     "emailuser-title-notarget": "Wab-mail uiser",
     "emailpage": "Wab-mail uiser",
     "emailpagetext": "Ye can uise the form ablo tae send ae wab-mail message til this {{GENDER:$1|uiser}}.\nThe wab-mail address that ye entered in [[Special:Preferences|yer uiser preeferances]] will kith aes the \"Fae\" address o the wab-mail, sae that the receepient will be able tae replie directlie til ye.",
-    "usermailererror": "Mail object returned mistak:",
     "defemailsubject": "{{SITENAME}} wab-mail fae uiser \"$1\"",
     "usermaildisabled": "Uiser wab-mail disablit",
     "usermaildisabledtext": "Ye canna send wab-mail til ither uisers oan this wiki",
     "noemailtitle": "Nae e-mail address",
     "noemailtext": "This uiser haesna speceefied ae valid wab-mail address.",
-    "nowikiemailtitle": "Naw wab-mail permitit",
     "nowikiemailtext": "This uiser haes choosen tae naw receeve wab-mail fae ither uisers.",
     "emailnotarget": "Non-exeestent or onvalit uisername fer receepeeant.",
     "emailtarget": "Enter uisername o reeceepeeant",
     "watching": "Watchin...",
     "unwatching": "Unwatchin...",
     "watcherrortext": "Ae mistak occurred while chyngin yer watchleet settins fer \"$1\".",
-    "enotif_mailer": "{{SITENAME}} annooncemant mailer",
     "enotif_reset": "Merk aa pages visitit",
     "enotif_impersonal_salutation": "{{SITENAME}} uiser",
     "enotif_subject_deleted": "{{SITENAME}} page $1 haes been {{GENDER:$2|delytit}} bi $2",
     "excontent": "content wis: '$1'",
     "excontentauthor": "content wis: '$1' (n the ae contreebuter wis '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "content afore blankin wis: '$1'",
-    "exblank": "page wis tuim",
     "delete-confirm": "Delyte \"$1\"",
     "delete-legend": "Delyte",
     "historywarning": "<strong>Warnishment:</strong> The page that ye'r aboot tae delyte haes ae histerie wi approximatelie $1 {{PLURAL:$1|reveesion|reveesions}}:",
     "imported-log-entries": "Imported $1 {{PLURAL:$1|log entrie|log entries}}.",
     "importunknownsource": "Onkent import soorce type",
     "importcantopen": "Coudna apen import file",
-    "importnotext": "Tuim or nae tex",
     "importsuccess": "Importit fine!",
-    "importhistoryconflict": "Conflictin histerie reveesion exeests (micht hae importit this page afore)",
     "importnosources": "Nae transwiki import soorces haes been defined n direct histerie uplaids is disabled.",
     "importnofile": "Naw import file wis uplaided.",
     "importuploaderrorsize": "Uplaid o import file failed.\nThe file is muckler than the permitit uplaid size.",
index 76aeb70..8eeaa66 100644 (file)
     "disclaimers": "غيرجوابداريناما",
     "disclaimerpage": "Project:عام غيرجوابدارينامو",
     "edithelp": "مدد براءِ ترميم",
-    "helppage": "Help:فهرست",
     "mainpage": "مُک صفحو",
     "mainpage-description": "مُک صفحو",
     "policy-url": "Project:پاليسي",
index 99ad4fc..4bddc6a 100644 (file)
@@ -5,7 +5,8 @@
             "Cornelia",
             "Felis",
             "Jun Misugi",
-            "Kaganer"
+            "Kaganer",
+            "Midnight Gambler"
         ]
     },
     "tog-underline": "Sotturìnia li cullegamenti:",
     "tog-extendwatchlist": "Musthra tutti li mudìfigghi a li abbaidaddi ippiziari, nò soru l'ulthimi.",
     "tog-usenewrc": "Utirizza l'ulthimi mudìfigghi abanzaddi (dumanda JavaScript)",
     "tog-numberheadings": "Numarazioni otomàtigga di li tìturi di sezzioni",
-    "tog-showtoolbar": "Musthra barra di l'isthrumenti di mudìfigga (dumanda JavaScript)",
-    "tog-editondblclick": "Mudìfigga di li pàgini attrabessu dóppiu clic (dumanda JavaScript)",
-    "tog-editsectiononrightclick": "Mudìfigga di li sezzioni attrabessu lu clic dresthu i' lu tìturu (nezzessàriu JavaScript)",
-    "tog-rememberpassword": "Ammenta la paràura d'órdhini (nezzessàriu azzittà li cookie) (for a maximum of $1 {{PLURAL:$1|dì|dì}})",
+    "tog-showtoolbar": "Musthra barra di l'isthrumenti di mudìfigga",
+    "tog-editondblclick": "Mudìfigga di li pàgini attrabessu dóppiu clic",
+    "tog-editsectiononrightclick": "Mudìfigga di li sezzioni attrabessu lu clic dresthu i' lu tìturu",
+    "tog-rememberpassword": "Ammenta la paràura d'órdhini (for a maximum of $1 {{PLURAL:$1|dì|dì}})",
     "tog-watchcreations": "Aggiungi li pàgini criaddi a l'abbaidaddi ippiziari",
     "tog-watchdefault": "Aggiungi li pàgini mudìfiggaddi a l'abbaidaddi ippiziari",
     "tog-watchmoves": "Aggiungi li pàgini ippusthaddi a l'abbaidaddi ippiziari",
     "newwindow": "(s'abbri in d'unu nobu balchoni)",
     "cancel": "Annullà",
     "moredotdotdot": "Althru...",
-    "mypage": "La mea pàgina",
+    "mypage": "Pàgina",
     "mytalk": "Li me' dischussioni",
     "anontalk": "Dischussioni pa chisthu IP",
     "navigation": "Nabiggazioni",
     "createaccount-title": "Criazioni di un'intradda a {{SITENAME}}",
     "createaccount-text": "Calchunu à criaddu una registhrazioni a {{SITENAME}} ($4) pa contu di \"$2\", cun la paràura d'órdhini \"$3\".\nÈ opporthunu eseguì un'intradda cantu primma e ciamballa immediatamenti.\n\nSi la registhrazioni è isthadda criadda pa un'errori, pói ignorà chisth'imbasciadda.",
     "loginlanguagelabel": "Linga: $1",
+    "pt-login": "Intra",
+    "pt-login-button": "Intra",
+    "pt-userlogout": "Iscidda",
     "changepassword": "Ciamba paràura d'órdhini",
     "resetpass_announce": "L'intradda è isthadda effettuadda cun un còdizi timpuràniu, inviaddu via postha erettrònica.\n\nPa cumprità la registhrazioni è nezzessàriu impusthà una noba paràura d'órdhini inogghi:",
     "resetpass_text": "<!-- Aggiungi lu testhu inogghi -->",
     "resetpass_submit": "Impustha la paràura d'órdhini e intra",
     "changepassword-success": "La paràura d'órdhini tóia è isthadda mudìfiggadda. Abà sei intrendi...",
     "resetpass_forbidden": "No è pussìbiri mudifiggà li paràuri d'órdhini in {{SITENAME}}.",
+    "passwordreset-username": "Innòmu utenti:",
+    "resettokens-tokens": "Token:",
     "bold_sample": "Grassetu",
     "bold_tip": "Grassetu",
     "italic_sample": "Cursibu",
     "prefs-skin": "Aipettu gràficu",
     "skin-preview": "antiprimma",
     "datedefault": "Nisciuna prifirènzia",
-    "prefs-datetime": "Data e ora",
     "prefs-personal": "Profiru utenti",
     "prefs-rc": "Ulthimi mudìfigghi",
     "prefs-watchlist": "Abbaidaddi ippiziari",
     "upload-permitted": "Fuimmaddi di file autorizaddi: $1.",
     "upload-preferred": "Fuimmaddi di file prifiriddi: $1.",
     "upload-prohibited": "Fuimmaddi di file pruibbiddi: $1.",
-    "uploadlog": "File carriggaddi",
     "uploadlogpage": "Rigisthru di li file carriggaddi",
     "uploadlogpagetext": "Inogghi v'è l'erencu di l'ulthimi file cariggaddi.",
     "filename": "Innòmu di lu file",
     "fileuploadsummary": "Dettàgli di lu file:",
     "filestatus": "Infuimmazioni i' lu copyright:",
     "filesource": "Orìgini:",
-    "uploadedfiles": "Erencu di li file carriggaddi",
     "ignorewarning": "Ignora l'avvirthimentu e saivva cumenti si sia lu file",
     "ignorewarnings": "Ignora li imbasciaddi di avvirthimentu di lu sisthema",
     "minlength1": "Lu nommu di lu file débi assé cumposthu arumandu d'un caràtteri.",
     "emailuser": "Ischribì a l'utenti",
     "emailpage": "Invia un'imbasciadda di postha erettrònica a l'utenti",
     "emailpagetext": "Si l'utenti à registhraddu un'indirizzu di postha erettrònica vàriddu i' li propri prifirenzi, lu mòdulu in giossu cunsenti d'ischribelli una sora imbasciadda. L'indirizzu indicaddu i' li prifirenzi di lu mandanti apparirà i' lu campu \"Da:\" di l'imbasciadda pa cunsintì a  lu disthinatàriu l'eventuari rippostha.",
-    "usermailererror": "L'oggettu di l'imbasciadda à turraddu l'errori:",
     "defemailsubject": "Imbasciadda da {{SITENAME}}",
     "noemailtitle": "Nisciun indirizzu di postha erettrònica",
     "noemailtext": "Chistu utenti nò à indicaddu un'indirizzu postha erettrònica vàriddu, oppuru à sciubaraddu di nò rizzibì imbasciaddi di postha erettrònica da l'althri utenti.",
     "watchlist-options": "Opzioni abbaidaddi ippiziari",
     "watching": "Aggiunta a l'abbaidaddi ippiziari...",
     "unwatching": "Eliminazioni da l'abbaidaddi ippiziari...",
-    "enotif_mailer": "Sisthema di nutìfica via postha erettrònica di {{SITENAME}}",
     "enotif_reset": "Signa tutti li pàgini cumenti già visitaddi",
     "enotif_impersonal_salutation": "Utenti di {{SITENAME}}",
     "enotif_lastvisited": "Cunsultha $1 pa vidé tutti li mudìfigghi da l'ulthima visita tóia.",
     "excontent": "lu cuntinuddu era : '$1'",
     "excontentauthor": "lu cuntinuddu era: '$1' (e lu soru cuntributori era '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "Lu cuntinuddu primma di l'ibbiuddamentu era: '$1'",
-    "exblank": "la pàgina era biodda",
     "delete-confirm": "Canzella \"$1\"",
     "delete-legend": "Canzella",
     "historywarning": "Attinzioni: La pàgina chi sei canzellendi à una cronologia:",
     "importunknownsource": "Tipu d'orìgini ischunisciddu pa l'impurthazioni",
     "importcantopen": "Impussìbiri abbrì lu file d'impurthazioni",
     "importbadinterwiki": "Cullegamentu interwiki ibbagliaddu",
-    "importnotext": "Testhu bioddu o mancanti",
     "importsuccess": "Impurthazioni finidda!",
-    "importhistoryconflict": "La cronologia cunteni di li versioni in cuntrasthu (chistha pàgina pudia assé già isthadda impurthadda)",
     "importnosources": "Nò è isthadda difinidda un'origini pa l'impurthazioni transwiki; l'impurthazioni diretta di la cronologia nò è attiba.",
     "importnofile": "Nò è isthaddu cariggaddu nisciun file pa l'impurthazioni.",
     "importuploaderrorsize": "Carriggamentu di file pa l'impurthazioni nò ridisciddu. Lu file supara li misuri massimi cunsintiddi pa lu carriggamentu.",
index 4314c32..f44eb45 100644 (file)
     "currentevents-url": "Project:Âsango",
     "disclaimers": "Zïngö-lê",
     "disclaimerpage": "Project:Zïngö-lê",
-    "helppage": "Help:Münä",
     "mainpage": "Gä nzönî",
     "mainpage-description": "Gä nzönî",
     "portal": "Âsëwä",
index 0679de6..81a5330 100644 (file)
     "accountcreatedtext": "Korisnički račun za $1 je kreiran. Кориснички налог за $1 је креиран.",
     "createaccount-title": "Pravljenje korisničkog računa za {{SITENAME}}",
     "createaccount-text": "Neko je napravio korisnički račun za vašu e-mail adresu na {{SITENAME}} ($4) sa imenom \"$2\", i sa šifrom \"$3\".\nTrebali biste se prijaviti i promjeniti šifru.\n\nMožete ignorisati ovu poruku, ako je korisnički račun napravljen greškom.",
-    "usernamehasherror": "Korisničko ime ne može sadržavati haš znakove",
     "login-throttled": "Previše puta ste se pokušali prijaviti.\nMolimo Vas da sačekate prije nego što pokušate ponovo.",
     "login-abort-generic": "Vaša prijava nije bila uspješna – Prekinuto",
     "loginlanguagelabel": "Jezik: $1",
     "suspicious-userlogout": "Vaš zahtjev za odjavu je odbijen jer je poslan preko pokvarenog preglednika ili keširanog proksija.",
+    "pt-login": "Prijavi me / Пријави ме",
+    "pt-login-button": "Prijavi me / Пријави ме",
+    "pt-createaccount": "Napraviti novi nalog / Направити нови налог",
     "pt-userlogout": "Odjavi se / Одјави се",
     "php-mail-error-unknown": "Nepoznata greška u PHP funkciji mail()",
     "user-mail-no-addy": "Pokušaj slanja e-maila bez e-mail adrese.",
     "prefs-skin": "Izgled (skin)",
     "skin-preview": "Pretpregled",
     "datedefault": "Bez preferenci",
-    "prefs-datetime": "Datum i vrijeme",
     "prefs-labs": "Eksperimentalne mogućnosti",
     "prefs-user-pages": "Korisničke stranice",
     "prefs-personal": "Korisnički profil",
     "upload-permitted": "Podržane vrste datoteka: $1.",
     "upload-preferred": "Preferirane vrste datoteka: $1.",
     "upload-prohibited": "Zabranjene vrste datoteka: $1.",
-    "uploadlog": "registar postavljanja",
     "uploadlogpage": "Registar postavljanja",
     "uploadlogpagetext": "Ispod je popis najnovijih postavljanja datoteka.\nVidi [[Special:NewFiles|galeriju novih datoteka]] za slikovitiji pregled.",
     "filename": "Ime fajla / Име датотеке",
     "filereuploadsummary": "Izmjene datoteke:",
     "filestatus": "Status autorskih prava:",
     "filesource": "Izvor / Извор",
-    "uploadedfiles": "Postavljene datoteke",
     "ignorewarning": "Zanemari upozorenja i sačuvaj datoteku",
     "ignorewarnings": "Zanemari sva upozorenja",
     "minlength1": "Ime datoteke mora imati barem jedno slovo.",
     "overwroteimage": "postavljena nova verzija datoteke \"[[$1]]\"",
     "uploaddisabled": "Slanje fajlova je isključeno",
     "copyuploaddisabled": "Postavljanje putem URL nije omogućeno.",
-    "uploadfromurl-queued": "Vaše postavljanje je na čekanju.",
     "uploaddisabledtext": "Postavljanje datoteka je onemogućeno.",
     "php-uploaddisabledtext": "Postavljanje datoteka preko PHP je onemogućeno. \nMolimo provjerite postavku za postavljanje datoteka.",
     "uploadscripted": "Ova datoteka sadrži HTML ili skriptni kod koji može izazvati grešku kod internet preglednika.",
     "upload-misc-error": "Nepoznata greška pri postavljanju",
     "upload-misc-error-text": "Desila se nepoznata greška pri postavljanju.\nMolimo Vas provjerite da li je URL tačan i dostupan pa pokušajte ponovo.\nAko se problem ne riješi, kontaktirajte [[Special:ListUsers/sysop|administratora]].",
     "upload-too-many-redirects": "URL sadrži previše preusmjerenja",
-    "upload-unknown-size": "Nepoznata veličina",
     "upload-http-error": "Desila se HTTP greška: $1",
     "upload-copy-upload-invalid-domain": "Kopije postavljanja nisu dostupni na ovom domenu.",
     "backend-fail-stream": "Ne mogu da emitujem datoteku $1.",
     "img-auth-streaming": "Tok \"$1\".",
     "img-auth-public": "Funkcija img_auth.php služi za izlaz datoteka sa privatnih wikija.\nOva wiki je postavljena kao javna wiki.\nZa optimalnu sigurnost, img_auth.php je onemogućena.",
     "img-auth-noread": "Korisnik nema pristup za čitanje \"$1\".",
-    "img-auth-bad-query-string": "URL ima nevaljan izraz upita.",
     "http-invalid-url": "Nevaljan URL: $1",
     "http-invalid-scheme": "URLovi za koje šema \"$1\" nije podržana",
     "http-request-error": "HTTP zahtjev nije uspio zbog nepoznate pogreške.",
     "filehist-dimensions": "Dimenzije",
     "filehist-filesize": "Veličina datoteke",
     "filehist-comment": "Komentar",
-    "filehist-missing": "Datoteka nedostaje",
     "imagelinks": "Upotreba datoteke",
     "linkstoimage": "{{PLURAL:$1|Sljedeća stranica koristi|Sljedećih $1 stranica koriste}} ovu sliku:",
     "linkstoimage-more": "Više od $1 {{PLURAL:$1|stranice povezuje|stranica povezuje}} na ovu datoteku.\nSlijedeći popis prikazuje {{PLURAL:$1|stranice koje|prvih $1 stranica koje}} vode na ovu datoteku.\n[[Special:WhatLinksHere/$2|Ovdje se nalazi]] potpuni popis.",
     "emailuser-title-notarget": "Slanje e-maila korisniku",
     "emailpage": "Pošalji e-mail ovom korisniku",
     "emailpagetext": "Možete da koristite donji obrazac da pošaljete e-mail {{GENDER:$1|ovom korisniku|ovoj korisnici|ovom korisniku|}}.\nE-mail koju ste uneli u vašim [[Special:Preferences|postavkama]] će se prikazati u polju \"Od:\", tako da će primalac moći da vam odgovori direktno.",
-    "usermailererror": "Objekat maila je vratio grešku:",
     "defemailsubject": "{{SITENAME}} e-mail od korisnika \"$1\"",
     "usermaildisabled": "Korisnički e-mail onemogućen",
     "usermaildisabledtext": "Ne možete poslati e-mail drugim korisnicima na ovoj wiki",
     "noemailtitle": "Nema adrese e-pošte",
     "noemailtext": "Ovaj korisnik nije naveo ispravnu adresu e-pošte.",
-    "nowikiemailtitle": "E-mail nije dozvoljen",
     "nowikiemailtext": "Ovaj korisnik je odabrao da ne prima e-mail poštu od drugih korisnika.",
     "emailnotarget": "Neodgovarajuće ili nevaljano korisničko ime za primanje e-maillova.",
     "emailtarget": "Unesite korisnika za primanje e-mailova",
     "watching": "Pratim... / Додавање на списак надгледања...",
     "unwatching": "Ne pratim…",
     "watcherrortext": "Desila se greška pri promjeni postavki vašeg spiska praćenja za \"$1\".",
-    "enotif_mailer": "{{SITENAME}} obavještenje o pošti",
     "enotif_reset": "Označi sve strane kao posjećene",
     "enotif_impersonal_salutation": "{{SITENAME}} korisnik",
     "enotif_subject_deleted": "{{SITENAME}} stranicu $1 {{gender:|je izbrisao|je izbrisala|je izbrisao}} $2",
     "excontent": "sadržaj je bio: '$1'",
     "excontentauthor": "sadržaj je bio: '$1' (i jedini korisnik koji je mijenjao bio je '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "sadržaj prije brisanja je bio: '$1'",
-    "exblank": "stranica je bila prazna",
     "delete-confirm": "Brisanje \"$1\"",
     "delete-legend": "Obriši",
     "historywarning": "'''Upozorenje''':  Stranica koju želite da obrišete ima historiju sa otprilike $1 {{PLURAL:$1|revizijom|revizije|revizija}}:",
     "importunknownsource": "Nepoznat izvorni tip uvoza",
     "importcantopen": "Ne može se otvoriti uvozna datoteka",
     "importbadinterwiki": "Loš interwiki link",
-    "importnotext": "Prazan ili nepostojeći tekst",
     "importsuccess": "Uvoz dovršen!",
-    "importhistoryconflict": "Postoji konfliktna historija revizija (moguće je da je ova stranica ranije uvezena)",
     "importnosources": "Nisu definirani izvori za transwiki uvoz i neposredna postavljanja historije su onemogućena.",
     "importnofile": "Uvozna datoteka nije postavljena.",
     "importuploaderrorsize": "Postavljanje uvozne datoteke nije uspjelo.\nDatoteka je veća od dozvoljene veličine za postavljanje.",
index dc73f51..f9e0389 100644 (file)
     "createacct-imgcaptcha-ph": "Zadajte text, ktorý vidíte vyššie",
     "createacct-submit": "Vytvoriť účet",
     "createacct-another-submit": "Vytvoriť ďalší účet",
-    "createacct-benefit-heading": "{{grammar:4sg|{{SITENAME}}}} tvoria ľudia ako vy.",
+    "createacct-benefit-heading": "{{GRAMMAR:akuzatív|{{SITENAME}}}} tvoria ľudia ako vy.",
     "createacct-benefit-body1": "{{PLURAL:$1|úprava|úpravy|úprav}}",
     "createacct-benefit-body2": "{{PLURAL:$1|stránka|stránky|stránok}}",
     "createacct-benefit-body3": "{{PLURAL:$1|nedávny prispievateľ|nedávni prispievatelia|nedávnych prispievateľov}}",
     "accountcreatedtext": "Používateľský účet [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskusia]]) bol vytvorený.",
     "createaccount-title": "Vytvorenie účtu na {{GRAMMAR:lokál|{{SITENAME}}}}",
     "createaccount-text": "Niekto vytvoril účet pre vašu emailovú adresu na {{GRAMMAR:lokál|{{SITENAME}}}}\n($4) s názvom „$2“, s heslom „$3“. Mali by ste sa prihlásiť a svoje heslo teraz zmeniť.\n\nAk bol účet vytvorený omylom, túto správu môžete ignorovať.",
-    "usernamehasherror": "Používateľské meno nemôže obsahovať znak mriežky.",
     "login-throttled": "Uskutočnili ste príliš mnoho neúspešných pokusov o prihlásenie.\nProsím, počkajte $1 predtým, než to skúsite znova.",
     "login-abort-generic": "Vaše prihlásenie nebolo úspešné - zrušené",
     "loginlanguagelabel": "Jazyk: $1",
     "prefs-skin": "Vzhľad",
     "skin-preview": "Náhľad",
     "datedefault": "štandardný",
-    "prefs-datetime": "Dátum a čas",
     "prefs-labs": "Laboratórne funkcie",
     "prefs-user-pages": "Stránky používateľa",
     "prefs-personal": "Profil",
     "upload-permitted": "Povolené typy súborov: $1.",
     "upload-preferred": "Uprednostňované typy súborov: $1.",
     "upload-prohibited": "Zakázané typy súborov: $1.",
-    "uploadlog": "Záznam nahrávaní",
     "uploadlogpage": "Záznam nahrávaní",
     "uploadlogpagetext": "Nižšie je zoznam nedávno nahraných súborov.\nVizuálny prehľad nájdete v [[Special:NewFiles|galérii novo nahraných súborov]].",
     "filename": "Názov súboru",
     "filereuploadsummary": "Zmeny súboru:",
     "filestatus": "Stav autorských práv:",
     "filesource": "Zdroj:",
-    "uploadedfiles": "Nahrané súbory",
     "ignorewarning": "Ignorovať varovanie a súbor napriek tomu uložiť",
     "ignorewarnings": "Ignorovať všetky varovania",
     "minlength1": "Názvy súborov musia mať aspoň jedno písmeno.",
     "overwroteimage": "bola nahraná nová verzia „[[$1]]“",
     "uploaddisabled": "Prepáčte, nahrávanie je vypnuté.",
     "copyuploaddisabled": "Nahrávanie prostredníctvom URL nie je povolené.",
-    "uploadfromurl-queued": "Súbor, ktorý ste dali nahrať bol uložený do fronty.",
     "uploaddisabledtext": "Nahrávanie súborov je vypnuté.",
     "php-uploaddisabledtext": "Nahrávanie PHP súborov je vypnuté. Prosím, skontrolujte nastavenie file_uploads.",
     "uploadscripted": "Tento súbor obsahuje kód HTML alebo skript, ktorý može byť chybne interpretovaný prehliadačom.",
     "upload-misc-error": "Neznáma chyba pri nahrávaní",
     "upload-misc-error-text": "Počas nahrávania sa vyskytla neznáma chyba.\nProsím, overte, že URL je platný a dostupný a skúste znova.\nAk problém pretrváva, kontaktujte [[Special:ListUsers/sysop|správcu systému]].",
     "upload-too-many-redirects": "URL obsahoval príliš mnoho presmerovaní",
-    "upload-unknown-size": "Neznáma veľkosť",
     "upload-http-error": "Vyskytla sa chyba HTTP: $1",
     "upload-copy-upload-invalid-domain": "Kopírovanie nahraných súborov nie je dostupné z tejto domény.",
     "backend-fail-stream": "$1 je názov súboru.",
     "img-auth-streaming": "Streamovanie „$1“.",
     "img-auth-public": "Funkciou img_auth.php je výstup súborov zo súkromnej wiki.\nNastavená wiki je verejná.\nAby bolo zabezpečenie optimálne, img_auth.php je vypnutý.",
     "img-auth-noread": "Používateľ nemá prístup na čítanie „$1“.",
-    "img-auth-bad-query-string": "URL má neplatný reťazec požiadavky.",
     "http-invalid-url": "Neplatný URL: $1",
     "http-invalid-scheme": "URL so schémou „$1“ nie sú podporované",
     "http-request-error": "Požiadavka HTTP zlyhala z neznámych dôvodov.",
     "filehist-dimensions": "rozmery",
     "filehist-filesize": "veľkosť súboru",
     "filehist-comment": "komentár",
-    "filehist-missing": "Súbor chýba",
     "imagelinks": "Použitie súboru",
     "linkstoimage": "Na tento obrázok {{PLURAL:$1|odkazuje nasledujúca stránka|odkazujú nasledujúce $1 stránky|odkazuje nasledujúcich $1 stránok}}:",
     "linkstoimage-more": "Viac ako $1 {{PLURAL:$1|stránka odkazuje|stránky odkazujú|stránok odkazuje}} na tento súbor.\nNasledovný zoznam zobrazuje {{PLURAL:$1|prvú stránku odkazujúcu|prvé $1 stránky odkazujúce|prvých $1 stránok odkazujúcich}} iba na tento súbor.\nMôžete si pozrieť [[Special:WhatLinksHere/$2|úplný zoznam]].",
     "emailuser-title-notarget": "E-mail používateľovi",
     "emailpage": "E-mail používateľovi",
     "emailpagetext": "Pomocou nasledovného formulára môžete {{GENDER:$1|tomuto používateľovi|tejto používateľke}} poslať e-mailovú správu.\nMailová adresa, ktorú ste zadali vo svojich [[Special:Preferences|nastaveniach]] sa zobrazí ako adresa odosielateľa mailu, aby vám mohol príjemca priamo odpovedať.",
-    "usermailererror": "Emailový program vrátil chybu:",
     "defemailsubject": "email {{GRAMMAR:genitív|{{SITENAME}}}} od používateľa „$1“",
     "usermaildisabled": "Používateľ má vypnuté používanie emailu",
     "usermaildisabledtext": "Nemôžete posielať emaily ostatným používateľom na tejto wiki",
     "noemailtitle": "Chýba e-mailová adresa",
     "noemailtext": "Tento používateľ neuviedol svoju platnú e-mailovú adresu.",
-    "nowikiemailtitle": "Posielanie emailov nie je umožnené",
     "nowikiemailtext": "Tento používateľ sa rozhodol, že si neželá prijímať emaily od ostatných používateľov.",
     "emailnotarget": "Neexistujúce alebo neplatné používateľské meno príjemcu.",
     "emailtarget": "Zadajte používateľské meno príjemcu",
     "watching": "Pridávam do zoznamu sledovaných...",
     "unwatching": "Odoberám zo zoznamu sledovaných...",
     "watcherrortext": "Vyskytla sa chyba počas zmeny nastavenia vášho zoznamu sledovaných pre „$1“.",
-    "enotif_mailer": "Upozorňovač {{GRAMMAR:genitív|{{SITENAME}}}}",
     "enotif_reset": "Označiť všetky stránky ako „navštívené“",
     "enotif_impersonal_salutation": "používateľ {{GRAMMAR:genitív|{{SITENAME}}}}",
     "enotif_subject_deleted": "Stránku {{GENDER:genitív|{{SITENAME}}}} „$1“ odstránil používateľ $2",
     "excontent": "obsah bol: „$1“",
     "excontentauthor": "obsah bol: „$1“ (a jediný autor bol [[Special:Contributions/$2]])",
     "exbeforeblank": "obsah pred vyčistením stránky bol: '$1'",
-    "exblank": "stránka bola prázdna",
     "delete-confirm": "Zmazať „$1“",
     "delete-legend": "Zmazať",
     "historywarning": "'''Upozornenie:''' Stránka, ktorú sa chystáte zmazať má históriu obsahujúcu približne $1 {{PLURAL:$1|revíziu|revízie|revízií}}:",
     "importunknownsource": "Neznámy typ zdroja pre import",
     "importcantopen": "Nedal sa otvoriť súbor importu",
     "importbadinterwiki": "Zlý interwiki odkaz",
-    "importnotext": "Prázdny alebo žiadny text",
     "importsuccess": "Import dokončený!",
-    "importhistoryconflict": "Existujú konfliktné histórie revízií (možno už bola táto stránka importovaná)",
     "importnosources": "Neboli definované žiadne zdroje pre transwiki import a priame nahranie histórie je vypnuté.",
     "importnofile": "Nebol nahraný import súbor.",
     "importuploaderrorsize": "Nahranie alebo import súboru zlyhal. Súbor je väčší ako maximálna povolená veľkosť.",
index 1cda834..b618c93 100644 (file)
     "permalink": "Trajna povezava",
     "print": "Tisk",
     "view": "Ogled",
+    "view-foreign": "Ogled na: $1",
     "edit": "Uredi stran",
+    "edit-local": "Uredi lokalni opis",
     "create": "Ustvari",
+    "create-local": "Dodaj lokalni opis",
     "editthispage": "Uredi stran",
     "create-this-page": "Ustvari stran",
     "delete": "Briši",
     "accountcreatedtext": "Ustvarili smo uporabniški račun za [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|pogovor]]).",
     "createaccount-title": "Ustvarjanje računa za {{GRAMMAR:tožilnik|{{SITENAME}}}}",
     "createaccount-text": "Nekdo je ustvaril račun $2 na {{GRAMMAR:dajalnik|{{SITENAME}}}} ($4). Geslo za »$2« je »$3«. Priporočljivo je, da se prijavite in spremenite svoje geslo sedaj.\n\nTo sporočilo lahko prezrete, če je bil račun ustvarjen pomotoma.",
-    "usernamehasherror": "Uporabniško ime ne sme vsebovati ''hash'' znakov",
     "login-throttled": "Nedavno ste izvedli preveč poskusov prijave.\nProsimo, počakajte $1, preden poskusite znova.",
     "login-abort-generic": "Vaša prijava ni bila uspešna – Prekinjeno",
     "loginlanguagelabel": "Jezik: $1",
     "prefs-skin": "Koža",
     "skin-preview": "Predogled",
     "datedefault": "Kakor koli",
-    "prefs-datetime": "Datum in čas",
     "prefs-labs": "Funkcije laboratorija",
     "prefs-user-pages": "Uporabniške strani",
     "prefs-personal": "Podatki o uporabniku",
     "upload-permitted": "Dovoljene vrste datotek: $1.",
     "upload-preferred": "Priporočene vrste datotek: $1.",
     "upload-prohibited": "Prepovedane vrste datotek: $1.",
-    "uploadlog": "dnevnik nalaganja",
     "uploadlogpage": "Dnevnik nalaganja datotek",
     "uploadlogpagetext": "Prikazan je seznam nedavno naloženih datotek.\nZa grafični pogled obiščite [[Special:NewFiles|galerijo novih datotek]].",
     "filename": "Ime datoteke",
     "filereuploadsummary": "Spremembe datoteke:",
     "filestatus": "Položaj avtorskih pravic:",
     "filesource": "Vir:",
-    "uploadedfiles": "Naložene datoteke",
     "ignorewarning": "Naloži kljub opozorilu",
     "ignorewarnings": "Prezri vsa opozorila",
     "minlength1": "Imena datotek morajo biti dolga vsaj eno črko.",
     "overwroteimage": "je naložil(-a) novo različico datoteke »[[$1]]«",
     "uploaddisabled": "Nalaganje je onemogočeno",
     "copyuploaddisabled": "Nalaganje preko URL je onemogočeno",
-    "uploadfromurl-queued": "Vaše nalaganje je bilo postavljeno v čakalno vrsto.",
     "uploaddisabledtext": "Nalaganje datotek je onemogočeno.",
     "php-uploaddisabledtext": "Nalaganje datotek je onemogočeno v PHP.\nProsimo preverite file_uploads nastavitev.",
     "uploadscripted": "Datoteka vsebuje HTML- ali skriptno kodo, ki bi jo lahko brskalnik razlagal napačno.",
     "upload-misc-error": "Neznana napaka pri nalaganju",
     "upload-misc-error-text": "Med nalaganjem je prišlo do neznane napake.\nProsimo, preverite veljavnost in dostopnost naslova URL ter poskusite ponovno.\nČe se težava ponavlja, kontaktirajte [[Special:ListUsers/sysop|administratorja]].",
     "upload-too-many-redirects": "URL vsebuje preveč preusmeritev",
-    "upload-unknown-size": "neznana velikost",
     "upload-http-error": "Prišlo je do napake HTTP: $1",
     "upload-copy-upload-invalid-domain": "Nalaganje kopij s te domene ni možno.",
     "backend-fail-stream": "Ne morem pretakati datoteke $1.",
     "img-auth-streaming": "Pretakanje »$1«.",
     "img-auth-public": "Funkcija img_auth.php je izvoz datotek iz zasebnega wikija.\nTa wiki je konfiguriran kot javni wiki.\nZa optimalno varnost je img_auth.php onemogočen.",
     "img-auth-noread": "Uporabnik nima dostopa za branje »$1«.",
-    "img-auth-bad-query-string": "URL ima neveljavni niz poizvedbe.",
     "http-invalid-url": "Napačen URL: $1",
     "http-invalid-scheme": "URL-naslovi s shemo »$1« niso podprti.",
     "http-request-error": "Zahteva HTTP ni uspela zaradi neznane napake.",
     "filehist-dimensions": "Velikost",
     "filehist-filesize": "Velikost datoteke",
     "filehist-comment": "Komentar",
-    "filehist-missing": "Datoteka manjka",
     "imagelinks": "Uporaba datoteke",
     "linkstoimage": "Datoteka je del {{PLURAL:$1|naslednje $1 strani|naslednjih $1 strani}} {{GRAMMAR:rodilnik|{{SITENAME}}}}:",
     "linkstoimage-more": "Na to datoteko se {{PLURAL:$1|povezuje več kot $1 stran|povezujeta več kot $1 strani|povezujejo več kot $1 strani|povezuje več kot $1 strani}}.\nNaslednji seznam obsega samo {{PLURAL:$1|prvo stran, ki se povezuje|prvi $1 strani, ki se povezujeta|prve $1 strani, ki se povezujejo|prvih $1 strani, ki se povezujejo}} na datoteko.\nNa razpolago je tudi [[Special:WhatLinksHere/$2|popoln seznam]].",
     "listgrouprights-removegroup-self": "Odstranitev svojega računa iz {{PLURAL:$2|skupine|skupin}}: $1",
     "listgrouprights-addgroup-self-all": "Lastni račun dodaj v vse skupine",
     "listgrouprights-removegroup-self-all": "Lastni račun odstrani iz vseh skupin",
+    "listgrouprights-namespaceprotection-header": "Omejitve imenskih prostorov",
+    "listgrouprights-namespaceprotection-namespace": "Imenski prostor",
+    "listgrouprights-namespaceprotection-restrictedto": "Pravice, ki uporabniku omogočajo urejanje",
     "trackingcategories": "Sledilne kategorije",
     "trackingcategories-summary": "Stran navaja sledilne kategorije, ki jih samodejno napolni programje MediaWiki. Njihova imena lahko spremenite s spreminjanjem ustreznih sistemskih sporočil v imenskem prostoru {{ns:8}}.",
     "trackingcategories-msg": "Sledilna kategorija",
     "trackingcategories-name": "Ime sporočila",
     "trackingcategories-desc": "Merila za vključitev v kategorijo",
-    "noindex-category-desc": "Stran vsebuje čarobno besedo <nowiki>__NOINDEX__</nowiki> (in je v imenskem prostoru, ki dovoljuje to oznako) in posledično je roboti ne indeksirajo.",
-    "index-category-desc": "Stran vsebuje čarobno besedo <nowiki>__INDEX__</nowiki> (in je v imenskem prostoru, ki dovoljuje to oznako) in posledično jo roboti indeksirajo, čeprav je drugače ne bi.",
+    "noindex-category-desc": "Stran vsebuje čarobno besedo <code><nowiki>__NOINDEX__</nowiki></code> (in je v imenskem prostoru, ki dovoljuje to oznako) in posledično je roboti ne indeksirajo.",
+    "index-category-desc": "Stran vsebuje čarobno besedo <code><nowiki>__INDEX__</nowiki></code> (in je v imenskem prostoru, ki dovoljuje to oznako) in posledično jo roboti indeksirajo, čeprav je drugače ne bi.",
     "post-expand-template-inclusion-category-desc": "Po razširitvi vseh predlog je velikost strani več kot <code>$wgMaxArticleSize</code>, zato nekaterih predlog nismo razširili.",
     "post-expand-template-argument-category-desc": "Po razširitvi argumentov predloge (nekaj v trojnih narekovajih, npr. <code>{{{Foo}}})</code> je stran večja od <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Stran vsebuje preveč dragih razčlenitvenih funkcij (npr. <code>#ifexist</code>). Glejte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
     "broken-file-category-desc": "Kategorijo smo dodali, če stan vsebuje pokvarjeno povezavo na datoteko (povezavo na vključeno datoteko, ki ne obstaja).",
-    "hidden-category-category-desc": "To je kategorija s <nowiki>__HIDDENCAT__</nowiki>, kar ji preprečuje, da se po privzetem prikazuje v okvirju s povezavami na kategorije strani.",
+    "hidden-category-category-desc": "To je kategorija s <code><nowiki>__HIDDENCAT__</nowiki></code>, kar ji preprečuje, da se po privzetem prikazuje v okvirju s povezavami na kategorije strani.",
     "trackingcategories-nodesc": "Opis ni na voljo.",
     "trackingcategories-disabled": "Kategorija je onemogočena",
     "mailnologin": "Manjka naslov pošiljatelja",
     "emailuser-title-notarget": "Pošlji uporabniku e-pismo",
     "emailpage": "Pošlji uporabniku e-pismo",
     "emailpagetext": "S spodnjim obrazcem lahko {{GENDER:$1|uporabniku|uporabnici}} pošljete e-poštno sporočilo.\nE-poštni naslov, ki ste ga vpisali v [[Special:Preferences|uporabniških nastavitvah]], bo v e-sporočilu naveden kot naslov »Od:«, tako da bo {{GENDER:$1|prejemnik lahko odgovoril|prejemnica lahko odgovorila}} neposredno vam.",
-    "usermailererror": "Predmet e-pošte je vrnil napako:",
     "defemailsubject": "Elektronska pošta {{GRAMMAR:rodilnik|{{SITENAME}}}} od uporabnika »$1«",
     "usermaildisabled": "Uporabniška e-pošta je onemogočena",
     "usermaildisabledtext": "Na tem wikiju ne morete poslati e-pošte drugim uporabnikom",
     "noemailtitle": "Ni e-poštnega naslova",
     "noemailtext": "Uporabnik ni navedel veljavnega e-poštnega naslova.",
-    "nowikiemailtitle": "E-pošta ni dovoljena",
     "nowikiemailtext": "Ta uporabnik se je odločil, da ne bo prejmal e-pošte od drugih uporabnikov.",
     "emailnotarget": "Neobstoječe ali neveljavno uporabniško ime prejemnika.",
     "emailtarget": "Vnesite uporabniško ime prejemnika",
     "watching": "Nadziranje ...",
     "unwatching": "Nenadziranje ...",
     "watcherrortext": "Med spreminjanjem vaših nastavitev spiska nadzora za »$1« je prišlo do napake.",
-    "enotif_mailer": "Obvestilni poštar {{GRAMMAR:rodilnik|{{SITENAME}}}}",
     "enotif_reset": "Označi vse strani kot prebrane",
     "enotif_impersonal_salutation": "Uporabnik {{GRAMMAR:rodilnik|{{SITENAME}}}}",
     "enotif_subject_deleted": "{{GENDER:$2|Uporabnik|Uporabnica}} $2 je {{GENDER:$2|izbrisal|izbrisala}} stran $1 v {{GRAMMAR:dajalnik|{{SITENAME}}}}",
     "excontent": "vsebina: '$1'",
     "excontentauthor": "vsebina: '$1' (edini urejevalec pa '$2')",
     "exbeforeblank": "vsebina pred brisanjem: '$1'",
-    "exblank": "prazna stran",
     "delete-confirm": "Brisanje »$1«",
     "delete-legend": "Izbriši",
     "historywarning": "'''Opozorilo:''' Stran, ki jo želite izbrisati, ima zgodovino s približno $1 {{PLURAL:$1|redakcijo|redakcijama|redakcijami}}:",
     "importunknownsource": "Neznana vrsta vira uvoza",
     "importcantopen": "Neuspešno odpiranje uvožene datoteke",
     "importbadinterwiki": "Slaba jezikovna povezava",
-    "importnotext": "Prazno ali brez besedila",
     "importsuccess": "Uspešno uvoženo!",
-    "importhistoryconflict": "Zgodovina strani vključuje navzkrižno redakcijo (morda je bila stran naložena že prej)",
     "importnosources": "Na tem wikiju je ta možnost onemogočena.",
     "importnofile": "Uvožena ni bila nobena datoteka.",
     "importuploaderrorsize": "Nalaganje datoteke za uvoz ni uspelo.\nDatoteka je večja od dovoljene velikosti nalaganja.",
index b743f01..1a8edef 100644 (file)
     "disclaimers": "Friijavuohte vastideamis",
     "disclaimerpage": "Project:Bäjjesereaktah",
     "edithelp": "Sjiehtedimmie viehkie",
-    "helppage": "Help:Sisvege",
     "mainpage": "Aalkoebielie",
     "mainpage-description": "Aalkoebielie",
     "portal": "Meatan portaale",
index 63d4441..90635c0 100644 (file)
     "create-this-page": "Направи ову страницу",
     "delete": "Обриши",
     "deletethispage": "Обриши ову страницу",
-    "undeletethispage": "Ð\9fоврати ову страницу",
+    "undeletethispage": "Ð\92рати ову страницу",
     "undelete_short": "Врати {{PLURAL:$1|једну обрисану измену|$1 обрисане измене|$1 обрисаних измена}}",
     "viewdeleted_short": "Погледај {{PLURAL:$1|обрисану измену|$1 обрисане измене|$1 обрисаних измена}}",
     "protect": "Заштити",
     "accountcreatedtext": "Кориснички налог [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) је отворен.",
     "createaccount-title": "Отварање корисничког налога за {{SITENAME}}",
     "createaccount-text": "Неко је отворио налог с вашом е-адресом на {{SITENAME}} ($4) под именом $2 и лозинком $3.\nПријавите се и промените своју лозинку.\n\nАко је ово грешка, занемарите ову поруку.",
-    "usernamehasherror": "Корисничко име не може садржати тарабе",
     "login-throttled": "Превише пута сте покушали да се пријавите.\nМолимо вас да сачекате $1 пре него што покушате поново.",
     "login-abort-generic": "Неуспешна пријава – прекинуто",
     "loginlanguagelabel": "Језик: $1",
     "powersearch-togglenone": "ништа",
     "search-external": "Спољна претрага",
     "searchdisabled": "Претрага је онемогућена.\nУ међувремену можете тражити преко Гугла.\nУпамтите да његови пописи овог викија могу бити застарели.",
+    "search-error": "Дошло је до грешке приликом претраге: $1",
     "preferences": "Подешавања",
     "mypreferences": "Подешавања",
     "prefs-edits": "Број измена:",
     "prefs-skin": "Тема",
     "skin-preview": "Прегледај",
     "datedefault": "Свеједно",
-    "prefs-datetime": "Датум и време",
     "prefs-labs": "Пробне могућности",
     "prefs-user-pages": "Корисничке странице",
     "prefs-personal": "Профил",
     "prefs-watchlist-days-max": "Највише $1 {{PLURAL:$1|дан|дана|дана}}",
     "prefs-watchlist-edits": "Највећи број измена у проширеном списку надгледања:",
     "prefs-watchlist-edits-max": "Највећа вредност је хиљаду",
-    "prefs-watchlist-token": "Ð\96еÑ\82он списка надгледања:",
+    "prefs-watchlist-token": "Токен списка надгледања:",
     "prefs-misc": "Друга подешавања",
     "prefs-resetpass": "Промени лозинку",
     "prefs-changeemail": "Промени е-адресу",
     "recentchangesdays-max": "(највише $1 {{PLURAL:$1|дан|дана|дана}})",
     "recentchangescount": "Број измена за приказ:",
     "prefs-help-recentchangescount": "Подразумева скорашње измене, историје страница и дневнике.",
+    "prefs-help-watchlist-token2": "Ово је тајни кључ за RSS довод вашег списка надгледања.\nСвако ко зна овај кључ биће у могућности да види ваша надгледања стога немојте га одавати никоме.\nАко је потребно можете га [[Special:ResetTokens|ресетовати]].",
     "savedprefs": "Ваша подешавања су сачувана.",
     "timezonelegend": "Временска зона:",
     "localtime": "Локално време:",
     "right-deleterevision": "брисање и враћање одређених измена страница",
     "right-deletedhistory": "прегледање обрисаних ставки историје без повезаног текста",
     "right-deletedtext": "прегледање обрисаног текста и измена између обрисаних измена",
-    "right-browsearchive": "тражење обрисаних страница",
+    "right-browsearchive": "претрага обрисаних страница",
     "right-undelete": "враћање обрисаних страница",
     "right-suppressrevision": "прегледање и враћање измена које су сакривене од стране администратора",
     "right-suppressionlog": "гледање приватних дневника",
     "right-block": "блокирање даљих измена других корисника",
     "right-blockemail": "онемогућавање корисницима да шаљу е-поруке",
     "right-hideuser": "блокирање корисничког имена и његово сакривање од јавности",
-    "right-ipblock-exempt": "заобилажење блокирања IP адресе, самоблокирања и блокирања опсега",
+    "right-ipblock-exempt": "заобилажење блокирања IP адресе, аутоматска блокирања и блокирања опсега",
     "right-proxyunbannable": "заобилажење самоблокирања посредника",
     "right-unblockself": "одблокирај самог себе",
     "right-protect": "промени нивое заштите и уреди странице са преносивом заштитом",
-    "right-editprotected": "уреди странице под заштитом „{{int:protect-level-sysop}}“",
+    "right-editprotected": "уређивање страница под заштитом „{{int:protect-level-sysop}}“",
     "right-editsemiprotected": "уреди странице под заштитом „{{int:protect-level-autoconfirmed}}“",
     "right-editinterface": "уређивање корисничког окружења",
     "right-editusercssjs": "уређивање туђих CSS и јаваскрипт датотека",
     "right-editusercss": "уређивање туђих CSS датотека",
     "right-edituserjs": "уређивање туђих јаваскрипт датотека",
-    "right-viewmyprivateinfo": "видите своје личне податке (нпр. адресу е-поште, право име)",
+    "right-viewmyprivateinfo": "Ð\92идите своје личне податке (нпр. адресу е-поште, право име)",
     "right-editmyprivateinfo": "уреди своје личне податке (нпр. адресу е-поште, право име)",
     "right-editmyoptions": "уредите своја подешавања",
     "right-rollback": "брзо враћање измена последњег корисника који је мењао одређену страницу",
     "right-import": "увожење страница из других викија",
     "right-importupload": "увожење страница из отпремљене датотеке",
     "right-patrol": "означавање туђих измена као прегледаних",
-    "right-autopatrol": "самоозначавање измена као прегледане",
+    "right-autopatrol": "аутоматско означавање измена као прегледаним",
     "right-patrolmarks": "прегледање ознака за патролирање унутар скорашњих измена",
     "right-unwatchedpages": "прегледање списка ненадгледаних страница",
     "right-mergehistory": "спајање историја страница",
     "upload-permitted": "Дозвољени типови датотека: $1.",
     "upload-preferred": "Препоручени типови датотека: $1.",
     "upload-prohibited": "Забрањени типови датотека: $1.",
-    "uploadlog": "дневник отпремања",
     "uploadlogpage": "Дневник отпремања",
     "uploadlogpagetext": "Испод је списак скорашњих слања.\nПогледајте [[Special:NewFiles|галерију нових датотека]] за лепши преглед.",
     "filename": "Назив датотеке",
     "filereuploadsummary": "Измене датотеке:",
     "filestatus": "Статус ауторског права:",
     "filesource": "Извор:",
-    "uploadedfiles": "Послате датотеке",
     "ignorewarning": "Занемари упозорења и сачувај датотеку",
     "ignorewarnings": "Занемари сва упозорења",
     "minlength1": "Назив датотеке мора имати барем један знак.",
     "overwroteimage": "је послао нову верзију датотеке „[[$1]]“",
     "uploaddisabled": "Отпремање је онемогућено.",
     "copyuploaddisabled": "Слање путем URL адресе је онемогућено.",
-    "uploadfromurl-queued": "Слање је стављено на списак чекања.",
     "uploaddisabledtext": "Отпремање датотека је онемогућено.",
     "php-uploaddisabledtext": "Слање датотека је онемогућено у PHP-у.\nПроверите поставке file_uploads.",
     "uploadscripted": "Датотека садржи HTML или скриптни код који може бити погрешно протумачен од стране прегледача.",
     "upload-misc-error": "Непозната грешка при слању датотеке",
     "upload-misc-error-text": "Непозната грешка при слању датотеке.\nПроверите да ли је адреса исправна и покушајте поново.\nАко се проблем не реши, контактирајте [[Special:ListUsers/sysop|администратора]].",
     "upload-too-many-redirects": "Адреса садржи превише преусмерења",
-    "upload-unknown-size": "Непозната величина",
     "upload-http-error": "Дошло је до HTTP грешке: $1",
     "upload-copy-upload-invalid-domain": "Примерци отпремања нису доступни на овом домену.",
     "backend-fail-stream": "Не могу да емитујем датотеку $1.",
     "img-auth-streaming": "Учитавање „$1“.",
     "img-auth-public": "Сврха img_auth.php је да прослеђује датотеке из приватних викија.\nОвај вики је постављен као јавни.\nРади сигурности, img_auth.php је онемогућен.",
     "img-auth-noread": "Корисник нема приступ за читање „$1“.",
-    "img-auth-bad-query-string": "Адреса има неисправну ниску упита.",
     "http-invalid-url": "Неисправна адреса: $1",
     "http-invalid-scheme": "Адресе са шемом „$1“ нису подржане.",
     "http-request-error": "HTTP захтев није прошао због непознате грешке.",
     "filehist-dimensions": "Димензије",
     "filehist-filesize": "Величина датотеке",
     "filehist-comment": "Коментар",
-    "filehist-missing": "Датотека недостаје",
     "imagelinks": "Употреба датотеке",
     "linkstoimage": "{{PLURAL:$1|Следећа страница користи|$1 следеће странице користе|$1 следећих страница користи}} ову датотеку:",
     "linkstoimage-more": "Више од $1 {{PLURAL:$1|странице|странице|страница}} је повезано с овом датотеком.\nСледећи списак приказује само {{PLURAL:$1|прву страницу повезану|прве $1 странице повезане|првих $1 страница повезаних}} с овом датотеком.\nДоступан је и [[Special:WhatLinksHere/$2|потпуни списак]].",
     "download": "преузми",
     "unwatchedpages": "Ненадгледане странице",
     "listredirects": "Списак преусмерења",
+    "listduplicatedfiles": "Списак дупликата датотека",
+    "listduplicatedfiles-summary": "Ово је списак датотека које су дупликат неких других датотека. Само локалне датотеке су приказане.",
     "unusedtemplates": "Некоришћени шаблони",
     "unusedtemplatestext": "Ова страница наводи све странице у именском простору {{ns:template}} које нису укључене ни на једној другој страници.\nПре брисања проверите да ли друге странице воде до тих шаблона.",
     "unusedtemplateswlh": "остале везе",
     "emailuser-title-notarget": "Слање е-поруке кориснику",
     "emailpage": "Слање е-порука",
     "emailpagetext": "Можете да користите доњи образац да пошаљете е-поруку {{GENDER:$1|овом кориснику|овој корисници|овом кориснику|}}.\nЕ-адреса коју сте унели у вашим [[Special:Preferences|подешавањима]] ће се приказати у пољу „Од“, тако да ће прималац моћи да вам одговори директно.",
-    "usermailererror": "Дошло је до грешке при слању поруке:",
     "defemailsubject": "{{SITENAME}} е-адреса {{GENDER:$1|корисника|кориснице|корисника}} $1",
     "usermaildisabled": "Корисничка е-пошта је онемогућена",
     "usermaildisabledtext": "Не можете да шаљете е-поруке другим корисницима на овом викију",
     "noemailtitle": "Нема е-адресе",
     "noemailtext": "Овај корисник није навео исправну е-адресу.",
-    "nowikiemailtitle": "Е-пошта није дозвољена",
     "nowikiemailtext": "Овај корисник је одлучио да не прима е-поруке од других корисника.",
     "emailnotarget": "Непостојеће или неисправно корисничко име примаоца.",
     "emailtarget": "Унос корисничког имена примаоца",
     "watching": "Надгледање…",
     "unwatching": "Прекидање надгледања…",
     "watcherrortext": "Дошло је до грешке при промени поставки вашег списка надгледања за „$1“.",
-    "enotif_mailer": "{{SITENAME}} е-обавештење",
     "enotif_reset": "Означи све странице као посећене",
     "enotif_impersonal_salutation": "{{SITENAME}} корисник",
     "enotif_subject_deleted": "Страницу $1 на {{SITENAME}} {{GENDER:$2|обрисао је|обрисала је|обрисао је}} $2",
     "excontent": "садржај је био: „$1“",
     "excontentauthor": "садржај је био: „$1“ (а једини уредник је био „[[Special:Contributions/$2|$2]]“)",
     "exbeforeblank": "садржај пре брисања је био: „$1“",
-    "exblank": "страница је била празна",
     "delete-confirm": "Брисање странице „$1“",
     "delete-legend": "Обриши",
     "historywarning": "'''Упозорење:''' страница коју желите да обришете има историју с приближно $1 {{PLURAL:$1|изменом|измене|измена}}:",
     "importunknownsource": "Непозната врста за увоз",
     "importcantopen": "Не могу да отворим датотеку за увоз",
     "importbadinterwiki": "Неисправна међувики веза",
-    "importnotext": "Празно или без текста",
     "importsuccess": "Увожење је завршено!",
-    "importhistoryconflict": "Постоји сукобљена измена у историји (можда је ова страница већ увезена раније)",
     "importnosources": "Није одређен ниједан међувики извор за увоз, тако да је отпремање историје онемогућено.",
     "importnofile": "Увозна датотека није послата.",
     "importuploaderrorsize": "Не могу да отпремим датотеку за увоз.\nДатотека је већа од дозвољене величине.",
     "tooltip-recreate": "Поново направите страницу иако је обрисана",
     "tooltip-upload": "Започните отпремање",
     "tooltip-rollback": "„Врати“ враћа измене последњег корисника једним кликом",
-    "tooltip-undo": "Ð\92Ñ\80аÑ\9bа ову измену и отвара образац за уређивање.",
+    "tooltip-undo": "Ð\9fониÑ\88Ñ\82ава ову измену и отвара образац за уређивање.",
     "tooltip-preferences-save": "Сачувај поставке",
     "tooltip-summary": "Унесите кратак опис",
     "common.css": "/** CSS постављен овде ће се одразити на све теме */",
index 24141d1..3242f64 100644 (file)
     "actions": "Radnje",
     "namespaces": "Imenski prostori",
     "variants": "Varijante",
+    "navigation-heading": "Navigacioni meni",
     "errorpagetitle": "Greška",
     "returnto": "Nazad na $1.",
     "tagline": "Izvor: {{SITENAME}}",
     "create-this-page": "Napravi ovu stranicu",
     "delete": "Obriši",
     "deletethispage": "Obriši ovu stranicu",
+    "undeletethispage": "Vrati ovu stranicu",
     "undelete_short": "Vrati {{PLURAL:$1|jednu obrisanu izmenu|$1 obrisane izmene|$1 obrisanih izmena}}",
     "viewdeleted_short": "Pogledaj {{PLURAL:$1|obrisanu izmenu|$1 obrisane izmene|$1 obrisanih izmena}}",
     "protect": "Zaštiti",
     "error": "Greška",
     "databaseerror": "Greška u bazi podataka",
     "databaseerror-text": "Došlo je do greške u upitu baze podataka. Možda je u pitanju programska greška.",
+    "databaseerror-function": "Funkcija: $1",
+    "databaseerror-error": "Greška: $1",
     "laggedslavemode": "'''Upozorenje:''' stranica je možda zastarela.",
     "readonly": "Baza podataka je zaključana",
     "enterlockreason": "Unesite razlog za zaključavanje, uključujući i vreme otključavanja",
     "namespaceprotected": "Nemate dozvolu da uređujete stranice u imenskom prostoru '''$1'''.",
     "customcssprotected": "Nemate dozvolu da menjate ovu CSS stranicu jer sadrži lične postavke drugog korisnika.",
     "customjsprotected": "Nemate dozvolu da menjate ovu stranicu javaskripta jer sadrži lične postavke drugog korisnika.",
+    "mycustomcssprotected": "Nemate dozvolu za menjanje ove CSS stranice.",
+    "mycustomjsprotected": "Nemate dozvolu za menjanje ove JavaScript stranice.",
+    "myprivateinfoprotected": "Nemate dozvolu za menjanje vaših ličnih informacija.",
+    "mypreferencesprotected": "Nemate dozvolu za menjanje vaših podešavanja.",
     "ns-specialprotected": "Posebne stranice se ne mogu uređivati.",
     "titleprotected": "Ovaj naziv je [[User:$1|$1]] zaštitio od pravljenja. Razlog: ''$2''.",
     "filereadonlyerror": "Ne mogu da izmenim datoteku „$1“ jer je riznica „$2“ u režimu za čitanje.\n\nAdministrator koji ju je zaključao ponudio je sledeće objašnjenje: „$3“.",
     "invalidtitle-unknownnamespace": "Neispravan naslov s imenskim prostorom br. $1 i tekstom „$2“",
     "exception-nologin": "Niste prijavljeni",
     "exception-nologin-text": "[[Special:Userlogin|Prijavite se]] da biste pristupili ovoj stranici ili radnji.",
+    "exception-nologin-text-manual": "Morate biti $1 da biste pristupili ovoj stranici ili radnji.",
     "virus-badscanner": "Neispravna postavka: nepoznati skener za viruse: ''$1''",
     "virus-scanfailed": "neuspešno skeniranje (kod $1)",
     "virus-unknownscanner": "nepoznati antivirus:",
     "yourname": "Korisničko ime:",
     "userlogin-yourname": "Korisničko ime",
     "userlogin-yourname-ph": "Unesite vaše korisničko ime",
+    "createacct-another-username-ph": "Unesite korisničko ime",
     "yourpassword": "Lozinka:",
     "userlogin-yourpassword": "Lozinka",
     "userlogin-yourpassword-ph": "Unesite vašu lozinku",
     "gotaccountlink": "Prijava",
     "userlogin-resetlink": "Zaboravili ste podatke za prijavu?",
     "userlogin-resetpassword-link": "Zaboravili ste lozinku?",
+    "userlogin-helplink2": "Pomoć pri prijavljivanju",
+    "userlogin-loggedin": "Već ste prijavljeni kao {{GENDER:$1|$1}}.\nKoristite donji obrazac da biste se prijavili kao drugi korisnik.",
+    "userlogin-createanother": "Otvori još jedan nalog",
     "createacct-join": "Unesite svoje podatke ispod.",
+    "createacct-another-join": "Unesite podatke za novi nalog ispod.",
     "createacct-emailrequired": "Adresa e-pošte",
     "createacct-emailoptional": "Adresa e-pošte (opciono)",
     "createacct-email-ph": "Unesite vašu adresu e-pоšte",
+    "createacct-another-email-ph": "Unesite adresu e-pošte",
     "createaccountmail": "Koristite privremenu, slučajno stvorenu lozinku i pošaljite na navedenu adresu elektronske pošte",
     "createacct-realname": "Pravo ime (opciono)",
     "createaccountreason": "Razlog:",
     "createacct-captcha": "Sigurnosna provera",
     "createacct-imgcaptcha-ph": "Unesite tekst koji vidite iznad",
     "createacct-submit": "Otvori nalog",
+    "createacct-another-submit": "Otvori još jedan nalog",
     "createacct-benefit-heading": "{{SITENAME}} je napravljen od strane ljudi kao što ste vi.",
+    "createacct-benefit-body1": "{{PLURAL:$1|izmena|izmene}}",
+    "createacct-benefit-body2": "{{PLURAL:$1|stranica|stranice}}",
     "createacct-benefit-body3": "skorašnjih {{PLURAL:$1|doprinosa}}",
     "badretype": "Unete lozinke se ne poklapaju.",
     "userexists": "Korisničko ime je zauzeto. Izaberite drugo.",
     "accountcreatedtext": "Korisnički nalog [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) je otvoren.",
     "createaccount-title": "Otvaranje korisničkog naloga za {{SITENAME}}",
     "createaccount-text": "Neko je otvorio nalog s vašom e-adresom na {{SITENAME}} ($4) pod imenom $2 i lozinkom $3.\nPrijavite se i promenite svoju lozinku.\n\nAko je ovo greška, zanemarite ovu poruku.",
-    "usernamehasherror": "Korisničko ime ne može sadržati tarabe",
     "login-throttled": "Previše puta ste pokušali da se prijavite. \nMolimo vas da sačekate $1 pre nego što pokušate ponovo.",
     "login-abort-generic": "Neuspešna prijava – prekinuto",
     "loginlanguagelabel": "Jezik: $1",
     "suspicious-userlogout": "Vaš zahtev za odjavu je odbijen jer je poslat od strane neispravnog pregledača ili posrednika.",
+    "createacct-another-realname-tip": "Pravo ime nije obavezno.\nAko izaberete da ga unesete, ono će biti korišćeno za pripisivanje vašeg rada.",
     "pt-login": "Prijavi me",
     "pt-login-button": "Prijavi me",
     "pt-createaccount": "Otvori nalog",
     "pt-userlogout": "Odjavi me",
     "php-mail-error-unknown": "Nepoznata greška u funkciji PHP mail().",
     "user-mail-no-addy": "Pokušali ste da pošaljete poruku bez e-adrese.",
+    "user-mail-no-body": "Pokušano slanje elektronske poruke s praznim ili nerazumno kratkim sadržajem.",
     "changepassword": "Promeni lozinku",
-    "resetpass_announce": "Prijavljeni ste s privremenom lozinkom.\nDa biste završili prijavu, podesite novu lozinku ovde:",
+    "resetpass_announce": "Da biste završili prijavu, podesite novu lozinku ovde.",
     "resetpass_text": "<!-- Ovde unesite tekst -->",
     "resetpass_header": "Promena lozinke naloga",
     "oldpassword": "Stara lozinka:",
     "resetpass-submit-loggedin": "Promeni lozinku",
     "resetpass-submit-cancel": "Otkaži",
     "resetpass-wrong-oldpass": "Neispravna privremena ili tekuća lozinka.\nMožda ste već promenili lozinku ili ste zatražili novu privremenu lozinku.",
+    "resetpass-recycled": "Uneli ste sadašnju lozinku, da bi ste resetovali lozinku morate uneti novu.",
+    "resetpass-temp-emailed": "Prijavili ste se sa privremenim kodom iz e-pošte.\nDa biste završili prijavljivanje morate postaviti novu lozinku ovde:",
     "resetpass-temp-password": "Privremena lozinka:",
+    "resetpass-abort-generic": "Promenu lozinke je sprečio dodatak.",
+    "resetpass-expired": "Vaša lozinka je istekla. Postavite novu lozinku da biste se prijavili.",
+    "resetpass-expired-soft": "Vaša lozinka je istekla i morate postaviti novu. Postavite novu lozinku ili kliknite „{{int:resetpass-submit-cancel}}“ da je postavite kasnije.",
     "passwordreset": "Obnavljanje lozinke",
     "passwordreset-text-one": "Popunite ovaj obrazac da biste resetovali lozinku.",
     "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja kako bi ste dobili privremenu lozinku na e-poštu.}}",
     "passwordreset-legend": "Poništi lozinku",
     "passwordreset-disabled": "Obnavljanje lozinke je onemogućeno na ovom vikiju.",
+    "passwordreset-emaildisabled": "E-pošta je onemogućena na ovom vikiju.",
     "passwordreset-username": "Korisničko ime:",
     "passwordreset-domain": "Domen:",
     "passwordreset-capture": "Pogledati krajnju poruku?",
     "changeemail-none": "(ništa)",
     "changeemail-submit": "Promeni",
     "changeemail-cancel": "Otkaži",
+    "resettokens-token-label": "$1 (trenutna vrednost: $2)",
     "bold_sample": "Podebljan tekst",
     "bold_tip": "Podebljan tekst",
     "italic_sample": "Iskošeni tekst",
     "copyrightwarning": "Imajte na umu da se svi doprinosi na ovom vikiju smatraju kao objavljeni pod licencom $2 (više na $1).\nAko ne želite da se vaši tekstovi menjaju i razmenjuju bez ograničenja, onda ih ne šaljite ovde.<br />\nIsto tako obećavate da ste vi autor teksta, ili da ste ga umnožili s izvora koji je u javnom vlasništvu.\n'''Ne šaljite radove zaštićene autorskim pravima bez dozvole!'''",
     "copyrightwarning2": "Imajte na umu da se svi doprinosi na ovom vikiju mogu menjati, vraćati ili brisati od drugih korisnika.\nAko ne želite da se vaši tekstovi slobodno menjaju i raspodeljuju, ne šaljite ih ovde.<br />\nIsto tako obećavate da ste vi autor teksta, ili da ste ga umnožili s izvora koji je u javnom vlasništvu (više na $1).\n'''Ne šaljite radove zaštićene autorskim pravima bez dozvole!'''",
     "longpageerror": "'''Greška: tekst koji ste uneli je veličine {{PLURAL:$1|jedan kilobajt|$1 kilobajta|$1 kilobajta}}, što je veće od {{PLURAL:$2|dozvoljenog jednog kilobajta|dozvoljena $2 kilobajta|dozvoljenih $2 kilobajta}}.'''\nStranica ne može biti sačuvana.",
-    "readonlywarning": "'''Upozorenje: baza podataka je zaključana radi održavanja, tako da nećete moći da sačuvate izmene.\nNajbolje bi bilo da umnožite tekst u uređivač teksta i sačuvate ga za kasnije.'''\n\nAdministrator koji je zaključao bazu podataka je naveo sledeće objašnjenje: $1",
+    "readonlywarning": "<strong>Upozorenje: baza podataka je zaključana radi održavanja, tako da trenutno nećete moći da sačuvate izmene.</strong>\nMožda biste želeli sačuvati tekst za kasnije u nekoj tekstualnoj datoteci.\n\nAdministrator koji je zaključao bazu dao je sledeće objašnjenje: $1",
     "protectedpagewarning": "'''Upozorenje: ova stranica je zaštićena, tako da samo administratori mogu da je menjaju.'''\nPoslednja stavka u istoriji je prikazana ispod:",
     "semiprotectedpagewarning": "'''Napomena:''' ova stranica je zaštićena, tako da samo registrovani korisnici mogu da je uređuju.\nPoslednji zapis u dnevniku je prikazan ispod:",
     "cascadeprotectedwarning": "<div style=\"background: #FFBDBD; border: 1px solid #BB7979; color: #000000; font-weight: bold; margin: 2em 0 1em; padding: .5em 1em; vertical-align: middle; clear: both;\">'''Upozorenje:''' Ova stranica je zaštićena tako da je mogu uređivati samo administratori, jer je ona uključena u {{PLURAL:$1|sledeću stranicu koja je|sledeće stranice koje su}} zaštićene „prenosivom“ zaštitom:</div>",
     "content-failed-to-parse": "Ne mogu da raščlanim sadržaj tipa $2 za model $1: $3",
     "invalid-content-data": "Neispravni podaci sadržaja",
     "content-not-allowed-here": "Sadržaj modela „$1“ nije dozvoljen na stranici [[$2]]",
-    "editwarning-warning": "Ako napustite ovu stranicu, izgubićete sve izmene koje ste napravili.\nAko ste prijavljeni, možete onemogućiti ovo upozorenje u svojim podešavanjima, u odeljku „Uređivanje“.",
+    "editwarning-warning": "Ako napustite ovu stranicu, izgubićete sve izmene koje ste napravili.\nAko ste prijavljeni, možete onemogućiti ovo upozorenje u svojim podešavanjima, u odeljku „{{int:prefs-editing}}“.",
     "content-model-wikitext": "vikitekst",
     "content-model-text": "čist tekst",
     "content-model-javascript": "javaskript",
     "undo-failure": "Ova izmena se ne može poništiti zbog konflikta izmena.",
     "undo-norev": "Ne mogu da vratim izmenu jer ne postoji ili je obrisana.",
     "undo-summary": "Poništena izmena $1 {{GENDER:$2|korisnika|korisnice}} [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]])",
+    "undo-summary-username-hidden": "Poništi izmenu $1 skrivenog korisnika",
     "cantcreateaccounttitle": "Ne mogu da otvorim nalog",
     "cantcreateaccount-text": "Otvaranje naloga s ove IP adrese ('''$1''') je {{GENDER:$3|blokirao|blokirala|blokirao}} [[User:$3|$3]].\n\nRazlog koji je naveo {{GENDER:$3|korisnik|korisnica|korisnik}} $3 je ''$2''",
     "viewpagelogs": "Pogledaj dnevnike ove stranice",
     "revdelete-no-file": "Tražena datoteka ne postoji.",
     "revdelete-show-file-confirm": "Želite li da vidite obrisanu izmenu datoteke „<nowiki>$1</nowiki>“ od $2; $3?",
     "revdelete-show-file-submit": "Da",
+    "revdelete-selected-text": "{{PLURAL:$1|Izabrana izmena|Izabrane izmene}} [[:$2]]:",
+    "revdelete-selected-file": "{{PLURAL:$1|Izabrana verzija datoteke|Izabrane verzije datoteke}} [[:$2]]:",
     "logdelete-selected": "{{PLURAL:$1|Izabrana stavka u istoriji|Izabrane stavke u istoriji}}:",
     "revdelete-confirm": "Potvrdite da nameravate ovo uraditi, da razumete posledice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].",
     "revdelete-suppress-text": "Sakrivanje izmena bi trebalo koristiti '''samo''' u sledećim slučajevima:\n* Zlonamerni ili pogrdni podaci\n* Neprikladni lični podaci\n*: ''kućna adresa i broj telefona, broj bankovne kartice itd.''",
     "revdelete-legend": "Ograničenja vidljivosti",
-    "revdelete-hide-text": "sakrij tekst izmene",
+    "revdelete-hide-text": "Tekst revizije",
     "revdelete-hide-image": "Sakrij sadržaj datoteke",
     "revdelete-hide-name": "Sakrij radnju i odredište",
     "revdelete-hide-comment": "Opis izmene",
-    "revdelete-hide-user": "sakrij ime uređivača",
+    "revdelete-hide-user": "Korisnčko ime urednika/IP adresa",
     "revdelete-hide-restricted": "Sakrij podatke od administratora i drugih korisnika",
     "revdelete-radio-same": "(ne menjaj)",
     "revdelete-radio-set": "Sakriveno",
     "preferences": "Podešavanja",
     "mypreferences": "Podešavanja",
     "prefs-edits": "Broj izmena:",
+    "prefsnologintext2": "Morate biti $1 da biste menjali svoja podešavanja.",
     "prefs-skin": "Tema",
     "skin-preview": "Pregledaj",
     "datedefault": "Svejedno",
-    "prefs-datetime": "Datum i vreme",
     "prefs-labs": "Probne mogućnosti",
     "prefs-user-pages": "Korisničke stranice",
     "prefs-personal": "Profil",
     "prefs-watchlist-days-max": "Najviše $1 {{PLURAL:$1|dan|dana|dana}}",
     "prefs-watchlist-edits": "Najveći broj izmena u proširenom spisku nadgledanja:",
     "prefs-watchlist-edits-max": "Najveća vrednost je hiljadu",
-    "prefs-watchlist-token": "Žeton spiska nadgledanja:",
+    "prefs-watchlist-token": "Token spiska nadgledanja:",
     "prefs-misc": "Druga podešavanja",
     "prefs-resetpass": "Promeni lozinku",
     "prefs-changeemail": "Promeni e-adresu",
     "prefs-dateformat": "Format datuma",
     "prefs-timeoffset": "Vremenska razlika",
     "prefs-advancedediting": "Glavna podešavanja",
+    "prefs-editor": "Uređivač",
+    "prefs-preview": "Pretpregled",
     "prefs-advancedrc": "Napredne postavke",
     "prefs-advancedrendering": "Napredne postavke",
     "prefs-advancedsearchoptions": "Napredne postavke",
     "right-deleterevision": "brisanje i vraćanje određenih izmena stranica",
     "right-deletedhistory": "pregledanje obrisanih stavki istorije bez povezanog teksta",
     "right-deletedtext": "pregledanje obrisanog teksta i izmena između obrisanih izmena",
-    "right-browsearchive": "traženje obrisanih stranica",
+    "right-browsearchive": "pretraga obrisanih stranica",
     "right-undelete": "vraćanje obrisanih stranica",
     "right-suppressrevision": "pregledanje i vraćanje izmena koje su sakrivene od strane administratora",
     "right-suppressionlog": "gledanje privatnih dnevnika",
     "right-block": "blokiranje daljih izmena drugih korisnika",
     "right-blockemail": "onemogućavanje korisnicima da šalju e-poruke",
     "right-hideuser": "blokiranje korisničkog imena i njegovo sakrivanje od javnosti",
-    "right-ipblock-exempt": "zaobilaženje blokiranja IP adrese, samoblokiranja i blokiranja opsega",
+    "right-ipblock-exempt": "zaobilaženje blokiranja IP adrese, automatska blokiranja i blokiranja opsega",
     "right-proxyunbannable": "zaobilaženje samoblokiranja posrednika",
     "right-unblockself": "odblokiraj samog sebe",
     "right-protect": "promeni nivoe zaštite i uredi stranice sa prenosivom zaštitom",
-    "right-editprotected": "uredi stranice pod zaštitom „{{int:protect-level-sysop}}“",
+    "right-editprotected": "uređivanje stranice pod zaštitom „{{int:protect-level-sysop}}“",
+    "right-editsemiprotected": "uredi stranice pod zaštitom „{{int:protect-level-autoconfirmed}}“",
     "right-editinterface": "uređivanje korisničkog sučelja",
     "right-editusercssjs": "uređivanje tuđih CSS i javaskript datoteka",
     "right-editusercss": "uređivanje tuđih CSS datoteka",
     "right-edituserjs": "uređivanje tuđih javaskript datoteka",
+    "right-viewmyprivateinfo": "Vidite svoje lične podatke (npr. adresu e-pošte, pravo ime)",
+    "right-editmyprivateinfo": "uredi svoje lične podatke (npr. adresu e-pošte, pravo ime)",
+    "right-editmyoptions": "uredite svoja podešavanja",
     "right-rollback": "brzo vraćanje izmena poslednjeg korisnika koji je menjao određenu stranicu",
     "right-markbotedits": "označavanje vraćenih izmena kao izmene bota",
     "right-noratelimit": "otpornost na ograničenja",
     "right-import": "uvoženje stranica iz drugih vikija",
     "right-importupload": "uvoženje stranica iz otpremljene datoteke",
     "right-patrol": "označavanje tuđih izmena kao pregledanih",
-    "right-autopatrol": "samooznačavanje izmena kao pregledane",
+    "right-autopatrol": "automatsko označavanje izmena kao pregledanim",
     "right-patrolmarks": "pregledanje oznaka za patroliranje unutar skorašnjih izmena",
     "right-unwatchedpages": "pregledanje spiska nenadgledanih stranica",
     "right-mergehistory": "spajanje istorija stranica",
     "action-userrights-interwiki": "uređivanje korisničkih prava na drugim vikijima",
     "action-siteadmin": "zaključavanje ili otključavanje baze podataka",
     "action-sendemail": "slanje e-poruka",
+    "action-editmywatchlist": "izmeni svoj spisak nadgledanja",
     "nchanges": "$1 {{PLURAL:$1|izmena|izmene|izmena}}",
+    "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|izmena od vaše poslednje posete}}",
+    "enhancedrc-history": "istorija",
     "recentchanges": "Skorašnje izmene",
     "recentchanges-legend": "Postavke skorašnjih izmena",
     "recentchanges-summary": "Pratite skorašnje izmene na ovoj stranici.",
     "upload-permitted": "Dozvoljeni tipovi datoteka: $1.",
     "upload-preferred": "Preporučeni tipovi datoteka: $1.",
     "upload-prohibited": "Zabranjeni tipovi datoteka: $1.",
-    "uploadlog": "dnevnik otpremanja",
     "uploadlogpage": "Dnevnik otpremanja",
     "uploadlogpagetext": "Ispod je spisak skorašnjih slanja.\nPogledajte [[Special:NewFiles|galeriju novih datoteka]] za lepši pregled.",
     "filename": "Naziv datoteke",
     "filereuploadsummary": "Izmene datoteke:",
     "filestatus": "Status autorskog prava:",
     "filesource": "Izvor:",
-    "uploadedfiles": "Poslate datoteke",
     "ignorewarning": "Zanemari upozorenja i sačuvaj datoteku",
     "ignorewarnings": "Zanemari sva upozorenja",
     "minlength1": "Naziv datoteke mora imati barem jedan znak.",
     "overwroteimage": "je poslao novu verziju datoteke „[[$1]]“",
     "uploaddisabled": "Otpremanje je onemogućeno.",
     "copyuploaddisabled": "Slanje putem URL adrese je onemogućeno.",
-    "uploadfromurl-queued": "Slanje je stavljeno na spisak čekanja.",
     "uploaddisabledtext": "Otpremanje datoteka je onemogućeno.",
     "php-uploaddisabledtext": "Slanje datoteka je onemogućeno u PHP-u.\nProverite postavke file_uploads.",
     "uploadscripted": "Datoteka sadrži HTML ili skriptni kod koji može biti pogrešno protumačen od strane pregledača.",
+    "uploadscriptednamespace": "Ova SVG datoteka sadrži pogrešan imenski prostor „$1“",
     "uploadvirus": "Datoteka sadrži virus!\nDetalji: $1",
     "uploadjava": "Datoteka je formata ZIP koji sadrži java .class element.\nSlanje java datoteka nije dozvoljeno jer one mogu izazvati zaobilaženje sigurnosnih ograničenja.",
     "upload-source": "Izvorna datoteka",
     "upload-misc-error": "Nepoznata greška pri slanju datoteke",
     "upload-misc-error-text": "Nepoznata greška pri slanju datoteke.\nProverite da li je adresa ispravna i pokušajte ponovo.\nAko se problem ne reši, kontaktirajte [[Special:ListUsers/sysop|administratora]].",
     "upload-too-many-redirects": "Adresa sadrži previše preusmerenja",
-    "upload-unknown-size": "Nepoznata veličina",
     "upload-http-error": "Došlo je do HTTP greške: $1",
     "upload-copy-upload-invalid-domain": "Primerci otpremanja nisu dostupni na ovom domenu.",
     "backend-fail-stream": "Ne mogu da emitujem datoteku $1.",
     "img-auth-streaming": "Učitavanje „$1“.",
     "img-auth-public": "Svrha img_auth.php je da prosleđuje datoteke iz privatnih vikija.\nOvaj viki je postavljen kao javni.\nRadi sigurnosti, img_auth.php je onemogućen.",
     "img-auth-noread": "Korisnik nema pristup za čitanje „$1“.",
-    "img-auth-bad-query-string": "Adresa ima neispravnu nisku upita.",
     "http-invalid-url": "Neispravna adresa: $1",
     "http-invalid-scheme": "Adrese sa šemom „$1“ nisu podržane.",
     "http-request-error": "HTTP zahtev nije prošao zbog nepoznate greške.",
     "filehist-dimensions": "Dimenzije",
     "filehist-filesize": "Veličina datoteke",
     "filehist-comment": "Komentar",
-    "filehist-missing": "Datoteka nedostaje",
     "imagelinks": "Upotreba datoteke",
     "linkstoimage": "{{PLURAL:$1|Sledeća stranica koristi|$1 sledeće stranice koriste|$1 sledećih stranica koristi}} ovu datoteku:",
     "linkstoimage-more": "Više od $1 {{PLURAL:$1|stranice|stranice|stranica}} je povezano s ovom datotekom.\nSledeći spisak prikazuje samo {{PLURAL:$1|prvu stranicu povezanu|prve $1 stranice povezane|prvih $1 stranica povezanih}} s ovom datotekom.\nDostupan je i [[Special:WhatLinksHere/$2|potpuni spisak]].",
     "unusedtemplateswlh": "ostale veze",
     "randompage": "Slučajna stranica",
     "randompage-nopages": "Nema stranica u {{PLURAL:$2|sledećem imenskom prostoru|sledećim imenskim prostorima}}: $1.",
+    "randomincategory": "Slučajna stranica u kategoriji",
+    "randomincategory-selectcategory-submit": "Idi",
     "randomredirect": "Slučajno preusmerenje",
     "randomredirect-nopages": "Nema preusmerenja u imenskom prostoru „$1”.",
     "statistics": "Statistike",
     "statistics-users-active": "Aktivni korisnici",
     "statistics-users-active-desc": "Korisnici koji su izvršili bar jednu radnju {{PLURAL:$1|prethodni dan|u poslednja $1 dana|u poslednjih $1 dana}}",
     "statistics-mostpopular": "Najposećenije stranice",
+    "pageswithprop": "Strane s osobinom strane",
+    "pageswithprop-legend": "Strane s osobinom strane",
+    "pageswithprop-text": "Ova strana izlistava strane koje imaju određenu osobinu",
     "pageswithprop-prop": "Ime osobine:",
     "pageswithprop-submit": "Idi",
     "doubleredirects": "Dvostruka preusmerenja",
     "mostrevisions": "Stranice s najviše izmena",
     "prefixindex": "Sve stranice s prefiksom",
     "prefixindex-namespace": "Sve stranice s predmetkom (imenski prostor $1)",
+    "prefixindex-strip": "Sakrij prefiks u spisku",
     "shortpages": "Kratke stranice",
     "longpages": "Dugačke stranice",
     "deadendpages": "Stranice bez unutrašnjih veza",
     "emailuser-title-notarget": "Slanje e-poruke korisniku",
     "emailpage": "Slanje e-poruka",
     "emailpagetext": "Možete da koristite donji obrazac da pošaljete e-poruku {{GENDER:$1|ovom korisniku|ovoj korisnici|ovom korisniku|}}.\nE-adresa koju ste uneli u vašim [[Special:Preferences|podešavanjima]] će se prikazati u polju „Od“, tako da će primalac moći da vam odgovori direktno.",
-    "usermailererror": "Došlo je do greške pri slanju poruke:",
     "defemailsubject": "{{SITENAME}} e-adresa {{GENDER:$1|korisnika|korisnice|korisnika}} $1",
     "usermaildisabled": "Korisnička e-pošta je onemogućena",
     "usermaildisabledtext": "Ne možete da šaljete e-poruke drugim korisnicima na ovom vikiju",
     "noemailtitle": "Nema e-adrese",
     "noemailtext": "Ovaj korisnik nije naveo ispravnu e-adresu.",
-    "nowikiemailtitle": "E-pošta nije dozvoljena",
     "nowikiemailtext": "Ovaj korisnik je odlučio da ne prima e-poruke od drugih korisnika.",
     "emailnotarget": "Nepostojeće ili neispravno korisničko ime primaoca.",
     "emailtarget": "Unos korisničkog imena primaoca",
     "watching": "Nadgledanje…",
     "unwatching": "Prekidanje nadgledanja…",
     "watcherrortext": "Došlo je do greške pri promeni postavki vašeg spiska nadgledanja za „$1“.",
-    "enotif_mailer": "{{SITENAME}} e-obaveštenje",
     "enotif_reset": "Označi sve stranice kao posećene",
     "enotif_impersonal_salutation": "{{SITENAME}} korisnik",
+    "enotif_subject_deleted": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|obrisao je|obrisala je}} $2",
+    "enotif_subject_created": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|napravio je|napravila je}} $2",
+    "enotif_subject_moved": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|premestio je|premestila je}} $2",
+    "enotif_subject_restored": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|vratio je|vratila je}} $2",
+    "enotif_subject_changed": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|promenio je|promenila je}} $2",
+    "enotif_body_intro_deleted": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|obrisao je|obrisala je}} $2 dana $PAGEEDITDATE. Pogledajte $3.",
+    "enotif_body_intro_created": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|napravio je|napravila je|napravio je}} $2 dana $PAGEEDITDATE. Trenutna izmena nalazi se na $3.",
+    "enotif_body_intro_moved": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|premestio je|premestila je}} $2 dana $PAGEEDITDATE. Trenutna izmena nalazi se na  $3.",
+    "enotif_body_intro_restored": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|vratio je|vratila je|vratio je}} $2 dana $PAGEEDITDATE. Trenutna izmena nalazi se na $3.",
+    "enotif_body_intro_changed": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|promenio je|promenila je|promenio je}} $2 dana $PAGEEDITDATE. Trenutna izmena nalazi se na $3.",
     "enotif_lastvisited": "Pogledajte $1 za sve izmene od vaše poslednje posete.",
     "enotif_lastdiff": "Pogledajte $1 da vidite ovu izmenu.",
     "enotif_anon_editor": "anoniman korisnik $1",
     "excontent": "sadržaj je bio: „$1“",
     "excontentauthor": "sadržaj je bio: „$1“ (a jedini urednik je bio „[[Special:Contributions/$2|$2]]“)",
     "exbeforeblank": "sadržaj pre brisanja je bio: „$1“",
-    "exblank": "stranica je bila prazna",
     "delete-confirm": "Brisanje stranice „$1“",
     "delete-legend": "Obriši",
     "historywarning": "'''Upozorenje:''' stranica koju želite da obrišete ima istoriju s približno $1 {{PLURAL:$1|izmenom|izmene|izmena}}:",
     "importunknownsource": "Nepoznata vrsta za uvoz",
     "importcantopen": "Ne mogu da otvorim datoteku za uvoz",
     "importbadinterwiki": "Neispravna međuviki veza",
-    "importnotext": "Prazno ili bez teksta",
     "importsuccess": "Uvoženje je završeno!",
-    "importhistoryconflict": "Postoji sukobljena izmena u istoriji (možda je ova stranica već uvezena ranije)",
     "importnosources": "Nije određen nijedan međuviki izvor za uvoz, tako da je otpremanje istorije onemogućeno.",
     "importnofile": "Uvozna datoteka nije poslata.",
     "importuploaderrorsize": "Ne mogu da otpremim datoteku za uvoz.\nDatoteka je veća od dozvoljene veličine.",
     "import-error-interwiki": "Ne mogu da uvezem stranicu „$1“ jer je njen naziv rezervisan za spoljno povezivanje (međuviki).",
     "import-error-special": "Ne mogu da uvezem stranicu „$1“ jer ona pripada posebnom imenskom prostoru koje ne prihvata stranice.",
     "import-error-invalid": "Ne mogu da uvezem stranicu „$1“ jer je njen naziv neispravan.",
+    "import-error-unserialize": "Verzija $2 stranice $1 ne može biti pročitana/uvezena. Zapisano je da verzija koristi $3 tip sadržaja u $4 formatu.",
     "import-options-wrong": "{{PLURAL:$2|Pogrešna opcija|Pogrešne opcije}}: <nowiki>$1</nowiki>",
     "import-rootpage-invalid": "Navedena osnovna stranica ima neispravan naslov.",
     "import-rootpage-nosubpage": "Imenski prostor „$1“ osnovne stranice ne dozvoljava podstranice.",
     "tooltip-recreate": "Ponovo napravite stranicu iako je obrisana",
     "tooltip-upload": "Započnite otpremanje",
     "tooltip-rollback": "Opcija „Vrati“ vraća izmene poslednjeg korisnika",
-    "tooltip-undo": "Vraća ovu izmenu i otvara obrazac za uređivanje.",
+    "tooltip-undo": "Poništava ovu izmenu i otvara obrazac za uređivanje.",
     "tooltip-preferences-save": "Sačuvaj postavke",
     "tooltip-summary": "Unesite kratak opis",
     "common.css": "/** CSS postavljen ovde će se odraziti na sve teme */",
     "spam_reverting": "Vraćam na poslednju izmenu koja ne sadrži veze do $1",
     "spam_blanking": "Sve izmene sadrže veze do $1. Čistim",
     "spam_deleting": "Sve izmene sadrže veze do $1. Brišem",
-    "simpleantispam-label": "Provera spama. '''NE''' popunjavaj ovo unutra!",
+    "simpleantispam-label": "Anti-spama provera. \n<strong>NE</strong> popunjavaj ovo unutra!",
     "pageinfo-title": "Podaci o „$1“",
     "pageinfo-not-current": "Nažalost, nemoguće je pribaviti ove podatke za starije izmene.",
     "pageinfo-header-basic": "Osnovni podaci",
     "minutes": "{{PLURAL:$1|$1 minut|$1 minuta|$1 minuta}}",
     "hours": "{{PLURAL:$1|$1 sat|$1 sata|$1 sati}}",
     "days": "{{PLURAL:$1|$1 dan|$1 dana|$1 dana}}",
+    "weeks": "{{PLURAL:$1|$1 sedmica}}",
+    "months": "{{PLURAL:$1|$1 mesec|$1 meseci}}",
     "years": "{{PLURAL:$1|$1 godina|$1 godine}}",
     "ago": "pre $1",
     "just-now": "upravo sad",
+    "hours-ago": "Pre $1 {{PLURAL:$1|sat|sata|sati}}",
     "minutes-ago": "Pre $1 {{PLURAL:$1|minut|minuta}}",
     "bad_image_list": "Format je sledeći:\n\nRazmatraju se samo nabrajanja (redovi koji počinju sa zvezdicom).\nPrva veza u redu mora da bude veza do neispravne datoteke.\nSve daljnje veze u istom redu smatraju se izuzecima.",
     "variantname-zh-hans": "hans",
index e62ff64..af91034 100644 (file)
     "currentevents": "Tentakalo tanyalo",
     "currentevents-url": "Project:Tentakalo tanyalo",
     "edithelp": "Lusito ngekuhlela",
-    "helppage": "Help:Lokucuketfwe",
     "mainpage": "Likhasi Lelikhulu",
     "mainpage-description": "Likhasi lelikhulu",
     "policy-url": "Project:Umtsetfo",
index cf6626f..b935107 100644 (file)
     "accountcreatedtext": "Användarkontot [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskussion]]) har skapats.",
     "createaccount-title": "Konto skapat på {{SITENAME}}",
     "createaccount-text": "Någon har skapat ett konto åt din e-postadress på {{SITENAME}} ($4) med namnet \"$2\" och lösenordet \"$3\". Du bör nu logga in och ändra ditt lösenord.\n\nDu kan ignorera detta meddelande om kontot skapats av misstag.",
-    "usernamehasherror": "Användarnamnet får inte innehålla #.",
     "login-throttled": "Du har gjort för många misslyckade inloggningsförsök till det här kontot.\nVänta $1 innan du försöker igen.",
     "login-abort-generic": "Din inloggning misslyckades - Avbröts",
     "loginlanguagelabel": "Språk: $1",
     "prefs-skin": "Utseende",
     "skin-preview": "Förhandsvisning",
     "datedefault": "Ovidkommande",
-    "prefs-datetime": "Datum och tid",
     "prefs-labs": "Testfunktioner",
     "prefs-user-pages": "Användarsidor",
     "prefs-personal": "Mitt konto",
     "upload-permitted": "Tillåtna filtyper: $1.",
     "upload-preferred": "Föredragna filtyper: $1.",
     "upload-prohibited": "Förbjudna filtyper: $1.",
-    "uploadlog": "uppladdningslogg",
     "uploadlogpage": "Uppladdningslogg",
     "uploadlogpagetext": "Det här är en logg över de senast uppladdade filerna.\nSe [[Special:NewFiles|galleriet över nya filer]] för en mer visuell översikt.",
     "filename": "Filnamn",
     "filereuploadsummary": "Filändringar:",
     "filestatus": "Upphovsrättslig status:",
     "filesource": "Källa:",
-    "uploadedfiles": "Uppladdade filer",
     "ignorewarning": "Ignorera varningen och spara filen ändå.",
     "ignorewarnings": "Ignorera eventuella varningar",
     "minlength1": "Filens namn måste innehålla minst ett tecken.",
     "overwroteimage": "laddade upp ny version av \"[[$1]]\"",
     "uploaddisabled": "Uppladdningsfunktionen är avstängd",
     "copyuploaddisabled": "Uppladdning med URL avstängt.",
-    "uploadfromurl-queued": "Din uppladdning har lagts i kö.",
     "uploaddisabledtext": "Uppladdning av filer är avstängd.",
     "php-uploaddisabledtext": "PHP filuppladdningar är avaktiverade. Kolla inställningarna för file_uploads.",
     "uploadscripted": "Denna fil innehåller HTML eller script som felaktigt kan komma att tolkas av webbläsare.",
     "upload-misc-error": "Okänt uppladdningsfel",
     "upload-misc-error-text": "Ett okänt fel inträffade under uppladdningen.\nKontrollera att URL:en giltig och tillgänglig och försök igen.\nOm problemet kvarstår, kontakta en [[Special:ListUsers/sysop|administratör]].",
     "upload-too-many-redirects": "URL-en innehöll för många omdirigeringar",
-    "upload-unknown-size": "Okänd storlek",
     "upload-http-error": "Ett HTTP-fel uppstod: $1",
     "upload-copy-upload-invalid-domain": "Uppladdning av kopior är inte tillgängligt från denna domän.",
     "backend-fail-stream": "Kunde inte strömma filen $1.",
     "img-auth-streaming": "Strömmar \"$1\".",
     "img-auth-public": "Funktionaliteten i img_auth.php är att skicka filer från en privat wiki.\nDenna wiki är konfigurerad som en publik wiki.\nFör optimal säkerhet, har img_auth.php blivit avaktiverad.",
     "img-auth-noread": "Användaren har inte tillåtelse att läsa \"$1\"",
-    "img-auth-bad-query-string": "URL-adressen har en ogiltig frågesträng.",
     "http-invalid-url": "Ogiltig URL: $1",
     "http-invalid-scheme": "URLer med \"$1\"-formen stöds inte",
     "http-request-error": "HTTP-begäran misslyckades på grund av okänt fel.",
     "filehist-dimensions": "Dimensioner",
     "filehist-filesize": "Filstorlek",
     "filehist-comment": "Kommentar",
-    "filehist-missing": "Fil saknas",
     "imagelinks": "Filanvändning",
     "linkstoimage": "Följande {{PLURAL:$1|sida|$1 sidor}} länkar till den här filen:",
     "linkstoimage-more": "Mer änr {{PLURAL:$1|en sida|$1 sidor}} länkar till den här filen.\nFöljande lista visar bara {{PLURAL:$1|den första sidan|de $1 första sidorna}} som länkar till filen.\nDet finns en [[Special:WhatLinksHere/$2|fullständig lista]].",
     "listgrouprights-removegroup-self": "Ta bort {{PLURAL:$2|gruppen|grupperna}} från eget konto: $1",
     "listgrouprights-addgroup-self-all": "Lägg till alla grupperna till eget konto",
     "listgrouprights-removegroup-self-all": "Ta bort alla grupperna från eget konto",
+    "listgrouprights-namespaceprotection-header": "Namnrymdsbegränsningar",
+    "listgrouprights-namespaceprotection-namespace": "Namnrymd",
+    "listgrouprights-namespaceprotection-restrictedto": "Rättighet(er) som låter användare redigera",
     "trackingcategories": "Spårningskategorier",
     "trackingcategories-summary": "Denna sida listar spårningskategorier som automatiskt befolkas av MediaWiki-mjukvaran. Deras namn kan ändras genom att ändra det relevanta systemmeddelandena i {{ns:8}}-namnrymden.",
     "trackingcategories-msg": "Spårningskategori",
     "trackingcategories-name": "Meddelandenamn",
     "trackingcategories-desc": "Inklusionskriterier för kategori",
-    "noindex-category-desc": "Sidan innehåller det magiska ordet <nowiki>__NOINDEX__</nowiki> (och är i en namnrymd där denna flagga tillåts), och indexeras därför inte av robotar.",
-    "index-category-desc": "Denna sidan innehåller ett <nowiki>__INDEX__</nowiki> (och är i en namnrymd där denna flagga tillåts), och indexeras därför av robotar även där detta normalt inte skulle ske.",
+    "noindex-category-desc": "Sidan innehåller det magiska ordet <code><nowiki>__NOINDEX__</nowiki></code> (och är i en namnrymd där denna flagga tillåts), och indexeras därför inte av robotar.",
+    "index-category-desc": "Denna sidan innehåller ett <code><nowiki>__INDEX__</nowiki></code> (och är i en namnrymd där denna flagga tillåts), och indexeras därför av robotar även där detta normalt inte skulle ske.",
     "post-expand-template-inclusion-category-desc": "Efter att alla mallar har expanderats är denna sidan större än <code>$wgMaxArticleSize</code>, därför har vissa mallar inte expanderats.",
     "post-expand-template-argument-category-desc": "Efter att ett mallargument (något inom trippla parenteser, som <code>{{{Foo}}})</code> expanderats är denna sidan större än <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "För många kostsamma parser-funktioner (som <code>#ifexist</code>) har inkluderats på en sida. Se [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit användarhandboken].",
     "broken-file-category-desc": "Kategori som läggs till om sidan innehåller en bruten fillänk (en länk som bäddar in en fil som inte finns).",
-    "hidden-category-category-desc": "Detta är en kategori som innehåller <nowiki>__HIDDENCAT__</nowiki> vilket, som standard, förhindrar den från att visas i kategorirutan.",
+    "hidden-category-category-desc": "Detta är en kategori som innehåller <code><nowiki>__HIDDENCAT__</nowiki></code> vilket, som standard, förhindrar den från att visas i kategorirutan.",
     "trackingcategories-nodesc": "Ingen beskrivning tillgänglig.",
     "trackingcategories-disabled": "Kategorin är inaktiverad",
     "mailnologin": "Ingen adress att skicka till",
     "emailuser-title-notarget": "E-postanvändare",
     "emailpage": "Skicka e-post till användare",
     "emailpagetext": "Du kan använda formuläret nedan för att skicka e-post till den här {{GENDER:$1|användaren}}.\nDen e-postadress du har angivit i [[Special:Preferences|dina användarinställningar]] kommer att visas som \"Från\"-adress i meddelandet, så att mottagaren har möjlighet att svara direkt till dig.",
-    "usermailererror": "Fel i hanteringen av mail:",
     "defemailsubject": "{{SITENAME}} e-post från användare \"$1\"",
     "usermaildisabled": "Användar-e-post avaktiverat",
     "usermaildisabledtext": "Du kan inte skicka e-post till andra användare på den här wikin",
     "noemailtitle": "Ingen e-postadress",
     "noemailtext": "Den här användaren har inte angivit en giltig e-postadress.",
-    "nowikiemailtitle": "Ingen e-post tillåten",
     "nowikiemailtext": "Den här användaren har valt att inte motta e-post från andra användare.",
     "emailnotarget": "Icke-existerande eller ogiltigt användarnamn för mottagaren.",
     "emailtarget": "Ange mottagarens användarnamn",
     "watching": "Bevakar...",
     "unwatching": "Avbevakar...",
     "watcherrortext": "Ett fel inträffade när du ändrade dina bevakningsinställningarna för \"$1\".",
-    "enotif_mailer": "{{SITENAME}}s system för att få meddelanden om förändringar per e-post",
     "enotif_reset": "Markera alla sidor som besökta",
     "enotif_impersonal_salutation": "{{SITENAME}}användare",
     "enotif_subject_deleted": "{{SITENAME}}sidan $1 har raderats av {{gender:$2|$2}}",
     "excontent": "Före radering: \"$1\"",
     "excontentauthor": "innehållet var: \"$1\" (den enda som skrivit var \"[[Special:Contributions/$2|$2]]\")",
     "exbeforeblank": "innehåll före tömning var: \"$1\"",
-    "exblank": "sidan var tom",
     "delete-confirm": "Radera \"$1\"",
     "delete-legend": "Radera",
     "historywarning": "'''Varning:''' Sidan du håller på att radera har en historik med ungefär $1 {{PLURAL:$1|version|versioner}}:",
     "importunknownsource": "Okänd typ av importkälla",
     "importcantopen": "Misslyckades med att öppna importfilen.",
     "importbadinterwiki": "Felaktig interwiki-länk",
-    "importnotext": "Tom eller ingen text",
     "importsuccess": "Importen är genomförd!",
-    "importhistoryconflict": "Det föreligger en konflikt i versionshistoriken (kanske har denna sida importerats tidigare)",
     "importnosources": "Inga källor för transwiki-import har angivits, och direkt uppladdning av historik har stängts av.",
     "importnofile": "Ingen fil att importera har laddats upp.",
     "importuploaderrorsize": "Uppladdningen av importfilen misslyckades. Filen är större än vad som är tillåtet att ladda upp.",
     "print.css": "/* CSS som skrivs här kommer att påverka utskriftsversionen */",
     "noscript.css": "/* CSS som placeras här kommer att påverka användare med JavaScript inaktiverat */",
     "group-autoconfirmed.css": "/* CSS som placeras här kommer bara att påverka bekräftade användare */",
+    "group-user.css": "/* CSS som placeras här kommer bara att påverka registrerade användare */",
     "group-bot.css": "/* CSS som placeras här kommer bara att påverka robotar */",
     "group-sysop.css": "/* CSS som placeras här kommer bara att påverka administratörer */",
     "group-bureaucrat.css": "/* CSS som placeras här kommer bara att påverka byråkrater */",
     "modern.js": "/* JavaScript här kommer att laddas för dem som använder skalet Modern */",
     "vector.js": "/* JavaScript här kommer att laddas för dem som använder skalet Vector */",
     "group-autoconfirmed.js": "/* JavaScript här kommer att laddas för bekräftade användare */",
+    "group-user.js": "/* JavaScript här kommer att laddas för registrerade användare */",
     "group-bot.js": "/* JavaScript här kommer att laddas för robotar */",
     "group-sysop.js": "/* JavaScript här kommer att laddas för administratörer */",
     "group-bureaucrat.js": "/* JavaScript här kommer att laddas för byråkrater */",
index 0b5e91b..11a3160 100644 (file)
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|చర్చ]])కి వాడుకరి ఖాతాను సృష్టించాం.",
     "createaccount-title": "{{SITENAME}} కోసం ఖాతా సృష్టి",
     "createaccount-text": "{{SITENAME}} ($4) లో ఎవరో మీ ఈమెయిలు చిరునామాకి \"$2\" అనే పేరుగల ఖాతాని \"$3\" అనే సంకేతపదంతో సృష్టించారు.\nమీరు లోనికి ప్రవేశించి మీ సంకేతపదాన్ని ఇప్పుడే మార్చుకోవాలి.\n\nఈ ఖాతాని పొరపాటున సృష్టిస్తే గనక, ఈ సందేశాన్ని పట్టించుకోకండి.",
-    "usernamehasherror": "వాడుకరిపేరులో హాష్ అక్షరాలు ఉండకూడదు",
     "login-throttled": "కొద్దిసేపటిగా మీరు చాలా లాగిన్ ప్రయత్నాలు చేసారు.\nమళ్ళీ ప్రయత్నించే ముందు $1 ఆగండి.",
     "login-abort-generic": "మీ లాగిన్ ప్రయత్నం విఫలమైంది - ఆగిపోయింది",
     "loginlanguagelabel": "భాష: $1",
     "prefs-skin": "రూపు",
     "skin-preview": "మునుజూడు",
     "datedefault": "ఏదైనా పరవాలేదు",
-    "prefs-datetime": "తేదీ, సమయం",
     "prefs-labs": "ప్రయోగాత్మక సౌలభ్యాలు",
     "prefs-user-pages": "వాడుకరి పేజీలు",
     "prefs-personal": "వాడుకరి ప్రవర",
     "upload-permitted": "అనుమతించే ఫైలు రకాలు: $1.",
     "upload-preferred": "అనుమతించే ఫైలు రకాలు: $1.",
     "upload-prohibited": "నిషేధించిన ఫైలు రకాలు: $1.",
-    "uploadlog": "ఎక్కింపుల చిట్టా",
     "uploadlogpage": "ఎక్కింపుల చిట్టా",
     "uploadlogpagetext": "ఇటీవల జరిగిన ఫైలు అప్‌లోడుల జాబితా ఇది.\nమరింత దృశ్యాత్మకంగా చూడటం కోసం [[Special:NewFiles|కొత్త ఫైళ్ళ కొలువు]]కు వెళ్ళండి.",
     "filename": "ఫైలు పేరు",
     "filereuploadsummary": "ఫైలు మార్పులు:",
     "filestatus": "కాపీహక్కు స్థితి:",
     "filesource": "మూలం:",
-    "uploadedfiles": "ఎక్కించిన ఫైళ్ళు",
     "ignorewarning": "హెచ్చరికను పట్టించుకోకుండా ఫైలును భద్రపరచు",
     "ignorewarnings": "హెచ్చరికలను పట్టించుకోవద్దు",
     "minlength1": "పైలు పేర్ల నిడివి కనీసం ఒక్క అక్షరమైనా ఉండాలి.",
     "overwroteimage": "\"[[$1]]\" యొక్క కొత్త కూర్పును ఎక్కించారు",
     "uploaddisabled": "ఎక్కింపులు అచేతనం చెయ్యబడ్డాయి.",
     "copyuploaddisabled": "URL ద్వారా ఎక్కింపుని అశక్తం చేసారు.",
-    "uploadfromurl-queued": "మీ ఎక్కింపు వరుసలో ఉంది.",
     "uploaddisabledtext": "ఫైళ్ళ ఎక్కింపులను అచేతనం చేసారు.",
     "php-uploaddisabledtext": "PHPలో ఫైలు ఎక్కింపులు అచేతనమై ఉన్నాయి.\nదయచేసి file_uploads అమరికని చూడండి.",
     "uploadscripted": "ఈ ఫైల్లో HTML కోడు గానీ స్క్రిప్టు కోడు గానీ ఉంది. వెబ్ బ్రౌజరు దాన్ని పొరపాటుగా అనువదించే అవకాశం ఉంది.",
     "upload-misc-error": "తెలియని ఎక్కింపు లోపం",
     "upload-misc-error-text": "ఎక్కిస్తూండగా ఏదో తెలియని లోపం తలెత్తింది. \nURL సరైనదేనని, అది అందుబాటులోనే ఉందని నిర్ధారించుకుని మళ్ళీ ప్రయత్నించండి. సమస్య అలాగే ఉంటే, [[Special:ListUsers/sysop|నిర్వాహకులు]] ఎవరినైనా సంప్రదించండి.",
     "upload-too-many-redirects": "ఆ URLలో చాలా దారిమార్పులు ఉన్నాయి",
-    "upload-unknown-size": "సైజు తెలియదు",
     "upload-http-error": "ఒక HTTP పొరపాటు జరిగింది: $1",
     "upload-copy-upload-invalid-domain": "ఈ డొమెయిన్ నుంచి కాపీ ఎక్కింపులు కుదరదు.",
     "backend-fail-stream": "\"$1\" ఫైలును స్ట్రీమింగు చెయ్యలేకపోయాం.",
     "img-auth-streaming": "\"$1\" ను ప్రసారిస్తున్నాం.",
     "img-auth-public": "img_auth.php యొక్క పని, గోప్యవికీలనుండి ఫైళ్ళ వివరాలను బయట పెట్టడం.\nఇది బహిరంగ వికీగా తయారుచేయబడింది.\nసరైన భద్రత కోసం, img_auth.php ను అచేతనం చేసాం.",
     "img-auth-noread": "\"$1\"ని చూడడానికి వాడుకరికి అనుమతి లేదు.",
-    "img-auth-bad-query-string": "ఈ URL లో తప్పుడు క్వెరీ స్ట్రింగు ఉంది.",
     "http-invalid-url": "చెల్లని URL: $1",
     "http-invalid-scheme": "\"$1\" ప్రణాళికలో ఉన్న URLలకు తోడ్పాటులేదు",
     "http-request-error": "తెలియని లోపం వల్ల HTTP అభ్యర్థన విఫలమైంది.",
     "filehist-dimensions": "కొలతలు",
     "filehist-filesize": "దస్త్రపు పరిమాణం",
     "filehist-comment": "వ్యాఖ్య",
-    "filehist-missing": "ఫైలు కనిపించుటలేదు",
     "imagelinks": "దస్త్రపు వాడుక",
     "linkstoimage": "కింది {{PLURAL:$1|పేజీ|$1 పేజీల}} నుండి ఈ ఫైలుకి లింకులు ఉన్నాయి:",
     "linkstoimage-more": "ఈ ఫైలుకు $1 కంటే ఎక్కువ {{PLURAL:$1|పేజీ లింకై ఉంది|పేజీలు లింకై ఉన్నాయి}}.\nఈ ఫైలుకి మాత్రమే లింకై ఉన్న {{PLURAL:$1|మొదటి పేజీని|మొదటి $1 పేజీలను}} ఈ క్రింది జాబితా చూపిస్తుంది.\n[[Special:WhatLinksHere/$2|పూర్తి జాబితా]] కూడా ఉంది.",
     "emailuser-title-notarget": "వాడుకరికి ఈమెయిలు పంపించండి",
     "emailpage": "వాడుకరికి ఈ-మెయిలుని పంపించు",
     "emailpagetext": "ఈ {{GENDER:$1|వాడుకరికి}} ఈమెయిలు సందేశము పంపించుటకు క్రింది ఫారంను ఉపయోగించవచ్చు. [[Special:Preferences|మీ వాడుకరి అభిరుచుల]]లో మీరిచ్చిన ఈ-మెయిలు చిరునామా \"నుండి\" ఆ సందేశం వచ్చినట్లుగా ఉంటుంది, కనుక వేగుని అందుకునేవారు నేరుగా మీకు జవాబివ్వగలుగుతారు.",
-    "usermailererror": "మెయిలు ఆబ్జెక్టు ఈ లోపాన్ని చూపింది:",
     "defemailsubject": "వాడుకరి \"$1\" నుండి {{SITENAME}} ఈ-మెయిలు",
     "usermaildisabled": "వాడుకరి ఈమెయిలు అచేతనం చెయ్యబడింది",
     "usermaildisabledtext": "ఈ వికీలో మీరు ఇతర వాడుకరులకి ఈ-మెయిళ్ళని పంపించలేరు",
     "noemailtitle": "ఈ-మెయిలు చిరునామా లేదు",
     "noemailtext": "ఈ వాడుకరి సరైన ఈ-మెయిలు చిరునామాని ఇవ్వలేదు.",
-    "nowikiemailtitle": "ఈమెయిలుకు అనుమతి లేదు",
     "nowikiemailtext": "ఇతర వాడుకరుల నుండి ఈ-మెయిళ్ళను అందుకోడానికి ఈ వాడుకరి సుముఖంగా లేరు.",
     "emailnotarget": "గ్రహీతగా ఇచ్చిన వాడుకరిపేరు తప్పైనా కావచ్చు, లేదా అసలే ఉండి ఉండకపోవచ్చు",
     "emailtarget": "అందుకొనేవారి వాడుకరిపేరు ఇవ్వండి",
     "watching": "గమనిస్తున్నారు...",
     "unwatching": "గమనించడం లేదు...",
     "watcherrortext": "\"$1\" కు మీ సెట్టింగులను మార్చేటపుడు ఏదో లోపం దొర్లింది.",
-    "enotif_mailer": "{{SITENAME}} ప్రకటన మెయిలు పంపునది",
     "enotif_reset": "అన్ని పేజీలను చూసినట్లుగా గుర్తించు",
     "enotif_impersonal_salutation": "{{SITENAME}} వాడుకరి",
     "enotif_subject_deleted": "{{SITENAME}} $1 పేజీని $2 {{GENDER:$2|తొలగించారు}}",
     "excontent": "ఉన్న విషయ సంగ్రహం: '$1'",
     "excontentauthor": "ఉన్న విషయ సంగ్రహం: \"$1\" (మరియు దీని ఒకే ఒక్క రచయిత \"[[Special:Contributions/$2|$2]]\")",
     "exbeforeblank": "ఖాళీ చెయ్యకముందు పేజీలో ఉన్న విషయ సంగ్రహం: '$1'",
-    "exblank": "పేజీ ఖాళీగా ఉంది",
     "delete-confirm": "\"$1\"ని తొలగించు",
     "delete-legend": "తొలగించు",
     "historywarning": "'''హెచ్చరిక''': మీరు తొలగించబోయే పేజీకి సుమారు $1 {{PLURAL:$1|కూర్పుతో|కూర్పులతో}} చరిత్ర ఉంది:",
     "importunknownsource": "దిగుమతి చేసుకుంటున్న దాని మాతృక రకం తెలియదు",
     "importcantopen": "దిగుమతి చేయబోతున్న ఫైలును తెరవలేకపోతున్నాను",
     "importbadinterwiki": "చెడు అంతర్వికీ లింకు",
-    "importnotext": "ఖాళీ లేదా పాఠ్యం లేదు",
     "importsuccess": "దిగుమతి పూర్తయ్యింది!",
-    "importhistoryconflict": "కూర్పుల చరిత్రలో ఘర్షణ తలెత్తింది (ఈ పేజీని ఇంతకు ముందే దిగుమతి చేసుంటారు)",
     "importnosources": "No transwiki import sources have been defined and direct history uploads are disabled.\nఎటువంటి అంతర్వికీ దిగుమతి మూలాలను పేర్కొనకపోవటం వలన, ప్రత్యక్ష చరిత్ర అప్లోడులను నిలిపివేశాం.",
     "importnofile": "ఎటువంటి దిగుమతి ఫైలునూ అప్లోడుచేయలేదు.",
     "importuploaderrorsize": "దిగుమతి ఫైలు అప్లోడు ఫలించలేదు. ఈ ఫైలు అప్లోడు ఫైలుకు నిర్దేశించిన పరిమాణం కంటే పెద్దా ఉంది.",
index 74b6d8b..2c98775 100644 (file)
     "tog-hidepatrolled": "ซ่อนการแก้ไขที่ตรวจแล้วในหน้าปรับปรุงล่าสุด",
     "tog-newpageshidepatrolled": "ซ่อนหน้าที่ตรวจแล้วจากรายการหน้าใหม่",
     "tog-extendwatchlist": "ขยายรายการเฝ้าดูให้แสดงการเปลี่ยนแปลงทั้งหมด ไม่เพียงการเปลี่ยนแปลงล่าสุด",
-    "tog-usenewrc": "à¸\88ัà¸\94à¸\81ลุà¹\88มà¸\84วามเปลี่ยนแปลงแบ่งตามหน้าในรายการปรับปรุงล่าสุดและรายการเฝ้าดู",
+    "tog-usenewrc": "à¸\88ัà¸\94à¸\81ลุà¹\88มà¸\81ารเปลี่ยนแปลงแบ่งตามหน้าในรายการปรับปรุงล่าสุดและรายการเฝ้าดู",
     "tog-numberheadings": "ใส่เลขหัวข้อในสารบัญอัตโนมัติ",
     "tog-showtoolbar": "แสดงแถบเครื่องมือแก้ไข",
     "tog-editondblclick": "แก้ไขหน้าเมื่อดับเบิลคลิก",
-    "tog-editsectiononrightclick": "à¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¹\80à¸\89à¸\9eาะสà¹\88วà¸\99à¹\82à¸\94ยà¸\84ลิà¸\81à¸\82วาà¸\97ีà¹\88หัวà¸\82à¹\89อ",
+    "tog-editsectiononrightclick": "à¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¹\80à¸\89à¸\9eาะสà¹\88วà¸\99à¹\82à¸\94ยà¸\84ลิà¸\81à¸\82วาà¸\97ีà¹\88à¸\8aืà¹\88อà¹\80รืà¹\88อà¸\87à¸\82อà¸\87สà¹\88วà¸\99à¸\99ัà¹\89à¸\99",
     "tog-rememberpassword": "จำการล็อกอินของฉันในเบราว์เซอร์นี้ (สูงสุด $1 วัน)",
     "tog-watchcreations": "เพิ่มหน้าที่ฉันสร้างและไฟล์ที่ฉันอัปโหลดเข้ารายการเฝ้าดู",
     "tog-watchdefault": "เพิ่มหน้าและไฟล์ที่ฉันแก้ไขเข้ารายการเฝ้าดู",
     "tog-watchmoves": "เพิ่มและไฟล์ที่ฉันเปลี่ยนชื่อเข้ารายการเฝ้าดู",
     "tog-watchdeletion": "เพิ่มหน้าและไฟล์ที่ฉันลบเข้ารายการเฝ้าดู",
     "tog-minordefault": "กำหนดให้การแก้ไขทุกครั้งเป็นการแก้ไขเล็กน้อยโดยปริยาย",
-    "tog-previewontop": "à¹\81สà¸\94à¸\87à¸\95ัวอยà¹\88าà¸\87à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\81à¹\88อนกล่องแก้ไข",
+    "tog-previewontop": "à¹\81สà¸\94à¸\87à¸\95ัวอยà¹\88าà¸\87à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\9aนกล่องแก้ไข",
     "tog-previewonfirst": "แสดงตัวอย่างการแก้ไขสำหรับการแก้ไขครั้งแรก",
     "tog-enotifwatchlistpages": "อีเมลหาเมื่อหน้าหรือไฟล์ในรายการเฝ้าดูมีการเปลี่ยนแปลง",
     "tog-enotifusertalkpages": "อีเมลหาเมื่อหน้าคุยกับผู้ใช้ของฉันมีการเปลี่ยนแปลง",
     "tog-diffonly": "ไม่แสดงเนื้อหาใต้ส่วนต่างการแก้ไข",
     "tog-showhiddencats": "แสดงหมวดหมู่ที่ซ่อนอยู่",
     "tog-norollbackdiff": "ไม่แสดงการเปลี่ยนแปลงหลังดำเนินการย้อนกลับฉุกเฉิน",
-    "tog-useeditwarning": "เตือนฉัน เมื่อฉันกำลังจะออกจากหน้าแก้ไขโดยมีข้อมูลที่ยังไม่ได้บันทึก",
+    "tog-useeditwarning": "เตือนฉันเมื่อออกหน้าแก้ไขโดยมีการเปลี่ยนแปลงที่ยังไม่บันทึก",
     "tog-prefershttps": "ใช้การเชื่อมต่อปลอดภัยทุกครั้งเมื่อล็อกอิน",
     "underline-always": "ทุกครั้ง",
     "underline-never": "ไม่",
-    "underline-default": "à¸\84à¹\88าà¹\82à¸\94ยà¸\9bริยายของหน้าตาหรือเบราว์เซอร์",
+    "underline-default": "à¸\84à¹\88าà¸\95ัà¹\89à¸\87à¸\95à¹\89à¸\99ของหน้าตาหรือเบราว์เซอร์",
     "editfont-style": "รูปแบบชุดแบบอักษรในพื้นที่แก้ไข:",
     "editfont-default": "ค่าตั้งต้นของเบราว์เซอร์",
     "editfont-monospace": "ชุดอักษรแบบความกว้างคงที่",
     "category_header": "หน้าในหมวดหมู่ \"$1\"",
     "subcategories": "หมวดหมู่ย่อย",
     "category-media-header": "สื่อในหมวดหมู่ \"$1\"",
-    "category-empty": "''ปัจจุบันหมวดหมู่นี้ไม่มีหน้าหรือสื่อใด''",
+    "category-empty": "<em>ปัจจุบันหมวดหมู่นี้ไม่มีหน้าหรือสื่อใด</em>",
     "hidden-categories": "{{PLURAL:$1|หมวดหมู่ที่ซ่อนอยู่|หมวดหมู่ที่ซ่อนอยู่}}",
     "hidden-category-category": "หมวดหมู่ที่ซ่อนอยู่",
     "category-subcat-count": "{{PLURAL:$2|หมวดหมู่นี้มีหมวดหมู่ย่อยเพียงหมวดหมู่เดียว|หมวดหมู่นี้มี {{PLURAL:$1|หมวดหมู่ย่อย|$1 หมวดหมู่ย่อย}} จากทั้งหมด $2 หมวดหมู่}}",
     "print": "พิมพ์",
     "view": "ดู",
     "edit": "แก้ไข",
+    "edit-local": "แก้ไขคำอธิบายท้องถิ่น",
     "create": "สร้าง",
+    "create-local": "เพิ่มคำอธิบายท้องถิ่น",
     "editthispage": "แก้ไขหน้านี้",
     "create-this-page": "สร้างหน้านี้",
     "delete": "ลบ",
     "currentevents-url": "Project:เหตุการณ์ปัจจุบัน",
     "disclaimers": "ข้อปฏิเสธความรับผิดชอบ",
     "disclaimerpage": "Project:ข้อปฏิเสธความรับผิดชอบทั่วไป",
-    "edithelp": "วิà¸\98ีà¹\81à¸\81à¹\89à¹\84à¸\82หà¸\99à¹\89า",
+    "edithelp": "à¸\84ำอà¸\98ิà¸\9aายà¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82",
     "mainpage": "หน้าหลัก",
     "mainpage-description": "หน้าหลัก",
     "policy-url": "Project:นโยบาย",
     "cannotdelete": "ไม่สามารถลบหน้าหรือไฟล์ \"$1\" \nอาจมีผู้อื่นลบไปแล้ว",
     "cannotdelete-title": "ไม่สามารถลบหน้า ''$1''",
     "delete-hook-aborted": "การลบถูกฮุกยกเลิก\nโดยไม่มีคำอธิบาย",
+    "no-null-revision": "ไม่สามารถสร้างรุ่นว่างใหม่ของหน้า \"$1\"",
     "badtitle": "ใช้ชื่อเรื่องนี้ไม่ได้",
     "badtitletext": "ชื่อหน้าที่ขอไม่ถูกต้อง เป็นชื่อว่าง หรือชื่อข้ามภาษาหรือข้ามวิกิที่เชื่อมโยงไม่ถูกต้อง\nอาจมีอักขระที่ไม่สามารถใช้ในชื่อเรื่องได้",
     "perfcached": "ข้อมูลต่อไปนี้ถูกเก็บในแคช และอาจล้าสมัย มีผลการค้นหาสูงสุด $1 รายการในแคช",
     "accountcreatedtext": "บัญชีผู้ใช้สำหรับ [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|พูดคุย]]) ได้สร้างขึ้นแล้ว",
     "createaccount-title": "สร้างบัญชีสำหรับ {{SITENAME}}",
     "createaccount-text": "มีบางคนสร้างบัญชีโดยใช้ที่อยู่อีเมลของคุณบน {{SITENAME}} ($4) โดยใช้ชื่อ \"$2\" และรหัสผ่าน \"$3\" คุณควรล็อกอินเพื่อเปลี่ยนรหัสผ่านทันที\n\nคุณอาจเพิกเฉยข้อความนี้ หากการสร้างบัญชีนี้เกิดจากความผิดพลาด",
-    "usernamehasherror": "ชื่อผู้ใช้ต้องไม่มีอักขระแฮช",
     "login-throttled": "ที่ผ่านมาคุณพยายามล็อกอินมากครั้งเกินไป\nกรุณารอ $1 ก่อนลองอีกครั้ง",
     "login-abort-generic": "การเข้าสู่ระบบของคุณไม่ประสบความสำเร็จ - ล้มเลิกแล้ว",
     "loginlanguagelabel": "ภาษา: $1",
     "postedit-confirmation": "บันทึกการแก้ไขของคุณแล้ว",
     "edit-already-exists": "ไม่สามารถสร้างหน้าใหม่ได้\nเพราะมีหน้านี้แล้ว",
     "defaultmessagetext": "ข้อความสารโดยปริยาย",
+    "content-failed-to-parse": "แจงส่วนเนื้อหา $2 ของตัวแบบ $1 ล้มเหลว: $3",
     "invalid-content-data": "ข้อมูลเนื้อหาไม่ถูกต้อง",
     "content-not-allowed-here": "เนื้อหา \"$1\" ไม่อนุญาตในหน้า [[$2]]",
     "editwarning-warning": "การออกจากหน้านี้อาจทำให้ความเปลี่ยนแปลงที่คุณดำเนินการสูญหาย\nถ้าคุณล็อกอินแล้ว คุณสามารถปิดคำเตือนนี้ได้ที่ส่วน \"{{int:prefs-editing}}\" ในการตั้งค่าของคุณ",
     "editpage-notsupportedcontentformat-title": "รูปแบบเนื้อหาไม่ได้รับการรองรับ",
+    "editpage-notsupportedcontentformat-text": "ตัวแบบเนื้อหา $2 ไม่รองรับตัวแบบเนื้อหา $1",
     "content-model-wikitext": "ข้อความวิกิ",
     "content-model-text": "ข้อความธรรมดา",
     "content-model-javascript": "จาวาสคริปต์",
     "parser-template-loop-warning": "ตรวจพบแม่แบบกลับมาเรียกตัวเอง: [[$1]]",
     "parser-template-recursion-depth-warning": "เรียกแม่แบบซ้อนหลายชั้นเกินขีดจำกัด ($1)",
     "language-converter-depth-warning": "คำสั่งในการแปลงภาษาลึกเกิน $1 ลำดับ",
+    "expansion-depth-exceeded-category": "หน้าที่ความลึกการขยายเกิน",
+    "expansion-depth-exceeded-warning": "หน้าเกินความลึกการขยาย",
+    "parser-unstrip-loop-warning": "พบวงวน unstrip",
+    "parser-unstrip-recursion-limit": "ขีดจำกัดการเรียกซ้ำ unstrip เกิน ($1)",
     "undo-success": "การแก้ไขนี้สามารถย้อนกลับได้ กรุณาตรวจสอบข้อแตกต่างด้านล่างให้แน่ใจว่านี่คือสิ่งที่คุณต้องการทำ จากนั้นให้บันทึกการเปลี่ยนแปลงด้านล่างเพื่อเสร็จสิ้นขั้นตอน",
     "undo-failure": "การแก้ไขนี้ไม่สามารถย้อนกลับได้ เนื่องจากขัดแย้งกับการแก้ไขปัจจุบัน",
     "undo-norev": "ไม่สามารถย้อนการแก้ไขนี้ เพราะไม่มีหรือถูกลบไปแล้ว",
     "prefs-skin": "หน้าตา",
     "skin-preview": "แสดงตัวอย่าง",
     "datedefault": "ค่าตั้งต้น",
-    "prefs-datetime": "วันที่และเวลา",
     "prefs-labs": "คุณสมบัติทดลอง",
     "prefs-user-pages": "หน้าผู้ใช้",
     "prefs-personal": "โพรไฟล์ผู้ใช้",
     "yourrealname": "ชื่อจริง:",
     "yourlanguage": "ภาษา:",
     "yourvariant": "อักษรต่างรูปของเนื้อหา:",
+    "prefs-help-variant": "รูปแปรหรืออักขรวิธีที่คุณเลือกให้แสดงหน้าเนื้อหาของวิกินี้",
     "yournick": "ลายเซ็น:",
     "prefs-help-signature": "ความเห็นในหน้าพูดคุยควรลงลายเซ็นด้วย \"<nowiki>~~~~</nowiki>\" ซึ่งจะถูกแปลงเป็นลายเซ็นของคุณและตราเวลา",
     "badsig": "ลายเซ็นดิบไม่ถูกต้อง ให้ตรวจสอบแท็กเอชทีเอ็มแอล",
     "prefs-dateformat": "รูปแบบวันที่และเวลา",
     "prefs-timeoffset": "ส่วนต่างเวลา",
     "prefs-advancedediting": "ตัวเลือกทั่วไป",
+    "prefs-editor": "ตัวแก้ไข",
     "prefs-preview": "การแสดงตัวอย่าง",
     "prefs-advancedrc": "ตัวเลือกขั้นสูง",
     "prefs-advancedrendering": "ตัวเลือกขั้นสูง",
     "prefs-tokenwatchlist": "โทเค็น",
     "prefs-diffs": "ผลต่าง",
     "prefs-help-prefershttps": "การตั้งค่านี้จะมีผลเมื่อคุณล็อกอินครั้งถัดไป",
+    "prefs-tabs-navigation-hint": "แนะนำ: คุณสามารถใช้แป้นลูกศรซ้ายและขวาเพื่อนำทางระหว่างแถบในรายการแถบได้",
     "email-address-validity-valid": "ที่อยู่อีเมลดูถูกต้อง",
     "email-address-validity-invalid": "ป้อนที่อยู่อีเมลที่ถูกต้อง",
     "userrights": "บริหารสิทธิผู้ใช้",
     "upload-permitted": "ชนิดไฟล์ที่อนุญาต: $1",
     "upload-preferred": "ชนิดไฟล์ที่ควรใช้: $1",
     "upload-prohibited": "ชนิดไฟล์ที่ไม่อนุญาต: $1",
-    "uploadlog": "ปูมการอัปโหลด",
     "uploadlogpage": "ปูมการอัปโหลด",
     "uploadlogpagetext": "ด้านล่างเป็นรายการการอัปโหลดไฟล์ล่าสุด\nดูภาพรวมที่ [[Special:NewFiles|แกลอรีไฟล์ใหม่]]",
     "filename": "ชื่อไฟล์",
     "filereuploadsummary": "เปลี่ยนแปลงไฟล์:",
     "filestatus": "สถานะลิขสิทธิ์:",
     "filesource": "แหล่งที่มา:",
-    "uploadedfiles": "ไฟล์ที่อัปโหลดแล้ว",
     "ignorewarning": "บันทึกไฟล์โดยละเลยคำเตือน",
     "ignorewarnings": "ละเลยคำเตือนทั้งหมด",
     "minlength1": "ชื่อไฟล์ต้องมีตัวอักษรอย่างน้อยหนึ่งตัว",
     "overwroteimage": "อัปโหลดรุ่นใหม่ของ \"[[$1]]\"",
     "uploaddisabled": "ปิดใช้งานการอัปโหลด",
     "copyuploaddisabled": "ปิดใช้งานการอัปโหลดโดยยูอาร์แอล",
-    "uploadfromurl-queued": "การอัปโหลดของคุณถูกจัดคิวแล้ว",
     "uploaddisabledtext": "ปิดใช้งานการอัปโหลดไฟล์",
     "php-uploaddisabledtext": "เปิดการใช้งานการอัปโหลดไฟล์ในพีเอชพี\nกรุณาตรวจสอบการตั้งค่า file_uploads",
     "uploadscripted": "ไฟล์นี้มีส่วนประกอบของโค้ดเอชทีเอ็มแอลหรือสคริปต์ ซึ่งอาจก่อให้เกิดความผิดพลาดในการแสดงผลของเว็บเบราว์เซอร์",
     "upload-misc-error": "เกิดความผิดพลาดในการอัปโหลดโดยไม่ทราบสาเหตุ",
     "upload-misc-error-text": "เกิดความผิดพลาดไม่ทราบสาเหตุระหว่างอัปโหลด กรุณาตรวจสอบว่ายูอาร์แอลนั้นถูกต้องและเข้าถึงได้ และลองอีกครั้ง ถ้ายังมีปัญหา ให้ติดต่อ[[Special:ListUsers/sysop|ผู้ดูแลระบบ]]",
     "upload-too-many-redirects": "ยูอาร์แอลที่ระบุมีการเปลี่ยนทางมากเกินไป",
-    "upload-unknown-size": "ไม่ทราบขนาด",
     "upload-http-error": "เกิดข้อผิดพลาดเอชทีทีพี: $1",
     "upload-copy-upload-invalid-domain": "การอัปโหลดสำเนาไม่สามารถทำได้จากโดเมนนี้",
     "backend-fail-backup": "ไม่สามารถสำรองข้อมูลไฟล์ $1.",
     "img-auth-streaming": "กำลังดึงข้อมูล \"$1\"",
     "img-auth-public": "ฟังก็ชันของ img_auth.php คือเพื่อส่งไฟล์ขาออกจากวิกิส่วนตัว\nวิกินี้ถูกกำหนดเป็นวิกิส่วนตัว\nเพื่อความปลอดภัยสูงสุด img_auth.php จึงถูกปิด",
     "img-auth-noread": "ผู้ใช้ไม่ได้รับสิทธิ์ในการอ่าน \"$1\"",
-    "img-auth-bad-query-string": "ที่อยู่ URL ดังกล่าวมีชุดข้อความสตริงก์ที่ร้องขอไม่ถูกต้อง",
     "http-invalid-url": "ยูอาร์แอลไม่ถูกต้อง: $1",
     "http-invalid-scheme": "ไม่สนับสนุนยูอาร์แอลที่มีรูปแบบ \"$1\"",
     "http-request-error": "คำขอข้อมูล HTTP ผิดพลาดโดยไม่ทราบสาเหตุ",
     "filehist-dimensions": "ขนาด",
     "filehist-filesize": "ขนาดไฟล์",
     "filehist-comment": "ความเห็น",
-    "filehist-missing": "ไฟล์หายไป",
     "imagelinks": "การใช้ไฟล์",
     "linkstoimage": "มี $1 หน้าเชื่อมโยงมายังไฟล์นี้:",
     "linkstoimage-more": "ไฟล์นี้มีหน้าเชื่อมโยงมากว่า $1 หน้า\nรายการต่อไปนี้แสดงการเชื่อมโยง $1 หน้าแรกที่มายังไฟล์นี้เท่านั้น\nดูเพิ่มได้ที่[[Special:WhatLinksHere/$2|รายการเต็ม]]",
     "listgrouprights-removegroup-self": "ลบ{{PLURAL:$2|กลุ่ม|กลุ่ม}}ออกจากบัญชี: $1",
     "listgrouprights-addgroup-self-all": "เพิ่มทุกกลุ่มเข้าไปในบัญชีนี้",
     "listgrouprights-removegroup-self-all": "นำทุกกลุ่มออกจากบัญชีนี้",
-    "hidden-category-category-desc": "นี่คือหมวดหมู่ที่ติด <nowiki>__HIDDENCAT__</nowiki> ซึ่งป้องกันมิให้แสดงในกล่องลิงก์หมวดหมู่ในหน้าโดยปริยาย",
+    "hidden-category-category-desc": "นี่คือหมวดหมู่ที่ติด <code><nowiki>__HIDDENCAT__</nowiki></code> ซึ่งป้องกันมิให้แสดงในกล่องลิงก์หมวดหมู่ในหน้าโดยปริยาย",
     "mailnologin": "ไม่มีที่อยู่ส่ง",
     "mailnologintext": "คุณต้อง[[Special:UserLogin|ล็อกอิน]]และมีที่อยู่อีเมลที่สมเหตุสมผลใน[[Special:Preferences|การตั้งค่า]]ของคุณ ในการส่งอีเมลหาผู้ใช้อื่น",
     "emailuser": "ส่งอีเมลหาผู้ใช้นี้",
     "emailuser-title-notarget": "อีเมลผู้ใช้",
     "emailpage": "อีเมลผู้ใช้",
     "emailpagetext": "คุณสามารถใช้แบบด้านล่างส่งอีเมลหา{{GENDER:$1|ผู้ใช้}}นี้\nที่อยู่อีเมลที่คุณกรอกใน[[Special:Preferences|การตั้งค่าส่วนตัวของคุณ]]จะปรากฏเป็นที่อยู่ \"จาก\" ของอีเมล ซึ่งผู้รับสามารถตอบกลับคุณได้โดยตรง",
-    "usermailererror": "การส่งอีเมลผิดพลาด:",
     "defemailsubject": "อีเมล{{SITENAME}}จากผู้ใช้ \"$1\"",
     "usermaildisabled": "ปิดใช้งานการส่งอีเมลหาผู้ใช้",
     "usermaildisabledtext": "คุณไม่สามารถส่งอีเมลหาผู้ใช้อื่นบนวิกินี้",
     "noemailtitle": "ไม่มีที่อยู่อีเมล",
     "noemailtext": "ผู้ใช้คนนี้ระบุที่อยู่อีเมลไม่ถูกต้อง",
-    "nowikiemailtitle": "ไม่อนุญาตให้ใช้อีเมล",
     "nowikiemailtext": "ผู้ใช้คนนี้เลือกไม่รับอีเมลจากผู้ใช้อื่น",
     "emailnotarget": "ไม่มีชื่อผู้ใช้ของผู้รับหรือชื่อผู้ใช้ไม่ถูกต้อง",
     "emailtarget": "กรอกชื่อผู้ใช้ของผู้รับ",
     "watching": "เฝ้าดู...",
     "unwatching": "เลิกเฝ้าดู...",
     "watcherrortext": "เกิดข้อผิดพลาดขณะเปลี่ยนแปลงการตั้งค่ารายการเฝ้าดูของคุณ เพราะ \"$1\"",
-    "enotif_mailer": "แจ้งการแก้ไขจาก {{SITENAME}}",
     "enotif_reset": "ทำเครื่องหมายว่าชมทุกหน้าแล้ว",
     "enotif_impersonal_salutation": "ผู้ใช้{{SITENAME}}",
     "enotif_subject_deleted": "หน้า $1 บน {{SITENAME}} ถูกลบโดย {{gender:$2|$2}}",
     "excontent": "เนื้อหาเดิม: '$1'",
     "excontentauthor": "เนื้อหาเดิม: '$1' (และมีผู้เขียนคนเดียวคือ '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "เนื้อหาก่อนถูกทำว่างคือ: '$1'",
-    "exblank": "หน้าว่าง",
     "delete-confirm": "ลบ \"$1\"",
     "delete-legend": "ลบ",
     "historywarning": "'''คำเตือน:'''' หน้าที่คุณกำลังลบมีประวัติการแก้ไขประมาณ $1 {{PLURAL:$1|รุ่น}}:",
     "importunknownsource": "ไม่ทราบชนิดของไฟล์นำเข้า",
     "importcantopen": "ไม่สามารถเปิดไฟล์นำเข้าได้",
     "importbadinterwiki": "ลิงก์ข้ามภาษาเสีย",
-    "importnotext": "ไฟล์ว่างหรือไฟล์ไม่มีข้อความ",
     "importsuccess": "นำเข้าไฟล์สำเร็จ!",
-    "importhistoryconflict": "มีประวัติรุ่นขัดแย้งกัน (อาจเคยนำเข้าหน้านี้มาก่อน)",
     "importnosources": "ไม่มีการกำหนดแหล่งนำเข้าข้ามวิกิ และการอัปโหลดประวัติหน้าโดยตรงถูกปิดการใช้งาน",
     "importnofile": "ไฟล์นำเข้าไม่ได้ถูกอัปโหลด",
     "importuploaderrorsize": "อัปโหลดไฟล์ข้อมูลนำเข้าไม่สำเร็จ\nขนาดไฟล์ใหญ่เกินกว่าที่อนุญาตไว้",
index d58831b..c2591b8 100644 (file)
     "jumptosearch": "утчан",
     "currentevents": "Выль иворъёс",
     "currentevents-url": "Project:Выль иворъёс",
-    "helppage": "Help:Валэктон",
     "mainpage": "Кутскон бам",
     "mainpage-description": "Кутскон бам",
     "portal": "Сообщество",
index 9c71cfa..987c43f 100644 (file)
@@ -1,6 +1,15 @@
 {
     "@metadata": {
-        "authors": []
+        "authors": [
+            "Abdulla",
+            "Akmalzhon",
+            "Casual",
+            "CoderSI",
+            "Lyncos",
+            "Nataev",
+            "Sociologist",
+            "Xexdof"
+        ]
     },
     "tog-underline": "Havolalarning tagiga chizish:",
     "tog-hideminor": "Yangi oʻzgarishlar roʻyxatida kichik tahrirlarni yashirish",
     "prefs-skin": "Tashqi ko‘rinishi",
     "skin-preview": "Ko‘rib chiqish",
     "datedefault": "Farqi yoʻq",
-    "prefs-beta": "Beta-imkoniyatlar",
-    "prefs-datetime": "Sana va vaqt",
     "prefs-labs": "Tajribaviy imkoniyatlar",
     "prefs-user-pages": "Foydalanuvchi sahifalari",
     "prefs-personal": "Shaxsiy ma’lumotlar",
     "recentchanges-label-plusminus": "Sahifa vazni qanchaga oʻzgargani (bayt)",
     "recentchanges-legend-heading": "'''Izoh:'''",
     "recentchanges-legend-newpage": "([[Special:NewPages|alohida roʻyxat]])",
-    "rcnotefrom": "Quyida <strong>$2</strong>dan boshlab boʻlgan oʻzgarishlar keltirilgan (<strong>$1</strong>dan koʻp boʻlmaganlari koʻrsatildi).",
-    "rclistfrom": "$1 dan boshlab yangi oʻzgarishlarni koʻrsat.",
+    "rcnotefrom": "Quyida <strong>$2</strong> dan boshlab boʻlgan oʻzgarishlar keltirilgan (<strong>$1</strong> tasi koʻrsatildi).",
+    "rclistfrom": "$3, $2 dan keyingi yangi oʻzgarishlarni koʻrsatish",
     "rcshowhideminor": "Kichik tahrirlarni $1",
+    "rcshowhideminor-show": "koʻrsat",
+    "rcshowhideminor-hide": "yashir",
     "rcshowhidebots": "Botlarni $1",
+    "rcshowhidebots-show": "koʻrsat",
+    "rcshowhidebots-hide": "yashir",
     "rcshowhideliu": "Roʻyxatdan oʻtgan foydalanuvchilarni $1",
+    "rcshowhideliu-show": "koʻrsat",
+    "rcshowhideliu-hide": "yashir",
     "rcshowhideanons": "Anonim foydalanuvchilarni $1",
+    "rcshowhideanons-show": "koʻrsat",
+    "rcshowhideanons-hide": "yashir",
     "rcshowhidepatr": "Tekshirilgan tahrirlarni $1",
+    "rcshowhidepatr-hide": "yashir",
     "rcshowhidemine": "Oʻz tahrirlarimni $1",
+    "rcshowhidemine-show": "koʻrsat",
+    "rcshowhidemine-hide": "yashir",
     "rclinks": "Oxirgi $2 kun ichida sodir boʻlgan $1 ta oʻzgarish koʻrsatildi<br />$3",
     "diff": "farq",
     "hist": "tarix",
     "filereuploadsummary": "Fayldagi oʻzgarishlar:",
     "filestatus": "Tarqatish shartlari:",
     "filesource": "Manba:",
-    "uploadedfiles": "Yuklangan fayllar",
     "ignorewarnings": "Ogohlantirishlarga eʼtibor qilma",
     "uploadedimage": "\"[[$1]]\"ni yukladi",
     "overwroteimage": "\"[[$1]]\"ning yangi versiyasini yukladi",
     "filehist-dimensions": "Oʻlchamlari",
     "filehist-filesize": "Fayl hajmi",
     "filehist-comment": "Izoh",
-    "filehist-missing": "Fayl mavjud emas",
     "imagelinks": "Fayllarga ishoratlar",
     "linkstoimage": "Bu faylga quyidagi {{PLURAL:$1|sahifa|$1 sahifalar}} bogʻlangan:",
     "nolinkstoimage": "Bu faylga bogʻlangan sahifalar yoʻq.",
     "emailuser-title-target": "Ushbu {{GENDER:$1|foydalanuvchi}}ga maktub joʻnatish",
     "emailuser-title-notarget": "Foydalanuvchiga elektron maktub yozish",
     "emailpage": "Foydalanuvchiga maktub",
-    "usermailererror": "Elektron pochta xabarini joʻnatishda xatolik yuz berdi:",
     "defemailsubject": "{{SITENAME}} — $1 tomonidan maktub",
     "usermaildisabled": "Foydalanuvchi elektron pochtasi o‘chirilgan",
     "noemailtitle": "Elektron pochta manzili mavjud emas",
     "noemailtext": "Bu foydalanuvchi e-mail manzil koʻrsatgani yoʻq.",
-    "nowikiemailtitle": "Maktub joʻnatishga ruxsat yoʻq",
     "emailtarget": "Oluvchi ishtirokchining ismini kiriting",
     "emailusername": "Foydalanuvchi nomi:",
     "emailusernamesubmit": "Jo'natish",
     "watchlist-options": "Kuzatuv roʻyxati moslamalari",
     "watching": "Kuzatish...",
     "unwatching": "Kuzatuv ro'yxatidan o'chirish...",
-    "enotif_mailer": "{{SITENAME}} Pochta orqali e'lon qilish xizmati",
     "enotif_reset": "Hammasini koʻrib chiqilgan deb belgilash",
     "enotif_impersonal_salutation": "{{SITENAME}} ishtirokchisi",
     "enotif_subject_deleted": "{{SITENAME}} loyihasining $1 nomli sahifasi foydalanuvchi {{gender:$2|$2}} tomonidan o‘chirildi",
     "deletepage": "Sahifani o'chirish",
     "confirm": "Tasdiqlash",
     "excontent": "tarkibi: \"$1\"",
-    "exblank": "sahifa boʻsh edi",
     "delete-confirm": "$1 — oʻchirish",
     "delete-legend": "O‘chirish",
     "actioncomplete": "Bajarildi",
     "whatlinkshere-prev": "{{PLURAL:$1|oldingi}} $1",
     "whatlinkshere-next": "{{PLURAL:$1|keyingi}} $1",
     "whatlinkshere-links": "← ishoratlar",
-    "whatlinkshere-hideredirs": "$1 qayta yo'naltirishlar",
+    "whatlinkshere-hideredirs": "Qayta yoʻnaltirishlarni $1",
     "whatlinkshere-hidetrans": "$1 kiritmalar",
     "whatlinkshere-hidelinks": "$1 havolalar",
     "whatlinkshere-hideimages": "$1 fayllar uchun havolalar",
     "revertmove": "qaytarish",
     "delete_and_move": "O‘chirish va qayta nomlash",
     "delete_and_move_confirm": "Ha, ushbu sahifa o‘chirilsin",
+    "move-leave-redirect": "Qayta yoʻnaltirish qoldirish",
     "move-over-sharedrepo": "== Fayl allaqachon mavjud ==\nUmumiy omborda [[:$1]] mavjud. Faylning bu nomga qayta nomlanishi faylning umumiy omborda to‘silishiga olib keladi.",
     "export": "Sahifalar eksporti",
     "export-submit": "Eksport",
index d0070af..1c7498b 100644 (file)
     "accountcreatedtext": "Tài khoản thành viên cho [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|thảo luận]]) đã được mở.",
     "createaccount-title": "Tài khoản mới tại {{SITENAME}}",
     "createaccount-text": "Ai đó đã tạo một tài khoản với tên $2 tại {{SITENAME}} ($4). Mật khẩu của \"$2\" là \"$3\". Bạn nên đăng nhập và đổi mật khẩu ngay bây giờ.\n\nXin hãy bỏ qua thông điệp này nếu tài khoản này không phải do bạn tạo ra.",
-    "usernamehasherror": "Tên người dùng không thể chứa dấu rào",
     "login-throttled": "Bạn đã hết quyền thử mật khẩu tài khoản này vì bạn đã nhập sai quá nhiều. Xin hãy đợi $1 rồi hãy thử lại.",
     "login-abort-generic": "Thất bại khi đăng nhập",
     "loginlanguagelabel": "Ngôn ngữ: $1",
     "prefs-skin": "Hình dạng",
     "skin-preview": "Xem trước",
     "datedefault": "Không quan tâm",
-    "prefs-datetime": "Ngày tháng",
     "prefs-labs": "Tính năng phòng thí nghiệm",
     "prefs-user-pages": "Trang cá nhân",
     "prefs-personal": "Thông tin cá nhân",
     "upload-permitted": "Các định dạng tập tin được phép tải lên: $1.",
     "upload-preferred": "Các định dạng tập tin nên dùng: $1.",
     "upload-prohibited": "Các định dạng tập tin bị cấm: $1.",
-    "uploadlog": "nhật trình tải lên",
     "uploadlogpage": "Nhật trình tải lên",
     "uploadlogpagetext": "Dưới đây là danh sách các tập tin đã tải lên gần nhất.\nXem [[Special:NewFiles|trang trưng bày các tập tin mới]] để xem trực quan hơn.",
     "filename": "Tên tập tin",
     "filereuploadsummary": "Các thay đổi của tập tin:",
     "filestatus": "Tình trạng bản quyền:",
     "filesource": "Nguồn:",
-    "uploadedfiles": "Tập tin đã tải",
     "ignorewarning": "Bỏ qua cảnh báo và lưu tập tin",
     "ignorewarnings": "Bỏ qua cảnh báo",
     "minlength1": "Tên tập tin phải có ít nhất một ký tự.",
     "overwroteimage": "đã tải lên một phiên bản mới của “[[$1]]”",
     "uploaddisabled": "Chức năng tải lên đã bị khóa.",
     "copyuploaddisabled": "Chức năng tải lên từ địa chỉ URL đã bị tắt.",
-    "uploadfromurl-queued": "Tập tin của bạn đã được xếp vào hàng đợi tải lên.",
     "uploaddisabledtext": "Chức năng tải tập tin đã bị tắt.",
     "php-uploaddisabledtext": "Việc tải tập tin trong PHP đã bị tắt. Xin hãy kiểm tra lại thiết lập file_uploads.",
     "uploadscripted": "Tập tin này có chứa mã HTML hoặc kịch bản có thể khiến trình duyệt web thông dịch sai.",
     "upload-misc-error": "Có lỗi lạ khi tải lên",
     "upload-misc-error-text": "Có lỗi lạ khi tải lên.\nXin hãy xác nhận lại địa chỉ URL là hợp lệ và có thể truy cập được không rồi thử lại lần nữa.\nNếu vẫn còn bị lỗi, xin hãy liên hệ với một [[Special:ListUsers/sysop|bảo quản viên]].",
     "upload-too-many-redirects": "URL có quá nhiều đổi hướng",
-    "upload-unknown-size": "Không rõ kích thước",
     "upload-http-error": "Xảy ra lỗi HTTP: $1",
     "upload-copy-upload-invalid-domain": "Không có sẵn các bản sao tải lên tại tên miền này.",
     "backend-fail-stream": "Không thể gửi luồng tập tin $1.",
     "img-auth-streaming": "Đang truyền “$1”.",
     "img-auth-public": "Chức năng của img_auth.php là xuất tập tin từ wiki cá nhân.\nWiki này được cấu hình là wiki công cộng.\nVì lý do bảo mật, img_auth.php đã bị tắt.",
     "img-auth-noread": "Người dùng không đủ quyền truy cập để đọc “$1”.",
-    "img-auth-bad-query-string": "URL có một chuỗi truy vấn không hợp lệ.",
     "http-invalid-url": "URL không hợp lệ: $1",
     "http-invalid-scheme": "Không hỗ trợ các URL có mô hình “$1”",
     "http-request-error": "Có lỗi lạ khi gửi yêu cầu HTTP.",
     "filehist-dimensions": "Kích cỡ",
     "filehist-filesize": "Kích thước tập tin",
     "filehist-comment": "Miêu tả",
-    "filehist-missing": "Không thấy tập tin",
     "imagelinks": "Các trang sử dụng tập tin",
     "linkstoimage": "{{PLURAL:$1|Trang|$1 trang}} sau có liên kết đến tập tin này:",
     "linkstoimage-more": "Có hơn $1 {{PLURAL:$1|trang|trang}} liên kết đến tập tin này.\nDanh sách dưới đây chỉ hiển thị {{PLURAL:$1|liên kết đầu tiên|$1 liên kết đầu tiên}} đến tập tin này.\nCó [[Special:WhatLinksHere/$2|danh sách đầy đủ ở đây]].",
     "listgrouprights-removegroup-self": "Có thể loại tài khoản của chính mình ra khỏi {{PLURAL:$2|nhóm|các nhóm}}: $1",
     "listgrouprights-addgroup-self-all": "Có thể đưa tài khoản của chính mình vào tất cả các nhóm",
     "listgrouprights-removegroup-self-all": "Có thể loại tài khoản của chính mình ra khỏi tất cả các nhóm",
+    "listgrouprights-namespaceprotection-header": "Hạn chế không gian tên",
+    "listgrouprights-namespaceprotection-namespace": "Không gian tên",
+    "listgrouprights-namespaceprotection-restrictedto": "Quyền cho phép người dùng chỉnh sửa",
     "trackingcategories": "Thể loại phần mềm",
     "trackingcategories-summary": "Đây là danh sách các thể loại được phần mềm MediaWiki tự động xếp trang vào. Các tên thể loại được định rõ trong các thông điệp thuộc không gian tên {{ns:8}}.",
     "trackingcategories-msg": "Thể loại phần mềm",
     "trackingcategories-name": "Tên thông điệp",
     "trackingcategories-desc": "Tiêu chuẩn xếp thể loại",
-    "noindex-category-desc": "Trang này không được các robot đánh chỉ mục vì trang có từ thần chú <nowiki>__NOINDEX__</nowiki> và nằm trong không gian tên cho phép từ thần chú này.",
-    "index-category-desc": "Trang này có từ thần chú <nowiki>__INDEX__</nowiki> và nằm trong một không gian tên cho phép từ thần chú này, nên được các robot đánh chỉ mục, trong khi bình thường nó không được đánh chỉ mục.",
+    "noindex-category-desc": "Trang này không được các robot đánh chỉ mục vì trang có từ thần chú <code><nowiki>__NOINDEX__</nowiki></code> và nằm trong không gian tên cho phép từ thần chú này.",
+    "index-category-desc": "Trang này có từ thần chú <code><nowiki>__INDEX__</nowiki></code> và nằm trong một không gian tên cho phép từ thần chú này, nên được các robot đánh chỉ mục, trong khi bình thường nó không được đánh chỉ mục.",
     "post-expand-template-inclusion-category-desc": "Nếu bung tất cả các bản mẫu, kích thước trang sẽ vượt quá <code>$wgMaxArticleSize</code>, nên một số bản mẫu không được bung.",
     "post-expand-template-argument-category-desc": "Nếu bung một tham số bản mẫu (tức định danh có mỗi bên ba dấu ngoặc móc, thí dụ <code>{{{Thí dụ}}}</code>), trang này sẽ vượt quá <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Trang có quá nhiều hàm cú pháp cần mức độ xử lý cao (chẳng hạn như <code>#ifexist</code>). Xem [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit?uselang=vi Manual:$wgExpensiveParserFunctionLimit].",
     "broken-file-category-desc": "Trang này muốn nhúng một tập tin không tồn tại.",
-    "hidden-category-category-desc": "Thể loại này có <nowiki>__HIDDENCAT__</nowiki>, nên, theo mặc định, thể loại không xuất hiện trong hộp thể loại trên các trang được xếp vào thể loại.",
+    "hidden-category-category-desc": "Thể loại này có <code><nowiki>__HIDDENCAT__</nowiki></code>, nên, theo mặc định, thể loại không xuất hiện trong hộp thể loại trên các trang được xếp vào thể loại.",
     "trackingcategories-nodesc": "Không có miêu tả.",
     "trackingcategories-disabled": "Thể loại bị tắt",
     "mailnologin": "Không có địa chỉ gửi thư",
     "emailuser-title-notarget": "Gửi thư cho người dùng",
     "emailpage": "Gửi thư",
     "emailpagetext": "{{GENDER:$1}}Mẫu dưới đây sẽ gửi một bức thư điện tử tới người dùng này.\nĐịa chỉ thư điện tử mà bạn đã cung cấp trong [[Special:Preferences|tùy chọn cá nhân của mình]] sẽ xuất hiện trong phần địa chỉ “Người gửi” của bức thư, do đó người nhận sẽ có thể trả lời trực tiếp cho bạn.",
-    "usermailererror": "Lỗi gửi thư:",
     "defemailsubject": "Thư của người dùng \"$1\" tại {{SITENAME}}",
     "usermaildisabled": "Chức năng gửi thư cho người dùng đã bị tắt.",
     "usermaildisabledtext": "Bạn không thể gửi thư điện tử cho những người dùng khác trên wiki này.",
     "noemailtitle": "Không có địa chỉ nhận thư",
     "noemailtext": "Người này không cung cấp một địa chỉ thư hợp lệ.",
-    "nowikiemailtitle": "Không cho phép thư điện tử",
     "nowikiemailtext": "Thành viên này quyết định không nhận thư từ các thành viên khác.",
     "emailnotarget": "Người nhận không tồn tại hoặc tên hiệu không hợp lệ.",
     "emailtarget": "Nhập tên hiệu của người nhận",
     "unwatchthispage": "Ngừng theo dõi",
     "notanarticle": "Không phải trang có nội dung",
     "notvisiblerev": "Phiên bản bị xóa",
-    "watchlist-details": "Bạn đang theo dõi {{PLURAL:$1|$1 trang|$1 trang}}, không kể các trang thảo luận.",
+    "watchlist-details": "Bạn đang theo dõi {{PLURAL:$1}}$1 trang, không kể riêng các trang thảo luận.",
     "wlheader-enotif": "Đã bật thông báo qua thư điện tử.",
     "wlheader-showupdated": "Các trang đã thay đổi kể từ lần cuối bạn xem chúng được in '''đậm'''",
     "watchmethod-recent": "Dưới đây hiện thay đổi mới với các trang theo dõi.",
     "watching": "Đang theo dõi…",
     "unwatching": "Đang ngừng theo dõi…",
     "watcherrortext": "Lỗi xảy ra khi theo dõi hoặc ngừng theo dõi “$1”.",
-    "enotif_mailer": "Thông báo của {{SITENAME}}",
     "enotif_reset": "Đánh dấu đã xem mọi trang",
     "enotif_impersonal_salutation": "thành viên {{SITENAME}}",
     "enotif_subject_deleted": "Trang $1 tại {{SITENAME}} đã được xóa bởi $2.",
     "excontent": "nội dung cũ: “$1”",
     "excontentauthor": "nội dung cũ: “$1” (người viết duy nhất “[[Special:Contributions/$2|$2]]”)",
     "exbeforeblank": "nội dung trước khi tẩy trống: “$1”",
-    "exblank": "trang trắng",
     "delete-confirm": "Xóa “$1”",
     "delete-legend": "Xóa",
     "historywarning": "'''Cảnh báo:''' Trang bạn sắp xóa đã có lịch sử khoảng $1 {{PLURAL:$1|phiên bản|phiên bản}}:",
     "importunknownsource": "Không hiểu nguồn trang để nhập vào",
     "importcantopen": "Không có thể mở tập tin để nhập vào",
     "importbadinterwiki": "Liên kết liên wiki sai",
-    "importnotext": "Trang trống hoặc không có nội dung",
     "importsuccess": "Nhập thành công!",
-    "importhistoryconflict": "Có mâu thuẫn trong lịch sử của các phiên bản (trang này có thể đã được nhập vào trước đó)",
     "importnosources": "Không có nguồn nhập giữa wiki và việc nhập lịch sử bị tắt.",
     "importnofile": "Không tải được tập tin nào lên.",
     "importuploaderrorsize": "Không thể tải tập tin nhập trang. Tập tin lớn hơn kích thước cho phép tải lên.",
index b006441..4d07e61 100644 (file)
     "permalink": "שטענדיגער לינק",
     "print": "דרוק",
     "view": "באַקוקן",
+    "view-foreign": "באקוקן אויף $1",
     "edit": "רעדאַקטירן",
+    "edit-local": "רעדאקטירן לאקאלע באשרײַבונג",
     "create": "שאַפֿן",
+    "create-local": "צולייגן לאקאלע באשרײַבונג",
     "editthispage": "ענדערן דעם בלאט",
     "create-this-page": "שאַפֿן דעם בלאַט",
     "delete": "אויסמעקן",
     "accountcreatedtext": "די באניצער קאנטע פאר [[{{ns:User}}:$1|$1]] \n([[{{ns:User talk}}:$1|שמועס]])  איז באַשאַפֿן געווארן.",
     "createaccount-title": "קאנטע באשאפֿן אין {{SITENAME}}",
     "createaccount-text": "עמעצער האט באשאפֿן א קאנטע פֿאר אייער ע-פאסט אדרעס אין {{SITENAME}} ($4) מיטן נאמען \"$2\" און  פאסווארט \"$3\". איר דארפט אצינד איינלאגירן און ענדערן דאס פאסווארט.\n\nאיר קענט איגנארירן די מעלדונג, ווען די קאנטע איז באשאפֿן בטעות.",
-    "usernamehasherror": "באַניצער נאמען טאָר נישט אַנטהאַלטן קיין לייטער סימבאל",
     "login-throttled": "איר האט געפרוווט צופֿיל מאל אריינלאגירן.\nזייט אזוי גוט און וואַרט $1 איידער איר פרוווט נאכאמאל.",
     "login-abort-generic": "אײַער ארײַנלאגירונג איז נישט געווען דערפֿאלגרייך—אָפגעשטעלט",
     "loginlanguagelabel": "שפראך: $1",
     "undo-success": "די ענדערונג קען ווערן מבוטל. ביטע נאכקוקן די פארגלייך פון אונטן צו זיין זיכער אז דאס איז וואס איר ווילט טאן, און דערנאך היט-אפ די ענדערונגן פון אונטן צו ענדיגן דאס בטל מאכן די ענדערונג.",
     "undo-failure": "די ענדערונג קען נישט מבוטל ווערן צוליב סתירות מיט צווישנצייטלעכע ענדערונגען.",
     "undo-norev": "ס'איז נישט מעגלעך צוריקקערן די רעדאַקטירונג ווײַל זי עקסיסטירט נישט אדער איז אויסגעמעקט.",
+    "undo-nochange": "אויבערפלעכטלעך איז די רעדאקטירונג שוין געווארן אנולירט.",
     "undo-summary": "זיי מבטל רי-ווערסיע $1 פון [[Special:Contributions/$2|$2]] ([[User talk:$2|רעדן]])",
     "undo-summary-username-hidden": "זײַט מבטל ווערסיע $1 פון א באהאלטענעם באניצער",
     "cantcreateaccounttitle": "מען קען נישט באשאפֿן קאנטע",
     "revdelete-no-file": "די ספעציפֿירטע טעקע עקזיסטירט נישט.",
     "revdelete-show-file-confirm": "צי זענט איר זעכער איר ווילט באַקוקן אַן אויסגעמעקטע רעוויזיע פון דער טעקע \"<nowiki>$1</nowiki>\" פון $2 בשעה $3?",
     "revdelete-show-file-submit": "יא",
+    "revdelete-selected-text": "'''{{PLURAL:$2|אויסדערוויילטע רעוויזיע| אויסדערוויילטע רעוויזיעס}} פון [[:$1]]:'''",
     "logdelete-selected": "{{PLURAL:$1| אויסדערוויילטע לאג אקציע|אויסדערוויילטע לאג אקציעס}}:",
     "revdelete-confirm": "זייט אזוי גוט און באשטעטיקט אז דאס איז טאקע אייער כוונה, אז איר פארשטייט די קאנסעקווענצן, און אז איר טוט דאס לויט  [[{{MediaWiki:Policy-url}}|דער פאליסי]].",
     "revdelete-suppress-text": "אונטערדרוקן זאל בלויז גענוצט ווערן '''נאר''' אין די פאלגנדע פעלער:\n* אינפארמאציע וואס קען זיין מוציא שם רע\n* אויפדעקונג פון פריוואטקייט אינפארמאציע\n*: ''היים אדרעסן, טעלעפאן נומערן, נאציאנאלע אידענטיפיקאציע נומערן, א.א.וו.''",
     "prefs-skin": "סקין",
     "skin-preview": "פארויסדיגע ווייזונג",
     "datedefault": "נישטא קיין פרעפערענץ",
-    "prefs-datetime": "דאטום און צייט",
     "prefs-labs": "לאַבאראַטאריע מעגלעכקייטן",
     "prefs-user-pages": "באניצער בלעטער",
     "prefs-personal": "באַניצער פראָפֿיל",
     "upload-permitted": "ערלויבטע טעקע טיפן: $1.",
     "upload-preferred": "פרעפֿרירטע טעקע טיפן: $1.",
     "upload-prohibited": "פֿאַרווערענע טעקע טיפן: $1.",
-    "uploadlog": "ארויפלאָדן לאָגבוך",
     "uploadlogpage": "ארויפֿלאדן לאג",
     "uploadlogpagetext": "פֿאָלגנד איז אַ ליסטע פֿון די לעצטע אַרױפֿגעלאָדענע טעקעס.\nזעט די  [[Special:NewFiles|גאלאריע פֿון נײַע טעקעס]] פֿאַר א מער וויזועלע איבערבליק.",
     "filename": "טעקע נאמען",
     "filereuploadsummary": "טעקע ענדערונגען:",
     "filestatus": "קאפירעכט סטאַטוס:",
     "filesource": "מקור:",
-    "uploadedfiles": "ארויפֿגעלאדעטע טעקעס",
     "ignorewarning": "איגנאָרירן ווארענונג און אויפֿהיטן טעקע סיי ווי סיי",
     "ignorewarnings": "איגנארירן וואָרענונגען",
     "minlength1": "א טעקע נאמען מוז האבן כאטש איין אות.",
     "overwroteimage": "אַרויפֿגעלאָדן א נײַע ווערסיע פון \"[[$1]]\"",
     "uploaddisabled": "אַרויפֿלאָדן טעקעס מבוטל",
     "copyuploaddisabled": "ארויפלאדן דורך URL אומאקטיווירט",
-    "uploadfromurl-queued": "אייער ארויפֿלאד איז אין דער רייע.",
     "uploaddisabledtext": "אַרויפֿלאָדן טעקעס נישט דערמעגלעכט.",
     "php-uploaddisabledtext": "אַרויפֿלאָדן טעקעס נישט דערמעגלעכט אין PHP.\nזייט אזוי גוט בודק זיין די file_uploads שטעלונג.",
     "uploadscripted": "די טעקע האט א סקריפט אדער HTML קאד וואס קען ווערן פֿאלש אויסגעטייטשט דורך א בלעטערער",
+    "uploadscriptednamespace": "די SVG טעקע אנטהאלט אן אומלעגאלן נאמענטייל  \"$1\"",
     "uploadvirus": "די טעקע האָט אַ ווירוס! פרטים: <div dir=\"rtl\">$1</div>",
     "upload-source": "מקור טעקע",
     "sourcefilename": "מקור טעקע נאמען:",
     "upload-misc-error": "אומבאַוואוסטער ארויפֿלאָדן גרײַז",
     "upload-misc-error-text": "אן אומבאקאנטער גרייז האט פאסירט בשעת דעם ארויפלאד.\nביטע באשטעטיקט אז דער  URL איז גילטיק און דערגרייכבאר און פרובירט נאכאמאל.\nווען דער פראבלעם בלייבט ווייטער, קאנטאקטירט  א [[Special:ListUsers/sysop|סיסאפ]].",
     "upload-too-many-redirects": "דער URL אַנטהאַלט צופֿיל ווײַטערפֿירונגען.",
-    "upload-unknown-size": "אומוויסנדע גרייס",
     "upload-http-error": "א HTTP גרײַז האט פאַסירט: $1",
     "backend-fail-stream": "קען נישט מאכן שטראמען טעקע $1.",
     "backend-fail-notexists": "נישט פֿאראן די טעקע $1.",
     "img-auth-isdir": "איר פֿארזיכט צוצוטרעטן אן ארכיוו \"$1\".\nנאר טעקע צוטריט איז ערלויבט.",
     "img-auth-streaming": "שטראָמענדיק \"$1\".",
     "img-auth-noread": "באניצער האט נישט קיין דערלויבניש צו ליינען \"$1\".",
-    "img-auth-bad-query-string": "דער URL האט אן אומגילטיק פראגע שנורל.",
     "http-invalid-url": "אומגילטיג URL: $1",
     "http-invalid-scheme": "URL אדרעסן מיט דער \"$1\" סכעמע ווערן נישט געשטיצט.",
     "http-request-error": "HTTP בקשה דורכגעפאלן צוליב אומבאוואוסטער פעלער.",
     "filehist-dimensions": "געמעסטן",
     "filehist-filesize": "טעקע גרייס",
     "filehist-comment": "באמערקונג",
-    "filehist-missing": "טעקע פעלט",
     "imagelinks": "טעקע באַניץ",
     "linkstoimage": "{{PLURAL:$1|דער פאלגנדער בלאט ניצט|די פאלגנדע בלעטער ניצן}} דאס דאזיגע בילד:",
     "linkstoimage-more": "מער ווי $1 {{PLURAL:$1|בלאַט פֿאַרבינדט|בלעטער פֿאַרבינדן}} צו דער דאזיגער טעקע.\nדי פֿאלגנדע ליסטע ווײַזט  {{PLURAL:$1|דעם ערשטן בלאַט לינק|די ערשטע $1 בלאַט לינקען}} צו דער טעקע.\nס'איז פֿאַראַן[[Special:WhatLinksHere/$2|פֿולע רשימה]].",
     "download": "אַראָפלאָדן",
     "unwatchedpages": "בלעטער וואס זענען נישט אויפגעפאסט",
     "listredirects": "ליסטע פון ווײַטערפֿירונגען",
+    "listduplicatedfiles": "ליסטע פון טעקעס מיט דופליקאטן",
     "unusedtemplates": "נישט באניצטע מוסטערן",
     "unusedtemplatestext": "דער בלאט ווײַזט אלע בלעטער אינעם {{ns:template}} נאמענטייל וואס זענען נישט אײַנגעשלאסן אין אן אנדער בלאט. געדענקט צו באקוקן אנדערע בלעטער פאר לינקען צו די מוסטערן איידער איר מעקט זיי אויס.",
     "unusedtemplateswlh": "אנדערע פֿאַרבינדונגען",
     "listgrouprights-removegroup-self": "א§ראָפנעמען {{PLURAL:$2|גרופּע |גרופּעס}} פון אייגענער קאנטע: $1",
     "listgrouprights-addgroup-self-all": "צולייגן אַלע גרופעס צו אייגענער קאנטע",
     "listgrouprights-removegroup-self-all": "אראָפנעמען אַלע גרופעס פֿון אייגענער קאנטע",
+    "listgrouprights-namespaceprotection-namespace": "נאָמענטייל",
     "mailnologin": "נישטא קיין אדרעס צו שיקן",
     "mailnologintext": "איר ברויכט זײַן [[Special:UserLogin|אַרײַנלאגירט]] און האָבן א גילטיגן ע־פאסט אַדרעס אין אײַער [[Special:Preferences|פרעפֿערענצן]] צו שיקן ע־פאסט צו אַנדערע באַניצער.",
     "emailuser": "שיקן ע-פאסט צו דעם באַניצער",
     "emailuser-title-notarget": "שיקן א באניצער ע־פאסט",
     "emailpage": "שיקן ע-פאסט צו באַניצער",
     "emailpagetext": "איר קענט ניצן די פֿארעם אונטן צו שיקן א בליצבריוו צו {{GENDER:$1|דעם דאזיגן באַניצער|דער דאזיגער באַניצערין}}.\nדער ע-פאסט אדרעס וואס איר האט אריינגעלייגט אין [[Special:Preferences| אייערע באַניצער פרעפערנעצן]] וועט זיך ווײַזן כאילו דאס איז געקומען פון דארטן, בכדי צו דערמעגלעכן א תשובה.",
-    "usermailererror": "בליצבריוו האט צוריקגעשיקט א טעות:",
     "defemailsubject": "ע-פאסט פון באַניצער \"$1\" {{SITENAME}}",
     "usermaildisabled": "באַניצער ע־פאסט אומאַקטיוויזירט",
     "usermaildisabledtext": "איר קענט נישט שיקן ע־פאסט צו אנדערע באַניצערס אויף דער דאָזיקער וויקי",
     "noemailtitle": "נישטא קיין אי-מעיל אדרעס",
     "noemailtext": "דער באַניצער האט נישט באשטימט קיין גילטיקן ע-פאסט אדרעס.",
-    "nowikiemailtitle": "קיין ע-פאסט נישט דערלויבט",
     "nowikiemailtext": "דער באַניצער האט געקליבן נישט באַקומען ע־פאסט פֿון אַנדערע באַניצער.",
     "emailnotarget": "נישט־פֿאראן אדער אומגילטיקער באַניצער־נאָמען פאר באַקומער.",
     "emailtarget": "אַרײַנגעבן באַניצער־נאָמען פון באַקומער",
     "unwatchthispage": "ענדיגן אויפֿפאַסן",
     "notanarticle": "דאס איז נישט קיין אינהאלט בלאט",
     "notvisiblerev": "די באארבעטונג איז געווארן אויסגעמעקט",
-    "watchlist-details": "{{PLURAL:$1|איין בלאט|$1 בלעטער}} אין אייער אויפֿפאסן ליסטע (נישט רעכענען  רעדן בלעטער).",
+    "watchlist-details": "{{PLURAL:$1|$1 בלאט|$1 בלעטער}} אין אייער אויפֿפאסן ליסטע, נישט רעכענען  רעדן בלעטער.",
     "wlheader-enotif": "ע-פאסט מעלדונג ערמעגליכט.",
     "wlheader-showupdated": "בלעטער געענדערט זײַט אײַער לעצטן וויזיט זען געוויזן '''דיק'''.",
     "watchmethod-recent": "קאנטראלירן לעצטע ענדערונגען פֿאַר אויפֿגעפאַסטע בלעטער",
     "watching": "אויפפאסענדונג…",
     "unwatching": "נעמט אראפ פון אויפפאסונג ליסטע…",
     "watcherrortext": "א גרײַז האט פאסירט ביים ענדערן אײַערע אויפֿפאסן ליסטע אײַנשטעלונגען פֿאר \"$1\".",
-    "enotif_mailer": "נאטיפאקאציע שיקער {{SITENAME}}",
     "enotif_reset": "באַצייכענען אלע בלעטער שוין געזען",
     "enotif_impersonal_salutation": "{{SITENAME}} באַניצער",
     "enotif_subject_deleted": "{{SITENAME}} בלאט $1 איז אויסגעמעקט געווארן דורך {{gender:$2|$2}}",
     "excontent": "אינהאלט געווען: \"$1\"",
     "excontentauthor": "אינהאלט געווען: '$1' (און דער איינציגסטער באארבעטער איז געווען '[[Special:Contributions/$2|$2]]')",
     "exbeforeblank": "אינהאַלט בעפֿאַרן אויסליידיגן איז געווען: \"$1\"",
-    "exblank": "בלאט איז געווען ליידיג",
     "delete-confirm": "אויסמעקן $1",
     "delete-legend": "אויסמעקן",
     "historywarning": "אכטונג – איר גייט אויסמעקן א בלאט וואָס האט א היסטאריע מיט $1 {{PLURAL:$1|ווערסיע|ווערסיעס}}:",
     "importunknownsource": "אומבאקאנטער  אימפארט טיפ",
     "importcantopen": "נישט געקענט עפֿענען אימפארט טעקע",
     "importbadinterwiki": "שלעכטע אינטערוויקי לינק",
-    "importnotext": "ליידיג אדער נישט קיין טעקסט",
     "importsuccess": "!אימפארט אדורכגעפירט מיט דערפאלג!",
-    "importhistoryconflict": "פאראן א קאנפליקט מיט דער עקזיסטירנדע היסטאריע רעוויזיע (מעגליך אז דער בלאט איז געווארן אימפארטירט שוין פריער)",
     "importnosources": "קיין מקורות פֿאַר צווישן־וויקי אימפארט, און דירעקט היסטאריע אַרויפֿלאָדן איז נישט דערמעגלעכט אַצינד.",
     "importnofile": "קיין אימפארט טעקע איז נישט ארויפֿגעלאדן.",
     "importuploaderrorsize": "אַרויפֿלאָדן פֿון אימפארט טעקע דורכגעפֿאלן.\nדי טעקע איז גרעסער פֿון דער דערלויבטער אַרויפֿלאָדן גרייס.",
index f6277c0..7e1e9c8 100644 (file)
@@ -14,7 +14,8 @@
             "William915",
             "Wong128hk",
             "Xiaomingyan",
-            "Yfdyh000"
+            "Yfdyh000",
+            "Cwek"
         ]
     },
     "tog-underline": "連結加底線:",
     "accountcreatedtext": "$1嘅戶口起好咗。",
     "createaccount-title": "響{{SITENAME}}度開個新戶口",
     "createaccount-text": "有人響{{SITENAME}}度用咗你個電郵開咗個名叫 \"$2\" 嘅新戶口 ($4),密碼係 \"$3\" 。你應該而家登入,改埋個密碼。\n\n如果個戶口係開錯咗嘅話,你可以唔埋呢篇信。",
-    "usernamehasherror": "用戶名唔可以包含切細字元",
     "login-throttled": "你已經試咗太多次登入動作。請等多一陣再試過。",
     "loginlanguagelabel": "語言:$1",
     "suspicious-userlogout": "你去登出嘅要求已經拒絕咗,因為佢可能由壞咗嘅瀏覽器或者快取代理傳送。",
     "prefs-skin": "畫面",
     "skin-preview": "預覽",
     "datedefault": "冇喜好",
-    "prefs-datetime": "日期同埋時間",
     "prefs-labs": "實驗性嘅特色",
     "prefs-personal": "用戶簡介",
     "prefs-rc": "最近更改",
     "upload-permitted": "准許嘅檔案類型: $1。",
     "upload-preferred": "建議嘅檔案類型: $1。",
     "upload-prohibited": "禁止嘅檔案類型: $1。",
-    "uploadlog": "上載日誌",
     "uploadlogpage": "上載日誌",
     "uploadlogpagetext": "以下係最近檔案上載嘅一覽表。\n睇[[Special:NewFiles|新圖像畫廊]]去睇更詳細嘅總覽。",
     "filename": "檔名",
     "filereuploadsummary": "檔案改變:",
     "filestatus": "版權狀態:",
     "filesource": "來源:",
-    "uploadedfiles": "上載檔案中",
     "ignorewarning": "總要忽略警告同埋儲存檔案",
     "ignorewarnings": "忽略任何警告",
     "minlength1": "檔名必須最少要有一個字。",
     "overwroteimage": "已經上載咗\"[[$1]]\"嘅新版本",
     "uploaddisabled": "上載已停用。",
     "copyuploaddisabled": "由URL嘅上載已經停用。",
-    "uploadfromurl-queued": "你嘅上載已經開始排隊。",
     "uploaddisabledtext": "檔案上載已經停用。",
     "php-uploaddisabledtext": "PHP 檔案上載已經停用。請檢查 file_uploads 設定。",
     "uploadscripted": "呢個檔案包含可能會誤被瀏覽器解釋執行嘅 HTML 或 script 代碼。",
     "upload-misc-error": "未知嘅上載錯誤",
     "upload-misc-error-text": "響上載時發生咗未知嘅錯誤。請確認輸入咗嘅URL係可以訪問嘅,之後再試多一次。如果重有問題嘅話,請聯絡一位[[Special:ListUsers/sysop|管理員]]。",
     "upload-too-many-redirects": "個URL有太多跳轉",
-    "upload-unknown-size": "未知嘅大細",
     "upload-http-error": "一個HTTP錯誤發生咗: $1",
     "backend-fail-notexists": "檔案$1唔存在。",
     "backend-fail-delete": "刪唔到檔案「$1」。",
     "filehist-dimensions": "尺寸",
     "filehist-filesize": "檔案大細",
     "filehist-comment": "註解",
-    "filehist-missing": "檔案遺失",
     "imagelinks": "檔案用途",
     "linkstoimage": "以下嘅$1個頁面連結到呢個檔案:",
     "linkstoimage-more": "多過$1版連過去呢個檔案。\n下面嘅表只係列示咗連去呢個檔案嘅最頭$1版。\n一個[[Special:WhatLinksHere/$2|完整嘅表]]可以提供。",
     "emailuser": "發電郵畀呢位用戶",
     "emailpage": "發電郵畀用戶",
     "emailpagetext": "你可以用下面嘅表去寄一封電郵畀呢位用戶。\n你喺[[Special:Preferences|你嘅用戶喜好設定]]入面填寫嘅電郵地址會出現喺呢封電郵「由」嘅地址度,以便收件人可以回覆到。",
-    "usermailererror": "目標郵件地址返回錯誤:",
     "defemailsubject": "{{SITENAME}} 電郵",
     "usermaildisabled": "用戶電郵已停用",
     "usermaildisabledtext": "你唔可以發送電郵到響呢個wiki度嘅其他用戶",
     "noemailtitle": "無電郵地址",
     "noemailtext": "呢個用戶重未指定一個有效嘅電郵地址。",
-    "nowikiemailtitle": "唔容許電郵",
     "nowikiemailtext": "呢位用戶揀咗唔收其他用戶畀佢嘅電郵。",
     "email-legend": "寄電郵畀另一位{{SITENAME}}用戶",
     "emailfrom": "由:",
     "watchlist-options": "監視清單選項",
     "watching": "監視緊...",
     "unwatching": "唔再監視緊...",
-    "enotif_mailer": "{{SITENAME}}通知郵遞員",
     "enotif_reset": "將所有頁面標成已視察",
     "enotif_impersonal_salutation": "{{SITENAME}}用戶",
     "enotif_lastvisited": "你上次視察以嚟嘅修改請睇$1。",
     "excontent": "內容係:「$1」",
     "excontentauthor": "內容係:「$1」 (而且唯一嘅貢獻者係「[[Special:Contributions/$2|$2]]」)",
     "exbeforeblank": "喺清空之前嘅內容係:「$1」",
-    "exblank": "頁面之前係空嘅",
     "delete-confirm": "刪除\"$1\"",
     "delete-legend": "刪除",
     "historywarning": "警告:你要刪除嘅頁面有大約$1次嘅修訂:",
     "ipblocklist-submit": "搵",
     "ipblocklist-localblock": "本地封鎖",
     "ipblocklist-otherblocks": "其他{{PLURAL:$1|封鎖|封鎖}}",
-    "infiniteblock": "不設期限",
+    "infiniteblock": "期限",
     "expiringblock": "$1 $2 期滿",
     "anononlyblock": "只限匿名",
     "noautoblockblock": "自動封鎖已經停用",
     "importunknownsource": "不明嘅倒入來源類型",
     "importcantopen": "唔能夠開個倒入檔案",
     "importbadinterwiki": "壞嘅跨 wiki 連結",
-    "importnotext": "空白或者唔係文字",
     "importsuccess": "已經完成倒入!",
-    "importhistoryconflict": "存在有衝突嘅歷史版本(之前可能曾經倒入過呢頁)",
     "importnosources": "未定義 transwiki 嘅匯入來源,同埋歷史嘅直接上載已經停用。",
     "importnofile": "冇上載到任何要倒入嘅檔案。",
     "importuploaderrorsize": "上載要倒入嘅檔案失敗。個檔案大過可以容許嘅上載大細。",
index 1b9f7c3..3405680 100644 (file)
     "disclaimers": "gangjmingz mienxcwz",
     "disclaimerpage": "Project:Itbuen mienxcwz",
     "edithelp": "Caeuq mungz san-zonz",
-    "helppage": "Help:moegloeg",
     "mainpage": "Yiebdaeuz",
     "mainpage-description": "Yiebdeauz",
     "policy-url": "Project:fuengcim",
diff --git a/languages/i18n/zh-cn.json b/languages/i18n/zh-cn.json
deleted file mode 100644 (file)
index 3eef3dc..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-    "@metadata": {
-        "authors": [
-            "Liangent",
-            "PhiLiP",
-            "Shizhao",
-            "Wong128hk",
-            "Xiaomingyan"
-        ]
-    },
-    "tog-norollbackdiff": "进行回退后略过差异比较",
-    "mytalk": "我的讨论页",
-    "portal": "社区专页",
-    "editing": "正在编辑 $1"
-}
index 2396ae3..7dec702 100644 (file)
     "userlogin-resetlink": "忘记你的登录信息?",
     "userlogin-resetpassword-link": "忘记密码?",
     "userlogin-helplink2": "登录帮助",
-    "userlogin-loggedin": "æ\82¨å·²ç»\8f以{{GENDER:$1|$1}}ç\9a\84身份ç\99»å½\95ã\80\82使ç\94¨ä»¥ä¸\8b表格以其他用户的身份登录。",
+    "userlogin-loggedin": "æ\82¨å·²ç»\8f以{{GENDER:$1|$1}}ç\9a\84身份ç\99»å½\95ã\80\82使ç\94¨ä¸\8bé\9d¢ç\9a\84表格以其他用户的身份登录。",
     "userlogin-createanother": "创建另一个账户",
     "createacct-join": "请在下面输入你的信息。",
     "createacct-another-join": "在下方输入新帐户信息。",
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]])的账户已创建。",
     "createaccount-title": "在{{SITENAME}}中创建新账户",
     "createaccount-text": "有人在{{SITENAME}}中利用您的邮箱创建了一个名为 \"$2\" 的新帐户($4),密码是 \"$3\" 。您应该立即登录并更改密码。\n\n如果该账户创建错误的话,您可以忽略此信息。",
-    "usernamehasherror": "用户名中不可包含哈希(hash)字符",
     "login-throttled": "你最近尝试登录的次数过多。请等待$1后再试。",
     "login-abort-generic": "登录失败 - 已终止",
     "loginlanguagelabel": "语言:$1",
     "userpage-userdoesnotexist": "用户账户“$1”没有注册。请在创建/编辑本页前检查。",
     "userpage-userdoesnotexist-view": "用户账户“$1”未曾创建。",
     "blocked-notice-logextract": "这位用户目前已被封禁。以下提供最近的封禁日志以供参考:",
-    "clearyourcache": "'''注意:'''在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更。\n* '''Firefox/Safari:'''按住“Shift”的同时单击“刷新”,或按“Ctrl-F5”或“Ctrl-R”(Mac为“⌘-R”)\n* '''Google Chrome:'''按“Ctrl-Shift-R”(Mac为“⌘-Shift-R”)\n* '''Internet Explorer:'''按住“Ctrl”的同时单击“刷新”,或按“Ctrl-F5”\n* '''Opera:'''在“工具→首选项”中清除缓存",
+    "clearyourcache": "'''注意:'''在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。\n* '''Firefox/Safari:'''按住“Shift”的同时单击“刷新”,或按“Ctrl-F5”或“Ctrl-R”(Mac为“⌘-R”)\n* '''Google Chrome:'''按“Ctrl-Shift-R”(Mac为“⌘-Shift-R”)\n* '''Internet Explorer:'''按住“Ctrl”的同时单击“刷新”,或按“Ctrl-F5”\n* '''Opera:'''在“工具→首选项”中清除缓存",
     "usercssyoucanpreview": "'''提示:''' 在保存前请用“{{int:showpreview}}”按钮来测试您新的 CSS 。",
     "userjsyoucanpreview": "'''提示:''' 在保存前请用“{{int:showpreview}}”按钮来测试您新的 JavaScript 。",
     "usercsspreview": "'''请记住你现在只是在预览你的用户CSS。它尚未保存!'''",
     "prefs-skin": "皮肤",
     "skin-preview": "预览",
     "datedefault": "默认格式",
-    "prefs-datetime": "日期时间",
     "prefs-labs": "实验室特性",
     "prefs-user-pages": "用户页",
     "prefs-personal": "用户资料",
     "rows": "行数:",
     "columns": "列数:",
     "searchresultshead": "搜索",
-    "stub-threshold": "<a href=\"#\" class=\"stub\">ç\9f­é¡µé\9d¢é\93¾æ\8e¥</a>æ ¼å¼\8fé\98\88å\80¼ï¼\88å­\97è\8a\82ï¼\89ï¼\9a",
+    "stub-threshold": "<a href=\"#\" class=\"stub\">短链接</a>格式阈值(字节):",
     "stub-threshold-disabled": "停用",
     "recentchangesdays": "最近更改中显示的天数:",
     "recentchangesdays-max": "最多$1天",
     "prefs-memberingroups": "{{GENDER:$2|用户}}{{PLURAL:$1|组}}:",
     "prefs-registration": "注册时间:",
     "yourrealname": "真实姓名:",
-    "yourlanguage": "语言:",
+    "yourlanguage": "界面语言:",
     "yourvariant": "内容语言变种:",
-    "prefs-help-variant": "您希望用于显示该本站内容的语言。",
+    "prefs-help-variant": "您希望用于显示该本站内容的语言变体。",
     "yournick": "新签名:",
     "prefs-help-signature": "讨论页上留言应该使用“<nowiki>~~~~</nowiki>”签名,它会自动转换为您的签名及时间戳。",
     "badsig": "错误的原始签名。请检查HTML标签。",
     "gender-unknown": "我不愿意指明(被称为“他/她”)",
     "gender-male": "他",
     "gender-female": "她",
-    "prefs-help-gender": "该设置为可选项目。\n软件根据该值在称呼您及当他人提及您时使用适当的语法性别。\n该信息会被公开。",
+    "prefs-help-gender": "该设置为可选项目。软件根据该值在称呼您及对他人提及您时使用适当的语法性别。该信息会被公开。",
     "email": "电子邮件",
     "prefs-help-realname": "真实姓名是选填项目。如果你选择提供它,它将会用于贡献署名。",
     "prefs-help-email": "电子邮件是可选项,但是在您忘记密码时很有用。",
     "prefs-help-email-others": "您也可以选择让其他用户通过您的用户页或讨论页上的链接用电子邮件联系您。其他用户联系您时您的电子邮件地址不会显示。",
     "prefs-help-email-required": "电子邮件地址是必填项目。",
     "prefs-info": "基本信息",
-    "prefs-i18n": "界面语言",
+    "prefs-i18n": "语言",
     "prefs-signature": "签名",
     "prefs-dateformat": "日期格式",
     "prefs-timeoffset": "时差",
     "upload-permitted": "允许的文件类型:$1。",
     "upload-preferred": "建议的文件类型:$1。",
     "upload-prohibited": "禁止的文件类型:$1。",
-    "uploadlog": "上传日志",
     "uploadlogpage": "上传日志",
     "uploadlogpagetext": "下面是最近的文件上传的列表。图像概览请见[[Special:NewFiles|新文件图库]]。",
     "filename": "文件名",
     "filereuploadsummary": "文件更改:",
     "filestatus": "著作权状况:",
     "filesource": "来源:",
-    "uploadedfiles": "上传的文件",
     "ignorewarning": "忽略警告,继续保存文件",
     "ignorewarnings": "忽略所有警告",
     "minlength1": "文件名至少要有一个字符。",
     "overwroteimage": "上传“[[$1]]”的新版本",
     "uploaddisabled": "上传己停用。",
     "copyuploaddisabled": "URL上传已停用。",
-    "uploadfromurl-queued": "上传已被列入队列。",
     "uploaddisabledtext": "文件上传已停用。",
     "php-uploaddisabledtext": "PHP文件上传停用。请检查file_uploads设置。",
     "uploadscripted": "该文件包含可能被网络浏览器错误解释的 HTML 或脚本代码。",
     "upload-misc-error": "未知的上传错误",
     "upload-misc-error-text": "在上传时发生未知的错误。请确认您使用了正确并可访问的URL,然后进行重试。如果问题仍然存在,请与[[Special:ListUsers/sysop|管理员]]联系。",
     "upload-too-many-redirects": "在网址中有太多重新定向",
-    "upload-unknown-size": "未知大小",
     "upload-http-error": "发生HTTP错误:$1",
     "upload-copy-upload-invalid-domain": "不能从该域名上载文件副本。",
     "backend-fail-stream": "无法流传送文件$1。",
     "img-auth-streaming": "流式化“$1”中。",
     "img-auth-public": "img_auth.php的功能是从非公开wiki输出文件。本wiki已被设置为公开。为了最佳安全状况,img_auth.php已停用。",
     "img-auth-noread": "用户无权读取“$1”。",
-    "img-auth-bad-query-string": "URL 有一个无效的查询字符串。",
     "http-invalid-url": "无效URL:$1",
     "http-invalid-scheme": "不支持带有“$1”的URL",
     "http-request-error": "未知的错误令到HTTP请求失败。",
     "filehist-dimensions": "大小",
     "filehist-filesize": "文件大小",
     "filehist-comment": "备注",
-    "filehist-missing": "文件遗失",
     "imagelinks": "文件用途",
     "linkstoimage": "以下$1个页面链接至本文件:",
     "linkstoimage-more": "超过$1个页面连接到这个文件。\n此处只列出首$1个链接到该文件的页面。\n您也可以查看[[Special:WhatLinksHere/$2|完整的列表]]。",
     "listgrouprights-removegroup-self": "删除自己的账户的{{PLURAL:$2|用户组}}:$1",
     "listgrouprights-addgroup-self-all": "添加所有用户组至自己的账户",
     "listgrouprights-removegroup-self-all": "删除自己的账户的所有用户组",
+    "listgrouprights-namespaceprotection-header": "名字空间限制",
+    "listgrouprights-namespaceprotection-namespace": "名字空间",
+    "listgrouprights-namespaceprotection-restrictedto": "允许用户编辑的权限",
     "trackingcategories": "追踪分类",
     "trackingcategories-summary": "本页面列举由MediaWiki软件自动添加的跟踪分类。它们的名字可通过修改{{ns:8}}名字空间对应的系统信息而变更。",
     "trackingcategories-msg": "追踪分类",
     "trackingcategories-name": "信息名",
     "trackingcategories-desc": "分类收录标准",
-    "noindex-category-desc": "页面中有<nowiki>__NOINDEX__</nowiki>魔术字(并且在标记允许的名字空间)且因此未被机器人索引的。",
-    "index-category-desc": "页面中有<nowiki>__INDEX__</nowiki>魔术字(并且在标记允许的名字空间)且因此被机器人索引但本不应索引的。",
+    "noindex-category-desc": "页面中有<code><nowiki>__NOINDEX__</nowiki></code>魔术字(并且在标记允许的名字空间)且因此未被机器人索引的。",
+    "index-category-desc": "页面中有<code><nowiki>__INDEX__</nowiki></code>魔术字(并且在标记允许的名字空间)且因此被机器人索引但本不应索引的。",
     "post-expand-template-inclusion-category-desc": "在展开了所有模板后,页面大小大于<code>$wgMaxArticleSize</code>,所以一些模板未展开。",
     "post-expand-template-argument-category-desc": "展开了模板参数(三对花括号内,例如<code>{{{Foo}}}</code>)之后,页面大于<code>$wgMaxArticleSize</code>。",
     "expensive-parserfunction-category-desc": "页面包含了太多的高开销函数解析器(例如<code>#ifexist</code>)。参见[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit]。",
     "broken-file-category-desc": "当页面包含损坏文件连接(连接至嵌入的一个不存在文件)时分类被加入。",
-    "hidden-category-category-desc": "这是有<nowiki>__HIDDENCAT__</nowiki>的分类,该魔术字阻止分类默认在页面上的分类链接框中显示。",
+    "hidden-category-category-desc": "这是有<code><nowiki>__HIDDENCAT__</nowiki></code>的分类,该魔术字阻止分类默认在页面上的分类链接框中显示。",
     "trackingcategories-nodesc": "没有说明。",
     "trackingcategories-disabled": "分类被禁用",
     "mailnologin": "无电子邮件地址",
     "emailuser-title-notarget": "电邮联系",
     "emailpage": "电邮联系",
     "emailpagetext": "你可以使用下面的表格发送电子邮件信息至该{{GENDER:$1|用户}}。你在[[Special:Preferences|系统设置]]中输入的电子邮件地址将显示为邮件的“发件人”地址,所以该用户将可以直接回复你。",
-    "usermailererror": "Mail 对象返回错误:",
     "defemailsubject": "来自{{SITENAME}}用户“$1”的电子邮件",
     "usermaildisabled": "用户电子邮件停用",
     "usermaildisabledtext": "你不能发送电子邮件至本wiki的其他用户",
     "noemailtitle": "无电子邮件地址",
     "noemailtext": "该用户还没有指定一个有效的电子邮件地址。",
-    "nowikiemailtitle": "禁止电子邮件",
     "nowikiemailtext": "该用户已经选择不接收来自其他用户的电子邮件。",
     "emailnotarget": "收件人不存在或无效的用户名。",
     "emailtarget": "输入收件人的用户名",
     "watchmethod-list": "查看监视页中的最新修改",
     "watchlistcontains": "您的监视列表包含$1个页面。",
     "iteminvalidname": "页面'$1'错误,无效命名...",
-    "wlnote2": "以ä¸\8b是最近{{PLURAL:$1|<strong>$1</strong>小时}}的更改,截至$2 $3。",
+    "wlnote2": "ä¸\8bé\9d¢是最近{{PLURAL:$1|<strong>$1</strong>小时}}的更改,截至$2 $3。",
     "wlshowlast": "显示过去$1小时$2天$3",
     "watchlist-options": "监视列表选项",
     "watching": "正在监视...",
     "unwatching": "正在取消监视...",
     "watcherrortext": "更改“$1”的监视列表设置时出错。",
-    "enotif_mailer": "{{SITENAME}}通知发送器",
     "enotif_reset": "标记所有页面为已访问",
     "enotif_impersonal_salutation": "{{SITENAME}}用户",
     "enotif_subject_deleted": "{{SITENAME}}页面$1已被$2删除",
     "excontent": "内容:“$1”",
     "excontentauthor": "内容:“$1”(唯一贡献者为“[[Special:Contributions/$2|$2]]”)",
     "exbeforeblank": "被清空前的内容为:“$1”",
-    "exblank": "页面为空",
     "delete-confirm": "删除“$1”",
     "delete-legend": "删除",
     "historywarning": "警告:您将要删除的页面有约$1个{{PLURAL:$1|修订}}版本的历史:",
     "protect-summary-cascade": "联锁",
     "protect-expiring": "终止于$1(UTC)",
     "protect-expiring-local": "$1到期",
-    "protect-expiry-indefinite": "限期",
+    "protect-expiry-indefinite": "限期",
     "protect-cascade": "保护本页中包含的页面(连锁保护)",
     "protect-cantedit": "您无法更改这个页面的保护等级,因为您没有权限去编辑它。",
     "protect-othertime": "其它时间:",
     "ipblocklist-submit": "搜索",
     "ipblocklist-localblock": "本地封禁",
     "ipblocklist-otherblocks": "其他{{PLURAL:$1|封禁}}",
-    "infiniteblock": "限期",
+    "infiniteblock": "限期",
     "expiringblock": "$1 $2到期",
     "anononlyblock": "仅匿名用户",
     "noautoblockblock": "自动封禁停用",
     "export-download": "另存为文件",
     "export-templates": "包含模板",
     "export-pagelinks": "包含链接页面的搜索深度:",
-    "allmessages": "系统息",
+    "allmessages": "系统息",
     "allmessagesname": "名称",
     "allmessagesdefault": "默认信息文字",
     "allmessagescurrent": "当前信息文字",
     "importunknownsource": "未知的源导入类型",
     "importcantopen": "无法打开导入文件",
     "importbadinterwiki": "无效的跨wiki链接",
-    "importnotext": "空或没有文本",
     "importsuccess": "导入完成!",
-    "importhistoryconflict": "存在冲突的修订历史(可能在之前已经导入过此页面)",
     "importnosources": "跨Wiki导入源没有定义,同时不允许直接的历史上传。",
     "importnofile": "没有上传导入文件。",
     "importuploaderrorsize": "上传导入文件失败。文件大于可以允许的上传大小。",
index 3332efd..ddb0a4c 100644 (file)
     "accountcreatedtext": "[[{{ns:User}}:$1|$1]]([[{{ns:User talk}}:$1|討論]])的賬戶已經被建立。",
     "createaccount-title": "在{{SITENAME}}中建立新賬戶",
     "createaccount-text": "有人在{{SITENAME}}中利用您的電郵創建了一個名為 \"$2\" 的新賬戶($4),密碼是 \"$3\" 。您應該立即登入並更改密碼。\n\n如果該賬戶建立錯誤的話,您可以忽略此訊息。",
-    "usernamehasherror": "用戶名稱不可以包含切細字元",
     "login-throttled": "您已經嘗試多次的登入動作。\n請稍等$1後再試。",
     "login-abort-generic": "登入錯誤 - 中止",
     "loginlanguagelabel": "語言:$1",
     "prefs-skin": "外觀",
     "skin-preview": "預覽",
     "datedefault": "預設值",
-    "prefs-datetime": "日期和時間",
     "prefs-labs": "實驗中的功能",
     "prefs-user-pages": "使用者頁面",
     "prefs-personal": "使用者概況表",
     "upload-permitted": "准許的檔案類型:$1。",
     "upload-preferred": "建議的檔案類型:$1。",
     "upload-prohibited": "禁止的檔案類型:$1。",
-    "uploadlog": "上傳日誌",
     "uploadlogpage": "上傳日誌",
     "uploadlogpagetext": "以下是最近上載的檔案的一覽表。\n檢視[[Special:NewFiles|新檔案畫廊]]去看更富圖片的總覽。",
     "filename": "檔案名稱",
     "filereuploadsummary": "檔案變更:",
     "filestatus": "版權狀態:",
     "filesource": "來源:",
-    "uploadedfiles": "已上載檔案",
     "ignorewarning": "忽略警告並儲存檔案",
     "ignorewarnings": "忽略所有警告",
     "minlength1": "檔案名字必須至少有一個字母。",
     "overwroteimage": "已經上傳「[[$1]]」的新版本",
     "uploaddisabled": "上傳己停用。",
     "copyuploaddisabled": "通過網址上傳功能未開通。",
-    "uploadfromurl-queued": "上傳已被列入隊列。",
     "uploaddisabledtext": "檔案上傳不可用。",
     "php-uploaddisabledtext": "PHP 檔案上載已經停用。請檢查 file_uploads 設定。",
     "uploadscripted": "該檔案包含可能被網路瀏覽器錯誤解釋的 HTML 或腳本代碼。",
     "upload-misc-error": "未知的上傳錯誤",
     "upload-misc-error-text": "在上傳時發生未知的錯誤。請驗証使用了正確並可訪問的 URL,然後進行重試。如果問題仍然存在,請與[[Special:ListUsers/sysop|管理員]]聯繫。",
     "upload-too-many-redirects": "在網址中有太多重新定向",
-    "upload-unknown-size": "未知的大小",
     "upload-http-error": "已發生一個HTTP錯誤:$1",
     "upload-copy-upload-invalid-domain": "不能從該域名上載檔案副本。",
     "backend-fail-stream": "無法流傳送文件「$1」。",
     "img-auth-streaming": "串流「$1」中。",
     "img-auth-public": "img_auth.php的功能是由一個公共wiki中輸出檔案。\n這個wiki是已經設定做一個公共wiki。\n基於保安最佳化,img_auth.php已經停用。",
     "img-auth-noread": "用戶無權讀取「$1」。",
-    "img-auth-bad-query-string": "URL有一個無效的查詢字符串",
     "http-invalid-url": "無效的URL:$1",
     "http-invalid-scheme": "不支援含有「$1」的URL。",
     "http-request-error": "未知的錯誤令到HTTP請求失敗。",
     "filehist-dimensions": "維度",
     "filehist-filesize": "檔案大小",
     "filehist-comment": "註解",
-    "filehist-missing": "檔案遺失",
     "imagelinks": "檔案使用情況",
     "linkstoimage": "以下的$1個頁面連接到本檔案:",
     "linkstoimage-more": "超過$1個頁面連接到這個檔案。\n此處只列出首$1個連接到此檔案的頁面。\n您也可以查看[[Special:WhatLinksHere/$2|完整的清單]]。",
     "listgrouprights-removegroup-self": "在自己的賬戶中移除的{{PLURAL:$2|一個|多個}}群組: $1",
     "listgrouprights-addgroup-self-all": "在自己的賬戶中加入所有群組",
     "listgrouprights-removegroup-self-all": "在自己的賬戶中移除所有群組",
+    "listgrouprights-namespaceprotection-header": "命名空間限制",
+    "listgrouprights-namespaceprotection-namespace": "命名空間",
+    "listgrouprights-namespaceprotection-restrictedto": "允許用戶編輯權限",
     "trackingcategories": "跟蹤分類",
     "trackingcategories-summary": "當前頁面收錄由MediaWiki軟體自動加入的跟蹤分類。名稱可經由{{ns:8}}名字空間對於系統資訊修改之。",
     "trackingcategories-msg": "跟蹤分類",
     "trackingcategories-name": "資訊名",
     "trackingcategories-desc": "分類收錄準則",
-    "noindex-category-desc": "頁面中存在<nowiki>__NOINDEX__</nowiki>魔術字(並且於標記允許名字空間)並藉此未被機械人索引。",
-    "index-category-desc": "頁面中存在<nowiki>__INDEX__</nowiki>魔術字(並且於標記允許名字空間)並藉此被機械人錯誤索引。",
+    "noindex-category-desc": "頁面中存在<code><nowiki>__NOINDEX__</nowiki></code>魔術字(並且於標記允許名字空間)並藉此未被機械人索引。",
+    "index-category-desc": "頁面中存在<code><nowiki>__INDEX__</nowiki></code>魔術字(並且於標記允許名字空間)並藉此被機械人錯誤索引。",
     "post-expand-template-inclusion-category-desc": "展開所有模板后,頁面大小大於<code>$wgMaxArticleSize</code>,藉此某些模板未展開。",
     "post-expand-template-argument-category-desc": "展開模板參數(三隊花括弧內,例如<code>{{{Foo}}}</code>)後,頁面大於<code>$wgMaxArticleSize</code>。",
     "expensive-parserfunction-category-desc": "頁面包含太多高開銷函數解析器(例如<code>#ifexist</code>)。參見[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit]。",
     "broken-file-category-desc": "黨頁面包含受損檔案連接(連入被嵌入之不存在檔案)時。",
-    "hidden-category-category-desc": "此分類帶有<nowiki>__HIDDENCAT__</nowiki>,它預設防止於頁面分類連接盒中顯示。",
+    "hidden-category-category-desc": "此分類帶有<code><nowiki>__HIDDENCAT__</nowiki></code>,它預設防止於頁面分類連接盒中顯示。",
     "trackingcategories-nodesc": "並無說明。",
     "trackingcategories-disabled": "分類被禁用",
     "mailnologin": "無電郵地址",
     "emailuser-title-notarget": "E-mail用戶",
     "emailpage": "E-mail用戶",
     "emailpagetext": "您可以用下面的表格去寄一封電郵給這位{{Gender:$1|用戶}}。\n您在[[Special:Preferences|您的參數設置]]中所輸入的電子郵件地址將出現在郵件「發件人」一欄中,這樣該用戶就可以回覆您。",
-    "usermailererror": "目標郵件地址返回錯誤:",
     "defemailsubject": "{{SITENAME}}來自用戶「$1」的電子郵件",
     "usermaildisabled": "用戶電郵已停用",
     "usermaildisabledtext": "您不可以發送電郵到這個wiki上的其他用戶",
     "noemailtitle": "無e-mail地址",
     "noemailtext": "該用戶還沒有指定一個有效的e-mail地址。",
-    "nowikiemailtitle": "不容許電子郵件",
     "nowikiemailtext": "這位用戶選擇不接收其他用戶的電子郵件。",
     "emailnotarget": "收件人不存在或無效的用戶名。",
     "emailtarget": "輸入收件人用戶名",
     "unwatchthispage": "停止監視",
     "notanarticle": "不是頁面",
     "notvisiblerev": "上次由不同用戶所作的修訂版本已經刪除",
-    "watchlist-details": "不包含討論頁,您的監視列表上有 $1 個頁面。",
+    "watchlist-details": "不包含討論頁,您的監視列表上有$1個頁面。",
     "wlheader-enotif": "已經啟動電子郵件通知功能。",
     "wlheader-showupdated": "在{{GENDER:|你|妳|你}}上次檢視後有被修改過的頁面會顯示為'''粗體'''。",
     "watchmethod-recent": "檢查被監視頁面的最近編輯",
     "watching": "正在監視...",
     "unwatching": "正在停止監視...",
     "watcherrortext": "更改「$1」的監視列表設定時發生錯誤。",
-    "enotif_mailer": "{{SITENAME}}郵件通知器",
     "enotif_reset": "將所有頁面標為已閱讀",
     "enotif_impersonal_salutation": "{{SITENAME}}用戶",
     "enotif_subject_deleted": "{{SITENAME}}的「$1」頁面被$2刪除",
     "excontent": "內容為: 「$1」",
     "excontentauthor": "內容為:「$1」(而且唯一貢獻者為「[[Special:Contributions/$2|$2]]」)",
     "exbeforeblank": "被清空前的內容為:「$1」",
-    "exblank": "頁面為空",
     "delete-confirm": "刪除「$1」",
     "delete-legend": "刪除",
     "historywarning": "'''警告: '''您將要刪除的頁內含有約$1次{{PLURAL:$1|修訂}}的歷史:",
     "importunknownsource": "未知的源匯入類型",
     "importcantopen": "無法打開匯入檔案",
     "importbadinterwiki": "損壞的內部 wiki 連結",
-    "importnotext": "空或沒有文字",
     "importsuccess": "匯入完成!",
-    "importhistoryconflict": "存在衝突的修訂歷史(可能在之前已經匯入過此頁面)",
     "importnosources": "跨Wiki匯入源沒有定義,同時不允許直接的歷史上傳。",
     "importnofile": "沒有上傳匯入檔案。",
     "importuploaderrorsize": "上載匯入檔案失敗。檔案大於可以允許的上傳大小。",
index 437c47c..cd4ce7a 100644 (file)
@@ -80,7 +80,6 @@
     "currentevents": "Izehlakalo ezimanje",
     "currentevents-url": "Project:Izehlakalo ezimanje",
     "edithelp": "Usizo ngokuhlela",
-    "helppage": "Help:Isiqikili",
     "mainpage": "Ikhasi Elikhulu",
     "mainpage-description": "Ikhasi Elikhulu",
     "portal": "Umnyango wamgwamanda",
index 4e2b919..6109535 100644 (file)
@@ -129,7 +129,7 @@ $namespaceGenderAliases = array(
        NS_USER_TALK => array(
                'male' => 'نقاش_المستخدم',
                'female' => 'نقاش_المستخدمة'
-       ), 
+       ),
 );
 
 $magicWords = array(
index 2bb7599..8b0b7b1 100644 (file)
@@ -36,7 +36,7 @@ $digitTransformTable = array(
 
 $linkTrail = "/^([a-z\x{0B00}-\x{0B7F}]+)(.*)$/sDu";
 
-/** namespace translations from translatewiki.net 
+/** namespace translations from translatewiki.net
  * @author Shijualex
  * @author Psubhashish
  */
index 8a0eb9b..aba939d 100644 (file)
@@ -96,7 +96,7 @@ $namespaceAliases = array(
 
 $namespaceGenderAliases = array(
        NS_USER => array( 'male' => 'Użytkownik', 'female' => 'Użytkowniczka' ),
-       NS_USER_TALK => array( 'male' => 'Dyskusja_użytkownika', 'female' => 'Dyskusja_użytkowniczki' ), 
+       NS_USER_TALK => array( 'male' => 'Dyskusja_użytkownika', 'female' => 'Dyskusja_użytkowniczki' ),
 );
 
 $dateFormats = array(
diff --git a/languages/utils/CLDRPluralRuleConverter.php b/languages/utils/CLDRPluralRuleConverter.php
new file mode 100644 (file)
index 0000000..65d57e0
--- /dev/null
@@ -0,0 +1,313 @@
+<?php
+
+/**
+ * @author Niklas Laxström, Tim Starling
+ *
+ * @copyright Copyright © 2010-2012, Niklas Laxström
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ *
+ * @file
+ * @since 1.20
+ */
+
+/**
+ * Helper class for converting rules to reverse polish notation (RPN).
+ */
+class CLDRPluralRuleConverter {
+       /**
+        * The input string
+        *
+        * @var string
+        */
+       public $rule;
+
+       /**
+        * The current position
+        *
+        * @var int
+        */
+       public $pos;
+
+       /**
+        * The past-the-end position
+        *
+        * @var int
+        */
+       public $end;
+
+       /**
+        * The operator stack
+        *
+        * @var array
+        */
+       public $operators = array();
+
+       /**
+        * The operand stack
+        *
+        * @var array
+        */
+       public $operands = array();
+
+       /**
+        * Precedence levels. Note that there's no need to worry about associativity
+        * for the level 4 operators, since they return boolean and don't accept
+        * boolean inputs.
+        */
+       static $precedence = array(
+               'or' => 2,
+               'and' => 3,
+               'is' => 4,
+               'is-not' => 4,
+               'in' => 4,
+               'not-in' => 4,
+               'within' => 4,
+               'not-within' => 4,
+               'mod' => 5,
+               ',' => 6,
+               '..' => 7,
+       );
+
+       /**
+        * A character list defining whitespace, for use in strspn() etc.
+        */
+       const WHITESPACE_CLASS = " \t\r\n";
+
+       /**
+        * Same for digits. Note that the grammar given in UTS #35 doesn't allow
+        * negative numbers or decimal separators.
+        */
+       const NUMBER_CLASS = '0123456789';
+
+       /**
+        * A character list of symbolic operands.
+        */
+       const OPERAND_SYMBOLS = 'nivwft';
+
+       /**
+        * An anchored regular expression which matches a word at the current offset.
+        */
+       const WORD_REGEX = '/[a-zA-Z@]+/A';
+
+       /**
+        * Convert a rule to RPN. This is the only public entry point.
+        *
+        * @param string $rule The rule to convert
+        * @return string The RPN representation of the rule
+        */
+       public static function convert( $rule ) {
+               $parser = new self( $rule );
+               return $parser->doConvert();
+       }
+
+       /**
+        * Private constructor.
+        */
+       protected function __construct( $rule ) {
+               $this->rule = $rule;
+               $this->pos = 0;
+               $this->end = strlen( $rule );
+       }
+
+       /**
+        * Do the operation.
+        *
+        * @return string The RPN representation of the rule (e.g. "5 3 mod n is")
+        */
+       protected function doConvert() {
+               $expectOperator = true;
+
+               // Iterate through all tokens, saving the operators and operands to a
+               // stack per Dijkstra's shunting yard algorithm.
+               /** @var CLDRPluralRuleConverter_Operator $token */
+               while ( false !== ( $token = $this->nextToken() ) ) {
+                       // In this grammar, there are only binary operators, so every valid
+                       // rule string will alternate between operator and operand tokens.
+                       $expectOperator = !$expectOperator;
+
+                       if ( $token instanceof CLDRPluralRuleConverter_Expression ) {
+                               // Operand
+                               if ( $expectOperator ) {
+                                       $token->error( 'unexpected operand' );
+                               }
+                               $this->operands[] = $token;
+                               continue;
+                       } else {
+                               // Operator
+                               if ( !$expectOperator ) {
+                                       $token->error( 'unexpected operator' );
+                               }
+                               // Resolve higher precedence levels
+                               $lastOp = end( $this->operators );
+                               while ( $lastOp && self::$precedence[$token->name] <= self::$precedence[$lastOp->name] ) {
+                                       $this->doOperation( $lastOp, $this->operands );
+                                       array_pop( $this->operators );
+                                       $lastOp = end( $this->operators );
+                               }
+                               $this->operators[] = $token;
+                       }
+               }
+
+               // Finish off the stack
+               while ( $op = array_pop( $this->operators ) ) {
+                       $this->doOperation( $op, $this->operands );
+               }
+
+               // Make sure the result is sane. The first case is possible for an empty
+               // string input, the second should be unreachable.
+               if ( !count( $this->operands ) ) {
+                       $this->error( 'condition expected' );
+               } elseif ( count( $this->operands ) > 1 ) {
+                       $this->error( 'missing operator or too many operands' );
+               }
+
+               $value = $this->operands[0];
+               if ( $value->type !== 'boolean' ) {
+                       $this->error( 'the result must have a boolean type' );
+               }
+
+               return $this->operands[0]->rpn;
+       }
+
+       /**
+        * Fetch the next token from the input string.
+        *
+        * @return CLDRPluralRuleConverter_Fragment The next token
+        */
+       protected function nextToken() {
+               if ( $this->pos >= $this->end ) {
+                       return false;
+               }
+
+               // Whitespace
+               $length = strspn( $this->rule, self::WHITESPACE_CLASS, $this->pos );
+               $this->pos += $length;
+
+               if ( $this->pos >= $this->end ) {
+                       return false;
+               }
+
+               // Number
+               $length = strspn( $this->rule, self::NUMBER_CLASS, $this->pos );
+               if ( $length !== 0 ) {
+                       $token = $this->newNumber( substr( $this->rule, $this->pos, $length ), $this->pos );
+                       $this->pos += $length;
+                       return $token;
+               }
+
+               // Two-character operators
+               $op2 = substr( $this->rule, $this->pos, 2 );
+               if ( $op2 === '..' || $op2 === '!=' ) {
+                       $token = $this->newOperator( $op2, $this->pos, 2 );
+                       $this->pos += 2;
+                       return $token;
+               }
+
+               // Single-character operators
+               $op1 = $this->rule[$this->pos];
+               if ( $op1 === ',' || $op1 === '=' || $op1 === '%' ) {
+                       $token = $this->newOperator( $op1, $this->pos, 1 );
+                       $this->pos ++;
+                       return $token;
+               }
+
+               // Word
+               if ( !preg_match( self::WORD_REGEX, $this->rule, $m, 0, $this->pos ) ) {
+                       $this->error( 'unexpected character "' . $this->rule[$this->pos] . '"' );
+               }
+               $word1 = strtolower( $m[0] );
+               $word2 = '';
+               $nextTokenPos = $this->pos + strlen( $word1 );
+               if ( $word1 === 'not' || $word1 === 'is' ) {
+                       // Look ahead one word
+                       $nextTokenPos += strspn( $this->rule, self::WHITESPACE_CLASS, $nextTokenPos );
+                       if ( $nextTokenPos < $this->end
+                               && preg_match( self::WORD_REGEX, $this->rule, $m, 0, $nextTokenPos )
+                       ) {
+                               $word2 = strtolower( $m[0] );
+                               $nextTokenPos += strlen( $word2 );
+                       }
+               }
+
+               // Two-word operators like "is not" take precedence over single-word operators like "is"
+               if ( $word2 !== '' ) {
+                       $bothWords = "{$word1}-{$word2}";
+                       if ( isset( self::$precedence[$bothWords] ) ) {
+                               $token = $this->newOperator( $bothWords, $this->pos, $nextTokenPos - $this->pos );
+                               $this->pos = $nextTokenPos;
+                               return $token;
+                       }
+               }
+
+               // Single-word operators
+               if ( isset( self::$precedence[$word1] ) ) {
+                       $token = $this->newOperator( $word1, $this->pos, strlen( $word1 ) );
+                       $this->pos += strlen( $word1 );
+                       return $token;
+               }
+
+               // The single-character operand symbols
+               if ( strpos( self::OPERAND_SYMBOLS, $word1 ) !== false ) {
+                       $token = $this->newNumber( $word1, $this->pos );
+                       $this->pos ++;
+                       return $token;
+               }
+
+               // Samples
+               if ( $word1 === '@integer' || $word1 === '@decimal' ) {
+                       // Samples are like comments, they have no effect on rule evaluation.
+                       // They run from the first sample indicator to the end of the string.
+                       $this->pos = $this->end;
+                       return false;
+               }
+
+               $this->error( 'unrecognised word' );
+       }
+
+       /**
+        * For the binary operator $op, pop its operands off the stack and push
+        * a fragment with rpn and type members describing the result of that
+        * operation.
+        *
+        * @param CLDRPluralRuleConverter_Operator $op
+        */
+       protected function doOperation( $op ) {
+               if ( count( $this->operands ) < 2 ) {
+                       $op->error( 'missing operand' );
+               }
+               $right = array_pop( $this->operands );
+               $left = array_pop( $this->operands );
+               $result = $op->operate( $left, $right );
+               $this->operands[] = $result;
+       }
+
+       /**
+        * Create a numerical expression object
+        *
+        * @param string $text
+        * @param int $pos
+        * @return CLDRPluralRuleConverter_Expression The numerical expression
+        */
+       protected function newNumber( $text, $pos ) {
+               return new CLDRPluralRuleConverter_Expression( $this, 'number', $text, $pos, strlen( $text ) );
+       }
+
+       /**
+        * Create a binary operator
+        *
+        * @param string $type
+        * @param int $pos
+        * @param int $length
+        * @return CLDRPluralRuleConverter_Operator The operator
+        */
+       protected function newOperator( $type, $pos, $length ) {
+               return new CLDRPluralRuleConverter_Operator( $this, $type, $pos, $length );
+       }
+
+       /**
+        * Throw an error
+        */
+       protected function error( $message ) {
+               throw new CLDRPluralRuleError( $message );
+       }
+}
diff --git a/languages/utils/CLDRPluralRuleConverter_Expression.php b/languages/utils/CLDRPluralRuleConverter_Expression.php
new file mode 100644 (file)
index 0000000..8352e72
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+
+/**
+ * @author Niklas Laxström, Tim Starling
+ *
+ * @copyright Copyright © 2010-2012, Niklas Laxström
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ *
+ * @file
+ * @since 1.20
+ */
+
+/**
+ * Helper for CLDRPluralRuleConverter.
+ * An expression object, representing a region of the input string (for error
+ * messages), the RPN notation used to evaluate it, and the result type for
+ * validation.
+ */
+class CLDRPluralRuleConverter_Expression extends CLDRPluralRuleConverter_Fragment {
+       /** @var string */
+       public $type;
+
+       /** @var string */
+       public $rpn;
+
+       function __construct( $parser, $type, $rpn, $pos, $length ) {
+               parent::__construct( $parser, $pos, $length );
+               $this->type = $type;
+               $this->rpn = $rpn;
+       }
+
+       public function isType( $type ) {
+               if ( $type === 'range' && ( $this->type === 'range' || $this->type === 'number' ) ) {
+                       return true;
+               }
+               if ( $type === $this->type ) {
+                       return true;
+               }
+               return false;
+       }
+}
diff --git a/languages/utils/CLDRPluralRuleConverter_Fragment.php b/languages/utils/CLDRPluralRuleConverter_Fragment.php
new file mode 100644 (file)
index 0000000..88795a0
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * @author Niklas Laxström, Tim Starling
+ *
+ * @copyright Copyright © 2010-2012, Niklas Laxström
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ *
+ * @file
+ * @since 1.20
+ */
+
+/**
+ * Helper for CLDRPluralRuleConverter.
+ * The base class for operators and expressions, describing a region of the input string.
+ */
+class CLDRPluralRuleConverter_Fragment {
+       public $parser, $pos, $length, $end;
+
+       function __construct( $parser, $pos, $length ) {
+               $this->parser = $parser;
+               $this->pos = $pos;
+               $this->length = $length;
+               $this->end = $pos + $length;
+       }
+
+       public function error( $message ) {
+               $text = $this->getText();
+               throw new CLDRPluralRuleError( "$message at position " . ( $this->pos + 1 ) . ": \"$text\"" );
+       }
+
+       public function getText() {
+               return substr( $this->parser->rule, $this->pos, $this->length );
+       }
+}
diff --git a/languages/utils/CLDRPluralRuleConverter_Operator.php b/languages/utils/CLDRPluralRuleConverter_Operator.php
new file mode 100644 (file)
index 0000000..c42953c
--- /dev/null
@@ -0,0 +1,114 @@
+<?php
+
+/**
+ * @author Niklas Laxström, Tim Starling
+ *
+ * @copyright Copyright © 2010-2012, Niklas Laxström
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ *
+ * @file
+ * @since 1.20
+ */
+
+/**
+ * Helper for CLDRPluralRuleConverter.
+ * An operator object, representing a region of the input string (for error
+ * messages), and the binary operator at that location.
+ */
+class CLDRPluralRuleConverter_Operator extends CLDRPluralRuleConverter_Fragment {
+       /** @var string The name */
+       public $name;
+
+       /**
+        * Each op type has three characters: left operand type, right operand type and result type
+        *
+        *   b = boolean
+        *   n = number
+        *   r = range
+        *
+        * A number is a kind of range.
+        *
+        * @var array
+        */
+       static $opTypes = array(
+               'or' => 'bbb',
+               'and' => 'bbb',
+               'is' => 'nnb',
+               'is-not' => 'nnb',
+               'in' => 'nrb',
+               'not-in' => 'nrb',
+               'within' => 'nrb',
+               'not-within' => 'nrb',
+               'mod' => 'nnn',
+               ',' => 'rrr',
+               '..' => 'nnr',
+       );
+
+       /**
+        * Map converting from the abbrevation to the full form.
+        *
+        * @var array
+        */
+       static $typeSpecMap = array(
+               'b' => 'boolean',
+               'n' => 'number',
+               'r' => 'range',
+       );
+
+       /**
+        * Map for converting the new operators introduced in Rev 33 to the old forms
+        */
+       static $aliasMap = array(
+               '%' => 'mod',
+               '!=' => 'not-in',
+               '=' => 'in'
+       );
+
+       /**
+        * Initialize a new instance of a CLDRPluralRuleConverter_Operator object
+        *
+        * @param CLDRPluralRuleConverter $parser The parser
+        * @param string $name The operator name
+        * @param int $pos The length
+        * @param int $length
+        */
+       function __construct( $parser, $name, $pos, $length ) {
+               parent::__construct( $parser, $pos, $length );
+               if ( isset( self::$aliasMap[$name] ) ) {
+                       $name = self::$aliasMap[$name];
+               }
+               $this->name = $name;
+       }
+
+       /**
+        * Compute the operation
+        *
+        * @param CLDRPluralRuleConverter_Expression $left The left part of the expression
+        * @param CLDRPluralRuleConverter_Expression $right The right part of the expression
+        * @return CLDRPluralRuleConverter_Expression The result of the operation
+        */
+       public function operate( $left, $right ) {
+               $typeSpec = self::$opTypes[$this->name];
+
+               $leftType = self::$typeSpecMap[$typeSpec[0]];
+               $rightType = self::$typeSpecMap[$typeSpec[1]];
+               $resultType = self::$typeSpecMap[$typeSpec[2]];
+
+               $start = min( $this->pos, $left->pos, $right->pos );
+               $end = max( $this->end, $left->end, $right->end );
+               $length = $end - $start;
+
+               $newExpr = new CLDRPluralRuleConverter_Expression( $this->parser, $resultType,
+                       "{$left->rpn} {$right->rpn} {$this->name}",
+                       $start, $length );
+
+               if ( !$left->isType( $leftType ) ) {
+                       $newExpr->error( "invalid type for left operand: expected $leftType, got {$left->type}" );
+               }
+
+               if ( !$right->isType( $rightType ) ) {
+                       $newExpr->error( "invalid type for right operand: expected $rightType, got {$right->type}" );
+               }
+               return $newExpr;
+       }
+}
diff --git a/languages/utils/CLDRPluralRuleError.php b/languages/utils/CLDRPluralRuleError.php
new file mode 100644 (file)
index 0000000..2ca3410
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * @author Niklas Laxström, Tim Starling
+ *
+ * @copyright Copyright © 2010-2012, Niklas Laxström
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ *
+ * @file
+ * @since 1.20
+ */
+
+/**
+ * The exception class for all the classes in this file. This will be thrown
+ * back to the caller if there is any validation error.
+ */
+class CLDRPluralRuleError extends MWException {
+       function __construct( $message ) {
+               parent::__construct( 'CLDR plural rule error: ' . $message );
+       }
+}
\ No newline at end of file
index e420cb2..61ab947 100644 (file)
@@ -30,6 +30,7 @@
  * @file
  * @since 1.20
  */
+
 class CLDRPluralRuleEvaluator {
        /**
         * Evaluate a number against a set of plural rules. If a rule passes,
@@ -179,570 +180,3 @@ class CLDRPluralRuleEvaluator {
                }
        }
 }
-
-/**
- * Evaluator helper class representing a range list.
- */
-class CLDRPluralRuleEvaluator_Range {
-       /**
-        * The parts
-        *
-        * @var array
-        */
-       public $parts = array();
-
-       /**
-        * Initialize a new instance of CLDRPluralRuleEvaluator_Range
-        *
-        * @param int $start The start of the range
-        * @param int|bool $end The end of the range, or false if the range is not bounded.
-        */
-       function __construct( $start, $end = false ) {
-               if ( $end === false ) {
-                       $this->parts[] = $start;
-               } else {
-                       $this->parts[] = array( $start, $end );
-               }
-       }
-
-       /**
-        * Determine if the given number is inside the range.
-        *
-        * @param int $number The number to check
-        * @param bool $integerConstraint If true, also asserts the number is an integer; otherwise, number simply has to be inside the range.
-        * @return bool True if the number is inside the range; otherwise, false.
-        */
-       function isNumberIn( $number, $integerConstraint = true ) {
-               foreach ( $this->parts as $part ) {
-                       if ( is_array( $part ) ) {
-                               if ( ( !$integerConstraint || floor( $number ) === (float)$number )
-                                       && $number >= $part[0] && $number <= $part[1]
-                               ) {
-                                       return true;
-                               }
-                       } else {
-                               if ( $number == $part ) {
-                                       return true;
-                               }
-                       }
-               }
-               return false;
-       }
-
-       /**
-        * Readable alias for isNumberIn( $number, false ), and the implementation
-        * of the "within" operator.
-        *
-        * @param int $number The number to check
-        * @return bool True if the number is inside the range; otherwise, false.
-        */
-       function isNumberWithin( $number ) {
-               return $this->isNumberIn( $number, false );
-       }
-
-       /**
-        * Add another part to this range.
-        *
-        * @param CLDRPluralRuleEvaluator_Range|int $other The part to add, either
-        *   a range object itself or a single number.
-        */
-       function add( $other ) {
-               if ( $other instanceof self ) {
-                       $this->parts = array_merge( $this->parts, $other->parts );
-               } else {
-                       $this->parts[] = $other;
-               }
-       }
-
-       /**
-        * Returns the string representation of the rule evaluator range.
-        * The purpose of this method is to help debugging.
-        *
-        * @return string The string representation of the rule evaluator range
-        */
-       function __toString() {
-               $s = 'Range(';
-               foreach ( $this->parts as $i => $part ) {
-                       if ( $i ) {
-                               $s .= ', ';
-                       }
-                       if ( is_array( $part ) ) {
-                               $s .= $part[0] . '..' . $part[1];
-                       } else {
-                               $s .= $part;
-                       }
-               }
-               $s .= ')';
-               return $s;
-       }
-
-}
-
-/**
- * Helper class for converting rules to reverse polish notation (RPN).
- */
-class CLDRPluralRuleConverter {
-       /**
-        * The input string
-        *
-        * @var string
-        */
-       public $rule;
-
-       /**
-        * The current position
-        *
-        * @var int
-        */
-       public $pos;
-
-       /**
-        * The past-the-end position
-        *
-        * @var int
-        */
-       public $end;
-
-       /**
-        * The operator stack
-        *
-        * @var array
-        */
-       public $operators = array();
-
-       /**
-        * The operand stack
-        *
-        * @var array
-        */
-       public $operands = array();
-
-       /**
-        * Precedence levels. Note that there's no need to worry about associativity
-        * for the level 4 operators, since they return boolean and don't accept
-        * boolean inputs.
-        */
-       static $precedence = array(
-               'or' => 2,
-               'and' => 3,
-               'is' => 4,
-               'is-not' => 4,
-               'in' => 4,
-               'not-in' => 4,
-               'within' => 4,
-               'not-within' => 4,
-               'mod' => 5,
-               ',' => 6,
-               '..' => 7,
-       );
-
-       /**
-        * A character list defining whitespace, for use in strspn() etc.
-        */
-       const WHITESPACE_CLASS = " \t\r\n";
-
-       /**
-        * Same for digits. Note that the grammar given in UTS #35 doesn't allow
-        * negative numbers or decimal separators.
-        */
-       const NUMBER_CLASS = '0123456789';
-
-       /**
-        * A character list of symbolic operands.
-        */
-       const OPERAND_SYMBOLS = 'nivwft';
-
-       /**
-        * An anchored regular expression which matches a word at the current offset.
-        */
-       const WORD_REGEX = '/[a-zA-Z@]+/A';
-
-       /**
-        * Convert a rule to RPN. This is the only public entry point.
-        *
-        * @param string $rule The rule to convert
-        * @return string The RPN representation of the rule
-        */
-       public static function convert( $rule ) {
-               $parser = new self( $rule );
-               return $parser->doConvert();
-       }
-
-       /**
-        * Private constructor.
-        */
-       protected function __construct( $rule ) {
-               $this->rule = $rule;
-               $this->pos = 0;
-               $this->end = strlen( $rule );
-       }
-
-       /**
-        * Do the operation.
-        *
-        * @return string The RPN representation of the rule (e.g. "5 3 mod n is")
-        */
-       protected function doConvert() {
-               $expectOperator = true;
-
-               // Iterate through all tokens, saving the operators and operands to a
-               // stack per Dijkstra's shunting yard algorithm.
-               /** @var CLDRPluralRuleConverter_Operator $token */
-               while ( false !== ( $token = $this->nextToken() ) ) {
-                       // In this grammar, there are only binary operators, so every valid
-                       // rule string will alternate between operator and operand tokens.
-                       $expectOperator = !$expectOperator;
-
-                       if ( $token instanceof CLDRPluralRuleConverter_Expression ) {
-                               // Operand
-                               if ( $expectOperator ) {
-                                       $token->error( 'unexpected operand' );
-                               }
-                               $this->operands[] = $token;
-                               continue;
-                       } else {
-                               // Operator
-                               if ( !$expectOperator ) {
-                                       $token->error( 'unexpected operator' );
-                               }
-                               // Resolve higher precedence levels
-                               $lastOp = end( $this->operators );
-                               while ( $lastOp && self::$precedence[$token->name] <= self::$precedence[$lastOp->name] ) {
-                                       $this->doOperation( $lastOp, $this->operands );
-                                       array_pop( $this->operators );
-                                       $lastOp = end( $this->operators );
-                               }
-                               $this->operators[] = $token;
-                       }
-               }
-
-               // Finish off the stack
-               while ( $op = array_pop( $this->operators ) ) {
-                       $this->doOperation( $op, $this->operands );
-               }
-
-               // Make sure the result is sane. The first case is possible for an empty
-               // string input, the second should be unreachable.
-               if ( !count( $this->operands ) ) {
-                       $this->error( 'condition expected' );
-               } elseif ( count( $this->operands ) > 1 ) {
-                       $this->error( 'missing operator or too many operands' );
-               }
-
-               $value = $this->operands[0];
-               if ( $value->type !== 'boolean' ) {
-                       $this->error( 'the result must have a boolean type' );
-               }
-
-               return $this->operands[0]->rpn;
-       }
-
-       /**
-        * Fetch the next token from the input string.
-        *
-        * @return CLDRPluralRuleConverter_Fragment The next token
-        */
-       protected function nextToken() {
-               if ( $this->pos >= $this->end ) {
-                       return false;
-               }
-
-               // Whitespace
-               $length = strspn( $this->rule, self::WHITESPACE_CLASS, $this->pos );
-               $this->pos += $length;
-
-               if ( $this->pos >= $this->end ) {
-                       return false;
-               }
-
-               // Number
-               $length = strspn( $this->rule, self::NUMBER_CLASS, $this->pos );
-               if ( $length !== 0 ) {
-                       $token = $this->newNumber( substr( $this->rule, $this->pos, $length ), $this->pos );
-                       $this->pos += $length;
-                       return $token;
-               }
-
-               // Two-character operators
-               $op2 = substr( $this->rule, $this->pos, 2 );
-               if ( $op2 === '..' || $op2 === '!=' ) {
-                       $token = $this->newOperator( $op2, $this->pos, 2 );
-                       $this->pos += 2;
-                       return $token;
-               }
-
-               // Single-character operators
-               $op1 = $this->rule[$this->pos];
-               if ( $op1 === ',' || $op1 === '=' || $op1 === '%' ) {
-                       $token = $this->newOperator( $op1, $this->pos, 1 );
-                       $this->pos ++;
-                       return $token;
-               }
-
-               // Word
-               if ( !preg_match( self::WORD_REGEX, $this->rule, $m, 0, $this->pos ) ) {
-                       $this->error( 'unexpected character "' . $this->rule[$this->pos] . '"' );
-               }
-               $word1 = strtolower( $m[0] );
-               $word2 = '';
-               $nextTokenPos = $this->pos + strlen( $word1 );
-               if ( $word1 === 'not' || $word1 === 'is' ) {
-                       // Look ahead one word
-                       $nextTokenPos += strspn( $this->rule, self::WHITESPACE_CLASS, $nextTokenPos );
-                       if ( $nextTokenPos < $this->end
-                               && preg_match( self::WORD_REGEX, $this->rule, $m, 0, $nextTokenPos )
-                       ) {
-                               $word2 = strtolower( $m[0] );
-                               $nextTokenPos += strlen( $word2 );
-                       }
-               }
-
-               // Two-word operators like "is not" take precedence over single-word operators like "is"
-               if ( $word2 !== '' ) {
-                       $bothWords = "{$word1}-{$word2}";
-                       if ( isset( self::$precedence[$bothWords] ) ) {
-                               $token = $this->newOperator( $bothWords, $this->pos, $nextTokenPos - $this->pos );
-                               $this->pos = $nextTokenPos;
-                               return $token;
-                       }
-               }
-
-               // Single-word operators
-               if ( isset( self::$precedence[$word1] ) ) {
-                       $token = $this->newOperator( $word1, $this->pos, strlen( $word1 ) );
-                       $this->pos += strlen( $word1 );
-                       return $token;
-               }
-
-               // The single-character operand symbols
-               if ( strpos( self::OPERAND_SYMBOLS, $word1 ) !== false ) {
-                       $token = $this->newNumber( $word1, $this->pos );
-                       $this->pos ++;
-                       return $token;
-               }
-
-               // Samples
-               if ( $word1 === '@integer' || $word1 === '@decimal' ) {
-                       // Samples are like comments, they have no effect on rule evaluation.
-                       // They run from the first sample indicator to the end of the string.
-                       $this->pos = $this->end;
-                       return false;
-               }
-
-               $this->error( 'unrecognised word' );
-       }
-
-       /**
-        * For the binary operator $op, pop its operands off the stack and push
-        * a fragment with rpn and type members describing the result of that
-        * operation.
-        *
-        * @param CLDRPluralRuleConverter_Operator $op
-        */
-       protected function doOperation( $op ) {
-               if ( count( $this->operands ) < 2 ) {
-                       $op->error( 'missing operand' );
-               }
-               $right = array_pop( $this->operands );
-               $left = array_pop( $this->operands );
-               $result = $op->operate( $left, $right );
-               $this->operands[] = $result;
-       }
-
-       /**
-        * Create a numerical expression object
-        *
-        * @param string $text
-        * @param int $pos
-        * @return CLDRPluralRuleConverter_Expression The numerical expression
-        */
-       protected function newNumber( $text, $pos ) {
-               return new CLDRPluralRuleConverter_Expression( $this, 'number', $text, $pos, strlen( $text ) );
-       }
-
-       /**
-        * Create a binary operator
-        *
-        * @param string $type
-        * @param int $pos
-        * @param int $length
-        * @return CLDRPluralRuleConverter_Operator The operator
-        */
-       protected function newOperator( $type, $pos, $length ) {
-               return new CLDRPluralRuleConverter_Operator( $this, $type, $pos, $length );
-       }
-
-       /**
-        * Throw an error
-        */
-       protected function error( $message ) {
-               throw new CLDRPluralRuleError( $message );
-       }
-}
-
-/**
- * Helper for CLDRPluralRuleConverter.
- * The base class for operators and expressions, describing a region of the input string.
- */
-class CLDRPluralRuleConverter_Fragment {
-       public $parser, $pos, $length, $end;
-
-       function __construct( $parser, $pos, $length ) {
-               $this->parser = $parser;
-               $this->pos = $pos;
-               $this->length = $length;
-               $this->end = $pos + $length;
-       }
-
-       public function error( $message ) {
-               $text = $this->getText();
-               throw new CLDRPluralRuleError( "$message at position " . ( $this->pos + 1 ) . ": \"$text\"" );
-       }
-
-       public function getText() {
-               return substr( $this->parser->rule, $this->pos, $this->length );
-       }
-}
-
-/**
- * Helper for CLDRPluralRuleConverter.
- * An expression object, representing a region of the input string (for error
- * messages), the RPN notation used to evaluate it, and the result type for
- * validation.
- */
-class CLDRPluralRuleConverter_Expression extends CLDRPluralRuleConverter_Fragment {
-       /** @var string */
-       public $type;
-
-       /** @var string */
-       public $rpn;
-
-       function __construct( $parser, $type, $rpn, $pos, $length ) {
-               parent::__construct( $parser, $pos, $length );
-               $this->type = $type;
-               $this->rpn = $rpn;
-       }
-
-       public function isType( $type ) {
-               if ( $type === 'range' && ( $this->type === 'range' || $this->type === 'number' ) ) {
-                       return true;
-               }
-               if ( $type === $this->type ) {
-                       return true;
-               }
-               return false;
-       }
-}
-
-/**
- * Helper for CLDRPluralRuleConverter.
- * An operator object, representing a region of the input string (for error
- * messages), and the binary operator at that location.
- */
-class CLDRPluralRuleConverter_Operator extends CLDRPluralRuleConverter_Fragment {
-       /** @var string The name */
-       public $name;
-
-       /**
-        * Each op type has three characters: left operand type, right operand type and result type
-        *
-        *   b = boolean
-        *   n = number
-        *   r = range
-        *
-        * A number is a kind of range.
-        *
-        * @var array
-        */
-       static $opTypes = array(
-               'or' => 'bbb',
-               'and' => 'bbb',
-               'is' => 'nnb',
-               'is-not' => 'nnb',
-               'in' => 'nrb',
-               'not-in' => 'nrb',
-               'within' => 'nrb',
-               'not-within' => 'nrb',
-               'mod' => 'nnn',
-               ',' => 'rrr',
-               '..' => 'nnr',
-       );
-
-       /**
-        * Map converting from the abbrevation to the full form.
-        *
-        * @var array
-        */
-       static $typeSpecMap = array(
-               'b' => 'boolean',
-               'n' => 'number',
-               'r' => 'range',
-       );
-
-       /**
-        * Map for converting the new operators introduced in Rev 33 to the old forms
-        */
-       static $aliasMap = array(
-               '%' => 'mod',
-               '!=' => 'not-in',
-               '=' => 'in'
-       );
-
-       /**
-        * Initialize a new instance of a CLDRPluralRuleConverter_Operator object
-        *
-        * @param CLDRPluralRuleConverter $parser The parser
-        * @param string $name The operator name
-        * @param int $pos The length
-        * @param int $length
-        */
-       function __construct( $parser, $name, $pos, $length ) {
-               parent::__construct( $parser, $pos, $length );
-               if ( isset( self::$aliasMap[$name] ) ) {
-                       $name = self::$aliasMap[$name];
-               }
-               $this->name = $name;
-       }
-
-       /**
-        * Compute the operation
-        *
-        * @param CLDRPluralRuleConverter_Expression $left The left part of the expression
-        * @param CLDRPluralRuleConverter_Expression $right The right part of the expression
-        * @return CLDRPluralRuleConverter_Expression The result of the operation
-        */
-       public function operate( $left, $right ) {
-               $typeSpec = self::$opTypes[$this->name];
-
-               $leftType = self::$typeSpecMap[$typeSpec[0]];
-               $rightType = self::$typeSpecMap[$typeSpec[1]];
-               $resultType = self::$typeSpecMap[$typeSpec[2]];
-
-               $start = min( $this->pos, $left->pos, $right->pos );
-               $end = max( $this->end, $left->end, $right->end );
-               $length = $end - $start;
-
-               $newExpr = new CLDRPluralRuleConverter_Expression( $this->parser, $resultType,
-                       "{$left->rpn} {$right->rpn} {$this->name}",
-                       $start, $length );
-
-               if ( !$left->isType( $leftType ) ) {
-                       $newExpr->error( "invalid type for left operand: expected $leftType, got {$left->type}" );
-               }
-
-               if ( !$right->isType( $rightType ) ) {
-                       $newExpr->error( "invalid type for right operand: expected $rightType, got {$right->type}" );
-               }
-               return $newExpr;
-       }
-}
-
-/**
- * The exception class for all the classes in this file. This will be thrown
- * back to the caller if there is any validation error.
- */
-class CLDRPluralRuleError extends MWException {
-       function __construct( $message ) {
-               parent::__construct( 'CLDR plural rule error: ' . $message );
-       }
-}
diff --git a/languages/utils/CLDRPluralRuleEvaluator_Range.php b/languages/utils/CLDRPluralRuleEvaluator_Range.php
new file mode 100644 (file)
index 0000000..9732b8d
--- /dev/null
@@ -0,0 +1,108 @@
+<?php
+/**
+ * @author Niklas Laxström, Tim Starling
+ *
+ * @copyright Copyright © 2010-2012, Niklas Laxström
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ *
+ * @file
+ * @since 1.20
+ */
+
+/**
+ * Evaluator helper class representing a range list.
+ */
+class CLDRPluralRuleEvaluator_Range {
+       /**
+        * The parts
+        *
+        * @var array
+        */
+       public $parts = array();
+
+       /**
+        * Initialize a new instance of CLDRPluralRuleEvaluator_Range
+        *
+        * @param int $start The start of the range
+        * @param int|bool $end The end of the range, or false if the range is not bounded.
+        */
+       function __construct( $start, $end = false ) {
+               if ( $end === false ) {
+                       $this->parts[] = $start;
+               } else {
+                       $this->parts[] = array( $start, $end );
+               }
+       }
+
+       /**
+        * Determine if the given number is inside the range.
+        *
+        * @param int $number The number to check
+        * @param bool $integerConstraint If true, also asserts the number is an integer; otherwise, number simply has to be inside the range.
+        * @return bool True if the number is inside the range; otherwise, false.
+        */
+       function isNumberIn( $number, $integerConstraint = true ) {
+               foreach ( $this->parts as $part ) {
+                       if ( is_array( $part ) ) {
+                               if ( ( !$integerConstraint || floor( $number ) === (float)$number )
+                                       && $number >= $part[0] && $number <= $part[1]
+                               ) {
+                                       return true;
+                               }
+                       } else {
+                               if ( $number == $part ) {
+                                       return true;
+                               }
+                       }
+               }
+               return false;
+       }
+
+       /**
+        * Readable alias for isNumberIn( $number, false ), and the implementation
+        * of the "within" operator.
+        *
+        * @param int $number The number to check
+        * @return bool True if the number is inside the range; otherwise, false.
+        */
+       function isNumberWithin( $number ) {
+               return $this->isNumberIn( $number, false );
+       }
+
+       /**
+        * Add another part to this range.
+        *
+        * @param CLDRPluralRuleEvaluator_Range|int $other The part to add, either
+        *   a range object itself or a single number.
+        */
+       function add( $other ) {
+               if ( $other instanceof self ) {
+                       $this->parts = array_merge( $this->parts, $other->parts );
+               } else {
+                       $this->parts[] = $other;
+               }
+       }
+
+       /**
+        * Returns the string representation of the rule evaluator range.
+        * The purpose of this method is to help debugging.
+        *
+        * @return string The string representation of the rule evaluator range
+        */
+       function __toString() {
+               $s = 'Range(';
+               foreach ( $this->parts as $i => $part ) {
+                       if ( $i ) {
+                               $s .= ', ';
+                       }
+                       if ( is_array( $part ) ) {
+                               $s .= $part[0] . '..' . $part[1];
+                       } else {
+                               $s .= $part;
+                       }
+               }
+               $s .= ')';
+               return $s;
+       }
+
+}
diff --git a/maintenance/jsduck/CustomTags.rb b/maintenance/jsduck/CustomTags.rb
new file mode 100644 (file)
index 0000000..2aff988
--- /dev/null
@@ -0,0 +1,116 @@
+# Custom tags for JSDuck 5.x
+# See also:
+# - https://github.com/senchalabs/jsduck/wiki/Tags
+# - https://github.com/senchalabs/jsduck/wiki/Custom-tags
+# - https://github.com/senchalabs/jsduck/wiki/Custom-tags/7f5c32e568eab9edc8e3365e935bcb836cb11f1d
+require 'jsduck/tag/tag'
+
+class CommonTag < JsDuck::Tag::Tag
+  def initialize
+    @html_position = POS_DOC + 0.1
+    @repeatable = true
+  end
+
+  def parse_doc(scanner, position)
+    if @multiline
+      return { :tagname => @tagname, :doc => :multiline }
+    else
+      text = scanner.match(/.*$/)
+      return { :tagname => @tagname, :doc => text }
+    end
+  end
+
+  def process_doc(context, tags, position)
+    context[@tagname] = tags
+  end
+
+  def format(context, formatter)
+    context[@tagname].each do |tag|
+      tag[:doc] = formatter.format(tag[:doc])
+    end
+  end
+end
+
+class SourceTag < CommonTag
+  def initialize
+    @tagname = :source
+    @pattern = "source"
+    super
+  end
+
+  def to_html(context)
+    context[@tagname].map do |source|
+      <<-EOHTML
+        <h3 class='pa'>Source</h3>
+        #{source[:doc]}
+      EOHTML
+    end.join
+  end
+end
+
+class SeeTag < CommonTag
+  def initialize
+    @tagname = :see
+    @pattern = "see"
+    super
+  end
+
+  def format(context, formatter)
+    position = context[:files][0]
+    context[@tagname].each do |tag|
+      tag[:doc] = '<li>' + render_long_see(tag[:doc], formatter, position) + '</li>'
+    end
+  end
+
+  def to_html(context)
+    <<-EOHTML
+      <h3 class="pa">Related</h3>
+      <ul>
+      #{ context[@tagname].map {|tag| tag[:doc] }.join("\n") }
+      </ul>
+    EOHTML
+  end
+
+  def render_long_see(tag, formatter, position)
+    if tag =~ /\A([^\s]+)( .*)?\Z/m
+      name = $1
+      doc = $2 ? ': ' + $2 : ''
+      return formatter.format("{@link #{name}} #{doc}")
+    else
+      JsDuck::Logger.warn(nil, 'Unexpected @see argument: "'+tag+'"', position)
+      return tag
+    end
+  end
+end
+
+class ContextTag < CommonTag
+  def initialize
+    @tagname = :context
+    @pattern = 'context'
+    super
+  end
+
+  def format(context, formatter)
+    position = context[:files][0]
+    context[@tagname].each do |tag|
+      tag[:doc] = render_long_context(tag[:doc], formatter, position)
+    end
+  end
+
+  def to_html(context)
+    <<-EOHTML
+      <h3 class="pa">Context</h3>
+      #{ context[@tagname].last[:doc] }
+    EOHTML
+  end
+
+  def render_long_context(tag, formatter, position)
+    if tag =~ /\A([^\s]+)/m
+      name = $1
+      return formatter.format("`context` : {@link #{name}}")
+    else
+      JsDuck::Logger.warn(nil, 'Unexpected @context argument: "'+tag+'"', position)
+      return tag
+    end
+  end
+end
index 0635769..493815e 100644 (file)
@@ -2,9 +2,7 @@
        "--title": "MediaWiki core - Documentation",
        "--footer": "Documentation for MediaWiki core. Generated on {DATE} by {JSDUCK} {VERSION}.",
        "--categories": "./categories.json",
-       "--meta-tags": "./MetaTags.rb",
        "--eg-iframe": "./eg-iframe.html",
-       "--warnings": ["-no_doc"],
        "--builtin-classes": true,
        "--output": "../../docs/js",
        "--external": "HTMLElement,HTMLDocument,Window",
index 4254887..62d1bba 100755 (executable)
@@ -11,10 +11,20 @@ then
        exit 1
 fi
 
+# Support jsduck 4.x and 5.x
+JSDUCK_VERSION="$(jsduck --version | sed -e 's/[.].*//')"
+if [  "$JSDUCK_VERSION" = "JSDuck 4" ]; then
+       JSDUCK_VERSION_OPT="--meta-tags ./maintenance/jsduck/MetaTags.rb --warnings=-no_doc"
+else
+       JSDUCK_VERSION_OPT="--tags ./maintenance/jsduck/CustomTags.rb --warnings=-nodoc(class,public)"
+fi
+
 MWCORE_DIR=$(cd $(dirname $0)/..; pwd)
 
 jsduck \
 --config=$MWCORE_DIR/maintenance/jsduck/config.json \
---footer="Documentation for MediaWiki core ($JSDUCK_MWVERSION). Generated on {DATE} by {JSDUCK} {VERSION}." \
+$JSDUCK_VERSION_OPT \
+--footer="Documentation for branch ($JSDUCK_MWVERSION) on {DATE} by {JSDUCK} {VERSION}." \
+--processes 0 --warnings-exit-nonzero \
 && echo 'JSDuck execution finished.' \
 && ln -s ../../resources $MWCORE_DIR/docs/js/modules
index 00251ef..642897c 100644 (file)
@@ -373,7 +373,6 @@ return array(
                                'resources/src/jquery.ui-themes/vector/jquery.ui.theme.css',
                        ),
                ),
-               'dependencies' => 'jquery',
                'group' => 'jquery.ui',
        ),
        'jquery.ui.widget' => array(
@@ -572,7 +571,6 @@ return array(
        // Effects
        'jquery.effects.core' => array(
                'scripts' => 'resources/lib/jquery.effects/jquery.effects.core.js',
-               'dependencies' => 'jquery',
                'group' => 'jquery.ui',
        ),
        'jquery.effects.blind' => array(
index d7fc0c8..93026e3 100644 (file)
@@ -1,11 +1,12 @@
-/**
- * QUnit v1.11.0 - A JavaScript Unit Testing Framework
+/*!
+ * QUnit 1.14.0
+ * http://qunitjs.com/
  *
- * http://qunitjs.com
- *
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license.
+ * Copyright 2013 jQuery Foundation and other contributors
+ * Released under the MIT license
  * http://jquery.org/license
+ *
+ * Date: 2014-01-31T16:40Z
  */
 
 /** Font Family and Sizes */
 #qunit-header {
        padding: 0.5em 0 0.5em 1em;
 
-       color: #8699a4;
-       background-color: #0d3349;
+       color: #8699A4;
+       background-color: #0D3349;
 
        font-size: 1.5em;
        line-height: 1em;
-       font-weight: normal;
+       font-weight: 400;
 
        border-radius: 5px 5px 0 0;
-       -moz-border-radius: 5px 5px 0 0;
-       -webkit-border-top-right-radius: 5px;
-       -webkit-border-top-left-radius: 5px;
 }
 
 #qunit-header a {
        text-decoration: none;
-       color: #c2ccd1;
+       color: #C2CCD1;
 }
 
 #qunit-header a:hover,
 #qunit-header a:focus {
-       color: #fff;
+       color: #FFF;
 }
 
 #qunit-testrunner-toolbar label {
        display: inline-block;
-       padding: 0 .5em 0 .1em;
+       padding: 0 0.5em 0 0.1em;
 }
 
 #qunit-banner {
 #qunit-testrunner-toolbar {
        padding: 0.5em 0 0.5em 2em;
        color: #5E740B;
-       background-color: #eee;
+       background-color: #EEE;
        overflow: hidden;
 }
 
 #qunit-userAgent {
        padding: 0.5em 0 0.5em 2.5em;
-       background-color: #2b81af;
-       color: #fff;
+       background-color: #2B81AF;
+       color: #FFF;
        text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
 }
 
@@ -89,7 +87,7 @@
 
 #qunit-tests li {
        padding: 0.4em 0.5em 0.4em 2.5em;
-       border-bottom: 1px solid #fff;
+       border-bottom: 1px solid #FFF;
        list-style-position: inside;
 }
 
 
 #qunit-tests li a {
        padding: 0.5em;
-       color: #c2ccd1;
+       color: #C2CCD1;
        text-decoration: none;
 }
 #qunit-tests li a:hover,
        margin-top: 0.5em;
        padding: 0.5em;
 
-       background-color: #fff;
+       background-color: #FFF;
 
        border-radius: 5px;
-       -moz-border-radius: 5px;
-       -webkit-border-radius: 5px;
 }
 
 .qunit-collapsed {
 
 #qunit-tests table {
        border-collapse: collapse;
-       margin-top: .2em;
+       margin-top: 0.2em;
 }
 
 #qunit-tests th {
        text-align: right;
        vertical-align: top;
-       padding: 0 .5em 0 0;
+       padding: 0 0.5em 0 0;
 }
 
 #qunit-tests td {
 }
 
 #qunit-tests del {
-       background-color: #e0f2be;
-       color: #374e0c;
+       background-color: #E0F2BE;
+       color: #374E0C;
        text-decoration: none;
 }
 
 #qunit-tests ins {
-       background-color: #ffcaca;
+       background-color: #FFCACA;
        color: #500;
        text-decoration: none;
 }
 
 /*** Test Counts */
 
-#qunit-tests b.counts                       { color: black; }
+#qunit-tests b.counts                       { color: #000; }
 #qunit-tests b.passed                       { color: #5E740B; }
 #qunit-tests b.failed                       { color: #710909; }
 
 #qunit-tests li li {
        padding: 5px;
-       background-color: #fff;
+       background-color: #FFF;
        border-bottom: none;
        list-style-position: inside;
 }
 /*** Passing Styles */
 
 #qunit-tests li li.pass {
-       color: #3c510c;
-       background-color: #fff;
+       color: #3C510C;
+       background-color: #FFF;
        border-left: 10px solid #C6E746;
 }
 
 #qunit-tests .pass .test-name               { color: #366097; }
 
 #qunit-tests .pass .test-actual,
-#qunit-tests .pass .test-expected           { color: #999999; }
+#qunit-tests .pass .test-expected           { color: #999; }
 
 #qunit-banner.qunit-pass                    { background-color: #C6E746; }
 
 
 #qunit-tests li li.fail {
        color: #710909;
-       background-color: #fff;
+       background-color: #FFF;
        border-left: 10px solid #EE5757;
        white-space: pre;
 }
 
 #qunit-tests > li:last-child {
        border-radius: 0 0 5px 5px;
-       -moz-border-radius: 0 0 5px 5px;
-       -webkit-border-bottom-right-radius: 5px;
-       -webkit-border-bottom-left-radius: 5px;
 }
 
-#qunit-tests .fail                          { color: #000000; background-color: #EE5757; }
+#qunit-tests .fail                          { color: #000; background-color: #EE5757; }
 #qunit-tests .fail .test-name,
-#qunit-tests .fail .module-name             { color: #000000; }
+#qunit-tests .fail .module-name             { color: #000; }
 
 #qunit-tests .fail .test-actual             { color: #EE5757; }
-#qunit-tests .fail .test-expected           { color: green;   }
+#qunit-tests .fail .test-expected           { color: #008000; }
 
 #qunit-banner.qunit-fail                    { background-color: #EE5757; }
 
 #qunit-testresult {
        padding: 0.5em 0.5em 0.5em 2.5em;
 
-       color: #2b81af;
+       color: #2B81AF;
        background-color: #D2E0E6;
 
-       border-bottom: 1px solid white;
+       border-bottom: 1px solid #FFF;
 }
 #qunit-testresult .module-name {
-       font-weight: bold;
+       font-weight: 700;
 }
 
 /** Fixture */
index 302545f..0e279fd 100644 (file)
@@ -1,11 +1,12 @@
-/**
- * QUnit v1.11.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
+/*!
+ * QUnit 1.14.0
+ * http://qunitjs.com/
  *
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license.
+ * Copyright 2013 jQuery Foundation and other contributors
+ * Released under the MIT license
  * http://jquery.org/license
+ *
+ * Date: 2014-01-31T16:40Z
  */
 
 (function( window ) {
@@ -20,7 +21,10 @@ var QUnit,
        hasOwn = Object.prototype.hasOwnProperty,
        // Keep a local reference to Date (GH-283)
        Date = window.Date,
+       setTimeout = window.setTimeout,
+       clearTimeout = window.clearTimeout,
        defined = {
+               document: typeof window.document !== "undefined",
                setTimeout: typeof window.setTimeout !== "undefined",
                sessionStorage: (function() {
                        var x = "qunit-test-string";
@@ -83,1485 +87,1601 @@ var QUnit,
                return vals;
        };
 
-function Test( settings ) {
-       extend( this, settings );
-       this.assertions = [];
-       this.testNumber = ++Test.count;
-}
 
-Test.count = 0;
+// Root QUnit object.
+// `QUnit` initialized at top of scope
+QUnit = {
 
-Test.prototype = {
-       init: function() {
-               var a, b, li,
-                       tests = id( "qunit-tests" );
+       // call on start of module test to prepend name to all tests
+       module: function( name, testEnvironment ) {
+               config.currentModule = name;
+               config.currentModuleTestEnvironment = testEnvironment;
+               config.modules[name] = true;
+       },
 
-               if ( tests ) {
-                       b = document.createElement( "strong" );
-                       b.innerHTML = this.nameHtml;
+       asyncTest: function( testName, expected, callback ) {
+               if ( arguments.length === 2 ) {
+                       callback = expected;
+                       expected = null;
+               }
 
-                       // `a` initialized at top of scope
-                       a = document.createElement( "a" );
-                       a.innerHTML = "Rerun";
-                       a.href = QUnit.url({ testNumber: this.testNumber });
+               QUnit.test( testName, expected, callback, true );
+       },
 
-                       li = document.createElement( "li" );
-                       li.appendChild( b );
-                       li.appendChild( a );
-                       li.className = "running";
-                       li.id = this.id = "qunit-test-output" + testId++;
+       test: function( testName, expected, callback, async ) {
+               var test,
+                       nameHtml = "<span class='test-name'>" + escapeText( testName ) + "</span>";
 
-                       tests.appendChild( li );
-               }
-       },
-       setup: function() {
-               if ( this.module !== config.previousModule ) {
-                       if ( config.previousModule ) {
-                               runLoggingCallbacks( "moduleDone", QUnit, {
-                                       name: config.previousModule,
-                                       failed: config.moduleStats.bad,
-                                       passed: config.moduleStats.all - config.moduleStats.bad,
-                                       total: config.moduleStats.all
-                               });
-                       }
-                       config.previousModule = this.module;
-                       config.moduleStats = { all: 0, bad: 0 };
-                       runLoggingCallbacks( "moduleStart", QUnit, {
-                               name: this.module
-                       });
-               } else if ( config.autorun ) {
-                       runLoggingCallbacks( "moduleStart", QUnit, {
-                               name: this.module
-                       });
+               if ( arguments.length === 2 ) {
+                       callback = expected;
+                       expected = null;
                }
 
-               config.current = this;
-
-               this.testEnvironment = extend({
-                       setup: function() {},
-                       teardown: function() {}
-               }, this.moduleTestEnvironment );
+               if ( config.currentModule ) {
+                       nameHtml = "<span class='module-name'>" + escapeText( config.currentModule ) + "</span>: " + nameHtml;
+               }
 
-               this.started = +new Date();
-               runLoggingCallbacks( "testStart", QUnit, {
-                       name: this.testName,
-                       module: this.module
+               test = new Test({
+                       nameHtml: nameHtml,
+                       testName: testName,
+                       expected: expected,
+                       async: async,
+                       callback: callback,
+                       module: config.currentModule,
+                       moduleTestEnvironment: config.currentModuleTestEnvironment,
+                       stack: sourceFromStacktrace( 2 )
                });
 
-               // allow utility functions to access the current test environment
-               // TODO why??
-               QUnit.current_testEnvironment = this.testEnvironment;
-
-               if ( !config.pollution ) {
-                       saveGlobal();
-               }
-               if ( config.notrycatch ) {
-                       this.testEnvironment.setup.call( this.testEnvironment );
+               if ( !validTest( test ) ) {
                        return;
                }
-               try {
-                       this.testEnvironment.setup.call( this.testEnvironment );
-               } catch( e ) {
-                       QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
-               }
-       },
-       run: function() {
-               config.current = this;
-
-               var running = id( "qunit-testresult" );
 
-               if ( running ) {
-                       running.innerHTML = "Running: <br/>" + this.nameHtml;
-               }
+               test.queue();
+       },
 
-               if ( this.async ) {
-                       QUnit.stop();
+       // Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through.
+       expect: function( asserts ) {
+               if (arguments.length === 1) {
+                       config.current.expected = asserts;
+               } else {
+                       return config.current.expected;
                }
+       },
 
-               this.callbackStarted = +new Date();
-
-               if ( config.notrycatch ) {
-                       this.callback.call( this.testEnvironment, QUnit.assert );
-                       this.callbackRuntime = +new Date() - this.callbackStarted;
+       start: function( count ) {
+               // QUnit hasn't been initialized yet.
+               // Note: RequireJS (et al) may delay onLoad
+               if ( config.semaphore === undefined ) {
+                       QUnit.begin(function() {
+                               // This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first
+                               setTimeout(function() {
+                                       QUnit.start( count );
+                               });
+                       });
                        return;
                }
 
-               try {
-                       this.callback.call( this.testEnvironment, QUnit.assert );
-                       this.callbackRuntime = +new Date() - this.callbackStarted;
-               } catch( e ) {
-                       this.callbackRuntime = +new Date() - this.callbackStarted;
-
-                       QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) );
-                       // else next test will carry the responsibility
-                       saveGlobal();
-
-                       // Restart the tests if they're blocking
-                       if ( config.blocking ) {
-                               QUnit.start();
-                       }
+               config.semaphore -= count || 1;
+               // don't start until equal number of stop-calls
+               if ( config.semaphore > 0 ) {
+                       return;
                }
-       },
-       teardown: function() {
-               config.current = this;
-               if ( config.notrycatch ) {
-                       if ( typeof this.callbackRuntime === "undefined" ) {
-                               this.callbackRuntime = +new Date() - this.callbackStarted;
-                       }
-                       this.testEnvironment.teardown.call( this.testEnvironment );
+               // ignore if start is called more often then stop
+               if ( config.semaphore < 0 ) {
+                       config.semaphore = 0;
+                       QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) );
                        return;
+               }
+               // A slight delay, to avoid any current callbacks
+               if ( defined.setTimeout ) {
+                       setTimeout(function() {
+                               if ( config.semaphore > 0 ) {
+                                       return;
+                               }
+                               if ( config.timeout ) {
+                                       clearTimeout( config.timeout );
+                               }
+
+                               config.blocking = false;
+                               process( true );
+                       }, 13);
                } else {
-                       try {
-                               this.testEnvironment.teardown.call( this.testEnvironment );
-                       } catch( e ) {
-                               QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
-                       }
+                       config.blocking = false;
+                       process( true );
                }
-               checkPollution();
        },
-       finish: function() {
-               config.current = this;
-               if ( config.requireExpects && this.expected === null ) {
-                       QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
-               } else if ( this.expected !== null && this.expected !== this.assertions.length ) {
-                       QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
-               } else if ( this.expected === null && !this.assertions.length ) {
-                       QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
+
+       stop: function( count ) {
+               config.semaphore += count || 1;
+               config.blocking = true;
+
+               if ( config.testTimeout && defined.setTimeout ) {
+                       clearTimeout( config.timeout );
+                       config.timeout = setTimeout(function() {
+                               QUnit.ok( false, "Test timed out" );
+                               config.semaphore = 1;
+                               QUnit.start();
+                       }, config.testTimeout );
                }
+       }
+};
 
-               var i, assertion, a, b, time, li, ol,
-                       test = this,
-                       good = 0,
-                       bad = 0,
-                       tests = id( "qunit-tests" );
+// We use the prototype to distinguish between properties that should
+// be exposed as globals (and in exports) and those that shouldn't
+(function() {
+       function F() {}
+       F.prototype = QUnit;
+       QUnit = new F();
+       // Make F QUnit's constructor so that we can add to the prototype later
+       QUnit.constructor = F;
+}());
 
-               this.runtime = +new Date() - this.started;
-               config.stats.all += this.assertions.length;
-               config.moduleStats.all += this.assertions.length;
+/**
+ * Config object: Maintain internal state
+ * Later exposed as QUnit.config
+ * `config` initialized at top of scope
+ */
+config = {
+       // The queue of tests to run
+       queue: [],
 
-               if ( tests ) {
-                       ol = document.createElement( "ol" );
-                       ol.className = "qunit-assert-list";
+       // block until document ready
+       blocking: true,
 
-                       for ( i = 0; i < this.assertions.length; i++ ) {
-                               assertion = this.assertions[i];
+       // when enabled, show only failing tests
+       // gets persisted through sessionStorage and can be changed in UI via checkbox
+       hidepassed: false,
 
-                               li = document.createElement( "li" );
-                               li.className = assertion.result ? "pass" : "fail";
-                               li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
-                               ol.appendChild( li );
+       // by default, run previously failed tests first
+       // very useful in combination with "Hide passed tests" checked
+       reorder: true,
 
-                               if ( assertion.result ) {
-                                       good++;
-                               } else {
-                                       bad++;
-                                       config.stats.bad++;
-                                       config.moduleStats.bad++;
-                               }
-                       }
+       // by default, modify document.title when suite is done
+       altertitle: true,
 
-                       // store result when possible
-                       if ( QUnit.config.reorder && defined.sessionStorage ) {
-                               if ( bad ) {
-                                       sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
-                               } else {
-                                       sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
-                               }
-                       }
+       // by default, scroll to top of the page when suite is done
+       scrolltop: true,
 
-                       if ( bad === 0 ) {
-                               addClass( ol, "qunit-collapsed" );
-                       }
+       // when enabled, all tests must call expect()
+       requireExpects: false,
 
-                       // `b` initialized at top of scope
-                       b = document.createElement( "strong" );
-                       b.innerHTML = this.nameHtml + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>";
+       // add checkboxes that are persisted in the query-string
+       // when enabled, the id is set to `true` as a `QUnit.config` property
+       urlConfig: [
+               {
+                       id: "noglobals",
+                       label: "Check for Globals",
+                       tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."
+               },
+               {
+                       id: "notrycatch",
+                       label: "No try-catch",
+                       tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."
+               }
+       ],
 
-                       addEvent(b, "click", function() {
-                               var next = b.parentNode.lastChild,
-                                       collapsed = hasClass( next, "qunit-collapsed" );
-                               ( collapsed ? removeClass : addClass )( next, "qunit-collapsed" );
-                       });
+       // Set of all modules.
+       modules: {},
 
-                       addEvent(b, "dblclick", function( e ) {
-                               var target = e && e.target ? e.target : window.event.srcElement;
-                               if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) {
-                                       target = target.parentNode;
-                               }
-                               if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
-                                       window.location = QUnit.url({ testNumber: test.testNumber });
-                               }
-                       });
+       // logging callback queues
+       begin: [],
+       done: [],
+       log: [],
+       testStart: [],
+       testDone: [],
+       moduleStart: [],
+       moduleDone: []
+};
 
-                       // `time` initialized at top of scope
-                       time = document.createElement( "span" );
-                       time.className = "runtime";
-                       time.innerHTML = this.runtime + " ms";
+// Initialize more QUnit.config and QUnit.urlParams
+(function() {
+       var i, current,
+               location = window.location || { search: "", protocol: "file:" },
+               params = location.search.slice( 1 ).split( "&" ),
+               length = params.length,
+               urlParams = {};
 
-                       // `li` initialized at top of scope
-                       li = id( this.id );
-                       li.className = bad ? "fail" : "pass";
-                       li.removeChild( li.firstChild );
-                       a = li.firstChild;
-                       li.appendChild( b );
-                       li.appendChild( a );
-                       li.appendChild( time );
-                       li.appendChild( ol );
+       if ( params[ 0 ] ) {
+               for ( i = 0; i < length; i++ ) {
+                       current = params[ i ].split( "=" );
+                       current[ 0 ] = decodeURIComponent( current[ 0 ] );
 
-               } else {
-                       for ( i = 0; i < this.assertions.length; i++ ) {
-                               if ( !this.assertions[i].result ) {
-                                       bad++;
-                                       config.stats.bad++;
-                                       config.moduleStats.bad++;
-                               }
+                       // allow just a key to turn on a flag, e.g., test.html?noglobals
+                       current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
+                       if ( urlParams[ current[ 0 ] ] ) {
+                               urlParams[ current[ 0 ] ] = [].concat( urlParams[ current[ 0 ] ], current[ 1 ] );
+                       } else {
+                               urlParams[ current[ 0 ] ] = current[ 1 ];
                        }
                }
+       }
 
-               runLoggingCallbacks( "testDone", QUnit, {
-                       name: this.testName,
-                       module: this.module,
-                       failed: bad,
-                       passed: this.assertions.length - bad,
-                       total: this.assertions.length,
-                       duration: this.runtime
-               });
-
-               QUnit.reset();
-
-               config.current = undefined;
-       },
+       QUnit.urlParams = urlParams;
 
-       queue: function() {
-               var bad,
-                       test = this;
+       // String search anywhere in moduleName+testName
+       config.filter = urlParams.filter;
 
-               synchronize(function() {
-                       test.init();
-               });
-               function run() {
-                       // each of these can by async
-                       synchronize(function() {
-                               test.setup();
-                       });
-                       synchronize(function() {
-                               test.run();
-                       });
-                       synchronize(function() {
-                               test.teardown();
-                       });
-                       synchronize(function() {
-                               test.finish();
-                       });
-               }
+       // Exact match of the module name
+       config.module = urlParams.module;
 
-               // `bad` initialized at top of scope
-               // defer when previous test run passed, if storage is available
-               bad = QUnit.config.reorder && defined.sessionStorage &&
-                                               +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
+       config.testNumber = [];
+       if ( urlParams.testNumber ) {
 
-               if ( bad ) {
-                       run();
-               } else {
-                       synchronize( run, true );
+               // Ensure that urlParams.testNumber is an array
+               urlParams.testNumber = [].concat( urlParams.testNumber );
+               for ( i = 0; i < urlParams.testNumber.length; i++ ) {
+                       current = urlParams.testNumber[ i ];
+                       config.testNumber.push( parseInt( current, 10 ) );
                }
        }
-};
 
-// Root QUnit object.
-// `QUnit` initialized at top of scope
-QUnit = {
+       // Figure out if we're running the tests from a server or not
+       QUnit.isLocal = location.protocol === "file:";
+}());
 
-       // call on start of module test to prepend name to all tests
-       module: function( name, testEnvironment ) {
-               config.currentModule = name;
-               config.currentModuleTestEnvironment = testEnvironment;
-               config.modules[name] = true;
-       },
+extend( QUnit, {
 
-       asyncTest: function( testName, expected, callback ) {
-               if ( arguments.length === 2 ) {
-                       callback = expected;
-                       expected = null;
-               }
+       config: config,
 
-               QUnit.test( testName, expected, callback, true );
-       },
+       // Initialize the configuration options
+       init: function() {
+               extend( config, {
+                       stats: { all: 0, bad: 0 },
+                       moduleStats: { all: 0, bad: 0 },
+                       started: +new Date(),
+                       updateRate: 1000,
+                       blocking: false,
+                       autostart: true,
+                       autorun: false,
+                       filter: "",
+                       queue: [],
+                       semaphore: 1
+               });
 
-       test: function( testName, expected, callback, async ) {
-               var test,
-                       nameHtml = "<span class='test-name'>" + escapeText( testName ) + "</span>";
+               var tests, banner, result,
+                       qunit = id( "qunit" );
 
-               if ( arguments.length === 2 ) {
-                       callback = expected;
-                       expected = null;
+               if ( qunit ) {
+                       qunit.innerHTML =
+                               "<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
+                               "<h2 id='qunit-banner'></h2>" +
+                               "<div id='qunit-testrunner-toolbar'></div>" +
+                               "<h2 id='qunit-userAgent'></h2>" +
+                               "<ol id='qunit-tests'></ol>";
                }
 
-               if ( config.currentModule ) {
-                       nameHtml = "<span class='module-name'>" + escapeText( config.currentModule ) + "</span>: " + nameHtml;
+               tests = id( "qunit-tests" );
+               banner = id( "qunit-banner" );
+               result = id( "qunit-testresult" );
+
+               if ( tests ) {
+                       tests.innerHTML = "";
                }
 
-               test = new Test({
-                       nameHtml: nameHtml,
-                       testName: testName,
-                       expected: expected,
-                       async: async,
-                       callback: callback,
-                       module: config.currentModule,
-                       moduleTestEnvironment: config.currentModuleTestEnvironment,
-                       stack: sourceFromStacktrace( 2 )
-               });
+               if ( banner ) {
+                       banner.className = "";
+               }
 
-               if ( !validTest( test ) ) {
-                       return;
+               if ( result ) {
+                       result.parentNode.removeChild( result );
                }
 
-               test.queue();
+               if ( tests ) {
+                       result = document.createElement( "p" );
+                       result.id = "qunit-testresult";
+                       result.className = "result";
+                       tests.parentNode.insertBefore( result, tests );
+                       result.innerHTML = "Running...<br/>&nbsp;";
+               }
        },
 
-       // Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.
-       expect: function( asserts ) {
-               if (arguments.length === 1) {
-                       config.current.expected = asserts;
-               } else {
-                       return config.current.expected;
+       // Resets the test setup. Useful for tests that modify the DOM.
+       /*
+       DEPRECATED: Use multiple tests instead of resetting inside a test.
+       Use testStart or testDone for custom cleanup.
+       This method will throw an error in 2.0, and will be removed in 2.1
+       */
+       reset: function() {
+               var fixture = id( "qunit-fixture" );
+               if ( fixture ) {
+                       fixture.innerHTML = config.fixture;
                }
        },
 
-       start: function( count ) {
-               // QUnit hasn't been initialized yet.
-               // Note: RequireJS (et al) may delay onLoad
-               if ( config.semaphore === undefined ) {
-                       QUnit.begin(function() {
-                               // This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first
-                               setTimeout(function() {
-                                       QUnit.start( count );
-                               });
-                       });
-                       return;
-               }
+       // Safe object type checking
+       is: function( type, obj ) {
+               return QUnit.objectType( obj ) === type;
+       },
 
-               config.semaphore -= count || 1;
-               // don't start until equal number of stop-calls
-               if ( config.semaphore > 0 ) {
-                       return;
+       objectType: function( obj ) {
+               if ( typeof obj === "undefined" ) {
+                       return "undefined";
                }
-               // ignore if start is called more often then stop
-               if ( config.semaphore < 0 ) {
-                       config.semaphore = 0;
-                       QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) );
-                       return;
+
+               // Consider: typeof null === object
+               if ( obj === null ) {
+                       return "null";
                }
-               // A slight delay, to avoid any current callbacks
-               if ( defined.setTimeout ) {
-                       window.setTimeout(function() {
-                               if ( config.semaphore > 0 ) {
-                                       return;
-                               }
-                               if ( config.timeout ) {
-                                       clearTimeout( config.timeout );
-                               }
-
-                               config.blocking = false;
-                               process( true );
-                       }, 13);
-               } else {
-                       config.blocking = false;
-                       process( true );
-               }
-       },
 
-       stop: function( count ) {
-               config.semaphore += count || 1;
-               config.blocking = true;
+               var match = toString.call( obj ).match(/^\[object\s(.*)\]$/),
+                       type = match && match[1] || "";
 
-               if ( config.testTimeout && defined.setTimeout ) {
-                       clearTimeout( config.timeout );
-                       config.timeout = window.setTimeout(function() {
-                               QUnit.ok( false, "Test timed out" );
-                               config.semaphore = 1;
-                               QUnit.start();
-                       }, config.testTimeout );
+               switch ( type ) {
+                       case "Number":
+                               if ( isNaN(obj) ) {
+                                       return "nan";
+                               }
+                               return "number";
+                       case "String":
+                       case "Boolean":
+                       case "Array":
+                       case "Date":
+                       case "RegExp":
+                       case "Function":
+                               return type.toLowerCase();
                }
-       }
-};
+               if ( typeof obj === "object" ) {
+                       return "object";
+               }
+               return undefined;
+       },
 
-// `assert` initialized at top of scope
-// Asssert helpers
-// All of these must either call QUnit.push() or manually do:
-// - runLoggingCallbacks( "log", .. );
-// - config.current.assertions.push({ .. });
-// We attach it to the QUnit object *after* we expose the public API,
-// otherwise `assert` will become a global variable in browsers (#341).
-assert = {
-       /**
-        * Asserts rough true-ish result.
-        * @name ok
-        * @function
-        * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
-        */
-       ok: function( result, msg ) {
+       push: function( result, actual, expected, message ) {
                if ( !config.current ) {
-                       throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
+                       throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
                }
-               result = !!result;
 
-               var source,
+               var output, source,
                        details = {
                                module: config.current.module,
                                name: config.current.testName,
                                result: result,
-                               message: msg
+                               message: message,
+                               actual: actual,
+                               expected: expected
                        };
 
-               msg = escapeText( msg || (result ? "okay" : "failed" ) );
-               msg = "<span class='test-message'>" + msg + "</span>";
+               message = escapeText( message ) || ( result ? "okay" : "failed" );
+               message = "<span class='test-message'>" + message + "</span>";
+               output = message;
 
                if ( !result ) {
-                       source = sourceFromStacktrace( 2 );
+                       expected = escapeText( QUnit.jsDump.parse(expected) );
+                       actual = escapeText( QUnit.jsDump.parse(actual) );
+                       output += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + expected + "</pre></td></tr>";
+
+                       if ( actual !== expected ) {
+                               output += "<tr class='test-actual'><th>Result: </th><td><pre>" + actual + "</pre></td></tr>";
+                               output += "<tr class='test-diff'><th>Diff: </th><td><pre>" + QUnit.diff( expected, actual ) + "</pre></td></tr>";
+                       }
+
+                       source = sourceFromStacktrace();
+
                        if ( source ) {
                                details.source = source;
-                               msg += "<table><tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr></table>";
+                               output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
                        }
+
+                       output += "</table>";
                }
+
                runLoggingCallbacks( "log", QUnit, details );
+
                config.current.assertions.push({
-                       result: result,
-                       message: msg
+                       result: !!result,
+                       message: output
                });
        },
 
-       /**
-        * Assert that the first two arguments are equal, with an optional message.
-        * Prints out both actual and expected values.
-        * @name equal
-        * @function
-        * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
-        */
-       equal: function( actual, expected, message ) {
-               /*jshint eqeqeq:false */
-               QUnit.push( expected == actual, actual, expected, message );
-       },
-
-       /**
-        * @name notEqual
-        * @function
-        */
-       notEqual: function( actual, expected, message ) {
-               /*jshint eqeqeq:false */
-               QUnit.push( expected != actual, actual, expected, message );
-       },
+       pushFailure: function( message, source, actual ) {
+               if ( !config.current ) {
+                       throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
+               }
 
-       /**
-        * @name propEqual
-        * @function
-        */
-       propEqual: function( actual, expected, message ) {
-               actual = objectValues(actual);
-               expected = objectValues(expected);
-               QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
-       },
+               var output,
+                       details = {
+                               module: config.current.module,
+                               name: config.current.testName,
+                               result: false,
+                               message: message
+                       };
 
-       /**
-        * @name notPropEqual
-        * @function
-        */
-       notPropEqual: function( actual, expected, message ) {
-               actual = objectValues(actual);
-               expected = objectValues(expected);
-               QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
-       },
+               message = escapeText( message ) || "error";
+               message = "<span class='test-message'>" + message + "</span>";
+               output = message;
 
-       /**
-        * @name deepEqual
-        * @function
-        */
-       deepEqual: function( actual, expected, message ) {
-               QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
-       },
+               output += "<table>";
 
-       /**
-        * @name notDeepEqual
-        * @function
-        */
-       notDeepEqual: function( actual, expected, message ) {
-               QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
-       },
+               if ( actual ) {
+                       output += "<tr class='test-actual'><th>Result: </th><td><pre>" + escapeText( actual ) + "</pre></td></tr>";
+               }
 
-       /**
-        * @name strictEqual
-        * @function
-        */
-       strictEqual: function( actual, expected, message ) {
-               QUnit.push( expected === actual, actual, expected, message );
-       },
+               if ( source ) {
+                       details.source = source;
+                       output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
+               }
 
-       /**
-        * @name notStrictEqual
-        * @function
-        */
-       notStrictEqual: function( actual, expected, message ) {
-               QUnit.push( expected !== actual, actual, expected, message );
-       },
+               output += "</table>";
 
-       "throws": function( block, expected, message ) {
-               var actual,
-                       expectedOutput = expected,
-                       ok = false;
+               runLoggingCallbacks( "log", QUnit, details );
 
-               // 'expected' is optional
-               if ( typeof expected === "string" ) {
-                       message = expected;
-                       expected = null;
-               }
+               config.current.assertions.push({
+                       result: false,
+                       message: output
+               });
+       },
 
-               config.current.ignoreGlobalErrors = true;
-               try {
-                       block.call( config.current.testEnvironment );
-               } catch (e) {
-                       actual = e;
-               }
-               config.current.ignoreGlobalErrors = false;
+       url: function( params ) {
+               params = extend( extend( {}, QUnit.urlParams ), params );
+               var key,
+                       querystring = "?";
 
-               if ( actual ) {
-                       // we don't want to validate thrown error
-                       if ( !expected ) {
-                               ok = true;
-                               expectedOutput = null;
-                       // expected is a regexp
-                       } else if ( QUnit.objectType( expected ) === "regexp" ) {
-                               ok = expected.test( errorString( actual ) );
-                       // expected is a constructor
-                       } else if ( actual instanceof expected ) {
-                               ok = true;
-                       // expected is a validation function which returns true is validation passed
-                       } else if ( expected.call( {}, actual ) === true ) {
-                               expectedOutput = null;
-                               ok = true;
+               for ( key in params ) {
+                       if ( hasOwn.call( params, key ) ) {
+                               querystring += encodeURIComponent( key ) + "=" +
+                                       encodeURIComponent( params[ key ] ) + "&";
                        }
-
-                       QUnit.push( ok, actual, expectedOutput, message );
-               } else {
-                       QUnit.pushFailure( message, null, 'No exception was thrown.' );
                }
-       }
-};
+               return window.location.protocol + "//" + window.location.host +
+                       window.location.pathname + querystring.slice( 0, -1 );
+       },
 
-/**
- * @deprecate since 1.8.0
- * Kept assertion helpers in root for backwards compatibility.
- */
-extend( QUnit, assert );
+       extend: extend,
+       id: id,
+       addEvent: addEvent,
+       addClass: addClass,
+       hasClass: hasClass,
+       removeClass: removeClass
+       // load, equiv, jsDump, diff: Attached later
+});
 
 /**
- * @deprecated since 1.9.0
- * Kept root "raises()" for backwards compatibility.
- * (Note that we don't introduce assert.raises).
+ * @deprecated: Created for backwards compatibility with test runner that set the hook function
+ * into QUnit.{hook}, instead of invoking it and passing the hook function.
+ * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
+ * Doing this allows us to tell if the following methods have been overwritten on the actual
+ * QUnit object.
  */
-QUnit.raises = assert[ "throws" ];
+extend( QUnit.constructor.prototype, {
 
-/**
- * @deprecated since 1.0.0, replaced with error pushes since 1.3.0
- * Kept to avoid TypeErrors for undefined methods.
- */
-QUnit.equals = function() {
-       QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
-};
-QUnit.same = function() {
-       QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
-};
+       // Logging callbacks; all receive a single argument with the listed properties
+       // run test/logs.html for any related changes
+       begin: registerLoggingCallback( "begin" ),
 
-// We want access to the constructor's prototype
-(function() {
-       function F() {}
-       F.prototype = QUnit;
-       QUnit = new F();
-       // Make F QUnit's constructor so that we can add to the prototype later
-       QUnit.constructor = F;
-}());
-
-/**
- * Config object: Maintain internal state
- * Later exposed as QUnit.config
- * `config` initialized at top of scope
- */
-config = {
-       // The queue of tests to run
-       queue: [],
+       // done: { failed, passed, total, runtime }
+       done: registerLoggingCallback( "done" ),
 
-       // block until document ready
-       blocking: true,
+       // log: { result, actual, expected, message }
+       log: registerLoggingCallback( "log" ),
 
-       // when enabled, show only failing tests
-       // gets persisted through sessionStorage and can be changed in UI via checkbox
-       hidepassed: false,
+       // testStart: { name }
+       testStart: registerLoggingCallback( "testStart" ),
 
-       // by default, run previously failed tests first
-       // very useful in combination with "Hide passed tests" checked
-       reorder: true,
+       // testDone: { name, failed, passed, total, runtime }
+       testDone: registerLoggingCallback( "testDone" ),
 
-       // by default, modify document.title when suite is done
-       altertitle: true,
+       // moduleStart: { name }
+       moduleStart: registerLoggingCallback( "moduleStart" ),
 
-       // when enabled, all tests must call expect()
-       requireExpects: false,
+       // moduleDone: { name, failed, passed, total }
+       moduleDone: registerLoggingCallback( "moduleDone" )
+});
 
-       // add checkboxes that are persisted in the query-string
-       // when enabled, the id is set to `true` as a `QUnit.config` property
-       urlConfig: [
-               {
-                       id: "noglobals",
-                       label: "Check for Globals",
-                       tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."
-               },
-               {
-                       id: "notrycatch",
-                       label: "No try-catch",
-                       tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."
-               }
-       ],
+if ( !defined.document || document.readyState === "complete" ) {
+       config.autorun = true;
+}
 
-       // Set of all modules.
-       modules: {},
+QUnit.load = function() {
+       runLoggingCallbacks( "begin", QUnit, {} );
 
-       // logging callback queues
-       begin: [],
-       done: [],
-       log: [],
-       testStart: [],
-       testDone: [],
-       moduleStart: [],
-       moduleDone: []
-};
+       // Initialize the config, saving the execution queue
+       var banner, filter, i, j, label, len, main, ol, toolbar, val, selection,
+               urlConfigContainer, moduleFilter, userAgent,
+               numModules = 0,
+               moduleNames = [],
+               moduleFilterHtml = "",
+               urlConfigHtml = "",
+               oldconfig = extend( {}, config );
 
-// Export global variables, unless an 'exports' object exists,
-// in that case we assume we're in CommonJS (dealt with on the bottom of the script)
-if ( typeof exports === "undefined" ) {
-       extend( window, QUnit );
+       QUnit.init();
+       extend(config, oldconfig);
 
-       // Expose QUnit object
-       window.QUnit = QUnit;
-}
+       config.blocking = false;
 
-// Initialize more QUnit.config and QUnit.urlParams
-(function() {
-       var i,
-               location = window.location || { search: "", protocol: "file:" },
-               params = location.search.slice( 1 ).split( "&" ),
-               length = params.length,
-               urlParams = {},
-               current;
+       len = config.urlConfig.length;
 
-       if ( params[ 0 ] ) {
-               for ( i = 0; i < length; i++ ) {
-                       current = params[ i ].split( "=" );
-                       current[ 0 ] = decodeURIComponent( current[ 0 ] );
-                       // allow just a key to turn on a flag, e.g., test.html?noglobals
-                       current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
-                       urlParams[ current[ 0 ] ] = current[ 1 ];
+       for ( i = 0; i < len; i++ ) {
+               val = config.urlConfig[i];
+               if ( typeof val === "string" ) {
+                       val = {
+                               id: val,
+                               label: val
+                       };
+               }
+               config[ val.id ] = QUnit.urlParams[ val.id ];
+               if ( !val.value || typeof val.value === "string" ) {
+                       urlConfigHtml += "<input id='qunit-urlconfig-" + escapeText( val.id ) +
+                               "' name='" + escapeText( val.id ) +
+                               "' type='checkbox'" +
+                               ( val.value ? " value='" + escapeText( val.value ) + "'" : "" ) +
+                               ( config[ val.id ] ? " checked='checked'" : "" ) +
+                               " title='" + escapeText( val.tooltip ) +
+                               "'><label for='qunit-urlconfig-" + escapeText( val.id ) +
+                               "' title='" + escapeText( val.tooltip ) + "'>" + val.label + "</label>";
+               } else {
+                       urlConfigHtml += "<label for='qunit-urlconfig-" + escapeText( val.id ) +
+                               "' title='" + escapeText( val.tooltip ) +
+                               "'>" + val.label +
+                               ": </label><select id='qunit-urlconfig-" + escapeText( val.id ) +
+                               "' name='" + escapeText( val.id ) +
+                               "' title='" + escapeText( val.tooltip ) +
+                               "'><option></option>";
+                       selection = false;
+                       if ( QUnit.is( "array", val.value ) ) {
+                               for ( j = 0; j < val.value.length; j++ ) {
+                                       urlConfigHtml += "<option value='" + escapeText( val.value[j] ) + "'" +
+                                               ( config[ val.id ] === val.value[j] ?
+                                                       (selection = true) && " selected='selected'" :
+                                                       "" ) +
+                                               ">" + escapeText( val.value[j] ) + "</option>";
+                               }
+                       } else {
+                               for ( j in val.value ) {
+                                       if ( hasOwn.call( val.value, j ) ) {
+                                               urlConfigHtml += "<option value='" + escapeText( j ) + "'" +
+                                                       ( config[ val.id ] === j ?
+                                                               (selection = true) && " selected='selected'" :
+                                                               "" ) +
+                                                       ">" + escapeText( val.value[j] ) + "</option>";
+                                       }
+                               }
+                       }
+                       if ( config[ val.id ] && !selection ) {
+                               urlConfigHtml += "<option value='" + escapeText( config[ val.id ] ) +
+                                       "' selected='selected' disabled='disabled'>" +
+                                       escapeText( config[ val.id ] ) +
+                                       "</option>";
+                       }
+                       urlConfigHtml += "</select>";
                }
        }
+       for ( i in config.modules ) {
+               if ( config.modules.hasOwnProperty( i ) ) {
+                       moduleNames.push(i);
+               }
+       }
+       numModules = moduleNames.length;
+       moduleNames.sort( function( a, b ) {
+               return a.localeCompare( b );
+       });
+       moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label><select id='qunit-modulefilter' name='modulefilter'><option value='' " +
+               ( config.module === undefined  ? "selected='selected'" : "" ) +
+               ">< All Modules ></option>";
 
-       QUnit.urlParams = urlParams;
-
-       // String search anywhere in moduleName+testName
-       config.filter = urlParams.filter;
 
-       // Exact match of the module name
-       config.module = urlParams.module;
+       for ( i = 0; i < numModules; i++) {
+                       moduleFilterHtml += "<option value='" + escapeText( encodeURIComponent(moduleNames[i]) ) + "' " +
+                               ( config.module === moduleNames[i] ? "selected='selected'" : "" ) +
+                               ">" + escapeText(moduleNames[i]) + "</option>";
+       }
+       moduleFilterHtml += "</select>";
 
-       config.testNumber = parseInt( urlParams.testNumber, 10 ) || null;
+       // `userAgent` initialized at top of scope
+       userAgent = id( "qunit-userAgent" );
+       if ( userAgent ) {
+               userAgent.innerHTML = navigator.userAgent;
+       }
 
-       // Figure out if we're running the tests from a server or not
-       QUnit.isLocal = location.protocol === "file:";
-}());
+       // `banner` initialized at top of scope
+       banner = id( "qunit-header" );
+       if ( banner ) {
+               banner.innerHTML = "<a href='" + QUnit.url({ filter: undefined, module: undefined, testNumber: undefined }) + "'>" + banner.innerHTML + "</a> ";
+       }
 
-// Extend QUnit object,
-// these after set here because they should not be exposed as global functions
-extend( QUnit, {
-       assert: assert,
+       // `toolbar` initialized at top of scope
+       toolbar = id( "qunit-testrunner-toolbar" );
+       if ( toolbar ) {
+               // `filter` initialized at top of scope
+               filter = document.createElement( "input" );
+               filter.type = "checkbox";
+               filter.id = "qunit-filter-pass";
 
-       config: config,
+               addEvent( filter, "click", function() {
+                       var tmp,
+                               ol = id( "qunit-tests" );
 
-       // Initialize the configuration options
-       init: function() {
-               extend( config, {
-                       stats: { all: 0, bad: 0 },
-                       moduleStats: { all: 0, bad: 0 },
-                       started: +new Date(),
-                       updateRate: 1000,
-                       blocking: false,
-                       autostart: true,
-                       autorun: false,
-                       filter: "",
-                       queue: [],
-                       semaphore: 1
+                       if ( filter.checked ) {
+                               ol.className = ol.className + " hidepass";
+                       } else {
+                               tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
+                               ol.className = tmp.replace( / hidepass /, " " );
+                       }
+                       if ( defined.sessionStorage ) {
+                               if (filter.checked) {
+                                       sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
+                               } else {
+                                       sessionStorage.removeItem( "qunit-filter-passed-tests" );
+                               }
+                       }
                });
 
-               var tests, banner, result,
-                       qunit = id( "qunit" );
-
-               if ( qunit ) {
-                       qunit.innerHTML =
-                               "<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
-                               "<h2 id='qunit-banner'></h2>" +
-                               "<div id='qunit-testrunner-toolbar'></div>" +
-                               "<h2 id='qunit-userAgent'></h2>" +
-                               "<ol id='qunit-tests'></ol>";
+               if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
+                       filter.checked = true;
+                       // `ol` initialized at top of scope
+                       ol = id( "qunit-tests" );
+                       ol.className = ol.className + " hidepass";
                }
+               toolbar.appendChild( filter );
 
-               tests = id( "qunit-tests" );
-               banner = id( "qunit-banner" );
-               result = id( "qunit-testresult" );
+               // `label` initialized at top of scope
+               label = document.createElement( "label" );
+               label.setAttribute( "for", "qunit-filter-pass" );
+               label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." );
+               label.innerHTML = "Hide passed tests";
+               toolbar.appendChild( label );
 
-               if ( tests ) {
-                       tests.innerHTML = "";
-               }
+               urlConfigContainer = document.createElement("span");
+               urlConfigContainer.innerHTML = urlConfigHtml;
+               // For oldIE support:
+               // * Add handlers to the individual elements instead of the container
+               // * Use "click" instead of "change" for checkboxes
+               // * Fallback from event.target to event.srcElement
+               addEvents( urlConfigContainer.getElementsByTagName("input"), "click", function( event ) {
+                       var params = {},
+                               target = event.target || event.srcElement;
+                       params[ target.name ] = target.checked ?
+                               target.defaultValue || true :
+                               undefined;
+                       window.location = QUnit.url( params );
+               });
+               addEvents( urlConfigContainer.getElementsByTagName("select"), "change", function( event ) {
+                       var params = {},
+                               target = event.target || event.srcElement;
+                       params[ target.name ] = target.options[ target.selectedIndex ].value || undefined;
+                       window.location = QUnit.url( params );
+               });
+               toolbar.appendChild( urlConfigContainer );
 
-               if ( banner ) {
-                       banner.className = "";
-               }
+               if (numModules > 1) {
+                       moduleFilter = document.createElement( "span" );
+                       moduleFilter.setAttribute( "id", "qunit-modulefilter-container" );
+                       moduleFilter.innerHTML = moduleFilterHtml;
+                       addEvent( moduleFilter.lastChild, "change", function() {
+                               var selectBox = moduleFilter.getElementsByTagName("select")[0],
+                                       selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value);
 
-               if ( result ) {
-                       result.parentNode.removeChild( result );
+                               window.location = QUnit.url({
+                                       module: ( selectedModule === "" ) ? undefined : selectedModule,
+                                       // Remove any existing filters
+                                       filter: undefined,
+                                       testNumber: undefined
+                               });
+                       });
+                       toolbar.appendChild(moduleFilter);
                }
+       }
 
-               if ( tests ) {
-                       result = document.createElement( "p" );
-                       result.id = "qunit-testresult";
-                       result.className = "result";
-                       tests.parentNode.insertBefore( result, tests );
-                       result.innerHTML = "Running...<br/>&nbsp;";
-               }
-       },
+       // `main` initialized at top of scope
+       main = id( "qunit-fixture" );
+       if ( main ) {
+               config.fixture = main.innerHTML;
+       }
 
-       // Resets the test setup. Useful for tests that modify the DOM.
-       reset: function() {
-               var fixture = id( "qunit-fixture" );
-               if ( fixture ) {
-                       fixture.innerHTML = config.fixture;
-               }
-       },
+       if ( config.autostart ) {
+               QUnit.start();
+       }
+};
 
-       // Trigger an event on an element.
-       // @example triggerEvent( document.body, "click" );
-       triggerEvent: function( elem, type, event ) {
-               if ( document.createEvent ) {
-                       event = document.createEvent( "MouseEvents" );
-                       event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
-                               0, 0, 0, 0, 0, false, false, false, false, 0, null);
+if ( defined.document ) {
+       addEvent( window, "load", QUnit.load );
+}
 
-                       elem.dispatchEvent( event );
-               } else if ( elem.fireEvent ) {
-                       elem.fireEvent( "on" + type );
-               }
-       },
+// `onErrorFnPrev` initialized at top of scope
+// Preserve other handlers
+onErrorFnPrev = window.onerror;
 
-       // Safe object type checking
-       is: function( type, obj ) {
-               return QUnit.objectType( obj ) === type;
-       },
+// Cover uncaught exceptions
+// Returning true will suppress the default browser handler,
+// returning false will let it run.
+window.onerror = function ( error, filePath, linerNr ) {
+       var ret = false;
+       if ( onErrorFnPrev ) {
+               ret = onErrorFnPrev( error, filePath, linerNr );
+       }
 
-       objectType: function( obj ) {
-               if ( typeof obj === "undefined" ) {
-                               return "undefined";
-               // consider: typeof null === object
-               }
-               if ( obj === null ) {
-                               return "null";
+       // Treat return value as window.onerror itself does,
+       // Only do our handling if not suppressed.
+       if ( ret !== true ) {
+               if ( QUnit.config.current ) {
+                       if ( QUnit.config.current.ignoreGlobalErrors ) {
+                               return true;
+                       }
+                       QUnit.pushFailure( error, filePath + ":" + linerNr );
+               } else {
+                       QUnit.test( "global failure", extend( function() {
+                               QUnit.pushFailure( error, filePath + ":" + linerNr );
+                       }, { validTest: validTest } ) );
                }
+               return false;
+       }
 
-               var match = toString.call( obj ).match(/^\[object\s(.*)\]$/),
-                       type = match && match[1] || "";
-
-               switch ( type ) {
-                       case "Number":
-                               if ( isNaN(obj) ) {
-                                       return "nan";
-                               }
-                               return "number";
-                       case "String":
-                       case "Boolean":
-                       case "Array":
-                       case "Date":
-                       case "RegExp":
-                       case "Function":
-                               return type.toLowerCase();
-               }
-               if ( typeof obj === "object" ) {
-                       return "object";
-               }
-               return undefined;
-       },
+       return ret;
+};
 
-       push: function( result, actual, expected, message ) {
-               if ( !config.current ) {
-                       throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
-               }
+function done() {
+       config.autorun = true;
 
-               var output, source,
-                       details = {
-                               module: config.current.module,
-                               name: config.current.testName,
-                               result: result,
-                               message: message,
-                               actual: actual,
-                               expected: expected
-                       };
+       // Log the last module results
+       if ( config.previousModule ) {
+               runLoggingCallbacks( "moduleDone", QUnit, {
+                       name: config.previousModule,
+                       failed: config.moduleStats.bad,
+                       passed: config.moduleStats.all - config.moduleStats.bad,
+                       total: config.moduleStats.all
+               });
+       }
+       delete config.previousModule;
 
-               message = escapeText( message ) || ( result ? "okay" : "failed" );
-               message = "<span class='test-message'>" + message + "</span>";
-               output = message;
+       var i, key,
+               banner = id( "qunit-banner" ),
+               tests = id( "qunit-tests" ),
+               runtime = +new Date() - config.started,
+               passed = config.stats.all - config.stats.bad,
+               html = [
+                       "Tests completed in ",
+                       runtime,
+                       " milliseconds.<br/>",
+                       "<span class='passed'>",
+                       passed,
+                       "</span> assertions of <span class='total'>",
+                       config.stats.all,
+                       "</span> passed, <span class='failed'>",
+                       config.stats.bad,
+                       "</span> failed."
+               ].join( "" );
 
-               if ( !result ) {
-                       expected = escapeText( QUnit.jsDump.parse(expected) );
-                       actual = escapeText( QUnit.jsDump.parse(actual) );
-                       output += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + expected + "</pre></td></tr>";
+       if ( banner ) {
+               banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
+       }
 
-                       if ( actual !== expected ) {
-                               output += "<tr class='test-actual'><th>Result: </th><td><pre>" + actual + "</pre></td></tr>";
-                               output += "<tr class='test-diff'><th>Diff: </th><td><pre>" + QUnit.diff( expected, actual ) + "</pre></td></tr>";
-                       }
+       if ( tests ) {
+               id( "qunit-testresult" ).innerHTML = html;
+       }
 
-                       source = sourceFromStacktrace();
+       if ( config.altertitle && defined.document && document.title ) {
+               // show ✖ for good, ✔ for bad suite result in title
+               // use escape sequences in case file gets loaded with non-utf-8-charset
+               document.title = [
+                       ( config.stats.bad ? "\u2716" : "\u2714" ),
+                       document.title.replace( /^[\u2714\u2716] /i, "" )
+               ].join( " " );
+       }
 
-                       if ( source ) {
-                               details.source = source;
-                               output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
+       // clear own sessionStorage items if all tests passed
+       if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
+               // `key` & `i` initialized at top of scope
+               for ( i = 0; i < sessionStorage.length; i++ ) {
+                       key = sessionStorage.key( i++ );
+                       if ( key.indexOf( "qunit-test-" ) === 0 ) {
+                               sessionStorage.removeItem( key );
                        }
-
-                       output += "</table>";
                }
+       }
 
-               runLoggingCallbacks( "log", QUnit, details );
+       // scroll back to top to show results
+       if ( config.scrolltop && window.scrollTo ) {
+               window.scrollTo(0, 0);
+       }
 
-               config.current.assertions.push({
-                       result: !!result,
-                       message: output
-               });
-       },
+       runLoggingCallbacks( "done", QUnit, {
+               failed: config.stats.bad,
+               passed: passed,
+               total: config.stats.all,
+               runtime: runtime
+       });
+}
 
-       pushFailure: function( message, source, actual ) {
-               if ( !config.current ) {
-                       throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
-               }
+/** @return Boolean: true if this test should be ran */
+function validTest( test ) {
+       var include,
+               filter = config.filter && config.filter.toLowerCase(),
+               module = config.module && config.module.toLowerCase(),
+               fullName = ( test.module + ": " + test.testName ).toLowerCase();
 
-               var output,
-                       details = {
-                               module: config.current.module,
-                               name: config.current.testName,
-                               result: false,
-                               message: message
-                       };
+       // Internally-generated tests are always valid
+       if ( test.callback && test.callback.validTest === validTest ) {
+               delete test.callback.validTest;
+               return true;
+       }
 
-               message = escapeText( message ) || "error";
-               message = "<span class='test-message'>" + message + "</span>";
-               output = message;
+       if ( config.testNumber.length > 0 ) {
+               if ( inArray( test.testNumber, config.testNumber ) < 0 ) {
+                       return false;
+               }
+       }
 
-               output += "<table>";
+       if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) {
+               return false;
+       }
 
-               if ( actual ) {
-                       output += "<tr class='test-actual'><th>Result: </th><td><pre>" + escapeText( actual ) + "</pre></td></tr>";
-               }
+       if ( !filter ) {
+               return true;
+       }
 
-               if ( source ) {
-                       details.source = source;
-                       output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
-               }
+       include = filter.charAt( 0 ) !== "!";
+       if ( !include ) {
+               filter = filter.slice( 1 );
+       }
 
-               output += "</table>";
+       // If the filter matches, we need to honour include
+       if ( fullName.indexOf( filter ) !== -1 ) {
+               return include;
+       }
 
-               runLoggingCallbacks( "log", QUnit, details );
+       // Otherwise, do the opposite
+       return !include;
+}
 
-               config.current.assertions.push({
-                       result: false,
-                       message: output
-               });
-       },
+// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
+// Later Safari and IE10 are supposed to support error.stack as well
+// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
+function extractStacktrace( e, offset ) {
+       offset = offset === undefined ? 3 : offset;
 
-       url: function( params ) {
-               params = extend( extend( {}, QUnit.urlParams ), params );
-               var key,
-                       querystring = "?";
+       var stack, include, i;
 
-               for ( key in params ) {
-                       if ( !hasOwn.call( params, key ) ) {
-                               continue;
+       if ( e.stacktrace ) {
+               // Opera
+               return e.stacktrace.split( "\n" )[ offset + 3 ];
+       } else if ( e.stack ) {
+               // Firefox, Chrome
+               stack = e.stack.split( "\n" );
+               if (/^error$/i.test( stack[0] ) ) {
+                       stack.shift();
+               }
+               if ( fileName ) {
+                       include = [];
+                       for ( i = offset; i < stack.length; i++ ) {
+                               if ( stack[ i ].indexOf( fileName ) !== -1 ) {
+                                       break;
+                               }
+                               include.push( stack[ i ] );
+                       }
+                       if ( include.length ) {
+                               return include.join( "\n" );
                        }
-                       querystring += encodeURIComponent( key ) + "=" +
-                               encodeURIComponent( params[ key ] ) + "&";
                }
-               return window.location.protocol + "//" + window.location.host +
-                       window.location.pathname + querystring.slice( 0, -1 );
-       },
-
-       extend: extend,
-       id: id,
-       addEvent: addEvent
-       // load, equiv, jsDump, diff: Attached later
-});
+               return stack[ offset ];
+       } else if ( e.sourceURL ) {
+               // Safari, PhantomJS
+               // hopefully one day Safari provides actual stacktraces
+               // exclude useless self-reference for generated Error objects
+               if ( /qunit.js$/.test( e.sourceURL ) ) {
+                       return;
+               }
+               // for actual exceptions, this is useful
+               return e.sourceURL + ":" + e.line;
+       }
+}
+function sourceFromStacktrace( offset ) {
+       try {
+               throw new Error();
+       } catch ( e ) {
+               return extractStacktrace( e, offset );
+       }
+}
 
 /**
- * @deprecated: Created for backwards compatibility with test runner that set the hook function
- * into QUnit.{hook}, instead of invoking it and passing the hook function.
- * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
- * Doing this allows us to tell if the following methods have been overwritten on the actual
- * QUnit object.
+ * Escape text for attribute or text content.
  */
-extend( QUnit.constructor.prototype, {
-
-       // Logging callbacks; all receive a single argument with the listed properties
-       // run test/logs.html for any related changes
-       begin: registerLoggingCallback( "begin" ),
-
-       // done: { failed, passed, total, runtime }
-       done: registerLoggingCallback( "done" ),
-
-       // log: { result, actual, expected, message }
-       log: registerLoggingCallback( "log" ),
-
-       // testStart: { name }
-       testStart: registerLoggingCallback( "testStart" ),
-
-       // testDone: { name, failed, passed, total, duration }
-       testDone: registerLoggingCallback( "testDone" ),
-
-       // moduleStart: { name }
-       moduleStart: registerLoggingCallback( "moduleStart" ),
-
-       // moduleDone: { name, failed, passed, total }
-       moduleDone: registerLoggingCallback( "moduleDone" )
-});
-
-if ( typeof document === "undefined" || document.readyState === "complete" ) {
-       config.autorun = true;
+function escapeText( s ) {
+       if ( !s ) {
+               return "";
+       }
+       s = s + "";
+       // Both single quotes and double quotes (for attributes)
+       return s.replace( /['"<>&]/g, function( s ) {
+               switch( s ) {
+                       case "'":
+                               return "&#039;";
+                       case "\"":
+                               return "&quot;";
+                       case "<":
+                               return "&lt;";
+                       case ">":
+                               return "&gt;";
+                       case "&":
+                               return "&amp;";
+               }
+       });
 }
 
-QUnit.load = function() {
-       runLoggingCallbacks( "begin", QUnit, {} );
-
-       // Initialize the config, saving the execution queue
-       var banner, filter, i, label, len, main, ol, toolbar, userAgent, val,
-               urlConfigCheckboxesContainer, urlConfigCheckboxes, moduleFilter,
-               numModules = 0,
-               moduleFilterHtml = "",
-               urlConfigHtml = "",
-               oldconfig = extend( {}, config );
-
-       QUnit.init();
-       extend(config, oldconfig);
+function synchronize( callback, last ) {
+       config.queue.push( callback );
 
-       config.blocking = false;
+       if ( config.autorun && !config.blocking ) {
+               process( last );
+       }
+}
 
-       len = config.urlConfig.length;
+function process( last ) {
+       function next() {
+               process( last );
+       }
+       var start = new Date().getTime();
+       config.depth = config.depth ? config.depth + 1 : 1;
 
-       for ( i = 0; i < len; i++ ) {
-               val = config.urlConfig[i];
-               if ( typeof val === "string" ) {
-                       val = {
-                               id: val,
-                               label: val,
-                               tooltip: "[no tooltip available]"
-                       };
+       while ( config.queue.length && !config.blocking ) {
+               if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
+                       config.queue.shift()();
+               } else {
+                       setTimeout( next, 13 );
+                       break;
                }
-               config[ val.id ] = QUnit.urlParams[ val.id ];
-               urlConfigHtml += "<input id='qunit-urlconfig-" + escapeText( val.id ) +
-                       "' name='" + escapeText( val.id ) +
-                       "' type='checkbox'" + ( config[ val.id ] ? " checked='checked'" : "" ) +
-                       " title='" + escapeText( val.tooltip ) +
-                       "'><label for='qunit-urlconfig-" + escapeText( val.id ) +
-                       "' title='" + escapeText( val.tooltip ) + "'>" + val.label + "</label>";
        }
+       config.depth--;
+       if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
+               done();
+       }
+}
 
-       moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label><select id='qunit-modulefilter' name='modulefilter'><option value='' " +
-               ( config.module === undefined  ? "selected='selected'" : "" ) +
-               ">< All Modules ></option>";
+function saveGlobal() {
+       config.pollution = [];
 
-       for ( i in config.modules ) {
-               if ( config.modules.hasOwnProperty( i ) ) {
-                       numModules += 1;
-                       moduleFilterHtml += "<option value='" + escapeText( encodeURIComponent(i) ) + "' " +
-                               ( config.module === i ? "selected='selected'" : "" ) +
-                               ">" + escapeText(i) + "</option>";
+       if ( config.noglobals ) {
+               for ( var key in window ) {
+                       if ( hasOwn.call( window, key ) ) {
+                               // in Opera sometimes DOM element ids show up here, ignore them
+                               if ( /^qunit-test-output/.test( key ) ) {
+                                       continue;
+                               }
+                               config.pollution.push( key );
+                       }
                }
        }
-       moduleFilterHtml += "</select>";
+}
 
-       // `userAgent` initialized at top of scope
-       userAgent = id( "qunit-userAgent" );
-       if ( userAgent ) {
-               userAgent.innerHTML = navigator.userAgent;
-       }
+function checkPollution() {
+       var newGlobals,
+               deletedGlobals,
+               old = config.pollution;
 
-       // `banner` initialized at top of scope
-       banner = id( "qunit-header" );
-       if ( banner ) {
-               banner.innerHTML = "<a href='" + QUnit.url({ filter: undefined, module: undefined, testNumber: undefined }) + "'>" + banner.innerHTML + "</a> ";
+       saveGlobal();
+
+       newGlobals = diff( config.pollution, old );
+       if ( newGlobals.length > 0 ) {
+               QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
        }
 
-       // `toolbar` initialized at top of scope
-       toolbar = id( "qunit-testrunner-toolbar" );
-       if ( toolbar ) {
-               // `filter` initialized at top of scope
-               filter = document.createElement( "input" );
-               filter.type = "checkbox";
-               filter.id = "qunit-filter-pass";
+       deletedGlobals = diff( old, config.pollution );
+       if ( deletedGlobals.length > 0 ) {
+               QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
+       }
+}
 
-               addEvent( filter, "click", function() {
-                       var tmp,
-                               ol = document.getElementById( "qunit-tests" );
+// returns a new Array with the elements that are in a but not in b
+function diff( a, b ) {
+       var i, j,
+               result = a.slice();
 
-                       if ( filter.checked ) {
-                               ol.className = ol.className + " hidepass";
-                       } else {
-                               tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
-                               ol.className = tmp.replace( / hidepass /, " " );
+       for ( i = 0; i < result.length; i++ ) {
+               for ( j = 0; j < b.length; j++ ) {
+                       if ( result[i] === b[j] ) {
+                               result.splice( i, 1 );
+                               i--;
+                               break;
                        }
-                       if ( defined.sessionStorage ) {
-                               if (filter.checked) {
-                                       sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
+               }
+       }
+       return result;
+}
+
+function extend( a, b ) {
+       for ( var prop in b ) {
+               if ( hasOwn.call( b, prop ) ) {
+                       // Avoid "Member not found" error in IE8 caused by messing with window.constructor
+                       if ( !( prop === "constructor" && a === window ) ) {
+                               if ( b[ prop ] === undefined ) {
+                                       delete a[ prop ];
                                } else {
-                                       sessionStorage.removeItem( "qunit-filter-passed-tests" );
+                                       a[ prop ] = b[ prop ];
                                }
                        }
-               });
-
-               if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
-                       filter.checked = true;
-                       // `ol` initialized at top of scope
-                       ol = document.getElementById( "qunit-tests" );
-                       ol.className = ol.className + " hidepass";
                }
-               toolbar.appendChild( filter );
+       }
 
-               // `label` initialized at top of scope
-               label = document.createElement( "label" );
-               label.setAttribute( "for", "qunit-filter-pass" );
-               label.setAttribute( "title", "Only show tests and assertons that fail. Stored in sessionStorage." );
-               label.innerHTML = "Hide passed tests";
-               toolbar.appendChild( label );
+       return a;
+}
 
-               urlConfigCheckboxesContainer = document.createElement("span");
-               urlConfigCheckboxesContainer.innerHTML = urlConfigHtml;
-               urlConfigCheckboxes = urlConfigCheckboxesContainer.getElementsByTagName("input");
-               // For oldIE support:
-               // * Add handlers to the individual elements instead of the container
-               // * Use "click" instead of "change"
-               // * Fallback from event.target to event.srcElement
-               addEvents( urlConfigCheckboxes, "click", function( event ) {
-                       var params = {},
-                               target = event.target || event.srcElement;
-                       params[ target.name ] = target.checked ? true : undefined;
-                       window.location = QUnit.url( params );
-               });
-               toolbar.appendChild( urlConfigCheckboxesContainer );
+/**
+ * @param {HTMLElement} elem
+ * @param {string} type
+ * @param {Function} fn
+ */
+function addEvent( elem, type, fn ) {
+       if ( elem.addEventListener ) {
 
-               if (numModules > 1) {
-                       moduleFilter = document.createElement( 'span' );
-                       moduleFilter.setAttribute( 'id', 'qunit-modulefilter-container' );
-                       moduleFilter.innerHTML = moduleFilterHtml;
-                       addEvent( moduleFilter.lastChild, "change", function() {
-                               var selectBox = moduleFilter.getElementsByTagName("select")[0],
-                                       selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value);
+               // Standards-based browsers
+               elem.addEventListener( type, fn, false );
+       } else if ( elem.attachEvent ) {
 
-                               window.location = QUnit.url( { module: ( selectedModule === "" ) ? undefined : selectedModule } );
-                       });
-                       toolbar.appendChild(moduleFilter);
-               }
-       }
+               // support: IE <9
+               elem.attachEvent( "on" + type, fn );
+       } else {
 
-       // `main` initialized at top of scope
-       main = id( "qunit-fixture" );
-       if ( main ) {
-               config.fixture = main.innerHTML;
+               // Caller must ensure support for event listeners is present
+               throw new Error( "addEvent() was called in a context without event listener support" );
        }
+}
 
-       if ( config.autostart ) {
-               QUnit.start();
+/**
+ * @param {Array|NodeList} elems
+ * @param {string} type
+ * @param {Function} fn
+ */
+function addEvents( elems, type, fn ) {
+       var i = elems.length;
+       while ( i-- ) {
+               addEvent( elems[i], type, fn );
        }
-};
-
-addEvent( window, "load", QUnit.load );
+}
 
-// `onErrorFnPrev` initialized at top of scope
-// Preserve other handlers
-onErrorFnPrev = window.onerror;
+function hasClass( elem, name ) {
+       return (" " + elem.className + " ").indexOf(" " + name + " ") > -1;
+}
 
-// Cover uncaught exceptions
-// Returning true will surpress the default browser handler,
-// returning false will let it run.
-window.onerror = function ( error, filePath, linerNr ) {
-       var ret = false;
-       if ( onErrorFnPrev ) {
-               ret = onErrorFnPrev( error, filePath, linerNr );
+function addClass( elem, name ) {
+       if ( !hasClass( elem, name ) ) {
+               elem.className += (elem.className ? " " : "") + name;
        }
+}
 
-       // Treat return value as window.onerror itself does,
-       // Only do our handling if not surpressed.
-       if ( ret !== true ) {
-               if ( QUnit.config.current ) {
-                       if ( QUnit.config.current.ignoreGlobalErrors ) {
-                               return true;
-                       }
-                       QUnit.pushFailure( error, filePath + ":" + linerNr );
-               } else {
-                       QUnit.test( "global failure", extend( function() {
-                               QUnit.pushFailure( error, filePath + ":" + linerNr );
-                       }, { validTest: validTest } ) );
-               }
-               return false;
+function removeClass( elem, name ) {
+       var set = " " + elem.className + " ";
+       // Class name may appear multiple times
+       while ( set.indexOf(" " + name + " ") > -1 ) {
+               set = set.replace(" " + name + " " , " ");
        }
+       // If possible, trim it for prettiness, but not necessarily
+       elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, "");
+}
 
-       return ret;
-};
-
-function done() {
-       config.autorun = true;
+function id( name ) {
+       return defined.document && document.getElementById && document.getElementById( name );
+}
 
-       // Log the last module results
-       if ( config.currentModule ) {
-               runLoggingCallbacks( "moduleDone", QUnit, {
-                       name: config.currentModule,
-                       failed: config.moduleStats.bad,
-                       passed: config.moduleStats.all - config.moduleStats.bad,
-                       total: config.moduleStats.all
-               });
-       }
-
-       var i, key,
-               banner = id( "qunit-banner" ),
-               tests = id( "qunit-tests" ),
-               runtime = +new Date() - config.started,
-               passed = config.stats.all - config.stats.bad,
-               html = [
-                       "Tests completed in ",
-                       runtime,
-                       " milliseconds.<br/>",
-                       "<span class='passed'>",
-                       passed,
-                       "</span> assertions of <span class='total'>",
-                       config.stats.all,
-                       "</span> passed, <span class='failed'>",
-                       config.stats.bad,
-                       "</span> failed."
-               ].join( "" );
+function registerLoggingCallback( key ) {
+       return function( callback ) {
+               config[key].push( callback );
+       };
+}
 
-       if ( banner ) {
-               banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
+// Supports deprecated method of completely overwriting logging callbacks
+function runLoggingCallbacks( key, scope, args ) {
+       var i, callbacks;
+       if ( QUnit.hasOwnProperty( key ) ) {
+               QUnit[ key ].call(scope, args );
+       } else {
+               callbacks = config[ key ];
+               for ( i = 0; i < callbacks.length; i++ ) {
+                       callbacks[ i ].call( scope, args );
+               }
        }
+}
 
-       if ( tests ) {
-               id( "qunit-testresult" ).innerHTML = html;
+// from jquery.js
+function inArray( elem, array ) {
+       if ( array.indexOf ) {
+               return array.indexOf( elem );
        }
 
-       if ( config.altertitle && typeof document !== "undefined" && document.title ) {
-               // show ✖ for good, ✔ for bad suite result in title
-               // use escape sequences in case file gets loaded with non-utf-8-charset
-               document.title = [
-                       ( config.stats.bad ? "\u2716" : "\u2714" ),
-                       document.title.replace( /^[\u2714\u2716] /i, "" )
-               ].join( " " );
+       for ( var i = 0, length = array.length; i < length; i++ ) {
+               if ( array[ i ] === elem ) {
+                       return i;
+               }
        }
 
-       // clear own sessionStorage items if all tests passed
-       if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
-               // `key` & `i` initialized at top of scope
-               for ( i = 0; i < sessionStorage.length; i++ ) {
-                       key = sessionStorage.key( i++ );
-                       if ( key.indexOf( "qunit-test-" ) === 0 ) {
-                               sessionStorage.removeItem( key );
+       return -1;
+}
+
+function Test( settings ) {
+       extend( this, settings );
+       this.assertions = [];
+       this.testNumber = ++Test.count;
+}
+
+Test.count = 0;
+
+Test.prototype = {
+       init: function() {
+               var a, b, li,
+                       tests = id( "qunit-tests" );
+
+               if ( tests ) {
+                       b = document.createElement( "strong" );
+                       b.innerHTML = this.nameHtml;
+
+                       // `a` initialized at top of scope
+                       a = document.createElement( "a" );
+                       a.innerHTML = "Rerun";
+                       a.href = QUnit.url({ testNumber: this.testNumber });
+
+                       li = document.createElement( "li" );
+                       li.appendChild( b );
+                       li.appendChild( a );
+                       li.className = "running";
+                       li.id = this.id = "qunit-test-output" + testId++;
+
+                       tests.appendChild( li );
+               }
+       },
+       setup: function() {
+               if (
+                       // Emit moduleStart when we're switching from one module to another
+                       this.module !== config.previousModule ||
+                               // They could be equal (both undefined) but if the previousModule property doesn't
+                               // yet exist it means this is the first test in a suite that isn't wrapped in a
+                               // module, in which case we'll just emit a moduleStart event for 'undefined'.
+                               // Without this, reporters can get testStart before moduleStart  which is a problem.
+                               !hasOwn.call( config, "previousModule" )
+               ) {
+                       if ( hasOwn.call( config, "previousModule" ) ) {
+                               runLoggingCallbacks( "moduleDone", QUnit, {
+                                       name: config.previousModule,
+                                       failed: config.moduleStats.bad,
+                                       passed: config.moduleStats.all - config.moduleStats.bad,
+                                       total: config.moduleStats.all
+                               });
                        }
+                       config.previousModule = this.module;
+                       config.moduleStats = { all: 0, bad: 0 };
+                       runLoggingCallbacks( "moduleStart", QUnit, {
+                               name: this.module
+                       });
                }
-       }
 
-       // scroll back to top to show results
-       if ( window.scrollTo ) {
-               window.scrollTo(0, 0);
-       }
+               config.current = this;
 
-       runLoggingCallbacks( "done", QUnit, {
-               failed: config.stats.bad,
-               passed: passed,
-               total: config.stats.all,
-               runtime: runtime
-       });
-}
+               this.testEnvironment = extend({
+                       setup: function() {},
+                       teardown: function() {}
+               }, this.moduleTestEnvironment );
 
-/** @return Boolean: true if this test should be ran */
-function validTest( test ) {
-       var include,
-               filter = config.filter && config.filter.toLowerCase(),
-               module = config.module && config.module.toLowerCase(),
-               fullName = (test.module + ": " + test.testName).toLowerCase();
+               this.started = +new Date();
+               runLoggingCallbacks( "testStart", QUnit, {
+                       name: this.testName,
+                       module: this.module
+               });
 
-       // Internally-generated tests are always valid
-       if ( test.callback && test.callback.validTest === validTest ) {
-               delete test.callback.validTest;
-               return true;
-       }
+               /*jshint camelcase:false */
 
-       if ( config.testNumber ) {
-               return test.testNumber === config.testNumber;
-       }
 
-       if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) {
-               return false;
-       }
+               /**
+                * Expose the current test environment.
+                *
+                * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead.
+                */
+               QUnit.current_testEnvironment = this.testEnvironment;
 
-       if ( !filter ) {
-               return true;
-       }
+               /*jshint camelcase:true */
 
-       include = filter.charAt( 0 ) !== "!";
-       if ( !include ) {
-               filter = filter.slice( 1 );
-       }
+               if ( !config.pollution ) {
+                       saveGlobal();
+               }
+               if ( config.notrycatch ) {
+                       this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
+                       return;
+               }
+               try {
+                       this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
+               } catch( e ) {
+                       QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
+               }
+       },
+       run: function() {
+               config.current = this;
 
-       // If the filter matches, we need to honour include
-       if ( fullName.indexOf( filter ) !== -1 ) {
-               return include;
-       }
+               var running = id( "qunit-testresult" );
 
-       // Otherwise, do the opposite
-       return !include;
-}
+               if ( running ) {
+                       running.innerHTML = "Running: <br/>" + this.nameHtml;
+               }
 
-// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
-// Later Safari and IE10 are supposed to support error.stack as well
-// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
-function extractStacktrace( e, offset ) {
-       offset = offset === undefined ? 3 : offset;
+               if ( this.async ) {
+                       QUnit.stop();
+               }
 
-       var stack, include, i;
+               this.callbackStarted = +new Date();
 
-       if ( e.stacktrace ) {
-               // Opera
-               return e.stacktrace.split( "\n" )[ offset + 3 ];
-       } else if ( e.stack ) {
-               // Firefox, Chrome
-               stack = e.stack.split( "\n" );
-               if (/^error$/i.test( stack[0] ) ) {
-                       stack.shift();
+               if ( config.notrycatch ) {
+                       this.callback.call( this.testEnvironment, QUnit.assert );
+                       this.callbackRuntime = +new Date() - this.callbackStarted;
+                       return;
                }
-               if ( fileName ) {
-                       include = [];
-                       for ( i = offset; i < stack.length; i++ ) {
-                               if ( stack[ i ].indexOf( fileName ) !== -1 ) {
-                                       break;
+
+               try {
+                       this.callback.call( this.testEnvironment, QUnit.assert );
+                       this.callbackRuntime = +new Date() - this.callbackStarted;
+               } catch( e ) {
+                       this.callbackRuntime = +new Date() - this.callbackStarted;
+
+                       QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) );
+                       // else next test will carry the responsibility
+                       saveGlobal();
+
+                       // Restart the tests if they're blocking
+                       if ( config.blocking ) {
+                               QUnit.start();
+                       }
+               }
+       },
+       teardown: function() {
+               config.current = this;
+               if ( config.notrycatch ) {
+                       if ( typeof this.callbackRuntime === "undefined" ) {
+                               this.callbackRuntime = +new Date() - this.callbackStarted;
+                       }
+                       this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
+                       return;
+               } else {
+                       try {
+                               this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
+                       } catch( e ) {
+                               QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
+                       }
+               }
+               checkPollution();
+       },
+       finish: function() {
+               config.current = this;
+               if ( config.requireExpects && this.expected === null ) {
+                       QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
+               } else if ( this.expected !== null && this.expected !== this.assertions.length ) {
+                       QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
+               } else if ( this.expected === null && !this.assertions.length ) {
+                       QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
+               }
+
+               var i, assertion, a, b, time, li, ol,
+                       test = this,
+                       good = 0,
+                       bad = 0,
+                       tests = id( "qunit-tests" );
+
+               this.runtime = +new Date() - this.started;
+               config.stats.all += this.assertions.length;
+               config.moduleStats.all += this.assertions.length;
+
+               if ( tests ) {
+                       ol = document.createElement( "ol" );
+                       ol.className = "qunit-assert-list";
+
+                       for ( i = 0; i < this.assertions.length; i++ ) {
+                               assertion = this.assertions[i];
+
+                               li = document.createElement( "li" );
+                               li.className = assertion.result ? "pass" : "fail";
+                               li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
+                               ol.appendChild( li );
+
+                               if ( assertion.result ) {
+                                       good++;
+                               } else {
+                                       bad++;
+                                       config.stats.bad++;
+                                       config.moduleStats.bad++;
                                }
-                               include.push( stack[ i ] );
                        }
-                       if ( include.length ) {
-                               return include.join( "\n" );
+
+                       // store result when possible
+                       if ( QUnit.config.reorder && defined.sessionStorage ) {
+                               if ( bad ) {
+                                       sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
+                               } else {
+                                       sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
+                               }
+                       }
+
+                       if ( bad === 0 ) {
+                               addClass( ol, "qunit-collapsed" );
+                       }
+
+                       // `b` initialized at top of scope
+                       b = document.createElement( "strong" );
+                       b.innerHTML = this.nameHtml + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>";
+
+                       addEvent(b, "click", function() {
+                               var next = b.parentNode.lastChild,
+                                       collapsed = hasClass( next, "qunit-collapsed" );
+                               ( collapsed ? removeClass : addClass )( next, "qunit-collapsed" );
+                       });
+
+                       addEvent(b, "dblclick", function( e ) {
+                               var target = e && e.target ? e.target : window.event.srcElement;
+                               if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) {
+                                       target = target.parentNode;
+                               }
+                               if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
+                                       window.location = QUnit.url({ testNumber: test.testNumber });
+                               }
+                       });
+
+                       // `time` initialized at top of scope
+                       time = document.createElement( "span" );
+                       time.className = "runtime";
+                       time.innerHTML = this.runtime + " ms";
+
+                       // `li` initialized at top of scope
+                       li = id( this.id );
+                       li.className = bad ? "fail" : "pass";
+                       li.removeChild( li.firstChild );
+                       a = li.firstChild;
+                       li.appendChild( b );
+                       li.appendChild( a );
+                       li.appendChild( time );
+                       li.appendChild( ol );
+
+               } else {
+                       for ( i = 0; i < this.assertions.length; i++ ) {
+                               if ( !this.assertions[i].result ) {
+                                       bad++;
+                                       config.stats.bad++;
+                                       config.moduleStats.bad++;
+                               }
                        }
                }
-               return stack[ offset ];
-       } else if ( e.sourceURL ) {
-               // Safari, PhantomJS
-               // hopefully one day Safari provides actual stacktraces
-               // exclude useless self-reference for generated Error objects
-               if ( /qunit.js$/.test( e.sourceURL ) ) {
-                       return;
+
+               runLoggingCallbacks( "testDone", QUnit, {
+                       name: this.testName,
+                       module: this.module,
+                       failed: bad,
+                       passed: this.assertions.length - bad,
+                       total: this.assertions.length,
+                       runtime: this.runtime,
+                       // DEPRECATED: this property will be removed in 2.0.0, use runtime instead
+                       duration: this.runtime
+               });
+
+               QUnit.reset();
+
+               config.current = undefined;
+       },
+
+       queue: function() {
+               var bad,
+                       test = this;
+
+               synchronize(function() {
+                       test.init();
+               });
+               function run() {
+                       // each of these can by async
+                       synchronize(function() {
+                               test.setup();
+                       });
+                       synchronize(function() {
+                               test.run();
+                       });
+                       synchronize(function() {
+                               test.teardown();
+                       });
+                       synchronize(function() {
+                               test.finish();
+                       });
+               }
+
+               // `bad` initialized at top of scope
+               // defer when previous test run passed, if storage is available
+               bad = QUnit.config.reorder && defined.sessionStorage &&
+                                               +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
+
+               if ( bad ) {
+                       run();
+               } else {
+                       synchronize( run, true );
                }
-               // for actual exceptions, this is useful
-               return e.sourceURL + ":" + e.line;
-       }
-}
-function sourceFromStacktrace( offset ) {
-       try {
-               throw new Error();
-       } catch ( e ) {
-               return extractStacktrace( e, offset );
        }
-}
+};
+
+// `assert` initialized at top of scope
+// Assert helpers
+// All of these must either call QUnit.push() or manually do:
+// - runLoggingCallbacks( "log", .. );
+// - config.current.assertions.push({ .. });
+assert = QUnit.assert = {
+       /**
+        * Asserts rough true-ish result.
+        * @name ok
+        * @function
+        * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
+        */
+       ok: function( result, msg ) {
+               if ( !config.current ) {
+                       throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
+               }
+               result = !!result;
+               msg = msg || ( result ? "okay" : "failed" );
+
+               var source,
+                       details = {
+                               module: config.current.module,
+                               name: config.current.testName,
+                               result: result,
+                               message: msg
+                       };
+
+               msg = "<span class='test-message'>" + escapeText( msg ) + "</span>";
+
+               if ( !result ) {
+                       source = sourceFromStacktrace( 2 );
+                       if ( source ) {
+                               details.source = source;
+                               msg += "<table><tr class='test-source'><th>Source: </th><td><pre>" +
+                                       escapeText( source ) +
+                                       "</pre></td></tr></table>";
+                       }
+               }
+               runLoggingCallbacks( "log", QUnit, details );
+               config.current.assertions.push({
+                       result: result,
+                       message: msg
+               });
+       },
+
+       /**
+        * Assert that the first two arguments are equal, with an optional message.
+        * Prints out both actual and expected values.
+        * @name equal
+        * @function
+        * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
+        */
+       equal: function( actual, expected, message ) {
+               /*jshint eqeqeq:false */
+               QUnit.push( expected == actual, actual, expected, message );
+       },
+
+       /**
+        * @name notEqual
+        * @function
+        */
+       notEqual: function( actual, expected, message ) {
+               /*jshint eqeqeq:false */
+               QUnit.push( expected != actual, actual, expected, message );
+       },
+
+       /**
+        * @name propEqual
+        * @function
+        */
+       propEqual: function( actual, expected, message ) {
+               actual = objectValues(actual);
+               expected = objectValues(expected);
+               QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
+       },
 
-/**
- * Escape text for attribute or text content.
- */
-function escapeText( s ) {
-       if ( !s ) {
-               return "";
-       }
-       s = s + "";
-       // Both single quotes and double quotes (for attributes)
-       return s.replace( /['"<>&]/g, function( s ) {
-               switch( s ) {
-                       case '\'':
-                               return '&#039;';
-                       case '"':
-                               return '&quot;';
-                       case '<':
-                               return '&lt;';
-                       case '>':
-                               return '&gt;';
-                       case '&':
-                               return '&amp;';
-               }
-       });
-}
+       /**
+        * @name notPropEqual
+        * @function
+        */
+       notPropEqual: function( actual, expected, message ) {
+               actual = objectValues(actual);
+               expected = objectValues(expected);
+               QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
+       },
 
-function synchronize( callback, last ) {
-       config.queue.push( callback );
+       /**
+        * @name deepEqual
+        * @function
+        */
+       deepEqual: function( actual, expected, message ) {
+               QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
+       },
 
-       if ( config.autorun && !config.blocking ) {
-               process( last );
-       }
-}
+       /**
+        * @name notDeepEqual
+        * @function
+        */
+       notDeepEqual: function( actual, expected, message ) {
+               QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
+       },
 
-function process( last ) {
-       function next() {
-               process( last );
-       }
-       var start = new Date().getTime();
-       config.depth = config.depth ? config.depth + 1 : 1;
+       /**
+        * @name strictEqual
+        * @function
+        */
+       strictEqual: function( actual, expected, message ) {
+               QUnit.push( expected === actual, actual, expected, message );
+       },
 
-       while ( config.queue.length && !config.blocking ) {
-               if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
-                       config.queue.shift()();
-               } else {
-                       window.setTimeout( next, 13 );
-                       break;
-               }
-       }
-       config.depth--;
-       if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
-               done();
-       }
-}
+       /**
+        * @name notStrictEqual
+        * @function
+        */
+       notStrictEqual: function( actual, expected, message ) {
+               QUnit.push( expected !== actual, actual, expected, message );
+       },
 
-function saveGlobal() {
-       config.pollution = [];
+       "throws": function( block, expected, message ) {
+               var actual,
+                       expectedOutput = expected,
+                       ok = false;
 
-       if ( config.noglobals ) {
-               for ( var key in window ) {
-                       // in Opera sometimes DOM element ids show up here, ignore them
-                       if ( !hasOwn.call( window, key ) || /^qunit-test-output/.test( key ) ) {
-                               continue;
-                       }
-                       config.pollution.push( key );
+               // 'expected' is optional
+               if ( !message && typeof expected === "string" ) {
+                       message = expected;
+                       expected = null;
                }
-       }
-}
 
-function checkPollution() {
-       var newGlobals,
-               deletedGlobals,
-               old = config.pollution;
+               config.current.ignoreGlobalErrors = true;
+               try {
+                       block.call( config.current.testEnvironment );
+               } catch (e) {
+                       actual = e;
+               }
+               config.current.ignoreGlobalErrors = false;
 
-       saveGlobal();
+               if ( actual ) {
 
-       newGlobals = diff( config.pollution, old );
-       if ( newGlobals.length > 0 ) {
-               QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
-       }
+                       // we don't want to validate thrown error
+                       if ( !expected ) {
+                               ok = true;
+                               expectedOutput = null;
 
-       deletedGlobals = diff( old, config.pollution );
-       if ( deletedGlobals.length > 0 ) {
-               QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
-       }
-}
+                       // expected is an Error object
+                       } else if ( expected instanceof Error ) {
+                               ok = actual instanceof Error &&
+                                        actual.name === expected.name &&
+                                        actual.message === expected.message;
 
-// returns a new Array with the elements that are in a but not in b
-function diff( a, b ) {
-       var i, j,
-               result = a.slice();
+                       // expected is a regexp
+                       } else if ( QUnit.objectType( expected ) === "regexp" ) {
+                               ok = expected.test( errorString( actual ) );
 
-       for ( i = 0; i < result.length; i++ ) {
-               for ( j = 0; j < b.length; j++ ) {
-                       if ( result[i] === b[j] ) {
-                               result.splice( i, 1 );
-                               i--;
-                               break;
-                       }
-               }
-       }
-       return result;
-}
+                       // expected is a string
+                       } else if ( QUnit.objectType( expected ) === "string" ) {
+                               ok = expected === errorString( actual );
 
-function extend( a, b ) {
-       for ( var prop in b ) {
-               if ( b[ prop ] === undefined ) {
-                       delete a[ prop ];
+                       // expected is a constructor
+                       } else if ( actual instanceof expected ) {
+                               ok = true;
+
+                       // expected is a validation function which returns true is validation passed
+                       } else if ( expected.call( {}, actual ) === true ) {
+                               expectedOutput = null;
+                               ok = true;
+                       }
 
-               // Avoid "Member not found" error in IE8 caused by setting window.constructor
-               } else if ( prop !== "constructor" || a !== window ) {
-                       a[ prop ] = b[ prop ];
+                       QUnit.push( ok, actual, expectedOutput, message );
+               } else {
+                       QUnit.pushFailure( message, null, "No exception was thrown." );
                }
        }
-
-       return a;
-}
+};
 
 /**
- * @param {HTMLElement} elem
- * @param {string} type
- * @param {Function} fn
+ * @deprecated since 1.8.0
+ * Kept assertion helpers in root for backwards compatibility.
  */
-function addEvent( elem, type, fn ) {
-       // Standards-based browsers
-       if ( elem.addEventListener ) {
-               elem.addEventListener( type, fn, false );
-       // IE
-       } else {
-               elem.attachEvent( "on" + type, fn );
-       }
-}
+extend( QUnit.constructor.prototype, assert );
 
 /**
- * @param {Array|NodeList} elems
- * @param {string} type
- * @param {Function} fn
+ * @deprecated since 1.9.0
+ * Kept to avoid TypeErrors for undefined methods.
  */
-function addEvents( elems, type, fn ) {
-       var i = elems.length;
-       while ( i-- ) {
-               addEvent( elems[i], type, fn );
-       }
-}
-
-function hasClass( elem, name ) {
-       return (" " + elem.className + " ").indexOf(" " + name + " ") > -1;
-}
-
-function addClass( elem, name ) {
-       if ( !hasClass( elem, name ) ) {
-               elem.className += (elem.className ? " " : "") + name;
-       }
-}
-
-function removeClass( elem, name ) {
-       var set = " " + elem.className + " ";
-       // Class name may appear multiple times
-       while ( set.indexOf(" " + name + " ") > -1 ) {
-               set = set.replace(" " + name + " " , " ");
-       }
-       // If possible, trim it for prettiness, but not neccecarily
-       elem.className = window.jQuery ? jQuery.trim( set ) : ( set.trim ? set.trim() : set );
-}
-
-function id( name ) {
-       return !!( typeof document !== "undefined" && document && document.getElementById ) &&
-               document.getElementById( name );
-}
-
-function registerLoggingCallback( key ) {
-       return function( callback ) {
-               config[key].push( callback );
-       };
-}
+QUnit.constructor.prototype.raises = function() {
+       QUnit.push( false, false, false, "QUnit.raises has been deprecated since 2012 (fad3c1ea), use QUnit.throws instead" );
+};
 
-// Supports deprecated method of completely overwriting logging callbacks
-function runLoggingCallbacks( key, scope, args ) {
-       var i, callbacks;
-       if ( QUnit.hasOwnProperty( key ) ) {
-               QUnit[ key ].call(scope, args );
-       } else {
-               callbacks = config[ key ];
-               for ( i = 0; i < callbacks.length; i++ ) {
-                       callbacks[ i ].call( scope, args );
-               }
-       }
-}
+/**
+ * @deprecated since 1.0.0, replaced with error pushes since 1.3.0
+ * Kept to avoid TypeErrors for undefined methods.
+ */
+QUnit.constructor.prototype.equals = function() {
+       QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
+};
+QUnit.constructor.prototype.same = function() {
+       QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
+};
 
 // Test for equality any JavaScript type.
 // Author: Philippe Rathé <prathe@gmail.com>
@@ -1585,8 +1705,10 @@ QUnit.equiv = (function() {
                callers = [],
                // stack to avoiding loops from circular referencing
                parents = [],
+               parentsB = [],
 
                getProto = Object.getPrototypeOf || function ( obj ) {
+                       /*jshint camelcase:false */
                        return obj.__proto__;
                },
                callbacks = (function () {
@@ -1595,7 +1717,7 @@ QUnit.equiv = (function() {
                        function useStrictEquality( b, a ) {
                                /*jshint eqeqeq:false */
                                if ( b instanceof a.constructor || a instanceof b.constructor ) {
-                                       // to catch short annotaion VS 'new' annotation of a
+                                       // to catch short annotation VS 'new' annotation of a
                                        // declaration
                                        // e.g. var i = 1;
                                        // var j = new Number(1);
@@ -1624,7 +1746,7 @@ QUnit.equiv = (function() {
                                        return QUnit.objectType( b ) === "regexp" &&
                                                // the regex itself
                                                a.source === b.source &&
-                                               // and its modifers
+                                               // and its modifiers
                                                a.global === b.global &&
                                                // (gmi) ...
                                                a.ignoreCase === b.ignoreCase &&
@@ -1641,7 +1763,7 @@ QUnit.equiv = (function() {
                                },
 
                                "array": function( b, a ) {
-                                       var i, j, len, loop;
+                                       var i, j, len, loop, aCircular, bCircular;
 
                                        // b could be an object literal here
                                        if ( QUnit.objectType( b ) !== "array" ) {
@@ -1656,24 +1778,36 @@ QUnit.equiv = (function() {
 
                                        // track reference to avoid circular references
                                        parents.push( a );
+                                       parentsB.push( b );
                                        for ( i = 0; i < len; i++ ) {
                                                loop = false;
                                                for ( j = 0; j < parents.length; j++ ) {
-                                                       if ( parents[j] === a[i] ) {
-                                                               loop = true;// dont rewalk array
+                                                       aCircular = parents[j] === a[i];
+                                                       bCircular = parentsB[j] === b[i];
+                                                       if ( aCircular || bCircular ) {
+                                                               if ( a[i] === b[i] || aCircular && bCircular ) {
+                                                                       loop = true;
+                                                               } else {
+                                                                       parents.pop();
+                                                                       parentsB.pop();
+                                                                       return false;
+                                                               }
                                                        }
                                                }
                                                if ( !loop && !innerEquiv(a[i], b[i]) ) {
                                                        parents.pop();
+                                                       parentsB.pop();
                                                        return false;
                                                }
                                        }
                                        parents.pop();
+                                       parentsB.pop();
                                        return true;
                                },
 
                                "object": function( b, a ) {
-                                       var i, j, loop,
+                                       /*jshint forin:false */
+                                       var i, j, loop, aCircular, bCircular,
                                                // Default to true
                                                eq = true,
                                                aProperties = [],
@@ -1692,28 +1826,36 @@ QUnit.equiv = (function() {
 
                                        // stack constructor before traversing properties
                                        callers.push( a.constructor );
+
                                        // track reference to avoid circular references
                                        parents.push( a );
+                                       parentsB.push( b );
 
-                                       for ( i in a ) { // be strict: don't ensures hasOwnProperty
-                                                                       // and go deep
+                                       // be strict: don't ensure hasOwnProperty and go deep
+                                       for ( i in a ) {
                                                loop = false;
                                                for ( j = 0; j < parents.length; j++ ) {
-                                                       if ( parents[j] === a[i] ) {
-                                                               // don't go down the same path twice
-                                                               loop = true;
+                                                       aCircular = parents[j] === a[i];
+                                                       bCircular = parentsB[j] === b[i];
+                                                       if ( aCircular || bCircular ) {
+                                                               if ( a[i] === b[i] || aCircular && bCircular ) {
+                                                                       loop = true;
+                                                               } else {
+                                                                       eq = false;
+                                                                       break;
+                                                               }
                                                        }
                                                }
-                                               aProperties.push(i); // collect a's properties
-
-                                               if (!loop && !innerEquiv( a[i], b[i] ) ) {
+                                               aProperties.push(i);
+                                               if ( !loop && !innerEquiv(a[i], b[i]) ) {
                                                        eq = false;
                                                        break;
                                                }
                                        }
 
-                                       callers.pop(); // unstack, we are done
                                        parents.pop();
+                                       parentsB.pop();
+                                       callers.pop(); // unstack, we are done
 
                                        for ( i in b ) {
                                                bProperties.push( i ); // collect b's properties
@@ -1743,7 +1885,7 @@ QUnit.equiv = (function() {
                        }
 
                        // apply transition with (1..n) arguments
-               }( args[0], args[1] ) && arguments.callee.apply( this, args.splice(1, args.length - 1 )) );
+               }( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) );
        };
 
        return innerEquiv;
@@ -1761,7 +1903,7 @@ QUnit.equiv = (function() {
  */
 QUnit.jsDump = (function() {
        function quote( str ) {
-               return '"' + str.toString().replace( /"/g, '\\"' ) + '"';
+               return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\"";
        }
        function literal( o ) {
                return o + "";
@@ -1854,13 +1996,13 @@ QUnit.jsDump = (function() {
                                if ( this.HTML ) {
                                        chr = chr.replace( /\t/g, "   " ).replace( / /g, "&nbsp;" );
                                }
-                               return new Array( this._depth_ + (extra||0) ).join(chr);
+                               return new Array( this.depth + ( extra || 0 ) ).join(chr);
                        },
                        up: function( a ) {
-                               this._depth_ += a || 1;
+                               this.depth += a || 1;
                        },
                        down: function( a ) {
-                               this._depth_ -= a || 1;
+                               this.depth -= a || 1;
                        },
                        setParser: function( name, parser ) {
                                this.parsers[name] = parser;
@@ -1870,7 +2012,7 @@ QUnit.jsDump = (function() {
                        literal: literal,
                        join: join,
                        //
-                       _depth_: 1,
+                       depth: 1,
                        // This is the list of parsers, to modify them, use jsDump.setParser
                        parsers: {
                                window: "[Window]",
@@ -1898,6 +2040,7 @@ QUnit.jsDump = (function() {
                                nodelist: array,
                                "arguments": array,
                                object: function( map, stack ) {
+                                       /*jshint forin:false */
                                        var ret = [ ], keys, key, val, i;
                                        QUnit.jsDump.up();
                                        keys = [];
@@ -1979,21 +2122,6 @@ QUnit.jsDump = (function() {
        return jsDump;
 }());
 
-// from jquery.js
-function inArray( elem, array ) {
-       if ( array.indexOf ) {
-               return array.indexOf( elem );
-       }
-
-       for ( var i = 0, length = array.length; i < length; i++ ) {
-               if ( array[ i ] === elem ) {
-                       return i;
-               }
-       }
-
-       return -1;
-}
-
 /*
  * Javascript Diff Algorithm
  *  By John Resig (http://ejohn.org/)
@@ -2036,18 +2164,17 @@ QUnit.diff = (function() {
                }
 
                for ( i in ns ) {
-                       if ( !hasOwn.call( ns, i ) ) {
-                               continue;
-                       }
-                       if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) {
-                               n[ ns[i].rows[0] ] = {
-                                       text: n[ ns[i].rows[0] ],
-                                       row: os[i].rows[0]
-                               };
-                               o[ os[i].rows[0] ] = {
-                                       text: o[ os[i].rows[0] ],
-                                       row: ns[i].rows[0]
-                               };
+                       if ( hasOwn.call( ns, i ) ) {
+                               if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) {
+                                       n[ ns[i].rows[0] ] = {
+                                               text: n[ ns[i].rows[0] ],
+                                               row: os[i].rows[0]
+                                       };
+                                       o[ os[i].rows[0] ] = {
+                                               text: o[ os[i].rows[0] ],
+                                               row: ns[i].rows[0]
+                                       };
+                               }
                        }
                }
 
@@ -2143,10 +2270,19 @@ QUnit.diff = (function() {
        };
 }());
 
-// for CommonJS enviroments, export everything
-if ( typeof exports !== "undefined" ) {
-       extend( exports, QUnit );
+// For browser, export only select globals
+if ( typeof window !== "undefined" ) {
+       extend( window, QUnit.constructor.prototype );
+       window.QUnit = QUnit;
+}
+
+// For CommonJS environments, export everything
+if ( typeof module !== "undefined" && module.exports ) {
+       module.exports = QUnit;
 }
 
-// get at whatever the global object is, like window in browsers
-}( (function() {return this;}.call()) ));
+
+// Get a reference to the global object, like window in browsers
+}( (function() {
+       return this;
+})() ));
index c321ab1..409022a 100644 (file)
@@ -12,5 +12,6 @@
     "ooui-dialog-action-close": "বন্ধ",
     "ooui-outline-control-move-down": "আইটেম নিচে স্থানান্তর",
     "ooui-outline-control-move-up": "আইটেম উপরে স্থানান্তর",
+    "ooui-outline-control-remove": "আইটেম সরান",
     "ooui-toolbar-more": "আরও"
-}
\ No newline at end of file
+}
index 2013ee3..5381fd1 100644 (file)
@@ -7,5 +7,6 @@
     "ooui-dialog-action-close": "បិទ",
     "ooui-outline-control-move-down": "រុញ​ទៅ​ក្រោម",
     "ooui-outline-control-move-up": "រុញ​ទៅ​លើ",
+    "ooui-outline-control-remove": "ដក​វត្ថុ​ចេញ",
     "ooui-toolbar-more": "បន្ថែម"
-}
\ No newline at end of file
+}
diff --git a/resources/lib/oojs-ui/i18n/zh-hk.json b/resources/lib/oojs-ui/i18n/zh-hk.json
deleted file mode 100644 (file)
index 60e8fbd..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "@metadata": [],
-    "ooui-dialog-action-close": "關閉"
-}
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/i18n/zh-tw.json b/resources/lib/oojs-ui/i18n/zh-tw.json
deleted file mode 100644 (file)
index f7987e5..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "@metadata": [],
-    "ooui-dialog-action-close": "關閉",
-    "ooui-outline-control-move-down": "向下移",
-    "ooui-outline-control-move-up": "向上移",
-    "ooui-toolbar-more": "更多"
-}
\ No newline at end of file
index 3ddb5b3..64a8e38 100644 (file)
   box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
 }
 
+.oo-ui-fieldLayout-disabled .oo-ui-labeledElement-label {
+  color: #ccc;
+}
+
 .oo-ui-fieldsetLayout {
   border: none;
 }
   opacity: 0.2;
 }
 
+.oo-ui-listToolGroup.oo-ui-widget-disabled {
+  color: #ccc;
+}
+
 .oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-indicatedElement-indicator,
 .oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-iconedElement-icon {
   opacity: 0.2;
 
 .oo-ui-menuToolGroup.oo-ui-widget-disabled {
   color: #ccc;
-  text-shadow: 0 1px 1px #fff;
-  background-color: #f3f3f3;
-  border-color: #ddd;
+  border-color: rgba(0, 0, 0, 0.05);
 }
 
 .oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-indicatedElement-indicator,
index cf838b9..958bc1c 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (4975b8db90)
+ * OOjs UI v0.1.0-pre (eca1fc20e7)
  * 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: Mon Apr 07 2014 15:17:10 GMT-0700 (PDT)
+ * Date: Fri Apr 11 2014 16:47:56 GMT-0700 (PDT)
  */
 ( function ( OO ) {
 
@@ -205,8 +205,8 @@ OO.initClass( OO.ui.Element );
  * This may be ignored if getTagName is overridden.
  *
  * @static
- * @property {string}
  * @inheritable
+ * @property {string}
  */
 OO.ui.Element.static.tagName = 'div';
 
@@ -593,6 +593,26 @@ OO.ui.Element.prototype.scrollElementIntoView = function ( config ) {
        return OO.ui.Element.scrollIntoView( this.$element[0], config );
 };
 
+/**
+ * Bind a handler for an event on this.$element
+ * @see #static-method-onDOMEvent
+ * @param {string} event
+ * @param {Function} callback
+ */
+OO.ui.Element.prototype.onDOMEvent = function ( event, callback ) {
+       OO.ui.Element.onDOMEvent( this.$element, event, callback );
+};
+
+/**
+ * Unbind a handler bound with #offDOMEvent
+ * @see #static-method-offDOMEvent
+ * @param {string} event
+ * @param {Function} callback
+ */
+OO.ui.Element.prototype.offDOMEvent = function ( event, callback ) {
+       OO.ui.Element.offDOMEvent( this.$element, event, callback );
+};
+
 ( function () {
        // Static
        var specialFocusin;
@@ -623,16 +643,18 @@ OO.ui.Element.prototype.scrollElementIntoView = function ( config ) {
        };
 
        /**
-        * Bind a handler for an event on the DOM element.
+        * Bind a handler for an event on a DOM element.
         *
         * Uses jQuery internally for everything except for events which are
         * known to have issues in the browser or in jQuery. This method
         * should become obsolete eventually.
         *
-        * @param {string} event
-        * @param {Function} callback
+        * @static
+        * @param {HTMLElement|jQuery} el DOM element
+        * @param {string} event Event to bind
+        * @param {Function} callback Callback to call when the event fires
         */
-       OO.ui.Element.prototype.onDOMEvent = function ( event, callback ) {
+       OO.ui.Element.onDOMEvent = function ( el, event, callback ) {
                var orig;
 
                if ( event === 'focusin' ) {
@@ -649,29 +671,33 @@ OO.ui.Element.prototype.scrollElementIntoView = function ( config ) {
                        orig = $.event.special.focusin;
                        $.event.special.focusin = specialFocusin;
 
-                       this.$element.on( event, callback );
+                       $( el ).on( event, callback );
 
                        // Restore
                        $.event.special.focusin = orig;
 
                } else {
-                       this.$element.on( event, callback );
+                       $( el ).on( event, callback );
                }
        };
 
        /**
-        * @param {string} event
-        * @param {Function} callback
+        * Unbind a handler bound with #static-method-onDOMEvent.
+        *
+        * @static
+        * @param {HTMLElement|jQuery} el DOM element
+        * @param {string} event Event to unbind
+        * @param {Function} [callback] Callback to unbind
         */
-       OO.ui.Element.prototype.offDOMEvent = function ( event, callback ) {
+       OO.ui.Element.offDOMEvent = function ( el, event, callback ) {
                var orig;
                if ( event === 'focusin' ) {
                        orig = $.event.special.focusin;
                        $.event.special.focusin = specialFocusin;
-                       this.$element.off( event, callback );
+                       $( el ).off( event, callback );
                        $.event.special.focusin = orig;
                } else {
-                       this.$element.off( event, callback );
+                       $( el ).off( event, callback );
                }
        };
 }() );
@@ -871,7 +897,7 @@ OO.ui.Frame.prototype.load = function () {
 
        // Properties
        this.$ = OO.ui.Element.getJQuery( doc, this );
-       this.$content = this.$( '.oo-ui-frame-content' );
+       this.$content = this.$( '.oo-ui-frame-content' ).attr( 'tabIndex', 0 );
        this.$document = this.$( doc );
 
        this.constructor.static.transplantStyles(
@@ -908,7 +934,7 @@ OO.ui.Frame.prototype.run = function ( callback ) {
 };
 
 /**
- * Sets the size of the frame.
+ * Set the size of the frame.
  *
  * @param {number} width Frame width in pixels
  * @param {number} height Frame height in pixels
@@ -1265,11 +1291,14 @@ OO.ui.Window.prototype.open = function ( data ) {
                this.frame.run( OO.ui.bind( function () {
                        this.$element.show();
                        this.visible = true;
-                       this.frame.$element.focus();
                        this.emit( 'opening', data );
                        this.setup( data );
                        this.emit( 'open', data );
                        this.opening = false;
+                       // Focus the content div (which has a tabIndex) to inactivate
+                       // (but not clear) selections in the parent frame.
+                       // Must happen after the window has opened.
+                       this.frame.$content.focus();
                }, this ) );
        }
 
@@ -1483,6 +1512,8 @@ OO.ui.WindowSet.prototype.addWindow = function ( win ) {
        this.$element.append( win.$element );
 };
 /**
+ * Modal dialog window.
+ *
  * @abstract
  * @class
  * @extends OO.ui.Window
@@ -1526,8 +1557,8 @@ OO.inheritClass( OO.ui.Dialog, OO.ui.Window );
  *
  * @abstract
  * @static
- * @property {string}
  * @inheritable
+ * @property {string}
  */
 OO.ui.Dialog.static.name = '';
 
@@ -1535,8 +1566,8 @@ OO.ui.Dialog.static.name = '';
  * Map of symbolic size names and CSS classes.
  *
  * @static
- * @property {Object}
  * @inheritable
+ * @property {Object}
  */
 OO.ui.Dialog.static.sizeCssClasses = {
        'small': 'oo-ui-dialog-small',
@@ -1806,8 +1837,8 @@ OO.ui.Widget.prototype.setDisabled = function ( disabled ) {
 /**
  * Element with a button.
  *
- * @class
  * @abstract
+ * @class
  *
  * @constructor
  * @param {jQuery} $button Button node, assigned to #$button
@@ -1846,14 +1877,16 @@ OO.ui.ButtonedElement = function OoUiButtonedElement( $button, config ) {
 /**
  * Handles mouse down events.
  *
- * @method
  * @param {jQuery.Event} e Mouse down event
  */
 OO.ui.ButtonedElement.prototype.onMouseDown = function () {
-       this.tabIndex = this.$button.attr( 'tabIndex' );
+       // tabIndex should generally be interacted with via the property,
+       // but it's not possible to reliably unset a tabIndex via a property
+       // so we use the (lowercase) "tabindex" attribute instead.
+       this.tabIndex = this.$button.attr( 'tabindex' );
        // Remove the tab-index while the button is down to prevent the button from stealing focus
        this.$button
-               .removeAttr( 'tabIndex' )
+               .removeAttr( 'tabindex' )
                .addClass( 'oo-ui-buttonedElement-pressed' );
        this.getElementDocument().addEventListener( 'mouseup', this.onMouseUpHandler, true );
 };
@@ -1861,13 +1894,12 @@ OO.ui.ButtonedElement.prototype.onMouseDown = function () {
 /**
  * Handles mouse up events.
  *
- * @method
  * @param {jQuery.Event} e Mouse up event
  */
 OO.ui.ButtonedElement.prototype.onMouseUp = function () {
        // Restore the tab-index after the button is up to restore the button's accesssibility
        this.$button
-               .attr( 'tabIndex', this.tabIndex )
+               .attr( 'tabindex', this.tabIndex )
                .removeClass( 'oo-ui-buttonedElement-pressed' );
        this.getElementDocument().removeEventListener( 'mouseup', this.onMouseUpHandler, true );
 };
@@ -1875,7 +1907,6 @@ OO.ui.ButtonedElement.prototype.onMouseUp = function () {
 /**
  * Set active state.
  *
- * @method
  * @param {boolean} [value] Make button active
  * @chainable
  */
@@ -1886,8 +1917,8 @@ OO.ui.ButtonedElement.prototype.setActive = function ( value ) {
 /**
  * Element that can be automatically clipped to visible boundaies.
  *
- * @class
  * @abstract
+ * @class
  *
  * @constructor
  * @param {jQuery} $clippable Nodes to clip, assigned to #$clippable
@@ -1918,7 +1949,6 @@ OO.ui.ClippableElement = function OoUiClippableElement( $clippable, config ) {
 /**
  * Set clipping.
  *
- * @method
  * @param {boolean} value Enable clipping
  * @chainable
  */
@@ -1954,7 +1984,6 @@ OO.ui.ClippableElement.prototype.setClipping = function ( value ) {
 /**
  * Check if the element will be clipped to fit the visible area of the nearest scrollable container.
  *
- * @method
  * @return {boolean} Element will be clipped to the visible area
  */
 OO.ui.ClippableElement.prototype.isClipping = function () {
@@ -1964,7 +1993,6 @@ OO.ui.ClippableElement.prototype.isClipping = function () {
 /**
  * Check if the bottom or right of the element is being clipped by the nearest scrollable container.
  *
- * @method
  * @return {boolean} Part of the element is being clipped
  */
 OO.ui.ClippableElement.prototype.isClipped = function () {
@@ -1974,7 +2002,6 @@ OO.ui.ClippableElement.prototype.isClipped = function () {
 /**
  * Set the ideal size.
  *
- * @method
  * @param {number|string} [width] Width as a number of pixels or CSS string with unit suffix
  * @param {number|string} [height] Height as a number of pixels or CSS string with unit suffix
  */
@@ -1989,7 +2016,6 @@ OO.ui.ClippableElement.prototype.setIdealSize = function ( width, height ) {
  * Element will be clipped the bottom or right of the element is within 10px of the edge of, or
  * overlapped by, the visible area of the nearest scrollable container.
  *
- * @method
  * @chainable
  */
 OO.ui.ClippableElement.prototype.clip = function () {
@@ -2028,10 +2054,13 @@ OO.ui.ClippableElement.prototype.clip = function () {
        return this;
 };
 /**
- * Element with named flags, used for styling, that can be added, removed and listed and checked.
+ * Element with named flags that can be added, removed, listed and checked.
+ *
+ * A flag, when set, adds a CSS class on the `$element` by combing `oo-ui-flaggableElement-` with
+ * the flag name. Flags are primarily useful for styling.
  *
- * @class
  * @abstract
+ * @class
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -2053,19 +2082,17 @@ OO.ui.FlaggableElement = function OoUiFlaggableElement( config ) {
 /**
  * Check if a flag is set.
  *
- * @method
- * @param {string} flag Flag name to check
- * @returns {boolean} Has flag
+ * @param {string} flag Name of flag
+ * @return {boolean} Has flag
  */
 OO.ui.FlaggableElement.prototype.hasFlag = function ( flag ) {
        return flag in this.flags;
 };
 
 /**
- * Get the names of all flags.
+ * Get the names of all flags set.
  *
- * @method
- * @returns {string[]} flags Flag names
+ * @return {string[]} flags Flag names
  */
 OO.ui.FlaggableElement.prototype.getFlags = function () {
        return Object.keys( this.flags );
@@ -2074,7 +2101,6 @@ OO.ui.FlaggableElement.prototype.getFlags = function () {
 /**
  * Add one or more flags.
  *
- * @method
  * @param {string[]|Object.<string, boolean>} flags List of flags to add, or list of set/remove
  *  values, keyed by flag name
  * @chainable
@@ -2108,8 +2134,8 @@ OO.ui.FlaggableElement.prototype.setFlags = function ( flags ) {
 /**
  * Element containing a sequence of child elements.
  *
- * @class
  * @abstract
+ * @class
  *
  * @constructor
  * @param {jQuery} $group Container node, assigned to #$group
@@ -2133,8 +2159,7 @@ OO.ui.GroupElement = function OoUiGroupElement( $group, config ) {
 /**
  * Get items.
  *
- * @method
- * @returns {OO.ui.Element[]} Items
+ * @return {OO.ui.Element[]} Items
  */
 OO.ui.GroupElement.prototype.getItems = function () {
        return this.items.slice( 0 );
@@ -2143,7 +2168,6 @@ OO.ui.GroupElement.prototype.getItems = function () {
 /**
  * Add items.
  *
- * @method
  * @param {OO.ui.Element[]} items Item
  * @param {number} [index] Index to insert items at
  * @chainable
@@ -2197,7 +2221,6 @@ OO.ui.GroupElement.prototype.addItems = function ( items, index ) {
  *
  * Items will be detached, not removed, so they can be used later.
  *
- * @method
  * @param {OO.ui.Element[]} items Items to remove
  * @chainable
  */
@@ -2227,7 +2250,6 @@ OO.ui.GroupElement.prototype.removeItems = function ( items ) {
  *
  * Items will be detached, not removed, so they can be used later.
  *
- * @method
  * @chainable
  */
 OO.ui.GroupElement.prototype.clearItems = function () {
@@ -2244,12 +2266,14 @@ OO.ui.GroupElement.prototype.clearItems = function () {
        this.items = [];
        this.$items.detach();
        this.$items = this.$( [] );
+
+       return this;
 };
 /**
  * Element containing an icon.
  *
- * @class
  * @abstract
+ * @class
  *
  * @constructor
  * @param {jQuery} $icon Icon node, assigned to #$icon
@@ -2301,7 +2325,6 @@ OO.ui.IconedElement.static.icon = null;
 /**
  * Set icon.
  *
- * @method
  * @param {Object|string} icon Symbolic icon name, or map of icon names keyed by language ID;
  *  use the 'default' key to specify the icon to be used when there is no icon in the user's
  *  language
@@ -2328,8 +2351,7 @@ OO.ui.IconedElement.prototype.setIcon = function ( icon ) {
 /**
  * Get icon.
  *
- * @method
- * @returns {string} Icon
+ * @return {string} Icon
  */
 OO.ui.IconedElement.prototype.getIcon = function () {
        return this.icon;
@@ -2337,8 +2359,8 @@ OO.ui.IconedElement.prototype.getIcon = function () {
 /**
  * Element containing an indicator.
  *
- * @class
  * @abstract
+ * @class
  *
  * @constructor
  * @param {jQuery} $indicator Indicator node, assigned to #$indicator
@@ -2391,7 +2413,6 @@ OO.ui.IndicatedElement.static.indicatorTitle = null;
 /**
  * Set indicator.
  *
- * @method
  * @param {string|null} indicator Symbolic name of indicator to use or null for no indicator
  * @chainable
  */
@@ -2415,7 +2436,6 @@ OO.ui.IndicatedElement.prototype.setIndicator = function ( indicator ) {
 /**
  * Set indicator label.
  *
- * @method
  * @param {string|Function|null} indicator Indicator title text, a function that return text or null
  *  for no indicator title
  * @chainable
@@ -2435,8 +2455,7 @@ OO.ui.IndicatedElement.prototype.setIndicatorTitle = function ( indicatorTitle )
 /**
  * Get indicator.
  *
- * @method
- * @returns {string} title Symbolic name of indicator
+ * @return {string} title Symbolic name of indicator
  */
 OO.ui.IndicatedElement.prototype.getIndicator = function () {
        return this.indicator;
@@ -2445,8 +2464,7 @@ OO.ui.IndicatedElement.prototype.getIndicator = function () {
 /**
  * Get indicator title.
  *
- * @method
- * @returns {string} Indicator title text
+ * @return {string} Indicator title text
  */
 OO.ui.IndicatedElement.prototype.getIndicatorTitle = function () {
        return this.indicatorTitle;
@@ -2454,8 +2472,8 @@ OO.ui.IndicatedElement.prototype.getIndicatorTitle = function () {
 /**
  * Element containing a label.
  *
- * @class
  * @abstract
+ * @class
  *
  * @constructor
  * @param {jQuery} $label Label node, assigned to #$label
@@ -2501,7 +2519,6 @@ OO.ui.LabeledElement.static.label = null;
  * An empty string will result in the label being hidden. A string containing only whitespace will
  * be converted to a single &nbsp;
  *
- * @method
  * @param {jQuery|string|Function|null} label Label nodes; text; a function that retuns nodes or
  *  text; or null for no label
  * @chainable
@@ -2532,8 +2549,7 @@ OO.ui.LabeledElement.prototype.setLabel = function ( label ) {
 /**
  * Get the label.
  *
- * @method
- * @returns {jQuery|string|Function|null} label Label nodes; text; a function that returns nodes or
+ * @return {jQuery|string|Function|null} label Label nodes; text; a function that returns nodes or
  *  text; or null for no label
  */
 OO.ui.LabeledElement.prototype.getLabel = function () {
@@ -2543,7 +2559,6 @@ OO.ui.LabeledElement.prototype.getLabel = function () {
 /**
  * Fit the label.
  *
- * @method
  * @chainable
  */
 OO.ui.LabeledElement.prototype.fitLabel = function () {
@@ -2555,8 +2570,8 @@ OO.ui.LabeledElement.prototype.fitLabel = function () {
 /**
  * Popuppable element.
  *
- * @class
  * @abstract
+ * @class
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -2583,8 +2598,7 @@ OO.ui.PopuppableElement = function OoUiPopuppableElement( config ) {
 /**
  * Get popup.
  *
- * @method
- * @returns {OO.ui.PopupWidget} Popup widget
+ * @return {OO.ui.PopupWidget} Popup widget
  */
 OO.ui.PopuppableElement.prototype.getPopup = function () {
        return this.popup;
@@ -2592,8 +2606,6 @@ OO.ui.PopuppableElement.prototype.getPopup = function () {
 
 /**
  * Show popup.
- *
- * @method
  */
 OO.ui.PopuppableElement.prototype.showPopup = function () {
        this.popup.show().display( this.popupWidth, this.popupHeight );
@@ -2601,8 +2613,6 @@ OO.ui.PopuppableElement.prototype.showPopup = function () {
 
 /**
  * Hide popup.
- *
- * @method
  */
 OO.ui.PopuppableElement.prototype.hidePopup = function () {
        this.popup.hide();
@@ -2610,8 +2620,8 @@ OO.ui.PopuppableElement.prototype.hidePopup = function () {
 /**
  * Element with a title.
  *
- * @class
  * @abstract
+ * @class
  *
  * @constructor
  * @param {jQuery} $label Titled node, assigned to #$titled
@@ -2650,7 +2660,6 @@ OO.ui.TitledElement.static.title = null;
 /**
  * Set title.
  *
- * @method
  * @param {string|Function|null} title Title text, a function that returns text or null for no title
  * @chainable
  */
@@ -2669,8 +2678,7 @@ OO.ui.TitledElement.prototype.setTitle = function ( title ) {
 /**
  * Get title.
  *
- * @method
- * @returns {string} Title string
+ * @return {string} Title string
  */
 OO.ui.TitledElement.prototype.getTitle = function () {
        return this.title;
@@ -2748,8 +2756,8 @@ OO.ui.Tool.static.tagName = 'span';
  *
  * @abstract
  * @static
- * @property {string}
  * @inheritable
+ * @property {string}
  */
 OO.ui.Tool.static.name = '';
 
@@ -2758,8 +2766,8 @@ OO.ui.Tool.static.name = '';
  *
  * @abstract
  * @static
- * @property {string}
  * @inheritable
+ * @property {string}
  */
 OO.ui.Tool.static.group = '';
 
@@ -2773,8 +2781,8 @@ OO.ui.Tool.static.group = '';
  *
  * @abstract
  * @static
- * @property {string|Function} Title text or a function that returns text
  * @inheritable
+ * @property {string|Function} Title text or a function that returns text
  */
 OO.ui.Tool.static.title = '';
 
@@ -2782,8 +2790,8 @@ OO.ui.Tool.static.title = '';
  * Tool can be automatically added to catch-all groups.
  *
  * @static
- * @property {boolean}
  * @inheritable
+ * @property {boolean}
  */
 OO.ui.Tool.static.autoAddToCatchall = true;
 
@@ -2800,7 +2808,6 @@ OO.ui.Tool.static.autoAddToGroup = true;
  * Check if this tool is compatible with given data.
  *
  * @static
- * @method
  * @inheritable
  * @param {Mixed} data Data to check
  * @return {boolean} Tool can be used with data
@@ -3327,8 +3334,8 @@ OO.mixinClass( OO.ui.ToolGroup, OO.ui.GroupElement );
  * Show labels in tooltips.
  *
  * @static
- * @property {boolean}
  * @inheritable
+ * @property {boolean}
  */
 OO.ui.ToolGroup.static.titleTooltips = false;
 
@@ -3336,8 +3343,8 @@ OO.ui.ToolGroup.static.titleTooltips = false;
  * Show acceleration labels in tooltips.
  *
  * @static
- * @property {boolean}
  * @inheritable
+ * @property {boolean}
  */
 OO.ui.ToolGroup.static.accelTooltips = false;
 
@@ -3345,8 +3352,8 @@ OO.ui.ToolGroup.static.accelTooltips = false;
  * Automatically disable the toolgroup when all tools are disabled
  *
  * @static
- * @property {boolean}
  * @inheritable
+ * @property {boolean}
  */
 OO.ui.ToolGroup.static.autoDisable = true;
 
@@ -3567,7 +3574,7 @@ OO.ui.ToolGroup.prototype.destroy = function () {
        this.$element.remove();
 };
 /**
- * Factory for tools.
+ * Factory for tool groups.
  *
  * @class
  * @extends OO.Factory
@@ -3594,6 +3601,7 @@ OO.inheritClass( OO.ui.ToolGroupFactory, OO.Factory );
 
 /**
  * Get a default set of classes to be registered on construction
+ *
  * @return {Function[]} Default classes
  */
 OO.ui.ToolGroupFactory.static.getDefaultClasses = function () {
@@ -3691,11 +3699,13 @@ OO.ui.FieldLayout = function OoUiFieldLayout( field, config ) {
        if ( this.field instanceof OO.ui.InputWidget ) {
                this.$label.on( 'click', OO.ui.bind( this.onLabelClick, this ) );
        }
+       this.field.connect( this, { 'disable': 'onFieldDisable' } );
 
        // Initialization
        this.$element.addClass( 'oo-ui-fieldLayout' );
        this.$field
                .addClass( 'oo-ui-fieldLayout-field' )
+               .toggleClass( 'oo-ui-fieldLayout-disable', this.field.isDisabled() )
                .append( this.field.$element );
        this.setAlignment( config.align );
 };
@@ -3708,9 +3718,17 @@ OO.mixinClass( OO.ui.FieldLayout, OO.ui.LabeledElement );
 /* Methods */
 
 /**
- * Handles label mouse click events.
+ * Handle field disable events.
+ *
+ * @param {boolean} value Field is disabled
+ */
+OO.ui.FieldLayout.prototype.onFieldDisable = function ( value ) {
+       this.$element.toggleClass( 'oo-ui-fieldLayout-disabled', value );
+};
+
+/**
+ * Handle label mouse click events.
  *
- * @method
  * @param {jQuery.Event} e Mouse click event
  */
 OO.ui.FieldLayout.prototype.onLabelClick = function () {
@@ -3721,7 +3739,7 @@ OO.ui.FieldLayout.prototype.onLabelClick = function () {
 /**
  * Get the field.
  *
- * @returns {OO.ui.Widget} Field widget
+ * @return {OO.ui.Widget} Field widget
  */
 OO.ui.FieldLayout.prototype.getField = function () {
        return this.field;
@@ -3822,7 +3840,6 @@ OO.ui.GridLayout.static.tagName = 'div';
 /**
  * Set grid dimensions.
  *
- * @method
  * @param {number[]} widths Widths of columns as ratios
  * @param {number[]} heights Heights of rows as ratios
  * @fires layout
@@ -3864,7 +3881,6 @@ OO.ui.GridLayout.prototype.layout = function ( widths, heights ) {
 /**
  * Update panel positions and sizes.
  *
- * @method
  * @fires update
  */
 OO.ui.GridLayout.prototype.update = function () {
@@ -3910,10 +3926,9 @@ OO.ui.GridLayout.prototype.update = function () {
  *
  * The x and y position is affected by the current grid layout.
  *
- * @method
  * @param {number} x Horizontal position
  * @param {number} y Vertical position
- * @returns {OO.ui.PanelLayout} The panel at the given postion
+ * @return {OO.ui.PanelLayout} The panel at the given postion
  */
 OO.ui.GridLayout.prototype.getPanel = function ( x, y ) {
        return this.panels[( x * this.widths.length ) + y];
@@ -4020,7 +4035,6 @@ OO.inheritClass( OO.ui.BookletLayout, OO.ui.Layout );
 /**
  * Handle stack layout focus.
  *
- * @method
  * @param {jQuery.Event} e Focusin event
  */
 OO.ui.BookletLayout.prototype.onStackLayoutFocus = function ( e ) {
@@ -4043,7 +4057,6 @@ OO.ui.BookletLayout.prototype.onStackLayoutFocus = function ( e ) {
 /**
  * Handle stack layout set events.
  *
- * @method
  * @param {OO.ui.PanelLayout|null} page The page panel that is now the current panel
  */
 OO.ui.BookletLayout.prototype.onStackLayoutSet = function ( page ) {
@@ -4062,7 +4075,6 @@ OO.ui.BookletLayout.prototype.onStackLayoutSet = function ( page ) {
 /**
  * Handle outline widget select events.
  *
- * @method
  * @param {OO.ui.OptionWidget|null} item Selected item
  */
 OO.ui.BookletLayout.prototype.onOutlineWidgetSelect = function ( item ) {
@@ -4074,8 +4086,7 @@ OO.ui.BookletLayout.prototype.onOutlineWidgetSelect = function ( item ) {
 /**
  * Check if booklet has an outline.
  *
- * @method
- * @returns {boolean} Booklet is outlined
+ * @return {boolean}
  */
 OO.ui.BookletLayout.prototype.isOutlined = function () {
        return this.outlined;
@@ -4084,18 +4095,16 @@ OO.ui.BookletLayout.prototype.isOutlined = function () {
 /**
  * Check if booklet has editing controls.
  *
- * @method
- * @returns {boolean} Booklet is outlined
+ * @return {boolean}
  */
 OO.ui.BookletLayout.prototype.isEditable = function () {
        return this.editable;
 };
 
 /**
- * Check if booklet has editing controls.
+ * Check if booklet has a visible outline.
  *
- * @method
- * @returns {boolean} Booklet is outlined
+ * @return {boolean}
  */
 OO.ui.BookletLayout.prototype.isOutlineVisible = function () {
        return this.outlined && this.outlineVisible;
@@ -4120,9 +4129,8 @@ OO.ui.BookletLayout.prototype.toggleOutline = function ( show ) {
 /**
  * Get the outline widget.
  *
- * @method
  * @param {OO.ui.PageLayout} page Page to be selected
- * @returns {OO.ui.PageLayout|null} Closest page to another
+ * @return {OO.ui.PageLayout|null} Closest page to another
  */
 OO.ui.BookletLayout.prototype.getClosestPage = function ( page ) {
        var next, prev, level,
@@ -4155,8 +4163,7 @@ OO.ui.BookletLayout.prototype.getClosestPage = function ( page ) {
 /**
  * Get the outline widget.
  *
- * @method
- * @returns {OO.ui.OutlineWidget|null} Outline widget, or null if boolet has no outline
+ * @return {OO.ui.OutlineWidget|null} Outline widget, or null if boolet has no outline
  */
 OO.ui.BookletLayout.prototype.getOutline = function () {
        return this.outlineWidget;
@@ -4165,8 +4172,7 @@ OO.ui.BookletLayout.prototype.getOutline = function () {
 /**
  * Get the outline controls widget. If the outline is not editable, null is returned.
  *
- * @method
- * @returns {OO.ui.OutlineControlsWidget|null} The outline controls widget.
+ * @return {OO.ui.OutlineControlsWidget|null} The outline controls widget.
  */
 OO.ui.BookletLayout.prototype.getOutlineControls = function () {
        return this.outlineControlsWidget;
@@ -4175,9 +4181,8 @@ OO.ui.BookletLayout.prototype.getOutlineControls = function () {
 /**
  * Get a page by name.
  *
- * @method
  * @param {string} name Symbolic name of page
- * @returns {OO.ui.PageLayout|undefined} Page, if found
+ * @return {OO.ui.PageLayout|undefined} Page, if found
  */
 OO.ui.BookletLayout.prototype.getPage = function ( name ) {
        return this.pages[name];
@@ -4186,8 +4191,7 @@ OO.ui.BookletLayout.prototype.getPage = function ( name ) {
 /**
  * Get the current page name.
  *
- * @method
- * @returns {string|null} Current page name
+ * @return {string|null} Current page name
  */
 OO.ui.BookletLayout.prototype.getPageName = function () {
        return this.currentPageName;
@@ -4199,7 +4203,6 @@ OO.ui.BookletLayout.prototype.getPageName = function () {
  * When pages are added with the same names as existing pages, the existing pages will be
  * automatically removed before the new pages are added.
  *
- * @method
  * @param {OO.ui.PageLayout[]} pages Pages to add
  * @param {number} index Index to insert pages after
  * @fires add
@@ -4254,7 +4257,6 @@ OO.ui.BookletLayout.prototype.addPages = function ( pages, index ) {
 /**
  * Remove a page from the layout.
  *
- * @method
  * @fires remove
  * @chainable
  */
@@ -4284,7 +4286,6 @@ OO.ui.BookletLayout.prototype.removePages = function ( pages ) {
 /**
  * Clear all pages from the layout.
  *
- * @method
  * @fires remove
  * @chainable
  */
@@ -4310,7 +4311,6 @@ OO.ui.BookletLayout.prototype.clearPages = function () {
 /**
  * Set the current page by name.
  *
- * @method
  * @fires set
  * @param {string} name Symbolic name of page
  */
@@ -4340,7 +4340,6 @@ OO.ui.BookletLayout.prototype.setPage = function ( name ) {
 /**
  * Call this after adding or removing items from the OutlineWidget.
  *
- * @method
  * @chainable
  */
 OO.ui.BookletLayout.prototype.updateOutlineWidget = function () {
@@ -4387,7 +4386,7 @@ OO.ui.PanelLayout = function OoUiPanelLayout( config ) {
 
 OO.inheritClass( OO.ui.PanelLayout, OO.ui.Layout );
 /**
- * Page within an OO.ui.BookletLayout.
+ * Page within an booklet layout.
  *
  * @class
  * @extends OO.ui.PanelLayout
@@ -4429,7 +4428,7 @@ OO.inheritClass( OO.ui.PageLayout, OO.ui.PanelLayout );
 /**
  * Get page name.
  *
- * @returns {string} Symbolic name of page
+ * @return {string} Symbolic name of page
  */
 OO.ui.PageLayout.prototype.getName = function () {
        return this.name;
@@ -4438,7 +4437,7 @@ OO.ui.PageLayout.prototype.getName = function () {
 /**
  * Check if page is active.
  *
- * @returns {boolean} Page is active
+ * @return {boolean} Page is active
  */
 OO.ui.PageLayout.prototype.isActive = function () {
        return this.active;
@@ -4447,7 +4446,7 @@ OO.ui.PageLayout.prototype.isActive = function () {
 /**
  * Get outline item.
  *
- * @returns {OO.ui.OutlineItemWidget|null} Outline item widget
+ * @return {OO.ui.OutlineItemWidget|null} Outline item widget
  */
 OO.ui.PageLayout.prototype.getOutlineItem = function () {
        return this.outlineItem;
@@ -4535,7 +4534,6 @@ OO.mixinClass( OO.ui.StackLayout, OO.ui.GroupElement );
  *
  * Adding an existing item (by value) will move it.
  *
- * @method
  * @param {OO.ui.PanelLayout[]} items Items to add
  * @param {number} [index] Index to insert items after
  * @chainable
@@ -4555,7 +4553,6 @@ OO.ui.StackLayout.prototype.addItems = function ( items, index ) {
  *
  * Items will be detached, not removed, so they can be used later.
  *
- * @method
  * @param {OO.ui.PanelLayout[]} items Items to remove
  * @chainable
  */
@@ -4576,7 +4573,6 @@ OO.ui.StackLayout.prototype.removeItems = function ( items ) {
  *
  * Items will be detached, not removed, so they can be used later.
  *
- * @method
  * @chainable
  */
 OO.ui.StackLayout.prototype.clearItems = function () {
@@ -4591,7 +4587,6 @@ OO.ui.StackLayout.prototype.clearItems = function () {
  *
  * Any currently shown item will be hidden.
  *
- * @method
  * @param {OO.ui.PanelLayout} item Item to show
  * @chainable
  */
@@ -4616,8 +4611,8 @@ OO.ui.StackLayout.prototype.setItem = function ( item ) {
 /**
  * Horizontal bar layout of tools as icon buttons.
  *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.ToolGroup
  *
  * @constructor
@@ -4646,8 +4641,8 @@ OO.ui.BarToolGroup.static.name = 'bar';
 /**
  * Popup list of tools with an icon and optional label.
  *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.ToolGroup
  * @mixins OO.ui.IconedElement
  * @mixins OO.ui.IndicatedElement
@@ -4724,7 +4719,6 @@ OO.ui.PopupToolGroup.prototype.setDisabled = function () {
  *
  * The event is actually generated from a mouseup, so it is not a normal blur event object.
  *
- * @method
  * @param {jQuery.Event} e Mouse up event
  */
 OO.ui.PopupToolGroup.prototype.onBlur = function ( e ) {
@@ -4747,7 +4741,6 @@ OO.ui.PopupToolGroup.prototype.onMouseUp = function ( e ) {
 /**
  * Handle mouse up events.
  *
- * @method
  * @param {jQuery.Event} e Mouse up event
  */
 OO.ui.PopupToolGroup.prototype.onHandleMouseUp = function () {
@@ -4757,7 +4750,6 @@ OO.ui.PopupToolGroup.prototype.onHandleMouseUp = function () {
 /**
  * Handle mouse down events.
  *
- * @method
  * @param {jQuery.Event} e Mouse down event
  */
 OO.ui.PopupToolGroup.prototype.onHandleMouseDown = function ( e ) {
@@ -4771,8 +4763,6 @@ OO.ui.PopupToolGroup.prototype.onHandleMouseDown = function ( e ) {
  * Switch into active mode.
  *
  * When active, mouseup events anywhere in the document will trigger deactivation.
- *
- * @method
  */
 OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
        value = !!value;
@@ -4792,8 +4782,8 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
 /**
  * Drop down list layout of tools as labeled icon buttons.
  *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.PopupToolGroup
  *
  * @constructor
@@ -4820,8 +4810,8 @@ OO.ui.ListToolGroup.static.name = 'list';
 /**
  * Drop down menu layout of tools as selectable menu items.
  *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.PopupToolGroup
  *
  * @constructor
@@ -4859,8 +4849,6 @@ OO.ui.MenuToolGroup.static.name = 'menu';
  *
  * When the state changes, the title of each active item in the menu will be joined together and
  * used as a label for the group. The label will be empty if none of the items are active.
- *
- * @method
  */
 OO.ui.MenuToolGroup.prototype.onUpdateState = function () {
        var name,
@@ -4875,7 +4863,7 @@ OO.ui.MenuToolGroup.prototype.onUpdateState = function () {
        this.setLabel( labelTexts.join( ', ' ) || ' ' );
 };
 /**
- * UserInterface popup tool.
+ * Tool that shows a popup when selected.
  *
  * @abstract
  * @class
@@ -4938,8 +4926,8 @@ OO.ui.PopupTool.prototype.onUpdateState = function () {
  *
  * Use together with OO.ui.ItemWidget to make disabled state inheritable.
  *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.GroupElement
  *
  * @constructor
@@ -4962,7 +4950,6 @@ OO.inheritClass( OO.ui.GroupWidget, OO.ui.GroupElement );
  *
  * This will also update the disabled state of child widgets.
  *
- * @method
  * @param {boolean} disabled Disable widget
  * @chainable
  */
@@ -4988,8 +4975,8 @@ OO.ui.GroupWidget.prototype.setDisabled = function ( disabled ) {
  *
  * Use together with OO.ui.GroupWidget to make disabled state inheritable.
  *
- * @class
  * @abstract
+ * @class
  *
  * @constructor
  */
@@ -5004,7 +4991,7 @@ OO.ui.ItemWidget = function OoUiItemWidget() {
  *
  * Checks parent if present, making disabled state inheritable.
  *
- * @returns {boolean} Widget is disabled
+ * @return {boolean} Widget is disabled
  */
 OO.ui.ItemWidget.prototype.isDisabled = function () {
        return this.disabled ||
@@ -5027,7 +5014,7 @@ OO.ui.ItemWidget.prototype.setElementGroup = function ( group ) {
        return this;
 };
 /**
- * Creates an OO.ui.IconWidget object.
+ * Icon widget.
  *
  * @class
  * @extends OO.ui.Widget
@@ -5062,7 +5049,7 @@ OO.mixinClass( OO.ui.IconWidget, OO.ui.TitledElement );
 
 OO.ui.IconWidget.static.tagName = 'span';
 /**
- * Creates an OO.ui.IndicatorWidget object.
+ * Indicator widget.
  *
  * @class
  * @extends OO.ui.Widget
@@ -5099,6 +5086,8 @@ OO.ui.IndicatorWidget.static.tagName = 'span';
 /**
  * Container for multiple related buttons.
  *
+ * Use together with OO.ui.ButtonWidget.
+ *
  * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.GroupElement
@@ -5126,10 +5115,10 @@ OO.ui.ButtonGroupWidget = function OoUiButtonGroupWidget( config ) {
 OO.inheritClass( OO.ui.ButtonGroupWidget, OO.ui.Widget );
 OO.mixinClass( OO.ui.ButtonGroupWidget, OO.ui.GroupElement );
 /**
- * Creates an OO.ui.ButtonWidget object.
+ * Button widget.
  *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.ButtonedElement
  * @mixins OO.ui.IconedElement
@@ -5198,7 +5187,6 @@ OO.mixinClass( OO.ui.ButtonWidget, OO.ui.FlaggableElement );
 /**
  * Handles mouse click events.
  *
- * @method
  * @param {jQuery.Event} e Mouse click event
  * @fires click
  */
@@ -5215,7 +5203,6 @@ OO.ui.ButtonWidget.prototype.onClick = function () {
 /**
  * Handles keypress events.
  *
- * @method
  * @param {jQuery.Event} e Keypress event
  * @fires click
  */
@@ -5229,10 +5216,10 @@ OO.ui.ButtonWidget.prototype.onKeyPress = function ( e ) {
        return false;
 };
 /**
- * Creates an OO.ui.InputWidget object.
+ * Input widget.
  *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.Widget
  *
  * @constructor
@@ -5283,9 +5270,8 @@ OO.inheritClass( OO.ui.InputWidget, OO.ui.Widget );
 /**
  * Get input element.
  *
- * @method
  * @param {Object} [config] Configuration options
- * @returns {jQuery} Input element
+ * @return {jQuery} Input element
  */
 OO.ui.InputWidget.prototype.getInputElement = function () {
        return this.$( '<input>' );
@@ -5294,7 +5280,6 @@ OO.ui.InputWidget.prototype.getInputElement = function () {
 /**
  * Handle potentially value-changing events.
  *
- * @method
  * @param {jQuery.Event} e Key down, mouse up, cut, paste, change, input, or select event
  */
 OO.ui.InputWidget.prototype.onEdit = function () {
@@ -5309,8 +5294,7 @@ OO.ui.InputWidget.prototype.onEdit = function () {
 /**
  * Get the value of the input.
  *
- * @method
- * @returns {string} Input value
+ * @return {string} Input value
  */
 OO.ui.InputWidget.prototype.getValue = function () {
        return this.value;
@@ -5319,7 +5303,6 @@ OO.ui.InputWidget.prototype.getValue = function () {
 /**
  * Sets the direction of the current input, either RTL or LTR
  *
- * @method
  * @param {boolean} isRTL
  */
 OO.ui.InputWidget.prototype.setRTL = function ( isRTL ) {
@@ -5335,7 +5318,6 @@ OO.ui.InputWidget.prototype.setRTL = function ( isRTL ) {
 /**
  * Set the value of the input.
  *
- * @method
  * @param {string} value New value
  * @fires change
  * @chainable
@@ -5359,9 +5341,8 @@ OO.ui.InputWidget.prototype.setValue = function ( value ) {
  *
  * Ensures value is a string, and converts undefined and null to empty strings.
  *
- * @method
  * @param {string} value Original value
- * @returns {string} Sanitized value
+ * @return {string} Sanitized value
  */
 OO.ui.InputWidget.prototype.sanitizeValue = function ( value ) {
        if ( value === undefined || value === null ) {
@@ -5375,8 +5356,6 @@ OO.ui.InputWidget.prototype.sanitizeValue = function ( value ) {
 
 /**
  * Simulate the behavior of clicking on a label bound to this input.
- *
- * @method
  */
 OO.ui.InputWidget.prototype.simulateLabelClick = function () {
        if ( !this.isDisabled() ) {
@@ -5391,8 +5370,7 @@ OO.ui.InputWidget.prototype.simulateLabelClick = function () {
 /**
  * Check if the widget is read-only.
  *
- * @method
- * @param {boolean} Input is read-only
+ * @return {boolean}
  */
 OO.ui.InputWidget.prototype.isReadOnly = function () {
        return this.readOnly;
@@ -5403,7 +5381,6 @@ OO.ui.InputWidget.prototype.isReadOnly = function () {
  *
  * This should probably change the widgets's appearance and prevent it from being used.
  *
- * @method
  * @param {boolean} state Make input read-only
  * @chainable
  */
@@ -5424,7 +5401,7 @@ OO.ui.InputWidget.prototype.setDisabled = function ( state ) {
        return this;
 };
 /**
- * Creates an OO.ui.CheckboxInputWidget object.
+ * Checkbox widget.
  *
  * @class
  * @extends OO.ui.InputWidget
@@ -5451,7 +5428,7 @@ OO.inheritClass( OO.ui.CheckboxInputWidget, OO.ui.InputWidget );
 /**
  * Get input element.
  *
- * @returns {jQuery} Input element
+ * @return {jQuery} Input element
  */
 OO.ui.CheckboxInputWidget.prototype.getInputElement = function () {
        return this.$( '<input type="checkbox" />' );
@@ -5460,7 +5437,7 @@ OO.ui.CheckboxInputWidget.prototype.getInputElement = function () {
 /**
  * Get checked state of the checkbox
  *
- * @returns {boolean} If the checkbox is checked
+ * @return {boolean} If the checkbox is checked
  */
 OO.ui.CheckboxInputWidget.prototype.getValue = function () {
        return this.value;
@@ -5490,7 +5467,7 @@ OO.ui.CheckboxInputWidget.prototype.onEdit = function () {
        }
 };
 /**
- * Creates an OO.ui.LabelWidget object.
+ * Label widget.
  *
  * @class
  * @extends OO.ui.Widget
@@ -5535,7 +5512,6 @@ OO.ui.LabelWidget.static.tagName = 'label';
 /**
  * Handles label mouse click events.
  *
- * @method
  * @param {jQuery.Event} e Mouse click event
  */
 OO.ui.LabelWidget.prototype.onClick = function () {
@@ -5593,7 +5569,6 @@ OO.ui.LookupInputWidget = function OoUiLookupInputWidget( input, config ) {
 /**
  * Handle input focus event.
  *
- * @method
  * @param {jQuery.Event} e Input focus event
  */
 OO.ui.LookupInputWidget.prototype.onLookupInputFocus = function () {
@@ -5603,7 +5578,6 @@ OO.ui.LookupInputWidget.prototype.onLookupInputFocus = function () {
 /**
  * Handle input blur event.
  *
- * @method
  * @param {jQuery.Event} e Input blur event
  */
 OO.ui.LookupInputWidget.prototype.onLookupInputBlur = function () {
@@ -5613,7 +5587,6 @@ OO.ui.LookupInputWidget.prototype.onLookupInputBlur = function () {
 /**
  * Handle input mouse down event.
  *
- * @method
  * @param {jQuery.Event} e Input mouse down event
  */
 OO.ui.LookupInputWidget.prototype.onLookupInputMouseDown = function () {
@@ -5623,7 +5596,6 @@ OO.ui.LookupInputWidget.prototype.onLookupInputMouseDown = function () {
 /**
  * Handle input change event.
  *
- * @method
  * @param {string} value New input value
  */
 OO.ui.LookupInputWidget.prototype.onLookupInputChange = function () {
@@ -5633,7 +5605,6 @@ OO.ui.LookupInputWidget.prototype.onLookupInputChange = function () {
 /**
  * Open the menu.
  *
- * @method
  * @chainable
  */
 OO.ui.LookupInputWidget.prototype.openLookupMenu = function () {
@@ -5655,7 +5626,6 @@ OO.ui.LookupInputWidget.prototype.openLookupMenu = function () {
 /**
  * Populate lookup menu with current information.
  *
- * @method
  * @chainable
  */
 OO.ui.LookupInputWidget.prototype.populateLookupMenu = function () {
@@ -5686,7 +5656,6 @@ OO.ui.LookupInputWidget.prototype.populateLookupMenu = function () {
 /**
  * Set selection in the lookup menu with current information.
  *
- * @method
  * @chainable
  */
 OO.ui.LookupInputWidget.prototype.initializeLookupMenuSelection = function () {
@@ -5699,8 +5668,7 @@ OO.ui.LookupInputWidget.prototype.initializeLookupMenuSelection = function () {
 /**
  * Get lookup menu items for the current query.
  *
- * @method
- * @returns {jQuery.Promise} Promise object which will be passed menu items as the first argument
+ * @return {jQuery.Promise} Promise object which will be passed menu items as the first argument
  * of the done event
  */
 OO.ui.LookupInputWidget.prototype.getLookupMenuItems = function () {
@@ -5742,9 +5710,8 @@ OO.ui.LookupInputWidget.prototype.getLookupMenuItems = function () {
 /**
  * Get a new request object of the current lookup query value.
  *
- * @method
  * @abstract
- * @returns {jqXHR} jQuery AJAX object, or promise object with an .abort() method
+ * @return {jqXHR} jQuery AJAX object, or promise object with an .abort() method
  */
 OO.ui.LookupInputWidget.prototype.getLookupRequest = function () {
        // Stub, implemented in subclass
@@ -5757,7 +5724,6 @@ OO.ui.LookupInputWidget.prototype.getLookupRequest = function () {
  * Overriding methods should call #populateLookupMenu when results are available and cache results
  * for future lookups in #lookupCache as an array of #OO.ui.MenuItemWidget objects.
  *
- * @method
  * @abstract
  * @param {Mixed} data Response from server
  */
@@ -5768,20 +5734,21 @@ OO.ui.LookupInputWidget.prototype.onLookupRequestDone = function () {
 /**
  * Get a list of menu item widgets from the data stored by the lookup request's done handler.
  *
- * @method
  * @abstract
  * @param {Mixed} data Cached result data, usually an array
- * @returns {OO.ui.MenuItemWidget[]} Menu items
+ * @return {OO.ui.MenuItemWidget[]} Menu items
  */
 OO.ui.LookupInputWidget.prototype.getLookupMenuItemsFromData = function () {
        // Stub, implemented in subclass
        return [];
 };
 /**
- * Creates an OO.ui.OptionWidget object.
+ * Option widget.
+ *
+ * Use with OO.ui.SelectWidget.
  *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.IconedElement
  * @mixins OO.ui.LabeledElement
@@ -5850,8 +5817,7 @@ OO.ui.OptionWidget.static.scrollIntoViewOnSelect = false;
 /**
  * Check if option can be selected.
  *
- * @method
- * @returns {boolean} Item is selectable
+ * @return {boolean} Item is selectable
  */
 OO.ui.OptionWidget.prototype.isSelectable = function () {
        return this.constructor.static.selectable && !this.disabled;
@@ -5860,8 +5826,7 @@ OO.ui.OptionWidget.prototype.isSelectable = function () {
 /**
  * Check if option can be highlighted.
  *
- * @method
- * @returns {boolean} Item is highlightable
+ * @return {boolean} Item is highlightable
  */
 OO.ui.OptionWidget.prototype.isHighlightable = function () {
        return this.constructor.static.highlightable && !this.disabled;
@@ -5870,8 +5835,7 @@ OO.ui.OptionWidget.prototype.isHighlightable = function () {
 /**
  * Check if option can be pressed.
  *
- * @method
- * @returns {boolean} Item is pressable
+ * @return {boolean} Item is pressable
  */
 OO.ui.OptionWidget.prototype.isPressable = function () {
        return this.constructor.static.pressable && !this.disabled;
@@ -5880,8 +5844,7 @@ OO.ui.OptionWidget.prototype.isPressable = function () {
 /**
  * Check if option is selected.
  *
- * @method
- * @returns {boolean} Item is selected
+ * @return {boolean} Item is selected
  */
 OO.ui.OptionWidget.prototype.isSelected = function () {
        return this.selected;
@@ -5890,8 +5853,7 @@ OO.ui.OptionWidget.prototype.isSelected = function () {
 /**
  * Check if option is highlighted.
  *
- * @method
- * @returns {boolean} Item is highlighted
+ * @return {boolean} Item is highlighted
  */
 OO.ui.OptionWidget.prototype.isHighlighted = function () {
        return this.highlighted;
@@ -5900,8 +5862,7 @@ OO.ui.OptionWidget.prototype.isHighlighted = function () {
 /**
  * Check if option is pressed.
  *
- * @method
- * @returns {boolean} Item is pressed
+ * @return {boolean} Item is pressed
  */
 OO.ui.OptionWidget.prototype.isPressed = function () {
        return this.pressed;
@@ -5910,7 +5871,6 @@ OO.ui.OptionWidget.prototype.isPressed = function () {
 /**
  * Set selected state.
  *
- * @method
  * @param {boolean} [state=false] Select option
  * @chainable
  */
@@ -5932,7 +5892,6 @@ OO.ui.OptionWidget.prototype.setSelected = function ( state ) {
 /**
  * Set highlighted state.
  *
- * @method
  * @param {boolean} [state=false] Highlight option
  * @chainable
  */
@@ -5951,7 +5910,6 @@ OO.ui.OptionWidget.prototype.setHighlighted = function ( state ) {
 /**
  * Set pressed state.
  *
- * @method
  * @param {boolean} [state=false] Press option
  * @chainable
  */
@@ -5972,7 +5930,6 @@ OO.ui.OptionWidget.prototype.setPressed = function ( state ) {
  *
  * While flashing, the visual style of the pressed state is removed if present.
  *
- * @method
  * @param {Function} [done] Callback to execute when flash effect is complete.
  */
 OO.ui.OptionWidget.prototype.flash = function ( done ) {
@@ -5996,17 +5953,18 @@ OO.ui.OptionWidget.prototype.flash = function ( done ) {
 /**
  * Get option data.
  *
- * @method
- * @returns {Mixed} Option data
+ * @return {Mixed} Option data
  */
 OO.ui.OptionWidget.prototype.getData = function () {
        return this.data;
 };
 /**
- * Create an OO.ui.SelectWidget object.
+ * Selection of options.
+ *
+ * Use together with OO.ui.OptionWidget.
  *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.GroupElement
  *
@@ -6095,7 +6053,6 @@ OO.ui.SelectWidget.static.tagName = 'ul';
 /**
  * Handle mouse down events.
  *
- * @method
  * @private
  * @param {jQuery.Event} e Mouse down event
  */
@@ -6117,7 +6074,6 @@ OO.ui.SelectWidget.prototype.onMouseDown = function ( e ) {
 /**
  * Handle mouse up events.
  *
- * @method
  * @private
  * @param {jQuery.Event} e Mouse up event
  */
@@ -6143,7 +6099,6 @@ OO.ui.SelectWidget.prototype.onMouseUp = function ( e ) {
 /**
  * Handle mouse move events.
  *
- * @method
  * @private
  * @param {jQuery.Event} e Mouse move event
  */
@@ -6163,7 +6118,6 @@ OO.ui.SelectWidget.prototype.onMouseMove = function ( e ) {
 /**
  * Handle mouse over events.
  *
- * @method
  * @private
  * @param {jQuery.Event} e Mouse over event
  */
@@ -6180,7 +6134,6 @@ OO.ui.SelectWidget.prototype.onMouseOver = function ( e ) {
 /**
  * Handle mouse leave events.
  *
- * @method
  * @private
  * @param {jQuery.Event} e Mouse over event
  */
@@ -6194,10 +6147,9 @@ OO.ui.SelectWidget.prototype.onMouseLeave = function () {
 /**
  * Get the closest item to a jQuery.Event.
  *
- * @method
  * @private
  * @param {jQuery.Event} e
- * @returns {OO.ui.OptionWidget|null} Outline item widget, `null` if none was found
+ * @return {OO.ui.OptionWidget|null} Outline item widget, `null` if none was found
  */
 OO.ui.SelectWidget.prototype.getTargetItem = function ( e ) {
        var $item = this.$( e.target ).closest( '.oo-ui-optionWidget' );
@@ -6210,8 +6162,7 @@ OO.ui.SelectWidget.prototype.getTargetItem = function ( e ) {
 /**
  * Get selected item.
  *
- * @method
- * @returns {OO.ui.OptionWidget|null} Selected item, `null` if no item is selected
+ * @return {OO.ui.OptionWidget|null} Selected item, `null` if no item is selected
  */
 OO.ui.SelectWidget.prototype.getSelectedItem = function () {
        var i, len;
@@ -6227,8 +6178,7 @@ OO.ui.SelectWidget.prototype.getSelectedItem = function () {
 /**
  * Get highlighted item.
  *
- * @method
- * @returns {OO.ui.OptionWidget|null} Highlighted item, `null` if no item is highlighted
+ * @return {OO.ui.OptionWidget|null} Highlighted item, `null` if no item is highlighted
  */
 OO.ui.SelectWidget.prototype.getHighlightedItem = function () {
        var i, len;
@@ -6244,9 +6194,8 @@ OO.ui.SelectWidget.prototype.getHighlightedItem = function () {
 /**
  * Get an existing item with equivilant data.
  *
- * @method
  * @param {Object} data Item data to search for
- * @returns {OO.ui.OptionWidget|null} Item with equivilent value, `null` if none exists
+ * @return {OO.ui.OptionWidget|null} Item with equivilent value, `null` if none exists
  */
 OO.ui.SelectWidget.prototype.getItemFromData = function ( data ) {
        var hash = OO.getHash( data );
@@ -6279,7 +6228,6 @@ OO.ui.SelectWidget.prototype.togglePressed = function ( pressed ) {
  *
  * Highlighting is mutually exclusive.
  *
- * @method
  * @param {OO.ui.OptionWidget} [item] Item to highlight, omit to deselect all
  * @fires highlight
  * @chainable
@@ -6305,7 +6253,6 @@ OO.ui.SelectWidget.prototype.highlightItem = function ( item ) {
 /**
  * Select an item.
  *
- * @method
  * @param {OO.ui.OptionWidget} [item] Item to select, omit to deselect all
  * @fires select
  * @chainable
@@ -6331,7 +6278,6 @@ OO.ui.SelectWidget.prototype.selectItem = function ( item ) {
 /**
  * Press an item.
  *
- * @method
  * @param {OO.ui.OptionWidget} [item] Item to press, omit to depress all
  * @fires press
  * @chainable
@@ -6360,7 +6306,6 @@ OO.ui.SelectWidget.prototype.pressItem = function ( item ) {
  * Identical to #selectItem, but may vary in subclasses that want to take additional action when
  * an item is selected using the keyboard or mouse.
  *
- * @method
  * @param {OO.ui.OptionWidget} item Item to choose
  * @fires choose
  * @chainable
@@ -6375,10 +6320,9 @@ OO.ui.SelectWidget.prototype.chooseItem = function ( item ) {
 /**
  * Get an item relative to another one.
  *
- * @method
  * @param {OO.ui.OptionWidget} item Item to start at
  * @param {number} direction Direction to move in
- * @returns {OO.ui.OptionWidget|null} Item at position, `null` if there are no items in the menu
+ * @return {OO.ui.OptionWidget|null} Item at position, `null` if there are no items in the menu
  */
 OO.ui.SelectWidget.prototype.getRelativeSelectableItem = function ( item, direction ) {
        var inc = direction > 0 ? 1 : -1,
@@ -6409,8 +6353,7 @@ OO.ui.SelectWidget.prototype.getRelativeSelectableItem = function ( item, direct
 /**
  * Get the next selectable item.
  *
- * @method
- * @returns {OO.ui.OptionWidget|null} Item, `null` if ther aren't any selectable items
+ * @return {OO.ui.OptionWidget|null} Item, `null` if ther aren't any selectable items
  */
 OO.ui.SelectWidget.prototype.getFirstSelectableItem = function () {
        var i, len, item;
@@ -6431,7 +6374,6 @@ OO.ui.SelectWidget.prototype.getFirstSelectableItem = function () {
  * When items are added with the same values as existing items, the existing items will be
  * automatically removed before the new items are added.
  *
- * @method
  * @param {OO.ui.OptionWidget[]} items Items to add
  * @param {number} [index] Index to insert items after
  * @fires add
@@ -6467,7 +6409,6 @@ OO.ui.SelectWidget.prototype.addItems = function ( items, index ) {
  *
  * Items will be detached, not removed, so they can be used later.
  *
- * @method
  * @param {OO.ui.OptionWidget[]} items Items to remove
  * @fires remove
  * @chainable
@@ -6498,7 +6439,6 @@ OO.ui.SelectWidget.prototype.removeItems = function ( items ) {
  *
  * Items will be detached, not removed, so they can be used later.
  *
- * @method
  * @fires remove
  * @chainable
  */
@@ -6515,7 +6455,9 @@ OO.ui.SelectWidget.prototype.clearItems = function () {
        return this;
 };
 /**
- * Creates an OO.ui.MenuItemWidget object.
+ * Menu item widget.
+ *
+ * Use with OO.ui.MenuWidget.
  *
  * @class
  * @extends OO.ui.OptionWidget
@@ -6539,7 +6481,9 @@ OO.ui.MenuItemWidget = function OoUiMenuItemWidget( data, config ) {
 
 OO.inheritClass( OO.ui.MenuItemWidget, OO.ui.OptionWidget );
 /**
- * Create an OO.ui.MenuWidget object.
+ * Menu widget.
+ *
+ * Use together with OO.ui.MenuItemWidget.
  *
  * @class
  * @extends OO.ui.SelectWidget
@@ -6582,7 +6526,6 @@ OO.mixinClass( OO.ui.MenuWidget, OO.ui.ClippableElement );
 /**
  * Handles key down events.
  *
- * @method
  * @param {jQuery.Event} e Key down event
  */
 OO.ui.MenuWidget.prototype.onKeyDown = function ( e ) {
@@ -6632,17 +6575,14 @@ OO.ui.MenuWidget.prototype.onKeyDown = function ( e ) {
 /**
  * Check if the menu is visible.
  *
- * @method
- * @returns {boolean} Menu is visible
+ * @return {boolean} Menu is visible
  */
 OO.ui.MenuWidget.prototype.isVisible = function () {
        return this.visible;
 };
 
 /**
- * Bind key down listener
- *
- * @method
+ * Bind key down listener.
  */
 OO.ui.MenuWidget.prototype.bindKeyDownListener = function () {
        if ( this.$input ) {
@@ -6654,9 +6594,7 @@ OO.ui.MenuWidget.prototype.bindKeyDownListener = function () {
 };
 
 /**
- * Unbind key down listener
- *
- * @method
+ * Unbind key down listener.
  */
 OO.ui.MenuWidget.prototype.unbindKeyDownListener = function () {
        if ( this.$input ) {
@@ -6671,7 +6609,6 @@ OO.ui.MenuWidget.prototype.unbindKeyDownListener = function () {
  *
  * This will close the menu when done, unlike selectItem which only changes selection.
  *
- * @method
  * @param {OO.ui.OptionWidget} item Item to choose
  * @chainable
  */
@@ -6697,7 +6634,6 @@ OO.ui.MenuWidget.prototype.chooseItem = function ( item ) {
  *
  * Adding an existing item (by value) will move it.
  *
- * @method
  * @param {OO.ui.MenuItemWidget[]} items Items to add
  * @param {number} [index] Index to insert items after
  * @chainable
@@ -6729,7 +6665,6 @@ OO.ui.MenuWidget.prototype.addItems = function ( items, index ) {
 /**
  * Show the menu.
  *
- * @method
  * @chainable
  */
 OO.ui.MenuWidget.prototype.show = function () {
@@ -6761,7 +6696,6 @@ OO.ui.MenuWidget.prototype.show = function () {
 /**
  * Hide the menu.
  *
- * @method
  * @chainable
  */
 OO.ui.MenuWidget.prototype.hide = function () {
@@ -6781,6 +6715,8 @@ OO.ui.MenuWidget.prototype.hide = function () {
 /**
  * Inline menu of options.
  *
+ * Use with OO.ui.MenuOptionWidget.
+ *
  * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.IconedElement
@@ -6844,11 +6780,16 @@ OO.ui.InlineMenuWidget.prototype.getMenu = function () {
 /**
  * Handles menu select events.
  *
- * @method
  * @param {OO.ui.MenuItemWidget} item Selected menu item
  */
 OO.ui.InlineMenuWidget.prototype.onMenuSelect = function ( item ) {
-       var selectedLabel = item.getLabel();
+       var selectedLabel;
+
+       if ( !item ) {
+               return;
+       }
+
+       selectedLabel = item.getLabel();
 
        // If the label is a DOM element, clone it, because setLabel will append() it
        if ( selectedLabel instanceof jQuery ) {
@@ -6861,7 +6802,6 @@ OO.ui.InlineMenuWidget.prototype.onMenuSelect = function ( item ) {
 /**
  * Handles mouse click events.
  *
- * @method
  * @param {jQuery.Event} e Mouse click event
  */
 OO.ui.InlineMenuWidget.prototype.onClick = function ( e ) {
@@ -6880,7 +6820,9 @@ OO.ui.InlineMenuWidget.prototype.onClick = function ( e ) {
        return false;
 };
 /**
- * Creates an OO.ui.MenuSectionItemWidget object.
+ * Menu section item widget.
+ *
+ * Use with OO.ui.MenuWidget.
  *
  * @class
  * @extends OO.ui.OptionWidget
@@ -6909,6 +6851,8 @@ OO.ui.MenuSectionItemWidget.static.highlightable = false;
 /**
  * Create an OO.ui.OutlineWidget object.
  *
+ * Use with OO.ui.OutlineItemWidget.
+ *
  * @class
  * @extends OO.ui.SelectWidget
  *
@@ -6932,6 +6876,8 @@ OO.inheritClass( OO.ui.OutlineWidget, OO.ui.SelectWidget );
 /**
  * Creates an OO.ui.OutlineControlsWidget object.
  *
+ * Use together with OO.ui.OutlineWidget.js
+ *
  * @class
  *
  * @constructor
@@ -7011,8 +6957,6 @@ OO.mixinClass( OO.ui.OutlineControlsWidget, OO.ui.IconedElement );
 
 /**
  * Handle outline change events.
- *
- * @method
  */
 OO.ui.OutlineControlsWidget.prototype.onOutlineChange = function () {
        var i, len, firstMovable, lastMovable,
@@ -7045,6 +6989,8 @@ OO.ui.OutlineControlsWidget.prototype.onOutlineChange = function () {
 /**
  * Creates an OO.ui.OutlineItemWidget object.
  *
+ * Use with OO.ui.OutlineWidget.
+ *
  * @class
  * @extends OO.ui.OptionWidget
  *
@@ -7092,7 +7038,7 @@ OO.ui.OutlineItemWidget.static.levels = 3;
  *
  * Movablilty is used by outline controls.
  *
- * @returns {boolean} Item is movable
+ * @return {boolean} Item is movable
  */
 OO.ui.OutlineItemWidget.prototype.isMovable = function () {
        return this.movable;
@@ -7103,7 +7049,7 @@ OO.ui.OutlineItemWidget.prototype.isMovable = function () {
  *
  * Removablilty is used by outline controls.
  *
- * @returns {boolean} Item is removable
+ * @return {boolean} Item is removable
  */
 OO.ui.OutlineItemWidget.prototype.isRemovable = function () {
        return this.removable;
@@ -7112,7 +7058,7 @@ OO.ui.OutlineItemWidget.prototype.isRemovable = function () {
 /**
  * Get indentation level.
  *
- * @returns {number} Indentation level
+ * @return {number} Indentation level
  */
 OO.ui.OutlineItemWidget.prototype.getLevel = function () {
        return this.level;
@@ -7147,7 +7093,6 @@ OO.ui.OutlineItemWidget.prototype.setRemovable = function ( removable ) {
 /**
  * Set indentation level.
  *
- * @method
  * @param {number} [level=0] Indentation level, in the range of [0,#maxLevel]
  * @chainable
  */
@@ -7168,7 +7113,9 @@ OO.ui.OutlineItemWidget.prototype.setLevel = function ( level ) {
        return this;
 };
 /**
- * Create an OO.ui.ButtonOptionWidget object.
+ * Option widget that looks like a button.
+ *
+ * Use together with OO.ui.ButtonSelectWidget.
  *
  * @class
  * @extends OO.ui.OptionWidget
@@ -7212,7 +7159,9 @@ OO.ui.ButtonOptionWidget.prototype.setSelected = function ( state ) {
        return this;
 };
 /**
- * Create an OO.ui.ButtonSelect object.
+ * Select widget containing button options.
+ *
+ * Use together with OO.ui.ButtonOptionWidget.
  *
  * @class
  * @extends OO.ui.SelectWidget
@@ -7232,7 +7181,7 @@ OO.ui.ButtonSelectWidget = function OoUiButtonSelectWidget( config ) {
 
 OO.inheritClass( OO.ui.ButtonSelectWidget, OO.ui.SelectWidget );
 /**
- * Creates an OO.ui.PopupWidget object.
+ * Container for content that is overlaid and positioned absolutely.
  *
  * @class
  * @extends OO.ui.Widget
@@ -7315,7 +7264,6 @@ OO.mixinClass( OO.ui.PopupWidget, OO.ui.ClippableElement );
 /**
  * Handles mouse down events.
  *
- * @method
  * @param {jQuery.Event} e Mouse down event
  */
 OO.ui.PopupWidget.prototype.onMouseDown = function ( e ) {
@@ -7329,9 +7277,7 @@ OO.ui.PopupWidget.prototype.onMouseDown = function ( e ) {
 };
 
 /**
- * Bind mouse down listener
- *
- * @method
+ * Bind mouse down listener.
  */
 OO.ui.PopupWidget.prototype.bindMouseDownListener = function () {
        // Capture clicks outside popup
@@ -7340,8 +7286,6 @@ OO.ui.PopupWidget.prototype.bindMouseDownListener = function () {
 
 /**
  * Handles close button click events.
- *
- * @method
  */
 OO.ui.PopupWidget.prototype.onCloseButtonClick = function () {
        if ( this.visible ) {
@@ -7350,9 +7294,7 @@ OO.ui.PopupWidget.prototype.onCloseButtonClick = function () {
 };
 
 /**
- * Unbind mouse down listener
- *
- * @method
+ * Unbind mouse down listener.
  */
 OO.ui.PopupWidget.prototype.unbindMouseDownListener = function () {
        this.getElementWindow().removeEventListener( 'mousedown', this.onMouseDownHandler, true );
@@ -7361,8 +7303,7 @@ OO.ui.PopupWidget.prototype.unbindMouseDownListener = function () {
 /**
  * Check if the popup is visible.
  *
- * @method
- * @returns {boolean} Popup is visible
+ * @return {boolean} Popup is visible
  */
 OO.ui.PopupWidget.prototype.isVisible = function () {
        return this.visible;
@@ -7371,8 +7312,7 @@ OO.ui.PopupWidget.prototype.isVisible = function () {
 /**
  * Set whether to show a tail.
  *
- * @method
- * @returns {boolean} Make tail visible
+ * @return {boolean} Make tail visible
  */
 OO.ui.PopupWidget.prototype.useTail = function ( value ) {
        value = !!value;
@@ -7389,8 +7329,7 @@ OO.ui.PopupWidget.prototype.useTail = function ( value ) {
 /**
  * Check if showing a tail.
  *
- * @method
- * @returns {boolean} tail is visible
+ * @return {boolean} tail is visible
  */
 OO.ui.PopupWidget.prototype.hasTail = function () {
        return this.tail;
@@ -7399,7 +7338,6 @@ OO.ui.PopupWidget.prototype.hasTail = function () {
 /**
  * Show the context.
  *
- * @method
  * @fires show
  * @chainable
  */
@@ -7419,7 +7357,6 @@ OO.ui.PopupWidget.prototype.show = function () {
 /**
  * Hide the context.
  *
- * @method
  * @fires hide
  * @chainable
  */
@@ -7439,7 +7376,6 @@ OO.ui.PopupWidget.prototype.hide = function () {
 /**
  * Updates the position and size.
  *
- * @method
  * @param {number} width Width
  * @param {number} height Height
  * @param {boolean} [transition=false] Use a smooth transition
@@ -7522,7 +7458,6 @@ OO.mixinClass( OO.ui.PopupButtonWidget, OO.ui.PopuppableElement );
 /**
  * Handles mouse click events.
  *
- * @method
  * @param {jQuery.Event} e Mouse click event
  */
 OO.ui.PopupButtonWidget.prototype.onClick = function ( e ) {
@@ -7542,7 +7477,9 @@ OO.ui.PopupButtonWidget.prototype.onClick = function ( e ) {
        return false;
 };
 /**
- * Creates an OO.ui.SearchWidget object.
+ * Search widget.
+ *
+ * Combines query and results selection widgets.
  *
  * @class
  * @extends OO.ui.Widget
@@ -7614,7 +7551,6 @@ OO.inheritClass( OO.ui.SearchWidget, OO.ui.Widget );
 /**
  * Handle query key down events.
  *
- * @method
  * @param {jQuery.Event} e Key down event
  */
 OO.ui.SearchWidget.prototype.onQueryKeydown = function ( e ) {
@@ -7637,7 +7573,6 @@ OO.ui.SearchWidget.prototype.onQueryKeydown = function ( e ) {
  *
  * Clears existing results. Subclasses should repopulate items according to new query.
  *
- * @method
  * @param {string} value New value
  */
 OO.ui.SearchWidget.prototype.onQueryChange = function () {
@@ -7650,7 +7585,6 @@ OO.ui.SearchWidget.prototype.onQueryChange = function () {
  *
  * Selects highlighted item.
  *
- * @method
  * @param {string} value New value
  */
 OO.ui.SearchWidget.prototype.onQueryEnter = function () {
@@ -7661,7 +7595,6 @@ OO.ui.SearchWidget.prototype.onQueryEnter = function () {
 /**
  * Handle select widget highlight events.
  *
- * @method
  * @param {OO.ui.OptionWidget} item Highlighted item
  * @fires highlight
  */
@@ -7672,7 +7605,6 @@ OO.ui.SearchWidget.prototype.onResultsHighlight = function ( item ) {
 /**
  * Handle select widget select events.
  *
- * @method
  * @param {OO.ui.OptionWidget} item Selected item
  * @fires select
  */
@@ -7683,8 +7615,7 @@ OO.ui.SearchWidget.prototype.onResultsSelect = function ( item ) {
 /**
  * Get the query input.
  *
- * @method
- * @returns {OO.ui.TextInputWidget} Query input
+ * @return {OO.ui.TextInputWidget} Query input
  */
 OO.ui.SearchWidget.prototype.getQuery = function () {
        return this.query;
@@ -7700,14 +7631,13 @@ OO.ui.SearchWidget.prototype.clear = function () {
 /**
  * Get the results list.
  *
- * @method
- * @returns {OO.ui.SelectWidget} Select list
+ * @return {OO.ui.SelectWidget} Select list
  */
 OO.ui.SearchWidget.prototype.getResults = function () {
        return this.results;
 };
 /**
- * Creates an OO.ui.TextInputWidget object.
+ * Text input widget.
  *
  * @class
  * @extends OO.ui.InputWidget
@@ -7771,7 +7701,7 @@ OO.inheritClass( OO.ui.TextInputWidget, OO.ui.InputWidget );
 /* Methods */
 
 /**
- * Handles key press events.
+ * Handle key press events.
  *
  * @param {jQuery.Event} e Key press event
  * @fires enter If enter key is pressed and input is not multiline
@@ -7783,7 +7713,7 @@ OO.ui.TextInputWidget.prototype.onKeyPress = function ( e ) {
 };
 
 /**
- * Handles element attach events.
+ * Handle element attach events.
  *
  * @param {jQuery.Event} e Element attach event
  */
@@ -7841,9 +7771,8 @@ OO.ui.TextInputWidget.prototype.adjustSize = function () {
 /**
  * Get input element.
  *
- * @method
  * @param {Object} [config] Configuration options
- * @returns {jQuery} Input element
+ * @return {jQuery} Input element
  */
 OO.ui.TextInputWidget.prototype.getInputElement = function ( config ) {
        return config.multiline ? this.$( '<textarea>' ) : this.$( '<input type="text" />' );
@@ -7852,39 +7781,35 @@ OO.ui.TextInputWidget.prototype.getInputElement = function ( config ) {
 /* Methods */
 
 /**
- * Checks if input supports multiple lines.
+ * Check if input supports multiple lines.
  *
- * @method
- * @returns {boolean} Input supports multiple lines
+ * @return {boolean}
  */
 OO.ui.TextInputWidget.prototype.isMultiline = function () {
        return !!this.multiline;
 };
 
 /**
- * Checks if input automatically adjusts its size.
+ * Check if input automatically adjusts its size.
  *
- * @method
- * @returns {boolean} Input automatically adjusts its size
+ * @return {boolean}
  */
 OO.ui.TextInputWidget.prototype.isAutosizing = function () {
        return !!this.autosize;
 };
 
 /**
- * Checks if input is pending.
+ * Check if input is pending.
  *
- * @method
- * @returns {boolean} Input is pending
+ * @return {boolean}
  */
 OO.ui.TextInputWidget.prototype.isPending = function () {
        return !!this.pending;
 };
 
 /**
- * Increases the pending stack.
+ * Increase the pending stack.
  *
- * @method
  * @chainable
  */
 OO.ui.TextInputWidget.prototype.pushPending = function () {
@@ -7895,11 +7820,10 @@ OO.ui.TextInputWidget.prototype.pushPending = function () {
 };
 
 /**
- * Reduces the pending stack.
+ * Reduce the pending stack.
  *
  * Clamped at zero.
  *
- * @method
  * @chainable
  */
 OO.ui.TextInputWidget.prototype.popPending = function () {
@@ -7911,7 +7835,7 @@ OO.ui.TextInputWidget.prototype.popPending = function () {
        return this;
 };
 /**
- * Creates an OO.ui.TextInputMenuWidget object.
+ * Menu for a text input widget.
  *
  * @class
  * @extends OO.ui.MenuWidget
@@ -7943,7 +7867,6 @@ OO.inheritClass( OO.ui.TextInputMenuWidget, OO.ui.MenuWidget );
 /**
  * Handle window resize event.
  *
- * @method
  * @param {jQuery.Event} e Window resize event
  */
 OO.ui.TextInputMenuWidget.prototype.onWindowResize = function () {
@@ -7951,9 +7874,8 @@ OO.ui.TextInputMenuWidget.prototype.onWindowResize = function () {
 };
 
 /**
- * Shows the menu.
+ * Show the menu.
  *
- * @method
  * @chainable
  */
 OO.ui.TextInputMenuWidget.prototype.show = function () {
@@ -7966,9 +7888,8 @@ OO.ui.TextInputMenuWidget.prototype.show = function () {
 };
 
 /**
- * Hides the menu.
+ * Hide the menu.
  *
- * @method
  * @chainable
  */
 OO.ui.TextInputMenuWidget.prototype.hide = function () {
@@ -7980,9 +7901,8 @@ OO.ui.TextInputMenuWidget.prototype.hide = function () {
 };
 
 /**
- * Positions the menu.
+ * Position the menu.
  *
- * @method
  * @chainable
  */
 OO.ui.TextInputMenuWidget.prototype.position = function () {
@@ -8015,10 +7935,12 @@ OO.ui.TextInputMenuWidget.prototype.position = function () {
        return this;
 };
 /**
+ * Width with on and off states.
+ *
  * Mixin for widgets with a boolean state.
  *
- * @class
  * @abstract
+ * @class
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -8048,8 +7970,7 @@ OO.ui.ToggleWidget = function OoUiToggleWidget( config ) {
 /**
  * Get the value of the toggle.
  *
- * @method
- * @returns {boolean} Toggle value
+ * @return {boolean}
  */
 OO.ui.ToggleWidget.prototype.getValue = function () {
        return this.value;
@@ -8058,7 +7979,6 @@ OO.ui.ToggleWidget.prototype.getValue = function () {
 /**
  * Set the value of the toggle.
  *
- * @method
  * @param {boolean} value New value
  * @fires change
  * @chainable
@@ -8074,6 +7994,8 @@ OO.ui.ToggleWidget.prototype.setValue = function ( value ) {
        return this;
 };
 /**
+ * Button that toggles on and off.
+ *
  * @class
  * @extends OO.ui.ButtonWidget
  * @mixins OO.ui.ToggleWidget
@@ -8130,8 +8052,10 @@ OO.ui.ToggleButtonWidget.prototype.setValue = function ( value ) {
        return this;
 };
 /**
- * @class
+ * Switch that slides on and off.
+ *
  * @abstract
+ * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.ToggleWidget
  *
@@ -8172,9 +8096,8 @@ OO.mixinClass( OO.ui.ToggleSwitchWidget, OO.ui.ToggleWidget );
 /* Methods */
 
 /**
- * Handles mouse down events.
+ * Handle mouse down events.
  *
- * @method
  * @param {jQuery.Event} e Mouse down event
  */
 OO.ui.ToggleSwitchWidget.prototype.onClick = function ( e ) {
index 873fd19..7a7cffa 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (4975b8db90)
+ * OOjs UI v0.1.0-pre (eca1fc20e7)
  * 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: Mon Apr 07 2014 15:17:10 GMT-0700 (PDT)
+ * Date: Fri Apr 11 2014 16:47:56 GMT-0700 (PDT)
  */
 
 /* Textures */
   background: none;
 }
 
+.oo-ui-frame-content:focus {
+  outline: none;
+}
+
 .oo-ui-toolbar {
   clear: both;
 }
index 0c89b73..28c4731 100644 (file)
@@ -89,9 +89,9 @@ $.suggestions = {
         * @param {Boolean} delayed Whether or not to delay this by the currently configured amount of time
         */
        update: function ( context, delayed ) {
-               // Only fetch if the value in the textbox changed and is not empty, or if the results were hidden
-               // if the textbox is empty then clear the result div, but leave other settings intouched
                function maybeFetch() {
+                       // Only fetch if the value in the textbox changed and is not empty, or if the results were hidden
+                       // if the textbox is empty then clear the result div, but leave other settings intouched
                        if ( context.data.$textbox.val().length === 0 ) {
                                $.suggestions.hide( context );
                                context.data.prevText = '';
@@ -104,6 +104,9 @@ $.suggestions = {
                                        context.config.fetch.call( context.data.$textbox, context.data.$textbox.val() );
                                }
                        }
+
+                       // Always update special rendering
+                       $.suggestions.special( context );
                }
 
                // Cancels any delayed maybeFetch call, and invokes context.config.cancel.
@@ -116,7 +119,6 @@ $.suggestions = {
                } else {
                        maybeFetch();
                }
-               $.suggestions.special( context );
        },
 
        special: function ( context ) {
index 62f8e06..a575844 100644 (file)
@@ -86,7 +86,7 @@
                 *     addButtons( [ { .. }, { .. }, { .. } ] );
                 *     addButtons( { .. }, { .. } );
                 *
-                * @param {Object|Array} [buttons...] An array of button objects or the first
+                * @param {Object|Array...} [buttons] An array of button objects or the first
                 *  button object in a list of variadic arguments.
                 */
                addButtons: function ( buttons ) {
index f300672..b37e2a6 100644 (file)
                        var token,
                                apiDeferred = $.Deferred(),
                                msg = 'Use of mediawiki.api callback params is deprecated. Use the Promise instead.',
-                               xhr;
+                               xhr, key, formData;
 
                        parameters = $.extend( {}, this.defaults.parameters, parameters );
                        ajaxOptions = $.extend( {}, this.defaults.ajax, ajaxOptions );
                                token = parameters.token;
                                delete parameters.token;
                        }
-                       // Some deployed MediaWiki >= 1.17 forbid periods in URLs, due to an IE XSS bug
-                       // So let's escape them here. See bug #28235
-                       // This works because jQuery accepts data as a query string or as an Object
-                       ajaxOptions.data = $.param( parameters ).replace( /\./g, '%2E' );
-
-                       // If we extracted a token parameter, add it back in.
-                       if ( token ) {
-                               ajaxOptions.data += '&token=' + encodeURIComponent( token );
+
+                       // If multipart/form-data has been requested and emulation is possible, emulate it
+                       if (
+                               ajaxOptions.type === 'POST' &&
+                               window.FormData &&
+                               ajaxOptions.contentType === 'multipart/form-data'
+                       ) {
+
+                               formData = new FormData();
+
+                               for ( key in parameters ) {
+                                       formData.append( key, parameters[key] );
+                               }
+                               // If we extracted a token parameter, add it back in.
+                               if ( token ) {
+                                       formData.append( 'token', token );
+                               }
+
+                               ajaxOptions.data = formData;
+
+                               // Prevent jQuery from mangling our FormData object
+                               ajaxOptions.processData = false;
+                               // Prevent jQuery from overriding the Content-Type header
+                               ajaxOptions.contentType = false;
+                       } else {
+                               // Some deployed MediaWiki >= 1.17 forbid periods in URLs, due to an IE XSS bug
+                               // So let's escape them here. See bug #28235
+                               // This works because jQuery accepts data as a query string or as an Object
+                               ajaxOptions.data = $.param( parameters ).replace( /\./g, '%2E' );
+
+                               // If we extracted a token parameter, add it back in.
+                               if ( token ) {
+                                       ajaxOptions.data += '&token=' + encodeURIComponent( token );
+                               }
+
+                               if ( ajaxOptions.contentType === 'multipart/form-data' ) {
+                                       // We were asked to emulate but can't, so drop the Content-Type header, otherwise
+                                       // it'll be wrong and the server will fail to decode the POST body
+                                       delete ajaxOptions.contentType;
+                               }
                        }
 
                        // Backwards compatibility: Before MediaWiki 1.20,
index eb38936..50349c3 100644 (file)
@@ -63,7 +63,6 @@ table.mw-listgrouprights-table tr {
 }
 
 /**** Special:Prefixindex ****/
-table#mw-prefixindex-list-table, /* HTML backwards-compatibility, to be removed before 1.23 */
 table.mw-prefixindex-list-table,
 table#mw-prefixindex-nav-table {
        width: 100%;
index 54d1608..f7a7eae 100644 (file)
@@ -1,6 +1,7 @@
 @import "mediawiki.mixins";
 @import "../../settings/typography";
 @import "../../mixins/effects";
+@import "../../mixins/utilities";
 
 // Buttons
 //
@@ -28,6 +29,7 @@
        display: inline-block;
        padding: .5em 1em;
        margin: 0;
+       .box-sizing(border-box);
 
        // IE6/IE7 hack
        // http://stackoverflow.com/a/5838575/365238
index 9daad74..52dbb05 100644 (file)
@@ -10,6 +10,7 @@
        &:focus {
                // The inner bottom bevel should match the active background color.
                box-shadow: 0 1px rgba(0, 0, 0, 10%), inset 0 -3px rgba(0, 0, 0, 20%);
+               border-bottom-color: mix(#000, @bgColor, 20%);
                outline: none;
                // remove outline in Firefox
                &::-moz-focus-inner {
 
 .button-colors(@bgColor) when (lightness(@bgColor) < 70%) {
        color: @colorWhite;
-       border: none;
+       // border of the same color as background so that light background and
+       // dark background buttons are the same height (only top and bottom to
+       // make box shadow on hover cover the corners too)
+       border: 1px solid @bgColor;
+       border-left: none;
+       border-right: none;
 
        &:disabled {
                background: @colorGrayLight;
+               border-color: @colorGrayLight;
 
                // make sure disabled buttons don't have hover and active states
                &:hover,
index 707f8d5..8ce9b58 100644 (file)
                },
 
                /**
-                * Get the main page name (transformed by #text)
+                * Get the main page name
                 *
                 * Example: "Example_image.svg" for "File:Example_image.svg".
                 *
index f6bc81d..9b0711a 100644 (file)
                                        [ tail, 8 ],
                                        [ tail, 19 ],
                                        [ tail - 8, 8 ],
-                                       [ tail, 8 ],
+                                       [ tail, 8 ]
                                ] ) );
                                g.appendChild( node );
 
                                trigger: 'manual',
                                title: function () {
                                        return profile.buildFlyout( $( this ).data( 'period' ) ).html();
-                               },
+                               }
                        } ).on( 'mouseenter', function () {
                                hide();
                                addClass( this, 'tipsy-visible' );
                 */
                xCoord: function ( msTimestamp ) {
                        return ( msTimestamp - profile.data.timespan.start ) * profile.ratio;
-               },
+               }
        };
 
        function ProfileData( data, width, mergeThresholdPx, dropThresholdPx ) {
                return Object.keys( groups ).map( function ( group ) {
                        return {
                                name: group,
-                               events: groups[group],
+                               events: groups[group]
                        };
                } );
        };
                                return [{
                                        start: period.start,
                                        end: period.end,
-                                       contained: [period],
+                                       contained: [period]
                                }];
                        }
                        var last = result[result.length - 1];
                                result.push({
                                        start: period.start,
                                        end: period.end,
-                                       contained: [period],
+                                       contained: [period]
                                });
                        }
                        return result;
index 0a0b4f6..32a9927 100644 (file)
                        try {
                                return parser.parse( key, argsArray );
                        } catch ( e ) {
-                               return $( '<span>' ).text( key + ': ' + e.message );
+                               var fallback = parser.settings.messages.get( key );
+                               mw.log.warn( 'mediawiki.jqueryMsg: ' + key + ': ' + e.message );
+                               return $( '<span>' ).text( fallback );
                        }
                };
        }
                 * @param {Array} nodes List of nodes
                 * @return {string} Other message
                 */
-               int: function ( nodes ) {
+               'int': function ( nodes ) {
                        return mw.jqueryMsg.getMessageFunction()( nodes[0].toLowerCase() );
                },
 
index 03f133e..545acad 100644 (file)
@@ -1,30 +1,32 @@
-// IE fixes javascript loaded by wikibits.js for IE <= 6.0
+/**
+ * IE fixes javascript loaded by wikibits.js for IE <= 6.0
+ */
+/*global isMSIE55:true, doneIETransform:true, doneIEAlphaFix:true */
+/*global hookit:true, fixalpha:true */
 ( function ( mw, $ ) {
 
-var doneIEAlphaFix, doneIETransform, expandedURLs, fixalpha, isMSIE55,
-       relativeforfloats, setrelative, hasClass;
+var expandedURLs, hasClass;
 
 // Also returns true for IE6, 7, 8, 9 and 10. createPopup is removed in IE11.
 // Good thing this is only loaded for IE <= 6 by wikibits.
 // Might as well set it to true.
-isMSIE55 = window.isMSIE55 = ( window.showModalDialog && window.clipboardData && window.createPopup );
-doneIETransform = window.doneIETransform = undefined;
-doneIEAlphaFix = window.doneIEAlphaFix = undefined;
+isMSIE55 = ( window.showModalDialog && window.clipboardData && window.createPopup );
+doneIETransform = false;
+doneIEAlphaFix = false;
 
-window.hookit = function () {
+hookit = function () {
        if ( !doneIETransform && document.getElementById && document.getElementById( 'bodyContent' ) ) {
                doneIETransform = true;
-               relativeforfloats();
                fixalpha();
        }
 };
 
 if ( document.attachEvent ) {
-       document.attachEvent( 'onreadystatechange', window.hookit );
+       document.attachEvent( 'onreadystatechange', hookit );
 }
 
 // png alpha transparency fixes
-fixalpha = window.fixalpha = function ( logoId ) {
+fixalpha = function ( logoId ) {
        // bg
        if ( isMSIE55 && !doneIEAlphaFix ) {
                var bg, imageUrl, linkFix, logoa, logospan, plogo;
@@ -76,31 +78,6 @@ if ( isMSIE55 ) {
        $( fixalpha );
 }
 
-// fix ie6 disappering float bug
-relativeforfloats = window.relativeforfloats = function () {
-       var bc, tables, divs;
-       bc = document.getElementById( 'bodyContent' );
-       if ( bc ) {
-               tables = bc.getElementsByTagName( 'table' );
-               divs = bc.getElementsByTagName( 'div' );
-               setrelative( tables );
-               setrelative( divs );
-       }
-};
-
-setrelative = window.setrelative = function ( nodes ) {
-       var i = 0;
-       while ( i < nodes.length ) {
-               if ( ( ( nodes[i].style.float && nodes[i].style.float !== ( 'none' ) ||
-                       ( nodes[i].align && nodes[i].align !== ( 'none' ) ) ) &&
-                       ( !nodes[i].style.position || nodes[i].style.position !== 'relative' ) ) )
-               {
-                       nodes[i].style.position = 'relative';
-               }
-               i++;
-       }
-};
-
 // Expand links for printing
 hasClass = function ( classText, classWanted ) {
        var i = 0, classArr = classText.split(/\s/);
@@ -112,8 +89,6 @@ hasClass = function ( classText, classWanted ) {
        return false;
 };
 
-expandedURLs = window.expandedURLs = undefined;
-
 window.onbeforeprint = function () {
        var allLinks, contentEl, expandedLink, expandedText, i;
 
index 9b8c41a..25ba301 100644 (file)
@@ -28,7 +28,6 @@ body {
 
 /* Content */
 div#content {
-       line-height: @content-line-height;
        margin-left: 10em;
        padding: @content-padding;
        /* Border on top, left, and bottom side */
@@ -131,7 +130,7 @@ pre, .mw-code {
 #bodyContent {
        position: relative;
        width: 100%;
-       line-height: 1.5em;
+       line-height: @content-line-height;
        font-size: @content-font-size;
 }
 
index 60792d5..91388c6 100644 (file)
@@ -1,9 +1,10 @@
-// FIXME: This size of this CSS is ridiculous. Please refactor (see bug 54604)
 @import "mediawiki.mixins.less";
 // External links
-.external {
-       background-position: center right;
-       background-repeat: no-repeat;
-       .background-image-svg('images/external-link-ltr-icon.svg', 'images/external-link-ltr-icon.png' );
-       padding-right: 13px;
+#content {
+       .external {
+               background-position: center right;
+               background-repeat: no-repeat;
+               .background-image-svg('images/external-link-ltr-icon.svg', 'images/external-link-ltr-icon.png');
+               padding-right: 13px;
+       }
 }
index c4578aa..438fbcf 100644 (file)
@@ -4,7 +4,7 @@
 // FIXME: Use global variable since Echo and CentralNotice use this variable
 @content-border-color: #a7d7f9;
 // FIXME: Find an open font that works with this stack and is readable by Windows users
-@content-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+@content-font-family: sans-serif;
 @content-font-color: #252525;
 @content-font-size: 0.875em;
 @content-line-height: 1.6;
index 5eb5c0a..7694d4a 100644 (file)
@@ -6,8 +6,8 @@
   },
   "devDependencies": {
     "grunt": "0.4.2",
-    "grunt-contrib-jshint": "0.8.0",
-    "grunt-contrib-watch": "0.5.3",
-    "grunt-jscs-checker": "0.4.0"
+    "grunt-contrib-jshint": "0.9.2",
+    "grunt-contrib-watch": "0.6.1",
+    "grunt-jscs-checker": "0.4.1"
   }
 }
index fc23919..48a4017 100644 (file)
@@ -179,7 +179,7 @@ class RevisionTest extends MediaWikiTestCase {
         * @param string $text
         * @param string $title
         * @param string $model
-        * @param null $format
+        * @param string $format
         *
         * @return Revision
         */
index d1c214a..080ff54 100644 (file)
@@ -315,22 +315,24 @@ class DummyContentHandlerForTesting extends ContentHandler {
        }
 
        /**
-        * Serializes Content object of the type supported by this ContentHandler.
+        * @see ContentHandler::serializeContent
         *
-        * @param Content $content the Content object to serialize
-        * @param null $format the desired serialization format
-        * @return String serialized form of the content
+        * @param Content $content
+        * @param string $format
+        *
+        * @return string
         */
        public function serializeContent( Content $content, $format = null ) {
                return $content->serialize();
        }
 
        /**
-        * Unserializes a Content object of the type supported by this ContentHandler.
+        * @see ContentHandler::unserializeContent
+        *
+        * @param string $blob
+        * @param string $format Unused.
         *
-        * @param $blob String serialized form of the content
-        * @param null $format the format used for serialization
-        * @return Content the Content object created by deserializing $blob
+        * @return Content
         */
        public function unserializeContent( $blob, $format = null ) {
                $d = unserialize( $blob );
@@ -437,7 +439,7 @@ class DummyContentForTesting extends AbstractContent {
 
        /**
         * @param Title $title
-        * @param null $revId
+        * @param int $revId Unused.
         * @param null|ParserOptions $options
         * @param boolean $generateHtml whether to generate Html (default: true). If false,
         *  the result of calling getText() on the ParserOutput object returned by
index cce1b7e..cfcc771 100644 (file)
@@ -34,6 +34,21 @@ class ResourcesTest extends MediaWikiTestCase {
                $this->assertTrue( strpos( $cssText, '@media' ) === false, 'Stylesheets should not both specify "media" and contain @media' );
        }
 
+       public function testDependencies() {
+               $data = self::getAllModules();
+               $illegalDeps = array( 'jquery', 'mediawiki' );
+
+               foreach ( $data['modules'] as $moduleName => $module ) {
+                       foreach ( $illegalDeps as $illegalDep ) {
+                               $this->assertNotContains(
+                                       $illegalDep,
+                                       $module->getDependencies(),
+                                       "Module '$moduleName' must not depend on '$illegalDep'"
+                               );
+                       }
+               }
+       }
+
        /**
         * Get all registered modules from ResouceLoader.
         */
index 607c435..74ea58e 100644 (file)
@@ -94,7 +94,6 @@ return array(
                        'jquery.tabIndex',
                        'jquery.tablesorter',
                        'jquery.textSelection',
-                       'mediawiki',
                        'mediawiki.api',
                        'mediawiki.api.parse',
                        'mediawiki.api.watch',
index 7dff354..ab9aab1 100644 (file)
@@ -5,7 +5,6 @@
 
        var mwTestIgnore, mwTester,
                addons,
-               envExecCount,
                ELEMENT_NODE = 1,
                TEXT_NODE = 3;
 
         * Small test suite to confirm proper functionality of the utilities and
         * initializations defined above in this file.
         */
-       envExecCount = 0;
        QUnit.module( 'test.mediawiki.qunit.testrunner', QUnit.newMwEnvironment( {
                setup: function () {
-                       envExecCount += 1;
                        this.mwHtmlLive = mw.html;
                        mw.html = {
                                escape: function () {
-                                       return 'mocked-' + envExecCount;
+                                       return 'mocked';
                                }
                        };
                },
        } ) );
 
        QUnit.test( 'Setup', 3, function ( assert ) {
-               assert.equal( mw.html.escape( 'foo' ), 'mocked-1', 'extra setup() callback was ran.' );
+               assert.equal( mw.html.escape( 'foo' ), 'mocked', 'setup() callback was ran.' );
                assert.equal( mw.config.get( 'testVar' ), 'foo', 'config object applied' );
                assert.equal( mw.messages.get( 'testMsg' ), 'Foo.', 'messages object applied' );
 
                mw.messages.set( 'testMsg', 'Bar.' );
        } );
 
-       QUnit.test( 'Teardown', 3, function ( assert ) {
-               assert.equal( mw.html.escape( 'foo' ), 'mocked-2', 'extra setup() callback was re-ran.' );
+       QUnit.test( 'Teardown', 2, function ( assert ) {
                assert.equal( mw.config.get( 'testVar' ), 'foo', 'config object restored and re-applied after test()' );
                assert.equal( mw.messages.get( 'testMsg' ), 'Foo.', 'messages object restored and re-applied after test()' );
        } );
        QUnit.module( 'test.mediawiki.qunit.testrunner-after', QUnit.newMwEnvironment() );
 
        QUnit.test( 'Teardown', 3, function ( assert ) {
-               assert.equal( mw.html.escape( '<' ), '&lt;', 'extra teardown() callback was ran.' );
+               assert.equal( mw.html.escape( '<' ), '&lt;', 'teardown() callback was ran.' );
                assert.equal( mw.config.get( 'testVar' ), null, 'config object restored to live in next module()' );
                assert.equal( mw.messages.get( 'testMsg' ), null, 'messages object restored to live in next module()' );
        } );
index dab35f6..4ee8afa 100644 (file)
                } );
        } );
 
+       QUnit.test( 'FormData support', function ( assert ) {
+               QUnit.expect( 2 );
+
+               var api = new mw.Api();
+
+               api.post( { action: 'test' }, { contentType: 'multipart/form-data' } );
+
+               this.server.respond( function ( request ) {
+                       if ( window.FormData ) {
+                               assert.ok( !request.url.match( /action=/), 'Request has no query string' );
+                               assert.ok( request.requestBody instanceof FormData, 'Request uses FormData body' );
+                       } else {
+                               assert.ok( !request.url.match( /action=test/), 'Request has no query string' );
+                               assert.equal( request.requestBody, 'action=test&format=json', 'Request uses query string body' );
+                       }
+                       request.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
+               } );
+       } );
+
        QUnit.test( 'Deprecated callback methods', function ( assert ) {
                QUnit.expect( 3 );
 
index f49be49..f5fd16d 100644 (file)
@@ -1,3 +1,4 @@
+/*jshint -W024 */
 ( function ( mw, $ ) {
        // mw.Title relies on these three config vars
        // Restore them after each test run
index b6a8a46..7a58d38 100644 (file)
@@ -1,3 +1,4 @@
+/*jshint -W024 */
 ( function ( mw, $ ) {
        QUnit.module( 'mediawiki.Uri', QUnit.newMwEnvironment( {
                setup: function () {
index a2ad50d..995c1ed 100644 (file)
 
                // Pipe trick is not supported currently, but should not parse as text either.
                mw.messages.set( 'pipe-trick', '[[Tampa, Florida|]]' );
+               this.suppressWarnings();
                assert.equal(
                        formatParse( 'pipe-trick' ),
-                       'pipe-trick: Parse error at position 0 in input: [[Tampa, Florida|]]',
-                       'Pipe trick should return error string.'
+                       '[[Tampa, Florida|]]',
+                       'Pipe trick should not be parsed.'
                );
+               this.restoreWarnings();
 
                expectedMultipleBars = '<a title="Main Page" href="/wiki/Main_Page">Main|Page</a>';
                mw.messages.set( 'multiple-bars', '[[Main Page|Main|Page]]' );
@@ -734,4 +736,25 @@ QUnit.test( 'HTML', 26, function ( assert ) {
        );
 } );
 
+       QUnit.test( 'Behavior in case of invalid wikitext', 3, function ( assert ) {
+               mw.messages.set( 'invalid-wikitext', '<b>{{FAIL}}</b>' );
+
+               this.suppressWarnings();
+               var logSpy = this.sandbox.spy( mw.log, 'warn' );
+
+               assert.equal(
+                       formatParse( 'invalid-wikitext' ),
+                       '&lt;b&gt;{{FAIL}}&lt;/b&gt;',
+                       'Invalid wikitext: \'parse\' format'
+               );
+
+               assert.equal(
+                       formatText( 'invalid-wikitext' ),
+                       '<b>{{FAIL}}</b>',
+                       'Invalid wikitext: \'text\' format'
+               );
+
+               assert.equal( logSpy.callCount, 2, 'mw.log.warn calls' );
+       } );
+
 }( mediaWiki, jQuery ) );
index 8fd789a..4e26bdc 100644 (file)
@@ -73,7 +73,7 @@
                        'Mozilla/5.0 (Series40; NokiaX3-02/05.60; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/3.2.0.0.6',
                        'Mozilla/5.0 (Series40; Nokia305/05.92; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/3.7.0.0.11',
                        // Google Glass
-                       'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Glass 1 Build/IMM76L; XE11) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
+                       'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Glass 1 Build/IMM76L; XE11) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'
                ],
                // No explicit support for or against these browsers, they're
                // given a shot at Grade A at their own risk.