Merge "Tweaked BagOStuff::lock() retry times slightly to be faster"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 30 Jan 2015 21:02:14 +0000 (21:02 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 30 Jan 2015 21:02:14 +0000 (21:02 +0000)
374 files changed:
CREDITS
RELEASE-NOTES-1.25
autoload.php
composer.json
docs/extension.schema.json
docs/hooks.txt
docs/kss/Makefile
docs/kss/README.txt
docs/kss/styleGuideModules.txt [new file with mode: 0644]
docs/mwlogger.txt
includes/CategoryViewer.php
includes/DefaultSettings.php
includes/Defines.php
includes/GlobalFunctions.php
includes/Import.php
includes/Linker.php
includes/OutputPage.php
includes/Preferences.php
includes/ProtectionForm.php
includes/Revision.php
includes/Sanitizer.php
includes/Setup.php
includes/Title.php
includes/User.php
includes/WebRequest.php
includes/actions/InfoAction.php
includes/api/ApiEditPage.php
includes/api/ApiFeedContributions.php
includes/api/ApiPageSet.php
includes/api/ApiQueryRevisionsBase.php
includes/api/ApiQueryUserInfo.php
includes/api/i18n/ar.json
includes/api/i18n/av.json [new file with mode: 0644]
includes/api/i18n/be-tarask.json
includes/api/i18n/ca.json
includes/api/i18n/cs.json
includes/api/i18n/de.json
includes/api/i18n/en-gb.json
includes/api/i18n/en.json
includes/api/i18n/es.json
includes/api/i18n/eu.json
includes/api/i18n/fa.json
includes/api/i18n/fr.json
includes/api/i18n/frc.json [new file with mode: 0644]
includes/api/i18n/gl.json
includes/api/i18n/ia.json
includes/api/i18n/ja.json
includes/api/i18n/ko.json
includes/api/i18n/ksh.json
includes/api/i18n/mk.json
includes/api/i18n/nl.json
includes/api/i18n/pt.json
includes/api/i18n/qqq.json
includes/api/i18n/ru.json
includes/api/i18n/sv.json
includes/api/i18n/uk.json
includes/api/i18n/vi.json
includes/api/i18n/zh-hans.json
includes/api/i18n/zh-hant.json
includes/content/JsonContent.php
includes/db/DatabaseMysqlBase.php
includes/debug/logger/Factory.php [new file with mode: 0644]
includes/debug/logger/Logger.php
includes/debug/logger/NullSpi.php
includes/debug/logger/Spi.php
includes/debug/logger/legacy/Logger.php
includes/debug/logger/legacy/Spi.php
includes/debug/logger/monolog/SamplingHandler.php
includes/debug/logger/monolog/Spi.php
includes/diff/DifferenceEngine.php
includes/filebackend/FileBackend.php
includes/filebackend/SwiftFileBackend.php
includes/filebackend/filejournal/FileJournal.php
includes/filebackend/lockmanager/LockManagerGroup.php
includes/filebackend/lockmanager/MemcLockManager.php
includes/filebackend/lockmanager/RedisLockManager.php
includes/htmlform/HTMLCheckField.php
includes/htmlform/HTMLForm.php
includes/htmlform/HTMLFormField.php
includes/htmlform/HTMLFormFieldCloner.php
includes/htmlform/VFormHTMLForm.php [new file with mode: 0644]
includes/installer/DatabaseInstaller.php
includes/installer/Installer.php
includes/installer/i18n/be-tarask.json
includes/installer/i18n/bgn.json [new file with mode: 0644]
includes/installer/i18n/ca.json
includes/installer/i18n/de.json
includes/installer/i18n/eml.json [new file with mode: 0644]
includes/installer/i18n/en.json
includes/installer/i18n/et.json
includes/installer/i18n/frc.json
includes/installer/i18n/fy.json
includes/installer/i18n/gl.json
includes/installer/i18n/he.json
includes/installer/i18n/lb.json
includes/installer/i18n/nap.json
includes/installer/i18n/pl.json
includes/installer/i18n/pt.json
includes/installer/i18n/qqq.json
includes/installer/i18n/si.json
includes/installer/i18n/vi.json
includes/installer/i18n/zh-hans.json
includes/jobqueue/Job.php
includes/jobqueue/JobRunner.php
includes/libs/CSSMin.php
includes/libs/DeferredStringifier.php
includes/libs/ExplodeIterator.php [new file with mode: 0644]
includes/libs/ProcessCacheLRU.php
includes/libs/ReplacementArray.php [new file with mode: 0644]
includes/libs/normal/.gitignore [new file with mode: 0644]
includes/libs/normal/Makefile [new file with mode: 0644]
includes/libs/normal/README [new file with mode: 0644]
includes/libs/normal/RandomTest.php [new file with mode: 0644]
includes/libs/normal/UtfNormal.php [new file with mode: 0644]
includes/libs/normal/UtfNormalBench.php [new file with mode: 0644]
includes/libs/normal/UtfNormalData.inc [new file with mode: 0644]
includes/libs/normal/UtfNormalDataK.inc [new file with mode: 0644]
includes/libs/normal/UtfNormalDefines.php [new file with mode: 0644]
includes/libs/normal/UtfNormalGenerate.php [new file with mode: 0644]
includes/libs/normal/UtfNormalMemStress.php [new file with mode: 0644]
includes/libs/normal/UtfNormalTest.php [new file with mode: 0644]
includes/libs/normal/UtfNormalTest2.php [new file with mode: 0644]
includes/libs/normal/UtfNormalUtil.php [new file with mode: 0644]
includes/libs/replacers/DoubleReplacer.php [new file with mode: 0644]
includes/libs/replacers/HashtableReplacer.php [new file with mode: 0644]
includes/libs/replacers/RegexlikeReplacer.php [new file with mode: 0644]
includes/libs/replacers/Replacer.php [new file with mode: 0644]
includes/libs/virtualrest/ParsoidVirtualRESTService.php
includes/logging/LogEntry.php
includes/normal/.gitignore [deleted file]
includes/normal/Makefile [deleted file]
includes/normal/README [deleted file]
includes/normal/RandomTest.php [deleted file]
includes/normal/Utf8Test.php [deleted file]
includes/normal/UtfNormal.php [deleted file]
includes/normal/UtfNormalBench.php [deleted file]
includes/normal/UtfNormalData.inc [deleted file]
includes/normal/UtfNormalDataK.inc [deleted file]
includes/normal/UtfNormalDefines.php [deleted file]
includes/normal/UtfNormalGenerate.php [deleted file]
includes/normal/UtfNormalMemStress.php [deleted file]
includes/normal/UtfNormalTest.php [deleted file]
includes/normal/UtfNormalTest2.php [deleted file]
includes/normal/UtfNormalUtil.php [deleted file]
includes/page/Article.php
includes/page/WikiPage.php
includes/parser/DateFormatter.php
includes/parser/Parser.php
includes/parser/ParserOutput.php
includes/registration/ExtensionProcessor.php
includes/search/SearchHighlighter.php
includes/skins/QuickTemplate.php
includes/skins/Skin.php
includes/specialpage/FormSpecialPage.php
includes/specials/SpecialAllMessages.php
includes/specials/SpecialChangeEmail.php
includes/specials/SpecialFileDuplicateSearch.php
includes/specials/SpecialLog.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialPageLanguage.php
includes/specials/SpecialPasswordReset.php
includes/specials/SpecialProtectedpages.php
includes/specials/SpecialTrackingCategories.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUpload.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialVersion.php
includes/templates/Usercreate.php
includes/templates/Userlogin.php
includes/utils/StringUtils.php
languages/Names.php
languages/i18n/ar.json
languages/i18n/awa.json
languages/i18n/az.json
languages/i18n/bcl.json
languages/i18n/be-tarask.json
languages/i18n/bg.json
languages/i18n/bgn.json [new file with mode: 0644]
languages/i18n/bn.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/cs.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/egl.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/fi.json
languages/i18n/fo.json
languages/i18n/fr.json
languages/i18n/frc.json
languages/i18n/fy.json
languages/i18n/gl.json
languages/i18n/gsw.json
languages/i18n/he.json
languages/i18n/hif-latn.json
languages/i18n/hsb.json
languages/i18n/hu.json
languages/i18n/inh.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/kk-cyrl.json
languages/i18n/ko.json
languages/i18n/lb.json
languages/i18n/lrc.json
languages/i18n/lt.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/nap.json
languages/i18n/nds-nl.json
languages/i18n/ne.json
languages/i18n/nl.json
languages/i18n/oc.json
languages/i18n/pl.json
languages/i18n/pms.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/sah.json
languages/i18n/si.json
languages/i18n/sl.json
languages/i18n/su.json
languages/i18n/sv.json
languages/i18n/uk.json
languages/i18n/ur.json
languages/i18n/uz.json
languages/i18n/vi.json
languages/i18n/vo.json
languages/i18n/vro.json
languages/i18n/yi.json
languages/i18n/yue.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesAce.php
languages/messages/MessagesAf.php
languages/messages/MessagesAr.php
languages/messages/MessagesArz.php
languages/messages/MessagesAst.php
languages/messages/MessagesAv.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBg.php
languages/messages/MessagesBgn.php [new file with mode: 0644]
languages/messages/MessagesBho.php
languages/messages/MessagesBr.php
languages/messages/MessagesBs.php
languages/messages/MessagesCa.php
languages/messages/MessagesCdo.php
languages/messages/MessagesCe.php
languages/messages/MessagesCkb.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesEl.php
languages/messages/MessagesEo.php
languages/messages/MessagesEs.php
languages/messages/MessagesEt.php
languages/messages/MessagesFa.php
languages/messages/MessagesFi.php
languages/messages/MessagesFr.php
languages/messages/MessagesFrp.php
languages/messages/MessagesGl.php
languages/messages/MessagesHaw.php
languages/messages/MessagesHe.php
languages/messages/MessagesHi.php
languages/messages/MessagesHr.php
languages/messages/MessagesHsb.php
languages/messages/MessagesHu.php
languages/messages/MessagesId.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesKo.php
languages/messages/MessagesKsh.php
languages/messages/MessagesKw.php
languages/messages/MessagesLb.php
languages/messages/MessagesLzh.php
languages/messages/MessagesMg.php
languages/messages/MessagesMin.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMn.php
languages/messages/MessagesMr.php
languages/messages/MessagesMs.php
languages/messages/MessagesMt.php
languages/messages/MessagesMzn.php
languages/messages/MessagesNan.php
languages/messages/MessagesNb.php
languages/messages/MessagesNds_nl.php
languages/messages/MessagesNe.php
languages/messages/MessagesNl.php
languages/messages/MessagesNn.php
languages/messages/MessagesOc.php
languages/messages/MessagesOr.php
languages/messages/MessagesPa.php
languages/messages/MessagesPl.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQu.php
languages/messages/MessagesRo.php
languages/messages/MessagesRu.php
languages/messages/MessagesRue.php
languages/messages/MessagesSa.php
languages/messages/MessagesSh.php
languages/messages/MessagesSq.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSr_el.php
languages/messages/MessagesSv.php
languages/messages/MessagesTe.php
languages/messages/MessagesTet.php
languages/messages/MessagesTly.php
languages/messages/MessagesTr.php
languages/messages/MessagesTyv.php
languages/messages/MessagesUk.php
languages/messages/MessagesUr.php
languages/messages/MessagesUz.php
languages/messages/MessagesVi.php
languages/messages/MessagesYi.php
languages/messages/MessagesZh.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
languages/messages/MessagesZh_tw.php
maintenance/Maintenance.php
maintenance/convertExtensionToRegistration.php
maintenance/interwiki.list
maintenance/interwiki.sql
maintenance/language/generateNormalizerDataAr.php
maintenance/language/generateNormalizerDataMl.php
maintenance/namespaceDupes.php
maintenance/rebuildtextindex.php
maintenance/update.php
resources/Resources.php
resources/assets/poweredby_mediawiki_132x47.png [new file with mode: 0644]
resources/assets/poweredby_mediawiki_176x62.png [new file with mode: 0644]
resources/lib/oojs-ui/i18n/roa-tara.json
resources/lib/oojs-ui/oojs-ui-mediawiki.css
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui-mediawiki.svg.css
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs/oojs.jquery.js
resources/src/jquery/jquery.tablesorter.js
resources/src/mediawiki.action/mediawiki.action.view.categoryPage.less [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.view.redirect.js
resources/src/mediawiki.less/mediawiki.mixins.less
resources/src/mediawiki.special/mediawiki.special.userlogin.common.js
resources/src/mediawiki.ui/components/checkbox.less
resources/src/mediawiki.ui/components/inputs.less
resources/src/mediawiki.ui/components/radio.less
resources/src/mediawiki/mediawiki.content.json.css
resources/src/mediawiki/mediawiki.cookie.js
resources/src/mediawiki/mediawiki.inspect.js
resources/src/mediawiki/mediawiki.js
tests/parser/parserTests.txt
tests/phpunit/data/normal/UTF-8-test.txt [new file with mode: 0644]
tests/phpunit/includes/SanitizerTest.php
tests/phpunit/includes/content/JsonContentTest.php
tests/phpunit/includes/libs/CSSMinTest.php
tests/phpunit/includes/libs/DeferredStringifierTest.php
tests/phpunit/includes/libs/ProcessCacheLRUTest.php
tests/phpunit/includes/libs/normal/CleanUpTest.php [new file with mode: 0644]
tests/phpunit/includes/libs/normal/Utf8Test.php [new file with mode: 0644]
tests/phpunit/includes/media/MediaHandlerTest.php
tests/phpunit/includes/normal/CleanUpTest.php [deleted file]
tests/phpunit/includes/parser/ParserOutputTest.php
tests/phpunit/includes/registration/ExtensionProcessorTest.php
tests/phpunit/suite.xml
tests/qunit/suites/resources/mediawiki/mediawiki.cookie.test.js

diff --git a/CREDITS b/CREDITS
index 730e54d..f58fabb 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -20,6 +20,7 @@ following names for their contribution to the product.
 * Brad Jorsch
 * Brian Wolff
 * Brion Vibber
+* Bryan Davis
 * Bryan Tong Minh
 * Chad Horohoe
 * Charles Melbye
index 2aa066c..d2edcb3 100644 (file)
@@ -93,7 +93,7 @@ production.
 * The following libraries are now required:
 ** psr/log
    This library provides the interfaces set by the PSR-3 standard (http://www.php-fig.org/psr/psr-3/)
-   which are used by MediaWiki interally by the MWLogger class.
+   which are used by MediaWiki internally via the MWLoggerFactory class.
    See the structured logging RfC (https://www.mediawiki.org/wiki/Requests_for_comment/Structured_logging)
    for more background information.
 ** cssjanus/cssjanus
@@ -128,6 +128,11 @@ production.
   on action=info about a file page does not list file links anymore.
 * (T78637) Search bar is not autofocused unless it is empty so that proper scrolling using arrow keys is possible.
 * (T50853) Database::makeList() modified to handle 'NULL' separately when building IN clause
+* (T85192) Captcha position modified in Usercreate template. As a result:
+** extrafields parameter added to Usercreate.php to insert additional data
+** 'extend' method added to QuickTemplate to append additional values to any field of data array
+* (T86974) Several Title methods now load from the database when necessary
+  (instead of returning incorrect results) even when the page ID is known.
 
 === Action API changes in 1.25 ===
 * (T67403) XML tag highlighting is now only performed for formats
@@ -247,7 +252,7 @@ changes to languages because of Bugzilla reports.
 * The skin autodiscovery mechanism, deprecated in MediaWiki 1.23, has been
   removed. See https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery for
   migration guide for creators and users of custom skins that relied on it.
-* Javascript variable 'wgFileCanRotate' and 'wgFileExtensions' now only
+* Javascript variables 'wgFileCanRotate' and 'wgFileExtensions' now only
   available on Special:Upload.
 * (T58257) Set site logo from mediawiki.skinning.interface module instead of
   inline styles in the HTML.
@@ -306,6 +311,17 @@ changes to languages because of Bugzilla reports.
   rather than as strings that must be prepended or appended to $comment.
 * (T30950, T31025) RFC, PMID, and ISBN "magic links" can no longer contain
   newlines; but they can contain &nbsp; and other non-newline whitespace.
+* The 'mediawiki.action.edit' ResourceLoader module no longer generates the edit
+  toolbar, which has been moved to a separate 'mediawiki.toolbar' module. If you
+  relied on this behavior, update your scripts' dependencies.
+* HTMLForm's 'vform' display style has been separated to a subclass. Therefore:
+  * HTMLForm::isVForm() is now deprecated.
+  * You can no longer do this:
+      $form = new HTMLForm( … );
+      $form->setDisplayFormat( 'vform' ); // throws exception
+    Instead, do this:
+      $form = HTMLForm::factory( 'vform', … );
+* Deprecated Revision methods getRawUser(), getRawUserText() and getRawComment().
 
 == Compatibility ==
 
index 72345fe..e6f0f89 100644 (file)
@@ -332,7 +332,7 @@ $wgAutoloadLocalClasses = array(
        'DjVuImage' => __DIR__ . '/includes/media/DjVuImage.php',
        'DoubleRedirectJob' => __DIR__ . '/includes/jobqueue/jobs/DoubleRedirectJob.php',
        'DoubleRedirectsPage' => __DIR__ . '/includes/specials/SpecialDoubleRedirects.php',
-       'DoubleReplacer' => __DIR__ . '/includes/utils/StringUtils.php',
+       'DoubleReplacer' => __DIR__ . '/includes/libs/replacers/DoubleReplacer.php',
        'DummyLinker' => __DIR__ . '/includes/Linker.php',
        'DummyTermColorer' => __DIR__ . '/maintenance/term/MWTerm.php',
        'Dump7ZipOutput' => __DIR__ . '/includes/Export.php',
@@ -372,7 +372,7 @@ $wgAutoloadLocalClasses = array(
        'ErrorPageError' => __DIR__ . '/includes/exception/ErrorPageError.php',
        'Exif' => __DIR__ . '/includes/media/Exif.php',
        'ExifBitmapHandler' => __DIR__ . '/includes/media/ExifBitmap.php',
-       'ExplodeIterator' => __DIR__ . '/includes/utils/StringUtils.php',
+       'ExplodeIterator' => __DIR__ . '/includes/libs/ExplodeIterator.php',
        'ExportProgressFilter' => __DIR__ . '/maintenance/backup.inc',
        'ExtensionLanguages' => __DIR__ . '/maintenance/language/languages.inc',
        'ExtensionProcessor' => __DIR__ . '/includes/registration/ExtensionProcessor.php',
@@ -495,7 +495,7 @@ $wgAutoloadLocalClasses = array(
        'HashBagOStuff' => __DIR__ . '/includes/objectcache/HashBagOStuff.php',
        'HashConfig' => __DIR__ . '/includes/config/HashConfig.php',
        'HashRing' => __DIR__ . '/includes/libs/HashRing.php',
-       'HashtableReplacer' => __DIR__ . '/includes/utils/StringUtils.php',
+       'HashtableReplacer' => __DIR__ . '/includes/libs/replacers/HashtableReplacer.php',
        'HistoryAction' => __DIR__ . '/includes/actions/HistoryAction.php',
        'HistoryBlob' => __DIR__ . '/includes/HistoryBlob.php',
        'HistoryBlobCurStub' => __DIR__ . '/includes/HistoryBlob.php',
@@ -690,6 +690,7 @@ $wgAutoloadLocalClasses = array(
        'MWHookException' => __DIR__ . '/includes/Hooks.php',
        'MWHttpRequest' => __DIR__ . '/includes/HttpFunctions.php',
        'MWLogger' => __DIR__ . '/includes/debug/logger/Logger.php',
+       'MWLoggerFactory' => __DIR__ . '/includes/debug/logger/Factory.php',
        'MWLoggerLegacyLogger' => __DIR__ . '/includes/debug/logger/legacy/Logger.php',
        'MWLoggerLegacySpi' => __DIR__ . '/includes/debug/logger/legacy/Spi.php',
        'MWLoggerMonologHandler' => __DIR__ . '/includes/debug/logger/monolog/Handler.php',
@@ -951,13 +952,13 @@ $wgAutoloadLocalClasses = array(
        'RefreshLinks' => __DIR__ . '/maintenance/refreshLinks.php',
        'RefreshLinksJob' => __DIR__ . '/includes/jobqueue/jobs/RefreshLinksJob.php',
        'RefreshLinksJob2' => __DIR__ . '/includes/jobqueue/jobs/RefreshLinksJob2.php',
-       'RegexlikeReplacer' => __DIR__ . '/includes/utils/StringUtils.php',
+       'RegexlikeReplacer' => __DIR__ . '/includes/libs/replacers/RegexlikeReplacer.php',
        'RemoveInvalidEmails' => __DIR__ . '/maintenance/removeInvalidEmails.php',
        'RemoveUnusedAccounts' => __DIR__ . '/maintenance/removeUnusedAccounts.php',
        'RenameDbPrefix' => __DIR__ . '/maintenance/renameDbPrefix.php',
        'RenderAction' => __DIR__ . '/includes/actions/RenderAction.php',
-       'ReplacementArray' => __DIR__ . '/includes/utils/StringUtils.php',
-       'Replacer' => __DIR__ . '/includes/utils/StringUtils.php',
+       'ReplacementArray' => __DIR__ . '/includes/libs/ReplacementArray.php',
+       'Replacer' => __DIR__ . '/includes/libs/replacers/Replacer.php',
        'RepoGroup' => __DIR__ . '/includes/filerepo/RepoGroup.php',
        'RequestContext' => __DIR__ . '/includes/context/RequestContext.php',
        'ResetUserTokens' => __DIR__ . '/maintenance/resetUserTokens.php',
@@ -1267,8 +1268,9 @@ $wgAutoloadLocalClasses = array(
        'UserloginTemplate' => __DIR__ . '/includes/templates/Userlogin.php',
        'UserrightsPage' => __DIR__ . '/includes/specials/SpecialUserrights.php',
        'UsersPager' => __DIR__ . '/includes/specials/SpecialListusers.php',
-       'UtfNormal' => __DIR__ . '/includes/normal/UtfNormal.php',
+       'UtfNormal' => __DIR__ . '/includes/libs/normal/UtfNormal.php',
        'UzConverter' => __DIR__ . '/languages/classes/LanguageUz.php',
+       'VFormHTMLForm' => __DIR__ . '/includes/htmlform/VFormHTMLForm.php',
        'ValidateRegistrationFile' => __DIR__ . '/maintenance/validateRegistrationFile.php',
        'ViewAction' => __DIR__ . '/includes/actions/ViewAction.php',
        'VirtualRESTService' => __DIR__ . '/includes/libs/virtualrest/VirtualRESTService.php',
index 519274d..1e75e6c 100644 (file)
        "require": {
                "cssjanus/cssjanus": "1.1.1",
                "leafo/lessphp": "0.5.0",
-               "oojs/oojs-ui": "0.6.2",
+               "oojs/oojs-ui": "0.6.3",
                "php": ">=5.3.3",
                "psr/log": "1.0.0",
                "wikimedia/cdb": "1.0.1",
-               "wikimedia/composer-merge-plugin": "0.5.0"
+               "wikimedia/composer-merge-plugin": "0.5.0",
+               "zordius/lightncandy": "0.18"
        },
        "require-dev": {
                "justinrainbow/json-schema": "~1.3",
index 46f8623..4583559 100644 (file)
@@ -7,10 +7,6 @@
                        "type": "string",
                        "description": "The extension's canonical name."
                },
-               "info-files": {
-                       "type": "array",
-                       "description": "A list of filenames that should be loaded, in addition to this one"
-               },
                "type": {
                        "type": "string",
                        "description": "The extension's type, as an index to $wgExtensionCredits.",
@@ -39,9 +35,6 @@
                        },
                        "additionalItems": false
                },
-               "path": {
-                       "type": "string"
-               },
                "version": {
                        "type": "string",
                        "description": "The version of this release of the extension."
index 2de78dd..4717c38 100644 (file)
@@ -372,6 +372,17 @@ $editPage : the EditPage object
 $text : the new text of the article (has yet to be saved)
 &$resultArr : data in this array will be added to the API result
 
+'ApiFeedContributions::feedItem': Called to convert the result of ContribsPager
+into a FeedItem instance that ApiFeedContributions can consume. Implementors of
+this hook may cancel the hook to signal that the item is not viewable in the
+provided context.
+$row: A row of data from ContribsPager.  The set of data returned by ContribsPager
+ can be adjusted by handling the ContribsPager::reallyDoQuery hook.
+$context: An IContextSource implementation.
+&$feedItem: Set this to a FeedItem instance if the callback can handle the provided
+ row. This is provided to the hook as a null, if it is non null then another callback
+ has already handled the hook.
+
 'ApiFormatHighlight': Use to syntax-highlight API pretty-printed output. When
 highlighting, add output to $context->getOutput() and return false.
 $context: An IContextSource.
index 31feec1..dadfb47 100644 (file)
@@ -4,9 +4,9 @@ kss: kssnodecheck
 # Generates CSS of mediawiki.ui and mediawiki.ui.button using ResourceLoader, then applies it to the
 # KSS style guide
        $(eval KSS_RL_TMP := $(shell mktemp /tmp/tmp.XXXXXXXXXX))
-# Keep module names in strict alphabetical order, so CSS loads in the same order as ResourceLoader's addModuleStyles does; this can affect rendering.
+       $(eval MODULE_STR := $(shell paste -sd "|" styleGuideModules.txt))
 # See OutputPage::makeResourceLoaderLink.
-       @curl -sG "${MEDIAWIKI_LOAD_URL}?modules=mediawiki.legacy.commonPrint|mediawiki.legacy.shared|mediawiki.ui|mediawiki.ui.anchor|mediawiki.ui.button|mediawiki.ui.checkbox|mediawiki.ui.radio|mediawiki.ui.icon|mediawiki.ui.input|mediawiki.ui.text&only=styles" > $(KSS_RL_TMP)
+       @curl -sG "${MEDIAWIKI_LOAD_URL}?modules=${MODULE_STR}&only=styles" > $(KSS_RL_TMP)
        @node_modules/.bin/kss-node ../../resources/src/mediawiki.ui static/ --css $(KSS_RL_TMP) -t styleguide-template
        @rm $(KSS_RL_TMP)
 
index c383af9..76cfb62 100644 (file)
@@ -17,3 +17,5 @@ If MediaWiki is running on localhost, you can omit MEDIAWIKI_LOAD_URL.
 To rebuild without opening the web browser, run:
 
 MEDIAWIKI_LOAD_URL=mediawiki_hostname/w/load.php make
+
+When modifying styleGuideModules.txt, keep the list in strict alphabetical order (with no extra formatting), so CSS loads in the same order as ResourceLoader's addModuleStyles does; this can affect rendering.
diff --git a/docs/kss/styleGuideModules.txt b/docs/kss/styleGuideModules.txt
new file mode 100644 (file)
index 0000000..2091010
--- /dev/null
@@ -0,0 +1,10 @@
+mediawiki.legacy.commonPrint
+mediawiki.legacy.shared
+mediawiki.ui
+mediawiki.ui.anchor
+mediawiki.ui.button
+mediawiki.ui.checkbox
+mediawiki.ui.icon
+mediawiki.ui.input
+mediawiki.ui.radio
+mediawiki.ui.text
index aab9599..ecc3626 100644 (file)
@@ -1,28 +1,30 @@
-MWLogger implements a PSR-3 [0] compatible message logging system.
+MWLoggerFactory implements a PSR-3 [0] compatible message logging system.
 
-The MWLogger class is actually a thin wrapper around any PSR-3 LoggerInterface
-implementation. Named MWLogger instances can be obtained from the
-MWLogger::getInstance() static method. MWLogger expects a class implementing
-the MWLoggerSpi interface to act as a factory for new MWLogger instances.
+Named Psr\Log\LoggerInterface instances can be obtained from the
+MWLoggerFactory::getInstance() static method. MWLoggerFactory expects a class
+implementing the MWLoggerSpi interface to act as a factory for new
+Psr\Log\LoggerInterface instances.
 
-The "Spi" in MWLoggerSpi stands for "service provider interface". An SPI is
-a API intended to be implemented or extended by a third party. This software
+The "Spi" in MWLoggerSpi stands for "service provider interface". A SPI is
+an API intended to be implemented or extended by a third party. This software
 design pattern is intended to enable framework extension and replaceable
-components. It is specifically used in the MWLogger service to allow alternate
-PSR-3 logging implementations to be easily integrated with MediaWiki.
+components. It is specifically used in the MWLoggerFactory service to allow
+alternate PSR-3 logging implementations to be easily integrated with
+MediaWiki.
 
-The MWLogger::getInstance() static method is the means by which most code
-acquires an MWLogger instance. This in turn delegates creation of MWLogger
-instances to a class implementing the MWLoggerSpi service provider interface.
+The MWLoggerFactory::getInstance() static method is the means by which most
+code acquires a Psr\Log\LoggerInterface instance. This in turn delegates
+creation of Psr\Log\LoggerInterface instances to a class implementing the
+MWLoggerSpi service provider interface.
 
 The service provider interface allows the backend logging library to be
 implemented in multiple ways. The $wgMWLoggerDefaultSpi global provides the
 classname of the default MWLoggerSpi implementation to be loaded at runtime.
 This can either be the name of a class implementing the MWLoggerSpi with
 a zero argument constructor or a callable that will return an MWLoggerSpi
-instance. Alternately the MWLogger::registerProvider method can be called
-to inject an MWLoggerSpi instance into MWLogger and bypass the use of this
-configuration variable.
+instance. Alternately the MWLoggerFactory::registerProvider method can be
+called to inject an MWLoggerSpi instance into MWLoggerFactory and bypass the
+use of this configuration variable.
 
 The MWLoggerLegacySpi class implements a service provider to generate
 MWLoggerLegacyLogger instances. The MWLoggerLegacyLogger class implements the
@@ -33,18 +35,17 @@ DefaultSettings.php. It's usage should be transparent for users who are not
 ready or do not wish to switch to a alternate logging platform.
 
 The MWLoggerMonologSpi class implements a service provider to generate
-MWLogger instances that use the Monolog [1] logging library. See the PHP docs
-(or source) for MWLoggerMonologSpi for details on the configuration of this
-provider. The default configuration installs a null handler that will silently
-discard all logging events. The documentation provided by the class describes
-a more feature rich logging configuration.
+Psr\Log\LoggerInterface instances that use the Monolog [1] logging library.
+See the PHP docs (or source) for MWLoggerMonologSpi for details on the
+configuration of this provider. The default configuration installs a null
+handler that will silently discard all logging events. The documentation
+provided by the class describes a more feature rich logging configuration.
 
 == Classes ==
-; MWLogger
-: PSR-3 compatible logger that wraps any \Psr\Log\LoggerInterface
-  implementation
+; MWLoggerFactory
+: Factory for Psr\Log\LoggerInterface loggers
 ; MWLoggerSpi
-: Service provider interface for MWLogger factories
+: Service provider interface for MWLoggerFactory
 ; MWLoggerNullSpi
 : MWLoggerSpi for creating instances that discard all log events
 ; MWLoggerLegacySpi
@@ -64,7 +65,7 @@ a more feature rich logging configuration.
 == Globals ==
 ; $wgMWLoggerDefaultSpi
 : Specification for creating the default service provider interface to use
-  with MWLogger
+  with MWLoggerFactory
 
 [0]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
 [1]: https://github.com/Seldaek/monolog
index c898ec9..d527aa8 100644 (file)
@@ -89,6 +89,9 @@ class CategoryViewer extends ContextSource {
        ) {
                $this->title = $title;
                $this->setContext( $context );
+               $this->getOutput()->addModuleStyles( array(
+                       'mediawiki.action.view.categoryPage.styles'
+               ) );
                $this->from = $from;
                $this->until = $until;
                $this->limit = $context->getConfig()->get( 'CategoryPagingLimit' );
@@ -533,9 +536,6 @@ class CategoryViewer extends ContextSource {
         * TODO: Take the headers into account when creating columns, so they're
         * more visually equal.
         *
-        * More distant TODO: Scrap this and use CSS columns, whenever IE finally
-        * supports those.
-        *
         * @param array $articles
         * @param string[] $articles_start_char
         * @return string
@@ -546,11 +546,10 @@ class CategoryViewer extends ContextSource {
                # Split into three columns
                $columns = array_chunk( $columns, ceil( count( $columns ) / 3 ), true /* preserve keys */ );
 
-               $ret = '<table style="width: 100%;"><tr style="vertical-align: top;">';
+               $ret = Html::openElement( 'div', array( 'class' => 'mw-category' ) );
                $prevchar = null;
 
                foreach ( $columns as $column ) {
-                       $ret .= '<td style="width: 33.3%;">';
                        $colContents = array();
 
                        # Kind of like array_flip() here, but we keep duplicates in an
@@ -567,26 +566,26 @@ class CategoryViewer extends ContextSource {
                                # Change space to non-breaking space to keep headers aligned
                                $h3char = $char === ' ' ? '&#160;' : htmlspecialchars( $char );
 
-                               $ret .= '<h3>' . $h3char;
+                               $ret .= Html::openElement( 'h3' ) . $h3char;
                                if ( $first && $char === $prevchar ) {
                                        # We're continuing a previous chunk at the top of a new
                                        # column, so add " cont." after the letter.
                                        $ret .= ' ' . wfMessage( 'listingcontinuesabbrev' )->escaped();
                                }
-                               $ret .= "</h3>\n";
+                               $ret .= Html::closeElement( 'h3' )."\n";
 
-                               $ret .= '<ul><li>';
-                               $ret .= implode( "</li>\n<li>", $articles );
-                               $ret .= '</li></ul>';
+                               $ret .= Html::openElement('ul').Html::openElement('li');
+                               $ret .= implode( Html::element( 'li' ), $articles );
+                               $ret .= Html::closeElement('ul').Html::closeElement('li');
 
                                $first = false;
                                $prevchar = $char;
                        }
 
-                       $ret .= "</td>\n";
+                       $ret .= "\n";
                }
 
-               $ret .= '</tr></table>';
+               $ret .= Html::closeElement( 'div' );
                return $ret;
        }
 
index ee462d8..83870c2 100644 (file)
@@ -270,6 +270,16 @@ $wgFavicon = '/favicon.ico';
  */
 $wgAppleTouchIcon = false;
 
+/**
+ * Value for the referrer policy meta tag.
+ * One of 'never', 'default', 'origin', 'always'. Setting it to false just
+ * prevents the meta tag from being output.
+ * See http://www.w3.org/TR/referrer-policy/ for details.
+ *
+ * @since 1.25
+ */
+$wgReferrerPolicy = false;
+
 /**
  * The local filesystem path to a temporary directory. This is not required to
  * be web accessible.
@@ -3144,6 +3154,7 @@ $wgExperimentalHtmlIds = false;
  * for the icon, the following keys are used:
  * - src: An absolute url to the image to use for the icon, this is recommended
  *        but not required, however some skins will ignore icons without an image
+ * - srcset: optional additional-resolution images; see HTML5 specs
  * - url: The url to use in the a element around the text or icon, if not set an a element will
  *        not be outputted
  * - alt: This is the text form of the icon, it will be displayed without an image in
@@ -3160,7 +3171,9 @@ $wgFooterIcons = array(
        ),
        "poweredby" => array(
                "mediawiki" => array(
-                       "src" => null, // Defaults to "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png"
+                       "src" => null, // Defaults to point at
+                                      // "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png"
+                                      // plus srcset for 1.5x, 2x resolution variants.
                        "url" => "//www.mediawiki.org/",
                        "alt" => "Powered by MediaWiki",
                )
@@ -3845,20 +3858,12 @@ $wgNamespacesWithSubpages = array(
  * A message with the suffix '-desc' should be added as a description message
  * to have extra information on Special:TrackingCategories.
  *
+ * @deprecated since 1.25 Extensions should now register tracking categories using
+ *                        the new extension registration system.
+ *
  * @since 1.23
  */
-$wgTrackingCategories = array(
-       'index-category',
-       'noindex-category',
-       'duplicate-args-category',
-       'expensive-parserfunction-category',
-       'post-expand-template-argument-category',
-       'post-expand-template-inclusion-category',
-       'hidden-category-category',
-       'broken-file-category',
-       'node-count-exceeded-category',
-       'expansion-depth-exceeded-category',
-);
+$wgTrackingCategories = array();
 
 /**
  * Array of namespaces which can be deemed to contain valid "content", as far
@@ -5279,16 +5284,16 @@ $wgDebugDumpSqlLength = 500;
 $wgDebugLogGroups = array();
 
 /**
- * Default service provider for creating MWLogger instances.
+ * Default service provider for creating Psr\Log\LoggerInterface instances.
  *
  * The value should be an array suitable for use with
  * ObjectFactory::getObjectFromSpec(). The created object is expected to
  * implement the MWLoggerSpi interface. See ObjectFactory for additional
  * details.
  *
- * Alternately the MWLogger::registerProvider method can be called to inject
- * an MWLoggerSpi instance into MWLogger and bypass the use of this
- * configuration variable entirely.
+ * Alternately the MWLoggerFactory::registerProvider method can be called to
+ * inject an MWLoggerSpi instance into MWLoggerFactory and bypass the use of
+ * this configuration variable entirely.
  *
  * @since 1.25
  * @var array $wgMWLoggerDefaultSpi
index d63d5ca..8456c5d 100644 (file)
@@ -203,7 +203,7 @@ define( 'LIST_OR', 4 );
 /**
  * Unicode and normalisation related
  */
-require_once __DIR__ . '/normal/UtfNormalDefines.php';
+require_once __DIR__ . '/libs/normal/UtfNormalDefines.php';
 
 /**@{
  * Hook support constants
index 9518182..2025e17 100644 (file)
@@ -1078,7 +1078,7 @@ function wfDebug( $text, $dest = 'all', array $context = array() ) {
                $context['prefix'] = $wgDebugLogPrefix;
        }
 
-       $logger = MWLogger::getInstance( 'wfDebug' );
+       $logger = MWLoggerFactory::getInstance( 'wfDebug' );
        $logger->debug( $text, $context );
 }
 
@@ -1182,7 +1182,7 @@ function wfDebugLog(
                MWDebug::debugMsg( "[{$logGroup}] {$text}\n" );
        }
 
-       $logger = MWLogger::getInstance( $logGroup );
+       $logger = MWLoggerFactory::getInstance( $logGroup );
        $context['private'] = ( $dest === 'private' );
        $logger->info( $text, $context );
 }
@@ -1196,7 +1196,7 @@ function wfDebugLog(
  * @param array $context Additional logging context data
  */
 function wfLogDBError( $text, array $context = array() ) {
-       $logger = MWLogger::getInstance( 'wfLogDBError' );
+       $logger = MWLoggerFactory::getInstance( 'wfLogDBError' );
        $logger->error( trim( $text ), $context );
 }
 
@@ -1259,7 +1259,7 @@ function wfLogWarning( $msg, $callerOffset = 1, $level = E_USER_WARNING ) {
  */
 function wfErrorLog( $text, $file, array $context = array() ) {
        wfDeprecated( __METHOD__, '1.25' );
-       $logger = MWLogger::getInstance( 'wfErrorLog' );
+       $logger = MWLoggerFactory::getInstance( 'wfErrorLog' );
        $context['destination'] = $file;
        $logger->info( trim( $text ), $context );
 }
@@ -1334,7 +1334,7 @@ function wfLogProfilingData() {
 
        $ctx['output'] = $profiler->getOutput();
 
-       $log = MWLogger::getInstance( 'profileoutput' );
+       $log = MWLoggerFactory::getInstance( 'profileoutput' );
        $log->info( "Elapsed: {elapsed}; URL: <{url}>\n{output}", $ctx );
 }
 
@@ -4026,7 +4026,7 @@ function wfGetLangConverterCacheStorage() {
  * @param string|null $deprecatedVersion Optionally mark hook as deprecated with version number
  *
  * @return bool True if no handler aborted the hook
- * @deprecated 1.25
+ * @deprecated 1.25 - use Hooks::run
  */
 function wfRunHooks( $event, array $args = array(), $deprecatedVersion = null ) {
        return Hooks::run( $event, $args, $deprecatedVersion );
index c3caecc..9d1bbc0 100644 (file)
@@ -1670,7 +1670,7 @@ class WikiRevision {
                        wfDebug( __METHOD__ . ": Successful\n" );
                        return true;
                } else {
-                       wfDebug( __METHOD__ . ': failed: ' . $status->getXml() . "\n" );
+                       wfDebug( __METHOD__ . ': failed: ' . $status->getHTML() . "\n" );
                        return false;
                }
        }
index 7840868..3a039f6 100644 (file)
@@ -1605,7 +1605,7 @@ class Linker {
         * @return string HTML fragment
         */
        public static function revComment( Revision $rev, $local = false, $isPublic = false ) {
-               if ( $rev->getRawComment() == "" ) {
+               if ( $rev->getComment( Revision::RAW ) == "" ) {
                        return "";
                }
                if ( $rev->isDeleted( Revision::DELETED_COMMENT ) && $isPublic ) {
@@ -1870,7 +1870,7 @@ class Linker {
                $editCount = 0;
                $moreRevs = false;
                foreach ( $res as $row ) {
-                       if ( $rev->getRawUserText() != $row->rev_user_text ) {
+                       if ( $rev->getUserText( Revision::RAW ) != $row->rev_user_text ) {
                                if ( $verify &&
                                        ( $row->rev_deleted & Revision::DELETED_TEXT
                                                || $row->rev_deleted & Revision::DELETED_USER
@@ -2043,14 +2043,14 @@ class Linker {
                                if ( $titleObj->quickUserCan( 'edit' ) ) {
                                        $editLink = self::link(
                                                $titleObj,
-                                               wfMessage( 'editlink' )->text(),
+                                               wfMessage( 'editlink' )->escaped(),
                                                array(),
                                                array( 'action' => 'edit' )
                                        );
                                } else {
                                        $editLink = self::link(
                                                $titleObj,
-                                               wfMessage( 'viewsourcelink' )->text(),
+                                               wfMessage( 'viewsourcelink' )->escaped(),
                                                array(),
                                                array( 'action' => 'edit' )
                                        );
index 4e14b7b..5c146e4 100644 (file)
@@ -3284,6 +3284,13 @@ class OutputPage extends ContextSource {
                        'content' => "MediaWiki $wgVersion",
                ) );
 
+               if ( $config->get( 'ReferrerPolicy' ) !== false ) {
+                       $tags['meta-referrer'] = Html::element( 'meta', array(
+                               'name' => 'referrer',
+                               'content' => $config->get( 'ReferrerPolicy' )
+                       ) );
+               }
+
                $p = "{$this->mIndexPolicy},{$this->mFollowPolicy}";
                if ( $p !== 'index,follow' ) {
                        // http://www.robotstxt.org/wc/meta-user.html
@@ -3786,12 +3793,13 @@ class OutputPage extends ContextSource {
         * This function takes a number of message/argument specifications, wraps them in
         * some overall structure, and then parses the result and adds it to the output.
         *
-        * In the $wrap, $1 is replaced with the first message, $2 with the second, and so
-        * on. The subsequent arguments may either be strings, in which case they are the
-        * message names, or arrays, in which case the first element is the message name,
-        * and subsequent elements are the parameters to that message.
+        * In the $wrap, $1 is replaced with the first message, $2 with the second,
+        * and so on. The subsequent arguments may be either
+        * 1) strings, in which case they are message names, or
+        * 2) arrays, in which case, within each array, the first element is the message
+        *    name, and subsequent elements are the parameters to that message.
         *
-        * Don't use this for messages that are not in users interface language.
+        * Don't use this for messages that are not in the user's interface language.
         *
         * For example:
         *
@@ -3802,7 +3810,7 @@ class OutputPage extends ContextSource {
         *    $wgOut->addWikiText( "<div class='error'>\n"
         *        . wfMessage( 'some-error' )->plain() . "\n</div>" );
         *
-        * The newline after opening div is needed in some wikitext. See bug 19226.
+        * The newline after the opening div is needed in some wikitext. See bug 19226.
         *
         * @param string $wrap
         */
@@ -3877,4 +3885,16 @@ class OutputPage extends ContextSource {
        public function sectionEditLinksEnabled() {
                return $this->mEnableSectionEditLinks;
        }
+
+       /**
+        * Add ResourceLoader module styles for OOUI and set up the PHP implementation of it for use with
+        * MediaWiki and this OutputPage instance.
+        *
+        * @since 1.25
+        */
+       public function enableOOUI() {
+               OOUI\Theme::setSingleton( new OOUI\MediaWikiTheme() );
+               OOUI\Element::setDefaultDir( $this->getLanguage()->getDir() );
+               $this->addModuleStyles( 'oojs-ui.styles' );
+       }
 }
index 9e0a255..84d4189 100644 (file)
@@ -919,6 +919,30 @@ class Preferences {
                $watchlistdaysMax = ceil( $config->get( 'RCMaxAge' ) / ( 3600 * 24 ) );
 
                ## Watchlist #####################################
+               if ( $user->isAllowed( 'editmywatchlist' ) ) {
+                       $editWatchlistLinks = array();
+                       $editWatchlistModes = array(
+                               'edit' => array( 'EditWatchlist', false ),
+                               'raw' => array( 'EditWatchlist', 'raw' ),
+                               'clear' => array( 'EditWatchlist', 'clear' ),
+                       );
+                       foreach ( $editWatchlistModes as $editWatchlistMode => $mode ) {
+                               // Messages: prefs-editwatchlist-edit, prefs-editwatchlist-raw, prefs-editwatchlist-clear
+                               $editWatchlistLinks[] = Linker::linkKnown(
+                                       SpecialPage::getTitleFor( $mode[0], $mode[1] ),
+                                       $context->msg( "prefs-editwatchlist-{$editWatchlistMode}" )->parse()
+                               );
+                       }
+
+                       $defaultPreferences['editwatchlist'] = array(
+                               'type' => 'info',
+                               'raw' => true,
+                               'default' => $context->getLanguage()->pipeList( $editWatchlistLinks ),
+                               'label-message' => 'prefs-editwatchlist-label',
+                               'section' => 'watchlist/editwatchlist',
+                       );
+               }
+
                $defaultPreferences['watchlistdays'] = array(
                        'type' => 'float',
                        'min' => 0,
index 76ad252..f777a37 100644 (file)
@@ -209,11 +209,11 @@ class ProtectionForm {
                if ( $this->mTitle->getRestrictionTypes() === array() ) {
                        // No restriction types available for the current title
                        // this might happen if an extension alters the available types
-                       $out->setPageTitle( wfMessage(
+                       $out->setPageTitle( $this->mContext->msg(
                                'protect-norestrictiontypes-title',
                                $this->mTitle->getPrefixedText()
                        ) );
-                       $out->addWikiText( wfMessage( 'protect-norestrictiontypes-text' )->text() );
+                       $out->addWikiText( $this->mContext->msg( 'protect-norestrictiontypes-text' )->plain() );
 
                        // Show the log in case protection was possible once
                        $this->showLogExtract( $out );
@@ -240,12 +240,12 @@ class ProtectionForm {
                # the protection settings at this time
                if ( $this->disabled ) {
                        $out->setPageTitle(
-                               wfMessage( 'protect-title-notallowed',
+                               $this->mContext->msg( 'protect-title-notallowed',
                                        $this->mTitle->getPrefixedText() )
                        );
                        $out->addWikiText( $out->formatPermissionsErrorMessage( $this->mPermErrors, 'protect' ) );
                } else {
-                       $out->setPageTitle( wfMessage( 'protect-title', $this->mTitle->getPrefixedText() ) );
+                       $out->setPageTitle( $this->mContext->msg( 'protect-title', $this->mTitle->getPrefixedText() ) );
                        $out->addWikiMsg( 'protect-text',
                                wfEscapeWikiText( $this->mTitle->getPrefixedText() ) );
                }
@@ -279,7 +279,7 @@ class ProtectionForm {
                $reasonstr = $this->mReasonSelection;
                if ( $reasonstr != 'other' && $this->mReason != '' ) {
                        // Entry from drop down menu + additional comment
-                       $reasonstr .= wfMessage( 'colon-separator' )->text() . $this->mReason;
+                       $reasonstr .= $this->mContext->msg( 'colon-separator' )->text() . $this->mReason;
                } elseif ( $reasonstr == 'other' ) {
                        $reasonstr = $this->mReason;
                }
@@ -342,10 +342,11 @@ class ProtectionForm {
         * @return string HTML form
         */
        function buildForm() {
-               $user = $this->mContext->getUser();
-               $output = $this->mContext->getOutput();
-               $lang = $this->mContext->getLanguage();
-               $cascadingRestrictionLevels = $this->mContext->getConfig()->get( 'CascadingRestrictionLevels' );
+               $context = $this->mContext;
+               $user = $context->getUser();
+               $output = $context->getOutput();
+               $lang = $context->getLanguage();
+               $cascadingRestrictionLevels = $context->getConfig()->get( 'CascadingRestrictionLevels' );
                $out = '';
                if ( !$this->disabled ) {
                        $output->addModules( 'mediawiki.legacy.protect' );
@@ -356,7 +357,7 @@ class ProtectionForm {
                }
 
                $out .= Xml::openElement( 'fieldset' ) .
-                       Xml::element( 'legend', null, wfMessage( 'protect-legend' )->text() ) .
+                       Xml::element( 'legend', null, $context->msg( 'protect-legend' )->text() ) .
                        Xml::openElement( 'table', array( 'id' => 'mwProtectSet' ) ) .
                        Xml::openElement( 'tbody' );
 
@@ -367,7 +368,7 @@ class ProtectionForm {
                foreach ( $this->mRestrictions as $action => $selected ) {
                        // Messages:
                        // restriction-edit, restriction-move, restriction-create, restriction-upload
-                       $msg = wfMessage( 'restriction-' . $action );
+                       $msg = $context->msg( 'restriction-' . $action );
                        $out .= "<tr><td>" .
                        Xml::openElement( 'fieldset' ) .
                        Xml::element( 'legend', null, $msg->exists() ? $msg->text() : $action ) .
@@ -375,23 +376,23 @@ class ProtectionForm {
                                "<tr><td>" . $this->buildSelector( $action, $selected ) . "</td></tr><tr><td>";
 
                        $mProtectexpiry = Xml::label(
-                               wfMessage( 'protectexpiry' )->text(),
+                               $context->msg( 'protectexpiry' )->text(),
                                "mwProtectExpirySelection-$action"
                        );
                        $mProtectother = Xml::label(
-                               wfMessage( 'protect-othertime' )->text(),
+                               $context->msg( 'protect-othertime' )->text(),
                                "mwProtect-$action-expires"
                        );
 
                        $expiryFormOptions = '';
                        if ( $this->mExistingExpiry[$action] ) {
                                if ( $this->mExistingExpiry[$action] == 'infinity' ) {
-                                       $existingExpiryMessage = wfMessage( 'protect-existing-expiry-infinity' );
+                                       $existingExpiryMessage = $context->msg( 'protect-existing-expiry-infinity' );
                                } else {
-                                       $timestamp = $lang->timeanddate( $this->mExistingExpiry[$action], true );
-                                       $d = $lang->date( $this->mExistingExpiry[$action], true );
-                                       $t = $lang->time( $this->mExistingExpiry[$action], true );
-                                       $existingExpiryMessage = wfMessage( 'protect-existing-expiry', $timestamp, $d, $t );
+                                       $timestamp = $lang->userTimeAndDate( $this->mExistingExpiry[$action], $user );
+                                       $d = $lang->userDate( $this->mExistingExpiry[$action], $user );
+                                       $t = $lang->userTime( $this->mExistingExpiry[$action], $user );
+                                       $existingExpiryMessage = $context->msg( 'protect-existing-expiry', $timestamp, $d, $t );
                                }
                                $expiryFormOptions .=
                                        Xml::option(
@@ -402,7 +403,7 @@ class ProtectionForm {
                        }
 
                        $expiryFormOptions .= Xml::option(
-                               wfMessage( 'protect-othertime-op' )->text(),
+                               $context->msg( 'protect-othertime-op' )->text(),
                                "othertime"
                        ) . "\n";
                        foreach ( explode( ',', $scExpiryOptions ) as $option ) {
@@ -411,11 +412,9 @@ class ProtectionForm {
                                } else {
                                        list( $show, $value ) = explode( ":", $option );
                                }
-                               $show = htmlspecialchars( $show );
-                               $value = htmlspecialchars( $value );
                                $expiryFormOptions .= Xml::option(
                                        $show,
-                                       $value,
+                                       htmlspecialchars( $value ),
                                        $this->mExpirySelection[$action] === $value
                                ) . "\n";
                        }
@@ -464,7 +463,7 @@ class ProtectionForm {
                                        <td></td>
                                        <td class="mw-input">' .
                                                Xml::checkLabel(
-                                                       wfMessage( 'protect-cascade' )->text(),
+                                                       $context->msg( 'protect-cascade' )->text(),
                                                        'mwProtect-cascade',
                                                        'mwProtect-cascade',
                                                        $this->mCascade, $this->disabledAttrib
@@ -477,12 +476,12 @@ class ProtectionForm {
                # Add manual and custom reason field/selects as well as submit
                if ( !$this->disabled ) {
                        $mProtectreasonother = Xml::label(
-                               wfMessage( 'protectcomment' )->text(),
+                               $context->msg( 'protectcomment' )->text(),
                                'wpProtectReasonSelection'
                        );
 
                        $mProtectreason = Xml::label(
-                               wfMessage( 'protect-otherreason' )->text(),
+                               $context->msg( 'protect-otherreason' )->text(),
                                'mwProtect-reason'
                        );
 
@@ -521,7 +520,7 @@ class ProtectionForm {
                                <tr>
                                        <td></td>
                                        <td class='mw-input'>" .
-                                               Xml::checkLabel( wfMessage( 'watchthis' )->text(),
+                                               Xml::checkLabel( $context->msg( 'watchthis' )->text(),
                                                        'mwProtectWatch', 'mwProtectWatch',
                                                        $user->isWatched( $this->mTitle ) || $user->getOption( 'watchdefault' ) ) .
                                        "</td>
@@ -532,7 +531,7 @@ class ProtectionForm {
                                        <td></td>
                                        <td class='mw-submit'>" .
                                                Xml::submitButton(
-                                                       wfMessage( 'confirm' )->text(),
+                                                       $context->msg( 'confirm' )->text(),
                                                        array( 'id' => 'mw-Protect-submit' )
                                                ) .
                                        "</td>
@@ -545,7 +544,7 @@ class ProtectionForm {
                        $title = Title::makeTitle( NS_MEDIAWIKI, 'Protect-dropdown' );
                        $link = Linker::link(
                                $title,
-                               wfMessage( 'protect-edit-reasonlist' )->escaped(),
+                               $context->msg( 'protect-edit-reasonlist' )->escaped(),
                                array(),
                                array( 'action' => 'edit' )
                        );
@@ -600,14 +599,14 @@ class ProtectionForm {
         */
        private function getOptionLabel( $permission ) {
                if ( $permission == '' ) {
-                       return wfMessage( 'protect-default' )->text();
+                       return $this->mContext->msg( 'protect-default' )->text();
                } else {
                        // Messages: protect-level-autoconfirmed, protect-level-sysop
-                       $msg = wfMessage( "protect-level-{$permission}" );
+                       $msg = $this->mContext->msg( "protect-level-{$permission}" );
                        if ( $msg->exists() ) {
                                return $msg->text();
                        }
-                       return wfMessage( 'protect-fallback', $permission )->text();
+                       return $this->mContext->msg( 'protect-fallback', $permission )->text();
                }
        }
 
index c8015e6..90cc35a 100644 (file)
@@ -826,9 +826,11 @@ class Revision implements IDBAccessObject {
         * Fetch revision's user id without regard for the current user's permissions
         *
         * @return string
+        * @deprecated since 1.25, use getUser( Revision::RAW )
         */
        public function getRawUser() {
-               return $this->mUser;
+               wfDeprecated( __METHOD__, '1.25' );
+               return $this->getUser( self::RAW );
        }
 
        /**
@@ -850,7 +852,15 @@ class Revision implements IDBAccessObject {
                } elseif ( $audience == self::FOR_THIS_USER && !$this->userCan( self::DELETED_USER, $user ) ) {
                        return '';
                } else {
-                       return $this->getRawUserText();
+                       if ( $this->mUserText === null ) {
+                               $this->mUserText = User::whoIs( $this->mUser ); // load on demand
+                               if ( $this->mUserText === false ) {
+                                       # This shouldn't happen, but it can if the wiki was recovered
+                                       # via importing revs and there is no user table entry yet.
+                                       $this->mUserText = $this->mOrigUserText;
+                               }
+                       }
+                       return $this->mUserText;
                }
        }
 
@@ -858,17 +868,11 @@ class Revision implements IDBAccessObject {
         * Fetch revision's username without regard for view restrictions
         *
         * @return string
+        * @deprecated since 1.25, use getUserText( Revision::RAW )
         */
        public function getRawUserText() {
-               if ( $this->mUserText === null ) {
-                       $this->mUserText = User::whoIs( $this->mUser ); // load on demand
-                       if ( $this->mUserText === false ) {
-                               # This shouldn't happen, but it can if the wiki was recovered
-                               # via importing revs and there is no user table entry yet.
-                               $this->mUserText = $this->mOrigUserText;
-                       }
-               }
-               return $this->mUserText;
+               wfDeprecated( __METHOD__, '1.25' );
+               return $this->getUserText( self::RAW );
        }
 
        /**
@@ -898,9 +902,11 @@ class Revision implements IDBAccessObject {
         * Fetch revision comment without regard for the current user's permissions
         *
         * @return string
+        * @deprecated since 1.25, use getComment( Revision::RAW )
         */
        public function getRawComment() {
-               return $this->mComment;
+               wfDeprecated( __METHOD__, '1.25' );
+               return $this->getComment( self::RAW );
        }
 
        /**
@@ -936,7 +942,7 @@ class Revision implements IDBAccessObject {
                $dbr = wfGetDB( DB_SLAVE );
                return RecentChange::newFromConds(
                        array(
-                               'rc_user_text' => $this->getRawUserText(),
+                               'rc_user_text' => $this->getUserText( Revision::RAW ),
                                'rc_timestamp' => $dbr->timestamp( $this->getTimestamp() ),
                                'rc_this_oldid' => $this->getId()
                        ),
index 6942ac0..f79e94d 100644 (file)
@@ -355,7 +355,6 @@ class Sanitizer {
        /**
         * Cleans up HTML, removes dangerous tags and attributes, and
         * removes HTML comments
-        * @private
         * @param string $text
         * @param callable $processCallback Callback to do any variable or parameter
         *   replacements in HTML attribute values
@@ -364,7 +363,7 @@ class Sanitizer {
         * @param array $removetags For any tags (default or extra) to exclude
         * @return string
         */
-       static function removeHTMLtags( $text, $processCallback = null,
+       public static function removeHTMLtags( $text, $processCallback = null,
                $args = array(), $extratags = array(), $removetags = array()
        ) {
                global $wgUseTidy, $wgAllowMicrodataAttributes, $wgAllowImageTag;
@@ -607,11 +606,10 @@ class Sanitizer {
         * and followed by a newline (ignoring spaces), trim leading and
         * trailing spaces and one of the newlines.
         *
-        * @private
         * @param string $text
         * @return string
         */
-       static function removeHTMLcomments( $text ) {
+       public static function removeHTMLcomments( $text ) {
                while ( ( $start = strpos( $text, '<!--' ) ) !== false ) {
                        $end = strpos( $text, '-->', $start + 4 );
                        if ( $end === false ) {
index c75429e..6939f95 100644 (file)
@@ -140,6 +140,9 @@ if ( isset( $wgFooterIcons['poweredby'] )
 ) {
        $wgFooterIcons['poweredby']['mediawiki']['src'] =
                "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png";
+       $wgFooterIcons['poweredby']['mediawiki']['srcset'] =
+               "$wgResourceBasePath/resources/assets/poweredby_mediawiki_132x47.png 1.5x, " .
+               "$wgResourceBasePath/resources/assets/poweredby_mediawiki_176x62.png 2x";
 }
 
 /**
@@ -476,8 +479,7 @@ if ( !class_exists( 'AutoLoader' ) ) {
 
 MWExceptionHandler::installHandler();
 
-require_once "$IP/includes/normal/UtfNormalUtil.php";
-require_once "$IP/includes/normal/UtfNormalDefines.php";
+require_once "$IP/includes/libs/normal/UtfNormalUtil.php";
 
 $ps_default2 = Profiler::instance()->scopedProfileIn( $fname . '-defaults2' );
 
index bb4d04e..463f75e 100644 (file)
@@ -942,9 +942,9 @@ class Title {
         * @return string Content model id
         */
        public function getContentModel( $flags = 0 ) {
-               # Calling getArticleID() loads the field from cache as needed
                if ( !$this->mContentModel && $this->getArticleID( $flags ) ) {
                        $linkCache = LinkCache::singleton();
+                       $linkCache->addLinkObj( $this ); # in case we already had an article ID
                        $this->mContentModel = $linkCache->getGoodLinkFieldObj( $this, 'model' );
                }
 
@@ -3185,13 +3185,13 @@ class Title {
                if ( !is_null( $this->mRedirect ) ) {
                        return $this->mRedirect;
                }
-               # Calling getArticleID() loads the field from cache as needed
                if ( !$this->getArticleID( $flags ) ) {
                        $this->mRedirect = false;
                        return $this->mRedirect;
                }
 
                $linkCache = LinkCache::singleton();
+               $linkCache->addLinkObj( $this ); # in case we already had an article ID
                $cached = $linkCache->getGoodLinkFieldObj( $this, 'redirect' );
                if ( $cached === null ) {
                        # Trust LinkCache's state over our own
@@ -3220,12 +3220,12 @@ class Title {
                if ( $this->mLength != -1 ) {
                        return $this->mLength;
                }
-               # Calling getArticleID() loads the field from cache as needed
                if ( !$this->getArticleID( $flags ) ) {
                        $this->mLength = 0;
                        return $this->mLength;
                }
                $linkCache = LinkCache::singleton();
+               $linkCache->addLinkObj( $this ); # in case we already had an article ID
                $cached = $linkCache->getGoodLinkFieldObj( $this, 'length' );
                if ( $cached === null ) {
                        # Trust LinkCache's state over our own, as for isRedirect()
@@ -3248,13 +3248,12 @@ class Title {
                if ( !( $flags & Title::GAID_FOR_UPDATE ) && $this->mLatestID !== false ) {
                        return intval( $this->mLatestID );
                }
-               # Calling getArticleID() loads the field from cache as needed
                if ( !$this->getArticleID( $flags ) ) {
                        $this->mLatestID = 0;
                        return $this->mLatestID;
                }
                $linkCache = LinkCache::singleton();
-               $linkCache->addLinkObj( $this );
+               $linkCache->addLinkObj( $this ); # in case we already had an article ID
                $cached = $linkCache->getGoodLinkFieldObj( $this, 'revision' );
                if ( $cached === null ) {
                        # Trust LinkCache's state over our own, as for isRedirect()
@@ -4098,12 +4097,11 @@ class Title {
                        'rev_timestamp < ' . $dbr->addQuotes( $dbr->timestamp( $new->getTimestamp() ) )
                );
                if ( $max !== null ) {
-                       $res = $dbr->select( 'revision', '1',
+                       return $dbr->selectRowCount( 'revision', '1',
                                $conds,
                                __METHOD__,
                                array( 'LIMIT' => $max + 1 ) // extra to detect truncation
                        );
-                       return $res->numRows();
                } else {
                        return (int)$dbr->selectField( 'revision', 'count(*)', $conds, __METHOD__ );
                }
@@ -4154,17 +4152,19 @@ class Title {
                }
                // No DB query needed if $old and $new are the same or successive revisions:
                if ( $old->getId() === $new->getId() ) {
-                       return ( $old_cmp === '>' && $new_cmp === '<' ) ? array() : array( $old->getRawUserText() );
+                       return ( $old_cmp === '>' && $new_cmp === '<' ) ?
+                               array() :
+                               array( $old->getUserText( Revision::RAW ) );
                } elseif ( $old->getId() === $new->getParentId() ) {
                        if ( $old_cmp === '>=' && $new_cmp === '<=' ) {
-                               $authors[] = $old->getRawUserText();
-                               if ( $old->getRawUserText() != $new->getRawUserText() ) {
-                                       $authors[] = $new->getRawUserText();
+                               $authors[] = $old->getUserText( Revision::RAW );
+                               if ( $old->getUserText( Revision::RAW ) != $new->getUserText( Revision::RAW ) ) {
+                                       $authors[] = $new->getUserText( Revision::RAW );
                                }
                        } elseif ( $old_cmp === '>=' ) {
-                               $authors[] = $old->getRawUserText();
+                               $authors[] = $old->getUserText( Revision::RAW );
                        } elseif ( $new_cmp === '<=' ) {
-                               $authors[] = $new->getRawUserText();
+                               $authors[] = $new->getUserText( Revision::RAW );
                        }
                        return $authors;
                }
index ad4ce60..dd199ee 100644 (file)
@@ -3008,20 +3008,24 @@ class User implements IDBAccessObject {
         * Add the user to the given group.
         * This takes immediate effect.
         * @param string $group Name of the group to add
+        * @return bool
         */
        public function addGroup( $group ) {
-               if ( Hooks::run( 'UserAddGroup', array( $this, &$group ) ) ) {
-                       $dbw = wfGetDB( DB_MASTER );
-                       if ( $this->getId() ) {
-                               $dbw->insert( 'user_groups',
-                                       array(
-                                               'ug_user' => $this->getID(),
-                                               'ug_group' => $group,
-                                       ),
-                                       __METHOD__,
-                                       array( 'IGNORE' ) );
-                       }
+               if ( !Hooks::run( 'UserAddGroup', array( $this, &$group ) ) ) {
+                       return false;
+               }
+
+               $dbw = wfGetDB( DB_MASTER );
+               if ( $this->getId() ) {
+                       $dbw->insert( 'user_groups',
+                               array(
+                                       'ug_user' => $this->getID(),
+                                       'ug_group' => $group,
+                               ),
+                               __METHOD__,
+                               array( 'IGNORE' ) );
                }
+
                $this->loadGroups();
                $this->mGroups[] = $group;
                // In case loadGroups was not called before, we now have the right twice.
@@ -3034,31 +3038,39 @@ class User implements IDBAccessObject {
                $this->mRights = null;
 
                $this->invalidateCache();
+
+               return true;
        }
 
        /**
         * Remove the user from the given group.
         * This takes immediate effect.
         * @param string $group Name of the group to remove
+        * @return bool
         */
        public function removeGroup( $group ) {
                $this->load();
-               if ( Hooks::run( 'UserRemoveGroup', array( $this, &$group ) ) ) {
-                       $dbw = wfGetDB( DB_MASTER );
-                       $dbw->delete( 'user_groups',
-                               array(
-                                       'ug_user' => $this->getID(),
-                                       'ug_group' => $group,
-                               ), __METHOD__ );
-                       // Remember that the user was in this group
-                       $dbw->insert( 'user_former_groups',
-                               array(
-                                       'ufg_user' => $this->getID(),
-                                       'ufg_group' => $group,
-                               ),
-                               __METHOD__,
-                               array( 'IGNORE' ) );
+               if ( !Hooks::run( 'UserRemoveGroup', array( $this, &$group ) ) ) {
+                       return false;
                }
+
+               $dbw = wfGetDB( DB_MASTER );
+               $dbw->delete( 'user_groups',
+                       array(
+                               'ug_user' => $this->getID(),
+                               'ug_group' => $group,
+                       ), __METHOD__
+               );
+               // Remember that the user was in this group
+               $dbw->insert( 'user_former_groups',
+                       array(
+                               'ufg_user' => $this->getID(),
+                               'ufg_group' => $group,
+                       ),
+                       __METHOD__,
+                       array( 'IGNORE' )
+               );
+
                $this->loadGroups();
                $this->mGroups = array_diff( $this->mGroups, array( $group ) );
 
@@ -3068,6 +3080,8 @@ class User implements IDBAccessObject {
                $this->mRights = null;
 
                $this->invalidateCache();
+
+               return true;
        }
 
        /**
index e931f28..f86a454 100644 (file)
@@ -207,9 +207,9 @@ class WebRequest {
         * @return array
         */
        public static function detectProtocol() {
-               if ( ( isset( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] == 'on' ) ||
+               if ( ( !empty( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] !== 'off' ) ||
                        ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) &&
-                       $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) ) {
+                       $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) ) {
                        return 'https';
                } else {
                        return 'http';
index 9e4a150..ff31eb6 100644 (file)
@@ -276,7 +276,9 @@ class InfoAction extends FormlessAction {
                // Language in which the page content is (supposed to be) written
                $pageLang = $title->getPageLanguage()->getCode();
 
-               if ( $config->get( 'PageLanguageUseDB' ) && $this->getTitle()->userCan( 'pagelang' ) ) {
+               if ( $config->get( 'PageLanguageUseDB' )
+                       && $this->getTitle()->userCan( 'pagelang', $this->getUser() )
+               ) {
                        // Link to Special:PageLanguage with pre-filled page title if user has permissions
                        $titleObj = SpecialPage::getTitleFor( 'PageLanguage', $title->getPrefixedText() );
                        $langDisp = Linker::link(
@@ -295,7 +297,7 @@ class InfoAction extends FormlessAction {
                // Content model of the page
                $pageInfo['header-basic'][] = array(
                        $this->msg( 'pageinfo-content-model' ),
-                       ContentHandler::getLocalizedName( $title->getContentModel() )
+                       htmlspecialchars( ContentHandler::getLocalizedName( $title->getContentModel() ) )
                );
 
                // Search engine status
@@ -481,7 +483,7 @@ class InfoAction extends FormlessAction {
                                $this->msg( 'pageinfo-firsttime' ),
                                Linker::linkKnown(
                                        $title,
-                                       $lang->userTimeAndDate( $firstRev->getTimestamp(), $user ),
+                                       htmlspecialchars( $lang->userTimeAndDate( $firstRev->getTimestamp(), $user ) ),
                                        array(),
                                        array( 'oldid' => $firstRev->getId() )
                                )
@@ -500,7 +502,7 @@ class InfoAction extends FormlessAction {
                                $this->msg( 'pageinfo-lasttime' ),
                                Linker::linkKnown(
                                        $title,
-                                       $lang->userTimeAndDate( $this->page->getTimestamp(), $user ),
+                                       htmlspecialchars( $lang->userTimeAndDate( $this->page->getTimestamp(), $user ) ),
                                        array(),
                                        array( 'oldid' => $this->page->getLatest() )
                                )
index f663cc6..8ad2ad9 100644 (file)
@@ -252,7 +252,7 @@ class ApiEditPage extends ApiBase {
                        'format' => $contentFormat,
                        'model' => $contentHandler->getModelID(),
                        'wpEditToken' => $params['token'],
-                       'wpIgnoreBlankSummary' => '',
+                       'wpIgnoreBlankSummary' => true,
                        'wpIgnoreBlankArticle' => true,
                        'wpIgnoreSelfRedirect' => true,
                );
@@ -462,7 +462,6 @@ class ApiEditPage extends ApiBase {
                        case EditPage::AS_CONFLICT_DETECTED:
                                $this->dieUsageMsg( 'editconflict' );
 
-                       // case EditPage::AS_SUMMARY_NEEDED: Can't happen since we set wpIgnoreBlankSummary
                        case EditPage::AS_TEXTBOX_EMPTY:
                                $this->dieUsageMsg( 'emptynewsection' );
 
@@ -487,6 +486,7 @@ class ApiEditPage extends ApiBase {
                                break;
 
                        case EditPage::AS_SUMMARY_NEEDED:
+                               // Shouldn't happen since we set wpIgnoreBlankSummary, but just in case
                                $this->dieUsageMsg( 'summaryrequired' );
 
                        case EditPage::AS_END:
index ced5f0c..edda672 100644 (file)
@@ -95,7 +95,10 @@ class ApiFeedContributions extends ApiBase {
                                if ( ++$count > $limit ) {
                                        break;
                                }
-                               $feedItems[] = $this->feedItem( $row );
+                               $item = $this->feedItem( $row );
+                               if ( $item !== null ) {
+                                       $feedItems[] = $item;
+                               }
                        }
                }
 
@@ -103,6 +106,23 @@ class ApiFeedContributions extends ApiBase {
        }
 
        protected function feedItem( $row ) {
+               // This hook is the api contributions equivalent to the
+               // ContributionsLineEnding hook. Hook implementers may cancel
+               // the hook to signal the user is not allowed to read this item.
+               $feedItem = null;
+               $hookResult = Hooks::run(
+                       'ApiFeedContributions::feedItem',
+                       array( $row, $this->getContext(), &$feedItem )
+               );
+               // Hook returned a valid feed item
+               if ( $feedItem instanceof FeedItem ) {
+                       return $feedItem;
+               // Hook was canceled and did not return a valid feed item
+               } elseif ( !$hookResult ) {
+                       return null;
+               }
+
+               // Hook completed and did not return a valid feed item
                $title = Title::makeTitle( intval( $row->page_namespace ), $row->page_title );
                if ( $title && $title->userCan( 'read', $this->getUser() ) ) {
                        $date = $row->rev_timestamp;
index 981c119..e53e2b2 100644 (file)
@@ -315,6 +315,10 @@ class ApiPageSet extends ApiBase {
                        $pageFlds['page_is_redirect'] = null;
                }
 
+               if ( $this->getConfig()->get( 'ContentHandlerUseDB' ) ) {
+                       $pageFlds['page_content_model'] = null;
+               }
+
                // only store non-default fields
                $this->mRequestedPageFields = array_diff_key( $this->mRequestedPageFields, $pageFlds );
 
index a658309..281f838 100644 (file)
@@ -179,9 +179,9 @@ abstract class ApiQueryRevisionsBase extends ApiQueryGeneratorBase {
                        }
                        if ( $revision->userCan( Revision::DELETED_USER, $user ) ) {
                                if ( $this->fld_user ) {
-                                       $vals['user'] = $revision->getRawUserText();
+                                       $vals['user'] = $revision->getUserText( Revision::RAW );
                                }
-                               $userid = $revision->getRawUser();
+                               $userid = $revision->getUser( Revision::RAW );
                                if ( !$userid ) {
                                        $vals['anon'] = '';
                                }
@@ -228,7 +228,7 @@ abstract class ApiQueryRevisionsBase extends ApiQueryGeneratorBase {
                                $anyHidden = true;
                        }
                        if ( $revision->userCan( Revision::DELETED_COMMENT, $user ) ) {
-                               $comment = $revision->getRawComment();
+                               $comment = $revision->getComment( Revision::RAW );
 
                                if ( $this->fld_comment ) {
                                        $vals['comment'] = $comment;
index fed5a33..aa38564 100644 (file)
@@ -167,9 +167,9 @@ class ApiQueryUserInfo extends ApiQueryBase {
                if ( isset( $this->prop['unreadcount'] ) ) {
                        $dbr = $this->getQuery()->getNamedDB( 'watchlist', DB_SLAVE, 'watchlist' );
 
-                       $sql = $dbr->selectSQLText(
+                       $count = $dbr->selectRowCount(
                                'watchlist',
-                               array( 'dummy' => 1 ),
+                               '1',
                                array(
                                        'wl_user' => $user->getId(),
                                        'wl_notificationtimestamp IS NOT NULL',
@@ -177,7 +177,6 @@ class ApiQueryUserInfo extends ApiQueryBase {
                                __METHOD__,
                                array( 'LIMIT' => self::WL_UNREAD_LIMIT )
                        );
-                       $count = $dbr->selectField( array( 'c' => "($sql)" ), 'COUNT(*)' );
 
                        if ( $count >= self::WL_UNREAD_LIMIT ) {
                                $vals['unreadcount'] = self::WL_UNREAD_LIMIT . '+';
index ce0943c..aa456f0 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Meno25",
                        "أحمد المحمودي",
-                       "Khaled"
+                       "Khaled",
+                       "Fatz"
                ]
        },
        "apihelp-main-param-format": "صيغة الخرج.",
@@ -20,6 +21,8 @@
        "apihelp-delete-description": "حذف صفحة.",
        "apihelp-delete-param-unwatch": "أزل الصفحة من قائمة مراقبتك.",
        "apihelp-edit-description": "إنشاء وتعديل الصفحات.",
+       "apihelp-edit-param-watch": "أضف الصفحة إلى لائحة مراقبة المستعمل الحالي",
        "apihelp-emailuser-description": "مراسلة المستخدم",
+       "apihelp-patrol-example-rcid": "ابحث عن تغيير جديد",
        "apihelp-query+prefixsearch-param-offset": "عدد النتائج المراد تخطيها."
 }
diff --git a/includes/api/i18n/av.json b/includes/api/i18n/av.json
new file mode 100644 (file)
index 0000000..df85c0b
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Аль-Гимравий"
+               ]
+       },
+       "apihelp-block-param-user": "Нужее блокалда лъезе бокьун вугев гІахьалчиясул цІар, IP-адрес яги IP-адресазул диапазон"
+}
index 93f4b23..a17b51d 100644 (file)
@@ -4,12 +4,12 @@
                        "Red Winged Duck"
                ]
        },
-       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page Дакумэнтацыя]\n* [https://www.mediawiki.org/wiki/API:FAQ Частыя пытаньні]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Сьпіс рассылкі]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-аб’явы]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Памылкі і запыты]\n</div>\n<strong>Статус:</strong> усе магчымасьці на гэтай старонцы павінны працаваць, але API знаходзіцца ў актыўнай распрацоўцы і можа зьмяняцца ў любы момант. Падпісвайцеся на [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ рассылку mediawiki-api-announce] дзеля паведамленьняў пра абнаўленьні.\n\n<strong>Памылковыя запыты:</strong> калі да API дасылаюцца памылковыя запыты, HTTP-загаловак будзе дасланы з ключом «MediaWiki-API-Error», а потым і значэньне загалоўка і код памылкі будуць выстаўленыя на аднолькавае значэньне. Дзеля дадатковай інфармацыі глядзіце https://www.mediawiki.org/wiki/API:Errors_and_warnings.",
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Дакумэнтацыя]]\n* [[mw:API:FAQ|Частыя пытаньні]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Сьпіс рассылкі]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-аб’явы]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Памылкі і запыты]\n</div>\n<strong>Статус:</strong> усе магчымасьці на гэтай старонцы павінны працаваць, але API знаходзіцца ў актыўнай распрацоўцы і можа зьмяняцца ў любы момант. Падпісвайцеся на [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ рассылку mediawiki-api-announce] дзеля паведамленьняў пра абнаўленьні.\n\n<strong>Памылковыя запыты:</strong> калі да API дасылаюцца памылковыя запыты, HTTP-загаловак будзе дасланы з ключом «MediaWiki-API-Error», а потым значэньне загалоўку і код памылкі будуць выстаўленыя на аднолькавае значэньне. Дзеля дадатковай інфармацыі глядзіце [[mw:API:Errors_and_warnings|API: Памылкі і папярэджаньні]].",
        "apihelp-main-param-action": "Дзеяньне для выкананьня.",
        "apihelp-main-param-format": "Фармат вываду.",
-       "apihelp-main-param-maxlag": "Максымальная затрымка можа ўжывацца, калі MediaWiki ўсталяваная ў клястэр з рэплікаванай базай зьвестак. Дзеля захаваньня дзеяньняў, якія выклікаюць затрымку рэплікацыі, гэты парамэтар можа прымусіць кліента чакаць, пакуль затрымка рэплікацыі меншая за яго значэньне. У выпадку доўгай затрымкі, вяртаецца код памылкі «maxlag» з паведамленьнем кшталту «Чаканьне $host: $lag сэкундаў затрымкі».<br />Глядзіце https://www.mediawiki.org/wiki/Manual:Maxlag_parameter дзеля дадатковай інфармацыі.",
-       "apihelp-main-param-smaxage": "Выстаўце загаловак s-maxage на зададзеную колькасьць сэкундаў. Памылкі ніколі не кэшуюцца.",
-       "apihelp-main-param-maxage": "Выстаўляе загаловак max-age на зададзеную колькасьць сэкундаў. Памылкі ніколі не кэшуюцца.",
+       "apihelp-main-param-maxlag": "Максымальная затрымка можа ўжывацца, калі MediaWiki ўсталяваная ў клястэр з рэплікаванай базай зьвестак. Дзеля захаваньня дзеяньняў, якія выклікаюць затрымку рэплікацыі, гэты парамэтар можа прымусіць кліента чакаць, пакуль затрымка рэплікацыі меншая за яго значэньне. У выпадку доўгай затрымкі, вяртаецца код памылкі <samp>maxlag</samp> з паведамленьнем кшталту <samp>Чаканьне $host: $lag сэкундаў затрымкі</samp>.<br />Глядзіце [[mw:Manual:Maxlag_parameter|Інструкцыя:Парамэтар maxlag]] дзеля дадатковай інфармацыі.",
+       "apihelp-main-param-smaxage": "Выстаўце загаловак <code>s-maxage</code> на зададзеную колькасьць сэкундаў. Памылкі ніколі не кэшуюцца.",
+       "apihelp-main-param-maxage": "Выстаўляе загаловак <code>max-age</code> на зададзеную колькасьць сэкундаў. Памылкі ніколі не кэшуюцца.",
        "apihelp-main-param-assert": "Упэўніцеся, што ўдзельнік увайшоў у сыстэму, калі зададзена «user», або мае правы робата, калі зададзена «bot».",
        "apihelp-main-param-requestid": "Любое значэньне, пададзенае тут, будзе ўключанае ў адказ. Можа быць выкарыстанае для адрозьненьня запытаў.",
        "apihelp-main-param-servedby": "Уключае ў вынік назву сэрвэра, які апрацаваў запыт.",
        "apihelp-block-param-autoblock": "Аўтаматычна блякаваць апошні ўжыты IP-адрас, а таксама ўсе наступныя IP-адрасы, зь якіх будуць спробы ўваходу.",
        "apihelp-block-param-noemail": "Забараняе ўдзельніку дасылаць лісты электроннай пошты празь вікі (трэба мець права «blockemail»).",
        "apihelp-block-param-hidename": "Схаваць імя ўдзельніка з журналу блякаваньняў (патрабуе права «hideuser»).",
-       "apihelp-block-param-allowusertalk": "Дазволіць удзельніку рэдагаваць уласную старонку гутарак (залежыць ад $wgBlockAllowsUTEdit).",
+       "apihelp-block-param-allowusertalk": "Дазволіць удзельніку рэдагаваць уласную старонку гутарак (залежыць ад <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Калі ўдзельнік ужо заблякаваны, перапісаць дзейнае блякаваньне.",
        "apihelp-block-param-watchuser": "Назіраць за старонкай удзельніка або старонкай IP-адрасу, а таксама старонкай гутарак.",
        "apihelp-block-example-ip-simple": "Заблякаваць IP-адрас 192.0.2.5 на тры дні з прычынай «First strike»",
        "apihelp-block-example-user-complex": "Заблякаваць удзельніка Vandal назаўсёды з прычынай «Vandalism», а таксама забараніць стварэньне новых рахункаў і адсылку лістоў электроннай поштай",
-       "apihelp-clearhasmsg-description": "Ачышчае сьцяг hasmsg для актуальнага карыстальніка.",
-       "apihelp-clearhasmsg-example-1": "Ачыстка сьцягу hasmsg для актуальнага карыстальніка",
+       "apihelp-clearhasmsg-description": "Ачышчае сьцяг <code>hasmsg</code> для актуальнага карыстальніка.",
+       "apihelp-clearhasmsg-example-1": "Ачыстка сьцягу <code>hasmsg</code> для актуальнага карыстальніка",
        "apihelp-compare-description": "Атрымаць розьніцу паміж 2 старонкамі.\n\nВы мусіце перадаць нумар вэрсіі, назву або ID старонкі для абодвух «from» і «to».",
        "apihelp-compare-param-fromtitle": "Першая назва для параўнаньня.",
        "apihelp-compare-param-fromid": "ID першай старонкі для параўнаньня.",
        "apihelp-compare-example-1": "Паказвае розьніцу паміж вэрсіямі 1 і 2",
        "apihelp-createaccount-description": "Стварэньне новага рахунку ўдзельніка.",
        "apihelp-createaccount-param-name": "Імя ўдзельніка.",
-       "apihelp-createaccount-param-password": "Пароль (ігнаруецца, калі выстаўлена $1mailpassword).",
+       "apihelp-createaccount-param-password": "Пароль (ігнаруецца, калі выстаўлена <var>$1mailpassword</var>).",
        "apihelp-createaccount-param-domain": "Дамэн для вонкавай аўтэнтыфікацыі (неабавязкова).",
        "apihelp-createaccount-param-token": "Маркер стварэньня рахунку, атрыманы пры першым запыце.",
        "apihelp-createaccount-param-email": "Адрас электроннай пошты ўдзельніка (неабавязкова).",
        "apihelp-createaccount-param-realname": "Сапраўднае імя ўдзельніка (неабавязкова).",
-       "apihelp-createaccount-param-mailpassword": "Калі ўсталяванае любое значэньне, выпадковы пароль будзе дасланы карыстальніку на электронную пошту."
+       "apihelp-createaccount-param-mailpassword": "Калі ўсталяванае любое значэньне, выпадковы пароль будзе дасланы карыстальніку на электронную пошту.",
+       "apihelp-createaccount-param-reason": "Неабавязковая прычына стварэньня рахунку, якая будзе запісаная ў журнал.",
+       "apihelp-createaccount-param-language": "Моўны код, які будзе выстаўлены ўдзельніку па змоўчаньні (неабавязкова, па змоўчаньні мова зьместу).",
+       "apihelp-createaccount-example-pass": "Стварэньне ўдзельніка «testuser» з паролем «test123»",
+       "apihelp-createaccount-example-mail": "Стварэньне ўдзельніка «testmailuser» і адпраўка выпадковага паролю электроннай поштай"
 }
index a4fb770..1ef9a79 100644 (file)
@@ -8,7 +8,7 @@
        "apihelp-block-description": "Bloca un usuari.",
        "apihelp-block-param-nocreate": "Evita la creació de comptes.",
        "apihelp-createaccount-param-name": "Nom d'usuari.",
-       "apihelp-createaccount-param-password": "Contrasenya (ignorada si es defineix $1mailpassword)",
+       "apihelp-createaccount-param-password": "Contrasenya (ignorada si es defineix <var>$1mailpassword</var>)",
        "apihelp-delete-description": "Suprimeix una pàgina.",
        "apihelp-edit-description": "Crea i edita pàgines.",
        "apihelp-edit-param-text": "Contingut de la pàgina."
index 14fae0c..1853866 100644 (file)
@@ -10,8 +10,8 @@
        "apihelp-main-param-action": "Jaká akce se má provést.",
        "apihelp-main-param-format": "Formát výstupu.",
        "apihelp-main-param-maxlag": "Maximální zpoždění lze použít, když je MediaWiki nainstalováno na cluster s replikovanou databází. Abyste se vyhnuli zhoršování už tak špatného replikačního zpoždění, můžete tímto parametrem nechat klienta čekat, dokud replikační zpoždění neklesne pod uvedenou hodnotu. V případě příliš vysokého zpoždění se vrátí chybový kód „maxlag“ s hlášením typu „Waiting for $host: $lag seconds lagged“.<br />Více informací najdete v [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Maxlag_parameter příručce].",
-       "apihelp-main-param-smaxage": "Nastaví hlavičku s-maxage na uvedený počet sekund. Chyby se nekešují nikdy.",
-       "apihelp-main-param-maxage": "Nastaví hlavičku max-age na uvedený počet sekund. Chyby se nekešují nikdy.",
+       "apihelp-main-param-smaxage": "Nastaví hlavičku <code>s-maxage</code> na uvedený počet sekund. Chyby se nekešují nikdy.",
+       "apihelp-main-param-maxage": "Nastaví hlavičku <code>max-age</code> na uvedený počet sekund. Chyby se nekešují nikdy.",
        "apihelp-main-param-assert": "Ověřit, že je uživatel přihlášen, pokud je nastaveno na „user“, nebo že má uživatelské oprávnění bot, pokud je nastaveno na „bot“.",
        "apihelp-main-param-requestid": "Libovolná zde uvedená hodnota bude zahrnuta v odpovědi. Lze použít pro rozlišení požadavků.",
        "apihelp-main-param-servedby": "Zahrnout do odpovědi název hostitele, který požadavek obsloužil.",
@@ -25,7 +25,7 @@
        "apihelp-block-param-nocreate": "Nedovolit registraci nových uživatelů.",
        "apihelp-block-param-noemail": "Zakázat uživateli posílat e-maily prostřednictvím wiki. (Vyžaduje oprávnění „blockemail“.)",
        "apihelp-block-param-hidename": "Skrýt uživatelské jméno v knize zablokování. (Vyžaduje oprávnění „hideuser“.)",
-       "apihelp-block-param-allowusertalk": "Povolit uživateli editovat svou vlastní diskusní stránku (závisí na $wgBlockAllowsUTEdit).",
+       "apihelp-block-param-allowusertalk": "Povolit uživateli editovat svou vlastní diskusní stránku (závisí na <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Pokud již uživatel blokován je, přepsat současný blok.",
        "apihelp-block-param-watchuser": "Sledovat uživatelskou a diskusní stranu tohoto uživatele nebo adresy IP.",
        "apihelp-block-example-ip-simple": "Zablokovat IP 192.0.2.5 na tři dny s důvodem „First strike“",
@@ -40,7 +40,7 @@
        "apihelp-compare-example-1": "Porovnat revize 1 a 2.",
        "apihelp-createaccount-description": "Vytvořit nový uživatelský účet.",
        "apihelp-createaccount-param-name": "Uživatelské jméno.",
-       "apihelp-createaccount-param-password": "Heslo (ignorováno, pokud je nastaveno $1mailpassword).",
+       "apihelp-createaccount-param-password": "Heslo (ignorováno, pokud je nastaveno <var>$1mailpassword</var>).",
        "apihelp-createaccount-param-email": "E-mailová adresa uživatele (nepovinné).",
        "apihelp-createaccount-param-realname": "Skutečné jméno uživatele (nepovinné).",
        "apihelp-createaccount-param-mailpassword": "Pokud je nastaveno na libovolnou hodnotu, zašle se náhodně vygenerované heslo na e-mail uživatele.",
index 5e2aad9..195b6d0 100644 (file)
@@ -13,8 +13,8 @@
        "apihelp-main-param-action": "Auszuführende Aktion.",
        "apihelp-main-param-format": "Format der Ausgabe.",
        "apihelp-main-param-maxlag": "maxlag kann verwendet werden, wenn MediaWiki auf einem datenbankreplizierten Cluster installiert ist. Um weitere Replikationsrückstände zu verhindern, lässt dieser Parameter den Client warten, bis der Replikationsrückstand kleiner als der angegebene Wert (in Sekunden) ist. Bei einem größerem Rückstand wird der Fehlercode „maxlag“ zurückgegeben mit einer Nachricht wie „Waiting for $host: $lag seconds lagged“.<br />Siehe https://www.mediawiki.org/wiki/Manual:Maxlag_parameter für weitere Informationen.",
-       "apihelp-main-param-smaxage": "Den s-maxage-Header auf diese Anzahl Sekunden festlegen. Fehler werden niemals gecacht.",
-       "apihelp-main-param-maxage": "Den max-age-Header auf diese Anzahl Sekunden festlegen. Fehler werden niemals gecacht.",
+       "apihelp-main-param-smaxage": "Den <code>s-maxage</code>-Header auf diese Anzahl Sekunden festlegen. Fehler werden niemals gecacht.",
+       "apihelp-main-param-maxage": "Den <code>max-age</code>-Header auf diese Anzahl Sekunden festlegen. Fehler werden niemals gecacht.",
        "apihelp-main-param-assert": "Sicherstellen, dass der Benutzer eingeloggt ist, wenn auf „user“ gesetzt, oder Bot ist, wenn auf „bot“ gesetzt.",
        "apihelp-main-param-requestid": "Der angegebene Wert wird mit in die Antwort aufgenommen und kann zur Unterscheidung von Anfragen verwendet werden.",
        "apihelp-main-param-servedby": "Namen des bearbeitenden Hosts mit zurückgeben.",
        "apihelp-block-param-autoblock": "Die zuletzt verwendete IP-Adresse automatisch sperren und alle darauffolgenden IP-Adressen, die versuchen sich anzumelden.",
        "apihelp-block-param-noemail": "Benutzer davon abhalten, E-Mails auf dem Wiki zu versenden (erfordert das blockemail-Recht).",
        "apihelp-block-param-hidename": "Den Benutzernamen im Sperr-Logbuch verstecken (erfordert das hideuser-Recht).",
-       "apihelp-block-param-allowusertalk": "Dem Benutzer erlauben, seine eigene Diskussionsseite zu bearbeiten (abhängig von $wgBlockAllowsUTEdit).",
+       "apihelp-block-param-allowusertalk": "Dem Benutzer erlauben, seine eigene Diskussionsseite zu bearbeiten (abhängig von <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Falls der Benutzer bereits gesperrt ist, die vorhandene Sperre überschreiben.",
        "apihelp-block-param-watchuser": "Benutzer- und Benutzerdiskussionsseite beobachten.",
        "apihelp-block-example-ip-simple": "IP 192.0.2.5 für drei Tage mit der Begründung „First strike“ (erste Verwarnung) sperren",
        "apihelp-block-example-user-complex": "Benutzer unbeschränkt sperren mit der Begründung „Vandalism“ (Vandalismus), Erstellung neuer Benutzerkonten sowie Versand von E-Mails verhindern.",
-       "apihelp-clearhasmsg-description": "Löschen des hasmsg-Flags („hat Nachrichten“-Flag) für den aktuellen Benutzer.",
-       "apihelp-clearhasmsg-example-1": "hasmsg-Flags für den aktuellen Benutzer löschen",
+       "apihelp-clearhasmsg-description": "Löschen des <code>hasmsg</code>-Flags („hat Nachrichten“-Flag) für den aktuellen Benutzer.",
+       "apihelp-clearhasmsg-example-1": "<code>hasmsg</code>-Flags für den aktuellen Benutzer löschen",
        "apihelp-compare-description": "Abrufen des Unterschieds zwischen 2 Seiten.\n\nDu musst eine Versionsnummer, einen Seitentitel oder eine Seitennummer für „from“ als auch „to“ angeben.",
        "apihelp-compare-param-fromtitle": "Erster zu vergleichender Titel.",
        "apihelp-compare-param-fromid": "Erste zu vergleichende Seitennummer.",
@@ -47,7 +47,7 @@
        "apihelp-compare-example-1": "Unterschied zwischen Version 1 und 2 abrufen",
        "apihelp-createaccount-description": "Erstellen eines neuen Benutzerkontos.",
        "apihelp-createaccount-param-name": "Benutzername.",
-       "apihelp-createaccount-param-password": "Passwort (wird ignoriert, wenn $1mailpassword angegeben ist).",
+       "apihelp-createaccount-param-password": "Passwort (wird ignoriert, wenn <var>$1mailpassword</var> angegeben ist).",
        "apihelp-createaccount-param-domain": "Domain für die externe Authentifizierung (optional).",
        "apihelp-createaccount-param-token": "Der in der ersten Anfrage erhaltene Benutzerkontenerstellungs-Token.",
        "apihelp-createaccount-param-email": "E-Mail-Adresse des Benutzers (optional).",
@@ -96,7 +96,7 @@
        "apihelp-edit-param-contentmodel": "Inhaltsmodell des neuen Inhalts.",
        "apihelp-edit-param-token": "Der Token sollte immer als letzter Parameter gesendet werden, zumindest aber nach dem $1text-Parameter.",
        "apihelp-edit-example-edit": "Eine Seite bearbeiten",
-       "apihelp-edit-example-prepend": "_&#95;NOTOC_&#95; bei einer Seite voranstellen",
+       "apihelp-edit-example-prepend": "<kbd>_&#95;NOTOC_&#95;</kbd> bei einer Seite voranstellen",
        "apihelp-edit-example-undo": "Versionen 13579 bis 13585 mit automatischer Zusammenfassung rückgängig machen",
        "apihelp-emailuser-description": "E-Mail an einen Benutzer senden.",
        "apihelp-emailuser-param-target": "Benutzer, an den die E-Mail gesendet werden soll.",
        "apihelp-filerevert-param-filename": "Ziel-Datei, ohne das Datei:-Präfix.",
        "apihelp-filerevert-param-comment": "Hochladekommentar.",
        "apihelp-filerevert-param-archivename": "Archivname der Version, auf die die Datei zurückgesetzt werden soll.",
-       "apihelp-filerevert-example-revert": "Wiki.png auf die Version vom 2011-03-05T15:27:40Z zurücksetzen",
+       "apihelp-filerevert-example-revert": "<kbd>Wiki.png</kbd> auf die Version vom <kbd>2011-03-05T15:27:40Z</kbd> zurücksetzen",
        "apihelp-help-description": "Hilfe für die angegebenen Module anzeigen.",
        "apihelp-help-param-modules": "Module, zu denen eine Hilfe angezeigt werden soll (Werte der Parameter action= und format= oder „main“). Kann Submodule mit einem „+“ angeben.",
        "apihelp-help-param-submodules": "Hilfe für Submodule des benannten Moduls einschließen.",
index e2206f9..929ec7e 100644 (file)
 {
        "@metadata": {
                "authors": [
-                       "Reedy"
+                       "Reedy",
+                       "Chase me ladies, I'm the Cavalry"
                ]
        },
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentation]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Mailing list]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API Announcements]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bugs & requests]\n</div>\n<strong>Status:</strong> All features shown on this page should be working, but the API is still in active development, and may change at any time. Subscribe to [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ the mediawiki-api-announce mailing list] for notice of updates.\n\n<strong>Erroneous requests:</strong> When erroneous requests are sent to the API, an HTTP header will be sent with the key \"MediaWiki-API-Error\" and then both the value of the header and the error code sent back will be set to the same value. For more information see [[mw:API:Errors_and_warnings|API: Errors and warnings]].",
+       "apihelp-main-param-maxage": "Set the <code>max-age</code> header to this many seconds. Errors are never cached.",
+       "apihelp-main-param-assert": "Verify the user is logged in if set to <kbd>user</kbd>, or has the bot userright if <kbd>bot</kbd>.",
+       "apihelp-block-param-user": "Username, IP address, or IP range to block.",
+       "apihelp-block-param-allowusertalk": "Allow the user to edit their own talk page (depends on <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
+       "apihelp-block-param-watchuser": "Watch the user and talk pages of the user or IP address.",
+       "apihelp-block-example-ip-simple": "Block IP address <kbd>192.0.2.5</kbd> for three days with reason <kbd>First strike</kbd>.",
+       "apihelp-clearhasmsg-description": "Clears the <code>hasmsg</code> flag for the current user.",
+       "apihelp-compare-description": "Get the difference between 2 pages.\n\nA revision number, a page title, or a page ID for both \"from\" and \"to\" must be passed.",
+       "apihelp-createaccount-param-password": "Password (ignored if <var>$1mailpassword</var> is set).",
+       "apihelp-delete-param-title": "Title of the page to delete. Cannot be used together with <var>$1pageid</var>.",
+       "apihelp-delete-param-watch": "Add the page to the current user's watchlist.",
+       "apihelp-delete-example-simple": "Delete <kbd>Main Page</kbd>.",
+       "apihelp-delete-example-reason": "Delete <kbd>Main Page</kbd> with the reason <kbd>Preparing for move</kbd>.",
+       "apihelp-edit-param-title": "Title of the page to edit. Cannot be used together with <var>$1pageid</var>.",
+       "apihelp-edit-param-watch": "Add the page to the current user's watchlist.",
+       "apihelp-edit-param-watchlist": "Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.",
        "apihelp-edit-param-contentformat": "Content serialisation format used for the input text.",
+       "apihelp-edit-example-prepend": "Prepend <kbd>_&#95;NOTOC_&#95;</kbd> to a page.",
+       "apihelp-expandtemplates-example-simple": "Expand the wikitext <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Hide changes made by the current user.",
+       "apihelp-filerevert-example-revert": "Revert <kbd>Wiki.png</kbd> to the version of <kbd>2011-03-05T15:27:40Z</kbd>.",
+       "apihelp-help-example-main": "Help for the main module.",
+       "apihelp-help-example-query": "Help for two query submodules.",
+       "apihelp-import-description": "Import a page from another wiki, or an XML file.\n\nNote that the HTTP POST must be done as a file upload (i.e. using multipart/form-data) when sending a file for the <var>xml</var> parameter.",
+       "apihelp-login-example-gettoken": "Retrieve a login token.",
+       "apihelp-logout-example-logout": "Log the current user out.",
+       "apihelp-move-param-to": "Title to rename the page to.",
+       "apihelp-move-param-reason": "Reason for the rename.",
+       "apihelp-move-example-move": "Move <kbd>Badtitle</kbd> to <kbd>Goodtitle</kbd> without leaving a redirect.",
+       "apihelp-opensearch-example-te": "Find pages beginning with <kbd>Te</kbd>.",
+       "apihelp-options-param-resetkinds": "List of types of options to reset when the <var>$1reset</var> option is set.",
+       "apihelp-options-param-optionvalue": "A value of the option specified by <var>$1optionname</var>, can contain pipe characters.",
+       "apihelp-options-example-change": "Change <kbd>skin</kbd> and <kbd>hideminor</kbd> preferences.",
+       "apihelp-options-example-complex": "Reset all preferences, then set <kbd>skin</kbd> and <kbd>nickname</kbd>.",
+       "apihelp-paraminfo-param-querymodules": "List of query module names (value of <var>prop</var>, <var>meta</var> or <var>list</var> parameter). Use <kbd>$1modules=query+foo</kbd> instead of <kbd>$1querymodules=foo</kbd>.",
+       "apihelp-parse-param-pageid": "Parse the content of this page. Overrides <var>$1page</var>.",
        "apihelp-parse-param-contentformat": "Content serialisation format used for the input text. Only valid when used with $1text.",
-       "apihelp-query+revisions+base-param-contentformat": "Serialisation format used for $1difftotext and expected for output of content.",
+       "apihelp-patrol-example-rcid": "Patrol a recent change.",
+       "apihelp-patrol-example-revid": "Patrol a revision.",
+       "apihelp-protect-param-protections": "List of protection levels, formatted <kbd>action=level</kbd> (e.g. <kbd>edit=sysop</kbd>).\n\n<strong>Note:</strong> Any actions not listed will have restrictions removed.",
+       "apihelp-protect-param-expiry": "Expiry timestamps. If only one timestamp is set, it will be used for all protections. Use <kbd>infinite</kbd>, <kbd>indefinite</kbd>, <kbd>infinity</kbd>, or <kbd>never</kbd>, for a never-expiring protection.",
+       "apihelp-protect-param-watchlist": "Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.",
+       "apihelp-protect-example-unprotect2": "Unprotect a page by setting no restrictions.",
+       "apihelp-purge-example-simple": "Purge the <kbd>Main Page</kbd> and the <kbd>API</kbd> page.",
+       "apihelp-query-example-allpages": "Fetch revisions of pages beginning with <kbd>API/</kbd>.",
+       "apihelp-query+allcategories-example-generator": "Retrieve information about the category page for categories beginning <kbd>List</kbd>.",
+       "apihelp-query+allfileusages-example-unique-generator": "Gets all file titles, marking the missing ones.",
+       "apihelp-query+alllinks-param-unique": "Only show distinct linked titles. Cannot be used with <kbd>$1prop=ids</kbd>.\nWhen used as a generator, yields target pages instead of source pages.",
+       "apihelp-query+alllinks-example-B": "List linked titles, including missing ones, with page IDs they are from, starting at <kbd>B</kbd>.",
+       "apihelp-query+alllinks-example-unique": "List unique linked titles.",
+       "apihelp-query+allmessages-example-ipb": "Show messages starting with <kbd>ipb-</kbd>.",
+       "apihelp-query+allmessages-example-de": "Show messages <kbd>august</kbd> and <kbd>mainpage</kbd> in German.",
+       "apihelp-query+allpages-example-B": "Show a list of pages starting at the letter <kbd>B</kbd>.",
+       "apihelp-query+allredirects-example-B": "List target pages, including missing ones, with page IDs they are from, starting at <kbd>B</kbd>.",
+       "apihelp-query+allredirects-example-generator": "Gets pages containing the redirects.",
+       "apihelp-query+alltransclusions-example-unique": "List unique transcluded titles.",
+       "apihelp-query+alltransclusions-example-generator": "Gets pages containing the transclusions.",
+       "apihelp-query+backlinks-param-pageid": "Page ID to search. Cannot be used together with <var>$1title</var>.",
+       "apihelp-query+backlinks-param-limit": "How many total pages to return. If <var>$1redirect</var> is enabled, limit applies to each level separately (which means up to 2 * <var>$1limit</var> results may be returned).",
+       "apihelp-query+backlinks-example-generator": "Get information about pages linking to <kbd>Main page<kbd>.",
+       "apihelp-query+blocks-param-ip": "Get all blocks applying to this IP or CIDR range, including range blocks.\nThis cannot be used together with <var>$3users</var>. CIDR ranges broader than IPv4/$1 or IPv6/$2 will not be not accepted.",
+       "apihelp-query+blocks-example-simple": "List blocks.",
+       "apihelp-query+blocks-example-users": "List blocks of users <kbd>Alice</kbd> and <kbd>Bob</kbd>.",
+       "apihelp-query+categoryinfo-example-simple": "Get information about <kbd>Category:Foo</kbd> and <kbd>Category:Bar</kbd>.",
+       "apihelp-query+categorymembers-param-pageid": "Page ID of the category to enumerate. Cannot be used together with <var>$1title</var>.",
+       "apihelp-query+categorymembers-param-endhexsortkey": "Sortkey to end listing from, as returned by <kbd>$1prop=sortkey</kbd>. Can only be used with <kbd>$1sort=sortkey</kbd>.",
+       "apihelp-query+deletedrevs-example-mode2": "List the last 50 deleted contributions by <kbd>Bob</kbd> (mode 2).",
+       "apihelp-query+deletedrevs-example-mode3-main": "List the first 50 deleted revisions in the main namespace (mode 3).",
+       "apihelp-query+deletedrevs-example-mode3-talk": "List the first 50 deleted pages in the {{ns:talk}} namespace (mode 3).",
+       "apihelp-query+duplicatefiles-example-simple": "Look for duplicates of [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+duplicatefiles-example-generated": "Look for duplicates of all files.",
+       "apihelp-query+extlinks-example-simple": "Get a list of external links on <kbd>Main Page<kbd>.",
+       "apihelp-query+exturlusage-param-protocol": "Protocol of the URL. If empty and <var>$1query</var> set, the protocol is <kbd>http</kbd>. Leave both this and <var>$1query</var> empty to list all external links.",
+       "apihelp-query+filerepoinfo-example-simple": "Get information about file repositories.",
+       "apihelp-query+imageinfo-param-metadataversion": "Version of metadata to use. If <kbd>latest</kbd> is specified, use latest version. Defaults to <kbd>1</kbd> for backwards compatibility.",
+       "apihelp-query+imageinfo-example-simple": "Fetch information about the current version of [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+images-example-simple": "Get a list of files used in the [[Main Page]].",
+       "apihelp-query+imageusage-example-simple": "Show pages using [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+imageusage-example-generator": "Get information about pages using [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+info-example-protection": "Get general and protection information about the page <kbd>Main Page</kbd>.",
+       "apihelp-query+iwbacklinks-example-simple": "Get pages linking to [[wikibooks:Test]].",
+       "apihelp-query+iwlinks-param-title": "Interwiki link to search for. Must be used with <var>$1prefix</var>.",
+       "apihelp-query+langbacklinks-example-simple": "Get pages linking to [[:fr:Test]].",
+       "apihelp-query+langbacklinks-example-generator": "Get information about pages linking to [[:fr:Test]].",
+       "apihelp-query+langlinks-param-title": "Link to search for. Must be used with <var>$1lang</var>.",
+       "apihelp-query+links-example-simple": "Get links from the page <kbd>Main Page</kbd>",
+       "apihelp-query+links-example-namespaces": "Get links from the page <kbd>Main Page</kbd> in the {{ns:user}} and {{ns:template}} namespaces.",
+       "apihelp-query+linkshere-example-simple": "Get a list of pages linking to the [[Main Page]].",
+       "apihelp-query+linkshere-example-generator": "Get information about pages linking to the [[Main Page]].",
+       "apihelp-query+logevents-example-simple": "List recent log events.",
+       "apihelp-query+pagepropnames-description": "List all page property names in use on the wiki.",
+       "apihelp-query+pageswithprop-description": "List all pages using a given page property.",
+       "apihelp-query+pageswithprop-example-generator": "Get page information about the first 10 pages using <code>_&#95;NOTOC_&#95;</code>.",
+       "apihelp-query+protectedtitles-example-generator": "Find links to protected titles in the main namespace.",
+       "apihelp-query+random-example-simple": "Return two random pages from the main namespace.",
+       "apihelp-query+random-example-generator": "Return page info about two random pages from the main namespace.",
+       "apihelp-query+recentchanges-example-simple": "List recent changes.",
+       "apihelp-query+redirects-example-generator": "Get information about all redirects to the [[Main Page]].",
+       "apihelp-query+revisions-example-first5-not-localhost": "Get first 5 revisions of the <kbd>Main Page</kbd> that were not made by anonymous user <kbd>127.0.0.1</kbd>.",
+       "apihelp-query+revisions+base-param-difftotext": "Text to diff each revision to. Only diffs a limited number of revisions. Overrides <var>$1diffto</var>. If <var>$1section</var> is set, only that section will be diffed against this text",
+       "apihelp-query+revisions+base-param-contentformat": "Serialisation format used for <var>$1difftotext</var> and expected for output of content.",
+       "apihelp-query+search-example-text": "Search texts for <kbd>meaning</kbd>.",
+       "apihelp-query+search-example-generator": "Get page information about the pages returned for a search for <kbd>meaning</kbd>.",
+       "apihelp-query+siteinfo-example-simple": "Fetch site information.",
+       "apihelp-query+siteinfo-example-replag": "Check the current replication lag.",
+       "apihelp-query+stashimageinfo-example-simple": "Returns information for a stashed file.",
+       "apihelp-query+tags-example-simple": "List available tags.",
+       "apihelp-query+templates-example-simple": "Get the templates used on the page <kbd>Main Page</kbd>.",
+       "apihelp-query+templates-example-generator": "Get information about the template pages used on <kbd>Main Page</kbd>.",
+       "apihelp-query+tokens-example-simple": "Retrieve a csrf token (the default).",
+       "apihelp-query+tokens-example-types": "Retrieve a watch token and a patrol token.",
+       "apihelp-query+transcludedin-example-simple": "Get a list of pages transcluding <kbd>Main Page</kbd>.",
+       "apihelp-query+transcludedin-example-generator": "Get information about pages transcluding <kbd>Main Page</kbd>.",
+       "apihelp-query+usercontribs-example-user": "Show contributions of user <kbd>Example</kbd>.",
+       "apihelp-query+userinfo-example-simple": "Get information about the current user.",
+       "apihelp-query+watchlist-example-simple": "List the top revision for recently changed pages on the watchlist of the current user.",
+       "apihelp-query+watchlist-example-generator": "Fetch page info for recently changed pages on the current user's watchlist.",
+       "apihelp-query+watchlistraw-description": "Get all pages on the current user's watchlist.",
+       "apihelp-query+watchlistraw-example-simple": "List pages on the watchlist of the current user.",
+       "apihelp-query+watchlistraw-example-generator": "Fetch page info for pages on the current user's watchlist.",
+       "apihelp-revisiondelete-example-revision": "Hide content for revision <kbd>12345</kbd> on the page <kbd>Main Page</kbd>.",
+       "apihelp-rollback-param-watchlist": "Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.",
+       "apihelp-rollback-example-simple": "Roll back the last edits to page <kbd>Main Page</kbd> by user <kbd>Example</kbd>.",
+       "apihelp-setnotificationtimestamp-example-allpages": "Reset the notification status for pages in the <kbd>{{ns:user}}</kbd> namespace.",
+       "apihelp-unblock-param-id": "ID of the block to unblock (obtained through <kbd>list=blocks</kbd>). Cannot be used together with <var>$1user</var>.",
+       "apihelp-undelete-param-timestamps": "Timestamps of the revisions to restore. If both <var>$1timestamps</var> and <var>$1fileids</var> are empty, all will be restored.",
+       "apihelp-undelete-param-watchlist": "Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.",
+       "apihelp-undelete-example-page": "Undelete page <kbd>Main Page</kbd>.",
+       "apihelp-undelete-example-revisions": "Undelete two revisions of page <kbd>Main Page</kbd>.",
+       "apihelp-upload-param-comment": "Upload comment. Also used as the initial page text for new files if <var>$1text</var> is not specified.",
+       "apihelp-upload-example-url": "Upload from a URL.",
+       "apihelp-upload-example-filekey": "Complete an upload that failed due to warnings.",
+       "apihelp-userrights-example-userid": "Add the user with ID <kbd>123</kbd> to group <kbd>bot</kbd>, and remove from groups <kbd>sysop</kbd> and <kbd>bureaucrat</kbd>.",
+       "apihelp-watch-param-title": "The page to (un)watch. Use <var>$1titles</var> instead.",
+       "apihelp-watch-example-unwatch": "Unwatch the page <kbd>Main Page</kbd>.",
+       "apihelp-dbg-description": "Output data in PHP's <code>var_export()</code> format.",
+       "apihelp-dbgfm-description": "Output data in PHP's <code>var_export()</code> format (pretty-print in HTML).",
+       "apihelp-dump-description": "Output data in PHP's <code>var_dump()</code> format.",
        "apihelp-php-description": "Output data in serialised PHP format.",
-       "apihelp-phpfm-description": "Output data in serialised PHP format (pretty-print in HTML)."
+       "apihelp-phpfm-description": "Output data in serialised PHP format (pretty-print in HTML).",
+       "apihelp-txt-description": "Output data in PHP's <code>print_r()</code> format.",
+       "apihelp-txtfm-description": "Output data in PHP's <code>print_r()</code> format (pretty-print in HTML).",
+       "api-pageset-param-redirects-generator": "Automatically resolve redirects in <var>$1titles</var>, <var>$1pageids</var>, and <var>$1revids</var>, and in pages returned by <var>$1generator</var>.",
+       "api-pageset-param-redirects-nogenerator": "Automatically resolve redirects in <var>$1titles</var>, <var>$1pageids</var>, and <var>$1revids</var>.",
+       "api-help-param-multi-separate": "Separate values with <kbd>|</kbd>.",
+       "api-help-param-disabled-in-miser-mode": "Disabled due to [[mw:Manual:$wgMiserMode|miser mode]].",
+       "api-help-param-limited-in-miser-mode": "<strong>Note:</strong> Due to [[mw:Manual:$wgMiserMode|miser mode]], using this may result in fewer than <var>$1limit</var> results returned before continuing; in extreme cases, zero results may be returned."
 }
index cba687b..c19aeb2 100644 (file)
@@ -1,53 +1,54 @@
 {
        "@metadata": {
                "authors": [
-                       "Anomie"
+                       "Anomie",
+                       "Siebrand"
                ]
        },
 
-       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page Documentation]\n* [https://www.mediawiki.org/wiki/API:FAQ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Mailing list]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API Announcements]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bugs & requests]\n</div>\n<strong>Status:</strong> All features shown on this page should be working, but the API is still in active development, and may change at any time. Subscribe to [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ the mediawiki-api-announce mailing list] for notice of updates.\n\n<strong>Erroneous requests:</strong> When erroneous requests are sent to the API, a HTTP header will be sent with the key \"MediaWiki-API-Error\" and then both the value of the header and the error code sent back will be set to the same value. For more information see https://www.mediawiki.org/wiki/API:Errors_and_warnings.",
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentation]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Mailing list]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API Announcements]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bugs & requests]\n</div>\n<strong>Status:</strong> All features shown on this page should be working, but the API is still in active development, and may change at any time. Subscribe to [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ the mediawiki-api-announce mailing list] for notice of updates.\n\n<strong>Erroneous requests:</strong> When erroneous requests are sent to the API, an HTTP header will be sent with the key \"MediaWiki-API-Error\" and then both the value of the header and the error code sent back will be set to the same value. For more information see [[mw:API:Errors_and_warnings|API: Errors and warnings]].",
        "apihelp-main-param-action": "Which action to perform.",
        "apihelp-main-param-format": "The format of the output.",
-       "apihelp-main-param-maxlag": "Maximum lag can be used when MediaWiki is installed on a database replicated cluster. To save actions causing any more site replication lag, this parameter can make the client wait until the replication lag is less than the specified value. In case of excessive lag, error code \"maxlag\" is returned with a message like \"Waiting for $host: $lag seconds lagged\".<br />See https://www.mediawiki.org/wiki/Manual:Maxlag_parameter for more information.",
-       "apihelp-main-param-smaxage": "Set the s-maxage header to this many seconds. Errors are never cached.",
-       "apihelp-main-param-maxage": "Set the max-age header to this many seconds. Errors are never cached.",
-       "apihelp-main-param-assert": "Verify the user is logged in if set to \"user\", or has the bot userright if \"bot\".",
+       "apihelp-main-param-maxlag": "Maximum lag can be used when MediaWiki is installed on a database replicated cluster. To save actions causing any more site replication lag, this parameter can make the client wait until the replication lag is less than the specified value. In case of excessive lag, error code <samp>maxlag</samp> is returned with a message like <samp>Waiting for $host: $lag seconds lagged</samp>.<br />See [[mw:Manual:Maxlag_parameter|Manual: Maxlag parameter]] for more information.",
+       "apihelp-main-param-smaxage": "Set the <code>s-maxage</code> header to this many seconds. Errors are never cached.",
+       "apihelp-main-param-maxage": "Set the <code>max-age</code> header to this many seconds. Errors are never cached.",
+       "apihelp-main-param-assert": "Verify the user is logged in if set to <kbd>user</kbd>, or has the bot userright if <kbd>bot</kbd>.",
        "apihelp-main-param-requestid": "Any value given here will be included in the response. May be used to distinguish requests.",
        "apihelp-main-param-servedby": "Include the hostname that served the request in the results.",
        "apihelp-main-param-curtimestamp": "Include the current timestamp in the result.",
-       "apihelp-main-param-origin": "When accessing the API using a cross-domain AJAX request (CORS), set this to the originating domain. This must be included in any pre-flight request, and therefore must be part of the request URI (not the POST body). This must match one of the origins in the Origin: header exactly, so it has to be set to something like http://en.wikipedia.org or https://meta.wikimedia.org. If this parameter does not match the Origin: header, a 403 response will be returned. If this parameter matches the Origin: header and the origin is whitelisted, an Access-Control-Allow-Origin header will be set.",
-       "apihelp-main-param-uselang": "Language to use for message translations. A list of codes may be fetched from [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] with siprop=languages, or specify \"user\" to use the current user's language preference, or specify \"content\" to use this wiki's content language.",
+       "apihelp-main-param-origin": "When accessing the API using a cross-domain AJAX request (CORS), set this to the originating domain. This must be included in any pre-flight request, and therefore must be part of the request URI (not the POST body). This must match one of the origins in the <code>Origin</code> header exactly, so it has to be set to something like <kbd>https://en.wikipedia.org</kbd> or <kbd>https://meta.wikimedia.org</kbd>. If this parameter does not match the <code>Origin</code> header, a 403 response will be returned. If this parameter matches the <code>Origin</code> header and the origin is whitelisted, an <code>Access-Control-Allow-Origin</code> header will be set.",
+       "apihelp-main-param-uselang": "Language to use for message translations. A list of codes may be fetched from <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> with <kbd>siprop=languages</kbd>, or specify <kbd>user</kbd> to use the current user's language preference, or specify <kbd>content</kbd> to use this wiki's content language.",
 
        "apihelp-block-description": "Block a user.",
-       "apihelp-block-param-user": "Username, IP address or IP range you want to block.",
-       "apihelp-block-param-expiry": "Expiry time. May be relative (e.g. \"5 months\" or \"2 weeks\") or absolute (e.g. \"2014-09-18T12:34:56Z\"). If set to \"infinite\", \"indefinite\" or \"never\", the block will never expire.",
+       "apihelp-block-param-user": "Username, IP address, or IP range to block.",
+       "apihelp-block-param-expiry": "Expiry time. May be relative (e.g. <kbd>5 months</kbd> or <kbd>2 weeks</kbd>) or absolute (e.g. <kbd>2014-09-18T12:34:56Z</kbd>). If set to <kbd>infinite</kbd>, <kbd>indefinite</kbd>, or <kbd>never</kbd>, the block will never expire.",
        "apihelp-block-param-reason": "Reason for block.",
-       "apihelp-block-param-anononly": "Block anonymous users only (i.e. disable anonymous edits for this IP).",
+       "apihelp-block-param-anononly": "Block anonymous users only (i.e. disable anonymous edits for this IP address).",
        "apihelp-block-param-nocreate": "Prevent account creation.",
        "apihelp-block-param-autoblock": "Automatically block the last used IP address, and any subsequent IP addresses they try to login from.",
-       "apihelp-block-param-noemail": "Prevent user from sending email through the wiki. (Requires the \"blockemail\" right).",
-       "apihelp-block-param-hidename": "Hide the username from the block log. (Requires the \"hideuser\" right).",
-       "apihelp-block-param-allowusertalk": "Allow the user to edit their own talk page (depends on $wgBlockAllowsUTEdit).",
+       "apihelp-block-param-noemail": "Prevent user from sending email through the wiki. (Requires the <code>blockemail</code> right).",
+       "apihelp-block-param-hidename": "Hide the username from the block log. (Requires the <code>hideuser</code> right).",
+       "apihelp-block-param-allowusertalk": "Allow the user to edit their own talk page (depends on <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "If the user is already blocked, overwrite the existing block.",
-       "apihelp-block-param-watchuser": "Watch the user's or IP's user and talk pages.",
-       "apihelp-block-example-ip-simple": "Block IP 192.0.2.5 for three days with reason \"First strike\"",
-       "apihelp-block-example-user-complex": "Block user Vandal indefinitely with reason \"Vandalism\", and prevent new account creation and email",
+       "apihelp-block-param-watchuser": "Watch the user's or IP address's user and talk pages.",
+       "apihelp-block-example-ip-simple": "Block IP address <kbd>192.0.2.5</kbd> for three days with reason <kbd>First strike</kbd>.",
+       "apihelp-block-example-user-complex": "Block user <kbd>Vandal</kbd> indefinitely with reason <kbd>Vandalism</kbd>, and prevent new account creation and email sending.",
 
-       "apihelp-clearhasmsg-description": "Clears the hasmsg flag for current user.",
-       "apihelp-clearhasmsg-example-1": "Clear the hasmsg flag for current user",
+       "apihelp-clearhasmsg-description": "Clears the <code>hasmsg</code> flag for the current user.",
+       "apihelp-clearhasmsg-example-1": "Clear the <code>hasmsg</code> flag for the current user.",
 
-       "apihelp-compare-description": "Get the difference between 2 pages.\n\nYou must pass a revision number, a page title, or a page ID for both \"from\" and \"to\".",
+       "apihelp-compare-description": "Get the difference between 2 pages.\n\nA revision number, a page title, or a page ID for both \"from\" and \"to\" must be passed.",
        "apihelp-compare-param-fromtitle": "First title to compare.",
        "apihelp-compare-param-fromid": "First page ID to compare.",
        "apihelp-compare-param-fromrev": "First revision to compare.",
        "apihelp-compare-param-totitle": "Second title to compare.",
        "apihelp-compare-param-toid": "Second page ID to compare.",
        "apihelp-compare-param-torev": "Second revision to compare.",
-       "apihelp-compare-example-1": "Create a diff between revision 1 and 2",
+       "apihelp-compare-example-1": "Create a diff between revision 1 and 2.",
 
        "apihelp-createaccount-description": "Create a new user account.",
        "apihelp-createaccount-param-name": "Username.",
-       "apihelp-createaccount-param-password": "Password (ignored if $1mailpassword is set).",
+       "apihelp-createaccount-param-password": "Password (ignored if <var>$1mailpassword</var> is set).",
        "apihelp-createaccount-param-domain": "Domain for external authentication (optional).",
        "apihelp-createaccount-param-token": "Account creation token obtained in first request.",
        "apihelp-createaccount-param-email": "Email address of user (optional).",
        "apihelp-createaccount-param-mailpassword": "If set to any value, a random password will be emailed to the user.",
        "apihelp-createaccount-param-reason": "Optional reason for creating the account to be put in the logs.",
        "apihelp-createaccount-param-language": "Language code to set as default for the user (optional, defaults to content language).",
-       "apihelp-createaccount-example-pass": "Create user \"testuser\" with password \"test123\"",
-       "apihelp-createaccount-example-mail": "Create user \"testmailuser\" and email a randomly-generated password",
+       "apihelp-createaccount-example-pass": "Create user <kbd>testuser</kbd> with password <kbd>test123</kbd>.",
+       "apihelp-createaccount-example-mail": "Create user <kbd>testmailuser</kbd> and email a randomly-generated password.",
 
        "apihelp-delete-description": "Delete a page.",
-       "apihelp-delete-param-title": "Title of the page you want to delete. Cannot be used together with $1pageid.",
-       "apihelp-delete-param-pageid": "Page ID of the page you want to delete. Cannot be used together with $1title.",
+       "apihelp-delete-param-title": "Title of the page to delete. Cannot be used together with <var>$1pageid</var>.",
+       "apihelp-delete-param-pageid": "Page ID of the page to delete. Cannot be used together with <var>$1title</var>.",
        "apihelp-delete-param-reason": "Reason for the deletion. If not set, an automatically generated reason will be used.",
-       "apihelp-delete-param-watch": "Add the page to your watchlist.",
-       "apihelp-delete-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
-       "apihelp-delete-param-unwatch": "Remove the page from your watchlist.",
+       "apihelp-delete-param-watch": "Add the page to the current user's watchlist.",
+       "apihelp-delete-param-watchlist": "Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.",
+       "apihelp-delete-param-unwatch": "Remove the page from the current user's watchlist.",
        "apihelp-delete-param-oldimage": "The name of the old image to delete as provided by [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]].",
-       "apihelp-delete-example-simple": "Delete the Main Page",
-       "apihelp-delete-example-reason": "Delete the Main Page with the reason \"Preparing for move\"",
+       "apihelp-delete-example-simple": "Delete <kbd>Main Page</kbd>.",
+       "apihelp-delete-example-reason": "Delete <kbd>Main Page</kbd> with the reason <kbd>Preparing for move</kbd>.",
 
        "apihelp-disabled-description": "This module has been disabled.",
 
        "apihelp-edit-description": "Create and edit pages.",
-       "apihelp-edit-param-title": "Title of the page you want to edit. Cannot be used together with $1pageid.",
-       "apihelp-edit-param-pageid": "Page ID of the page you want to edit. Cannot be used together with $1title.",
-       "apihelp-edit-param-section": "Section number. 0 for the top section, \"new\" for a new section.",
+       "apihelp-edit-param-title": "Title of the page to edit. Cannot be used together with <var>$1pageid</var>.",
+       "apihelp-edit-param-pageid": "Page ID of the page to edit. Cannot be used together with <var>$1title</var>.",
+       "apihelp-edit-param-section": "Section number. <kbd>0</kbd> for the top section, <kbd>new</kbd> for a new section.",
        "apihelp-edit-param-sectiontitle": "The title for a new section.",
        "apihelp-edit-param-text": "Page content.",
        "apihelp-edit-param-summary": "Edit summary. Also section title when $1section=new and $1sectiontitle is not set.",
        "apihelp-edit-param-notminor": "Non-minor edit.",
        "apihelp-edit-param-bot": "Mark this edit as bot.",
        "apihelp-edit-param-basetimestamp": "Timestamp of the base revision, used to detect edit conflicts. May be obtained through [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
-       "apihelp-edit-param-starttimestamp": "Timestamp when you began the editing process, used to detect edit conflicts. An appropriate value may be obtained using [[Special:ApiHelp/main|curtimestamp]] when beginning the edit process (e.g. when loading the page content to edit).",
+       "apihelp-edit-param-starttimestamp": "Timestamp when the editing process began, used to detect edit conflicts. An appropriate value may be obtained using <var>[[Special:ApiHelp/main|curtimestamp]]</var> when beginning the edit process (e.g. when loading the page content to edit).",
        "apihelp-edit-param-recreate": "Override any errors about the page having been deleted in the meantime.",
        "apihelp-edit-param-createonly": "Don't edit the page if it exists already.",
        "apihelp-edit-param-nocreate": "Throw an error if the page doesn't exist.",
-       "apihelp-edit-param-watch": "Add the page to your watchlist.",
-       "apihelp-edit-param-unwatch": "Remove the page from your watchlist.",
-       "apihelp-edit-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
+       "apihelp-edit-param-watch": "Add the page to the current user's watchlist.",
+       "apihelp-edit-param-unwatch": "Remove the page from the current user's watchlist.",
+       "apihelp-edit-param-watchlist": "Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.",
        "apihelp-edit-param-md5": "The MD5 hash of the $1text parameter, or the $1prependtext and $1appendtext parameters concatenated. If set, the edit won't be done unless the hash is correct.",
        "apihelp-edit-param-prependtext": "Add this text to the beginning of the page. Overrides $1text.",
        "apihelp-edit-param-appendtext": "Add this text to the end of the page. Overrides $1text.\n\nUse $1section=new to append a new section, rather than this parameter.",
        "apihelp-edit-param-contentformat": "Content serialization format used for the input text.",
        "apihelp-edit-param-contentmodel": "Content model of the new content.",
        "apihelp-edit-param-token": "The token should always be sent as the last parameter, or at least after the $1text parameter.",
-       "apihelp-edit-example-edit": "Edit a page",
-       "apihelp-edit-example-prepend": "Prepend _&#95;NOTOC_&#95; to a page",
-       "apihelp-edit-example-undo": "Undo revisions 13579 through 13585 with autosummary",
+       "apihelp-edit-example-edit": "Edit a page.",
+       "apihelp-edit-example-prepend": "Prepend <kbd>_&#95;NOTOC_&#95;</kbd> to a page.",
+       "apihelp-edit-example-undo": "Undo revisions 13579 through 13585 with autosummary.",
 
        "apihelp-emailuser-description": "Email a user.",
        "apihelp-emailuser-param-target": "User to send email to.",
        "apihelp-emailuser-param-subject": "Subject header.",
        "apihelp-emailuser-param-text": "Mail body.",
        "apihelp-emailuser-param-ccme": "Send a copy of this mail to me.",
-       "apihelp-emailuser-example-email": "Send an email to the User \"WikiSysop\" with the text \"Content\"",
+       "apihelp-emailuser-example-email": "Send an email to the User <kbd>WikiSysop</kbd> with the text <kbd>Content</kbd>.",
 
        "apihelp-expandtemplates-description": "Expands all templates in wikitext.",
        "apihelp-expandtemplates-param-title": "Title of page.",
        "apihelp-expandtemplates-param-prop": "Which pieces of information to get:\n;wikitext:The expanded wikitext.\n;categories:Any categories present in the input that are not represented in the wikitext output.\n;properties:Page properties defined by expanded magic words in the wikitext.\n;volatile:Whether the output is volatile and should not be reused elsewhere within the page.\n;ttl:The maximum time after which caches of the result should be invalidated.\n;parsetree:The XML parse tree of the input.\nNote that if no values are selected, the result will contain the wikitext, but the output will be in a deprecated format.",
        "apihelp-expandtemplates-param-includecomments": "Whether to include HTML comments in the output.",
        "apihelp-expandtemplates-param-generatexml": "Generate XML parse tree (replaced by $1prop=parsetree).",
-       "apihelp-expandtemplates-example-simple": "Expand the wikitext \"<nowiki>{{Project:Sandbox}}</nowiki>\"",
+       "apihelp-expandtemplates-example-simple": "Expand the wikitext <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
 
        "apihelp-feedcontributions-description": "Returns a user contributions feed.",
        "apihelp-feedcontributions-param-feedformat": "The format of the feed.",
        "apihelp-feedcontributions-param-toponly": "Only show edits that are latest revisions.",
        "apihelp-feedcontributions-param-newonly": "Only show edits that are page creations.",
        "apihelp-feedcontributions-param-showsizediff": "Show the size difference between revisions.",
-       "apihelp-feedcontributions-example-simple": "Return contributions for [[User:Example]]",
+       "apihelp-feedcontributions-example-simple": "Return contributions for user <kbd>Example</kbd>.",
 
        "apihelp-feedrecentchanges-description": "Returns a recent changes feed.",
        "apihelp-feedrecentchanges-param-feedformat": "The format of the feed.",
        "apihelp-feedrecentchanges-param-hideanons": "Hide changes made by anonymous users.",
        "apihelp-feedrecentchanges-param-hideliu": "Hide changes made by registered users.",
        "apihelp-feedrecentchanges-param-hidepatrolled": "Hide patrolled changes.",
-       "apihelp-feedrecentchanges-param-hidemyself": "Hide changes made by yourself.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Hide changes made by the current user.",
        "apihelp-feedrecentchanges-param-tagfilter": "Filter by tag.",
        "apihelp-feedrecentchanges-param-target": "Show only changes on pages linked from this page.",
        "apihelp-feedrecentchanges-param-showlinkedto": "Show changes on pages linked to the selected page instead.",
-       "apihelp-feedrecentchanges-example-simple": "Show recent changes",
-       "apihelp-feedrecentchanges-example-30days": "Show recent changes for 30 days",
+       "apihelp-feedrecentchanges-example-simple": "Show recent changes.",
+       "apihelp-feedrecentchanges-example-30days": "Show recent changes for 30 days.",
 
        "apihelp-feedwatchlist-description": "Returns a watchlist feed.",
        "apihelp-feedwatchlist-param-feedformat": "The format of the feed.",
        "apihelp-feedwatchlist-param-hours": "List pages modified within this many hours from now.",
        "apihelp-feedwatchlist-param-linktosections": "Link directly to changed sections if possible.",
-       "apihelp-feedwatchlist-example-default": "Show the watchlist feed",
-       "apihelp-feedwatchlist-example-all6hrs": "Show all changes to watched pages in the past 6 hours",
+       "apihelp-feedwatchlist-example-default": "Show the watchlist feed.",
+       "apihelp-feedwatchlist-example-all6hrs": "Show all changes to watched pages in the past 6 hours.",
 
        "apihelp-filerevert-description": "Revert a file to an old version.",
        "apihelp-filerevert-param-filename": "Target filename, without the File: prefix.",
        "apihelp-filerevert-param-comment": "Upload comment.",
        "apihelp-filerevert-param-archivename": "Archive name of the revision to revert to.",
-       "apihelp-filerevert-example-revert": "Revert Wiki.png to the version of 2011-03-05T15:27:40Z",
+       "apihelp-filerevert-example-revert": "Revert <kbd>Wiki.png</kbd> to the version of <kbd>2011-03-05T15:27:40Z</kbd>.",
 
        "apihelp-help-description": "Display help for the specified modules.",
-       "apihelp-help-param-modules": "Modules to display help for (values of the action= and format= parameters, or \"main\"). Can specify submodules with a \"+\".",
+       "apihelp-help-param-modules": "Modules to display help for (values of the <var>action</var> and <var>format</var> parameters, or <kbd>main</kbd>). Can specify submodules with a <kbd>+</kbd>.",
        "apihelp-help-param-submodules": "Include help for submodules of the named module.",
        "apihelp-help-param-recursivesubmodules": "Include help for submodules recursively.",
        "apihelp-help-param-helpformat": "Format of the help output.",
        "apihelp-help-param-wrap": "Wrap the output in a standard API response structure.",
        "apihelp-help-param-toc": "Include a table of contents in the HTML output.",
-       "apihelp-help-example-main": "Help for the main module",
-       "apihelp-help-example-recursive": "All help in one page",
-       "apihelp-help-example-help": "Help for the help module itself",
-       "apihelp-help-example-query": "Help for two query submodules",
+       "apihelp-help-example-main": "Help for the main module.",
+       "apihelp-help-example-recursive": "All help in one page.",
+       "apihelp-help-example-help": "Help for the help module itself.",
+       "apihelp-help-example-query": "Help for two query submodules.",
 
        "apihelp-imagerotate-description": "Rotate one or more images.",
        "apihelp-imagerotate-param-rotation": "Degrees to rotate image clockwise.",
-       "apihelp-imagerotate-example-simple": "Rotate [[:File:Example.png]] by 90 degrees",
-       "apihelp-imagerotate-example-generator": "Rotate all images in [[:Category:Flip]] by 180 degrees",
+       "apihelp-imagerotate-example-simple": "Rotate <kbd>File:Example.png</kbd> by <kbd>90</kbd> degrees.",
+       "apihelp-imagerotate-example-generator": "Rotate all images in <kbd>Category:Flip</kbd> by <kbd>180</kbd> degrees.",
 
-       "apihelp-import-description": "Import a page from another wiki, or an XML file.\n\nNote that the HTTP POST must be done as a file upload (i.e. using multipart/form-data) when sending a file for the \"xml\" parameter.",
+       "apihelp-import-description": "Import a page from another wiki, or an XML file.\n\nNote that the HTTP POST must be done as a file upload (i.e. using multipart/form-data) when sending a file for the <var>xml</var> parameter.",
        "apihelp-import-param-summary": "Import summary.",
        "apihelp-import-param-xml": "Uploaded XML file.",
        "apihelp-import-param-interwikisource": "For interwiki imports: wiki to import from.",
        "apihelp-login-param-password": "Password.",
        "apihelp-login-param-domain": "Domain (optional).",
        "apihelp-login-param-token": "Login token obtained in first request.",
-       "apihelp-login-example-gettoken": "Retrieve a login token",
-       "apihelp-login-example-login": "Log in",
+       "apihelp-login-example-gettoken": "Retrieve a login token.",
+       "apihelp-login-example-login": "Log in.",
 
        "apihelp-logout-description": "Log out and clear session data.",
-       "apihelp-logout-example-logout": "Log the current user out",
+       "apihelp-logout-example-logout": "Log the current user out.",
 
        "apihelp-move-description": "Move a page.",
-       "apihelp-move-param-from": "Title of the page you want to move. Cannot be used together with $1fromid.",
-       "apihelp-move-param-fromid": "Page ID of the page you want to move. Cannot be used together with $1from.",
-       "apihelp-move-param-to": "Title you want to rename the page to.",
-       "apihelp-move-param-reason": "Reason for the move.",
-       "apihelp-move-param-movetalk": "Move the talk page, if it exists.",
-       "apihelp-move-param-movesubpages": "Move subpages, if applicable.",
+       "apihelp-move-param-from": "Title of the page to rename. Cannot be used together with <var>$1fromid</var>.",
+       "apihelp-move-param-fromid": "Page ID of the page to rename. Cannot be used together with <var>$1from</var>.",
+       "apihelp-move-param-to": "Title to rename the page to.",
+       "apihelp-move-param-reason": "Reason for the rename.",
+       "apihelp-move-param-movetalk": "Rename the talk page, if it exists.",
+       "apihelp-move-param-movesubpages": "Rename subpages, if applicable.",
        "apihelp-move-param-noredirect": "Don't create a redirect.",
-       "apihelp-move-param-watch": "Add the page and the redirect to your watchlist.",
-       "apihelp-move-param-unwatch": "Remove the page and the redirect from your watchlist.",
-       "apihelp-move-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
+       "apihelp-move-param-watch": "Add the page and the redirect to the current user's watchlist.",
+       "apihelp-move-param-unwatch": "Remove the page and the redirect from the current user's watchlist.",
+       "apihelp-move-param-watchlist": "Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.",
        "apihelp-move-param-ignorewarnings": "Ignore any warnings.",
-       "apihelp-move-example-move": "Move \"Badtitle\" to \"Goodtitle\" without leaving a redirect",
+       "apihelp-move-example-move": "Move <kbd>Badtitle</kbd> to <kbd>Goodtitle</kbd> without leaving a redirect.",
 
        "apihelp-opensearch-description": "Search the wiki using the OpenSearch protocol.",
        "apihelp-opensearch-param-search": "Search string.",
        "apihelp-opensearch-param-limit": "Maximum number of results to return.",
        "apihelp-opensearch-param-namespace": "Namespaces to search.",
-       "apihelp-opensearch-param-suggest": "Do nothing if [https://www.mediawiki.org/wiki/Manual:$wgEnableOpenSearchSuggest $wgEnableOpenSearchSuggest] is false.",
+       "apihelp-opensearch-param-suggest": "Do nothing if <var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> is false.",
        "apihelp-opensearch-param-redirects": "How to handle redirects:\n;return:Return the redirect itself.\n;resolve:Return the target page. May return fewer than $1limit results.\nFor historical reasons, the default is \"return\" for $1format=json and \"resolve\" for other formats.",
        "apihelp-opensearch-param-format": "The format of the output.",
-       "apihelp-opensearch-example-te": "Find pages beginning with \"Te\"",
+       "apihelp-opensearch-example-te": "Find pages beginning with <kbd>Te</kbd>.",
 
        "apihelp-options-description": "Change preferences of the current user.\n\nOnly options which are registered in core or in one of installed extensions, or options with keys prefixed with \"userjs-\" (intended to be used by user scripts), can be set.",
        "apihelp-options-param-reset": "Resets preferences to the site defaults.",
-       "apihelp-options-param-resetkinds": "List of types of options to reset when the \"$1reset\" option is set.",
+       "apihelp-options-param-resetkinds": "List of types of options to reset when the <var>$1reset</var> option is set.",
        "apihelp-options-param-change": "List of changes, formatted name=value (e.g. skin=vector). Value cannot contain pipe characters. If no value is given (not even an equals sign), e.g., optionname|otheroption|..., the option will be reset to its default value.",
-       "apihelp-options-param-optionname": "A name of a option which should be set to the value given by \"$1optionvalue\".",
-       "apihelp-options-param-optionvalue": "A value of the option specified by \"$1optionname\", can contain pipe characters.",
-       "apihelp-options-example-reset": "Reset all preferences",
-       "apihelp-options-example-change": "Change \"skin\" and \"hideminor\" preferences",
-       "apihelp-options-example-complex": "Reset all preferences, then set \"skin\" and \"nickname\"",
+       "apihelp-options-param-optionname": "A name of a option which should be set to the value given by <var>$1optionvalue</var>.",
+       "apihelp-options-param-optionvalue": "A value of the option specified by <var>$1optionname</var>, can contain pipe characters.",
+       "apihelp-options-example-reset": "Reset all preferences.",
+       "apihelp-options-example-change": "Change <kbd>skin</kbd> and <kbd>hideminor</kbd> preferences.",
+       "apihelp-options-example-complex": "Reset all preferences, then set <kbd>skin</kbd> and <kbd>nickname</kbd>.",
 
        "apihelp-paraminfo-description": "Obtain information about API modules.",
-       "apihelp-paraminfo-param-modules": "List of module names (values of the action= and format= parameters, or \"main\"). Can specify submodules with a \"+\".",
+       "apihelp-paraminfo-param-modules": "List of module names (values of the <var>action</var> and <var>format</var> parameters, or <kbd>main</kbd>). Can specify submodules with a <kbd>+</kbd>.",
        "apihelp-paraminfo-param-helpformat": "Format of help strings.",
-       "apihelp-paraminfo-param-querymodules": "List of query module names (value of prop=, meta= or list= parameter). Use \"$1modules=query+foo\" instead of \"$1querymodules=foo\".",
-       "apihelp-paraminfo-param-mainmodule": "Get information about the main (top-level) module as well. Use \"$1modules=main\" instead.",
+       "apihelp-paraminfo-param-querymodules": "List of query module names (value of <var>prop</var>, <var>meta</var> or <var>list</var> parameter). Use <kbd>$1modules=query+foo</kbd> instead of <kbd>$1querymodules=foo</kbd>.",
+       "apihelp-paraminfo-param-mainmodule": "Get information about the main (top-level) module as well. Use <kbd>$1modules=main</kbd> instead.",
        "apihelp-paraminfo-param-pagesetmodule": "Get information about the pageset module (providing titles= and friends) as well.",
-       "apihelp-paraminfo-param-formatmodules": "List of format module names (value of format= parameter). Use \"$1modules\" instead.",
-       "apihelp-paraminfo-example-1": "Show info for [[Special:ApiHelp/parse|action=parse]], [[Special:ApiHelp/jsonfm|format=jsonfm]], [[Special:ApiHelp/query+allpages|action=query&list=allpages]], and [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]",
+       "apihelp-paraminfo-param-formatmodules": "List of format module names (value of <var>format</var> parameter). Use <var>$1modules</kbd> instead.",
+       "apihelp-paraminfo-example-1": "Show info for <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>, <kbd>[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>, <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd>, and <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>.",
 
-       "apihelp-parse-description": "Parses content and returns parser output.\n\nSee the various prop-modules of [[Special:ApiHelp/query|action=query]] to get information from the current version of a page.\n\nThere are several ways to specify the text to parse:\n# Specify a page or revision, using $1page, $1pageid, or $1oldid.\n# Specify content explicitly, using $1text, $1title, and $1contentmodel.\n# Specify only a summary to parse. $1prop should be given an empty value.",
-       "apihelp-parse-param-title": "Title of page the text belongs to. If omitted, $1contentmodel must be specified, and \"[[API]]\" will be used as the title.",
-       "apihelp-parse-param-text": "Text to parse. Use $1title or $1contentmodel to control the content model.",
+       "apihelp-parse-description": "Parses content and returns parser output.\n\nSee the various prop-modules of <kbd>[[Special:ApiHelp/query|action=query]]</kbd> to get information from the current version of a page.\n\nThere are several ways to specify the text to parse:\n# Specify a page or revision, using <var>$1page</var>, <var>$1pageid</var>, or <var>$1oldid</var>.\n# Specify content explicitly, using <var>$1text</var>, <var>$1title</var>, and <var>$1contentmodel</var>.\n# Specify only a summary to parse. <var>$1prop</var> should be given an empty value.",
+       "apihelp-parse-param-title": "Title of page the text belongs to. If omitted, <var>$1contentmodel</var> must be specified, and [[API]] will be used as the title.",
+       "apihelp-parse-param-text": "Text to parse. Use <var>$1title</var> or <var>$1contentmodel</var> to control the content model.",
        "apihelp-parse-param-summary": "Summary to parse.",
-       "apihelp-parse-param-page": "Parse the content of this page. Cannot be used together with $1text and $1title.",
-       "apihelp-parse-param-pageid": "Parse the content of this page. Overrides $1page.",
-       "apihelp-parse-param-redirects": "If the $1page or the $1pageid parameter is set to a redirect, resolve it.",
-       "apihelp-parse-param-oldid": "Parse the content of this revision. Overrides $1page and $1pageid.",
+       "apihelp-parse-param-page": "Parse the content of this page. Cannot be used together with <var>$1text</var> and <var>$1title</var>.",
+       "apihelp-parse-param-pageid": "Parse the content of this page. Overrides <var>$1page</var>.",
+       "apihelp-parse-param-redirects": "If <var>$1page</var> or <var>$1pageid</var> is set to a redirect, resolve it.",
+       "apihelp-parse-param-oldid": "Parse the content of this revision. Overrides <var>$1page</var> and <var>$1pageid</var>.",
        "apihelp-parse-param-prop": "Which pieces of information to get:\n;text:Gives the parsed text of the wikitext.\n;langlinks:Gives the language links in the parsed wikitext.\n;categories:Gives the categories in the parsed wikitext.\n;categorieshtml:Gives the HTML version of the categories.\n;links:Gives the internal links in the parsed wikitext.\n;templates:Gives the templates in the parsed wikitext.\n;images:Gives the images in the parsed wikitext.\n;externallinks:Gives the external links in the parsed wikitext.\n;sections:Gives the sections in the parsed wikitext.\n;revid:Adds the revision ID of the parsed page.\n;displaytitle:Adds the title of the parsed wikitext.\n;headitems:Gives items to put in the &lt;head&gt; of the page.\n;headhtml:Gives parsed &lt;head&gt; of the page.\n;modules:Gives the ResourceLoader modules used on the page.\n;indicators:Gives the HTML of page status indicators used on the page.\n;iwlinks:Gives interwiki links in the parsed wikitext.\n;wikitext:Gives the original wikitext that was parsed.\n;properties:Gives various properties defined in the parsed wikitext.\n;limitreportdata:Gives the limit report in a structured way. Gives no data, when $1disablepp is set.\n;limitreporthtml:Gives the HTML version of the limit report. Gives no data, when $1disablepp is set.",
        "apihelp-parse-param-pst": "Do a pre-save transform on the input before parsing it. Only valid when used with text.",
-       "apihelp-parse-param-onlypst": "Do a pre-save transform (PST) on the input, but don't parse it Returns the same wikitext, after a PST has been applied. Only valid when used with $1text.",
-       "apihelp-parse-param-effectivelanglinks": "Includes language links supplied by extensions (for use with $1prop=langlinks).",
+       "apihelp-parse-param-onlypst": "Do a pre-save transform (PST) on the input, but don't parse it. Returns the same wikitext, after a PST has been applied. Only valid when used with <var>$1text</var>.",
+       "apihelp-parse-param-effectivelanglinks": "Includes language links supplied by extensions (for use with <kbd>$1prop=langlinks</kbd>).",
        "apihelp-parse-param-section": "Only retrieve the content of this section number.",
        "apihelp-parse-param-disablepp": "Disable the PP Report from the parser output.",
        "apihelp-parse-param-disableeditsection": "Disable edit section links from the parser output.",
-       "apihelp-parse-param-generatexml": "Generate XML parse tree (requires content model \"$1\").",
+       "apihelp-parse-param-generatexml": "Generate XML parse tree (requires content model <code>$1</code>).",
        "apihelp-parse-param-preview": "Parse in preview mode.",
        "apihelp-parse-param-sectionpreview": "Parse in section preview mode (enables preview mode too).",
        "apihelp-parse-param-disabletoc": "Disable table of contents in output.",
        "apihelp-patrol-description": "Patrol a page or revision.",
        "apihelp-patrol-param-rcid": "Recentchanges ID to patrol.",
        "apihelp-patrol-param-revid": "Revision ID to patrol.",
-       "apihelp-patrol-example-rcid": "Patrol a recent change",
-       "apihelp-patrol-example-revid": "Patrol a revision",
+       "apihelp-patrol-example-rcid": "Patrol a recent change.",
+       "apihelp-patrol-example-revid": "Patrol a revision.",
 
        "apihelp-protect-description": "Change the protection level of a page.",
        "apihelp-protect-param-title": "Title of the page to (un)protect. Cannot be used together with $1pageid.",
        "apihelp-protect-param-pageid": "ID of the page to (un)protect. Cannot be used together with $1title.",
-       "apihelp-protect-param-protections": "List of protection levels, formatted action=level (e.g. edit=sysop).\n\n'''NOTE:''' Any actions not listed will have restrictions removed.",
-       "apihelp-protect-param-expiry": "Expiry timestamps. If only one timestamp is set, it'll be used for all protections. Use \"infinite\", \"indefinite\", \"infinity\" or \"never\", for a never-expiring protection.",
+       "apihelp-protect-param-protections": "List of protection levels, formatted <kbd>action=level</kbd> (e.g. <kbd>edit=sysop</kbd>).\n\n<strong>Note:</strong> Any actions not listed will have restrictions removed.",
+       "apihelp-protect-param-expiry": "Expiry timestamps. If only one timestamp is set, it'll be used for all protections. Use <kbd>infinite</kbd>, <kbd>indefinite</kbd>, <kbd>infinity</kbd>, or <kbd>never</kbd>, for a never-expiring protection.",
        "apihelp-protect-param-reason": "Reason for (un)protecting.",
        "apihelp-protect-param-cascade": "Enable cascading protection (i.e. protect pages included in this page). Ignored if all protection levels given do not support cascading.",
-       "apihelp-protect-param-watch": "If set, add the page being (un)protected to your watchlist.",
-       "apihelp-protect-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
-       "apihelp-protect-example-protect": "Protect a page",
-       "apihelp-protect-example-unprotect": "Unprotect a page by setting restrictions to \"all\"",
-       "apihelp-protect-example-unprotect2": "Unprotect a page by setting no restrictions",
+       "apihelp-protect-param-watch": "If set, add the page being (un)protected to the current user's watchlist.",
+       "apihelp-protect-param-watchlist": "Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.",
+       "apihelp-protect-example-protect": "Protect a page.",
+       "apihelp-protect-example-unprotect": "Unprotect a page by setting restrictions to <kbd>all</kbd>.",
+       "apihelp-protect-example-unprotect2": "Unprotect a page by setting no restrictions.",
 
        "apihelp-purge-description": "Purge the cache for the given titles.\n\nRequires a POST request if the user is not logged in.",
        "apihelp-purge-param-forcelinkupdate": "Update the links tables.",
        "apihelp-purge-param-forcerecursivelinkupdate": "Update the links table, and update the links tables for any page that uses this page as a template.",
-       "apihelp-purge-example-simple": "Purge the \"Main Page\" and the \"API\" page",
-       "apihelp-purge-example-generator": "Purge the first 10 pages in the main namespace",
+       "apihelp-purge-example-simple": "Purge the <kbd>Main Page</kbd> and the <kbd>API</kbd> page.",
+       "apihelp-purge-example-generator": "Purge the first 10 pages in the main namespace.",
 
        "apihelp-query-description": "Fetch data from and about MediaWiki.\n\nAll data modifications will first have to use query to acquire a token to prevent abuse from malicious sites.",
        "apihelp-query-param-prop": "Which properties to get for the queried pages.",
        "apihelp-query-param-exportnowrap": "Return the export XML without wrapping it in an XML result (same format as [[Special:Export]]). Can only be used with $1export.",
        "apihelp-query-param-iwurl": "Whether to get the full URL if the title is an interwiki link.",
        "apihelp-query-param-continue": "When present, formats query-continue as key-value pairs that should simply be merged into the original request. This parameter must be set to an empty string in the initial query.\n\nThis parameter is recommended for all new development, and will be made default in the next API version.",
-       "apihelp-query-param-rawcontinue": "Currently ignored. In the future, \"$1continue=\" will become the default and this will be needed to receive the raw query-continue data.",
-       "apihelp-query-example-revisions": "Fetch [[Special:ApiHelp/query+siteinfo|site info]] and [[Special:ApiHelp/query+revisions|revisions]] of the Main Page",
-       "apihelp-query-example-allpages": "Fetch revisions of pages beginning with \"API/\"",
+       "apihelp-query-param-rawcontinue": "Currently ignored. In the future, <var>$1continue</var> will become the default and this will be needed to receive the raw <samp>query-continue</samp> data.",
+       "apihelp-query-example-revisions": "Fetch [[Special:ApiHelp/query+siteinfo|site info]] and [[Special:ApiHelp/query+revisions|revisions]] of <kbd>Main Page</kbd>.",
+       "apihelp-query-example-allpages": "Fetch revisions of pages beginning with <kbd>API/</kbd>.",
 
        "apihelp-query+allcategories-description": "Enumerate all categories.",
        "apihelp-query+allcategories-param-from": "The category to start enumerating from.",
        "apihelp-query+allcategories-param-max": "Only return categories with at most this many members.",
        "apihelp-query+allcategories-param-limit": "How many categories to return.",
        "apihelp-query+allcategories-param-prop": "Which properties to get:\n;size:Adds number of pages in the category.\n;hidden:Tags categories that are hidden with _&#95;HIDDENCAT_&#95;.",
-       "apihelp-query+allcategories-example-size": "List categories with information on the number of pages in each",
-       "apihelp-query+allcategories-example-generator": "Retrieve info about the category page itself for categories beginning \"List\"",
+       "apihelp-query+allcategories-example-size": "List categories with information on the number of pages in each.",
+       "apihelp-query+allcategories-example-generator": "Retrieve info about the category page itself for categories beginning <kbd>List</kbd>.",
 
        "apihelp-query+alldeletedrevisions-description": "List all deleted revisions by a user or in a namespace.",
-       "apihelp-query+alldeletedrevisions-paraminfo-useronly": "May only be used with $3user.",
-       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Cannot be used with $3user.",
+       "apihelp-query+alldeletedrevisions-paraminfo-useronly": "May only be used with <var>$3user</var>.",
+       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Cannot be used with <var>$3user</var>.",
        "apihelp-query+alldeletedrevisions-param-start": "The timestamp to start enumerating from.",
        "apihelp-query+alldeletedrevisions-param-end": "The timestamp to stop enumerating at.",
        "apihelp-query+alldeletedrevisions-param-from": "Start listing at this title.",
        "apihelp-query+alldeletedrevisions-param-user": "Only list revisions by this user.",
        "apihelp-query+alldeletedrevisions-param-excludeuser": "Don't list revisions by this user.",
        "apihelp-query+alldeletedrevisions-param-namespace": "Only list pages in this namespace.",
-       "apihelp-query+alldeletedrevisions-param-miser-user-namespace": "'''NOTE:''' Due to [https://www.mediawiki.org/wiki/Manual:$wgMiserMode miser mode], using $1user and $1namespace together may result in fewer than \"$1limit\" results returned before continuing; in extreme cases, zero results may be returned.",
+       "apihelp-query+alldeletedrevisions-param-miser-user-namespace": "<strong>Note:</strong> Due to [[mw:Manual:$wgMiserMode|miser mode]], using <var>$1user</var> and <var>$1namespace</var> together may result in fewer than <var>$1limit</var> results returned before continuing; in extreme cases, zero results may be returned.",
        "apihelp-query+alldeletedrevisions-param-generatetitles": "When being used as a generator, generate titles rather than revision IDs.",
-       "apihelp-query+alldeletedrevisions-example-user": "List the last 50 deleted contributions by User:Example",
-       "apihelp-query+alldeletedrevisions-example-ns-main": "List the first 50 deleted revisions in the main namespace",
+       "apihelp-query+alldeletedrevisions-example-user": "List the last 50 deleted contributions by user <kbd>Example<kbd>.",
+       "apihelp-query+alldeletedrevisions-example-ns-main": "List the first 50 deleted revisions in the main namespace.",
 
        "apihelp-query+allfileusages-description": "List all file usages, including non-existing.",
        "apihelp-query+allfileusages-param-from": "The title of the file to start enumerating from.",
        "apihelp-query+allfileusages-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID of the using page (cannot be used with $1unique).\n;title:Adds the title of the file.",
        "apihelp-query+allfileusages-param-limit": "How many total items to return.",
        "apihelp-query+allfileusages-param-dir": "The direction in which to list.",
-       "apihelp-query+allfileusages-example-B": "List file titles, including missing ones, with page IDs they are from, starting at B",
-       "apihelp-query+allfileusages-example-unique": "List unique file titles",
-       "apihelp-query+allfileusages-example-unique-generator": "Gets all file titles, marking the missing ones",
-       "apihelp-query+allfileusages-example-generator": "Gets pages containing the files",
+       "apihelp-query+allfileusages-example-B": "List file titles, including missing ones, with page IDs they are from, starting at <kbd>B</kbd>.",
+       "apihelp-query+allfileusages-example-unique": "List unique file titles.",
+       "apihelp-query+allfileusages-example-unique-generator": "Gets all file titles, marking the missing ones.",
+       "apihelp-query+allfileusages-example-generator": "Gets pages containing the files.",
 
        "apihelp-query+allimages-description": "Enumerate all images sequentially.",
        "apihelp-query+allimages-param-sort": "Property to sort by.",
        "apihelp-query+allimages-param-filterbots": "How to filter files uploaded by bots. Can only be used with $1sort=timestamp. Cannot be used together with $1user.",
        "apihelp-query+allimages-param-mime": "What MIME types to search for, e.g. <kbd>image/jpeg</kbd>.",
        "apihelp-query+allimages-param-limit": "How many images in total to return.",
-       "apihelp-query+allimages-example-B": "Show a list of files starting at the letter \"B\"",
-       "apihelp-query+allimages-example-recent": "Show a list of recently uploaded files similar to [[Special:NewFiles]]",
+       "apihelp-query+allimages-example-B": "Show a list of files starting at the letter <kbd>B</kbd>.",
+       "apihelp-query+allimages-example-recent": "Show a list of recently uploaded files, similar to [[Special:NewFiles]].",
        "apihelp-query+allimages-example-mimetypes": "Show a list of files with MIME type <kbd>image/png</kbd> or <kbd>image/gif</kbd>",
-       "apihelp-query+allimages-example-generator": "Show info about 4 files starting at the letter \"T\"",
+       "apihelp-query+allimages-example-generator": "Show info about 4 files starting at the letter <kbd>T</kbd>.",
 
        "apihelp-query+alllinks-description": "Enumerate all links that point to a given namespace.",
        "apihelp-query+alllinks-param-from": "The title of the link to start enumerating from.",
        "apihelp-query+alllinks-param-to": "The title of the link to stop enumerating at.",
        "apihelp-query+alllinks-param-prefix": "Search for all linked titles that begin with this value.",
-       "apihelp-query+alllinks-param-unique": "Only show distinct linked titles. Cannot be used with $1prop=ids.\nWhen used as a generator, yields target pages instead of source pages.",
-       "apihelp-query+alllinks-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID of the linking page (cannot be used with $1unique).\n;title:Adds the title of the link.",
+       "apihelp-query+alllinks-param-unique": "Only show distinct linked titles. Cannot be used with <kbd>$1prop=ids</kbd>.\nWhen used as a generator, yields target pages instead of source pages.",
+       "apihelp-query+alllinks-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID of the linking page (cannot be used with <var>$1unique</var>).\n;title:Adds the title of the link.",
        "apihelp-query+alllinks-param-namespace": "The namespace to enumerate.",
        "apihelp-query+alllinks-param-limit": "How many total items to return.",
        "apihelp-query+alllinks-param-dir": "The direction in which to list.",
-       "apihelp-query+alllinks-example-B": "List linked titles, including missing ones, with page IDs they are from, starting at B",
-       "apihelp-query+alllinks-example-unique": "List unique linked titles",
-       "apihelp-query+alllinks-example-unique-generator": "Gets all linked titles, marking the missing ones",
-       "apihelp-query+alllinks-example-generator": "Gets pages containing the links",
+       "apihelp-query+alllinks-example-B": "List linked titles, including missing ones, with page IDs they are from, starting at <kbd>B</kbd>.",
+       "apihelp-query+alllinks-example-unique": "List unique linked titles.",
+       "apihelp-query+alllinks-example-unique-generator": "Gets all linked titles, marking the missing ones.",
+       "apihelp-query+alllinks-example-generator": "Gets pages containing the links.",
 
        "apihelp-query+allmessages-description": "Return messages from this site.",
-       "apihelp-query+allmessages-param-messages": "Which messages to output. \"*\" (default) means all messages.",
+       "apihelp-query+allmessages-param-messages": "Which messages to output. <kbd>*</kbd> (default) means all messages.",
        "apihelp-query+allmessages-param-prop": "Which properties to get.",
        "apihelp-query+allmessages-param-enableparser": "Set to enable parser, will preprocess the wikitext of message (substitute magic words, handle templates, etc.).",
        "apihelp-query+allmessages-param-nocontent": "If set, do not include the content of the messages in the output.",
        "apihelp-query+allmessages-param-to": "Return messages ending at this message.",
        "apihelp-query+allmessages-param-title": "Page name to use as context when parsing message (for $1enableparser option).",
        "apihelp-query+allmessages-param-prefix": "Return messages with this prefix.",
-       "apihelp-query+allmessages-example-ipb": "Show messages starting with \"ipb-\"",
-       "apihelp-query+allmessages-example-de": "Show messages \"august\" and \"mainpage\" in German",
+       "apihelp-query+allmessages-example-ipb": "Show messages starting with <kbd>ipb-</kbd>.",
+       "apihelp-query+allmessages-example-de": "Show messages <kbd>august</kbd> and <kbd>mainpage</kbd> in German.",
 
        "apihelp-query+allpages-description": "Enumerate all pages sequentially in a given namespace.",
        "apihelp-query+allpages-param-from": "The page title to start enumerating from.",
        "apihelp-query+allpages-param-dir": "The direction in which to list.",
        "apihelp-query+allpages-param-filterlanglinks": "Filter based on whether a page has langlinks. Note that this may not consider langlinks added by extensions.",
        "apihelp-query+allpages-param-prexpiry": "Which protection expiry to filter the page on:\n;indefinite:Get only pages with indefinite protection expiry.\n;definite:Get only pages with a definite (specific) protection expiry.\n;all:Get pages with any protections expiry.",
-       "apihelp-query+allpages-example-B": "Show a list of pages starting at the letter \"B\"",
-       "apihelp-query+allpages-example-generator": "Show info about 4 pages starting at the letter \"T\"",
-       "apihelp-query+allpages-example-generator-revisions": "Show content of first 2 non-redirect pages beginning at \"Re\"",
+       "apihelp-query+allpages-example-B": "Show a list of pages starting at the letter <kbd>B</kbd>.",
+       "apihelp-query+allpages-example-generator": "Show info about 4 pages starting at the letter <kbd>T</kbd>.",
+       "apihelp-query+allpages-example-generator-revisions": "Show content of first 2 non-redirect pages beginning at <kbd>Re</kbd>.",
 
        "apihelp-query+allredirects-description": "List all redirects to a namespace.",
        "apihelp-query+allredirects-param-from": "The title of the redirect to start enumerating from.",
        "apihelp-query+allredirects-param-to": "The title of the redirect to stop enumerating at.",
        "apihelp-query+allredirects-param-prefix": "Search for all target pages that begin with this value.",
        "apihelp-query+allredirects-param-unique": "Only show distinct target pages. Cannot be used with $1prop=ids|fragment|interwiki.\nWhen used as a generator, yields target pages instead of source pages.",
-       "apihelp-query+allredirects-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID of the redirecting page (cannot be used with $1unique).\n;title:Adds the title of the redirect.\n;fragment:Adds the fragment from the redirect, if any (cannot be used with $1unique).\n;interwiki:Adds the interwiki prefix from the redirect, if any (cannot be used with $1unique).",
+       "apihelp-query+allredirects-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID of the redirecting page (cannot be used with <var>$1unique</var>).\n;title:Adds the title of the redirect.\n;fragment:Adds the fragment from the redirect, if any (cannot be used with <var>$1unique</var>).\n;interwiki:Adds the interwiki prefix from the redirect, if any (cannot be used with <var>$1unique</var>).",
        "apihelp-query+allredirects-param-namespace": "The namespace to enumerate.",
        "apihelp-query+allredirects-param-limit": "How many total items to return.",
        "apihelp-query+allredirects-param-dir": "The direction in which to list.",
-       "apihelp-query+allredirects-example-B": "List target pages, including missing ones, with page IDs they are from, starting at B",
-       "apihelp-query+allredirects-example-unique": "List unique target pages",
-       "apihelp-query+allredirects-example-unique-generator": "Gets all target pages, marking the missing ones",
-       "apihelp-query+allredirects-example-generator": "Gets pages containing the redirects",
+       "apihelp-query+allredirects-example-B": "List target pages, including missing ones, with page IDs they are from, starting at <kbd>B</kbd>.",
+       "apihelp-query+allredirects-example-unique": "List unique target pages.",
+       "apihelp-query+allredirects-example-unique-generator": "Gets all target pages, marking the missing ones.",
+       "apihelp-query+allredirects-example-generator": "Gets pages containing the redirects.",
 
        "apihelp-query+alltransclusions-description": "List all transclusions (pages embedded using &#123;&#123;x&#125;&#125;), including non-existing.",
        "apihelp-query+alltransclusions-param-from": "The title of the transclusion to start enumerating from.",
        "apihelp-query+alltransclusions-param-namespace": "The namespace to enumerate.",
        "apihelp-query+alltransclusions-param-limit": "How many total items to return.",
        "apihelp-query+alltransclusions-param-dir": "The direction in which to list.",
-       "apihelp-query+alltransclusions-example-B": "List transcluded titles, including missing ones, with page IDs they are from, starting at B",
-       "apihelp-query+alltransclusions-example-unique": "List unique transcluded titles",
-       "apihelp-query+alltransclusions-example-unique-generator": "Gets all transcluded titles, marking the missing ones",
-       "apihelp-query+alltransclusions-example-generator": "Gets pages containing the transclusions",
+       "apihelp-query+alltransclusions-example-B": "List transcluded titles, including missing ones, with page IDs they are from, starting at <kbd>B</kbd>.",
+       "apihelp-query+alltransclusions-example-unique": "List unique transcluded titles.",
+       "apihelp-query+alltransclusions-example-unique-generator": "Gets all transcluded titles, marking the missing ones.",
+       "apihelp-query+alltransclusions-example-generator": "Gets pages containing the transclusions.",
 
        "apihelp-query+allusers-description": "Enumerate all registered users.",
        "apihelp-query+allusers-param-from": "The user name to start enumerating from.",
        "apihelp-query+allusers-param-limit": "How many total user names to return.",
        "apihelp-query+allusers-param-witheditsonly": "Only list users who have made edits.",
        "apihelp-query+allusers-param-activeusers": "Only list users active in the last $1 {{PLURAL:$1|day|days}}.",
-       "apihelp-query+allusers-example-Y": "List users starting at Y",
+       "apihelp-query+allusers-example-Y": "List users starting at <kbd>Y</kbd>.",
 
        "apihelp-query+backlinks-description": "Find all pages that link to the given page.",
-       "apihelp-query+backlinks-param-title": "Title to search. Cannot be used together with $1pageid.",
-       "apihelp-query+backlinks-param-pageid": "Page ID to search. Cannot be used together with $1title.",
+       "apihelp-query+backlinks-param-title": "Title to search. Cannot be used together with <var>$1pageid</var>.",
+       "apihelp-query+backlinks-param-pageid": "Page ID to search. Cannot be used together with <var>$1title</var>.",
        "apihelp-query+backlinks-param-namespace": "The namespace to enumerate.",
        "apihelp-query+backlinks-param-dir": "The direction in which to list.",
-       "apihelp-query+backlinks-param-filterredir": "How to filter for redirects. If set to nonredirects when $1redirect is enabled, this is only applied to the second level.",
-       "apihelp-query+backlinks-param-limit": "How many total pages to return. If $1redirect is enabled, limit applies to each level separately (which means you may get up to 2 * limit results).",
+       "apihelp-query+backlinks-param-filterredir": "How to filter for redirects. If set to <kbd>nonredirects</kbd> when <var>$1redirect</var> is enabled, this is only applied to the second level.",
+       "apihelp-query+backlinks-param-limit": "How many total pages to return. If <var>$1redirect</var> is enabled, limit applies to each level separately (which means up to 2 * <var>$1limit</var> results may be returned).",
        "apihelp-query+backlinks-param-redirect": "If linking page is a redirect, find all pages that link to that redirect as well. Maximum limit is halved.",
-       "apihelp-query+backlinks-example-simple": "Show links to [[Main page]]",
-       "apihelp-query+backlinks-example-generator": "Get information about pages linking to [[Main page]]",
+       "apihelp-query+backlinks-example-simple": "Show links to <kbd>Main page<kbd>.",
+       "apihelp-query+backlinks-example-generator": "Get information about pages linking to <kbd>Main page<kbd>.",
 
        "apihelp-query+blocks-description": "List all blocked users and IP addresses.",
        "apihelp-query+blocks-param-start": "The timestamp to start enumerating from.",
        "apihelp-query+blocks-param-end": "The timestamp to stop enumerating at.",
        "apihelp-query+blocks-param-ids": "List of block IDs to list (optional).",
        "apihelp-query+blocks-param-users": "List of users to search for (optional).",
-       "apihelp-query+blocks-param-ip": "Get all blocks applying to this IP or CIDR range, including range blocks.\nCannot be used together with $3users. CIDR ranges broader than IPv4/$1 or IPv6/$2 are not accepted.",
+       "apihelp-query+blocks-param-ip": "Get all blocks applying to this IP or CIDR range, including range blocks.\nCannot be used together with <var>$3users</var>. CIDR ranges broader than IPv4/$1 or IPv6/$2 are not accepted.",
        "apihelp-query+blocks-param-limit": "The maximum number of blocks to list.",
-       "apihelp-query+blocks-param-prop": "Which properties to get:\n;id:Adds the ID of the block.\n;user:Adds the username of the blocked user.\n;userid:Adds the user ID of the blocked user.\n;by:Adds the username of the blocking user.\n;byid:Adds the user ID of the blocking user.\n;timestamp:Adds the timestamp of when the block was given.\n;expiry:Adds the timestamp of when the block expires.\n;reason:Adds the reason given for the block.\n;range:Adds the range of IPs affected by the block.\n;flags:Tags the ban with (autoblock, anononly, etc.).",
-       "apihelp-query+blocks-param-show": "Show only items that meet these criteria.\nFor example, to see only indefinite blocks on IPs, set $1show=ip|!temp.",
-       "apihelp-query+blocks-example-simple": "List blocks",
-       "apihelp-query+blocks-example-users": "List blocks of users Alice and Bob",
+       "apihelp-query+blocks-param-prop": "Which properties to get:\n;id:Adds the ID of the block.\n;user:Adds the username of the blocked user.\n;userid:Adds the user ID of the blocked user.\n;by:Adds the username of the blocking user.\n;byid:Adds the user ID of the blocking user.\n;timestamp:Adds the timestamp of when the block was given.\n;expiry:Adds the timestamp of when the block expires.\n;reason:Adds the reason given for the block.\n;range:Adds the range of IP addresses affected by the block.\n;flags:Tags the ban with (autoblock, anononly, etc.).",
+       "apihelp-query+blocks-param-show": "Show only items that meet these criteria.\nFor example, to see only indefinite blocks on IP addresses, set <kbd>$1show=ip|!temp</kbd>.",
+       "apihelp-query+blocks-example-simple": "List blocks.",
+       "apihelp-query+blocks-example-users": "List blocks of users <kbd>Alice</kbd> and <kbd>Bob</kbd>.",
 
        "apihelp-query+categories-description": "List all categories the pages belong to.",
        "apihelp-query+categories-param-prop": "Which additional properties to get for each category:\n;sortkey:Adds the sortkey (hexadecimal string) and sortkey prefix (human-readable part) for the category.\n;timestamp:Adds timestamp of when the category was added.\n;hidden:Tags categories that are hidden with _&#95;HIDDENCAT_&#95;.",
        "apihelp-query+categories-param-limit": "How many categories to return.",
        "apihelp-query+categories-param-categories": "Only list these categories. Useful for checking whether a certain page is in a certain category.",
        "apihelp-query+categories-param-dir": "The direction in which to list.",
-       "apihelp-query+categories-example-simple": "Get a list of categories [[Albert Einstein]] belongs to",
-       "apihelp-query+categories-example-generator": "Get information about all categories used in the [[Albert Einstein]]",
+       "apihelp-query+categories-example-simple": "Get a list of categories the page <kbd>Albert Einstein</kbd> belongs to.",
+       "apihelp-query+categories-example-generator": "Get information about all categories used in the page <kbd>Albert Einstein</kbd>.",
 
        "apihelp-query+categoryinfo-description": "Returns information about the given categories.",
-       "apihelp-query+categoryinfo-example-simple": "Get information about [[:Category:Foo]] and [[:Category:Bar]]",
+       "apihelp-query+categoryinfo-example-simple": "Get information about <kbd>Category:Foo</kbd> and <kbd>Category:Bar</kbd>.",
 
        "apihelp-query+categorymembers-description": "List all pages in a given category.",
-       "apihelp-query+categorymembers-param-title": "Which category to enumerate (required). Must include the \"Category:\" prefix. Cannot be used together with $1pageid.",
-       "apihelp-query+categorymembers-param-pageid": "Page ID of the category to enumerate. Cannot be used together with $1title.",
+       "apihelp-query+categorymembers-param-title": "Which category to enumerate (required). Must include the <kbd>{{ns:category}}:</kbd> prefix. Cannot be used together with <var>$1pageid</var>.",
+       "apihelp-query+categorymembers-param-pageid": "Page ID of the category to enumerate. Cannot be used together with <var>$1title</var>.",
        "apihelp-query+categorymembers-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID.\n;title:Adds the title and namespace ID of the page.\n;sortkey:Adds the sortkey used for sorting in the category (hexadecimal string).\n;sortkeyprefix:Adds the sortkey prefix used for sorting in the category (human-readable part of the sortkey).\n;type:Adds the type that the page has been categorised as (page, subcat or file).\n;timestamp:Adds the timestamp of when the page was included.",
-       "apihelp-query+categorymembers-param-namespace": "Only include pages in these namespaces. Note that $1type=subcat or $1type=file may be used instead of $1namespace=14 or 6.",
-       "apihelp-query+categorymembers-param-type": "Which type of category members to include. Ignored when $1sort=timestamp is set.",
+       "apihelp-query+categorymembers-param-namespace": "Only include pages in these namespaces. Note that <kbd>$1type=subcat</kbd> or <kbd>$1type=file</kbd> may be used instead of <kbd>$1namespace=14</kbd> or <kbd>6</kbd>.",
+       "apihelp-query+categorymembers-param-type": "Which type of category members to include. Ignored when <kbd>$1sort=timestamp</kbd> is set.",
        "apihelp-query+categorymembers-param-limit": "The maximum number of pages to return.",
        "apihelp-query+categorymembers-param-sort": "Property to sort by.",
        "apihelp-query+categorymembers-param-dir": "In which direction to sort.",
-       "apihelp-query+categorymembers-param-start": "Timestamp to start listing from. Can only be used with $1sort=timestamp.",
-       "apihelp-query+categorymembers-param-end": "Timestamp to end listing at. Can only be used with $1sort=timestamp.",
-       "apihelp-query+categorymembers-param-starthexsortkey": "Sortkey to start listing from, as returned by $1prop=sortkey. Can only be used with $1sort=sortkey.",
-       "apihelp-query+categorymembers-param-endhexsortkey": "Sortkey to end listing from, as returned by $1prop=sortkey. Can only be used with $1sort=sortkey.",
-       "apihelp-query+categorymembers-param-startsortkeyprefix": "Sortkey prefix to start listing from. Can only be used with $1sort=sortkey. Overrides $1starthexsortkey.",
+       "apihelp-query+categorymembers-param-start": "Timestamp to start listing from. Can only be used with <kbd>$1sort=timestamp</kbd>.",
+       "apihelp-query+categorymembers-param-end": "Timestamp to end listing at. Can only be used with <kbd>$1sort=timestamp</kbd>.",
+       "apihelp-query+categorymembers-param-starthexsortkey": "Sortkey to start listing from, as returned by <kbd>$1prop=sortkey</kbd>. Can only be used with <kbd>$1sort=sortkey</kbd>.",
+       "apihelp-query+categorymembers-param-endhexsortkey": "Sortkey to end listing from, as returned by <kbd>$1prop=sortkey</kbd>. Can only be used with <kbd>$1sort=sortkey</kbd>.",
+       "apihelp-query+categorymembers-param-startsortkeyprefix": "Sortkey prefix to start listing from. Can only be used with <kbd>$1sort=sortkey</kbd>. Overrides <var>$1starthexsortkey</var>.",
        "apihelp-query+categorymembers-param-endsortkeyprefix": "Sortkey prefix to end listing BEFORE (not at, if this value occurs it will not be included!). Can only be used with $1sort=sortkey. Overrides $1endhexsortkey.",
        "apihelp-query+categorymembers-param-startsortkey": "Use $1starthexsortkey instead.",
        "apihelp-query+categorymembers-param-endsortkey": "Use $1endhexsortkey instead.",
-       "apihelp-query+categorymembers-example-simple": "Get first 10 pages in [[:Category:Physics]]",
-       "apihelp-query+categorymembers-example-generator": "Get page info about first 10 pages in [[:Category:Physics]]",
+       "apihelp-query+categorymembers-example-simple": "Get first 10 pages in <kbd>Category:Physics</kbd>.",
+       "apihelp-query+categorymembers-example-generator": "Get page info about first 10 pages in <kbd>Category:Physics</kbd>.",
 
        "apihelp-query+contributors-description": "Get the list of logged-in contributors and the count of anonymous contributors to a page.",
        "apihelp-query+contributors-param-group": "Only include users in the given groups. Does not include implicit or auto-promoted groups like *, user, or autoconfirmed.",
        "apihelp-query+contributors-param-rights": "Only include users having the given rights. Does not include rights granted by implicit or auto-promoted groups like *, user, or autoconfirmed.",
        "apihelp-query+contributors-param-excluderights": "Exclude users having the given rights. Does not include rights granted by implicit or auto-promoted groups like *, user, or autoconfirmed.",
        "apihelp-query+contributors-param-limit": "How many contributors to return.",
-       "apihelp-query+contributors-example-simple": "Show contributors to the [[Main Page]]",
+       "apihelp-query+contributors-example-simple": "Show contributors to the page <kbd>Main Page</kbd>.",
 
        "apihelp-query+deletedrevisions-description": "Get deleted revision information.\n\nMay be used in several ways:\n# Get deleted revisions for a set of pages, by setting titles or pageids. Ordered by title and timestamp.\n# Get data about a set of deleted revisions by setting their IDs with revids. Ordered by revision ID.",
        "apihelp-query+deletedrevisions-param-start": "The timestamp to start enumerating from. Ignored when processing a list of revision IDs.",
        "apihelp-query+deletedrevisions-param-excludeuser": "Don't list revisions by this user.",
        "apihelp-query+deletedrevisions-param-limit": "The maximum amount of revisions to list.",
        "apihelp-query+deletedrevisions-param-prop": "Which properties to get:\n;revid:Adds the revision ID of the deleted revision.\n;parentid:Adds the revision ID of the previous revision to the page.\n;user:Adds the user who made the revision.\n;userid:Adds the user ID who made the revision.\n;comment:Adds the comment of the revision.\n;parsedcomment:Adds the parsed comment of the revision.\n;minor:Tags if the revision is minor.\n;len:Adds the length (bytes) of the revision.\n;sha1:Adds the SHA-1 (base 16) of the revision.\n;content:Adds the content of the revision.\n;tags:Tags for the revision.",
-       "apihelp-query+deletedrevisions-example-titles": "List the deleted revisions of [[Main Page]] and [[Talk:Main Page]], with content",
-       "apihelp-query+deletedrevisions-example-revids": "List the information for deleted revision 123456",
+       "apihelp-query+deletedrevisions-example-titles": "List the deleted revisions of the pages <kbd>Main Page</kbd> and <kbd>Talk:Main Page</kbd>, with content.",
+       "apihelp-query+deletedrevisions-example-revids": "List the information for deleted revision <kbd>123456</kbd>.",
 
        "apihelp-query+deletedrevs-description": "List deleted revisions.\n\nOperates in three modes:\n# List deleted revisions for the given titles, sorted by timestamp.\n# List deleted contributions for the given user, sorted by timestamp (no titles specified).\n# List all deleted revisions in the given namespace, sorted by title and timestamp (no titles specified, $1user not set).\n\nCertain parameters only apply to some modes and are ignored in others.",
        "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Mode|Modes}}: $2",
        "apihelp-query+deletedrevs-param-namespace": "Only list pages in this namespace.",
        "apihelp-query+deletedrevs-param-limit": "The maximum amount of revisions to list.",
        "apihelp-query+deletedrevs-param-prop": "Which properties to get:\n;revid:Adds the revision ID of the deleted revision.\n;parentid:Adds the revision ID of the previous revision to the page.\n;user:Adds the user who made the revision.\n;userid:Adds the user ID whom made the revision.\n;comment:Adds the comment of the revision.\n;parsedcomment:Adds the parsed comment of the revision.\n;minor:Tags if the revision is minor.\n;len:Adds the length (bytes) of the revision.\n;sha1:Adds the SHA-1 (base 16) of the revision.\n;content:Adds the content of the revision.\n;token:<span class=\"apihelp-deprecated\">Deprecated.</span> Gives the edit token.\n;tags:Tags for the revision.",
-       "apihelp-query+deletedrevs-example-mode1": "List the last deleted revisions of Main Page and Talk:Main Page, with content (mode 1)",
-       "apihelp-query+deletedrevs-example-mode2": "List the last 50 deleted contributions by Bob (mode 2)",
-       "apihelp-query+deletedrevs-example-mode3-main": "List the first 50 deleted revisions in the main namespace (mode 3)",
-       "apihelp-query+deletedrevs-example-mode3-talk": "List the first 50 deleted pages in the Talk namespace (mode 3):",
+       "apihelp-query+deletedrevs-example-mode1": "List the last deleted revisions of the pages <kbd>Main Page</kbd> and <kbd>Talk:Main Page</kbd>, with content (mode 1).",
+       "apihelp-query+deletedrevs-example-mode2": "List the last 50 deleted contributions by <kbd>Bob</kbd> (mode 2).",
+       "apihelp-query+deletedrevs-example-mode3-main": "List the first 50 deleted revisions in the main namespace (mode 3).",
+       "apihelp-query+deletedrevs-example-mode3-talk": "List the first 50 deleted pages in the {{ns:talk}} namespace (mode 3).",
 
        "apihelp-query+disabled-description": "This query module has been disabled.",
 
        "apihelp-query+duplicatefiles-param-limit": "How many duplicate files to return.",
        "apihelp-query+duplicatefiles-param-dir": "The direction in which to list.",
        "apihelp-query+duplicatefiles-param-localonly": "Look only for files in the local repository.",
-       "apihelp-query+duplicatefiles-example-simple": "Look for duplicates of [[:File:Albert Einstein Head.jpg]]",
-       "apihelp-query+duplicatefiles-example-generated": "Look for duplicates of all files",
+       "apihelp-query+duplicatefiles-example-simple": "Look for duplicates of [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+duplicatefiles-example-generated": "Look for duplicates of all files.",
 
        "apihelp-query+embeddedin-description": "Find all pages that embed (transclude) the given title.",
        "apihelp-query+embeddedin-param-title": "Title to search. Cannot be used together with $1pageid.",
        "apihelp-query+embeddedin-param-dir": "The direction in which to list.",
        "apihelp-query+embeddedin-param-filterredir": "How to filter for redirects.",
        "apihelp-query+embeddedin-param-limit": "How many total pages to return.",
-       "apihelp-query+embeddedin-example-simple": "Show pages transcluding [[Template:Stub]]",
-       "apihelp-query+embeddedin-example-generator": "Get information about pages transcluding [[Template:Stub]]",
+       "apihelp-query+embeddedin-example-simple": "Show pages transcluding <kbd>Template:Stub</kbd>.",
+       "apihelp-query+embeddedin-example-generator": "Get information about pages transcluding <kbd>Template:Stub</kbd>.",
 
        "apihelp-query+extlinks-description": "Returns all external URLs (not interwikis) from the given pages.",
        "apihelp-query+extlinks-param-limit": "How many links to return.",
-       "apihelp-query+extlinks-param-protocol": "Protocol of the URL. If empty and $1query is set, the protocol is \"http\". Leave both this and $1query empty to list all external links.",
+       "apihelp-query+extlinks-param-protocol": "Protocol of the URL. If empty and <var>$1query</var> is set, the protocol is <kbd>http</kbd>. Leave both this and <var>$1query</var> empty to list all external links.",
        "apihelp-query+extlinks-param-query": "Search string without protocol. Useful for checking whether a certain page contains a certain external url.",
        "apihelp-query+extlinks-param-expandurl": "Expand protocol-relative URLs with the canonical protocol.",
-       "apihelp-query+extlinks-example-simple": "Get a list of external links on the [[Main Page]]",
+       "apihelp-query+extlinks-example-simple": "Get a list of external links on <kbd>Main Page<kbd>.",
 
        "apihelp-query+exturlusage-description": "Enumerate pages that contain a given URL.",
        "apihelp-query+exturlusage-param-prop": "Which pieces of information to include:\n;ids:Adds the ID of page.\n;title:Adds the title and namespace ID of the page.\n;url:Adds the URL used in the page.",
-       "apihelp-query+exturlusage-param-protocol": "Protocol of the URL. If empty and $1query set, the protocol is \"http\". Leave both this and $1query empty to list all external links.",
+       "apihelp-query+exturlusage-param-protocol": "Protocol of the URL. If empty and <var>$1query</var> set, the protocol is <kbd>http</kbd>. Leave both this and <var>$1query</var> empty to list all external links.",
        "apihelp-query+exturlusage-param-query": "Search string without protocol. See [[Special:LinkSearch]]. Leave empty to list all external links.",
        "apihelp-query+exturlusage-param-namespace": "The page namespaces to enumerate.",
        "apihelp-query+exturlusage-param-limit": "How many pages to return.",
        "apihelp-query+exturlusage-param-expandurl": "Expand protocol-relative URLs with the canonical protocol.",
-       "apihelp-query+exturlusage-example-simple": "Show pages linking to http://www.mediawiki.org",
+       "apihelp-query+exturlusage-example-simple": "Show pages linking to <kbd>http://www.mediawiki.org</kbd>.",
 
        "apihelp-query+filearchive-description": "Enumerate all deleted files sequentially.",
        "apihelp-query+filearchive-param-from": "The image title to start enumerating from.",
        "apihelp-query+filearchive-param-dir": "The direction in which to list.",
        "apihelp-query+filearchive-param-sha1": "SHA1 hash of image. Overrides $1sha1base36.",
        "apihelp-query+filearchive-param-sha1base36": "SHA1 hash of image in base 36 (used in MediaWiki).",
-       "apihelp-query+filearchive-param-prop": "Which image information to get:\n;sha1:Adds SHA-1 hash for the image.\n;timestamp:Adds timestamp for the uploaded version.\n;user:Adds user who uploaded the image version.\n;size:Adds the size of the image in bytes and the height, width and page count (if applicable).\n;dimensions:Alias for size.\n;description:Adds description the image version.\n;parseddescription:Parse the description on the version.\n;mime:Adds MIME of the image.\n;mediatype:Adds the media type of the image.\n;metadata:Lists Exif metadata for the version of the image.\n;bitdepth:Adds the bit depth of the version.\n;archivename:Adds the file name of the archive version for non-latest versions.",
-       "apihelp-query+filearchive-example-simple": "Show a list of all deleted files",
+       "apihelp-query+filearchive-param-prop": "Which image information to get:\n;sha1:Adds SHA-1 hash for the image.\n;timestamp:Adds timestamp for the uploaded version.\n;user:Adds user who uploaded the image version.\n;size:Adds the size of the image in bytes and the height, width and page count (if applicable).\n;dimensions:Alias for size.\n;description:Adds description the image version.\n;parseddescription:Parse the description on the version.\n;mime:Adds MIME of the image.\n;mediatype:Adds the media type of the image.\n;metadata:Lists Exif metadata for the version of the image.\n;bitdepth:Adds the bit depth of the version.\n;archivename:Adds the filename of the archive version for non-latest versions.",
+       "apihelp-query+filearchive-example-simple": "Show a list of all deleted files.",
 
        "apihelp-query+filerepoinfo-description": "Return meta information about image repositories configured on the wiki.",
-       "apihelp-query+filerepoinfo-param-prop": "Which repository properties to get (there may be more available on some wikis):\n;apiurl:URL to the repository API - helpful for getting image info from the host.\n;name:The key of the repository - used in e.g. $wgForeignFileRepos and imageinfo return values.\n;displayname:The human-readable name of the repository wiki.\n;rooturl:Root URL for image paths.\n;local:Whether that repository is the local one or not.",
-       "apihelp-query+filerepoinfo-example-simple": "Get information about file repositories",
+       "apihelp-query+filerepoinfo-param-prop": "Which repository properties to get (there may be more available on some wikis):\n;apiurl:URL to the repository API - helpful for getting image info from the host.\n;name:The key of the repository - used in e.g. <var>[[mw:Manual:$wgForeignFileRepos|$wgForeignFileRepos]]</var> and [[Special:ApiHelp/query+imageinfo|imageinfo]] return values.\n;displayname:The human-readable name of the repository wiki.\n;rooturl:Root URL for image paths.\n;local:Whether that repository is the local one or not.",
+       "apihelp-query+filerepoinfo-example-simple": "Get information about file repositories.",
 
        "apihelp-query+fileusage-description": "Find all pages that use the given files.",
        "apihelp-query+fileusage-param-prop": "Which properties to get:\n;pageid:Page ID of each page.\n;title:Title of each page.\n;redirect:Flag if the page is a redirect.",
        "apihelp-query+fileusage-param-namespace": "Only include pages in these namespaces.",
        "apihelp-query+fileusage-param-limit": "How many to return.",
        "apihelp-query+fileusage-param-show": "Show only items that meet these criteria:\n;redirect:Only show redirects.\n;!redirect:Only show non-redirects.",
-       "apihelp-query+fileusage-example-simple": "Get a list of pages using [[:File:Example.jpg]]",
-       "apihelp-query+fileusage-example-generator": "Get information about pages using [[:File:Example.jpg]]",
+       "apihelp-query+fileusage-example-simple": "Get a list of pages using [[:File:Example.jpg]].",
+       "apihelp-query+fileusage-example-generator": "Get information about pages using [[:File:Example.jpg]].",
 
        "apihelp-query+imageinfo-description": "Returns file information and upload history.",
        "apihelp-query+imageinfo-param-prop": "Which file information to get:",
        "apihelp-query+imageinfo-paramvalue-prop-metadata":"Lists Exif metadata for the version of the file.",
        "apihelp-query+imageinfo-paramvalue-prop-commonmetadata":"Lists file format generic metadata for the version of the file.",
        "apihelp-query+imageinfo-paramvalue-prop-extmetadata":"Lists formatted metadata combined from multiple sources. Results are HTML formatted.",
-       "apihelp-query+imageinfo-paramvalue-prop-archivename":"Adds the file name of the archive version for non-latest versions.",
+       "apihelp-query+imageinfo-paramvalue-prop-archivename":"Adds the filename of the archive version for non-latest versions.",
        "apihelp-query+imageinfo-paramvalue-prop-bitdepth":"Adds the bit depth of the version.",
        "apihelp-query+imageinfo-paramvalue-prop-uploadwarning":"Used by the Special:Upload page to get information about an existing file. Not intended for use outside MediaWiki core.",
        "apihelp-query+imageinfo-param-limit": "How many file revisions to return per file.",
        "apihelp-query+imageinfo-param-end": "Timestamp to stop listing at.",
        "apihelp-query+imageinfo-param-urlwidth": "If $2prop=url is set, a URL to an image scaled to this width will be returned.\nFor performance reasons if this option is used, no more than $1 scaled images will be returned.",
        "apihelp-query+imageinfo-param-urlheight": "Similar to $1urlwidth.",
-       "apihelp-query+imageinfo-param-metadataversion": "Version of metadata to use. if \"latest\" is specified, use latest version. Defaults to \"1\" for backwards compatibility.",
+       "apihelp-query+imageinfo-param-metadataversion": "Version of metadata to use. If <kbd>latest</kbd> is specified, use latest version. Defaults to <kbd>1</kbd> for backwards compatibility.",
        "apihelp-query+imageinfo-param-extmetadatalanguage": "What language to fetch extmetadata in. This affects both which translation to fetch, if multiple are available, as well as how things like numbers and various values are formatted.",
        "apihelp-query+imageinfo-param-extmetadatamultilang": "If translations for extmetadata property are available, fetch all of them.",
        "apihelp-query+imageinfo-param-extmetadatafilter": "If specified and non-empty, only these keys will be returned for $1prop=extmetadata.",
-       "apihelp-query+imageinfo-param-urlparam": "A handler specific parameter string. For example, pdfs might use \"page15-100px\". $1urlwidth must be used and be consistent with $1urlparam.",
+       "apihelp-query+imageinfo-param-urlparam": "A handler specific parameter string. For example, PDFs might use <kbd>page15-100px</kbd>. <var>$1urlwidth</var> must be used and be consistent with <var>$1urlparam</var>.",
        "apihelp-query+imageinfo-param-localonly": "Look only for files in the local repository.",
-       "apihelp-query+imageinfo-example-simple": "Fetch information about the current version of [[:File:Albert Einstein Head.jpg]]",
-       "apihelp-query+imageinfo-example-dated": "Fetch information about versions of [[:File:Test.jpg]] from 2008 and later",
+       "apihelp-query+imageinfo-example-simple": "Fetch information about the current version of [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+imageinfo-example-dated": "Fetch information about versions of [[:File:Test.jpg]] from 2008 and later.",
 
        "apihelp-query+images-description": "Returns all files contained on the given pages.",
        "apihelp-query+images-param-limit": "How many files to return.",
        "apihelp-query+images-param-images": "Only list these files. Useful for checking whether a certain page has a certain file.",
        "apihelp-query+images-param-dir": "The direction in which to list.",
-       "apihelp-query+images-example-simple": "Get a list of files used in the [[Main Page]]",
-       "apihelp-query+images-example-generator": "Get information about all files used in the [[Main Page]]",
+       "apihelp-query+images-example-simple": "Get a list of files used in the [[Main Page]].",
+       "apihelp-query+images-example-generator": "Get information about all files used in the [[Main Page]].",
 
        "apihelp-query+imageusage-description": "Find all pages that use the given image title.",
        "apihelp-query+imageusage-param-title": "Title to search. Cannot be used together with $1pageid.",
        "apihelp-query+imageusage-param-namespace": "The namespace to enumerate.",
        "apihelp-query+imageusage-param-dir": "The direction in which to list.",
        "apihelp-query+imageusage-param-filterredir": "How to filter for redirects. If set to nonredirects when $1redirect is enabled, this is only applied to the second level.",
-       "apihelp-query+imageusage-param-limit": "How many total pages to return. If $1redirect is enabled, limit applies to each level separately (which means you may get up to 2 * limit results).",
+       "apihelp-query+imageusage-param-limit": "How many total pages to return. If <var>$1redirect</var> is enabled, the limit applies to each level separately (which means up to 2 * <var>$1limit</var> results may be returned).",
        "apihelp-query+imageusage-param-redirect": "If linking page is a redirect, find all pages that link to that redirect as well. Maximum limit is halved.",
-       "apihelp-query+imageusage-example-simple": "Show pages using [[:File:Albert Einstein Head.jpg]]",
-       "apihelp-query+imageusage-example-generator": "Get information about pages using [[:File:Albert Einstein Head.jpg]]",
+       "apihelp-query+imageusage-example-simple": "Show pages using [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+imageusage-example-generator": "Get information about pages using [[:File:Albert Einstein Head.jpg]].",
 
        "apihelp-query+info-description": "Get basic page information.",
        "apihelp-query+info-param-prop": "Which additional properties to get:",
        "apihelp-query+info-paramvalue-prop-preload": "Gives the text returned by EditFormPreloadText.",
        "apihelp-query+info-paramvalue-prop-displaytitle": "Gives the way the page title is actually displayed.",
        "apihelp-query+info-param-token": "Use [[Special:ApiHelp/query+tokens|action=query&meta=tokens]] instead.",
-       "apihelp-query+info-example-simple": "Get information about the [[Main Page]]",
-       "apihelp-query+info-example-protection": "Get general and protection information about the [[Main Page]]",
+       "apihelp-query+info-example-simple": "Get information about the page <kbd>Main Page</kbd>.",
+       "apihelp-query+info-example-protection": "Get general and protection information about the page <kbd>Main Page</kbd>.",
 
        "apihelp-query+iwbacklinks-description": "Find all pages that link to the given interwiki link.\n\nCan be used to find all links with a prefix, or all links to a title (with a given prefix). Using neither parameter is effectively \"all interwiki links\".",
        "apihelp-query+iwbacklinks-param-prefix": "Prefix for the interwiki.",
-       "apihelp-query+iwbacklinks-param-title": "Interwiki link to search for. Must be used with $1blprefix.",
+       "apihelp-query+iwbacklinks-param-title": "Interwiki link to search for. Must be used with <var>$1blprefix</var>.",
        "apihelp-query+iwbacklinks-param-limit": "How many total pages to return.",
        "apihelp-query+iwbacklinks-param-prop": "Which properties to get:\n;iwprefix:Adds the prefix of the interwiki.\n;iwtitle:Adds the title of the interwiki.",
        "apihelp-query+iwbacklinks-param-dir": "The direction in which to list.",
-       "apihelp-query+iwbacklinks-example-simple": "Get pages linking to [[wikibooks:Test]]",
-       "apihelp-query+iwbacklinks-example-generator": "Get information about pages linking to [[wikibooks:Test]]",
+       "apihelp-query+iwbacklinks-example-simple": "Get pages linking to [[wikibooks:Test]].",
+       "apihelp-query+iwbacklinks-example-generator": "Get information about pages linking to [[wikibooks:Test]].",
 
        "apihelp-query+iwlinks-description": "Returns all interwiki links from the given pages.",
        "apihelp-query+iwlinks-param-url": "Whether to get the full URL (cannot be used with $1prop).",
        "apihelp-query+iwlinks-param-prop": "Which additional properties to get for each interlanguage link:\n;url:Adds the full URL.",
        "apihelp-query+iwlinks-param-limit": "How many interwiki links to return.",
        "apihelp-query+iwlinks-param-prefix": "Only return interwiki links with this prefix.",
-       "apihelp-query+iwlinks-param-title": "Interwiki link to search for. Must be used with $1prefix.",
+       "apihelp-query+iwlinks-param-title": "Interwiki link to search for. Must be used with <var>$1prefix</var>.",
        "apihelp-query+iwlinks-param-dir": "The direction in which to list.",
-       "apihelp-query+iwlinks-example-simple": "Get interwiki links from the [[Main Page]]",
+       "apihelp-query+iwlinks-example-simple": "Get interwiki links from the page <kbd>Main Page</kbd>.",
 
        "apihelp-query+langbacklinks-description": "Find all pages that link to the given language link.\n\nCan be used to find all links with a language code, or all links to a title (with a given language). Using neither parameter is effectively \"all language links\".\n\nNote that this may not consider language links added by extensions.",
        "apihelp-query+langbacklinks-param-lang": "Language for the language link.",
        "apihelp-query+langbacklinks-param-limit": "How many total pages to return.",
        "apihelp-query+langbacklinks-param-prop": "Which properties to get:\n;lllang:Adds the language code of the language link.\n;lltitle:Adds the title of the language link.",
        "apihelp-query+langbacklinks-param-dir": "The direction in which to list.",
-       "apihelp-query+langbacklinks-example-simple": "Get pages linking to [[:fr:Test]]",
-       "apihelp-query+langbacklinks-example-generator": "Get information about pages linking to [[:fr:Test]]",
+       "apihelp-query+langbacklinks-example-simple": "Get pages linking to [[:fr:Test]].",
+       "apihelp-query+langbacklinks-example-generator": "Get information about pages linking to [[:fr:Test]].",
 
        "apihelp-query+langlinks-description": "Returns all interlanguage links from the given pages.",
        "apihelp-query+langlinks-param-limit": "How many langlinks to return.",
-       "apihelp-query+langlinks-param-url": "Whether to get the full URL (cannot be used with $1prop).",
-       "apihelp-query+langlinks-param-prop": "Which additional properties to get for each interlanguage link:\n;url:Adds the full URL.\n;langname:Adds the localised language name (best effort). Use $1inlanguagecode to control the language.\n;autonym:Adds the native language name.",
+       "apihelp-query+langlinks-param-url": "Whether to get the full URL (cannot be used with <var>$1prop</var>).",
+       "apihelp-query+langlinks-param-prop": "Which additional properties to get for each interlanguage link:\n;url:Adds the full URL.\n;langname:Adds the localised language name (best effort). Use <var>$1inlanguagecode</var> to control the language.\n;autonym:Adds the native language name.",
        "apihelp-query+langlinks-param-lang": "Only return language links with this language code.",
-       "apihelp-query+langlinks-param-title": "Link to search for. Must be used with $1lang.",
+       "apihelp-query+langlinks-param-title": "Link to search for. Must be used with <var>$1lang</var>.",
        "apihelp-query+langlinks-param-dir": "The direction in which to list.",
        "apihelp-query+langlinks-param-inlanguagecode": "Language code for localised language names.",
-       "apihelp-query+langlinks-example-simple": "Get interlanguage links from the [[Main Page]]",
+       "apihelp-query+langlinks-example-simple": "Get interlanguage links from the page <kbd>Main Page</kbd>.",
 
        "apihelp-query+links-description": "Returns all links from the given pages.",
        "apihelp-query+links-param-namespace": "Show links in these namespaces only.",
        "apihelp-query+links-param-limit": "How many links to return.",
        "apihelp-query+links-param-titles": "Only list links to these titles. Useful for checking whether a certain page links to a certain title.",
        "apihelp-query+links-param-dir": "The direction in which to list.",
-       "apihelp-query+links-example-simple": "Get links from the [[Main Page]]",
-       "apihelp-query+links-example-generator": "Get information about the link pages in the [[Main Page]]",
-       "apihelp-query+links-example-namespaces": "Get links from the [[Main Page]] in the User and Template namespaces",
+       "apihelp-query+links-example-simple": "Get links from the page <kbd>Main Page</kbd>",
+       "apihelp-query+links-example-generator": "Get information about the link pages in the page <kbd>Main Page</kbd>.",
+       "apihelp-query+links-example-namespaces": "Get links from the page <kbd>Main Page</kbd> in the {{ns:user}} and {{ns:template}} namespaces.",
 
        "apihelp-query+linkshere-description": "Find all pages that link to the given pages.",
        "apihelp-query+linkshere-param-prop": "Which properties to get:\n;pageid:Page ID of each page.\n;title:Title of each page.\n;redirect:Flag if the page is a redirect.",
        "apihelp-query+linkshere-param-namespace": "Only include pages in these namespaces.",
        "apihelp-query+linkshere-param-limit": "How many to return.",
        "apihelp-query+linkshere-param-show": "Show only items that meet these criteria:\n;redirect:Only show redirects.\n;!redirect:Only show non-redirects.",
-       "apihelp-query+linkshere-example-simple": "Get a list of pages linking to the [[Main Page]]",
-       "apihelp-query+linkshere-example-generator": "Get information about pages linking to the [[Main Page]]",
+       "apihelp-query+linkshere-example-simple": "Get a list of pages linking to the [[Main Page]].",
+       "apihelp-query+linkshere-example-generator": "Get information about pages linking to the [[Main Page]].",
 
        "apihelp-query+logevents-description": "Get events from logs.",
        "apihelp-query+logevents-param-prop": "Which properties to get:\n;ids:Adds the ID of the log event.\n;title:Adds the title of the page for the log event.\n;type:Adds the type of log event.\n;user:Adds the user responsible for the log event.\n;userid:Adds the user ID who was responsible for the log event.\n;timestamp:Adds the timestamp for the event.\n;comment:Adds the comment of the event.\n;parsedcomment:Adds the parsed comment of the event.\n;details:Lists additional details about the event.\n;tags:Lists tags for the event.",
        "apihelp-query+logevents-param-type": "Filter log entries to only this type.",
-       "apihelp-query+logevents-param-action": "Filter log actions to only this action. Overrides $1type. Wildcard actions like \"action/*\" allows to specify any string for the asterisk.",
+       "apihelp-query+logevents-param-action": "Filter log actions to only this action. Overrides <var>$1type</var>. Wildcard actions like <kbd>action/*</kbd> allows to specify any string for the asterisk.",
        "apihelp-query+logevents-param-start": "The timestamp to start enumerating from.",
        "apihelp-query+logevents-param-end": "The timestamp to end enumerating.",
        "apihelp-query+logevents-param-user": "Filter entries to those made by the given user.",
        "apihelp-query+logevents-param-prefix": "Filter entries that start with this prefix.",
        "apihelp-query+logevents-param-tag": "Only list event entries tagged with this tag.",
        "apihelp-query+logevents-param-limit": "How many total event entries to return.",
-       "apihelp-query+logevents-example-simple": "List recent log events",
+       "apihelp-query+logevents-example-simple": "List recent log events.",
 
-       "apihelp-query+pagepropnames-description": "List all page prop names in use on the wiki.",
+       "apihelp-query+pagepropnames-description": "List all page property names in use on the wiki.",
        "apihelp-query+pagepropnames-param-limit": "The maximum number of names to return.",
-       "apihelp-query+pagepropnames-example-simple": "Get first 10 prop names",
+       "apihelp-query+pagepropnames-example-simple": "Get first 10 property names.",
 
        "apihelp-query+pageprops-description": "Get various properties defined in the page content.",
        "apihelp-query+pageprops-param-prop": "Only list these props. Useful for checking whether a certain page uses a certain page prop.",
-       "apihelp-query+pageprops-example-simple": "Get properties for [[:Category:Foo]]",
+       "apihelp-query+pageprops-example-simple": "Get properties for <kbd>Category:Foo</kbd>.",
 
-       "apihelp-query+pageswithprop-description": "List all pages using a given page prop.",
+       "apihelp-query+pageswithprop-description": "List all pages using a given page property.",
        "apihelp-query+pageswithprop-param-propname": "Page prop for which to enumerate pages.",
        "apihelp-query+pageswithprop-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID.\n;title:Adds the title and namespace ID of the page.\n;value:Adds the value of the page prop.",
        "apihelp-query+pageswithprop-param-limit": "The maximum number of pages to return.",
        "apihelp-query+pageswithprop-param-dir": "In which direction to sort.",
-       "apihelp-query+pageswithprop-example-simple": "List the first 10 pages using &#123;&#123;DISPLAYTITLE:&#125;&#125;",
-       "apihelp-query+pageswithprop-example-generator": "Get page info about first 10 pages using _&#95;NOTOC_&#95;",
+       "apihelp-query+pageswithprop-example-simple": "List the first 10 pages using <code>&#123;&#123;DISPLAYTITLE:&#125;&#125;</code>.",
+       "apihelp-query+pageswithprop-example-generator": "Get page info about first 10 pages using <code>_&#95;NOTOC_&#95;</code>.",
 
        "apihelp-query+prefixsearch-description": "Perform a prefix search for page titles.",
        "apihelp-query+prefixsearch-param-search": "Search string.",
        "apihelp-query+prefixsearch-param-namespace": "Namespaces to search.",
        "apihelp-query+prefixsearch-param-limit": "Maximum number of results to return.",
        "apihelp-query+prefixsearch-param-offset": "Number of results to skip.",
-       "apihelp-query+prefixsearch-example-simple": "Search for page titles beginning with \"meaning\"",
-
+       "apihelp-query+prefixsearch-example-simple": "Search for page titles beginning with <kbd>meaning</kbd>.",
        "apihelp-query+protectedtitles-description": "List all titles protected from creation.",
        "apihelp-query+protectedtitles-param-namespace": "Only list titles in these namespaces.",
        "apihelp-query+protectedtitles-param-level": "Only list titles with these protection levels.",
        "apihelp-query+protectedtitles-param-start": "Start listing at this protection timestamp.",
        "apihelp-query+protectedtitles-param-end": "Stop listing at this protection timestamp.",
        "apihelp-query+protectedtitles-param-prop": "Which properties to get:\n;timestamp:Adds the timestamp of when protection was added.\n;user:Adds the user that added the protection.\n;userid:Adds the user ID that added the protection.\n;comment:Adds the comment for the protection.\n;parsedcomment:Adds the parsed comment for the protection.\n;expiry:Adds the timestamp of when the protection will be lifted.\n;level:Adds the protection level.",
-       "apihelp-query+protectedtitles-example-simple": "List protected titles",
-       "apihelp-query+protectedtitles-example-generator": "Find links to protected titles in the main namespace",
+       "apihelp-query+protectedtitles-example-simple": "List protected titles.",
+       "apihelp-query+protectedtitles-example-generator": "Find links to protected titles in the main namespace.",
 
        "apihelp-query+querypage-description": "Get a list provided by a QueryPage-based special page.",
        "apihelp-query+querypage-param-page": "The name of the special page. Note, this is case sensitive.",
        "apihelp-query+querypage-param-limit": "Number of results to return.",
        "apihelp-query+querypage-example-ancientpages": "Return results from [[Special:Ancientpages]].",
 
-       "apihelp-query+random-description": "Get a set of random pages.\n\nPages are listed in a fixed sequence, only the starting point is random. This means that if, for example, \"Main Page\" is the first random page on your list, \"List of fictional monkeys\" will *always* be second, \"List of people on stamps of Vanuatu\" third, etc.\n\nIf the number of pages in the namespace is lower than $1limit, you will get fewer pages. You will not get the same page twice.",
+       "apihelp-query+random-description": "Get a set of random pages.\n\nPages are listed in a fixed sequence, only the starting point is random. This means that if, for example, <samp>Main Page</samp> is the first random page in the list, <samp>List of fictional monkeys</samp> will <em>always</em> be second, <samp>List of people on stamps of Vanuatu</samp> third, etc.\n\nIf the number of pages in the namespace is lower than <var>$1limit</var>, fewer pages will be returned. The same page will not be returned twice.",
        "apihelp-query+random-param-namespace": "Return pages in these namespaces only.",
        "apihelp-query+random-param-limit": "Limit how many random pages will be returned.",
        "apihelp-query+random-param-redirect": "Load a random redirect instead of a random page.",
-       "apihelp-query+random-example-simple": "Return two random pages from the main namespace",
-       "apihelp-query+random-example-generator": "Return page info about two random pages from the main namespace",
+       "apihelp-query+random-example-simple": "Return two random pages from the main namespace.",
+       "apihelp-query+random-example-generator": "Return page info about two random pages from the main namespace.",
 
        "apihelp-query+recentchanges-description": "Enumerate recent changes.",
        "apihelp-query+recentchanges-param-start": "The timestamp to start enumerating from.",
        "apihelp-query+recentchanges-param-excludeuser": "Don't list changes by this user.",
        "apihelp-query+recentchanges-param-tag": "Only list changes tagged with this tag.",
        "apihelp-query+recentchanges-param-prop": "Include additional pieces of information:\n;user:Adds the user responsible for the edit and tags if they are an IP.\n;userid:Adds the user ID responsible for the edit.\n;comment:Adds the comment for the edit.\n;parsedcomment:Adds the parsed comment for the edit.\n;flags:Adds flags for the edit.\n;timestamp:Adds timestamp of the edit.\n;title:Adds the page title of the edit.\n;ids:Adds the page ID, recent changes ID and the new and old revision ID.\n;sizes:Adds the new and old page length in bytes.\n;redirect:Tags edit if page is a redirect.\n;patrolled:Tags patrollable edits as being patrolled or unpatrolled.\n;loginfo:Adds log information (log ID, log type, etc) to log entries.\n;tags:Lists tags for the entry.\n;sha1:Adds the content checksum for entries associated with a revision.",
-       "apihelp-query+recentchanges-param-token": "Use [[Special:ApiHelp/query+tokens|action=query&meta=tokens]] instead.",
+       "apihelp-query+recentchanges-param-token": "Use <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> instead.",
        "apihelp-query+recentchanges-param-show": "Show only items that meet these criteria. For example, to see only minor edits done by logged-in users, set $1show=minor|!anon.",
        "apihelp-query+recentchanges-param-limit": "How many total changes to return.",
        "apihelp-query+recentchanges-param-type": "Which types of changes to show.",
        "apihelp-query+recentchanges-param-toponly": "Only list changes which are the latest revision.",
-       "apihelp-query+recentchanges-example-simple": "List recent changes",
-       "apihelp-query+recentchanges-example-generator": "Get page info about recent unpatrolled changes",
+       "apihelp-query+recentchanges-example-simple": "List recent changes.",
+       "apihelp-query+recentchanges-example-generator": "Get page info about recent unpatrolled changes.",
 
        "apihelp-query+redirects-description": "Returns all redirects to the given pages.",
        "apihelp-query+redirects-param-prop": "Which properties to get:\n;pageid:Page ID of each redirect.\n;title:Title of each redirect.\n;fragment:Fragment of each redirect, if any.",
        "apihelp-query+redirects-param-namespace": "Only include pages in these namespaces.",
        "apihelp-query+redirects-param-limit": "How many redirects to return.",
        "apihelp-query+redirects-param-show": "Show only items that meet these criteria:\n;fragment:Only show redirects with a fragment.\n;!fragment:Only show redirects without a fragment.",
-       "apihelp-query+redirects-example-simple": "Get a list of redirects to the [[Main Page]]",
-       "apihelp-query+redirects-example-generator": "Get information about all redirects to the [[Main Page]]",
+       "apihelp-query+redirects-example-simple": "Get a list of redirects to the [[Main Page]].",
+       "apihelp-query+redirects-example-generator": "Get information about all redirects to the [[Main Page]].",
 
        "apihelp-query+revisions-description": "Get revision information.\n\nMay be used in several ways:\n# Get data about a set of pages (last revision), by setting titles or pageids.\n# Get revisions for one given page, by using titles or pageids with start, end, or limit.\n# Get data about a set of revisions by setting their IDs with revids.",
        "apihelp-query+revisions-paraminfo-singlepageonly": "May only be used with a single page (mode #2).",
        "apihelp-query+revisions-param-excludeuser": "Exclude revisions made by user.",
        "apihelp-query+revisions-param-tag": "Only list revisions tagged with this tag.",
        "apihelp-query+revisions-param-token": "Which tokens to obtain for each revision.",
-       "apihelp-query+revisions-example-content": "Get data with content for the last revision of titles \"API\" and \"Main Page\"",
-       "apihelp-query+revisions-example-last5": "Get last 5 revisions of the \"Main Page\"",
-       "apihelp-query+revisions-example-first5": "Get first 5 revisions of the \"Main Page\"",
-       "apihelp-query+revisions-example-first5-after": "Get first 5 revisions of the \"Main Page\" made after 2006-05-01",
-       "apihelp-query+revisions-example-first5-not-localhost": "Get first 5 revisions of the \"Main Page\" that were not made by anonymous user \"127.0.0.1\"",
-       "apihelp-query+revisions-example-first5-user": "Get first 5 revisions of the \"Main Page\" that were made by the user \"MediaWiki default\"",
-
+       "apihelp-query+revisions-example-content": "Get data with content for the last revision of titles <kbd>API</kbd> and <kbd>Main Page</kbd>.",
+       "apihelp-query+revisions-example-last5": "Get last 5 revisions of the <kbd>Main Page</kbd>.",
+       "apihelp-query+revisions-example-first5": "Get first 5 revisions of the <kbd>Main Page</kbd>.",
+       "apihelp-query+revisions-example-first5-after": "Get first 5 revisions of the <kbd>Main Page</kbd> made after 2006-05-01.",
+       "apihelp-query+revisions-example-first5-not-localhost": "Get first 5 revisions of the <kbd>Main Page</kbd> that were not made by anonymous user <kbd>127.0.0.1</kbd>.",
+       "apihelp-query+revisions-example-first5-user": "Get first 5 revisions of the <kbd>Main Page</kbd> that were made by the user <kbd>MediaWiki default</kbd>.",
        "apihelp-query+revisions+base-param-prop": "Which properties to get for each revision:\n;ids:The ID of the revision.\n;flags:Revision flags (minor).\n;timestamp:The timestamp of the revision.\n;user:User that made the revision.\n;userid:User ID of the revision creator.\n;size:Length (bytes) of the revision.\n;sha1:SHA-1 (base 16) of the revision.\n;contentmodel:Content model ID of the revision.\n;comment:Comment by the user for the revision.\n;parsedcomment:Parsed comment by the user for the revision.\n;content:Text of the revision.\n;tags:Tags for the revision.",
        "apihelp-query+revisions+base-param-limit": "Limit how many revisions will be returned.",
        "apihelp-query+revisions+base-param-expandtemplates": "Expand templates in revision content (requires $1prop=content).",
        "apihelp-query+revisions+base-param-generatexml": "Generate XML parse tree for revision content (requires $1prop=content).",
        "apihelp-query+revisions+base-param-parse": "Parse revision content (requires $1prop=content). For performance reasons, if this option is used, $1limit is enforced to 1.",
        "apihelp-query+revisions+base-param-section": "Only retrieve the content of this section number.",
-       "apihelp-query+revisions+base-param-diffto": "Revision ID to diff each revision to. Use \"prev\", \"next\" and \"cur\" for the previous, next and current revision respectively.",
-       "apihelp-query+revisions+base-param-difftotext": "Text to diff each revision to. Only diffs a limited number of revisions. Overrides $1diffto. If $1section is set, only that section will be diffed against this text",
-       "apihelp-query+revisions+base-param-contentformat": "Serialization format used for $1difftotext and expected for output of content.",
+       "apihelp-query+revisions+base-param-diffto": "Revision ID to diff each revision to. Use <kbd>prev</kbd>, <kbd>next</kbd> and <kbd>cur</kbd> for the previous, next and current revision respectively.",
+       "apihelp-query+revisions+base-param-difftotext": "Text to diff each revision to. Only diffs a limited number of revisions. Overrides <var>$1diffto</var>. If <var>$1section</var> is set, only that section will be diffed against this text",
+       "apihelp-query+revisions+base-param-contentformat": "Serialization format used for <var>$1difftotext</var> and expected for output of content.",
 
        "apihelp-query+search-description": "Perform a full text search.",
        "apihelp-query+search-param-search": "Search for all page titles (or content) that have this value.",
        "apihelp-query+search-param-limit": "How many total pages to return.",
        "apihelp-query+search-param-interwiki": "Include interwiki results in the search, if available.",
        "apihelp-query+search-param-backend": "Which search backend to use, if not the default.",
-       "apihelp-query+search-example-simple": "Search for \"meaning\"",
-       "apihelp-query+search-example-text": "Search texts for \"meaning\"",
-       "apihelp-query+search-example-generator": "Ger page info about the pages returned for a search for \"meaning\"",
+       "apihelp-query+search-example-simple": "Search for <kbd>meaning</kbd>.",
+       "apihelp-query+search-example-text": "Search texts for <kbd>meaning</kbd>.",
+       "apihelp-query+search-example-generator": "Ger page info about the pages returned for a search for <kbd>meaning</kbd>.",
 
        "apihelp-query+siteinfo-description": "Return general information about the site.",
-       "apihelp-query+siteinfo-param-prop": "Which information to get:\n;general:Overall system information.\n;namespaces:List of registered namespaces and their canonical names.\n;namespacealiases:List of registered namespace aliases.\n;specialpagealiases:List of special page aliases.\n;magicwords:List of magic words and their aliases.\n;statistics:Returns site statistics.\n;interwikimap:Returns interwiki map (optionally filtered, (optionally localised by using $1inlanguagecode)).\n;dbrepllag:Returns database server with the highest replication lag.\n;usergroups:Returns user groups and the associated permissions.\n;extensions:Returns extensions installed on the wiki.\n;fileextensions:Returns list of file extensions allowed to be uploaded.\n;rightsinfo:Returns wiki rights (license) information if available.\n;restrictions:Returns information on available restriction (protection) types.\n;languages:Returns a list of languages MediaWiki supports (optionally localised by using $1inlanguagecode).\n;skins:Returns a list of all enabled skins (optionally localised by using $1inlanguagecode, otherwise in content language).\n;extensiontags:Returns a list of parser extension tags.\n;functionhooks:Returns a list of parser function hooks.\n;showhooks:Returns a list of all subscribed hooks (contents of $wgHooks).\n;variables:Returns a list of variable IDs.\n;protocols:Returns a list of protocols that are allowed in external links.\n;defaultoptions:Returns the default values for user preferences.",
+       "apihelp-query+siteinfo-param-prop": "Which information to get:\n;general:Overall system information.\n;namespaces:List of registered namespaces and their canonical names.\n;namespacealiases:List of registered namespace aliases.\n;specialpagealiases:List of special page aliases.\n;magicwords:List of magic words and their aliases.\n;statistics:Returns site statistics.\n;interwikimap:Returns interwiki map (optionally filtered, optionally localised by using <var>$1inlanguagecode</var>).\n;dbrepllag:Returns database server with the highest replication lag.\n;usergroups:Returns user groups and the associated permissions.\n;extensions:Returns extensions installed on the wiki.\n;fileextensions:Returns list of file extensions allowed to be uploaded.\n;rightsinfo:Returns wiki rights (license) information if available.\n;restrictions:Returns information on available restriction (protection) types.\n;languages:Returns a list of languages MediaWiki supports (optionally localised by using <var>$1inlanguagecode</var>).\n;skins:Returns a list of all enabled skins (optionally localised by using <var>$1inlanguagecode</var>, otherwise in the content language).\n;extensiontags:Returns a list of parser extension tags.\n;functionhooks:Returns a list of parser function hooks.\n;showhooks:Returns a list of all subscribed hooks (contents of <var>[[mw:Manual:$wgHooks|$wgHooks]]</var>).\n;variables:Returns a list of variable IDs.\n;protocols:Returns a list of protocols that are allowed in external links.\n;defaultoptions:Returns the default values for user preferences.",
        "apihelp-query+siteinfo-param-filteriw": "Return only local or only nonlocal entries of the interwiki map.",
        "apihelp-query+siteinfo-param-showalldb": "List all database servers, not just the one lagging the most.",
        "apihelp-query+siteinfo-param-numberingroup": "Lists the number of users in user groups.",
        "apihelp-query+siteinfo-param-inlanguagecode": "Language code for localised language names (best effort) and skin names.",
-       "apihelp-query+siteinfo-example-simple": "Fetch site information",
-       "apihelp-query+siteinfo-example-interwiki": "Fetch a list of local interwiki prefixes",
-       "apihelp-query+siteinfo-example-replag": "Check the current replication lag",
+       "apihelp-query+siteinfo-example-simple": "Fetch site information.",
+       "apihelp-query+siteinfo-example-interwiki": "Fetch a list of local interwiki prefixes.",
+       "apihelp-query+siteinfo-example-replag": "Check the current replication lag.",
 
        "apihelp-query+stashimageinfo-description": "Returns file information for stashed files.",
        "apihelp-query+stashimageinfo-param-filekey": "Key that identifies a previous upload that was stashed temporarily.",
        "apihelp-query+stashimageinfo-param-sessionkey": "Alias for $1filekey, for backward compatibility.",
-       "apihelp-query+stashimageinfo-example-simple": "Returns information for a stashed file",
-       "apihelp-query+stashimageinfo-example-params": "Returns thumbnails for two stashed files",
+       "apihelp-query+stashimageinfo-example-simple": "Returns information for a stashed file.",
+       "apihelp-query+stashimageinfo-example-params": "Returns thumbnails for two stashed files.",
 
        "apihelp-query+tags-description": "List change tags.",
        "apihelp-query+tags-param-limit": "The maximum number of tags to list.",
        "apihelp-query+tags-param-prop": "Which properties to get:\n;name:Adds name of tag.\n;displayname:Adds system message for the tag.\n;description:Adds description of the tag.\n;hitcount:Adds the amount of revisions that have this tag.\n;defined:Indicate whether the tag is defined.",
-       "apihelp-query+tags-example-simple": "List available tags",
+       "apihelp-query+tags-example-simple": "List available tags.",
 
        "apihelp-query+templates-description": "Returns all pages transcluded on the given pages.",
        "apihelp-query+templates-param-namespace": "Show templates in this namespaces only.",
        "apihelp-query+templates-param-limit": "How many templates to return.",
        "apihelp-query+templates-param-templates": "Only list these templates. Useful for checking whether a certain page uses a certain template.",
        "apihelp-query+templates-param-dir": "The direction in which to list.",
-       "apihelp-query+templates-example-simple": "Get templates from the [[Main Page]]",
-       "apihelp-query+templates-example-generator": "Get information about the template pages in the [[Main Page]]",
-       "apihelp-query+templates-example-namespaces": "Get templates from the [[Main Page]] in the User and Template namespaces",
+       "apihelp-query+templates-example-simple": "Get the templates used on the page <kbd>Main Page</kbd>.",
+       "apihelp-query+templates-example-generator": "Get information about the template pages used on <kbd>Main Page</kbd>.",
+       "apihelp-query+templates-example-namespaces": "Get pages in the {{ns:user}} and {{ns:template}} namespaces that are transcluded on the page <kbd>Main Page</kbd>.",
 
        "apihelp-query+tokens-description": "Gets tokens for data-modifying actions.",
        "apihelp-query+tokens-param-type": "Types of token to request.",
-       "apihelp-query+tokens-example-simple": "Retrieve a csrf token (the default)",
-       "apihelp-query+tokens-example-types": "Retrieve a watch token and a patrol token",
+       "apihelp-query+tokens-example-simple": "Retrieve a csrf token (the default).",
+       "apihelp-query+tokens-example-types": "Retrieve a watch token and a patrol token.",
 
        "apihelp-query+transcludedin-description": "Find all pages that transclude the given pages.",
        "apihelp-query+transcludedin-param-prop": "Which properties to get:\n;pageid:Page ID of each page.\n;title:Title of each page.\n;redirect:Flag if the page is a redirect.",
        "apihelp-query+transcludedin-param-namespace": "Only include pages in these namespaces.",
        "apihelp-query+transcludedin-param-limit": "How many to return.",
        "apihelp-query+transcludedin-param-show": "Show only items that meet these criteria:\n;redirect:Only show redirects.\n;!redirect:Only show non-redirects.",
-       "apihelp-query+transcludedin-example-simple": "Get a list of pages transcluding the [[Main Page]]",
-       "apihelp-query+transcludedin-example-generator": "Get information about pages transcluding the [[Main Page]]",
+       "apihelp-query+transcludedin-example-simple": "Get a list of pages transcluding <kbd>Main Page</kbd>.",
+       "apihelp-query+transcludedin-example-generator": "Get information about pages transcluding <kbd>Main Page</kbd>.",
 
        "apihelp-query+usercontribs-description": "Get all edits by a user.",
        "apihelp-query+usercontribs-param-limit": "The maximum number of contributions to return.",
        "apihelp-query+usercontribs-param-userprefix": "Retrieve contributions for all users whose names begin with this value. Overrides $1user.",
        "apihelp-query+usercontribs-param-namespace": "Only list contributions in these namespaces.",
        "apihelp-query+usercontribs-param-prop": "Include additional pieces of information:\n;ids:Adds the page ID and revision ID.\n;title:Adds the title and namespace ID of the page.\n;timestamp:Adds the timestamp of the edit.\n;comment:Adds the comment of the edit.\n;parsedcomment:Adds the parsed comment of the edit.\n;size:Adds the new size of the edit.\n;sizediff:Adds the size delta of the edit against its parent.\n;flags:Adds flags of the edit.\n;patrolled:Tags patrolled edits.\n;tags:Lists tags for the edit.",
-       "apihelp-query+usercontribs-param-show": "Show only items that meet these criteria, e.g. non minor edits only: $2show=!minor.\n\nIf $2show=patrolled or $2show=!patrolled is set, revisions older than [https://www.mediawiki.org/wiki/Manual:$wgRCMaxAge $wgRCMaxAge] ($1 {{PLURAL:$1|second|seconds}}) won't be shown.",
+       "apihelp-query+usercontribs-param-show": "Show only items that meet these criteria, e.g. non minor edits only: <kbd>$2show=!minor</kbd>.\n\nIf <kbd>$2show=patrolled</kbd> or <kbd>$2show=!patrolled</kbd> is set, revisions older than <var>[[mw:Manual:$wgRCMaxAge|$wgRCMaxAge]]</var> ($1 {{PLURAL:$1|second|seconds}}) won't be shown.",
        "apihelp-query+usercontribs-param-tag": "Only list revisions tagged with this tag.",
        "apihelp-query+usercontribs-param-toponly": "Only list changes which are the latest revision.",
-       "apihelp-query+usercontribs-example-user": "Show contributions of [[User:Example]]",
-       "apihelp-query+usercontribs-example-ipprefix": "Show contributions from all IPs with prefix \"192.0.2.\"",
+       "apihelp-query+usercontribs-example-user": "Show contributions of user <kbd>Example</kbd>.",
+       "apihelp-query+usercontribs-example-ipprefix": "Show contributions from all IP addresses with prefix <kbd>192.0.2.</kbd>.",
 
        "apihelp-query+userinfo-description": "Get information about the current user.",
-       "apihelp-query+userinfo-param-prop": "Which pieces of information to include:\n;blockinfo:Tags if the current user is blocked, by whom, and for what reason.\n;hasmsg:Adds a tag \"message\" if the current user has pending messages.\n;groups:Lists all the groups the current user belongs to.\n;implicitgroups:Lists all the groups the current user is automatically a member of.\n;rights:Lists all the rights the current user has.\n;changeablegroups:Lists the groups the current user can add to and remove from.\n;options:Lists all preferences the current user has set.\n;preferencestoken:DEPRECATED! Get a token to change current user's preferences.\n;editcount:Adds the current user's edit count.\n;ratelimits:Lists all rate limits applying to the current user.\n;realname:Adds the user's real name.\n;email:Adds the user's email address and email authentication date.\n;acceptlang:Echoes the Accept-Language header sent by the client in a structured format.\n;registrationdate:Adds the user's registration date.\n;unreadcount:Adds the count of unread pages on the user's watchlist (maximum $1; returns \"$2\" if more).",
-       "apihelp-query+userinfo-example-simple": "Get information about the current user",
-       "apihelp-query+userinfo-example-data": "Get additional information about the current user",
+       "apihelp-query+userinfo-param-prop": "Which pieces of information to include:\n;blockinfo:Tags if the current user is blocked, by whom, and for what reason.\n;hasmsg:Adds a tag <samp>message</samp> if the current user has pending messages.\n;groups:Lists all the groups the current user belongs to.\n;implicitgroups:Lists all the groups the current user is automatically a member of.\n;rights:Lists all the rights the current user has.\n;changeablegroups:Lists the groups the current user can add to and remove from.\n;options:Lists all preferences the current user has set.\n;preferencestoken:<span class=\"apihelp-deprecated\">Deprecated.</span> Get a token to change current user's preferences.\n;editcount:Adds the current user's edit count.\n;ratelimits:Lists all rate limits applying to the current user.\n;realname:Adds the user's real name.\n;email:Adds the user's email address and email authentication date.\n;acceptlang:Echoes the <code>Accept-Language</code> header sent by the client in a structured format.\n;registrationdate:Adds the user's registration date.\n;unreadcount:Adds the count of unread pages on the user's watchlist (maximum $1; returns <samp>$2</samp> if more).",
+       "apihelp-query+userinfo-example-simple": "Get information about the current user.",
+       "apihelp-query+userinfo-example-data": "Get additional information about the current user.",
 
        "apihelp-query+users-description": "Get information about a list of users.",
        "apihelp-query+users-param-prop": "Which pieces of information to include:\n;blockinfo:Tags if the user is blocked, by whom, and for what reason.\n;groups:Lists all the groups each user belongs to.\n;implicitgroups:Lists all the groups a user is automatically a member of.\n;rights:Lists all the rights each user has.\n;editcount:Adds the user's edit count.\n;registration:Adds the user's registration timestamp.\n;emailable:Tags if the user can and wants to receive email through [[Special:Emailuser]].\n;gender:Tags the gender of the user. Returns \"male\", \"female\", or \"unknown\".",
        "apihelp-query+users-param-users": "A list of users to obtain information for.",
-       "apihelp-query+users-param-token": "Use [[Special:ApiHelp/query+tokens|action=query&meta=tokens]] instead.",
-       "apihelp-query+users-example-simple": "Return information for [[User:Example]]",
+       "apihelp-query+users-param-token": "Use <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> instead.",
+       "apihelp-query+users-example-simple": "Return information for user <kbd>Example</kbd>.",
 
-       "apihelp-query+watchlist-description": "Get recent changes to pages in the logged in user's watchlist.",
+       "apihelp-query+watchlist-description": "Get recent changes to pages in the current user's watchlist.",
        "apihelp-query+watchlist-param-allrev": "Include multiple revisions of the same page within given timeframe.",
        "apihelp-query+watchlist-param-start": "The timestamp to start enumerating from.",
        "apihelp-query+watchlist-param-end": "The timestamp to end enumerating.",
        "apihelp-query+watchlist-param-type": "Which types of changes to show:\n;edit:Regular page edits.\n;external:External changes.\n;new:Page creations.\n;log:Log entries.",
        "apihelp-query+watchlist-param-owner": "Used along with $1token to access a different user's watchlist.",
        "apihelp-query+watchlist-param-token": "A security token (available in the user's [[Special:Preferences#mw-prefsection-watchlist|preferences]]) to allow access to another user's watchlist.",
-       "apihelp-query+watchlist-example-simple": "List the top revision for recently changed pages on the current user's watchlist",
-       "apihelp-query+watchlist-example-props": "Fetch additional information about the top revision for recently changed pages on the current user's watchlist",
-       "apihelp-query+watchlist-example-allrev": "Fetch information about all recent changes to pages on the current user's watchlist",
-       "apihelp-query+watchlist-example-generator": "Fetch page info for recently changed pages on the current user's watchlist",
-       "apihelp-query+watchlist-example-generator-rev": "Fetch revision info for recent changes to pages on the current user's watchlist",
-       "apihelp-query+watchlist-example-wlowner": "List the top revision for recently changed pages on [[User:Example]]'s watchlist",
-
-       "apihelp-query+watchlistraw-description": "Get all pages on the logged in user's watchlist.",
+       "apihelp-query+watchlist-example-simple": "List the top revision for recently changed pages on the current user's watchlist.",
+       "apihelp-query+watchlist-example-props": "Fetch additional information about the top revision for recently changed pages on the current user's watchlist.",
+       "apihelp-query+watchlist-example-allrev": "Fetch information about all recent changes to pages on the current user's watchlist.",
+       "apihelp-query+watchlist-example-generator": "Fetch page info for recently changed pages on the current user's watchlist.",
+       "apihelp-query+watchlist-example-generator-rev": "Fetch revision info for recent changes to pages on the current user's watchlist.",
+       "apihelp-query+watchlist-example-wlowner": "List the top revision for recently changed pages on the watchlist of user <kbd>Example</kbd>.",
+
+       "apihelp-query+watchlistraw-description": "Get all pages on the current user's watchlist.",
        "apihelp-query+watchlistraw-param-namespace": "Only list pages in the given namespaces.",
        "apihelp-query+watchlistraw-param-limit": "How many total results to return per request.",
        "apihelp-query+watchlistraw-param-prop": "Which additional properties to get:\n;changed:Adds timestamp of when the user was last notified about the edit.",
        "apihelp-query+watchlistraw-param-show": "Only list items that meet these criteria.",
        "apihelp-query+watchlistraw-param-owner": "Used along with $1token to access a different user's watchlist.",
        "apihelp-query+watchlistraw-param-token": "A security token (available in the user's [[Special:Preferences#mw-prefsection-watchlist|preferences]]) to allow access to another user's watchlist.",
-       "apihelp-query+watchlistraw-example-simple": "List pages on the current user's watchlist",
-       "apihelp-query+watchlistraw-example-generator": "Fetch page info for pages on the current user's watchlist",
+       "apihelp-query+watchlistraw-example-simple": "List pages on the current user's watchlist.",
+       "apihelp-query+watchlistraw-example-generator": "Fetch page info for pages on the current user's watchlist.",
 
        "apihelp-revisiondelete-description": "Delete and undelete revisions.",
        "apihelp-revisiondelete-param-type": "Type of revision deletion being performed.",
        "apihelp-revisiondelete-param-show": "What to unhide for each revision.",
        "apihelp-revisiondelete-param-suppress": "Whether to suppress data from administrators as well as others.",
        "apihelp-revisiondelete-param-reason": "Reason for the deletion or undeletion.",
-       "apihelp-revisiondelete-example-revision": "Hide content for revision 12345 on the Main Page",
-       "apihelp-revisiondelete-example-log": "Hide all data on log entry 67890 with the reason \"BLP violation\"",
+       "apihelp-revisiondelete-example-revision": "Hide content for revision <kbd>12345</kbd> on the page <kbd>Main Page</kbd>.",
+       "apihelp-revisiondelete-example-log": "Hide all data on log entry <kbd>67890</kbd> with the reason <kbd>BLP violation</kbd>.",
 
        "apihelp-rollback-description": "Undo the last edit to the page.\n\nIf the last user who edited the page made multiple edits in a row, they will all be rolled back.",
-       "apihelp-rollback-param-title": "Title of the page you want to roll back. Cannot be used together with $1pageid.",
-       "apihelp-rollback-param-pageid": "Page ID of the page you want to roll back. Cannot be used together with $1title.",
+       "apihelp-rollback-param-title": "Title of the page to roll back. Cannot be used together with <var>$1pageid</var>.",
+       "apihelp-rollback-param-pageid": "Page ID of the page to roll back. Cannot be used together with <var>$1title</var>.",
        "apihelp-rollback-param-user": "Name of the user whose edits are to be rolled back.",
        "apihelp-rollback-param-summary": "Custom edit summary. If empty, default summary will be used.",
        "apihelp-rollback-param-markbot": "Mark the reverted edits and the revert as bot edits.",
-       "apihelp-rollback-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
-       "apihelp-rollback-example-simple": "Roll back the last edits to [[Main Page]] by user Example",
-       "apihelp-rollback-example-summary": "Roll back the last edits to [[Main Page]] by IP user 192.0.2.5 with summary \"Reverting vandalism\", and mark those edits and the revert as \"bot\"",
+       "apihelp-rollback-param-watchlist": "Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.",
+       "apihelp-rollback-example-simple": "Roll back the last edits to page <kbd>Main Page</kbd> by user <kbd>Example</kbd>.",
+       "apihelp-rollback-example-summary": "Roll back the last edits to page <kbd>Main Page</kbd> by IP user <kbd>192.0.2.5</kbd> with summary <kbd>Reverting vandalism</kbd>, and mark those edits and the revert as bot edits.",
 
        "apihelp-rsd-description": "Export an RSD (Really Simple Discovery) schema.",
-       "apihelp-rsd-example-simple": "Export the RSD schema",
+       "apihelp-rsd-example-simple": "Export the RSD schema.",
 
        "apihelp-setnotificationtimestamp-description": "Update the notification timestamp for watched pages.\n\nThis affects the highlighting of changed pages in the watchlist and history, and the sending of email when the \"Email me when a page on my watchlist is changed\" preference is enabled.",
        "apihelp-setnotificationtimestamp-param-entirewatchlist": "Work on all watched pages.",
        "apihelp-setnotificationtimestamp-param-timestamp": "Timestamp to which to set the notification timestamp.",
        "apihelp-setnotificationtimestamp-param-torevid": "Revision to set the notification timestamp to (one page only).",
        "apihelp-setnotificationtimestamp-param-newerthanrevid": "Revision to set the notification timestamp newer than (one page only).",
-       "apihelp-setnotificationtimestamp-example-all": "Reset the notification status for the entire watchlist",
-       "apihelp-setnotificationtimestamp-example-page": "Reset the notification status for \"Main page\"",
-       "apihelp-setnotificationtimestamp-example-pagetimestamp": "Set the notification timestamp for \"Main page\" so all edits since 1 January 2012 are unviewed",
-       "apihelp-setnotificationtimestamp-example-allpages": "Reset the notification status for pages in the User namespace",
+       "apihelp-setnotificationtimestamp-example-all": "Reset the notification status for the entire watchlist.",
+       "apihelp-setnotificationtimestamp-example-page": "Reset the notification status for <kbd>Main page</kbd>.",
+       "apihelp-setnotificationtimestamp-example-pagetimestamp": "Set the notification timestamp for <kbd>Main page</kbd> so all edits since 1 January 2012 are unviewed.",
+       "apihelp-setnotificationtimestamp-example-allpages": "Reset the notification status for pages in the <kbd>{{ns:user}}</kbd> namespace.",
 
        "apihelp-tokens-description": "Get tokens for data-modifying actions.\n\nThis module is deprecated in favor of [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
        "apihelp-tokens-param-type": "Types of token to request.",
        "apihelp-tokens-example-emailmove": "Retrieve an email token and a move token.",
 
        "apihelp-unblock-description": "Unblock a user.",
-       "apihelp-unblock-param-id": "ID of the block to unblock (obtained through list=blocks). Cannot be used together with $1user.",
-       "apihelp-unblock-param-user": "Username, IP address or IP range to unblock. Cannot be used together with $1id.",
+       "apihelp-unblock-param-id": "ID of the block to unblock (obtained through <kbd>list=blocks</kbd>). Cannot be used together with <var>$1user</var>.",
+       "apihelp-unblock-param-user": "Username, IP address or IP range to unblock. Cannot be used together with <var>$1id</var>.",
        "apihelp-unblock-param-reason": "Reason for unblock.",
-       "apihelp-unblock-example-id": "Unblock block ID #105",
-       "apihelp-unblock-example-user": "Unblock user Bob with reason \"Sorry Bob\"",
+       "apihelp-unblock-example-id": "Unblock block ID #<kbd>105</kbd>.",
+       "apihelp-unblock-example-user": "Unblock user <kbd>Bob</kbd> with reason <kbd>Sorry Bob</kbd>.",
 
        "apihelp-undelete-description": "Restore revisions of a deleted page.\n\nA list of deleted revisions (including timestamps) can be retrieved through [[Special:ApiHelp/query+deletedrevs|list=deletedrevs]], and a list of deleted file IDs can be retrieved through [[Special:ApiHelp/query+filearchive|list=filearchive]].",
        "apihelp-undelete-param-title": "Title of the page to restore.",
        "apihelp-undelete-param-reason": "Reason for restoring.",
-       "apihelp-undelete-param-timestamps": "Timestamps of the revisions to restore. If both $1timestamps and $1fileids are empty, all will be restored.",
-       "apihelp-undelete-param-fileids": "IDs of the file revisions to restore. If both $1timestamps and $1fileids are empty, all will be restored.",
-       "apihelp-undelete-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
-       "apihelp-undelete-example-page": "Undelete [[Main Page]]",
-       "apihelp-undelete-example-revisions": "Undelete two revisions of [[Main Page]]",
+       "apihelp-undelete-param-timestamps": "Timestamps of the revisions to restore. If both <var>$1timestamps</var> and <var>$1fileids</var> are empty, all will be restored.",
+       "apihelp-undelete-param-fileids": "IDs of the file revisions to restore. If both <var>$1timestamps</var> and <var>$1fileids</var> are empty, all will be restored.",
+       "apihelp-undelete-param-watchlist": "Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.",
+       "apihelp-undelete-example-page": "Undelete page <kbd>Main Page</kbd>.",
+       "apihelp-undelete-example-revisions": "Undelete two revisions of page <kbd>Main Page</kbd>.",
 
-       "apihelp-upload-description": "Upload a file, or get the status of pending uploads.\n\nSeveral methods are available:\n* Upload file contents directly, using the \"$1file\" parameter.\n* Upload the file in pieces, using the \"$1filesize\", \"$1chunk\" and \"$1offset\" parameters.* Have the MediaWiki server fetch a file from a URL, using the \"$1url\" parameter.\n* Complete an earlier upload that failed due to warnings, using the \"$1filekey\" parameter.\nNote that the HTTP POST must be done as a file upload (i.e. using multipart/form-data) when sending the \"$1file\".",
+       "apihelp-upload-description": "Upload a file, or get the status of pending uploads.\n\nSeveral methods are available:\n* Upload file contents directly, using the <var>$1file</var> parameter.\n* Upload the file in pieces, using the <var>$1filesize</var>, <var>$1chunk</var>, and <var>$1offset</var> parameters.* Have the MediaWiki server fetch a file from a URL, using the <var>$1url</var> parameter.\n* Complete an earlier upload that failed due to warnings, using the <var>$1filekey</var> parameter.\nNote that the HTTP POST must be done as a file upload (i.e. using <code>multipart/form-data</code>) when sending the <var>$1file</var>.",
        "apihelp-upload-param-filename": "Target filename.",
-       "apihelp-upload-param-comment": "Upload comment. Also used as the initial page text for new files if \"$1text\" is not specified.",
+       "apihelp-upload-param-comment": "Upload comment. Also used as the initial page text for new files if <var>$1text</var> is not specified.",
        "apihelp-upload-param-text": "Initial page text for new files.",
        "apihelp-upload-param-watch": "Watch the page.",
-       "apihelp-upload-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
+       "apihelp-upload-param-watchlist": "Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.",
        "apihelp-upload-param-ignorewarnings": "Ignore any warnings.",
        "apihelp-upload-param-file": "File contents.",
        "apihelp-upload-param-url": "URL to fetch the file from.",
        "apihelp-upload-param-leavemessage": "If asyncdownload is used, leave a message on the user talk page if finished.",
        "apihelp-upload-param-statuskey": "Fetch the upload status for this file key (upload by URL).",
        "apihelp-upload-param-checkstatus": "Only fetch the upload status for the given file key.",
-       "apihelp-upload-example-url": "Upload from a URL",
-       "apihelp-upload-example-filekey": "Complete an upload that failed due to warnings",
+       "apihelp-upload-example-url": "Upload from a URL.",
+       "apihelp-upload-example-filekey": "Complete an upload that failed due to warnings.",
 
        "apihelp-userrights-description": "Change a user's group membership.",
        "apihelp-userrights-param-user": "User name.",
        "apihelp-userrights-param-add": "Add the user to these groups.",
        "apihelp-userrights-param-remove": "Remove the user from these groups.",
        "apihelp-userrights-param-reason": "Reason for the change.",
-       "apihelp-userrights-example-user": "Add user FooBot to group \"bot\", and remove from groups \"sysop\" and \"bureaucrat\"",
-       "apihelp-userrights-example-userid": "Add the user with ID 123 to group \"bot\", and remove from groups \"sysop\" and \"bureaucrat\"",
+       "apihelp-userrights-example-user": "Add user <kbd>FooBot</kbd> to group <kbd>bot</kbd>, and remove from groups <kbd>sysop</kbd> and <kbd>bureaucrat</kbd>.",
+       "apihelp-userrights-example-userid": "Add the user with ID <kbd>123</kbd> to group <kbd>bot</kbd>, and remove from groups <kbd>sysop</kbd> and <kbd>bureaucrat</kbd>.",
 
        "apihelp-watch-description": "Add or remove pages from the current user's watchlist.",
-       "apihelp-watch-param-title": "The page to (un)watch. Use $1titles instead.",
+       "apihelp-watch-param-title": "The page to (un)watch. Use <var>$1titles</var> instead.",
        "apihelp-watch-param-unwatch": "If set the page will be unwatched rather than watched.",
-       "apihelp-watch-example-watch": "Watch the page \"Main Page\"",
-       "apihelp-watch-example-unwatch": "Unwatch the page \"Main Page\"",
-       "apihelp-watch-example-generator": "Watch the first few pages in the main namespace",
-
-       "apihelp-format-example-generic": "Format the query result in the $1 format",
-       "apihelp-dbg-description": "Output data in PHP's var_export() format.",
-       "apihelp-dbgfm-description": "Output data in PHP's var_export() format (pretty-print in HTML).",
-       "apihelp-dump-description": "Output data in PHP's var_dump() format.",
-       "apihelp-dumpfm-description": "Output data in PHP's var_dump() format (pretty-print in HTML).",
+       "apihelp-watch-example-watch": "Watch the page <kbd>Main Page</kbd>.",
+       "apihelp-watch-example-unwatch": "Unwatch the page <kbd>Main Page</kbd>.",
+       "apihelp-watch-example-generator": "Watch the first few pages in the main namespace.",
+
+       "apihelp-format-example-generic": "Format the query result in the $1 format.",
+       "apihelp-dbg-description": "Output data in PHP's <code>var_export()</code> format.",
+       "apihelp-dbgfm-description": "Output data in PHP's <code>var_export()</code> format (pretty-print in HTML).",
+       "apihelp-dump-description": "Output data in PHP's <code>var_dump()</code> format.",
+       "apihelp-dumpfm-description": "Output data in PHP's <code>var_dump()</code> format (pretty-print in HTML).",
        "apihelp-json-description": "Output data in JSON format.",
        "apihelp-json-param-callback": "If specified, wraps the output into a given function call. For safety, all user-specific data will be restricted.",
        "apihelp-json-param-utf8": "If specified, encodes most (but not all) non-ASCII characters as UTF-8 instead of replacing them with hexadecimal escape sequences.",
        "apihelp-php-description": "Output data in serialized PHP format.",
        "apihelp-phpfm-description": "Output data in serialized PHP format (pretty-print in HTML).",
        "apihelp-rawfm-description": "Output data with the debugging elements in JSON format (pretty-print in HTML).",
-       "apihelp-txt-description": "Output data in PHP's print_r() format.",
-       "apihelp-txtfm-description": "Output data in PHP's print_r() format (pretty-print in HTML).",
+       "apihelp-txt-description": "Output data in PHP's <code>print_r()</code> format.",
+       "apihelp-txtfm-description": "Output data in PHP's <code>print_r()</code> format (pretty-print in HTML).",
        "apihelp-wddx-description": "Output data in WDDX format.",
        "apihelp-wddxfm-description": "Output data in WDDX format (pretty-print in HTML).",
        "apihelp-xml-description": "Output data in XML format.",
-       "apihelp-xml-param-xslt": "If specified, adds &lt;xslt&gt; as stylesheet. This should be a wiki page in the MediaWiki namespace whose page name ends with \".xsl\".",
+       "apihelp-xml-param-xslt": "If specified, adds the named page as an XSL stylesheet. The value must be a title in the {{ns:mediawiki}} namespace ending in <code>.xsl</code>.",
        "apihelp-xml-param-includexmlnamespace": "If specified, adds an XML namespace.",
        "apihelp-xmlfm-description": "Output data in XML format (pretty-print in HTML).",
        "apihelp-yaml-description": "Output data in YAML format.",
        "apihelp-yamlfm-description": "Output data in YAML format (pretty-print in HTML).",
 
        "api-format-title": "MediaWiki API result",
-       "api-format-prettyprint-header": "You are looking at the HTML representation of the $1 format. HTML is good for debugging, but is unsuitable for application use.\n\nSpecify the format parameter to change the output format. To see the non-HTML representation of the $1 format, set format=$2.\n\nSee the [https://www.mediawiki.org/wiki/API complete documentation], or [[Special:ApiHelp/main|API help]] for more information.",
+       "api-format-prettyprint-header": "This is the HTML representation of the $1 format. HTML is good for debugging, but is unsuitable for application use.\n\nSpecify the <var>format</var> parameter to change the output format. To see the non-HTML representation of the $1 format, set <kbd>format=$2</kbd>.\n\nSee the [[mw:API|complete documentation]], or the [[Special:ApiHelp/main|API help]] for more information.",
 
        "api-orm-param-props": "Fields to query.",
        "api-orm-param-limit": "Max amount of rows to return.",
        "api-pageset-param-titles": "A list of titles to work on.",
        "api-pageset-param-pageids": "A list of page IDs to work on.",
        "api-pageset-param-revids": "A list of revision IDs to work on.",
-       "api-pageset-param-generator": "Get the list of pages to work on by executing the specified query module.\n\n'''NOTE:''' generator parameter names must be prefixed with a \"g\", see examples.",
-       "api-pageset-param-redirects-generator": "Automatically resolve redirects in $1titles, $1pageids, and $1revids, and in pages returned by $1generator.",
-       "api-pageset-param-redirects-nogenerator": "Automatically resolve redirects in $1titles, $1pageids, and $1revids.",
+       "api-pageset-param-generator": "Get the list of pages to work on by executing the specified query module.\n\n<strong>Note:</strong> Generator parameter names must be prefixed with a \"g\", see examples.",
+       "api-pageset-param-redirects-generator": "Automatically resolve redirects in <var>$1titles</var>, <var>$1pageids</var>, and <var>$1revids</var>, and in pages returned by <var>$1generator</var>.",
+       "api-pageset-param-redirects-nogenerator": "Automatically resolve redirects in <var>$1titles</var>, <var>$1pageids</var>, and <var>$1revids</var>.",
        "api-pageset-param-converttitles": "Convert titles to other variants if necessary. Only works if the wiki's content language supports variant conversion. Languages that support variant conversion include $1.",
 
        "api-help-title": "MediaWiki API help",
        "api-help-parameters": "{{PLURAL:$1|Parameter|Parameters}}:",
        "api-help-param-deprecated": "Deprecated.",
        "api-help-param-required": "This parameter is required.",
-       "api-help-param-list": "{{PLURAL:$1|1=One value|2=Values (separate with \"{{!}}\")}}: $2",
+       "api-help-param-list": "{{PLURAL:$1|1=One value|2=Values (separate with <kbd>{{!}}</kbd>)}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Must be empty|Can be empty, or $2}}",
        "api-help-param-limit": "No more than $1 allowed.",
        "api-help-param-limit2": "No more than $1 ($2 for bots) allowed.",
        "api-help-param-integer-max": "The {{PLURAL:$1|1=value|2=values}} must be no greater than $3.",
        "api-help-param-integer-minmax": "The {{PLURAL:$1|1=value|2=values}} must be between $2 and $3.",
        "api-help-param-upload": "Must be posted as a file upload using multipart/form-data.",
-       "api-help-param-multi-separate": "Separate values with \"|\".",
+       "api-help-param-multi-separate": "Separate values with <kbd>|</kbd>.",
        "api-help-param-multi-max": "Maximum number of values is {{PLURAL:$1|$1}} ({{PLURAL:$2|$2}} for bots).",
        "api-help-param-default": "Default: $1",
        "api-help-param-default-empty": "Default: <span class=\"apihelp-empty\">(empty)</span>",
        "api-help-param-token": "A \"$1\" token retrieved from [[Special:ApiHelp/query+tokens|action=query&meta=tokens]]",
        "api-help-param-token-webui": "For compatibility, the token used in the web UI is also accepted.",
-       "api-help-param-disabled-in-miser-mode": "Disabled due to [https://www.mediawiki.org/wiki/Manual:$wgMiserMode miser mode].",
-       "api-help-param-limited-in-miser-mode": "'''NOTE:''' Due to [https://www.mediawiki.org/wiki/Manual:$wgMiserMode miser mode], using this may result in fewer than \"$1limit\" results returned before continuing; in extreme cases, zero results may be returned.",
+       "api-help-param-disabled-in-miser-mode": "Disabled due to [[mw:Manual:$wgMiserMode|miser mode]].",
+       "api-help-param-limited-in-miser-mode": "<strong>Note:</strong> Due to [[mw:Manual:$wgMiserMode|miser mode]], using this may result in fewer than <var>$1limit</var> results returned before continuing; in extreme cases, zero results may be returned.",
        "api-help-param-direction": "In which direction to enumerate:\n;newer:List oldest first. Note: $1start has to be before $1end.\n;older:List newest first (default). Note: $1start has to be later than $1end.",
        "api-help-param-continue": "When more results are available, use this to continue.",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(no description)</span>",
index 7964b15..e116388 100644 (file)
@@ -37,7 +37,7 @@
        "apihelp-edit-param-watch": "Añadir la página a tu lista de seguimiento.",
        "apihelp-edit-param-unwatch": "Quitar la página de tu lista de seguimiento.",
        "apihelp-edit-example-edit": "Editar una página",
-       "apihelp-edit-example-prepend": "Anteponer _&#95;NOTOC_&#95; a una página",
+       "apihelp-edit-example-prepend": "Anteponer <kbd>_&#95;NOTOC_&#95;</kbd> a una página",
        "apihelp-edit-example-undo": "Deshacer intervalo de revisiones 13579-13585 con resumen automático",
        "apihelp-emailuser-description": "Enviar un mensaje de correo electrónico a un usuario.",
        "apihelp-emailuser-param-target": "Cuenta de usuario destinatario.",
index e3e46e2..574bd2f 100644 (file)
@@ -5,20 +5,53 @@
                ]
        },
        "apihelp-block-description": "Blokeatu erabiltzaile bat.",
+       "apihelp-createaccount-description": "Erabiltzaile kontu berria sortu.",
+       "apihelp-createaccount-param-email": "Erabiltzailearen helbide elektronikoa (aukerakoa).",
+       "apihelp-createaccount-param-realname": "Erabiltzailearen benetako izena (aukerakoa).",
+       "apihelp-delete-description": "Orrialde bat ezabatu.",
+       "apihelp-edit-description": "Orrialdeak sortu eta aldatu.",
        "apihelp-edit-param-minor": "Aldaketa txikia.",
+       "apihelp-edit-example-edit": "Orrialde bat aldatu",
        "apihelp-expandtemplates-param-title": "Orrialdearen izenburua.",
+       "apihelp-feedcontributions-param-year": "Urtetik aurrera (eta lehenagotik)",
+       "apihelp-feedcontributions-param-month": "Hilabetetik aurrera (eta lehenagotik)",
+       "apihelp-feedrecentchanges-param-hideminor": "Ezkutatu aldaketa txikiak.",
+       "apihelp-feedrecentchanges-param-hidebots": "Ezkutatu botek egindako aldaketak.",
+       "apihelp-feedrecentchanges-param-hideanons": "Ezkutatu erabiltzaile anonimoek egindako aldaketak.",
+       "apihelp-feedrecentchanges-param-hideliu": "Ezkutatu izena emandako erabiltzaileek egindako aldaketak.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Ezkutatu zainpeko aldaketak.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Ezkutatu zuk egindako aldaketak.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Iragazi etiketen arabera.",
+       "apihelp-feedrecentchanges-example-simple": "Erakutsi aldaketa berriak",
+       "apihelp-feedrecentchanges-example-30days": "Erakutsi aldaketa berriak 30 egunez",
        "apihelp-imagerotate-description": "Irudi bat edo gehiago biratu.",
        "apihelp-login-param-password": "Pasahitza.",
        "apihelp-login-param-domain": "Domeinua (hautazkoa).",
+       "apihelp-login-example-login": "Saioa hasi",
        "apihelp-move-description": "Orrialde bat mugitu",
        "apihelp-protect-example-protect": "Orrialde bat babestu",
+       "apihelp-query+allusers-param-witheditsonly": "Bakarrik zerrendatu aldaketak egin dituzten erabiltzaileak.",
+       "apihelp-query+allusers-param-activeusers": "Bakarrik zerrendatu azken {{PLURAL:$1|eguneko|$1 egunetako}} erabiltzaile aktiboak.",
+       "apihelp-query+imageinfo-param-urlheight": "$1urlwidth-en antzekoa.",
+       "apihelp-query+imageusage-example-simple": "Erakutsi [[:File:Albert Einstein Head.jpg]] darabilten orriak",
+       "apihelp-query+prefixsearch-param-search": "Bilatu katea.",
+       "apihelp-query+protectedtitles-example-simple": "Zerrendatu babestutako izenburuak",
+       "apihelp-query+recentchanges-example-simple": "Zerrendatu aldaketa berriak.",
+       "apihelp-upload-example-url": "Igo URL batetik.",
+       "apihelp-userrights-param-reason": "Aldaketarako arrazoia.",
        "api-help-main-header": "Modulu nagusia",
        "api-help-flag-deprecated": "Modulu hau zaharkitua dago.",
+       "api-help-parameters": "{{PLURAL:$1|Parametroa|Parametroak}}:",
        "api-help-param-deprecated": "Zaharkitua.",
        "api-help-param-required": "Parametro hau beharrezkoa da.",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Hutsik egon behar du|Hutsik egon daiteke edo $2}}",
+       "api-help-param-limit": "Ez dira $1 baino gehiago onartzen.",
+       "api-help-param-limit2": "Ez dira $1 ($2 botentzat) baino gehiago onartzen.",
+       "api-help-param-default": "Lehenetsia: $1",
+       "api-help-param-default-empty": "Lehenetsia: <span class=\"apihelp-empty\">(hutsik)</span>",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(deskribapenik gabe)</span>",
        "api-help-examples": "{{PLURAL:$1|Adibidea|Adibideak}}:",
+       "api-help-permissions": "{{PLURAL:$1|Baimena|Baimenak}}:",
        "api-credits-header": "Kredituak",
        "api-credits": "API garatzaileak:\n* Roan Kattouw (garatzaile nagusia, 2007ko ira.–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (sortzailea, garatzaile nagusia, 2006ko ira.–2007ko ira.)\n* Brad Jorsch (garatzaile nagusia 2013–gaur egun)\n\nMesedez, bidal iezazkiguzu zure iruzkinak, iradokizunak eta galderak mediawiki-api@lists.wikimedia.org helbidera edo bete ezazu errore-txostena https://phabricator.wikimedia.org/ helbidean."
 }
index c8a49ba..7a0c773 100644 (file)
        "apihelp-block-param-autoblock": "به طور خودکار آخرین نشانی آی‌پی استفاده‌شده، و هر نشانی پس از آن که سعی می‌کند از آن داخل شود را ببند.",
        "apihelp-block-param-noemail": "از کاربر در برابر ارسال پست الکترونیکی از طریق ویکی جلوگیری شود. (نیازمند دسترسی «blockemail» است).",
        "apihelp-block-param-hidename": "نام کاربری را از سیاههٔ بستن پنهان کن. (نیازمند دسترسی «hideuser» است).",
-       "apihelp-block-param-allowusertalk": "به کاربر برای ویرایش صفحه بحث‌شان اجازه دهید (بسته به $wgBlockAllowsUTEdit).",
+       "apihelp-block-param-allowusertalk": "به کاربر برای ویرایش صفحه بحث‌شان اجازه دهید (بسته به <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "اگر کاربر پیش از این مسدود شده‌است، مسدود موجود را بازنویسی کن.",
        "apihelp-block-param-watchuser": "صفحه‌های کاربر و بحث کاربر نشانی آی‌پی یا کاربر را پی‌گیری کنید.",
        "apihelp-block-example-ip-simple": "آی‌پی ۱۹۲.۰.۲.۵ را برای سه روز همراه دلیل «نخستین برخورد» ببندید",
-       "apihelp-clearhasmsg-description": "پرچم hasmsg را برای کاربر جاری پاک کن.",
-       "apihelp-clearhasmsg-example-1": "پاک‌کردن پرچم hasmsg برای کاربر جاری",
+       "apihelp-clearhasmsg-description": "پرچم <code>hasmsg</code> را برای کاربر جاری پاک کن.",
+       "apihelp-clearhasmsg-example-1": "پاک‌کردن پرچم <code>hasmsg</code> برای کاربر جاری",
        "apihelp-compare-description": "تفاوت بین ۲ صفحه را بیابید.\n\nشما باید یک شماره بازبینی، یک عنوان صفحه، یا یک شناسه صفحه برای هر دو «از» و «به» مشخص کنید.",
        "apihelp-compare-param-fromtitle": "عنوان اول برای مقایسه.",
        "apihelp-compare-param-fromid": "شناسه صفحه اول برای مقایسه.",
@@ -36,7 +36,7 @@
        "apihelp-compare-example-1": "ایجاد تفاوت بین نسخه 1 و 2",
        "apihelp-createaccount-description": "ایجاد حساب کاربری",
        "apihelp-createaccount-param-name": "نام کاربری.",
-       "apihelp-createaccount-param-password": "رمز عبور (نادیده گرفته می‌شود اگر $1mailpassword تنظیم شده‌باشد).",
+       "apihelp-createaccount-param-password": "رمز عبور (نادیده گرفته می‌شود اگر <var>$1mailpassword</var> تنظیم شده‌باشد).",
        "apihelp-createaccount-param-domain": "دامنه برای احراز هویت خارجی (اختیاری).",
        "apihelp-createaccount-param-email": "رایانامه کاربر (اختیاری)",
        "apihelp-createaccount-param-realname": "نام واقعی کاربر (اختیاری).",
        "apihelp-filerevert-param-filename": "نام پروندهٔ مقصد، بدون پیشوند پرونده:.",
        "apihelp-filerevert-param-comment": "ارسال دیدگاه.",
        "apihelp-filerevert-param-archivename": "نام بایگانی بازبینی برای برگرداندن.",
-       "apihelp-filerevert-example-revert": "برگرداندن Wiki.png به نسخهٔ 2011-03-05T15:27:40Z",
+       "apihelp-filerevert-example-revert": "برگرداندن <kbd>Wiki.png</kbd> به نسخهٔ <kbd>2011-03-05T15:27:40Z</kbd>",
        "apihelp-help-description": "راهنما برای پودمان‌های مشخص‌شده را نمایش دهید.",
        "apihelp-help-param-helpformat": "قالب‌بندی خروجی راهنما.",
        "apihelp-help-example-main": "راهنما برای پودمان اصلی",
index 53840a6..c0fd34a 100644 (file)
@@ -11,8 +11,8 @@
        "apihelp-main-param-action": "Quelle action effectuer.",
        "apihelp-main-param-format": "Le format de sortie.",
        "apihelp-main-param-maxlag": "La latence maximale peut être utilisée quand MédiaWiki est installé sur un cluster de base de données répliqué. Pour éviter des actions provoquant un supplément de latence de réplication de site, ce paramètre peut faire attendre le client jusqu’à ce que la latence de réplication soit inférieure à une valeur spécifiée. En cas de latence excessive, le code d’erreur « maxlag » est renvoyé avec un message tel que « Attente de $host : $lag secondes de délai ».<br />Voyez https://www.mediawiki.org/wiki/Manual:Maxlag_parameter pour plus d’information.",
-       "apihelp-main-param-smaxage": "Fixer l’entête s-maxage à ce nombre de secondes. Les erreurs ne sont jamais mises en cache.",
-       "apihelp-main-param-maxage": "Fixer l’entête max-age à ce nombre de secondes. Les erreurs ne sont jamais mises en cache.",
+       "apihelp-main-param-smaxage": "Fixer l’entête <code>s-maxage</code> à ce nombre de secondes. Les erreurs ne sont jamais mises en cache.",
+       "apihelp-main-param-maxage": "Fixer l’entête <code>max-age</code> à ce nombre de secondes. Les erreurs ne sont jamais mises en cache.",
        "apihelp-main-param-assert": "Vérifier si l’utilisateur est connecté si positionné à « user », ou a le droit utilisateur robot si positionné à « bot ».",
        "apihelp-main-param-requestid": "Toute valeur fournie ici sera incluse dans la réponse. Peut être utilisé pour distinguer des demandes.",
        "apihelp-main-param-servedby": "Inclure le nom d’hôte qui a renvoyé la requête dans les résultats.",
        "apihelp-block-param-autoblock": "Bloquer automatiquement la dernière adresse IP utilisée, et toute les adresses IP subséquentes depuis lesquelles ils ont essayé de se connecter.",
        "apihelp-block-param-noemail": "Empêcher l’utilisateur d’envoyer des courriels via le wiki (nécessite le doit « blockemail »).",
        "apihelp-block-param-hidename": "Masque le nom de l’utilisateur dans le journal des blocages (nécessite le droit « hideuser »).",
-       "apihelp-block-param-allowusertalk": "Autoriser les utilisateurs à modifier leur propre page de discussion (dépend de $wgBlockAllowsUTEdit).",
+       "apihelp-block-param-allowusertalk": "Autoriser les utilisateurs à modifier leur propre page de discussion (dépend de <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Si l’utilisateur est déjà bloqué, écraser le blocage existant.",
        "apihelp-block-param-watchuser": "Surveiller les pages utilisateur et de discussion de l’utilisateur ou de l’adresse IP.",
        "apihelp-block-example-ip-simple": "Bloquer l’adresse IP 192.0.2.5 pour trois jours avec le motif « Premier avertissement ».",
        "apihelp-block-example-user-complex": "Bloquer indéfiniment l’utilisateur Vandale avec le motif « Vandalisme », et empêcher la création de nouveau compte et de courriel",
-       "apihelp-clearhasmsg-description": "Efface le drapeau hasmsg pour l’utilisateur courant.",
-       "apihelp-clearhasmsg-example-1": "Effacer le drapeau hasmsg pour l’utilisateur courant",
+       "apihelp-clearhasmsg-description": "Efface le drapeau <code>hasmsg</code> pour l’utilisateur courant.",
+       "apihelp-clearhasmsg-example-1": "Effacer le drapeau <code>hasmsg</code> pour l’utilisateur courant",
        "apihelp-compare-description": "Obtenir la différence entre 2 pages.\n\nVous devez passer un numéro de révision, un titre de page, ou un ID de page, à la fois pour « from » et « to ».",
        "apihelp-compare-param-fromtitle": "Premier titre à comparer.",
        "apihelp-compare-param-fromid": "ID de la première page à comparer.",
@@ -45,7 +45,7 @@
        "apihelp-compare-example-1": "Créer une différence entre les révisions 1 et 2",
        "apihelp-createaccount-description": "Créer un nouveau compte utilisateur.",
        "apihelp-createaccount-param-name": "Nom d’utilisateur.",
-       "apihelp-createaccount-param-password": "Mot de passe (ignoré si $1mailpassword est défini).",
+       "apihelp-createaccount-param-password": "Mot de passe (ignoré si <var>$1mailpassword</var> est défini).",
        "apihelp-createaccount-param-domain": "Domaine pour l’authentification externe (facultatif).",
        "apihelp-createaccount-param-token": "Jeton de création de compte obtenu à la première requête.",
        "apihelp-createaccount-param-email": "Adresse de courriel de l’utilisateur (facultatif).",
@@ -94,7 +94,7 @@
        "apihelp-edit-param-contentmodel": "Modèle de contenu du nouveau contenu.",
        "apihelp-edit-param-token": "Le jeton doit toujours être envoyé en tant que dernier paramètre, ou au moins après le paramètre $1text.",
        "apihelp-edit-example-edit": "Modifier une page",
-       "apihelp-edit-example-prepend": "Préfixer une page par _&#95;NOTOC_&#95;",
+       "apihelp-edit-example-prepend": "Préfixer une page par <kbd>_&#95;NOTOC_&#95;</kbd>",
        "apihelp-edit-example-undo": "Annuler les révisions 13579 à 13585 avec résumé automatique",
        "apihelp-emailuser-description": "Envoyer un courriel à un utilisateur.",
        "apihelp-emailuser-param-target": "Utilisateur à qui envoyer le courriel.",
        "apihelp-filerevert-param-filename": "Nom de fichier cible, sans le préfixe File:.",
        "apihelp-filerevert-param-comment": "Télécharger le commentaire.",
        "apihelp-filerevert-param-archivename": "Nom d’archive de la révision à rétablir.",
-       "apihelp-filerevert-example-revert": "Rétablir Wiki.png dans la version du 2011-03-05T15:27:40Z",
+       "apihelp-filerevert-example-revert": "Rétablir <kbd>Wiki.png</kbd> dans la version du <kbd>2011-03-05T15:27:40Z</kbd>",
        "apihelp-help-description": "Afficher l’aide pour les modules spécifiés.",
        "apihelp-help-param-modules": "Modules pour lesquels afficher l’aide (valeurs des paramètres action= et format=, ou « main »). Les sous-modules peuvent être spécifiés avec un « + ».",
        "apihelp-help-param-submodules": "Inclure l’aide pour les sous-modules du module nommé.",
diff --git a/includes/api/i18n/frc.json b/includes/api/i18n/frc.json
new file mode 100644 (file)
index 0000000..05d5db2
--- /dev/null
@@ -0,0 +1,19 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Hangmanwa7id"
+               ]
+       },
+       "apihelp-block-description": "Bloquer un useur.",
+       "apihelp-createaccount-param-name": "Nom d'useur.",
+       "apihelp-createaccount-param-password": "Mot de passe (ignoré si <var>$1mailpassword</var> est défini).",
+       "apihelp-createaccount-param-domain": "Domaine pour l’authentification externe (optional).",
+       "apihelp-delete-description": "Effacer une page.",
+       "apihelp-delete-param-title": "Titre de la page que tu veux effacer. Impossible de l’user avec $1pageid.",
+       "apihelp-delete-example-simple": "Effacer la Page principale",
+       "apihelp-emailuser-description": "Emailer un useur.",
+       "apihelp-expandtemplates-param-title": "Titre de la page.",
+       "apihelp-login-param-name": "Nom d’useur.",
+       "apihelp-login-param-password": "Mot de passe.",
+       "apihelp-login-param-domain": "Domaine (optional)."
+}
index 6ee0a0c..a64730c 100644 (file)
@@ -4,7 +4,7 @@
                        "Elisardojm"
                ]
        },
-       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page Documentación]\n* [https://www.mediawiki.org/wiki/API:FAQ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Lista de discusión]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Anuncios da API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Erros e solicitudes]\n</div>\n<strong>Estado:</strong> Tódalas funcionalidades mostradas nesta páxina deberían estar funcionanado, pero a API aínda está desenrolo, e pode ser modificada en calquera momento. Apúntese na [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ lista de discusión mediawiki-api-announce] para estar informado acerca das actualizacións.\n\n<strong>Solicitudes incorrectas:</strong> Cando se envían solicitudes incorrectas á API, envíase unha cabeceira HTTP coa chave \"MediaWiki-API-Error\" e, a seguir, tanto o valor da cabeceira como o código de erro retornado serán definidos co mesmo valor. Para máis información, consulte https://www.mediawiki.org/wiki/API:Errors_and_warnings.",
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentación]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Lista de discusión]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Anuncios da API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Erros e solicitudes]\n</div>\n<strong>Estado:</strong> Tódalas funcionalidades mostradas nesta páxina deberían estar funcionanado, pero a API aínda está desenrolo, e pode ser modificada en calquera momento. Apúntese na [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ lista de discusión mediawiki-api-announce] para estar informado acerca das actualizacións.\n\n<strong>Solicitudes incorrectas:</strong> Cando se envían solicitudes incorrectas á API, envíase unha cabeceira HTTP coa chave \"MediaWiki-API-Error\" e, a seguir, tanto o valor da cabeceira como o código de erro retornado serán definidos co mesmo valor. Para máis información, consulte [[mw:API:Errors_and_warnings|API: Erros e avisos]].",
        "apihelp-main-param-action": "Que acción se realizará.",
        "apihelp-main-param-format": "O formato de saída.",
        "apihelp-main-param-requestid": "Calquera valor dado aquí será incluído na resposta. Pode usarse para distingir peticións.",
        "apihelp-block-description": "Bloquear un usuario.",
        "apihelp-block-param-user": "Nome de usuario, dirección ou rango de IPs que quere bloquear.",
        "apihelp-block-param-reason": "Motivo para o bloqueo.",
-       "apihelp-block-param-anononly": "Bloquear só usuarios anónimos (é dicir, desactivar edicións anónimas desta IP).",
+       "apihelp-block-param-anononly": "Bloquear só usuarios anónimos (é dicir, desactivar edicións anónimas desta dirección IP).",
        "apihelp-block-param-nocreate": "Previr a creación de contas.",
        "apihelp-block-param-autoblock": "Bloquear automaticamente o último enderezo IP utilizado, e calquera outro enderezo desde o que intente conectarse.",
        "apihelp-block-param-reblock": "Se o usuario xa está bloqueado, sobreescribir o bloqueo existente.",
-       "apihelp-block-param-watchuser": "Vixiar a páxina de usuario ou IP e a de conversa deste usuario",
+       "apihelp-block-param-watchuser": "Vixiar a páxina de usuario ou direccións IP e a de conversa deste usuario",
        "apihelp-compare-param-fromtitle": "Primeiro título para comparar.",
        "apihelp-compare-param-fromid": "Identificador da primeira páxina a comparar.",
        "apihelp-compare-param-fromrev": "Primeira revisión a comparar.",
        "apihelp-compare-example-1": "Mostrar diferencias entre a revisión 1 e a 2",
        "apihelp-createaccount-description": "Crear unha nova conta de usuario.",
        "apihelp-createaccount-param-name": "Nome de usuario.",
-       "apihelp-createaccount-param-password": "Contrasinal (ignorado se $1mailpassword está activo)",
+       "apihelp-createaccount-param-password": "Contrasinal (ignorado se <var>$1mailpassword</var> está activo)",
        "apihelp-createaccount-param-domain": "Dominio para autenticación externa (opcional)",
        "apihelp-createaccount-param-email": "Enderezo de correo eletrónico do usuario (opcional).",
        "apihelp-createaccount-param-realname": "Nome real do usuario (opcional).",
-       "apihelp-createaccount-example-pass": "Crear usuario \"testuser\" con contrasinal \"test123\"",
-       "apihelp-createaccount-example-mail": "Crear usuario \"testmailuser\" e enviar por correo electrónico un contrasinal xenerado de forma aleatoria",
+       "apihelp-createaccount-example-pass": "Crear usuario <kbd>testuser</kbd> con contrasinal <kbd>test123</kbd>.",
+       "apihelp-createaccount-example-mail": "Crear usuario <kbd>testmailuser</kbd>\"testmailuser\" e enviar por correo electrónico un contrasinal xenerado de forma aleatoria.",
        "apihelp-delete-description": "Borrar a páxina.",
-       "apihelp-delete-param-title": "Título da páxina que quere eliminar. Non pode usarse xunto con $1pageid.",
-       "apihelp-delete-param-pageid": "Identificador da páxina que quere eliminar. Non pode usarse xunto con $1title.",
+       "apihelp-delete-param-title": "Título da páxina a eliminar. Non pode usarse xunto con <var>$1pageid</var>.",
+       "apihelp-delete-param-pageid": "Identificador da páxina a eliminar. Non pode usarse xunto con <var>$1title</var>.",
        "apihelp-delete-param-reason": "Razón para o borrado. Se non se indica, usarase unha razón xenerada automaticamente.",
-       "apihelp-delete-param-watch": "Engadir esta páxina á lista de vixilancia.",
-       "apihelp-delete-param-unwatch": "Eliminar esta páxina da lista de vixilancia.",
-       "apihelp-delete-example-simple": "Borrar a Páxina Principal",
-       "apihelp-delete-example-reason": "Eliminar a Páxina Principal coa razón \"Preparando para mover\"",
+       "apihelp-delete-param-watch": "Engadir esta páxina á lista de vixilancia do usuario actual.",
+       "apihelp-delete-param-unwatch": "Eliminar esta páxina da lista de vixilancia do usuario actual.",
+       "apihelp-delete-example-simple": "Borrar <kbd>Main Page</kbd>.",
+       "apihelp-delete-example-reason": "Eliminar <kbd>Main Page</kbd>  coa razón <kbd>Preparing for move</kbd>.",
        "apihelp-disabled-description": "Este módulo foi desactivado.",
        "apihelp-edit-description": "Crear e editar páxinas.",
-       "apihelp-edit-param-title": "Título da páxina que quere editar. Non pode usarse xunto con $1pageid.",
-       "apihelp-edit-param-pageid": "Identificador da páxina que quere editar. Non pode usarse xunto con $1title.",
-       "apihelp-edit-param-section": "Número de selección. O 0 é para a sección superior, \"novo\" para unha sección nova.",
+       "apihelp-edit-param-title": "Título da páxina que quere editar. Non pode usarse xunto con <var>$1pageid</var>.",
+       "apihelp-edit-param-pageid": "Identificador da páxina que quere editar. Non pode usarse xunto con <var>$1title</var>.",
+       "apihelp-edit-param-section": "Número de selección. O <kbd>0</kbd> é para a sección superior, <kbd>new</kbd> para unha sección nova.",
        "apihelp-edit-param-sectiontitle": "Título para unha nova sección.",
        "apihelp-edit-param-text": "Contido da páxina.",
        "apihelp-edit-param-minor": "Edición pequena.",
        "apihelp-edit-param-notminor": "Edición non pequena.",
        "apihelp-edit-param-bot": "Marcar esta edición como de bot.",
        "apihelp-edit-param-createonly": "Non editar a páxina se xa existe.",
-       "apihelp-edit-param-watch": "Engadir esta páxina á lista de vixilancia.",
-       "apihelp-edit-param-unwatch": "Eliminar esta páxina da lista de vixilancia.",
+       "apihelp-edit-param-watch": "Engadir esta páxina á lista de vixilancia do usuario actual.",
+       "apihelp-edit-param-unwatch": "Eliminar esta páxina da lista de vixilancia do usuario actual.",
        "apihelp-edit-example-edit": "Editar a páxina",
        "apihelp-emailuser-description": "Enviar un correo electrónico a un usuario.",
        "apihelp-emailuser-param-target": "Usuario ó que lle mandar correo electrónico.",
+       "apihelp-emailuser-param-subject": "Asunto.",
        "apihelp-emailuser-param-text": "Corpo do correo.",
        "apihelp-emailuser-param-ccme": "Enviarme unha copia deste correo.",
        "apihelp-expandtemplates-description": "Expandir tódolos modelos en wikitexto.",
        "apihelp-feedrecentchanges-param-from": "Mostrar modificacións desde entón.",
        "apihelp-feedrecentchanges-param-hideminor": "Ocultar cambios menores.",
        "apihelp-feedrecentchanges-param-hidebots": "Ocultar cambios feitos por bots.",
+       "apihelp-feedrecentchanges-param-hideanons": "Ocultar os cambios realizados por usuarios anónimos.",
+       "apihelp-feedrecentchanges-param-hideliu": "Ocultar os cambios realizados por usuarios rexistrados.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Ocultar os cambios patrullados.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Ocultar os cambios realizados polo usuario actual.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Filtrar por etiqueta.",
+       "apihelp-feedrecentchanges-param-target": "Mostrar só os cambios nas páxinas ligadas a esta.",
+       "apihelp-feedrecentchanges-param-showlinkedto": "Mostrar os cambios nas páxinas ligadas coa páxina seleccionada.",
+       "apihelp-feedrecentchanges-example-simple": "Mostrar os cambios recentes",
+       "apihelp-feedrecentchanges-example-30days": "Mostrar os cambios recentes limitados a 30 días",
+       "apihelp-filerevert-description": "Revertir o ficheiro a unha versión anterior.",
+       "apihelp-filerevert-param-filename": "Nome de ficheiro final, sen o prefixo Ficheiro:",
+       "apihelp-filerevert-param-comment": "Comentario de carga.",
+       "apihelp-filerevert-param-archivename": "Nome de ficheiro da revisión á que reverter.",
+       "apihelp-help-description": "Mostrar axuda para os módulos indicados.",
+       "apihelp-help-param-submodules": "Incluír axuda para os submódulos do módulo nomeado.",
+       "apihelp-help-param-recursivesubmodules": "Incluír axuda para os submódulos de forma recursiva.",
+       "apihelp-help-param-helpformat": "Formato de saída da axuda.",
+       "apihelp-help-example-main": "Axuda para o módulo principal",
+       "apihelp-help-example-recursive": "Toda a axuda nunha páxina",
+       "apihelp-help-example-help": "Ayuda do módulo de axuda en si",
+       "apihelp-imagerotate-description": "Xirar unha ou máis imaxes.",
+       "apihelp-imagerotate-param-rotation": "Graos a rotar a imaxe no sentido do reloxio.",
+       "apihelp-imagerotate-example-simple": "Rotar <kbd>File:Example.png</kbd> <kbd>90</kbd> graos.",
+       "apihelp-imagerotate-example-generator": "Rotar tódalas imaxes en <kbd>Category:Flip</kbd> <kbd>180</kbd> graos",
+       "apihelp-import-param-summary": "Resume de importación.",
        "apihelp-import-param-xml": "Subido ficheiro XML.",
+       "apihelp-import-param-interwikisource": "Para importacións interwiki: wiki da que importar.",
+       "apihelp-import-param-interwikipage": "Para importacións interwiki: páxina a importar.",
+       "apihelp-import-param-fullhistory": "Para importacións interwiki: importar o historial completo, non só a versión actual.",
+       "apihelp-import-param-templates": "Para importacións interwiki: importar tódolos modelos incluídos.",
+       "apihelp-import-param-namespace": "Para importacións interwiki: importar a este espazo de nomes.",
        "apihelp-import-param-rootpage": "Importar como subpáxina desta páxina.",
        "apihelp-login-param-name": "Nome de usuario.",
        "apihelp-login-param-password": "Contrasinal",
        "apihelp-login-example-login": "Identificarse",
        "apihelp-logout-description": "Terminar e limpar datos de sesión.",
        "apihelp-move-description": "Mover unha páxina.",
-       "apihelp-move-param-from": "Título da páxina que quere mover. Non pode usarse xunto con $1fromid.",
-       "apihelp-move-param-fromid": "Identificador da páxina que quere mover. Non pode usarse xunto con $1from.",
-       "apihelp-move-param-reason": "Motivo para o movemento.",
-       "apihelp-move-param-movetalk": "Mover a páxina de conversa, se existe.",
+       "apihelp-move-param-from": "Título da páxina que quere renomear. Non pode usarse xunto con <var>$1fromid</var>.",
+       "apihelp-move-param-fromid": "Identificador da páxina que quere renomear. Non pode usarse xunto con <var>$1from</var>.",
+       "apihelp-move-param-to": "Título ó que renomear a páxina.",
+       "apihelp-move-param-reason": "Motivo para o renomeamento.",
+       "apihelp-move-param-movetalk": "Renomear a páxina de conversa, se existe.",
+       "apihelp-move-param-movesubpages": "Renomear as subpáxinas, se é aplicable.",
        "apihelp-move-param-noredirect": "Non crear unha redirección.",
-       "apihelp-move-param-watch": "Engadir a páxina e a redirección á súa páxina de vixiancia.",
-       "apihelp-move-param-unwatch": "Eliminar a páxina e a redirección da súa páxina de vixiancia.",
+       "apihelp-move-param-watch": "Engadir a páxina e a redirección á páxina de vixiancia do usuario actual.",
+       "apihelp-move-param-unwatch": "Eliminar a páxina e a redirección da páxina de vixiancia do usuario actual.",
        "apihelp-move-param-ignorewarnings": "Ignorar as advertencias.",
+       "apihelp-move-example-move": "Mover <kbd>Títulomalo</kbd> a <kbd>Títulobo</kbd> sen deixar unha redirección.",
+       "apihelp-opensearch-description": "Buscar no wiki mediante o protocolo OpenSearch.",
        "apihelp-opensearch-param-search": "Buscar texto.",
        "apihelp-opensearch-param-limit": "Número máximo de resultados a visualizar.",
        "apihelp-opensearch-param-namespace": "Espazo de nomes no que buscar.",
        "apihelp-opensearch-param-format": "O formato de saída.",
-       "apihelp-opensearch-example-te": "Atopar páxinas comezando por \"Te\"",
+       "apihelp-opensearch-example-te": "Atopar páxinas que comezan por <kbd>Te</kbd>.",
+       "apihelp-options-param-reset": "Reiniciar preferencias ás iniciais do sitio.",
        "apihelp-options-example-reset": "Restablecer tódaalas preferencias",
        "apihelp-paraminfo-description": "Obter información sobre módulos API.",
+       "apihelp-patrol-description": "Patrullar unha páxina ou edición.",
        "apihelp-patrol-example-rcid": "Patrullar un cambio recente",
        "apihelp-patrol-example-revid": "Patrullar unha revisión",
        "apihelp-protect-param-title": "Título da páxina que quere (des)protexer. Non pode usarse xunto con $1pageid.",
        "apihelp-protect-param-reason": "Razón para (des)protexer.",
        "apihelp-protect-example-protect": "Protexer unha páxina",
        "apihelp-purge-param-forcelinkupdate": "Actualizar as táboas de ligazóns.",
-       "apihelp-purge-example-simple": "Purgar a \"Páxina Principal\" e páxina \"API\"",
+       "apihelp-purge-example-simple": "Purgar a <kbd>Páxina Principal</kbd> e páxina da <kbd>API</kbd>.",
+       "apihelp-query+alldeletedrevisions-param-start": "Selo de tempo para comezar a enumeración.",
+       "apihelp-query+alldeletedrevisions-param-end": "Selo de tempo para rematar a enumeración.",
        "apihelp-query+alldeletedrevisions-param-from": "Comezar listado neste título.",
        "apihelp-query+alldeletedrevisions-param-to": "Parar listado neste título.",
        "apihelp-query+alldeletedrevisions-param-prefix": "Buscar tódolos títulos de páxinas que comezan con este valor.",
        "apihelp-query+alldeletedrevisions-param-user": "Só listar revisións deste usuario.",
        "apihelp-query+alldeletedrevisions-param-excludeuser": "Non listar revisións deste usuario.",
        "apihelp-query+alldeletedrevisions-param-namespace": "Só listar páxinas neste espazo de nomes.",
-       "apihelp-query+alldeletedrevisions-example-user": "Listar as últimas 50 contribucións borradas do Usuario:Exemplo",
-       "apihelp-query+alldeletedrevisions-example-ns-main": "Listar as 50 primeiras revisións borradas no espazo de nomes principal",
+       "apihelp-query+alldeletedrevisions-example-user": "Listar as últimas 50 contribucións borradas do usuario <kbd>Exemplo<kbd>.",
+       "apihelp-query+alldeletedrevisions-example-ns-main": "Listar as 50 primeiras revisións borradas no espazo de nomes principal.",
        "apihelp-query+allfileusages-param-from": "Título do ficheiro no que comezar a enumerar.",
        "apihelp-query+allfileusages-param-to": "Título do ficheiro no que rematar de enumerar.",
        "apihelp-query+allfileusages-param-prefix": "Buscar tódolos títulos de ficheiro que comezan con este valor.",
        "apihelp-query+allimages-param-filterbots": "Como filtrar ficheiros subidos por bots. Só pode usarse con $1sort=timestamp. Non pode usarse xunto con $1user.",
        "apihelp-query+allimages-param-mime": "Que tipos MIME  buscar, por exemplo <kbd>imaxe/jpeg</kbd>.",
        "apihelp-query+allimages-param-limit": "Cantas imaxes mostar en total.",
+       "apihelp-query+alllinks-param-from": "Título da ligazón na que comezar a enumerar.",
+       "apihelp-query+alllinks-param-to": "Título da ligazón na que rematar de enumerar.",
+       "apihelp-query+alllinks-param-namespace": "Espazo de nomes a enumerar.",
+       "apihelp-query+alllinks-param-limit": "Número total de obxectos a devolver.",
+       "apihelp-query+alllinks-param-dir": "Dirección na cal listar.",
+       "apihelp-query+allmessages-param-prop": "Que propiedades obter.",
+       "apihelp-query+allmessages-param-args": "Argumentos a substituír na mensaxe.",
+       "apihelp-query+allmessages-example-ipb": "Mostar mensaxes que comecen por <kbd>ipb-</kbd>.",
+       "apihelp-query+allpages-param-from": "Título da páxina na que comezar a enumerar.",
+       "apihelp-query+allpages-param-to": "Título da páxina na que rematar de enumerar.",
+       "apihelp-query+allpages-param-prefix": "Buscar tódolos títulos de páxinas que comezan con este valor.",
+       "apihelp-query+allpages-param-namespace": "Espazo de nomes a enumerar.",
+       "apihelp-query+allpages-param-filterredir": "Que páxinas listar.",
+       "apihelp-query+allpages-param-limit": "Número total de páxinas a devolver.",
+       "apihelp-query+allpages-param-dir": "Dirección na cal listar.",
+       "apihelp-query+allpages-example-B": "Mostrar unha lista de páxinas que comezan pola letra <kbd>B</kbd>.",
+       "apihelp-query+allpages-example-generator": "Mostrar inforfmación sobre 4 páxinas que comecen pola letra <kbd>T</kbd>.",
+       "apihelp-query+allredirects-description": "Lista tódalas redireccións a un espazo de nomes.",
+       "apihelp-query+allredirects-param-from": "Título da redirección na que comezar a enumerar.",
+       "apihelp-query+allredirects-param-to": "Título da redirección na que rematar de enumerar.",
+       "apihelp-query+allredirects-param-namespace": "Espazo de nomes a enumerar.",
+       "apihelp-query+allredirects-param-limit": "Número total de obxectos a devolver.",
+       "apihelp-query+allredirects-param-dir": "Dirección na cal listar.",
+       "apihelp-query+alltransclusions-param-from": "Título da transclusión na que comezar a enumerar.",
+       "apihelp-query+alltransclusions-param-to": "Título da transclusión na que rematar de enumerar.",
        "apihelp-query+deletedrevs-param-prefix": "Buscar tódolos títulos de páxina que comezan con este valor.",
        "apihelp-query+deletedrevs-param-unique": "Só listar unha revisión por cada páxina.",
        "apihelp-query+deletedrevs-param-tag": "Só listar revisións marcadas con esta etiqueta.",
        "apihelp-query+deletedrevs-param-excludeuser": "Non listar revisións deste usuario.",
        "apihelp-query+deletedrevs-param-namespace": "Só listar páxinas neste espazo de nomes.",
        "apihelp-query+deletedrevs-param-limit": "Máximo número de revisións a listar.",
-       "apihelp-query+deletedrevs-example-mode2": "Listar as últimas 50 contribucións borradas de Bob (modo 2)",
+       "apihelp-query+deletedrevs-example-mode2": "Listar as últimas 50 contribucións borradas de <kbd>Bob</kbd> (modo 2).",
        "apihelp-query+deletedrevs-example-mode3-main": "Listar as primeiras 50 revisións borradas no espazo de nomes principal (modo 3)",
        "apihelp-query+disabled-description": "Este módulo de consulta foi desactivado.",
        "apihelp-query+duplicatefiles-param-limit": "Cantos ficheiros duplicados devolver.",
        "apihelp-query+embeddedin-param-filterredir": "Como filtrar para redireccións.",
        "apihelp-query+embeddedin-param-limit": "Número total de páxinas a devolver.",
        "apihelp-query+extlinks-param-limit": "Cantas ligazóns devolver.",
-       "apihelp-query+extlinks-example-simple": "Obter unha de ligazóns externas á [[Main Page]]",
+       "apihelp-query+extlinks-example-simple": "Obter unha de ligazóns externas á <kbd>Páxina Principal<kbd>.",
        "apihelp-query+exturlusage-description": "Enumerar páxinas que conteñen unha dirección URL dada.",
        "apihelp-query+exturlusage-param-namespace": "Espazo de nomes a enumerar.",
        "apihelp-query+exturlusage-param-limit": "Cantas páxinas devolver.",
-       "apihelp-query+exturlusage-example-simple": "Mostrar páxinas ligando a http://www.mediawiki.org",
+       "apihelp-query+exturlusage-example-simple": "Mostrar páxinas ligando a <kbd>http://www.mediawiki.org</kbd>.",
        "apihelp-query+filearchive-param-prefix": "Buscar tódolos títulos de imaxes que comezan con este valor.",
        "apihelp-query+filearchive-param-limit": "Cantas imaxes devolver en total.",
        "apihelp-query+filearchive-param-dir": "Dirección na cal listar.",
        "apihelp-query+revisions-param-user": "Só incluir revisión feitas polo usuario.",
        "apihelp-query+revisions-param-excludeuser": "Excluír revisións feitas polo usuario.",
        "apihelp-query+revisions-param-tag": "Só listar revisións marcadas con esta etiqueta.",
-       "apihelp-query+revisions-example-last5": "Mostrar as cinco últimas revisión da \"Páxina Principal\"",
-       "apihelp-query+revisions-example-first5": "Mostar as cinco primeiras revisións da \"Páxina Principal\"",
-       "apihelp-query+revisions-example-first5-after": "Mostrar as cinco primeiras revisións da \"Páxinas Principais\" feitas despois de 2006-05-01",
-       "apihelp-query+revisions-example-first5-not-localhost": "Mostrar as cinco primeiras revisións da \"Páxina Principal\" que non foron feitas polo usuario anónimo \"127.0.0.1\"",
-       "apihelp-query+revisions-example-first5-user": "Mostrar as cinco primeiras revisión da \"Páxina Principal\" feitas polo usuario \"MediaWiki default\"",
+       "apihelp-query+revisions-example-last5": "Mostrar as cinco últimas revisión da <kbd>Páxina Principal</kbd>.",
+       "apihelp-query+revisions-example-first5": "Mostar as cinco primeiras revisións da <kbd>Páxina Principal</kbd>.",
+       "apihelp-query+revisions-example-first5-after": "Mostrar as cinco primeiras revisións da <kbd>Páxina Principal</kbd> feitas despois de 2006-05-01.",
+       "apihelp-query+revisions-example-first5-not-localhost": "Mostrar as cinco primeiras revisións da <kbd>Páxina Principal</kbd> que non foron feitas polo usuario anónimo <kbd>127.0.0.1</kbd>.",
+       "apihelp-query+revisions-example-first5-user": "Mostrar as cinco primeiras revisión da <kbd>Páxina Principal</kbd> feitas polo usuario <kbd>MediaWiki default</kbd>.",
        "apihelp-query+revisions+base-param-limit": "Limitar cantas revisións se van devolver.",
        "apihelp-query+search-description": "Facer unha busca por texto completo.",
        "apihelp-query+search-param-search": "Buscar tódolos títulos de páxina (ou contido) que teñan este valor.",
        "apihelp-query+search-param-info": "Que metadatos devolver.",
        "apihelp-query+search-param-limit": "Número total de páxinas a devolver.",
        "apihelp-query+search-param-interwiki": "Incluir na busca resultados de interwikis, se é posible.",
-       "apihelp-query+search-example-simple": "Buscar por \"significado\"",
-       "apihelp-query+search-example-text": "Buscar texto por \"significado\"",
+       "apihelp-query+search-example-simple": "Buscar por <kbd>significado</kbd>.",
+       "apihelp-query+search-example-text": "Buscar texto por <kbd>significado</kbd>.",
        "apihelp-query+siteinfo-description": "Devolver información xeral sobre o sitio.",
        "apihelp-query+siteinfo-param-numberingroup": "Listar o número de usuarios nos grupos de usuarios.",
        "apihelp-query+tags-param-limit": "Máximo número de etiquetas a listar.",
        "apihelp-query+templates-param-namespace": "Mostrar modelos só neste espazo de nomes.",
        "apihelp-query+templates-param-limit": "Número de modelos a devolver.",
        "apihelp-query+templates-param-dir": "Dirección na cal listar.",
-       "apihelp-query+templates-example-simple": "Coller modelos da [[Main Page]]",
-       "apihelp-query+templates-example-generator": "Obter información sobre os modelos na [[Main Page]]",
-       "apihelp-query+templates-example-namespaces": "Obter modelos da [[Main Page]] no espazo de nomes de Usuarios e Modelos",
+       "apihelp-query+templates-example-simple": "Coller os modelos usado na <kbd>Páxina Principal</kbd>.",
+       "apihelp-query+templates-example-generator": "Obter información sobre os modelos usados na <kbd>Páxina Principal</kbd>.",
+       "apihelp-query+templates-example-namespaces": "Obter páxinas nos espazos de nomes {{ns:user}} e {{ns:template}} que se transclúen na <kbd>Páxina Principal</kbd>.",
        "apihelp-query+transcludedin-param-namespace": "Só incluir páxinas nestes espacios de nomes.",
        "apihelp-query+transcludedin-param-limit": "Cantos mostrar.",
        "apihelp-query+usercontribs-description": "Mostrar tódalas edicións dun usuario.",
        "apihelp-query+usercontribs-param-namespace": "Só listar contribucións nestes espazos de nomes.",
        "apihelp-query+usercontribs-param-tag": "Só listar revisións marcadas con esta etiqueta.",
        "apihelp-query+usercontribs-param-toponly": "Listar só cambios que son a última revisión.",
-       "apihelp-query+usercontribs-example-user": "Mostrar contribucións de [[User:Example]]",
-       "apihelp-query+usercontribs-example-ipprefix": "Mostrar contribucións de tódalas IP que comezan por \"192.0.2.\"",
+       "apihelp-query+usercontribs-example-user": "Mostrar as contribucións do usuario <kbd>Exemplo</kbd>.",
+       "apihelp-query+usercontribs-example-ipprefix": "Mostrar contribucións de tódalas direccións IP que comezan por <kbd>192.0.2.</kbd>.",
        "apihelp-query+userinfo-description": "Obter información sobre o usuario actual.",
        "apihelp-query+userinfo-example-simple": "Obter información sobre o usuario actual.",
        "apihelp-query+userinfo-example-data": "Obter información adicional sobre o usuario actual.",
        "apihelp-query+users-description": "Obter información sobre unha lista de usuarios.",
        "apihelp-query+users-param-users": "Lista de usuarios para os que obter información.",
-       "apihelp-query+users-example-simple": "Mostar información para [[User:Example]]",
+       "apihelp-query+users-example-simple": "Mostar información para o usuario <kbd>Exemplo</kbd>.",
        "apihelp-query+watchlist-param-start": "Selo de tempo para comenzar a enumeración",
        "apihelp-query+watchlist-param-end": "Selo de tempo para rematar a enumeración.",
        "apihelp-query+watchlist-param-user": "Só listar cambios deste usuario.",
        "apihelp-revisiondelete-param-hide": "Que ocultar para cada revisión.",
        "apihelp-revisiondelete-param-show": "Que mostrar para cada revisión.",
        "apihelp-revisiondelete-param-reason": "Razón para o borrado ou restaurado.",
-       "apihelp-revisiondelete-example-revision": "Ocultar contido para revisión 12345 na Páxina Principal",
+       "apihelp-revisiondelete-example-revision": "Ocultar contido para revisión <kbd>12345</kbd> na <kbd>Páxina Principal</kbd>.",
        "apihelp-rollback-param-markbot": "Marcar as edicións revertidas e a reversión como edicións de bot.",
-       "apihelp-rollback-example-simple": "Desfacer as últimas edicións do usuario Example á [[Main Page]]",
+       "apihelp-rollback-example-simple": "Desfacer as últimas edicións á <kbd>Páxina Principal</kbd> do usuario <kbd>Exemplo</kbd>.",
        "apihelp-setnotificationtimestamp-param-entirewatchlist": "Traballar en tódalas páxinas vixiadas.",
        "apihelp-setnotificationtimestamp-example-all": "Restaurar o estado de notificación para toda a páxina de vixiancia",
-       "apihelp-setnotificationtimestamp-example-page": "Restaurar o estado de notificación para a \"Páxina principal\"",
-       "apihelp-setnotificationtimestamp-example-allpages": "Restaurar o estado de notificación para as páxinas no espazo de nomes de Usuario",
+       "apihelp-setnotificationtimestamp-example-page": "Restaurar o estado de notificación para a <kbd>Páxina Principal</kbd>.",
+       "apihelp-setnotificationtimestamp-example-allpages": "Restaurar o estado de notificación para as páxinas no espazo de nomes de <kbd>{{ns:user}}</kbd>.",
        "apihelp-unblock-description": "Desbloquear un usuario.",
        "apihelp-unblock-param-reason": "Razón para desbloquear.",
-       "apihelp-unblock-example-id": "Desbloquear bloqueo ID #105",
-       "apihelp-unblock-example-user": "Desbloquear usuario Bob con razón \"Síntoo Bob\"",
+       "apihelp-unblock-example-id": "Desbloquear bloqueo ID #<kbd>105</kbd>.",
+       "apihelp-unblock-example-user": "Desbloquear usuario <kbd>Bob</kbd> con razón <kbd>Síntoo Bob</kbd>.",
        "apihelp-undelete-param-title": "Título da páxina a restaurar.",
        "apihelp-undelete-param-reason": "Razón para restaurar.",
-       "apihelp-undelete-example-page": "Restaurar [[Main Page]]",
-       "apihelp-undelete-example-revisions": "Restaurar dúas revisións de [[Main Page]]",
+       "apihelp-undelete-example-page": "Restaurar a <kbd>Páxina Principal</kbd>.",
+       "apihelp-undelete-example-revisions": "Restaurar dúas revisións de <kbd>[[Main Page]]</kbd>.",
        "apihelp-upload-param-text": "Texto da páxina inicial para novos ficheiros.",
        "apihelp-upload-param-watch": "Vixiar a páxina.",
        "apihelp-upload-param-ignorewarnings": "Ignorar as advertencias.",
        "apihelp-userrights-param-add": "Engadir o usuario a estes grupos.",
        "apihelp-userrights-param-remove": "Eliminar o usuario destes grupos.",
        "apihelp-userrights-param-reason": "Motivo para o cambio.",
-       "apihelp-watch-example-watch": "Vixiar a páxina \"Páxina Principal\"",
-       "apihelp-watch-example-unwatch": "Deixar de vixiar a páxina \"Páxina Principal\"",
+       "apihelp-watch-example-watch": "Vixiar a páxina <kbd>Páxina Principal</kbd>.",
+       "apihelp-watch-example-unwatch": "Deixar de vixiar a páxina <kbd>Páxina Principal</kbd>.",
        "apihelp-watch-example-generator": "Vixiar as primeiras páxinas no espazo de nomes principal",
        "api-orm-param-limit": "Número máximo de filas a mostrar.",
        "api-pageset-param-titles": "Lista de títulos nos que traballar.",
        "api-help-parameters": "{{PLURAL:$1|Parámetro|Parámetros}}:",
        "api-help-param-deprecated": "Obsoleto.",
        "api-help-param-required": "Este parámetro é obrigatorio.",
-       "api-help-param-list": "{{PLURAL:$1|1=Un valor|2=Valores (separados con \"{{!}}\")}}: $2",
+       "api-help-param-list": "{{PLURAL:$1|1=Un valor|2=Valores (separados con <kbd>{{!}}</kbd>)}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Debe ser baleiro|Pode ser baleiro, ou $2}}",
        "api-help-param-limit": "Non se permiten máis de $1.",
        "api-help-param-limit2": "Non se permiten máis de $1 ($2 para bots).",
        "api-help-param-integer-min": "{{PLURAL:$1|1=O valor debe ser maior |2=Os valores deben ser maiores}} que $2.",
        "api-help-param-integer-max": "{{PLURAL:$1|1=O valor debe ser menor |2=Os valores deben ser menores}} que $3.",
        "api-help-param-integer-minmax": "{{PLURAL:$1|1=O valor debe estar entre $2 e $3 |2=Os valores deben estar entre $2 e $3}}.",
-       "api-help-param-multi-separate": "Separe os valores con \"|\".",
+       "api-help-param-multi-separate": "Separe os valores con <kbd>|</kbd>.",
        "api-help-param-default": "Por defecto: $1",
        "api-help-param-default-empty": "Por defecto: <span class=\"apihelp-empty\">(baleiro)</span>",
        "api-help-examples": "{{PLURAL:$1|Exemplo|Exemplos}}:",
index b756613..de9d65f 100644 (file)
@@ -7,8 +7,8 @@
        "apihelp-main-param-action": "Qual action exequer.",
        "apihelp-main-param-format": "Le formato del resultato.",
        "apihelp-main-param-maxlag": "Le latentia maximal pote esser usate quando MediaWiki es installate in un cluster de base de datos replicate. Pro evitar actiones que causa additional latentia de replication de sito, iste parametro pote facer le cliente attender usque le latentia de replication es minus que le valor specificate. In caso de latentia excessive, le codice de error \"maxlag\" es retornate con un message como \"Attende $host: $lag secundas de latentia\".<br />Vide https://www.mediawiki.org/wiki/Manual:Maxlag_parameter pro plus information.",
-       "apihelp-main-param-smaxage": "Fixar le capite s-maxage a iste numero de secundas. Errores nunquam es mittite in cache.",
-       "apihelp-main-param-maxage": "Fixar le capite max-age a iste numero de secundas. Errores nunquam es mittite in cache.",
+       "apihelp-main-param-smaxage": "Fixar le capite <code>s-maxage</code> a iste numero de secundas. Errores nunquam es mittite in cache.",
+       "apihelp-main-param-maxage": "Fixar le capite <code>max-age</code> a iste numero de secundas. Errores nunquam es mittite in cache.",
        "apihelp-main-param-assert": "Verificar si le usator ha aperite session si mittite a \"user\", o si ha le derecto de usator robot si \"bot\".",
        "apihelp-main-param-requestid": "Omne valor fornite hic essera includite in le responsa. Pote esser usate pro distinguer requestas.",
        "apihelp-main-param-servedby": "Includer in le resultato le nomine del host que ha servite le requesta.",
index dc69351..2fa5e64 100644 (file)
@@ -9,8 +9,8 @@
        },
        "apihelp-main-param-action": "実行する操作です。",
        "apihelp-main-param-format": "出力する形式です。",
-       "apihelp-main-param-smaxage": "s-maxage ヘッダーにこの秒数を設定します。エラーがキャッシュされることはありません。",
-       "apihelp-main-param-maxage": "max-age ヘッダーにこの秒数を設定します。エラーがキャッシュされることはありません。",
+       "apihelp-main-param-smaxage": "<code>s-maxage</code> ヘッダーにこの秒数を設定します。エラーがキャッシュされることはありません。",
+       "apihelp-main-param-maxage": "<code>max-age</code> ヘッダーにこの秒数を設定します。エラーがキャッシュされることはありません。",
        "apihelp-main-param-assert": "\"user\" を設定した場合は利用者がログイン済みかどうかを、\"bot\" を指定した場合はボット権限があるかどうかを、それぞれ検証します。",
        "apihelp-main-param-requestid": "任意の値を指定でき、その値が結果に含められます。リクエストを識別するために使用できます。",
        "apihelp-main-param-servedby": "リクエストを処理したホスト名を結果に含めます。",
@@ -30,7 +30,7 @@
        "apihelp-block-example-user-complex": "利用者 \"Vandal\" を \"Vandalism\" という理由で無期限ブロックし、新たなアカウント作成とメールの送信を禁止する。",
        "apihelp-createaccount-description": "新しい利用者アカウントを作成します。",
        "apihelp-createaccount-param-name": "利用者名。",
-       "apihelp-createaccount-param-password": "パスワード ($1mailpassword が設定されると無視されます)。",
+       "apihelp-createaccount-param-password": "パスワード (<var>$1mailpassword</var> が設定されると無視されます)。",
        "apihelp-createaccount-param-token": "最初のリクエストで得られたアカウント作成用トークンです。",
        "apihelp-createaccount-param-email": "利用者の電子メールアドレス (任意)。",
        "apihelp-createaccount-param-mailpassword": "設定されると (その値を問わず)、ランダムなパスワードがその利用者に電子メールで送られます。",
@@ -59,7 +59,7 @@
        "apihelp-emailuser-param-target": "送信先の利用者名。",
        "apihelp-emailuser-param-text": "電子メールの本文。",
        "apihelp-emailuser-param-ccme": "電子メールの複製を自分にも送信します。",
-       "apihelp-filerevert-example-revert": "Wiki.png を 2011-03-05T15:27:40Z の版に差し戻す。",
+       "apihelp-filerevert-example-revert": "<kbd>Wiki.png</kbd> を <kbd>2011-03-05T15:27:40Z</kbd> の版に差し戻す。",
        "apihelp-help-description": "指定したモジュールのヘルプを表示します。",
        "apihelp-help-param-modules": "ヘルプを表示するモジュールです (action= パラメーターおよび format= パラメーターの値、または \"main\")。\"+\" を使用して下位モジュールを指定できます。",
        "apihelp-help-param-submodules": "指定したモジュールの下位モジュールのヘルプを含めます。",
@@ -79,7 +79,7 @@
        "apihelp-move-param-to": "移動後のページ名。",
        "apihelp-move-param-reason": "移動の理由。",
        "apihelp-move-param-movetalk": "存在する場合、トークページも移動します。",
-       "apihelp-move-param-movesubpages": "可能であれば、サブページも移動します。",
+       "apihelp-move-param-movesubpages": "可能であれば、下位ページも名前を変更します。",
        "apihelp-move-param-noredirect": "転送ページを作成しません。",
        "apihelp-move-param-watch": "そのページと転送ページをウォッチリストに追加します。",
        "apihelp-move-param-unwatch": "そのページと転送ページをウォッチリストから除去します。",
index f6608fd..b20de56 100644 (file)
@@ -16,7 +16,7 @@
        "apihelp-block-param-autoblock": "최근 사용한 IP 주소나 로그인을 시도한 이후에 사용한 모든 IP 주소를 자동으로 차단합니다.",
        "apihelp-block-param-noemail": "위키를 통해 이메일을 보내지 못하도록 막습니다. (\"blockemail\" 권한 필요)",
        "apihelp-block-param-hidename": "차단 기록에서 사용자 이름을 숨깁니다. (\"hideuser\" 권한 필요)",
-       "apihelp-block-param-allowusertalk": "자신의 토론 문서를 편집할 수 있도록 허용합니다. ($wgBlockAllowsUTEdit 값에 따라 다름)",
+       "apihelp-block-param-allowusertalk": "자신의 토론 문서를 편집할 수 있도록 허용합니다. (<var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var> 값에 따라 다름)",
        "apihelp-block-param-reblock": "사용자가 이미 차단된 경우, 기존 차단 설정을 바꿉니다.",
        "apihelp-block-param-watchuser": "해당 사용자 또는 IP 주소의 사용자 문서 및 토론 문서를 주시합니다.",
        "apihelp-block-example-ip-simple": "IP 192.0.2.5에 대해 \"First strike\"라는 이유로 3일간 차단하기",
index ff06724..eeee854 100644 (file)
@@ -26,7 +26,7 @@
        "apihelp-compare-example-1": "Fengk de Ongerscheide zwesche dä Väsjohne 1 un 2",
        "apihelp-createaccount-description": "Ene neue Zohjang för ene Metmaacher aanlähje.",
        "apihelp-createaccount-param-name": "Der Nahme för dä Metmaacher.",
-       "apihelp-createaccount-param-password": "Et Paßwoot (Weed ävver it jebruc un övverjange, wann <code lang=\"en\" xml:lang=\"en\">$1mailpassword</code> jesaz es)",
+       "apihelp-createaccount-param-password": "Et Paßwoot (Weed ävver it jebruc un övverjange, wann <code lang=\"en\" xml:lang=\"en\"><var>$1mailpassword</var></code> jesaz es)",
        "apihelp-createaccount-param-realname": "Dämm Medmaacher singe reschtejje Nahme - kann fott blihve.",
        "apihelp-delete-description": "Schmieß en Sigg fott.",
        "apihelp-delete-param-watch": "Donn die Sigg en Ding Oppassliss opnemme.",
index 686dab3..1efb45f 100644 (file)
@@ -8,8 +8,8 @@
        "apihelp-main-param-action": "Кое дејство да се изврши.",
        "apihelp-main-param-format": "Формат на изводот.",
        "apihelp-main-param-maxlag": "Максималниот заостаток може да се користи кога МедијаВики е воспоставен на грозд умножен од базата. За да спречите дополнителни заостатоци од дејства, овој параметар му наложува на клиентот да почека додека заостатокот не се намали под укажаната вредност. Во случај на преголем заостаток, системт ја дава грешката со код „maxlag“ со порака од обликот „Го чекам $host: има заостаток од $lag секунди“.<br />Погл. https://www.mediawiki.org/wiki/Manual:Maxlag_parameter за повеќе информации.",
-       "apihelp-main-param-smaxage": "Задајте му олку секунди на заглавитето s-maxage. Грешките никогаш не се чуваат во меѓускладот.",
-       "apihelp-main-param-maxage": "Задајте му олку секунди на заглавитето max-age. Грешките никогаш не се чуваат во меѓускладот.",
+       "apihelp-main-param-smaxage": "Задајте му олку секунди на заглавитето <code>s-maxage</code>. Грешките никогаш не се чуваат во меѓускладот.",
+       "apihelp-main-param-maxage": "Задајте му олку секунди на заглавитето <code>max-age</code>. Грешките никогаш не се чуваат во меѓускладот.",
        "apihelp-main-param-assert": "Провери дали корисникот е најавен ако е зададено „user“ или дали го има корисничкото право на бот, ако е зададено „bot“.",
        "apihelp-main-param-requestid": "Тука внесената вредност ќе биде вклучена во извештајот. Може да се користи за разликување на барањата.",
        "apihelp-main-param-servedby": "Вклучи го домаќинското име што го услужило барањето во резултатите.",
        "apihelp-block-param-autoblock": "Автоматски блокирај ја последно употребената IP-адреса и сите понатамошни IP-адреси од кои лицето ќе се обиде да се најави.",
        "apihelp-block-param-noemail": "Оневозможи му на корисникот да испаќа е-пошта преку викито. (Го бара правото „блокирање е-пошта“).",
        "apihelp-block-param-hidename": "Скриј го корисничкото име од дневникот на блокирања. (Го бара правото „скривање корисник“)",
-       "apihelp-block-param-allowusertalk": "Овозможи му на корисникот да си ја уредува сопствената страница за разговор (зависи од $wgBlockAllowsUTEdit).",
+       "apihelp-block-param-allowusertalk": "Овозможи му на корисникот да си ја уредува сопствената страница за разговор (зависи од <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Ако корисникот е веќе блокиран, наметни врз постоечкиот блок.",
        "apihelp-block-param-watchuser": "Набљудувај ја корисничката страница и страницата за разговор на овој корисник или IP-адреса",
        "apihelp-block-example-ip-simple": "Блокирај ја IP-адресата 192.0.2.5 три дена со причината „Прва опомена“",
        "apihelp-block-example-user-complex": "Блокирај го корисникот Вандал (Vandal) бесконечно со причината „Вандализам“ и оневозможи создавање на нови сметки и праќање е-пошта",
-       "apihelp-clearhasmsg-description": "Ја отстранува ознаката „hasmsg“ од тековниот корисник.",
-       "apihelp-clearhasmsg-example-1": "Отстрани ја ознаката „hasmsg“ од тековниот корисник",
+       "apihelp-clearhasmsg-description": "Ја отстранува ознаката „<code>hasmsg</code>“ од тековниот корисник.",
+       "apihelp-clearhasmsg-example-1": "Отстрани ја ознаката „<code>hasmsg</code>“ од тековниот корисник",
        "apihelp-compare-description": "Добивање на разлика помеѓу две страници.\n\nМора да се добие број на преработката, наслов на странивата или пак нејзина назнака. Важи и за „од“ и за „на“.",
        "apihelp-compare-param-fromtitle": "Прв наслов за споредба.",
        "apihelp-compare-param-fromid": "Прва назнака на страница за споредба.",
@@ -42,7 +42,7 @@
        "apihelp-compare-example-1": "Дај разлика помеѓу преработките 1 и 2",
        "apihelp-createaccount-description": "Создај нова корисничка сметка.",
        "apihelp-createaccount-param-name": "Корисничко име.",
-       "apihelp-createaccount-param-password": "Лозинка (се занемарува ако е зададено $1mailpassword).",
+       "apihelp-createaccount-param-password": "Лозинка (се занемарува ако е зададено <var>$1mailpassword</var>).",
        "apihelp-createaccount-param-domain": "Домен за надворешна заверка (незадолжително).",
        "apihelp-createaccount-param-token": "Шифра за создавање сметка добиена во првото барање.",
        "apihelp-createaccount-param-email": "Е-пошта на корисникот (незадолжително).",
@@ -91,7 +91,7 @@
        "apihelp-edit-param-contentmodel": "Содржински модел на новата содржина.",
        "apihelp-edit-param-token": "Шифрата треба секогаш да се испраќа како последниот параметар, или барем по параметарот $1text.",
        "apihelp-edit-example-edit": "Уреди страница",
-       "apihelp-edit-example-prepend": "Стави _&#95;NOTOC_&#95; пред страницата",
+       "apihelp-edit-example-prepend": "Стави <kbd>_&#95;NOTOC_&#95;</kbd> пред страницата",
        "apihelp-edit-example-undo": "Отповикај ги преработките од 13579 до 13585 со автоматски опис",
        "apihelp-emailuser-description": "Испрати е-пошта на корисник.",
        "apihelp-emailuser-param-target": "На кој корисник да му се испрати е-поштата.",
        "apihelp-filerevert-param-filename": "Име на целната податотека, без претставката „Податотека:“.",
        "apihelp-filerevert-param-comment": "Коментар за подигањето.",
        "apihelp-filerevert-param-archivename": "Архивски назив на преработката што ја повраќате.",
-       "apihelp-filerevert-example-revert": "Врати ја Wiki.png на верзијата од 2011-03-05T15:27:40Z",
+       "apihelp-filerevert-example-revert": "Врати ја <kbd>Wiki.png</kbd> на верзијата од <kbd>2011-03-05T15:27:40Z</kbd>",
        "apihelp-help-description": "Прикажувај помош за укажаните модули.",
        "apihelp-help-param-modules": "Модули за приказ на помош за (вредности на параметрите action= и format=, или пак „main“). Може да се укажат подмодули со „+“.",
        "apihelp-help-param-submodules": "Прикажувај и помош за подмодули на именуваниот модул.",
index d700f7a..28a1404 100644 (file)
@@ -13,8 +13,8 @@
        "apihelp-main-param-action": "Welke handeling uit te voeren.",
        "apihelp-main-param-format": "De opmaak van de uitvoer.",
        "apihelp-main-param-maxlag": "De maximale vertraging kan gebruikt worden als MediaWiki is geïnstalleerd op een databasecluster die gebruik maakt van replicatie. Om te voorkomen dat handelingen nog meer databasereplicatievertraging veroorzaken, kan deze parameter er voor zorgen dat de client wacht totdat de replicatievertraging lager is dan de aangegeven waarde. In het geval van buitensporige vertraging, wordt de foutcode \"maxlag\" teruggegeven met een bericht als \"Waiting for $host: $lag seconds lagged\".<br />Zie https://www.mediawiki.org/wiki/Manual:Maxlag_parameter voor mee informatie.",
-       "apihelp-main-param-smaxage": "Stelt de header \"s-maxage\" in op het aangegeven aantal seconden. Foutmeldingen komen nooit in de cache.",
-       "apihelp-main-param-maxage": "Stelt de header \"max-age\" in op het aangegeven aantal seconden. Foutmeldingen komen nooit in de cache.",
+       "apihelp-main-param-smaxage": "Stelt de header \"<code>s-maxage</code>\" in op het aangegeven aantal seconden. Foutmeldingen komen nooit in de cache.",
+       "apihelp-main-param-maxage": "Stelt de header \"<code>max-age</code>\" in op het aangegeven aantal seconden. Foutmeldingen komen nooit in de cache.",
        "apihelp-main-param-assert": "Controleer of de gebruiker is aangemeld als \"user\" is meegegeven, en of de gebruiker het robotgebruikersrecht heeft als \"bot\" is meegegeven.",
        "apihelp-main-param-requestid": "Elke waarde die hier gegeven wordt, wordt aan het antwoord toegevoegd. Dit kan gebruikt worden om verzoeken te onderscheiden.",
        "apihelp-main-param-servedby": "Voeg de hostnaam van de server die de aanvraag heeft afgehandeld toe aan het antwoord.",
@@ -48,6 +48,8 @@
        "apihelp-login-param-domain": "Domein (optioneel).",
        "apihelp-login-example-login": "Aanmelden",
        "apihelp-move-description": "Pagina hernoemen.",
+       "api-help-flag-readrights": "Voor deze module zijn leesrechten nodig.",
+       "api-help-flag-writerights": "Voor deze module zijn schrijfrechten nodig.",
        "api-help-parameters": "{{PLURAL:$1|Parameter|Parameters}}:",
        "api-help-param-deprecated": "Verouderd.",
        "api-help-param-default": "Standaard: $1",
index f6c9a61..ad6abc5 100644 (file)
@@ -10,6 +10,7 @@
        "apihelp-main-param-format": "O formato de saída.",
        "apihelp-block-description": "Bloquear um utilizador.",
        "apihelp-block-param-user": "Nome de utilizador(a), endereço ou gama de IP que pretende bloquear.",
+       "apihelp-block-param-reason": "Motivo do bloqueio.",
        "apihelp-block-param-nocreate": "Impedir criação de contas.",
        "apihelp-createaccount-description": "Criar uma nova conta.",
        "apihelp-createaccount-param-name": "Nome de utilizador(a).",
        "apihelp-edit-param-minor": "Edição menor.",
        "apihelp-edit-param-bot": "Marcar esta edição como robô.",
        "apihelp-edit-example-edit": "Editar uma página",
+       "apihelp-emailuser-description": "Enviar correio eletrónico a utilizador.",
+       "apihelp-emailuser-param-subject": "Assunto.",
+       "apihelp-emailuser-param-text": "Texto.",
        "apihelp-expandtemplates-param-title": "Título da página.",
+       "apihelp-feedcontributions-param-feedformat": "O formato do feed.",
        "apihelp-feedcontributions-param-deletedonly": "Mostrar apenas contribuições eliminadas.",
        "apihelp-feedcontributions-param-showsizediff": "Mostrar diferença de tamanho entre edições.",
+       "apihelp-feedrecentchanges-param-feedformat": "O formato do feed.",
        "apihelp-feedrecentchanges-param-limit": "Número máximo de resultados a apresentar.",
        "apihelp-feedrecentchanges-param-from": "Mostrar alterações desde então.",
        "apihelp-feedrecentchanges-param-hideminor": "Ocultar edições menores.",
@@ -57,7 +63,7 @@
        "apihelp-query+allcategories-description": "Enumerar todas as categorias.",
        "apihelp-query+allpages-param-prefix": "Pesquisa para todos os títulos de páginas que comecem com este valor.",
        "apihelp-query+allpages-example-generator": "Mostrar informação sobre 4 páginas que comecem com a letra \"T\"",
-       "apihelp-query+allusers-example-Y": "Lista de utilizadores que comecem com Y",
+       "apihelp-query+allusers-example-Y": "Lista de utilizadores que comecem com <kbd>Y</kbd>.",
        "apihelp-query+blocks-param-limit": "O número máximo de bloqueios a listar.",
        "apihelp-query+categorymembers-description": "Lista de todas as páginas numa categoria fornecida.",
        "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Modo|Modos}}: $2",
        "api-help-parameters": "{{PLURAL:$1|Parâmetro|Parâmetros}}:",
        "api-help-param-deprecated": "Obsoleto.",
        "api-help-param-required": "Este parâmetro é obrigatório.",
-       "api-help-param-multi-separate": "Separe os valores com \"|\".",
+       "api-help-param-multi-separate": "Separe os valores com <kbd>|</kbd>.",
+       "api-help-param-default": "Padrão: $1",
+       "api-help-param-default-empty": "Padrão: <span class=\"apihelp-empty\">(vazio)</span>",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(sem descrição)</span>",
        "api-help-examples": "{{PLURAL:$1|Exemplo|Exemplos}}:",
+       "api-help-permissions": "{{PLURAL:$1|Permissão|Permissiões}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|Concedida a|Concedidas a}}: $2",
        "api-credits-header": "Créditos",
        "api-credits": "Programadores API:\n* Roan Kattouw (programador principal Set 2007–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (criador, programador-líder Set 2006–Set 2007)\n* Brad Jorsch (programador-líder 2013–presente)\n\nPor favor, envie os seus comentários, sugestões e perguntas para mediawiki-api@lists.wikimedia.org ou reporte um erro técnico em https://phabricator.wikimedia.org/."
 }
index c8713e8..0791acd 100644 (file)
@@ -5,7 +5,8 @@
                        "Robby",
                        "Shirayuki",
                        "Umherirrender",
-                       "McDutchie"
+                       "McDutchie",
+                       "Raymond"
                ]
        },
        "apihelp-main-description": "{{doc-apihelp-description|main}}",
@@ -34,8 +35,8 @@
        "apihelp-block-param-watchuser": "{{doc-apihelp-param|block|watchuser}}",
        "apihelp-block-example-ip-simple": "{{doc-apihelp-example|block}}",
        "apihelp-block-example-user-complex": "{{doc-apihelp-example|block}}",
-       "apihelp-clearhasmsg-description": "{{doc-apihelp-description|clearhasmsg}}",
-       "apihelp-clearhasmsg-example-1": "{{doc-apihelp-example|clearhasmsg}}",
+       "apihelp-clearhasmsg-description": "{{doc-apihelp-description|clear<code>hasmsg</code>}}",
+       "apihelp-clearhasmsg-example-1": "{{doc-apihelp-example|clear<code>hasmsg</code>}}",
        "apihelp-compare-description": "{{doc-apihelp-description|compare}}",
        "apihelp-compare-param-fromtitle": "{{doc-apihelp-param|compare|fromtitle}}",
        "apihelp-compare-param-fromid": "{{doc-apihelp-param|compare|fromid}}",
index 330da6d..56d34ef 100644 (file)
@@ -2,13 +2,14 @@
        "@metadata": {
                "authors": [
                        "Mahairod",
-                       "Okras"
+                       "Okras",
+                       "Eakarpov"
                ]
        },
        "apihelp-main-param-action": "Действие, которое следует выполнить.",
        "apihelp-main-param-format": "Формат вывода.",
-       "apihelp-main-param-smaxage": "Устанавливает заголовок s-maxage в заданное число секунд. Ошибки никогда не кэшируются.",
-       "apihelp-main-param-maxage": "Устанавливает заголовок max-age в заданное число секунд. Ошибки никогда не кэшируются.",
+       "apihelp-main-param-smaxage": "Устанавливает заголовок <code>s-maxage</code> в заданное число секунд. Ошибки никогда не кэшируются.",
+       "apihelp-main-param-maxage": "Устанавливает заголовок <code>max-age</code> в заданное число секунд. Ошибки никогда не кэшируются.",
        "apihelp-main-param-assert": "Удостовериться, что пользователь авторизован, если задано \"user\", или что имеет права бота, если задано \"bot\".",
        "apihelp-main-param-requestid": "Любое значение, заданное здесь, будет включено в ответ. Может быть использовано для различения запросов.",
        "apihelp-main-param-servedby": "Включить в результаты имя хоста, обработавшего запрос.",
@@ -24,6 +25,7 @@
        "apihelp-disabled-description": "Этот модуль был отключен.",
        "apihelp-edit-param-sectiontitle": "Заголовок для нового раздела.",
        "apihelp-edit-param-text": "Содержание страницы.",
+       "apihelp-edit-param-watch": "Добавить страницу к текущему списку наблюдения пользователя.",
        "apihelp-edit-example-edit": "Редактировать страницу",
        "apihelp-expandtemplates-param-title": "Заголовок страницы.",
        "apihelp-import-param-xml": "Загруженный XML-файл.",
        "apihelp-login-param-domain": "Домен (необязательно).",
        "apihelp-login-example-login": "Войти",
        "apihelp-logout-description": "Выйти и очистить данные сессии.",
+       "apihelp-query+alllinks-example-unique-generator": "Получить все названия-ссылки, выделяя пропущенные.",
+       "apihelp-query+duplicatefiles-example-generated": "Поиск дубликатов всех файлов.",
+       "apihelp-query+recentchanges-example-simple": "Список последних изменений.",
+       "apihelp-upload-example-url": "Загрузить через URL",
        "api-help-main-header": "Главный модуль",
        "api-help-parameters": "Параметр{{PLURAL:$1||ы}}:",
        "api-help-param-deprecated": "Устаревший.",
index ca690bf..638b161 100644 (file)
@@ -7,7 +7,8 @@
                        "Victorsa",
                        "Albinomamba",
                        "Peki01",
-                       "Stens51"
+                       "Stens51",
+                       "Boom"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page Dokumentation]\n* [https://www.mediawiki.org/wiki/API:FAQ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-postlist]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-aviseringar]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Buggar & förslag]\n</div>\n<strong>Status:</strong> Alla funktioner som visas på denna sida borde fungera. API:et är dock fortfarande under aktiv utveckling och kan ändras när som helst. Prenumerera på [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ mediawiki-api-announce e-postlistan] för att få aviseringar om uppdateringar.\n\n<strong>Felaktiga förfrågningar:</strong> När felaktiga förfrågningar skickas till API:et skickas en HTTP-header med nyckeln \"MediaWiki-API-Error\" och sedan sätts både värdet på headern och den felkoden som returneras till samma värde. För mer information läs https://www.mediawiki.org/wiki/API:Errors_and_warnings.",
        "apihelp-block-param-autoblock": "Blockera automatiskt den senast använda IP-adressen, och alla efterföljande IP-adresser de försöker logga in från.",
        "apihelp-block-param-noemail": "Hindra användaren från att skicka e-post via wikin. (Kräver \"blockemail\"-rättigheten).",
        "apihelp-block-param-hidename": "Döljer användarnamnet från blockeringsloggen. (Kräver rättigheten \"hideuser\").",
-       "apihelp-block-param-allowusertalk": "Låt användaren redigera sin egen diskussionssida (beror på $wgBlockAllowsUTEdit).",
+       "apihelp-block-param-allowusertalk": "Låt användaren redigera sin egen diskussionssida (beror på <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Skriv över befintlig blockering om användaren redan är blockerad.",
        "apihelp-block-param-watchuser": "Bevaka användarens eller IP-adressens användarsida och diskussionssida",
        "apihelp-block-example-ip-simple": "Blockera IP-adressen 192.0.2.5 i tre dagar med motivationen \"First strike\"",
        "apihelp-block-example-user-complex": "Blockera användare Vandal på obegränsad tid med motivationen \"Vandalism\", och förhindra kontoskapande och e-post.",
-       "apihelp-clearhasmsg-description": "Rensa hasmsg-flaggan för den aktuella användaren.",
-       "apihelp-clearhasmsg-example-1": "Rensa hasmsg-flaggan för den aktuella användaren",
+       "apihelp-clearhasmsg-description": "Rensa <code>hasmsg</code>-flaggan för den aktuella användaren.",
+       "apihelp-clearhasmsg-example-1": "Rensa <code>hasmsg</code>-flaggan för den aktuella användaren",
        "apihelp-compare-description": "Hämta skillnaden mellan två sidor.\n\nDu behöver skicka ett versionsnummer, en sidtitel, eller ett sid-Id för både \"from\" och \"to\".",
        "apihelp-compare-param-fromtitle": "Första titeln att jämföra.",
        "apihelp-compare-param-fromid": "Första sid-ID att jämföra.",
@@ -45,7 +46,7 @@
        "apihelp-compare-example-1": "Skapa en diff mellan version 1 och 2",
        "apihelp-createaccount-description": "Skapa ett nytt användarkonto.",
        "apihelp-createaccount-param-name": "Användarnamn.",
-       "apihelp-createaccount-param-password": "Lösenord (ignoreras om $1mailpassword angetts).",
+       "apihelp-createaccount-param-password": "Lösenord (ignoreras om <var>$1mailpassword</var> angetts).",
        "apihelp-createaccount-param-domain": "Domän för extern autentisering (frivillig).",
        "apihelp-createaccount-param-token": "Nyckel för kontoskapande erhölls i första begäran.",
        "apihelp-createaccount-param-email": "Användarens e-postadress (valfritt).",
        "apihelp-feedwatchlist-param-linktosections": "Länka direkt till ändrade avsnitt om möjligt.",
        "apihelp-filerevert-description": "Återställ en fil till en äldre version.",
        "apihelp-filerevert-param-comment": "Ladda upp kommentar.",
-       "apihelp-filerevert-example-revert": "Återställ Wiki.png till versionen från 2011-03-05T15:27:40Z",
+       "apihelp-filerevert-example-revert": "Återställ <kbd>Wiki.png</kbd> till versionen från <kbd>2011-03-05T15:27:40Z</kbd>",
        "apihelp-help-example-main": "Hjälp för huvudmodul",
        "apihelp-help-example-recursive": "All hjälp på en sida",
        "apihelp-help-example-help": "Hjälp för själva hjälpmodulen",
        "apihelp-logout-description": "Logga ut och rensa sessionsdata.",
        "apihelp-logout-example-logout": "Logga ut den aktuella användaren",
        "apihelp-move-description": "Flytta en sida.",
+       "apihelp-move-param-from": "Titeln på sidan du vill flytta. Kan inte användas tillsammans med $1fromid.",
        "apihelp-move-param-reason": "Orsak till flyttningen.",
        "apihelp-move-param-movetalk": "Flytta diskussionssidan om den finns.",
        "apihelp-move-param-noredirect": "Skapa inte en omdirigering.",
        "apihelp-opensearch-param-format": "Formatet för utdata.",
        "apihelp-opensearch-example-te": "Hitta sidor som börjar med \"Te\"",
        "apihelp-options-example-reset": "Återställ alla inställningar",
+       "apihelp-options-example-complex": "Återställ alla inställningar, ställ sedan in \"skin\" och \"nickname\"",
+       "apihelp-paraminfo-description": "Få information om API moduler.",
        "apihelp-paraminfo-param-helpformat": "Format för hjälpsträngar.",
        "apihelp-patrol-example-revid": "Patrullera en sidversion",
        "apihelp-protect-description": "Ändra skyddsnivån för en sida.",
index 6fd5514..4bd5c26 100644 (file)
@@ -8,7 +8,7 @@
        "apihelp-main-param-action": "Яку дію виконати.",
        "apihelp-main-param-format": "Формат виводу.",
        "apihelp-createaccount-param-name": "Ім'я користувача.",
-       "apihelp-createaccount-param-password": "Пароль (ігнорується, якщо встановлено $1mailpassword).",
+       "apihelp-createaccount-param-password": "Пароль (ігнорується, якщо встановлено <var>$1mailpassword</var>).",
        "apihelp-createaccount-param-domain": "Домен для зовнішньої аутентифікації (опціонально).",
        "apihelp-edit-example-edit": "Редагувати сторінку",
        "apihelp-edit-example-prepend": "Додати зміст на початок сторінки",
index 30211af..f948fac 100644 (file)
@@ -2,17 +2,21 @@
        "@metadata": {
                "authors": [
                        "Minh Nguyen",
-                       "Max20091"
+                       "Max20091",
+                       "Dinhxuanduyet"
                ]
        },
        "apihelp-main-param-action": "Tác vụ để thực hiện.",
        "apihelp-main-param-format": "Định dạng của dữ liệu được cho ra.",
        "apihelp-block-description": "Cấm người dùng.",
+       "apihelp-block-param-user": "Tên truy nhập, địa chỉ IP hoặc dãi IP mà bạn muốn chặn.",
        "apihelp-block-param-reason": "Lý do cấm.",
        "apihelp-block-param-nocreate": "Cấm tạo tài khoản.",
+       "apihelp-clearhasmsg-description": "Xóa cờ <code>hasmsg</code> cho người dùng hiện tại.",
+       "apihelp-clearhasmsg-example-1": "Xóa cờ <code>hasmsg</code> cho người dùng hiện tại",
        "apihelp-createaccount-description": "Mở tài khoản mới.",
        "apihelp-createaccount-param-name": "Tên người dùng.",
-       "apihelp-createaccount-param-password": "Mật khẩu (được bỏ qua nếu $1mailpassword được đặt).",
+       "apihelp-createaccount-param-password": "Mật khẩu (được bỏ qua nếu <var>$1mailpassword</var> được đặt).",
        "apihelp-createaccount-param-domain": "Tên miền để xác thực bên ngoài (tùy chọn).",
        "apihelp-createaccount-param-token": "Dấu hiệu mở tài khoản được lấy trong yêu cầu đầu tiên.",
        "apihelp-createaccount-param-email": "Địa chỉ thư điện tử của thành viên (tùy chọn).",
@@ -36,7 +40,7 @@
        "apihelp-edit-param-watch": "Thêm trang vào danh sách theo dõi của bạn.",
        "apihelp-edit-param-unwatch": "Bỏ trang này khỏi danh sách theo dõi của bạn.",
        "apihelp-edit-example-edit": "Sửa đổi trang",
-       "apihelp-edit-example-prepend": "Đưa _&#95;NOTOC_&#95; vào đầu trang",
+       "apihelp-edit-example-prepend": "Đưa <kbd>_&#95;NOTOC_&#95;</kbd> vào đầu trang",
        "apihelp-edit-example-undo": "Lùi sửa các thay đổi 13579–13585 và tự động tóm lược",
        "apihelp-emailuser-description": "Gửi thư cho người dùng.",
        "apihelp-emailuser-param-target": "Người dùng để gửi thư điện tử cho.",
        "apihelp-expandtemplates-description": "Bung tất cả bản mẫu trong văn bản wiki.",
        "apihelp-expandtemplates-param-title": "Tên trang.",
        "apihelp-expandtemplates-param-text": "Văn bản wiki để bung.",
+       "apihelp-filerevert-param-comment": "Tải lên bình luận.",
+       "apihelp-filerevert-param-archivename": "Tên lưu trữ của bản sửa đổi để trở lại .",
+       "apihelp-filerevert-example-revert": "Hoàn nguyên <kbd>Wiki.png</kbd> veef phiên bản 2011-03-05T15 : 27:40Z",
+       "apihelp-help-description": "Hiển thị trợ giúp cho các mô-đun xác định.",
        "apihelp-help-param-helpformat": "Định dạng của văn bản trợ giúp được cho ra.",
+       "apihelp-help-example-recursive": "Tất cả trợ giúp trong một trang",
+       "apihelp-help-example-help": "Trợ giúp cho chính bản thân module trợ giúp",
+       "apihelp-help-example-query": "Trợ giúp cho hai module con truy vấn",
+       "apihelp-imagerotate-description": "Xoay một hoặc nhiều hình ảnh.",
+       "apihelp-imagerotate-param-rotation": "Độ xoay hình ảnh theo chiều kim đồng hồ.",
        "apihelp-imagerotate-example-simple": "Xoay [[:Tập tin:Ví dụ.jpg]] 90 độ",
        "apihelp-imagerotate-example-generator": "Xoay tất cả các hình ảnh trong [[:Thể loại:Búng]] 180 độ",
        "apihelp-login-param-name": "Tên người dùng.",
@@ -70,6 +83,8 @@
        "apihelp-options-example-reset": "Mặc định lại các tùy chọn",
        "apihelp-paraminfo-param-helpformat": "Định dạng chuỗi trợ giúp.",
        "apihelp-parse-param-summary": "Lời tóm lược để phân tích.",
+       "apihelp-parse-param-section": "Chỉ truy xuất nội dung của số bộ phận này.",
+       "apihelp-parse-param-disablepp": "Vô hiệu hóa phân tích cú pháp đầu ra của Báo cáo PP .",
        "apihelp-parse-example-page": "Phân tích trang.",
        "apihelp-parse-example-text": "Phân tích văn bản wiki.",
        "apihelp-parse-example-texttitle": "Phân tích văn bản wiki theo tên trang.",
@@ -82,6 +97,7 @@
        "apihelp-query-param-prop": "Các thuộc tính để lấy khi truy vấn các trang.",
        "apihelp-query-param-list": "Các danh sách để lấy.",
        "apihelp-query-param-meta": "Siêu dữ liệu để lấy.",
+       "apihelp-query+allcategories-param-dir": "Hướng xếp loại.",
        "apihelp-format-example-generic": "Định dạng kết quả truy vấn dưới dạng $1",
        "apihelp-dbg-description": "Cho ra dữ liệu dưới dạng var_export() của PHP.",
        "apihelp-dbgfm-description": "Cho ra dữ liệu dưới dạng var_export() của PHP (định dạng bằng HTML).",
index ecfea8e..db7c1df 100644 (file)
@@ -7,15 +7,16 @@
                        "Papapasan",
                        "LNDDYL",
                        "Shizhao",
-                       "Yfdyh000"
+                       "Yfdyh000",
+                       "JuneAugsut"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page/zh 文档]\n* [https://www.mediawiki.org/wiki/API:FAQ/zh 常见问题]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api 邮件列表]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API公告]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R 程序错误与功能请求]\n</div>\n<strong>状态信息:</strong> 本页所展示的所有特性都应正常工作,但是API仍在开发当中,将会随时变化。请订阅[https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ mediawiki-api-announce 邮件列表]以便获得更新通知。\n\n<strong>错误请求:</strong> 当API收到错误请求时,HTTP header将会返回一个包含\"MediaWiki-API-Error\"的值,随后header的值与error code将会送回并设置为相同的值。详细信息请参阅 https://www.mediawiki.org/wiki/API:Errors_and_warnings 。",
        "apihelp-main-param-action": "要执行的操作。",
        "apihelp-main-param-format": "输出的格式。",
        "apihelp-main-param-maxlag": "最大延迟可被用于MediaWiki安装于数据库复制集中。要保存导致更多网站复制延迟的操作,此参数可使客户端等待直到复制延迟少于指定值时。万一发生过多延迟,错误代码“maxlag”会返回消息,例如“等待$host中:延迟$lag秒”。<br />参见https://www.mediawiki.org/wiki/Manual:Maxlag_parameter以获取更多信息。",
-       "apihelp-main-param-smaxage": "设置s-maxage页顶至这些秒。错误不会缓存。",
-       "apihelp-main-param-maxage": "设置max-age页顶至这些秒。错误不会缓存。",
+       "apihelp-main-param-smaxage": "设置<code>s-maxage</code>页顶至这些秒。错误不会缓存。",
+       "apihelp-main-param-maxage": "设置<code>max-age</code>页顶至这些秒。错误不会缓存。",
        "apihelp-main-param-assert": "如果设置为“user”就验证用户是否登录,或如果设置为“bot”就验证是否有机器人用户权限。",
        "apihelp-main-param-requestid": "任何在此提供的值将包含在响应中。可能可以用以区别请求。",
        "apihelp-main-param-servedby": "包含保存结果请求的主机名。",
        "apihelp-block-param-autoblock": "自动封禁最近使用的IP地址,以及以后他们尝试登陆使用的IP地址。",
        "apihelp-block-param-noemail": "阻止用户通过 wiki发送电子邮件。(要求\"blockemail\"权限)。",
        "apihelp-block-param-hidename": "从封禁日志中隐藏用户名。(需要“隐藏用户”权限)。",
-       "apihelp-block-param-allowusertalk": "允许用户编辑自己的讨论页 (取决于 $wgBlockAllowsUTEdit)。",
+       "apihelp-block-param-allowusertalk": "允许用户编辑自己的讨论页 (取决于 <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>)。",
        "apihelp-block-param-reblock": "如果该用户已被封禁,则覆盖已有的封禁。",
        "apihelp-block-param-watchuser": "监视该用户或该 IP 的用户页和讨论页。",
        "apihelp-block-example-ip-simple": "封禁IP地址192.0.2.5三天,原因“首次处理”",
        "apihelp-block-example-user-complex": "无限期封禁破坏用户,原因“纯破坏用户”,并阻止新账户创建和电子邮件",
-       "apihelp-clearhasmsg-description": "清除当前用户的 hasmsg 标志。",
-       "apihelp-clearhasmsg-example-1": "清除当前用户的 hasmsg 标志",
+       "apihelp-clearhasmsg-description": "清除当前用户的 <code>hasmsg</code> 标志。",
+       "apihelp-clearhasmsg-example-1": "清除当前用户的 <code>hasmsg</code> 标志",
        "apihelp-compare-description": "获取2个页面之间的差别。\n\n您必须为\"from\"和\"to\"传递特定的修订版本号、 页面标题或页面ID。",
        "apihelp-compare-param-fromtitle": "要比较的第一个标题。",
        "apihelp-compare-param-fromid": "要比较的第一个页面 ID。",
@@ -48,7 +49,7 @@
        "apihelp-compare-example-1": "在版本1和2中创建差异",
        "apihelp-createaccount-description": "创建一个新用户账户。",
        "apihelp-createaccount-param-name": "用户名",
-       "apihelp-createaccount-param-password": "密码(如果设置$1mailpassword则忽略)。",
+       "apihelp-createaccount-param-password": "密码(如果设置<var>$1mailpassword</var>则忽略)。",
        "apihelp-createaccount-param-domain": "外部身份验证域 (可选)。",
        "apihelp-createaccount-param-token": "在第一个请求中获得的帐户创建标记。",
        "apihelp-createaccount-param-email": "用户的电子邮件地址(可选)。",
@@ -81,7 +82,7 @@
        "apihelp-edit-param-bot": "标记此编辑为机器人编辑。",
        "apihelp-edit-param-basetimestamp": "基础修订的时间戳,用于检测编辑冲突。也许可以通过[[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]]得到。",
        "apihelp-edit-param-starttimestamp": "您开始编辑过程的时间戳,用于检测编辑冲突。当开始编辑过程时(例如当加载要编辑的页面时)使用[[Special:ApiHelp/main|curtimestamp]]可能取得一个适当的值。",
-       "apihelp-edit-param-recreate": "覆盖有关同时删除的条目的任何错误。",
+       "apihelp-edit-param-recreate": "覆盖有关该页面在此期间已被删除的任何错误。",
        "apihelp-edit-param-createonly": "不要编辑页面,如果已经存在。",
        "apihelp-edit-param-nocreate": "如果该页面不存在,则抛出一个错误。",
        "apihelp-edit-param-watch": "将页面加入您的监视列表。",
@@ -97,7 +98,7 @@
        "apihelp-edit-param-contentmodel": "新内容的内容模型。",
        "apihelp-edit-param-token": "令牌应总是发送为最后参数,或至少在$1text参数之后。",
        "apihelp-edit-example-edit": "编辑一个页面",
-       "apihelp-edit-example-prepend": "页面中预置_&#95;NOTOC_&#95;",
+       "apihelp-edit-example-prepend": "页面中预置<kbd>_&#95;NOTOC_&#95;</kbd>",
        "apihelp-edit-example-undo": "通过13585撤销修订版本13579并自动填写编辑摘要",
        "apihelp-emailuser-description": "电子邮件联系一位用户。",
        "apihelp-emailuser-param-target": "电子邮件的目标用户。",
        "apihelp-filerevert-description": "回退一个文件至某一旧版本。",
        "apihelp-filerevert-param-filename": "目标文件名,不包含前缀“File:”。",
        "apihelp-filerevert-param-comment": "上传评论。",
-       "apihelp-filerevert-example-revert": "回退Wiki.png至2011-03-05T15:27:40Z的版本",
+       "apihelp-filerevert-param-archivename": "恢复到修订版存档名称。",
+       "apihelp-filerevert-example-revert": "回退<kbd>Wiki.png</kbd>至<kbd>2011-03-05T15:27:40Z</kbd>的版本",
        "apihelp-help-description": "显示指定模块的帮助。",
        "apihelp-help-param-submodules": "包括给定名称模块的子模块的帮助。",
        "apihelp-help-param-recursivesubmodules": "包括递归子模块的帮助。",
        "apihelp-query+allimages-example-B": "显示以字母“B”开始的文件列表",
        "apihelp-query+allimages-example-mimetypes": "显示带MIME类型<kbd>image/png</kbd>或<kbd>image/gif</kbd>的文件列表",
        "apihelp-query+allimages-example-generator": "显示有关4个以“T”开头的文件的信息",
+       "apihelp-query+alllinks-param-namespace": "要列举的名字空间。",
+       "apihelp-query+alllinks-param-limit": "总共要返回多少个项目。",
+       "apihelp-query+alllinks-param-dir": "列出方向。",
+       "apihelp-query+alllinks-example-unique": "列出唯一的链接标题",
        "apihelp-query+alllinks-example-generator": "获取包含这些链接的页面",
        "apihelp-query+allmessages-description": "返回来自该站点的消息。",
        "apihelp-query+allmessages-param-messages": "要输出的哪些消息。\"*\" (默认值) 表示所有消息。",
        "apihelp-query+allmessages-param-prefix": "返回带有该前缀的消息。",
        "apihelp-query+allmessages-example-ipb": "显示以“ipb-”开始的消息",
        "apihelp-query+allmessages-example-de": "显示德语版的“八月”和“首页”消息",
+       "apihelp-query+allpages-param-namespace": "要列举的名字空间。",
        "apihelp-query+allpages-param-filterredir": "要列出哪些页面。",
        "apihelp-query+allpages-param-minsize": "限于至少这么多字节的页面。",
        "apihelp-query+allpages-param-maxsize": "限于至多这么多字节的页面。",
        "apihelp-query+allredirects-description": "列出至一个名字空间的重定向。",
        "apihelp-query+allredirects-param-namespace": "要列举的名字空间。",
        "apihelp-query+allredirects-param-limit": "返回的总计项目数。",
+       "apihelp-query+allredirects-param-dir": "罗列所采用的方向。",
        "apihelp-query+allredirects-example-unique": "列出孤立目标页面",
        "apihelp-query+allredirects-example-unique-generator": "获得所有目标页面,标记丢失的",
        "apihelp-query+allredirects-example-generator": "获得包含重定向的页面",
        "apihelp-query+alltransclusions-description": "列出所有嵌入页面(使用&#123;&#123;x&#125;&#125;嵌入的页面),包括不存在的。",
        "apihelp-query+alltransclusions-param-namespace": "要列举的名字空间。",
+       "apihelp-query+alltransclusions-param-dir": "罗列所采用的方向。",
        "apihelp-query+alltransclusions-example-unique": "列出孤立嵌入标题",
        "apihelp-query+allusers-param-dir": "排序方向。",
        "apihelp-query+allusers-param-group": "只包含指定组中的用户。",
        "apihelp-query+backlinks-param-title": "要搜索的标题。不能与$1pageid一起使用。",
        "apihelp-query+backlinks-param-pageid": "要搜索的页面ID。不能与$1title一起使用。",
        "apihelp-query+backlinks-param-namespace": "要列举的名字空间。",
+       "apihelp-query+backlinks-param-dir": "罗列所采用的方向。",
        "apihelp-query+backlinks-example-simple": "显示至[[首页]]的链接",
        "apihelp-query+backlinks-example-generator": "获取关于链接至[[首页]]的页面的信息",
        "apihelp-query+blocks-description": "列出所有被封禁的用户和IP地址。",
        "apihelp-query+blocks-example-users": "列出用户Alice和Bob的封禁",
        "apihelp-query+categories-param-show": "显示何种分类。",
        "apihelp-query+categories-param-limit": "返回多少分类。",
+       "apihelp-query+categories-param-dir": "罗列所采用的方向。",
        "apihelp-query+categories-example-simple": "获取属于[[阿尔伯特·爱因斯坦]]的分类列表",
        "apihelp-query+categories-example-generator": "获取有关用于[[阿尔伯特·爱因斯坦]]的分类的信息",
        "apihelp-query+categoryinfo-example-simple": "获取有关[[:Category:Foo]]和[[:Category:Bar]]的信息",
        "apihelp-query+deletedrevs-example-mode1": "列出最近已删除的对首页和Talk:首页的贡献,带内容(模式1)",
        "apihelp-query+deletedrevs-example-mode2": "列出由Bob作出的最近50次已删除贡献(模式2)",
        "apihelp-query+deletedrevs-example-mode3-main": "列出前50次主名字空间已删除贡献(模式3)",
-       "apihelp-query+deletedrevs-example-mode3-talk": "列出前50次讨论名字空间已删除页面(模式3):",
+       "apihelp-query+deletedrevs-example-mode3-talk": "列出前50次{{ns:talk}}名字空间已删除页面(模式3):",
        "apihelp-query+disabled-description": "此查询模块已被禁用。",
        "apihelp-query+duplicatefiles-param-limit": "返回多少重复文件。",
+       "apihelp-query+duplicatefiles-param-dir": "罗列所采用的方向。",
+       "apihelp-query+duplicatefiles-param-localonly": "只看本地存储库的文件。",
        "apihelp-query+duplicatefiles-example-simple": "查找与[[:File:Albert Einstein Head.jpg]]重复的文件",
        "apihelp-query+duplicatefiles-example-generated": "查找所有文件的重复文件",
        "apihelp-query+embeddedin-param-title": "要搜索的标题。不能与$1pageid一起使用。",
        "apihelp-query+embeddedin-param-pageid": "要搜索的页面ID。不能与$1title一起使用。",
        "apihelp-query+embeddedin-param-namespace": "列举的名字空间。",
+       "apihelp-query+embeddedin-param-dir": "罗列所采用的方向。",
        "apihelp-query+embeddedin-param-filterredir": "如何过滤重定向。",
        "apihelp-query+embeddedin-param-limit": "返回的总计页面数。",
        "apihelp-query+embeddedin-example-simple": "显示嵌入[[Template:Stub]]的页面",
        "apihelp-query+extlinks-example-simple": "获取[[首页]]的外部链接列表",
        "apihelp-query+exturlusage-param-limit": "返回多少页面。",
        "apihelp-query+exturlusage-example-simple": "显示链接至http://www.mediawiki.org的页面",
+       "apihelp-query+filearchive-param-dir": "罗列所采用的方向。",
        "apihelp-query+filearchive-param-sha1": "图片的SHA1哈希值。覆盖$1sha1base36。",
        "apihelp-query+filearchive-param-sha1base36": "基于base 36的图片的SHA1哈希值(用于MediaWiki)。",
        "apihelp-query+filearchive-example-simple": "显示已删除文件列表",
        "apihelp-query+imageinfo-example-simple": "获取有关[[:File:Albert Einstein Head.jpg]]的当前版本的信息",
        "apihelp-query+imageinfo-example-dated": "获取有关[[:File:Albert Einstein Head.jpg]]自2008年以来版本的信息",
        "apihelp-query+images-param-limit": "返回多少文件。",
+       "apihelp-query+images-param-dir": "罗列所采用的方向。",
        "apihelp-query+images-example-simple": "获取[[首页]]使用的文件列表",
        "apihelp-query+images-example-generator": "获取有关[[首页]]使用的文件的信息",
        "apihelp-query+imageusage-param-title": "要搜索的标题。不能与$1pageid一起使用。",
        "apihelp-query+imageusage-param-pageid": "要搜索的页面ID。不能与$1title一起使用。",
        "apihelp-query+imageusage-param-namespace": "要列举的名字空间。",
+       "apihelp-query+imageusage-param-dir": "罗列所采用的方向。",
        "apihelp-query+imageusage-example-simple": "显示使用[[:File:Albert Einstein Head.jpg]]的页面",
        "apihelp-query+imageusage-example-generator": "获取有关使用[[:File:Albert Einstein Head.jpg]]的页面的信息",
        "apihelp-query+info-description": "获取基本页面信息。",
        "apihelp-query+info-param-prop": "要获取的额外属性:",
+       "apihelp-query+info-paramvalue-prop-watchers": "监视人员数,如果允许。",
        "apihelp-query+info-param-token": "请改用[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]。",
        "apihelp-query+info-example-simple": "获取有关[[首页]]的信息",
        "apihelp-query+info-example-protection": "获取[[首页]]的一般和保护信息",
        "apihelp-query+iwbacklinks-param-prefix": "跨维基前缀。",
        "apihelp-query+iwbacklinks-param-limit": "返回的总计页面数。",
        "apihelp-query+iwbacklinks-param-prop": "要获取的属性:\n;iwprefix:加入跨wiki前缀。\n;iwtitle:加入跨wiki标题。",
+       "apihelp-query+iwbacklinks-param-dir": "罗列所采用的方向。",
        "apihelp-query+iwbacklinks-example-simple": "获取链接至[[wikibooks:Test]]的页面",
        "apihelp-query+iwbacklinks-example-generator": "获取有关链接至[[wikibooks:Test]]的页面的信息",
        "apihelp-query+iwlinks-param-url": "是否获取完整URL(不能与$1prop一起使用)。",
        "apihelp-query+iwlinks-param-limit": "返回多少跨wiki链接。",
        "apihelp-query+iwlinks-param-prefix": "只返回此前缀的跨wiki链接。",
        "apihelp-query+iwlinks-param-title": "用于搜索的跨wiki链接。必须与$1prefix一起使用。",
+       "apihelp-query+iwlinks-param-dir": "罗列所采用的方向。",
        "apihelp-query+iwlinks-example-simple": "从[[首页]]获取跨wiki链接",
        "apihelp-query+langbacklinks-param-lang": "用于语言链接的语言。",
        "apihelp-query+langbacklinks-param-title": "要搜索的语言链接。必须与$1lang一起使用。",
+       "apihelp-query+langbacklinks-param-dir": "罗列所采用的方向。",
        "apihelp-query+langbacklinks-example-simple": "获取链接至[[:fr:Test]]的页面",
        "apihelp-query+langbacklinks-example-generator": "获取链接至[[:fr:Test]]的页面的信息",
        "apihelp-query+langlinks-param-limit": "返回多少语言链接。",
        "apihelp-query+langlinks-param-url": "是否获取完整URL(不能与$1prop一起使用)。",
        "apihelp-query+langlinks-param-title": "要搜索的链接。必须与$1lang一起使用。",
+       "apihelp-query+langlinks-param-dir": "罗列所采用的方向。",
        "apihelp-query+langlinks-param-inlanguagecode": "本地化语言名称的语言代码。",
        "apihelp-query+langlinks-example-simple": "从[[首页]]获取跨语言链接",
        "apihelp-query+links-param-limit": "返回多少链接。",
+       "apihelp-query+links-param-dir": "罗列所采用的方向。",
        "apihelp-query+links-example-simple": "从[[首页]]获取链接",
        "apihelp-query+links-example-generator": "获取有关[[首页]]链接页面的信息",
        "apihelp-query+links-example-namespaces": "获取用户和模板名字空间中来自[[首页]]的链接",
        "apihelp-query+pagepropnames-description": "列出wiki中所有使用中的页面属性名称。",
        "apihelp-query+pagepropnames-example-simple": "获取前10个常用名称",
        "apihelp-query+pageprops-example-simple": "获取用于[[:Category:Foo]]的属性",
+       "apihelp-query+pageswithprop-param-dir": "排序的方向。",
        "apihelp-query+pageswithprop-example-simple": "列出前10个使用&#123;&#123;DISPLAYTITLE:&#125;&#125;的页面",
-       "apihelp-query+pageswithprop-example-generator": "获取有关前10个使用_&#95;NOTOC_&#95;的页面的信息",
+       "apihelp-query+pageswithprop-example-generator": "获取有关前10个使用<code>_&#95;NOTOC_&#95;</code>的页面的信息。",
        "apihelp-query+prefixsearch-param-search": "搜索字符串。",
        "apihelp-query+prefixsearch-param-namespace": "搜索的名字空间。",
        "apihelp-query+prefixsearch-param-offset": "跳过的结果数。",
        "apihelp-query+recentchanges-param-excludeuser": "不要列出此用户的更改。",
        "apihelp-query+recentchanges-param-tag": "只列出带此标签的更改。",
        "apihelp-query+recentchanges-param-token": "请改用[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]。",
+       "apihelp-query+recentchanges-param-limit": "返回的总计更新数。",
+       "apihelp-query+recentchanges-param-type": "显示的更改类型。",
        "apihelp-query+recentchanges-example-simple": "最近更改列表",
+       "apihelp-query+redirects-description": "返回至指定页面的所有重定向。",
        "apihelp-query+redirects-param-namespace": "只包含这些名字空间的页面。",
        "apihelp-query+redirects-param-limit": "返回多少重定向。",
        "apihelp-query+redirects-example-simple": "获取至[[Project:首页]]的重定向列表",
        "apihelp-query+search-param-limit": "返回的总计页面数。",
        "apihelp-query+search-param-interwiki": "搜索结果中包含跨wiki结果,如果可用。",
        "apihelp-query+search-example-simple": "搜索“意义”",
-       "apihelp-query+search-example-text": "搜索文本“意义”",
+       "apihelp-query+search-example-text": "搜索文本<kbd>meaning</kbd>。",
        "apihelp-query+siteinfo-param-numberingroup": "列出用户组中的用户数。",
        "apihelp-query+siteinfo-example-simple": "获取网站信息",
        "apihelp-query+siteinfo-example-interwiki": "获取本地跨wiki前缀列表",
+       "apihelp-query+siteinfo-example-replag": "检查当前的响应延迟。",
        "apihelp-query+tags-description": "列出更改标签。",
        "apihelp-query+tags-example-simple": "可用标签列表",
        "apihelp-query+templates-param-namespace": "只显示此名字空间的模板。",
        "apihelp-query+templates-param-limit": "返回多少模板。",
        "apihelp-query+templates-param-templates": "只列出这些模板。对于检查某一页面使用某一模板很有用。",
+       "apihelp-query+templates-param-dir": "罗列所采用的方向。",
        "apihelp-query+templates-example-simple": "从[[首页]]获取模板",
        "apihelp-query+templates-example-generator": "获取有关[[首页]]中的模板页面的信息",
        "apihelp-query+templates-example-namespaces": "从[[首页]]获取用户和模板名字空间中的模板",
        "apihelp-query+watchlistraw-description": "获取登录用户的监视列表的所有页面。",
        "apihelp-query+watchlistraw-param-namespace": "只列出指定名字空间的页面。",
        "apihelp-query+watchlistraw-param-token": "允许访问其他用户监视列表的安全密钥(可通过用户的[[Special:Preferences#mw-prefsection-watchlist|参数设置]]找到)。",
+       "apihelp-query+watchlistraw-example-simple": "列出当前用户的监视列表中的页面。",
        "apihelp-revisiondelete-description": "删除和恢复修订版本。",
        "apihelp-revisiondelete-param-hide": "每次修订要隐藏的东西。",
        "apihelp-revisiondelete-param-show": "每次修订要恢复显示的东西。",
        "apihelp-rollback-example-summary": "回退由IP用户192.0.2.5对[[首页]]做出的最近编辑,带编辑摘要“回退破坏”,并将这些编辑和回退标记为“机器人”",
        "apihelp-rsd-description": "导出一个RSD(Really Simple Discovery)架构",
        "apihelp-rsd-example-simple": "导出RSD架构",
+       "apihelp-setnotificationtimestamp-example-pagetimestamp": "设置“首页”的通知时间戳,这样所有从2012年1月1日起的编辑都会是未复核的",
        "apihelp-tokens-param-type": "要请求的令牌类型。",
        "apihelp-unblock-description": "解封一位用户。",
        "apihelp-unblock-param-id": "解封时需要的封禁ID(通过list=blocks获得)。不能与$1user一起使用。",
        "apihelp-undelete-param-title": "要恢复的页面标题。",
        "apihelp-undelete-param-reason": "恢复的原因。",
        "apihelp-undelete-example-page": "恢复[[首页]]",
-       "apihelp-undelete-example-revisions": "恢复[[首页]]的两个修订",
+       "apihelp-undelete-example-revisions": "恢复<kbd>首页</kbd>的两个修订。",
        "apihelp-upload-param-filename": "目标文件名。",
        "apihelp-upload-param-watch": "监视页面。",
        "apihelp-upload-param-ignorewarnings": "忽略任何警告。",
        "apihelp-userrights-example-userid": "将ID为123的用户加入至“机器人”组,并将其从“管理员”和“行政员”组移除",
        "apihelp-watch-param-title": "要(取消)监视的页面。也可使用$1titles。",
        "apihelp-watch-example-watch": "监视页面“首页”",
-       "apihelp-watch-example-unwatch": "取消监视页面“首页”",
+       "apihelp-watch-example-unwatch": "取消监视页面<kbd>首页</kbd>。",
        "apihelp-dbg-description": "输出数据为PHP的var_export()格式。",
        "apihelp-dbgfm-description": "输出数据为PHP的var_export()格式(HTML优质打印效果)。",
        "apihelp-dump-description": "输出数据为PHP的var_dump()格式。",
        "api-help-parameters": "{{PLURAL:$1|参数}}:",
        "api-help-param-deprecated": "不推荐使用。",
        "api-help-param-required": "这个参数是必须的。",
-       "api-help-param-list": "{{PLURAL:$1|1=一个值|2=值(以“{{!}}”分隔)}}:$2",
+       "api-help-param-list": "{{PLURAL:$1|1=一个值|2=值(以<kbd>{{!}}</kbd>分隔)}}:$2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=必须为空|可以为空,或$2}}",
        "api-help-param-limit": "不允许超过$1。",
        "api-help-param-limit2": "不允许超过$1个(对于机器人则是$2个)。",
index 1dedfdd..6c2febe 100644 (file)
@@ -16,7 +16,7 @@
        "apihelp-block-param-autoblock": "自動封鎖最後使用的 IP 位址,以及在這之後嘗試登入的 IP 位址。",
        "apihelp-block-param-noemail": "禁止使用者透過 Wiki 寄送電子郵件。 (需要 \"blockemail\" 權限)。",
        "apihelp-block-param-hidename": "隱藏封鎖日誌的使用者名稱。 (需要 \"hideuser\" 權限)。",
-       "apihelp-block-param-allowusertalk": "允許使用者編輯自己的對話頁面 (依據 $wgBlockAllowsUTEdit 的設定)。",
+       "apihelp-block-param-allowusertalk": "允許使用者編輯自己的對話頁面 (依據 <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var> 的設定)。",
        "apihelp-block-param-reblock": "若使用者已被封鎖,覆寫既有的封鎖設定值。",
        "apihelp-block-param-watchuser": "監視使用者或 IP 的使用者頁面與對話頁面。",
        "apihelp-compare-param-fromtitle": "要比對的第一個標題。",
@@ -28,7 +28,7 @@
        "apihelp-compare-example-1": "建立修訂 1 與 1 的差異檔",
        "apihelp-createaccount-description": "建立新使用者帳號。",
        "apihelp-createaccount-param-name": "使用者名稱。",
-       "apihelp-createaccount-param-password": "密碼 (若有設定 $1mailpassword 則可略過)。",
+       "apihelp-createaccount-param-password": "密碼 (若有設定 <var>$1mailpassword</var> 則可略過)。",
        "apihelp-createaccount-param-domain": "外部認証使用的網域 (選填)。",
        "apihelp-createaccount-param-token": "已取得帳號建立密鑰於第一次請求。",
        "apihelp-createaccount-param-email": "使用者的電子郵件位址 (選填)。",
        "apihelp-expandtemplates-description": "展開所有於 wikitext 中模板。",
        "apihelp-expandtemplates-param-title": "頁面標題。",
        "apihelp-expandtemplates-param-text": "要轉換的 Wikitext。",
+       "apihelp-feedrecentchanges-example-simple": "顯示近期變動",
+       "apihelp-feedrecentchanges-example-30days": "顯示近期30天內的變動",
+       "apihelp-filerevert-param-comment": "上載意見。",
+       "apihelp-help-example-main": "主模組使用說明",
+       "apihelp-import-param-xml": "上載的 XML 檔。",
+       "apihelp-import-param-interwikisource": "用於跨 wiki 匯入:匯入的來源 wiki。",
+       "apihelp-import-param-interwikipage": "用於跨 wiki 匯入:匯入的頁面。",
+       "apihelp-import-param-fullhistory": "用於跨 wiki 匯入:完整匯入歷史,而不只是最新版本。",
+       "apihelp-import-param-templates": "用於跨 wiki 匯入:匯入一切包含的模板。",
+       "apihelp-import-param-namespace": "用於跨 wiki 匯入:匯入至此命名空間。",
+       "apihelp-import-param-rootpage": "匯入作為此頁面的子頁面。",
        "apihelp-login-param-name": "使用者名稱。",
+       "apihelp-login-param-password": "密碼。",
+       "apihelp-login-param-domain": "網域名稱(可選)。",
        "apihelp-login-example-login": "登入",
+       "apihelp-logout-description": "登出並清除 session 資料。",
+       "apihelp-logout-example-logout": "登出當前使用者",
        "apihelp-move-description": "移動頁面。",
        "apihelp-opensearch-param-search": "搜尋字串。",
        "apihelp-options-example-reset": "重設所有偏好設定",
index df90f22..1d9ee33 100644 (file)
@@ -2,8 +2,6 @@
 /**
  * JSON Content Model
  *
- * This class requires the root structure to be an object (not primitives or arrays).
- *
  * @file
  *
  * @author Ori Livneh <ori@wikimedia.org>
@@ -41,7 +39,10 @@ class JsonContent extends TextContent {
        }
 
        /**
-        * Decodes the JSON string into a PHP object.
+        * Decodes the JSON string.
+        *
+        * Note that this parses it without casting objects to associative arrays.
+        * Objects and arrays are kept as distinguishable types in the PHP values.
         *
         * @return Status
         */
@@ -56,7 +57,7 @@ class JsonContent extends TextContent {
         * @return bool Whether content is valid.
         */
        public function isValid() {
-               return $this->getData()->isGood() && is_object( $this->getData()->getValue() );
+               return $this->getData()->isGood();
        }
 
        /**
@@ -103,7 +104,7 @@ class JsonContent extends TextContent {
                // FIXME: WikiPage::doEditContent generates parser output before validation.
                // As such, native data may be invalid (though output is discarded later in that case).
                if ( $generateHtml && $this->isValid() ) {
-                       $output->setText( $this->objectTable( $this->getData()->getValue() ) );
+                       $output->setText( $this->rootValueTable( $this->getData()->getValue() ) );
                        $output->addModuleStyles( 'mediawiki.content.json' );
                } else {
                        $output->setText( '' );
@@ -111,9 +112,35 @@ class JsonContent extends TextContent {
        }
 
        /**
-        * Construct an HTML representation of a JSON object.
+        * Construct HTML table representation of any JSON value.
         *
-        * Called recursively via valueCell().
+        * See also valueCell, which is similar.
+        *
+        * @param mixed $val
+        * @return string HTML.
+        */
+       protected function rootValueTable( $val ) {
+               if ( is_object( $val ) ) {
+                       return self::objectTable( $val );
+               }
+
+               if ( is_array( $val ) ) {
+                       // Wrap arrays in another array so that they're visually boxed in a container.
+                       // Otherwise they are visually indistinguishable from a single value.
+                       return self::arrayTable( array( $val ) );
+               }
+
+               return Html::rawElement( 'table', array( 'class' => 'mw-json mw-json-single-value' ),
+                       Html::rawElement( 'tbody', array(),
+                               Html::rawElement( 'tr', array(),
+                                       Html::element( 'td', array(), self::primitiveValue( $val ) )
+                               )
+                       )
+               );
+       }
+
+       /**
+        * Create HTML table representing a JSON object.
         *
         * @param stdClass $mapping
         * @return string HTML
@@ -134,26 +161,25 @@ class JsonContent extends TextContent {
                        );
                }
                return Html::rawElement( 'table', array( 'class' => 'mw-json' ),
-                       Html::rawElement( 'tbody', array(), join( "\n", $rows ) )
+                       Html::rawElement( 'tbody', array(), join( '', $rows ) )
                );
        }
 
        /**
-        * Construct HTML representation of a single key-value pair.
+        * Create HTML table row representing one object property.
+        *
         * @param string $key
         * @param mixed $val
         * @return string HTML.
         */
        protected function objectRow( $key, $val ) {
-               $th = Xml::elementClean( 'th', array(), $key );
+               $th = Html::element( 'th', array(), $key );
                $td = self::valueCell( $val );
                return Html::rawElement( 'tr', array(), $th . $td );
        }
 
        /**
-        * Constructs an HTML representation of a JSON array.
-        *
-        * Called recursively via valueCell().
+        * Create HTML table representing a JSON array.
         *
         * @param array $mapping
         * @return string HTML
@@ -179,7 +205,8 @@ class JsonContent extends TextContent {
        }
 
        /**
-        * Construct HTML representation of a single array value.
+        * Create HTML table row representing the value in an array.
+        *
         * @param mixed $val
         * @return string HTML.
         */
@@ -189,7 +216,8 @@ class JsonContent extends TextContent {
        }
 
        /**
-        * Construct HTML representation of a single value.
+        * Construct HTML table cell representing any JSON value.
+        *
         * @param mixed $val
         * @return string HTML.
         */
@@ -197,15 +225,26 @@ class JsonContent extends TextContent {
                if ( is_object( $val ) ) {
                        return Html::rawElement( 'td', array(), self::objectTable( $val ) );
                }
+
                if ( is_array( $val ) ) {
                        return Html::rawElement( 'td', array(), self::arrayTable( $val ) );
                }
+
+               return Html::element( 'td', array( 'class' => 'value' ), self::primitiveValue( $val ) );
+       }
+
+       /**
+        * Construct text representing a JSON primitive value.
+        *
+        * @param mixed $val
+        * @return string Text.
+        */
+       protected function primitiveValue( $val ) {
                if ( is_string( $val ) ) {
-                       $val = '"' . $val . '"';
-               } else {
-                       $val = FormatJson::encode( $val );
+                       // Don't FormatJson::encode for strings since we want quotes
+                       // and new lines to render visually instead of escaped.
+                       return '"' . $val . '"';
                }
-
-               return Xml::elementClean( 'td', array( 'class' => 'value' ), $val );
+               return FormatJson::encode( $val );
        }
 }
index f02aa93..7b903d6 100644 (file)
@@ -126,19 +126,25 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                        $this->reportConnectionError( "Error setting character set" );
                }
 
+               // Abstract over any insane MySQL defaults
+               $set = array( 'group_concat_max_len = 262144' );
                // Set SQL mode, default is turning them all off, can be overridden or skipped with null
                if ( is_string( $wgSQLMode ) ) {
-                       $mode = $this->addQuotes( $wgSQLMode );
+                       $set[] = 'sql_mode = ' . $this->addQuotes( $wgSQLMode );
+               }
+
+               if ( $set ) {
                        // Use doQuery() to avoid opening implicit transactions (DBO_TRX)
-                       $success = $this->doQuery( "SET sql_mode = $mode", __METHOD__ );
+                       $success = $this->doQuery( 'SET ' . implode( ', ', $set ), __METHOD__ );
                        if ( !$success ) {
                                wfLogDBError(
-                                       "Error setting sql_mode to $mode on server {db_server}",
+                                       'Error setting MySQL variables on server {db_server} (check $wgSQLMode)',
                                        $this->getLogContext( array(
                                                'method' => __METHOD__,
                                        ) )
                                );
-                               $this->reportConnectionError( "Error setting sql_mode to $mode" );
+                               $this->reportConnectionError(
+                                       'Error setting MySQL variables on server {db_server} (check $wgSQLMode)' );
                        }
                }
 
diff --git a/includes/debug/logger/Factory.php b/includes/debug/logger/Factory.php
new file mode 100644 (file)
index 0000000..2660b92
--- /dev/null
@@ -0,0 +1,115 @@
+<?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
+ */
+
+
+/**
+ * PSR-3 logger instance factory.
+ *
+ * Creation of \Psr\Log\LoggerInterface instances is managed via the
+ * MWLoggerFactory::getInstance() static method which in turn delegates to the
+ * currently registered service provider.
+ *
+ * A service provider is any class implementing the MWLoggerSpi interface.
+ * There are two possible methods of registering a service provider. The
+ * MWLoggerFactory::registerProvider() static method can be called at any time
+ * to change the service provider. If MWLoggerFactory::getInstance() is called
+ * before any service provider has been registered, it will attempt to use the
+ * $wgMWLoggerDefaultSpi global to bootstrap MWLoggerSpi registration.
+ * $wgMWLoggerDefaultSpi is expected to be an array usable by
+ * ObjectFactory::getObjectFromSpec() to create a class.
+ *
+ * @see MWLoggerSpi
+ * @since 1.25
+ * @author Bryan Davis <bd808@wikimedia.org>
+ * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ */
+class MWLoggerFactory {
+
+       /**
+        * Service provider.
+        * @var MWLoggerSpi $spi
+        */
+       private static $spi;
+
+
+       /**
+        * Register a service provider to create new \Psr\Log\LoggerInterface
+        * instances.
+        *
+        * @param MWLoggerSpi $provider Provider to register
+        */
+       public static function registerProvider( MWLoggerSpi $provider ) {
+               self::$spi = $provider;
+       }
+
+
+       /**
+        * Get the registered service provider.
+        *
+        * If called before any service provider has been registered, it will
+        * attempt to use the $wgMWLoggerDefaultSpi global to bootstrap
+        * MWLoggerSpi registration. $wgMWLoggerDefaultSpi is expected to be an
+        * array usable by ObjectFactory::getObjectFromSpec() to create a class.
+        *
+        * @return MWLoggerSpi
+        * @see registerProvider()
+        * @see ObjectFactory::getObjectFromSpec()
+        */
+       public static function getProvider() {
+               if ( self::$spi === null ) {
+                       global $wgMWLoggerDefaultSpi;
+                       $provider = ObjectFactory::getObjectFromSpec(
+                               $wgMWLoggerDefaultSpi
+                       );
+                       self::registerProvider( $provider );
+               }
+               return self::$spi;
+       }
+
+
+       /**
+        * Get a named logger instance from the currently configured logger factory.
+        *
+        * @param string $channel Logger channel (name)
+        * @return \Psr\Log\LoggerInterface
+        */
+       public static function getInstance( $channel ) {
+               if ( !interface_exists( '\Psr\Log\LoggerInterface' ) ) {
+                       $message = <<<TXT
+MediaWiki requires the <a href="https://github.com/php-fig/log">PSR-3 logging library</a> to be present. This library is not embedded directly in MediaWiki's git repository and must be installed separately by the end user.
+
+Please see <a href="https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries">mediawiki.org</a> for help on installing the required components.
+TXT;
+                       echo $message;
+                       trigger_error( $message, E_USER_ERROR );
+                       die( 1 );
+               }
+
+               return self::getProvider()->getLogger( $channel );
+       }
+
+
+       /**
+        * Construction of utility class is not allowed.
+        */
+       private function __construct() {
+               // no-op
+       }
+}
index 960faef..27cf0cd 100644 (file)
  * @file
  */
 
-if ( !interface_exists( '\Psr\Log\LoggerInterface' ) ) {
-       $message = <<<TXT
-MediaWiki requires the <a href="https://github.com/php-fig/log">PSR-3 logging library</a> to be present. This library is not embedded directly in MediaWiki's git repository and must be installed separately by the end user.
-
-Please see <a href="https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries">mediawiki.org</a> for help on installing the required components.
-TXT;
-       echo $message;
-       trigger_error( $message, E_USER_ERROR );
-       die( 1 );
-}
 
 /**
- * PSR-3 logging service.
- *
- * This class provides a service interface for logging system events. The
- * MWLogger class itself is intended to be a thin wrapper around another PSR-3
- * compliant logging library. Creation of MWLogger instances is managed via
- * the MWLogger::getInstance() static method which in turn delegates to the
- * currently registered service provider.
+ * Backwards compatibility stub for usage from before the introduction of
+ * MWLoggerFactory.
  *
- * A service provider is any class implementing the MWLoggerSpi interface.
- * There are two possible methods of registering a service provider. The
- * MWLogger::registerProvider() static method can be called at any time to
- * change the service provider. If MWLogger::getInstance() is called before
- * any service provider has been registered, it will attempt to use the
- * $wgMWLoggerDefaultSpi global to bootstrap MWLoggerSpi registration.
- * $wgMWLoggerDefaultSpi is expected to be an array usable by
- * ObjectFactory::getObjectFromSpec() to create a class.
- *
- * @see MWLoggerSpi
- * @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ * @deprecated since 1.25 Use MWLoggerFactory
+ * @todo This class should be removed before the 1.25 final release.
  */
-class MWLogger implements \Psr\Log\LoggerInterface {
-
-       /**
-        * Service provider.
-        * @var MWLoggerSpi $spi
-        */
-       protected static $spi;
-
-
-       /**
-        * Wrapped PSR-3 logger instance.
-        *
-        * @var \Psr\Log\LoggerInterface $delegate
-        */
-       protected $delegate;
-
-
-       /**
-        * @param \Psr\Log\LoggerInterface $logger
-        */
-       public function __construct( \Psr\Log\LoggerInterface $logger ) {
-               $this->delegate = $logger;
-       }
-
+class MWLogger {
 
        /**
-        * Logs with an arbitrary level.
-        *
-        * @param string|int $level
-        * @param string $message
-        * @param array $context
-        */
-       public function log( $level, $message, array $context = array() ) {
-               $this->delegate->log( $level, $message, $context );
-       }
-
-
-       /**
-        * System is unusable.
-        *
-        * @param string $message
-        * @param array $context
-        */
-       public function emergency( $message, array $context = array() ) {
-               $this->log( \Psr\Log\LogLevel::EMERGENCY, $message, $context );
-       }
-
-
-       /**
-        * Action must be taken immediately.
-        *
-        * Example: Entire website down, database unavailable, etc. This should
-        * trigger the SMS alerts and wake you up.
-        *
-        * @param string $message
-        * @param array $context
-        */
-       public function alert( $message, array $context = array() ) {
-               $this->log( \Psr\Log\LogLevel::ALERT, $message, $context );
-       }
-
-
-       /**
-        * Critical conditions.
-        *
-        * Example: Application component unavailable, unexpected exception.
-        *
-        * @param string $message
-        * @param array $context
-        */
-       public function critical( $message, array $context = array( ) ) {
-               $this->log( \Psr\Log\LogLevel::CRITICAL, $message, $context );
-       }
-
-
-       /**
-        * Runtime errors that do not require immediate action but should typically
-        * be logged and monitored.
-        *
-        * @param string $message
-        * @param array $context
-        */
-       public function error( $message, array $context = array( ) ) {
-               $this->log( \Psr\Log\LogLevel::ERROR, $message, $context );
-       }
-
-
-       /**
-        * Exceptional occurrences that are not errors.
-        *
-        * Example: Use of deprecated APIs, poor use of an API, undesirable things
-        * that are not necessarily wrong.
-        *
-        * @param string $message
-        * @param array $context
-        */
-       public function warning( $message, array $context = array() ) {
-               $this->log( \Psr\Log\LogLevel::WARNING, $message, $context );
-       }
-
-
-       /**
-        * Normal but significant events.
-        *
-        * @param string $message
-        * @param array $context
-        */
-       public function notice( $message, array $context = array() ) {
-               $this->log( \Psr\Log\LogLevel::NOTICE, $message, $context );
-       }
-
-
-       /**
-        * Interesting events.
-        *
-        * Example: User logs in, SQL logs.
-        *
-        * @param string $message
-        * @param array $context
-        */
-       public function info( $message, array $context = array() ) {
-               $this->log( \Psr\Log\LogLevel::INFO, $message, $context );
-       }
-
-
-       /**
-        * Detailed debug information.
-        *
-        * @param string $message
-        * @param array $context
-        */
-       public function debug( $message, array $context = array() ) {
-               $this->log( \Psr\Log\LogLevel::DEBUG, $message, $context );
-       }
-
-
-       /**
-        * Register a service provider to create new MWLogger instances.
+        * Register a service provider to create new \Psr\Log\LoggerInterface
+        * instances.
         *
         * @param MWLoggerSpi $provider Provider to register
+        * @deprecated since 1.25 Use MWLoggerFactory::registerProvider()
         */
        public static function registerProvider( MWLoggerSpi $provider ) {
-               self::$spi = $provider;
+               MWLoggerFactory::registerProvider( $provider );
        }
 
 
@@ -209,26 +51,22 @@ class MWLogger implements \Psr\Log\LoggerInterface {
         * @return MWLoggerSpi
         * @see registerProvider()
         * @see ObjectFactory::getObjectFromSpec()
+        * @deprecated since 1.25 Use MWLoggerFactory::getProvider()
         */
        public static function getProvider() {
-               if ( self::$spi === null ) {
-                       global $wgMWLoggerDefaultSpi;
-                       $provider = ObjectFactory::getObjectFromSpec(
-                               $wgMWLoggerDefaultSpi
-                       );
-                       self::registerProvider( $provider );
-               }
-               return self::$spi;
+               return MWLoggerFactory::getProvider();
        }
 
+
        /**
         * Get a named logger instance from the currently configured logger factory.
         *
         * @param string $channel Logger channel (name)
-        * @return MWLogger
+        * @return \Psr\Log\LoggerInterface
+        * @deprecated since 1.25 Use MWLoggerFactory::getInstance()
         */
        public static function getInstance( $channel ) {
-               return self::getProvider()->getLogger( $channel );
+               return MWLoggerFactory::getInstance( $channel );
        }
 
 }
index f725b64..617842c 100644 (file)
  * @file
  */
 
+
 /**
- * MWLogger service provider that creates \Psr\Log\NullLogger instances.
- * A NullLogger silently discards all log events sent to it.
+ * MWLoggerFactory service provider that creates \Psr\Log\NullLogger
+ * instances. A NullLogger silently discards all log events sent to it.
  *
  * Usage:
  * @code
@@ -29,7 +30,7 @@
  * );
  * @endcode
  *
- * @see MWLogger
+ * @see MWLoggerFactory
  * @since 1.25
  * @author Bryan Davis <bd808@wikimedia.org>
  * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
@@ -51,7 +52,7 @@ class MWLoggerNullSpi implements MWLoggerSpi {
         * Get a logger instance.
         *
         * @param string $channel Logging channel
-        * @return MWLogger Logger instance
+        * @return \Psr\Log\NullLogger Logger instance
         */
        public function getLogger( $channel ) {
                return $this->singleton;
index cd4af9c..cd9f17f 100644 (file)
  */
 
 /**
- * Service provider interface for MWLogger implementation libraries.
+ * Service provider interface for \Psr\Log\LoggerInterface implementation
+ * libraries.
  *
  * MediaWiki can be configured to use a class implementing this interface to
- * create new MWLogger instances via either the $wgMWLoggerDefaultSpi global
- * variable or code that constructs an instance and registeres it via the
- * MWLogger::registerProvider() static method.
+ * create new \Psr\Log\LoggerInterface instances via either the
+ * $wgMWLoggerDefaultSpi global variable or code that constructs an instance
+ * and registers it via the MWLoggerFactory::registerProvider() static method.
  *
- * @see MWLogger
+ * @see MWLoggerFactory
  * @since 1.25
  * @author Bryan Davis <bd808@wikimedia.org>
  * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
@@ -37,7 +38,7 @@ interface MWLoggerSpi {
         * Get a logger instance.
         *
         * @param string $channel Logging channel
-        * @return MWLogger Logger instance
+        * @return \Psr\Log\LoggerInterface Logger instance
         */
        public function getLogger( $channel );
 
index 0737770..be46c27 100644 (file)
@@ -31,7 +31,7 @@
  * See documentation in DefaultSettings.php for detailed explanations of each
  * variable.
  *
- * @see MWLogger
+ * @see MWLoggerFactory
  * @since 1.25
  * @author Bryan Davis <bd808@wikimedia.org>
  * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
index b8813aa..79d4f24 100644 (file)
@@ -19,7 +19,8 @@
  */
 
 /**
- * MWLogger service provider that creates MWLoggerLegacyLogger instances.
+ * MWLoggerFactory service provider that creates MWLoggerLegacyLogger
+ * instances.
  *
  * Usage:
  * @code
@@ -28,7 +29,7 @@
  * );
  * @endcode
  *
- * @see MWLogger
+ * @see MWLoggerFactory
  * @since 1.25
  * @author Bryan Davis <bd808@wikimedia.org>
  * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
@@ -45,7 +46,7 @@ class MWLoggerLegacySpi implements MWLoggerSpi {
         * Get a logger instance.
         *
         * @param string $channel Logging channel
-        * @return MWLogger Logger instance
+        * @return \Psr\Log\LoggerInterface Logger instance
         */
        public function getLogger( $channel ) {
                if ( !isset( $this->singletons[$channel] ) ) {
index 6f6aa72..a9f83b0 100644 (file)
@@ -40,7 +40,7 @@ use Monolog\Formatter\FormatterInterface;
  *         'class' => 'MWLoggerMonologSamplingHandler',
  *         'args' => array(
  *           function() {
- *             return MWLogger::getProvider()->getHandler( 'some-handler');
+ *             return MWLoggerFactory::getProvider()->getHandler( 'some-handler');
  *           },
  *           2, // emit logs with a 1:2 chance
  *         ),
index 121dbe4..68acf1d 100644 (file)
@@ -19,7 +19,8 @@
  */
 
 /**
- * MWLogger service provider that creates loggers implemented by Monolog.
+ * MWLoggerFactory service provider that creates loggers implemented by
+ * Monolog.
  *
  * Configured using an array of configuration data with the keys 'loggers',
  * 'processors', 'handlers' and 'formatters'.
@@ -29,8 +30,8 @@
  * section.
  *
  * Configuration will most typically be provided in the $wgMWLoggerDefaultSpi
- * global configuration variable used by MWLogger to construct its default SPI
- * provider:
+ * global configuration variable used by MWLoggerFactory to construct its
+ * default SPI provider:
  * @code
  * $wgMWLoggerDefaultSpi = array(
  *   'class' => 'MWLoggerMonologSpi',
@@ -152,7 +153,7 @@ class MWLoggerMonologSpi implements MWLoggerSpi {
         * name will return the cached instance.
         *
         * @param string $channel Logging channel
-        * @return MWLogger Logger instance
+        * @return \Psr\Log\LoggerInterface Logger instance
         */
        public function getLogger( $channel ) {
                if ( !isset( $this->singletons['loggers'][$channel] ) ) {
@@ -163,7 +164,7 @@ class MWLoggerMonologSpi implements MWLoggerSpi {
                                $this->config['loggers']['@default'];
 
                        $monolog = $this->createLogger( $channel, $spec );
-                       $this->singletons['loggers'][$channel] = new MWLogger( $monolog );
+                       $this->singletons['loggers'][$channel] = $monolog;
                }
 
                return $this->singletons['loggers'][$channel];
index 47967e4..1bd2092 100644 (file)
@@ -605,7 +605,7 @@ class DifferenceEngine extends ContextSource {
        protected function getParserOutput( WikiPage $page, Revision $rev ) {
                $parserOptions = $page->makeParserOptions( $this->getContext() );
 
-               if ( !$rev->isCurrent() || !$rev->getTitle()->quickUserCan( "edit" ) ) {
+               if ( !$rev->isCurrent() || !$rev->getTitle()->quickUserCan( 'edit', $this->getUser() ) ) {
                        $parserOptions->setEditSection( false );
                }
 
@@ -962,7 +962,7 @@ class DifferenceEngine extends ContextSource {
                        $users = $this->mNewPage->getAuthorsBetween( $oldRev, $newRev, $limit );
                        $numUsers = count( $users );
 
-                       if ( $numUsers == 1 && $users[0] == $newRev->getRawUserText() ) {
+                       if ( $numUsers == 1 && $users[0] == $newRev->getUserText( Revision::RAW ) ) {
                                $numUsers = 0; // special case to say "by the same user" instead of "by one other user"
                        }
 
index 8c0a61a..9504112 100644 (file)
@@ -1491,7 +1491,7 @@ abstract class FileBackend {
  * @ingroup FileBackend
  * @since 1.23
  */
-class FileBackendException extends MWException {
+class FileBackendException extends Exception {
 }
 
 /**
index 2637b5a..836fd49 100644 (file)
@@ -937,6 +937,7 @@ class SwiftFileBackend extends FileBackendStore {
                                        // Convert various random Swift dates to TS_MW
                                        'mtime'  => $this->convertSwiftDate( $object->last_modified, TS_MW ),
                                        'size'   => (int)$object->bytes,
+                                       'sha1'   => null,
                                        // Note: manifiest ETags are not an MD5 of the file
                                        'md5'    => ctype_xdigit( $object->hash ) ? $object->hash : null,
                                        'latest' => false // eventually consistent
@@ -1064,6 +1065,7 @@ class SwiftFileBackend extends FileBackendStore {
                        $tmpFiles[$path] = $tmpFile;
                }
 
+               $isLatest = ( $this->isRGW || !empty( $params['latest'] ) );
                $opts = array( 'maxConnsPerHost' => $params['concurrency'] );
                $reqs = $this->http->runMulti( $reqs, $opts );
                foreach ( $reqs as $path => $op ) {
@@ -1078,6 +1080,10 @@ class SwiftFileBackend extends FileBackendStore {
                                        $this->onError( null, __METHOD__,
                                                array( 'src' => $path ) + $ep, $rerr, $rcode, $rdesc );
                                }
+                               // Set the file stat process cache in passing
+                               $stat = $this->getStatFromHeaders( $rhdrs );
+                               $stat['latest'] = $isLatest;
+                               $this->cheapCache->set( $path, 'stat', $stat );
                        } elseif ( $rcode === 404 ) {
                                $tmpFiles[$path] = false;
                        } else {
@@ -1510,25 +1516,8 @@ class SwiftFileBackend extends FileBackendStore {
                        if ( $rcode === 200 || $rcode === 204 ) {
                                // Update the object if it is missing some headers
                                $rhdrs = $this->addMissingMetadata( $rhdrs, $path );
-                               // Fetch all of the custom metadata headers
-                               $metadata = array();
-                               foreach ( $rhdrs as $name => $value ) {
-                                       if ( strpos( $name, 'x-object-meta-' ) === 0 ) {
-                                               $metadata[substr( $name, strlen( 'x-object-meta-' ) )] = $value;
-                                       }
-                               }
-                               // Fetch all of the custom raw HTTP headers
-                               $headers = $this->sanitizeHdrs( array( 'headers' => $rhdrs ) );
-                               $stat = array(
-                                       // Convert various random Swift dates to TS_MW
-                                       'mtime' => $this->convertSwiftDate( $rhdrs['last-modified'], TS_MW ),
-                                       // Empty objects actually return no content-length header in Ceph
-                                       'size'  => isset( $rhdrs['content-length'] ) ? (int)$rhdrs['content-length'] : 0,
-                                       'sha1'  => $rhdrs['x-object-meta-sha1base36'],
-                                       // Note: manifiest ETags are not an MD5 of the file
-                                       'md5'   => ctype_xdigit( $rhdrs['etag'] ) ? $rhdrs['etag'] : null,
-                                       'xattr' => array( 'metadata' => $metadata, 'headers' => $headers )
-                               );
+                               // Load the stat array from the headers
+                               $stat = $this->getStatFromHeaders( $rhdrs );
                                if ( $this->isRGW ) {
                                        $stat['latest'] = true; // strong consistency
                                }
@@ -1544,6 +1533,34 @@ class SwiftFileBackend extends FileBackendStore {
                return $stats;
        }
 
+       /**
+        * @param array $rhdrs
+        * @return array
+        */
+       protected function getStatFromHeaders( array $rhdrs ) {
+               // Fetch all of the custom metadata headers
+               $metadata = array();
+               foreach ( $rhdrs as $name => $value ) {
+                       if ( strpos( $name, 'x-object-meta-' ) === 0 ) {
+                               $metadata[substr( $name, strlen( 'x-object-meta-' ) )] = $value;
+                       }
+               }
+               // Fetch all of the custom raw HTTP headers
+               $headers = $this->sanitizeHdrs( array( 'headers' => $rhdrs ) );
+               return array(
+                       // Convert various random Swift dates to TS_MW
+                       'mtime' => $this->convertSwiftDate( $rhdrs['last-modified'], TS_MW ),
+                       // Empty objects actually return no content-length header in Ceph
+                       'size'  => isset( $rhdrs['content-length'] ) ? (int)$rhdrs['content-length'] : 0,
+                       'sha1'  => isset( $rhdrs['x-object-meta-sha1base36'] )
+                               ? $rhdrs['x-object-meta-sha1base36']
+                               : null,
+                       // Note: manifiest ETags are not an MD5 of the file
+                       'md5'   => ctype_xdigit( $rhdrs['etag'] ) ? $rhdrs['etag'] : null,
+                       'xattr' => array( 'metadata' => $metadata, 'headers' => $headers )
+               );
+       }
+
        /**
         * @return array|null Credential map
         */
@@ -1598,7 +1615,7 @@ class SwiftFileBackend extends FileBackendStore {
                        }
                        // Ceph RGW does not use <account> in URLs (OpenStack Swift uses "/v1/<account>")
                        if ( substr( $this->authCreds['storage_url'], -3 ) === '/v1' ) {
-                               $this->isRGW = true; // take advantage of strong consistency
+                               $this->isRGW = true; // take advantage of strong consistency in Ceph
                        }
                }
 
index c065148..4ee5222 100644 (file)
@@ -57,14 +57,14 @@ abstract class FileJournal {
         *
         * @param array $config
         * @param string $backend A registered file backend name
-        * @throws MWException
+        * @throws Exception
         * @return FileJournal
         */
        final public static function factory( array $config, $backend ) {
                $class = $config['class'];
                $jrn = new $class( $config );
                if ( !$jrn instanceof self ) {
-                       throw new MWException( "Class given is not an instance of FileJournal." );
+                       throw new Exception( "Class given is not an instance of FileJournal." );
                }
                $jrn->backend = $backend;
 
index 19fc4fe..c72863e 100644 (file)
@@ -78,17 +78,17 @@ class LockManagerGroup {
         * Register an array of file lock manager configurations
         *
         * @param array $configs
-        * @throws MWException
+        * @throws Exception
         */
        protected function register( array $configs ) {
                foreach ( $configs as $config ) {
                        $config['domain'] = $this->domain;
                        if ( !isset( $config['name'] ) ) {
-                               throw new MWException( "Cannot register a lock manager with no name." );
+                               throw new Exception( "Cannot register a lock manager with no name." );
                        }
                        $name = $config['name'];
                        if ( !isset( $config['class'] ) ) {
-                               throw new MWException( "Cannot register lock manager `{$name}` with no class." );
+                               throw new Exception( "Cannot register lock manager `{$name}` with no class." );
                        }
                        $class = $config['class'];
                        unset( $config['class'] ); // lock manager won't need this
@@ -105,11 +105,11 @@ class LockManagerGroup {
         *
         * @param string $name
         * @return LockManager
-        * @throws MWException
+        * @throws Exception
         */
        public function get( $name ) {
                if ( !isset( $this->managers[$name] ) ) {
-                       throw new MWException( "No lock manager defined with the name `$name`." );
+                       throw new Exception( "No lock manager defined with the name `$name`." );
                }
                // Lazy-load the actual lock manager instance
                if ( !isset( $this->managers[$name]['instance'] ) ) {
@@ -126,11 +126,11 @@ class LockManagerGroup {
         *
         * @param string $name
         * @return array
-        * @throws MWException
+        * @throws Exception
         */
        public function config( $name ) {
                if ( !isset( $this->managers[$name] ) ) {
-                       throw new MWException( "No lock manager defined with the name `$name`." );
+                       throw new Exception( "No lock manager defined with the name `$name`." );
                }
                $class = $this->managers[$name]['class'];
 
@@ -155,7 +155,7 @@ class LockManagerGroup {
         * Throws an exception if no lock manager could be found.
         *
         * @return LockManager
-        * @throws MWException
+        * @throws Exception
         */
        public function getAny() {
                return isset( $this->managers['default'] )
index 16d3de1..24d96e0 100644 (file)
@@ -61,7 +61,7 @@ class MemcLockManager extends QuorumLockManager {
         *                    each having an odd-numbered list of server names (peers) as values.
         *   - memcConfig   : Configuration array for ObjectCache::newFromParams. [optional]
         *                    If set, this must use one of the memcached classes.
-        * @throws MWException
+        * @throws Exception
         */
        public function __construct( array $config ) {
                parent::__construct( $config );
@@ -80,7 +80,7 @@ class MemcLockManager extends QuorumLockManager {
                        if ( $cache instanceof MemcachedBagOStuff ) {
                                $this->bagOStuffs[$name] = $cache;
                        } else {
-                               throw new MWException(
+                               throw new Exception(
                                        'Only MemcachedBagOStuff classes are supported by MemcLockManager.' );
                        }
                }
index 90e0581..90e62e6 100644 (file)
@@ -62,7 +62,7 @@ class RedisLockManager extends QuorumLockManager {
         *   - srvsByBucket : Array of 1-16 consecutive integer keys, starting from 0,
         *                    each having an odd-numbered list of server names (peers) as values.
         *   - redisConfig  : Configuration for RedisConnectionPool::__construct().
-        * @throws MWException
+        * @throws Exception
         */
        public function __construct( array $config ) {
                parent::__construct( $config );
index 5f70362..e54f748 100644 (file)
@@ -20,28 +20,19 @@ class HTMLCheckField extends HTMLFormField {
                        $attr['class'] = $this->mClass;
                }
 
-               if ( $this->mParent->isVForm() ) {
-                       // Nest checkbox inside label.
-                       return Html::rawElement( 'label',
-                               array(
-                                       'class' => 'mw-ui-checkbox-label'
-                               ),
-                               Xml::check( $this->mName, $value, $attr ) . $this->mLabel );
-               } else {
-                       $chkLabel = Xml::check( $this->mName, $value, $attr )
-                       . '&#160;'
-                       . Html::rawElement( 'label', array( 'for' => $this->mID ), $this->mLabel );
-
-                       if ( $wgUseMediaWikiUIEverywhere ) {
-                               $chkLabel = Html::rawElement(
-                                       'div',
-                                       array( 'class' => 'mw-ui-checkbox' ),
-                                       $chkLabel
-                               );
-                       }
+               $chkLabel = Xml::check( $this->mName, $value, $attr )
+               . '&#160;'
+               . Html::rawElement( 'label', array( 'for' => $this->mID ), $this->mLabel );
 
-                       return $chkLabel;
+               if ( $wgUseMediaWikiUIEverywhere || $this->mParent instanceof VFormHTMLForm ) {
+                       $chkLabel = Html::rawElement(
+                               'div',
+                               array( 'class' => 'mw-ui-checkbox' ),
+                               $chkLabel
+                       );
                }
+
+               return $chkLabel;
        }
 
        /**
index dc73522..908fdf2 100644 (file)
@@ -207,9 +207,40 @@ class HTMLForm extends ContextSource {
                'table',
                'div',
                'raw',
+       );
+
+       /**
+        * Available formats in which to display the form
+        * @var array
+        */
+       protected $availableSubclassDisplayFormats = array(
                'vform',
        );
 
+       /**
+        * Construct a HTMLForm object for given display type. May return a HTMLForm subclass.
+        *
+        * @throws MWException When the display format requested is not known
+        * @param string $displayFormat
+        * @param mixed $arguments... Additional arguments to pass to the constructor.
+        * @return HTMLForm
+        */
+       public static function factory( $displayFormat/*, $arguments...*/ ) {
+               $arguments = func_get_args();
+               array_shift( $arguments );
+
+               switch ( $displayFormat ) {
+                       case 'vform':
+                               $reflector = new ReflectionClass( 'VFormHTMLForm' );
+                               return $reflector->newInstanceArgs( $arguments );
+                       default:
+                               $reflector = new ReflectionClass( 'HTMLForm' );
+                               $form = $reflector->newInstanceArgs( $arguments );
+                               $form->setDisplayFormat( $displayFormat );
+                               return $form;
+               }
+       }
+
        /**
         * Build a new HTMLForm from an array of field attributes
         *
@@ -233,6 +264,11 @@ class HTMLForm extends ContextSource {
                        $this->mMessagePrefix = $context;
                }
 
+               // Evil hack for mobile :(
+               if ( !$this->getConfig()->get( 'HTMLFormAllowTableFormat' ) && $this->displayFormat === 'table' ) {
+                       $this->displayFormat = 'div';
+               }
+
                // Expand out into a tree.
                $loadedDescriptor = array();
                $this->mFlatFields = array();
@@ -246,12 +282,7 @@ class HTMLForm extends ContextSource {
                                $this->mUseMultipart = true;
                        }
 
-                       $field = self::loadInputFromParameters( $fieldname, $info, $this );
-
-                       // vform gets too much space if empty labels generate HTML.
-                       if ( $this->isVForm() ) {
-                               $field->setShowEmptyLabel( false );
-                       }
+                       $field = static::loadInputFromParameters( $fieldname, $info, $this );
 
                        $setSection =& $loadedDescriptor;
                        if ( $section ) {
@@ -286,10 +317,24 @@ class HTMLForm extends ContextSource {
         * @return HTMLForm $this for chaining calls (since 1.20)
         */
        public function setDisplayFormat( $format ) {
+               if (
+                       in_array( $format, $this->availableSubclassDisplayFormats ) ||
+                       in_array( $this->displayFormat, $this->availableSubclassDisplayFormats )
+               ) {
+                       throw new MWException( 'Cannot change display format after creation, ' .
+                               'use HTMLForm::factory() instead' );
+               }
+
                if ( !in_array( $format, $this->availableDisplayFormats ) ) {
                        throw new MWException( 'Display format must be one of ' .
                                print_r( $this->availableDisplayFormats, true ) );
                }
+
+               // Evil hack for mobile :(
+               if ( !$this->getConfig()->get( 'HTMLFormAllowTableFormat' ) && $format === 'table' ) {
+                       $format = 'div';
+               }
+
                $this->displayFormat = $format;
 
                return $this;
@@ -301,20 +346,17 @@ class HTMLForm extends ContextSource {
         * @return string
         */
        public function getDisplayFormat() {
-               $format = $this->displayFormat;
-               if ( !$this->getConfig()->get( 'HTMLFormAllowTableFormat' ) && $format === 'table' ) {
-                       $format = 'div';
-               }
-               return $format;
+               return $this->displayFormat;
        }
 
        /**
         * Test if displayFormat is 'vform'
         * @since 1.22
+        * @deprecated since 1.25
         * @return bool
         */
        public function isVForm() {
-               return $this->displayFormat === 'vform';
+               return false;
        }
 
        /**
@@ -337,7 +379,7 @@ class HTMLForm extends ContextSource {
                if ( isset( $descriptor['class'] ) ) {
                        $class = $descriptor['class'];
                } elseif ( isset( $descriptor['type'] ) ) {
-                       $class = self::$typeMappings[$descriptor['type']];
+                       $class = static::$typeMappings[$descriptor['type']];
                        $descriptor['class'] = $class;
                } else {
                        $class = null;
@@ -362,7 +404,7 @@ class HTMLForm extends ContextSource {
         * @return HTMLFormField Instance of a subclass of HTMLFormField
         */
        public static function loadInputFromParameters( $fieldname, $descriptor, HTMLForm $parent = null ) {
-               $class = self::getClassFromDescriptor( $fieldname, $descriptor );
+               $class = static::getClassFromDescriptor( $fieldname, $descriptor );
 
                $descriptor['fieldname'] = $fieldname;
                if ( $parent ) {
@@ -790,19 +832,6 @@ class HTMLForm extends ContextSource {
                # For good measure (it is the default)
                $this->getOutput()->preventClickjacking();
                $this->getOutput()->addModules( 'mediawiki.htmlform' );
-               if ( $this->isVForm() ) {
-                       // This is required for VForm HTMLForms that use that style regardless
-                       // of wgUseMediaWikiUIEverywhere (since they pre-date it).
-                       // When wgUseMediaWikiUIEverywhere is removed, this should be consolidated
-                       // with the addModuleStyles in SpecialPage->setHeaders.
-                       $this->getOutput()->addModuleStyles( array(
-                               'mediawiki.ui',
-                               'mediawiki.ui.button',
-                               'mediawiki.ui.input',
-                       ) );
-                       // @todo Should vertical form set setWrapperLegend( false )
-                       // to hide ugly fieldsets?
-               }
 
                $html = ''
                        . $this->getErrors( $submitResult )
@@ -818,18 +847,10 @@ class HTMLForm extends ContextSource {
        }
 
        /**
-        * Wrap the form innards in an actual "<form>" element
-        *
-        * @param string $html HTML contents to wrap.
-        *
-        * @return string Wrapped HTML.
+        * Get HTML attributes for the `<form>` tag.
+        * @return array
         */
-       function wrapForm( $html ) {
-
-               # Include a <fieldset> wrapper for style, if requested.
-               if ( $this->mWrapperLegend !== false ) {
-                       $html = Xml::fieldset( $this->mWrapperLegend, $html );
-               }
+       protected function getFormAttributes() {
                # Use multipart/form-data
                $encType = $this->mUseMultipart
                        ? 'multipart/form-data'
@@ -844,12 +865,23 @@ class HTMLForm extends ContextSource {
                if ( !empty( $this->mId ) ) {
                        $attribs['id'] = $this->mId;
                }
+               return $attribs;
+       }
 
-               if ( $this->isVForm() ) {
-                       array_push( $attribs['class'], 'mw-ui-vform', 'mw-ui-container' );
+       /**
+        * Wrap the form innards in an actual "<form>" element
+        *
+        * @param string $html HTML contents to wrap.
+        *
+        * @return string Wrapped HTML.
+        */
+       function wrapForm( $html ) {
+               # Include a <fieldset> wrapper for style, if requested.
+               if ( $this->mWrapperLegend !== false ) {
+                       $html = Xml::fieldset( $this->mWrapperLegend, $html );
                }
 
-               return Html::rawElement( 'form', $attribs, $html );
+               return Html::rawElement( 'form', $this->getFormAttributes(), $html );
        }
 
        /**
@@ -905,21 +937,10 @@ class HTMLForm extends ContextSource {
 
                        $attribs['class'] = array( 'mw-htmlform-submit' );
 
-                       if ( $this->isVForm() || $useMediaWikiUIEverywhere ) {
+                       if ( $useMediaWikiUIEverywhere ) {
                                array_push( $attribs['class'], 'mw-ui-button', $this->mSubmitModifierClass );
                        }
 
-                       if ( $this->isVForm() ) {
-                               // mw-ui-block is necessary because the buttons aren't necessarily in an
-                               // immediate child div of the vform.
-                               // @todo Let client specify if the primary submit button is progressive or destructive
-                               array_push(
-                                       $attribs['class'],
-                                       'mw-ui-big',
-                                       'mw-ui-block'
-                               );
-                       }
-
                        $buttons .= Xml::submitButton( $this->getSubmitText(), $attribs ) . "\n";
                }
 
@@ -928,7 +949,8 @@ class HTMLForm extends ContextSource {
                                'input',
                                array(
                                        'type' => 'reset',
-                                       'value' => $this->msg( 'htmlform-reset' )->text()
+                                       'value' => $this->msg( 'htmlform-reset' )->text(),
+                                       'class' => ( $useMediaWikiUIEverywhere ? 'mw-ui-button' : null ),
                                )
                        ) . "\n";
                }
@@ -948,15 +970,9 @@ class HTMLForm extends ContextSource {
                                $attrs['id'] = $button['id'];
                        }
 
-                       if ( $this->isVForm() || $useMediaWikiUIEverywhere ) {
-                               if ( isset( $attrs['class'] ) ) {
-                                       $attrs['class'] .= ' mw-ui-button';
-                               } else {
-                                       $attrs['class'] = 'mw-ui-button';
-                               }
-                               if ( $this->isVForm() ) {
-                                       $attrs['class'] .= ' mw-ui-big mw-ui-block';
-                               }
+                       if ( $useMediaWikiUIEverywhere ) {
+                               $attrs['class'] = isset( $attrs['class'] ) ? (array)$attrs['class'] : array();
+                               $attrs['class'][] = 'mw-ui-button';
                        }
 
                        $buttons .= Html::element( 'input', $attrs ) . "\n";
@@ -965,13 +981,6 @@ class HTMLForm extends ContextSource {
                $html = Html::rawElement( 'span',
                        array( 'class' => 'mw-htmlform-submit-buttons' ), "\n$buttons" ) . "\n";
 
-               // Buttons are top-level form elements in table and div layouts,
-               // but vform wants all elements inside divs to get spaced-out block
-               // styling.
-               if ( $this->mShowSubmit && $this->isVForm() ) {
-                       $html = Html::rawElement( 'div', null, "\n$html" ) . "\n";
-               }
-
                return $html;
        }
 
@@ -1284,20 +1293,8 @@ class HTMLForm extends ContextSource {
                $subsectionHtml = '';
                $hasLabel = false;
 
-               switch ( $displayFormat ) {
-                       case 'table':
-                               $getFieldHtmlMethod = 'getTableRow';
-                               break;
-                       case 'vform':
-                               // Close enough to a div.
-                               $getFieldHtmlMethod = 'getDiv';
-                               break;
-                       case 'div':
-                               $getFieldHtmlMethod = 'getDiv';
-                               break;
-                       default:
-                               $getFieldHtmlMethod = 'get' . ucfirst( $displayFormat );
-               }
+               // Conveniently, PHP method names are case-insensitive.
+               $getFieldHtmlMethod = $displayFormat == 'table' ? 'getTableRow' : ( 'get' . $displayFormat );
 
                foreach ( $fields as $key => $value ) {
                        if ( $value instanceof HTMLFormField ) {
@@ -1369,7 +1366,7 @@ class HTMLForm extends ContextSource {
                                $html = Html::rawElement( 'table',
                                                $attribs,
                                                Html::rawElement( 'tbody', array(), "\n$html\n" ) ) . "\n";
-                       } elseif ( $displayFormat === 'div' || $displayFormat === 'vform' ) {
+                       } else {
                                $html = Html::rawElement( 'div', $attribs, "\n$html\n" );
                        }
                }
index a91f331..645b507 100644 (file)
@@ -13,6 +13,7 @@ abstract class HTMLFormField {
        protected $mLabel; # String label.  Set on construction
        protected $mID;
        protected $mClass = '';
+       protected $mVFormClass = '';
        protected $mHelpClass = false;
        protected $mDefault;
        protected $mOptions = false;
@@ -512,10 +513,7 @@ abstract class HTMLFormField {
                        array( 'class' => $outerDivClass ) + $cellAttributes,
                        $inputHtml . "\n$errors"
                );
-               $divCssClasses = array( "mw-htmlform-field-$fieldType", $this->mClass, $errorClass );
-               if ( $this->mParent->isVForm() ) {
-                       $divCssClasses[] = 'mw-ui-vform-field';
-               }
+               $divCssClasses = array( "mw-htmlform-field-$fieldType", $this->mClass, $this->mVFormClass, $errorClass );
 
                $wrapperAttributes = array(
                        'class' => $divCssClasses,
@@ -554,6 +552,20 @@ abstract class HTMLFormField {
                return $html;
        }
 
+       /**
+        * Get the complete field for the input, including help text,
+        * labels, and whatever. Fall back from 'vform' to 'div' when not overridden.
+        *
+        * @since 1.25
+        * @param string $value The value to set the input to.
+        * @return string Complete HTML field.
+        */
+       public function getVForm( $value ) {
+               // Ewwww
+               $this->mVFormClass = ' mw-ui-vform-field';
+               return $this->getDiv( $value );
+       }
+
        /**
         * Generate help text HTML in table format
         * @since 1.20
index d1b7746..b06f10d 100644 (file)
@@ -262,17 +262,8 @@ class HTMLFormFieldCloner extends HTMLFormField {
                        ? $this->mParams['format']
                        : $this->mParent->getDisplayFormat();
 
-               switch ( $displayFormat ) {
-                       case 'table':
-                               $getFieldHtmlMethod = 'getTableRow';
-                               break;
-                       case 'vform':
-                               // Close enough to a div.
-                               $getFieldHtmlMethod = 'getDiv';
-                               break;
-                       default:
-                               $getFieldHtmlMethod = 'get' . ucfirst( $displayFormat );
-               }
+               // Conveniently, PHP method names are case-insensitive.
+               $getFieldHtmlMethod = $displayFormat == 'table' ? 'getTableRow' : ( 'get' . $displayFormat );
 
                $html = '';
                $hidden = '';
@@ -336,7 +327,7 @@ class HTMLFormFieldCloner extends HTMLFormField {
                                $html = Html::rawElement( 'table',
                                        $attribs,
                                        Html::rawElement( 'tbody', array(), "\n$html\n" ) ) . "\n";
-                       } elseif ( $displayFormat === 'div' || $displayFormat === 'vform' ) {
+                       } else {
                                $html = Html::rawElement( 'div', $attribs, "\n$html\n" );
                        }
                }
diff --git a/includes/htmlform/VFormHTMLForm.php b/includes/htmlform/VFormHTMLForm.php
new file mode 100644 (file)
index 0000000..7826a0c
--- /dev/null
@@ -0,0 +1,140 @@
+<?php
+
+/**
+ * HTML form generation and submission handling, vertical-form style.
+ *
+ * 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
+ */
+
+/**
+ * Compact stacked vertical format for forms.
+ */
+class VFormHTMLForm extends HTMLForm {
+       /**
+        * Wrapper and its legend are never generated in VForm mode.
+        * @var boolean
+        */
+       protected $mWrapperLegend = false;
+
+       /**
+        * Symbolic display format name.
+        * @var string
+        */
+       protected $displayFormat = 'vform';
+
+       public function isVForm() {
+               return true;
+       }
+
+       public static function loadInputFromParameters( $fieldname, $descriptor, HTMLForm $parent = null ) {
+               $field = parent::loadInputFromParameters( $fieldname, $descriptor, $parent );
+               $field->setShowEmptyLabel( false );
+               return $field;
+       }
+
+       function getHTML( $submitResult ) {
+               // This is required for VForm HTMLForms that use that style regardless
+               // of wgUseMediaWikiUIEverywhere (since they pre-date it).
+               // When wgUseMediaWikiUIEverywhere is removed, this should be consolidated
+               // with the addModuleStyles in SpecialPage->setHeaders.
+               $this->getOutput()->addModuleStyles( array(
+                       'mediawiki.ui',
+                       'mediawiki.ui.button',
+                       'mediawiki.ui.input',
+                       'mediawiki.ui.checkbox',
+               ) );
+
+               return parent::getHTML( $submitResult );
+       }
+
+       protected function getFormAttributes() {
+               $attribs = parent::getFormAttributes();
+               array_push( $attribs['class'], 'mw-ui-vform', 'mw-ui-container' );
+               return $attribs;
+       }
+
+       function wrapForm( $html ) {
+               // Always discard $this->mWrapperLegend
+               return Html::rawElement( 'form', $this->getFormAttributes(), $html );
+       }
+
+       function getButtons() {
+               $buttons = '';
+
+               if ( $this->mShowSubmit ) {
+                       $attribs = array();
+
+                       if ( isset( $this->mSubmitID ) ) {
+                               $attribs['id'] = $this->mSubmitID;
+                       }
+
+                       if ( isset( $this->mSubmitName ) ) {
+                               $attribs['name'] = $this->mSubmitName;
+                       }
+
+                       if ( isset( $this->mSubmitTooltip ) ) {
+                               $attribs += Linker::tooltipAndAccesskeyAttribs( $this->mSubmitTooltip );
+                       }
+
+                       $attribs['class'] = array(
+                               'mw-htmlform-submit',
+                               'mw-ui-button mw-ui-big mw-ui-block',
+                               $this->mSubmitModifierClass,
+                       );
+
+                       $buttons .= Xml::submitButton( $this->getSubmitText(), $attribs ) . "\n";
+               }
+
+               if ( $this->mShowReset ) {
+                       $buttons .= Html::element(
+                               'input',
+                               array(
+                                       'type' => 'reset',
+                                       'value' => $this->msg( 'htmlform-reset' )->text(),
+                                       'class' => 'mw-ui-button mw-ui-big mw-ui-block',
+                               )
+                       ) . "\n";
+               }
+
+               foreach ( $this->mButtons as $button ) {
+                       $attrs = array(
+                               'type' => 'submit',
+                               'name' => $button['name'],
+                               'value' => $button['value']
+                       );
+
+                       if ( $button['attribs'] ) {
+                               $attrs += $button['attribs'];
+                       }
+
+                       if ( isset( $button['id'] ) ) {
+                               $attrs['id'] = $button['id'];
+                       }
+
+                       $attrs['class'] = isset( $attrs['class'] ) ? (array)$attrs['class'] : array();
+                       $attrs['class'][] = 'mw-ui-button mw-ui-big mw-ui-block';
+
+                       $buttons .= Html::element( 'input', $attrs ) . "\n";
+               }
+
+               $html = Html::rawElement( 'div',
+                       array( 'class' => 'mw-htmlform-submit-buttons' ), "\n$buttons" ) . "\n";
+
+               return $html;
+       }
+}
index f36bac1..1c15ad0 100644 (file)
@@ -657,7 +657,7 @@ abstract class DatabaseInstaller {
                        if ( $row == "" ) {
                                continue;
                        }
-                       $row .= "||";
+                       $row .= "|";
                        $interwikis[] = array_combine(
                                array( 'iw_prefix', 'iw_url', 'iw_local', 'iw_api', 'iw_wikiid' ),
                                explode( '|', $row )
index f2e417d..dc52554 100644 (file)
@@ -727,7 +727,7 @@ abstract class Installer {
                }
                $databases = array_flip( $databases );
                if ( !$databases ) {
-                       $this->showError( 'config-no-db', $wgLang->commaList( $allNames ) );
+                       $this->showError( 'config-no-db', $wgLang->commaList( $allNames ), count( $allNames ) );
 
                        // @todo FIXME: This only works for the web installer!
                        return false;
index 0aeae7f..c131a78 100644 (file)
@@ -56,7 +56,7 @@
        "config-unicode-using-intl": "Выкарыстоўваецца [http://pecl.php.net/intl intl пашырэньне з PECL] для Unicode-нармалізацыі",
        "config-unicode-pure-php-warning": "'''Папярэджаньне''': [http://pecl.php.net/intl Пашырэньне intl з PECL] — ня слушнае для Unicode-нармалізацыі, цяпер выкарыстоўваецца марудная PHP-рэалізацыя.\nКалі ў Вас сайт з высокай наведваемасьцю, раім пачытаць пра [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-нармалізацыю].",
        "config-unicode-update-warning": "'''Папярэджаньне''': усталяваная вэрсія бібліятэкі для Unicode-нармалізацыі выкарыстоўвае састарэлую вэрсію бібліятэкі з [http://site.icu-project.org/ праекту ICU].\nРаім [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations абнавіць], калі ваш сайт будзе працаваць зь Unicode.",
-       "config-no-db": "Немагчыма знайсьці адпаведны драйвэр базы зьвестак. Вам неабходна ўсталяваць драйвэр базы зьвестак для PHP.\nПадтрымліваюцца наступныя тыпы базаў зьвестак: $1.\n\nКалі вы скампілявалі PHP самастойна, зьмяніце канфігурацыю, каб уключыць кліента базы зьвестак, напрыклад, з дапамогай <code>./configure --with-mysqli</code>.\nКалі вы ўсталявалі PHP з пакунку Debian або Ubuntu, тады вам трэба таксама ўсталяваць, напрыклад, пакунак <code>php5-mysql</code>.",
+       "config-no-db": "Немагчыма знайсьці адпаведны драйвэр базы зьвестак. Вам неабходна ўсталяваць драйвэр базы зьвестак для PHP.\n{{PLURAL:$2|Падтрымліваецца наступны тып базы|Падтрымліваюцца наступныя тыпы базаў}} зьвестак: $1.\n\nКалі вы скампілявалі PHP самастойна, зьмяніце канфігурацыю, каб уключыць кліента базы зьвестак, напрыклад, з дапамогай <code>./configure --with-mysqli</code>.\nКалі вы ўсталявалі PHP з пакунку Debian або Ubuntu, тады вам трэба дадаткова ўсталяваць, напрыклад, пакунак <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Папярэджаньне''': усталяваны SQLite $1, у той час, калі мінімальная сумяшчальная вэрсія — $2. SQLite ня будзе даступны.",
        "config-no-fts3": "'''Папярэджаньне''': SQLite створаны без модуля [//sqlite.org/fts3.html FTS3], для гэтага ўнутранага інтэрфэйсу ня будзе даступная магчымасьць пошуку.",
        "config-register-globals-error": "<strong>Памылка: парамэтар PHP <code>[http://php.net/register_globals register_globals]</code> уключаны.\nЁн павінен быць адключаны, каб працягнуць усталяваньне.</strong>\nГлядзіце [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] дзеля дапамогі, як зрабіць гэта.",
diff --git a/includes/installer/i18n/bgn.json b/includes/installer/i18n/bgn.json
new file mode 100644 (file)
index 0000000..a3dde2e
--- /dev/null
@@ -0,0 +1,9 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Baloch Afghanistan"
+               ]
+       },
+       "config-sidebar": "* [//www.mediawiki.org میڈیاویکی ئی بُنیادین تاکدیم]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents کار زوروکانی کومک و رهنمایی]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents مدیر ئی رهنمایی]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ رواجین سوج و سوالان]\n----\n* <doclink href=Readme>نا بووان</doclink>\n* <doclink href=ReleaseNotes>شینک بوته ئین یاداشتان</doclink>\n* <doclink href=Copying>نسخه برداری</doclink>\n* <doclink href=UpgradeDoc>ارتقا</doclink>",
+       "config-env-good": "محیط بررسی بوته.\nشما ئه توانیت میڈیاویکی ئا نصب کنیت."
+}
index 9fca5fe..7b3b5a5 100644 (file)
@@ -7,7 +7,8 @@
                        "Toniher",
                        "Fitoschido",
                        "Jmarchn",
-                       "Alvaro Vidal-Abarca"
+                       "Alvaro Vidal-Abarca",
+                       "ESM"
                ]
        },
        "config-desc": "L'instal·lador del MediaWiki",
@@ -53,6 +54,7 @@
        "config-env-bad": "S'ha comprovat l'entorn.\nNo podeu instal·lar el MediaWiki.",
        "config-env-php": "El PHP $1 està instal·lat.",
        "config-env-hhvm": "L’HHVM $1 és instal·lat.",
+       "config-unicode-using-utf8": "Utilitzant la utf8_normalise.so d'en Brion Vibber per a la normalització de l'Unicode.",
        "config-memory-raised": "El <code>memory_limit</code> del PHP és $1 i s'ha aixecat a $2.",
        "config-memory-bad": "<strong>Avís:</strong> El <code>memory_limit</code> del PHP és $1.\nAixò és probablement massa baix.\nLa instal·lació pot fallar!",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] està instal·lat",
@@ -69,6 +71,7 @@
        "config-uploads-not-safe": "<strong>Avís:</strong> El directori de càrregues per defecte <code>$1</code> és vulnerable a l'execució d'scripts arbitraris.\nEncara que el MediaWiki comprova tots els fitxers que es carreguen davant d'amenaces de seguretat, és molt recomanable [//www.mediawiki.org/ wiki/Special:MyLanguage/Manual:Security#Upload_security tancar aquesta vulnerabilitat de seguretat] abans d'habilitar les càrregues.",
        "config-db-type": "Tipus de base de dades:",
        "config-db-host": "Servidor de la base de dades:",
+       "config-db-host-oracle": "TNS de la base de dades:",
        "config-db-wiki-settings": "Identifica aquest wiki",
        "config-db-name": "Nom de la base de dades:",
        "config-db-name-help": "Trieu un nom que identifiqui el wiki.\nNo ha de contenir espais.\n\nSi esteu fent servir un hostatge web compartit, el vostre proveïdor us proporcionarà un nom específic per a la base de dades o us permetrà crear base de dades des d'un tauler de control.",
        "config-db-install-account": "Compte d'usuari per a la instal·lació",
        "config-db-username": "Nom d'usuari de la base de dades:",
        "config-db-password": "Contrasenya de la base de dades:",
+       "config-db-password-empty": "Si us plau, introduïu una contrasenya pel nou usuari de la base de dades $1. Tot i que es poden crear usuaris sense contrasenyes, no és segur.",
        "config-db-username-empty": "Heu d'introduir un valor per a «{{int:config-db-username}}»",
+       "config-db-install-username": "Introduïu el nom d'usuari que s'utilitzarà per connectar a la base de dades durant el procés d'instal·lació. Aquest no és el nom d'usuari de MediaWiki, és el nom d'usuari de la vostra base de dades.",
+       "config-db-install-password": "Introduïu la contrasenya que s'utilitzarà per connectar a la base de dades durant el procés d'instal·lació. Aquesta no és la contrasenya del vostre compte a MediaWiki, és la contrasenya de la vostra base de dades.",
+       "config-db-install-help": "Introduïu el nom d'usuari i la contrasenya que s'empraran per connectar a la base de dades durant el procés d'instal·lació.",
        "config-db-account-lock": "Utilitzeu el mateix nom d'usuari i contrasenya durant una operació normal",
        "config-db-wiki-account": "Compte d'usuari per al funcionament normal",
        "config-db-wiki-help": "Introduïu el nom d'usuari i la contrasenya que s'utilitzarà per connectar-se a la base de dades durant l'operació normal del wiki.\nSi el compte no existeix, i el compte d'instal·lació té prou privilegis, es crearà aquest compte d'usuari amb els privilegis mínims necessaris per operar el wiki.",
        "config-oracle-temp-ts": "Espai de taules temporal:",
        "config-type-mysql": "MySQL (o compatible)",
        "config-type-mssql": "Microsoft SQL Server",
+       "config-support-info": "MediaWiki és compatible amb els següents sistemes de bases de dades:\n$1\nSi el sistema de bases de dades que intenteu utilitzar no apareix a la llista, seguiu les instruccions enllaçades més amunt per habilitar el suport.",
        "config-header-mysql": "Paràmetres de MySQL",
        "config-header-postgres": "Paràmetres del PostgreSQL",
        "config-header-sqlite": "Paràmetres de l'SQLite",
        "config-db-sys-create-oracle": "L'instal·lador només accepta emprar un compte SYSDBA per a la creació d'un nou compte.",
        "config-db-sys-user-exists-oracle": "El compte d’usuari «$1» ja existeix. SYSDBA només es pot fer servir per crear comptes nous.",
        "config-postgres-old": "Cal el PostgreSQL $1 o posterior. Teniu el $2.",
+       "config-mssql-old": "Cal utilitzar el Microsoft SQL Server $1 o posterior. Teniu la versió $2.",
        "config-sqlite-readonly": "El fitxer <code>$1</code> no es pot escriure.",
        "config-sqlite-cant-create-db": "No s'ha pogut crear el fitxer de base de dades <code>$1</code>.",
        "config-upgrade-done-no-regenerate": "S'ha completat l'actualització.\n\nJa podeu [$1 començar a utilitzar el wiki].",
index a5f700c..b0b2ebe 100644 (file)
@@ -64,7 +64,7 @@
        "config-unicode-using-intl": "Zur  Unicode-Normalisierung wird die [http://pecl.php.net/intl PECL-Erweiterung intl] eingesetzt.",
        "config-unicode-pure-php-warning": "'''Warnung:''' Die [http://pecl.php.net/intl PECL-Erweiterung intl] ist für die Unicode-Normalisierung nicht verfügbar, so dass stattdessen die langsame pure-PHP-Implementierung genutzt wird.\nSofern eine Website mit großer Benutzeranzahl betrieben wird, sollten weitere Informationen auf der Webseite [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-Normalisierung (en)] gelesen werden.",
        "config-unicode-update-warning": "'''Warnung:''' Die installierte Version des Unicode-Normalisierungswrappers nutzt einer ältere Version der Bibliothek des [http://site.icu-project.org/ ICU-Projekts].\nDiese sollte [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations aktualisiert] werden, sofern auf die Verwendung von Unicode Wert gelegt wird.",
-       "config-no-db": "Es konnte kein adäquater Datenbanktreiber gefunden werden. Es muss daher ein Datenbanktreiber für PHP installiert werden.\nDie folgenden Datenbanksysteme werden unterstützt: $1\n\nWenn du PHP selbst kompiliert hast, konfiguriere es erneut mit einem aktivierten Datenbankclient, zum Beispiel durch Verwendung von <code>./configure --with-mysqli</code>.\nWenn du PHP von einem Debian- oder Ubuntu-Paket installiert hast, dann musst du auch beispielsweise das <code>php5-mysql</code>-Paket installieren.",
+       "config-no-db": "Es konnte kein adäquater Datenbanktreiber gefunden werden. Es muss daher ein Datenbanktreiber für PHP installiert werden.\n{{PLURAL:$2|Das folgende Datenbanksystem wird|Die folgenden Datenbanksysteme werden}} unterstützt: $1\n\nWenn du PHP selbst kompiliert hast, konfiguriere es erneut mit einem aktivierten Datenbankclient, zum Beispiel durch Verwendung von <code>./configure --with-mysqli</code>.\nWenn du PHP von einem Debian- oder Ubuntu-Paket installiert hast, dann musst du auch beispielsweise das <code>php5-mysql</code>-Paket installieren.",
        "config-outdated-sqlite": "'''Warnung:''' SQLite $1 ist installiert. Allerdings benötigt MediaWiki SQLite $2 oder höher. SQLite wird daher nicht verfügbar sein.",
        "config-no-fts3": "'''Warnung:''' SQLite wurde ohne das [//sqlite.org/fts3.html FTS3-Modul] kompiliert, sodass keine Suchfunktionen für dieses Datenbanksystem zur Verfügung stehen werden.",
        "config-register-globals-error": "<strong>Fehler: Die PHP-Option <code>[http://php.net/register_globals register_globals]</code> ist aktiviert.\nSie muss deaktiviert sein, um mit der Installation fortzufahren.</strong>\nSiehe [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] für Hilfe.",
diff --git a/includes/installer/i18n/eml.json b/includes/installer/i18n/eml.json
new file mode 100644 (file)
index 0000000..37fefef
--- /dev/null
@@ -0,0 +1,16 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Gloria sah"
+               ]
+       },
+       "config-information": "Infurmasiòun",
+       "config-your-language": "La tó lengva:",
+       "config-page-language": "Lengva",
+       "config-charset-mysql5-binary": "binàri MySQL 4.1/5.0",
+       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+       "config-admin-password-mismatch": "El dó paró li cêv 't ê pruvê i n'vàn mia bèin.",
+       "config-admin-email": "Indirìs e-mail:",
+       "config-optional-continue": "Edmànd-em de piò.",
+       "config-license-cc-by": "Atribusiòun Creative Commons"
+}
index 4857495..d6737a3 100644 (file)
@@ -49,7 +49,7 @@
        "config-unicode-using-intl": "Using the [http://pecl.php.net/intl intl PECL extension] for Unicode normalization.",
        "config-unicode-pure-php-warning": "<strong>Warning:</strong> The [http://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalization, falling back to slow pure-PHP implementation.\nIf you run a high-traffic site, you should read a little on [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
        "config-unicode-update-warning": "<strong>Warning:</strong> The installed version of the Unicode normalization wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.\nYou should [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",
-       "config-no-db": "Could not find a suitable database driver! You need to install a database driver for PHP.\nThe following database types are supported: $1.\n\nIf you compiled PHP yourself, reconfigure it with a database client enabled, for example, using <code>./configure --with-mysqli</code>.\nIf you installed PHP from a Debian or Ubuntu package, then you also need to install, for example, the <code>php5-mysql</code> package.",
+       "config-no-db": "Could not find a suitable database driver! You need to install a database driver for PHP.\nThe following database {{PLURAL:$2|type is|types are}} supported: $1.\n\nIf you compiled PHP yourself, reconfigure it with a database client enabled, for example, using <code>./configure --with-mysqli</code>.\nIf you installed PHP from a Debian or Ubuntu package, then you also need to install, for example, the <code>php5-mysql</code> package.",
        "config-outdated-sqlite": "<strong>Warning:</strong> you have SQLite $1, which is lower than minimum required version $2. SQLite will be unavailable.",
        "config-no-fts3": "<strong>Warning:</strong> SQLite is compiled without the [//sqlite.org/fts3.html FTS3 module], search features will be unavailable on this backend.",
        "config-register-globals-error": "<strong>Error: PHP's <code>[http://php.net/register_globals register_globals]</code> option is enabled.\nIt must be disabled to continue with the installation.</strong>\nSee [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] for help on how to do so.",
        "config-db-sys-user-exists-oracle": "User account \"$1\" already exists. SYSDBA can only be used for creating of a new account!",
        "config-postgres-old": "PostgreSQL $1 or later is required. You have $2.",
        "config-mssql-old": "Microsoft SQL Server $1 or later is required. You have $2.",
-       "config-sqlite-name-help": "Choose a name that identifies your wiki.\nDo not use spaces or hyphens.\nThis will be used for the SQLite data file name.",
+       "config-sqlite-name-help": "Choose a name that identifies your wiki.\nDo not use spaces or hyphens.\nThis will be used for the SQLite data filename.",
        "config-sqlite-parent-unwritable-group": "Cannot create the data directory <code><nowiki>$1</nowiki></code>, because the parent directory <code><nowiki>$2</nowiki></code> is not writable by the webserver.\n\nThe installer has determined the user your webserver is running as.\nMake the <code><nowiki>$3</nowiki></code> directory writable by it to continue.\nOn a Unix/Linux system do:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
        "config-sqlite-parent-unwritable-nogroup": "Cannot create the data directory <code><nowiki>$1</nowiki></code>, because the parent directory <code><nowiki>$2</nowiki></code> is not writable by the webserver.\n\nThe installer could not determine the user your webserver is running as.\nMake the <code><nowiki>$3</nowiki></code> directory globally writable by it (and others!) to continue.\nOn a Unix/Linux system do:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
        "config-sqlite-mkdir-error": "Error creating the data directory \"$1\".\nCheck the location and try again.",
index 4bf1268..d29a3d4 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Avjoska",
                        "Pikne",
-                       "Boxmein"
+                       "Boxmein",
+                       "Cumbril"
                ]
        },
        "config-information": "Teave",
        "config-admin-email": "E-posti aadress:",
        "config-admin-error-bademail": "Sisestasid vigase e-posti aadressi.",
        "config-optional-continue": "Küsi minult veel küsimusi.",
+       "config-profile-wiki": "Avalik viki",
+       "config-profile-no-anon": "Registreerumine nõutav",
+       "config-profile-fishbowl": "Ainult volitatud kasutajad",
        "config-profile-private": "Eraviki",
+       "config-profile-help": "Vikid toimivad kõige paremini siis, kui lased neid redigeerida nii paljudel inimestel kui võimalik.\nMediaWikis on lihtne viimaseid muudatusi üle vaadata ja pöörata tagasi oskamatute või pahatahtlike kasutajate tehtud kahju.\n\nEnt inimesed on leidnud MediaWikile mitmesuguseid erinevaid kasutusvõimalusi ja mõnikord pole lihtne kõiki veenda viki meetodi kasulikkuses. \nSeega on sul valik.\n\n\"<strong>{{int:config-profile-wiki}}</strong>\" annab kõigile redigeerimisvõimaluse isegi sisse logimata.\nMudeli \"<strong>{{int:config-profile-no-anon}}</strong>\" viki tagab lisavastutuse, kuid võib juhuslikud kaastöölised eemale peletada.\n\nStsenaarium \"<strong>{{int:config-profile-fishbowl}}</strong>\" võimaldab redigeerida heaks kiidetud kasutajatel, kuid avalikkus saab lehekülgi ja nende ajalugu vaadata.\n\"<strong>{{int:config-profile-private}}</strong>\" laseb vaid heaks kiidetud kasutajatel lehekülgi vaadata ja samadel kasutajatel on õigus lehekülgi redigeerida.\n\nPärast paigaldamist on kasutajaõigusi võimalik täpsemalt häälestada, vaata [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights kasutusjuhendi vastavat kohta].",
        "config-license": "Autoriõigus ja litsents:",
        "config-license-none": "Litsentsijaluseta",
        "config-license-cc-by-sa": "Creative Commonsi litsents \"Autorile viitamine + jagamine samadel tingimustel\"",
index e05cd25..ac60dea 100644 (file)
@@ -1,5 +1,24 @@
 {
-       "@metadata": [],
+       "@metadata": {
+               "authors": [
+                       "Hangmanwa7id"
+               ]
+       },
+       "config-your-language": "Ton langue:",
+       "config-page-name": "Nom",
+       "config-page-options": "Options",
+       "config-page-install": "Installer",
+       "config-page-complete": "Terminé!",
+       "config-sqlite-name-help": "Choisir un nom qui identifie ton wiki.\nFait user pas ni d'espaces ni des traits d'union\nIl va user pour fichier de données SQLite.",
+       "config-mysql-innodb": "InnoDB",
+       "config-mysql-myisam": "MyISAM",
+       "config-mysql-binary": "Binaire",
+       "config-mysql-utf8": "UTF-8",
+       "config-ns-generic": "Projet",
+       "config-ns-other-default": "MonWiki",
+       "config-admin-name": "Ton nom d'useur:",
+       "config-admin-password": "Mot de passe:",
+       "config-admin-email": "Adresse d'email:",
        "mainpagetext": "'''Vous avez bien installé MediaWiki.'''",
        "mainpagedocfooter": "Lisez la [//meta.wikimedia.org/wiki/Help:Contents Guide des Useurs] pour apprendre à user le wiki software.\n\n== Pour Commencer ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Réglage]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki: Questions Souvent Posées]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki Liste à Malle]"
 }
index ab59ac1..39c46b5 100644 (file)
@@ -15,5 +15,5 @@
        "config-admin-password": "Wachtwurd:",
        "config-help": "help",
        "mainpagetext": "'''MediaWiki-program goed ynstallearre.'''",
-       "mainpagedocfooter": "Rieplachtsje de [//meta.wikimedia.org/wiki/Help:Contents Ynhâldsopjefte hantlieding] foar ynformaasje oer it gebrûk fan 'e wikisoftware.\n\n== Mear help oer Mediawiki ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings List mei ynstellings]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Faak stelde fragen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglist foar oankundigings fan nije ferzjes]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Rieplachtsje de [//meta.wikimedia.org/wiki/Help:Contents Ynhâldsopjefte hantlieding] foar ynformaasje oer it gebrûk fan 'e wikisoftware.\n\n== Mear help oer Mediawiki ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings List mei ynstellingen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Faak stelde fragen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglist foar oankundigings fan nije ferzjes]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index a42cb17..940b4c0 100644 (file)
@@ -54,7 +54,7 @@
        "config-unicode-using-intl": "Usando a [http://pecl.php.net/intl extensión intl PECL] para a normalización Unicode.",
        "config-unicode-pure-php-warning": "<strong>Atención:</strong> A [http://pecl.php.net/intl extensión intl PECL] non está dispoñible para manexar a normalización Unicode; volvendo á implementación lenta de PHP puro.\nSe o seu sitio posúe un alto tráfico de visitantes, debería ler un chisco sobre a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
        "config-unicode-update-warning": "<strong>Atención:</strong> A versión instalada da envoltura de normalización Unicode emprega unha versión vella da biblioteca [http://site.icu-project.org/ do proxecto ICU].\nDebería [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations actualizar] se o uso de Unicode é importante para vostede.",
-       "config-no-db": "Non se puido atopar un controlador axeitado para a base de datos! Necesita instalar un controlador de base de datos para PHP.\nOs tipos de base de datos admitidos son os seguintes: $1.\n\nSe compilou o PHP vostede mesmo, reconfigúreo activando un cliente de base de datos, por exemplo, usando <code>./configure --with-mysql</code>.\nSe instalou o PHP desde un paquete Debian ou Ubuntu, entón tamén necesita instalar, por exemplo, o módulo <code>php5-mysql</code>.",
+       "config-no-db": "Non se puido atopar un controlador axeitado para a base de datos! Necesita instalar un controlador de base de datos para PHP.\n{{PLURAL:$2|Acéptase o seguinte tipo|Acéptanse os seguintes tipos}} de base de datos: $1.\n\nSe compilou o PHP vostede mesmo, reconfigúreo activando un cliente de base de datos, por exemplo, usando <code>./configure --with-mysql</code>.\nSe instalou o PHP desde un paquete Debian ou Ubuntu, entón tamén necesita instalar, por exemplo, o módulo <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Atención:</strong> Ten o SQLite $1, que é inferior á versión mínima necesaria: $2. O SQLite non estará dispoñible.",
        "config-no-fts3": "<strong>Atención:</strong> O SQLite está compilado sen o [//sqlite.org/fts3.html módulo FTS3]; as características de procura non estarán dispoñibles nesta instalación.",
        "config-register-globals-error": "<strong>Erro: A opción <code>[http://php.net/register_globals register_globals]</code> do PHP está activada.\nCómpre desactivala para continuar a instalación.</strong>\nConsulte o enderezo [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] para obter axuda sobre como facelo.",
index dd14e63..3419089 100644 (file)
@@ -56,7 +56,7 @@
        "config-unicode-using-intl": "משתמש ב[http://pecl.php.net/intl הרחבת intl PECL] לנרמול יוניקוד.",
        "config-unicode-pure-php-warning": "'''אזהרה''': [http://pecl.php.net/intl הרחבת intl PECL] אינה זמינה לטיפול בנרמול יוניקוד. משתמש ביישום PHP טהור ואטי יותר.\nאם זהו אתר בעל תעבורה גבוהה, כדאי לקרוא את המסמך הבא: [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
        "config-unicode-update-warning": "'''אזהרה''': הגרסה המותקנת של מעטפת נרמול יוניקוד משתמשת בגרסה ישנה של הספרייה של [http://site.icu-project.org/ פרויקט ICU].\nכדאי [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations לעדכן] אם הטיפול ביוניקוד חשוב לך.",
-       "config-no-db": "לא נמצא דרייבר מסד נתונים מתאים. יש להתקין דרייבר מסד נתונים ל־PHP.\nנתמכים הסוגים הבאים של מסדי נתונים: $1.\n\nאם קִמפלת את PHP בעצמך, יש להגדיר אותו מחדש ולהפעיל את לקוח מסד נתונים, למשל באמצעות <code dir=\"ltr\">./configure --with-mysqli</code>.\nאם התקנת את PHP מחבילה של דביאן או של אובונטו, יש להתקין, למשל, גם את המודול <code dir=\"ltr\">php5-mysql</code>.",
+       "config-no-db": "לא נמצא דרייבר מסד נתונים מתאים. יש להתקין דרייבר מסד נתונים ל־PHP.\n{{PLURAL:$2|נתמך הסוג הבא של מסד נתונים|נתמכים הסוגים הבאים של מסדי נתונים}}: $1.\n\nאם קִמפלת את PHP בעצמך, יש להגדיר אותו מחדש ולהפעיל את לקוח מסד נתונים, למשל באמצעות <code dir=\"ltr\">./configure --with-mysqli</code>.\nאם התקנת את PHP מחבילה של דביאן או של אובונטו, יש להתקין, למשל, גם את המודול <code dir=\"ltr\">php5-mysql</code>.",
        "config-outdated-sqlite": "'''אזהרה''': במערכת מתוקן SQLite $1. גרסה זו לא נתמכת ולשימוש ב־SQLite נדרשת גרסה $2 לפחות. SQLlite לא יהיה זמין.",
        "config-no-fts3": "'''אזהרה''': SQLite מקומפל ללא [//sqlite.org/fts3.html מודול FTS]. יכולות חיפוש לא יהיו זמינות בהתקנה הזאת.",
        "config-register-globals-error": "<strong>שגיאה: האפשרות <code>[http://php.net/register_globals register_globals]</code> של PHP מופעלת.\nצריך לכבות אותה כדי להמשיך בהתקנה.</strong>\nר' [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] להסבר איך לעשות את זה.",
index bb1c829..fe450f6 100644 (file)
@@ -46,7 +46,7 @@
        "config-env-php": "PHP $1 ass installéiert.",
        "config-env-hhvm": "HHVM $1 ass installéiert.",
        "config-unicode-using-utf8": "Fir d'Unicode-Normalisatioun gëtt dem Brion Vibber säin <code>utf8_normalize.so</code> benotzt.",
-       "config-no-db": "Et konnt kee passenden Datebank-Driver fonnt ginn! Dir musst een Datebank-Driver fir PHP installéieren.\nDës Datebank-Type ginn ënnerstëtzt: $1.\n\nWann Dir PHP selwer compiléiert hutt, da rekonfiguréiert en mat dem ageschalten Datebank-Client, zum Beispill an deem Dir <code>./configure --with-mysql</code> benotzt.\nWann Dir PHP vun engem Debian oder Ubuntu Package aus installéiert hutt, da musst Dir och den php5-mysql Modul installéieren.",
+       "config-no-db": "Et konnt kee passenden Datebank-Driver fonnt ginn! Dir musst een Datebank-Driver fir PHP installéieren.\n{{PLURAL:$2|Dësn Datebank-Typ gëtt|Dës Datebank-Type ginn}} ënnerstëtzt: $1.\n\nWann Dir PHP selwer compiléiert hutt, da rekonfiguréiert en mat dem ageschalten Datebank-Client, zum Beispill an deem Dir <code>./configure --with-mysql</code> benotzt.\nWann Dir PHP vun engem Debian oder Ubuntu Package aus installéiert hutt, da musst Dir och den php5-mysql Modul installéieren.",
        "config-outdated-sqlite": "'''Warnung:''' SQLite $1 ass installéiert. Allerdengs brauch MediaWiki SQLite $2 oder méi nei. SQLite ass dofir net disponibel.",
        "config-memory-bad": "'''Opgepasst:''' De Parameter <code>memory_limit</code> vu PHP ass $1.\nDat ass wahrscheinlech ze niddreg.\nD'Installatioun kéint net funktionéieren.",
        "config-iconv": "<strong>Fatal:</strong> PHP muss mat Support fir d'[http://www.php.net/manual/en/iconv.installation.php iconv-Erweiderung] kompiléiert ginn.",
index 9c68ce9..b8a68a7 100644 (file)
@@ -51,7 +51,7 @@
        "config-unicode-using-intl": "Aúsa [http://pecl.php.net/intl l'estensione PECL intl] pe' ne fà 'a normalizzazione Unicode.",
        "config-unicode-pure-php-warning": "<strong>Attenziò:</strong> L' [http://pecl.php.net/intl estensione intl PECL] nun è a disposizione pe' gestire 'a normalizzazione Unicode, accussì se ausasse n'imprementazziona llenta 'n puro PHP.\nSi state a gestire nu pizzo ad alto traffico, avisseve a lieggere cocche considerazione ncopp' 'a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizzaziona Unicode].",
        "config-unicode-update-warning": "<strong>Attenziò:</strong> 'A verziona installata 'e normalizzazione Unicode aùsa 'a verziona viecchia d' 'o [http://site.icu-project.org/ pruggetto ICU].\nV'avite 'a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations agghiurnà] si state a penzà ncopp' 'o fatto d'ausà Unicode.",
-       "config-no-db": "Nun se può truvà nu driver adatto p' 'o database! È necessario installare nu driver p' 'o PHP.\n'E furmatte 'e database ccà annanze songo suppurtate: $1.\n\nSi cumpilate PHP autonomamente, riaccunciatevello attivando nu client database, p'esempio ausannoo <code>./configure --with-mysqli</code>.\nQuanno fosse installato PHP pe' bbìa 'e nu pacchetto Debian o Ubuntu, allora avite 'a installà pure 'o pacchetto <code>php5-mysql</code>.",
+       "config-no-db": "Nun se può truvà nu driver adatto p' 'o database! È necessario installare nu driver p' 'o PHP.\n{{PLURAL:$2|'O furmatto suppurtato|'E furmatte suppurtate}} 'e database ccà annanze: $1.\n\nSi cumpilate PHP autonomamente, riaccunciatevello attivando nu client database, p'esempio ausannoo <code>./configure --with-mysqli</code>.\nQuanno fosse installato PHP pe' bbìa 'e nu pacchetto Debian o Ubuntu, allora avite 'a installà pure 'o pacchetto <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Attenziò''': tenite 'o SQLite $1 pe' tramente ca ce vulesse 'a verziona $2, SQLite nun sarrà a disposizione.",
        "config-no-fts3": "'''Attenziò''': SQLite è cumpilato senza 'o [//sqlite.org/fts3.html modulo FTS3], 'e funziune 'e p'ascià dinto nun sarranno a disposizione ncopp'a stu backend.",
        "config-register-globals-error": "<strong>Errore: l'opzione PHP <code>[http://php.net/register_globals register_globals]</code> è apicciata.\nS'avesse 'a stutà pe' cuntinuà c' 'a installazione.</strong>\nVide [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] pe' n'avé n'aiuto ncopp'a comme s'avess'a ffà.",
        "config-db-name": "Nomme d' 'o database:",
        "config-db-name-help": "Sciglite nu nomme ca identificasse 'a wiki vosta.\nNun avess'a cuntenè spazie.\n\nSi ausate nu web hosting spartuto, 'o furnitore d' 'o hosting v'avesse 'a specificà nu nomme 'e database specifico pe' ve permettere 'e crià database pe' bbìa 'e nu pannello 'e cuntrollo.",
        "config-db-name-oracle": "Schema d' 'o database:",
+       "config-db-account-oracle-warn": "Ce stanno tre scenarie suppurtate p' 'a installazione d'Oracle comme database 'e backend:\n\nSi vulite crià n'utenza 'e database comme parte d' 'o prucesso 'e installazione, dàte nu cunto c' 'o ruolo SYSDBA comme utenza d' 'o database pe ne fà installazione e specificate 'e credenziale vulute pe' ne fà l'utenza d'acciesso web, sinò è possibbele crià manualmente l'utenza d'accesso web e dà surtanto chillu cunto (si tenite autorizzaziune neccessarie pe' crià oggette 'e stu schema) po dà dduje utenze divierze, una ch' 'e permesse 'e criazione e n'ata pe ne putè trasì ô web.\n\n'O script p' 'a criazione 'e n'utenza cu tutte st'autorizzaziune neccessarie 'o putite truvà dint' 'a cartella \"maintenance/oracle\" 'e sta installazione. Tenite a mmente che l'uso 'e n'utenza cu sti restriziune stutarrà tutt' 'e funziune 'e manutenzione c' 'o cunto predefinito.",
        "config-db-install-account": "Cunto utente pe' l'installazione",
        "config-db-username": "Nomme utente p' 'o database:",
        "config-db-password": "Password d' 'o database:",
        "config-db-password-empty": "Avita nzertà na password pe' l'utente nuovo d' 'o database: $1.\nPure si fosse possibbele 'e crià ll'utente senza password chisto nun fosse sicuro.",
        "config-db-username-empty": "Avita miette nu valore p' 'o \"{{int:config-db-username}}\"",
+       "config-db-install-username": "Nzertate 'o nomme utente ca s'aussarrà pe' ve cullegà ô database pe' tramente ca se fà l'installazione. Chistu nun è 'o nomme utente d' 'o cunto MediaWiki; ma chillo p' 'o database vuosto.",
+       "config-db-install-password": "Nzertate 'a password che s'ausarrà pe' ve putè cullegà ô database pe' tramente ca se fa l'installazione.\nChista nun è 'a password d' 'o cunto 'e MediaWiki; ma chilla p' 'o database vuosto.",
+       "config-db-install-help": "Miette 'o nomme utente e 'a password ca sarrà usata quanno ve cullegate ô database pe' tramente ca facite 'a installazione.",
+       "config-db-account-lock": "Aúsa 'o stisso nomme utente e password pe' l'operazione normale.",
        "config-db-wiki-account": "Account utente p' 'o funzionamento nurmale",
+       "config-db-wiki-help": "Miette 'o nomme utente e 'a password ca sarrà ausata pe' se cullegà ô database pe' l'operazione normale d' 'o wiki. Si 'o cunto nun esiste, e 'o cunto e installazione téne diritte sufficiente, sarrà criato ch' 'e diritte minime necessarie pe' putè faticà ncopp' 'o wiki.",
        "config-db-prefix": "Prefisso d' 'a tavolozza d' 'o database:",
+       "config-db-prefix-help": "Si tenite abbesuogno 'e spartì nu database nfra cchiù wiki, o nfra MediaWiki e n'at'apprecazione web, putite scegliere d'azzeccà nu prefisso a tutte 'e nomme 'e tabbella, pe putè evità cunflitte.\nNun ausate abbacante.\n\n'O solito, stu campo se lassasse abbacante.",
        "config-db-charset": "Nzieme 'e carattere d' 'o database",
        "config-charset-mysql5-binary": "MySQL 4.1/5.0 binario",
        "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-oracle-temp-ts": "Tablespace temporaneo:",
        "config-type-mysql": "MySQL (o compatibbele)",
        "config-type-mssql": "Microsoft SQL Server",
+       "config-support-info": "MediaWiki supporta 'e sisteme 'e database ccà abbascio:\n\n$1\n\nSi nfra chiste ccà nun vedite 'o sistema 'e database ca vulite ausà, allora avite liegge 'e instruziune ccà ncoppa pe' ne dà supporto.",
        "config-header-mysql": "Mpustaziune MySQL",
        "config-header-postgres": "Mpustaziune PostgreSQL",
        "config-header-sqlite": "Mpustaziune SQLite",
        "config-missing-db-name": "Avita miette nu valore p' 'o \"{{int:config-db-name}}\"",
        "config-missing-db-host": "Avita miette nu valore p' 'o \"{{int:config-db-host}}\"",
        "config-missing-db-server-oracle": "Avita miette nu valore p' 'o \"{{int:config-db-host-oracle}}\"",
+       "config-connection-error": "$1.\n\nCuntrullate 'o host, nomme utente e password e tentate n'ata vota.",
+       "config-invalid-schema": "Schema MediaWiki \"$1\" nun è buono.\nAusate surtanto 'e lettere ASCII (a-z, A-Z), nummere (0-9) e carattere 'e sottolineatura (_).",
+       "config-db-sys-create-oracle": "'O prugramma 'e installazione supporta surtanto l'uso 'e nu cunto SYSDBA pe' putè crià nu cunto nuovo.",
        "config-sqlite-readonly": "'O file <code>$1</code> nun è scrivibbele.",
        "config-sqlite-cant-create-db": "Nun se può crià 'o file database <code>$1</code>.",
        "config-sqlite-fts3-downgrade": "'O PHP è mancante d' 'o suppuorto FTS3, declassamento tabbelle 'n curzo",
index bc8caed..5cf71c4 100644 (file)
@@ -68,7 +68,7 @@
        "config-unicode-using-intl": "Korzystanie z [http://pecl.php.net/intl rozszerzenia intl PECL] do normalizacji Unicode.",
        "config-unicode-pure-php-warning": "'''Uwaga!''' [http://pecl.php.net/intl Rozszerzenie intl PECL] do obsługi normalizacji Unicode nie jest dostępne. Użyta zostanie mało wydajna zwykła implementacja w PHP.\nJeśli prowadzisz stronę o dużym natężeniu ruchu, powinieneś zapoznać się z informacjami o [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizacji Unicode].",
        "config-unicode-update-warning": "'''Uwaga''' – zainstalowana wersja normalizacji Unicode korzysta z nieaktualnej biblioteki [http://site.icu-project.org/ projektu ICU].\nPowinieneś [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations zrobić aktualizację] jeśli chcesz korzystać w pełni z Unicode.",
-       "config-no-db": "Nie można odnaleźć właściwego sterownika bazy danych! Musisz zainstalować sterownik bazy danych dla PHP.\nMożna użyć następujących typów baz danych: $1.\n\nJeśli skompilowałeś PHP samodzielnie, skonfiguruj je ponownie z włączonym klientem bazy danych, na przykład za pomocą polecenia <code>./configure --with-mysqli</code>.\nJeśli zainstalowałeś PHP jako pakiet Debiana lub Ubuntu, musisz również zainstalować np. moduł <code>php5-mysql</code>.",
+       "config-no-db": "Nie można odnaleźć właściwego sterownika bazy danych! Musisz zainstalować sterownik bazy danych dla PHP.\nMożna użyć {{PLURAL:$2|następującego typu bazy|następujących typów baz} danych: $1.\n\nJeśli skompilowałeś PHP samodzielnie, skonfiguruj je ponownie z włączonym klientem bazy danych, na przykład za pomocą polecenia <code>./configure --with-mysqli</code>.\nJeśli zainstalowałeś PHP jako pakiet Debiana lub Ubuntu, musisz również zainstalować np. moduł <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Ostrzeżenie''': masz SQLite  $1, która jest niższa od minimalnej wymaganej wersji  $2 . SQLite będzie niedostępne.",
        "config-no-fts3": "'''Uwaga''' – SQLite został skompilowany bez [//sqlite.org/fts3.html modułu FTS3] – funkcje wyszukiwania nie będą dostępne.",
        "config-register-globals-error": "<strong>Błąd: dyrektywa PHP <code>[http://php.net/register_globals register_globals]</code> jest włączona.\nAby kontynuować instalację musi zostać wyłączona.</strong>\nPrzeczytaj [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals], aby dowiedzieć się, jak to zrobić.",
index 835cf9b..b63905b 100644 (file)
@@ -64,7 +64,7 @@
        "config-unicode-using-intl": "A usar a [http://pecl.php.net/intl extensão intl PECL] para a normalização Unicode.",
        "config-unicode-pure-php-warning": "'''Aviso''': A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode. Irá recorrer-se à implementação em PHP puro, que é mais lenta.\nSe o seu site tem alto volume de tráfego, devia informar-se um pouco sobre a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations/pt normalização Unicode].",
        "config-unicode-update-warning": "'''Aviso''': A versão instalada do wrapper de normalização Unicode usa uma versão mais antiga da biblioteca do [http://site.icu-project.org/ projeto ICU].\nDevia [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations atualizá-la] se tem quaisquer preocupações sobre o uso do Unicode.",
-       "config-no-db": "Não foi possível encontrar um controlador ''(driver)'' apropriado da base de dados! Precisa de instalar um controlador da base de dados para o PHP. São aceites os seguintes tipos de base de dados: $1.\n\nSe fez a compilação do PHP, reconfigure-o com um cliente de base de dados ativado; por exemplo, usando <code>./configure --with-mysql</code>.\nSe instalou o PHP a partir de um pacote Debian ou Ubuntu, então precisa de instalar também, por exemplo, o pacote <code>php5-mysql</code>.",
+       "config-no-db": "Não foi possível encontrar um controlador apropriado da base de dados! Precisa de instalar um controlador da base de dados para o PHP. {{PLURAL:$2|É aceite o seguinte tipo|São aceites os seguintes tipos}} de base de dados: $1.\n\nSe fez a compilação do PHP, reconfigure-o com um cliente de base de dados ativado; por exemplo, usando <code>./configure --with-mysql</code>.\nSe instalou o PHP a partir de um pacote Debian ou Ubuntu, então precisa de instalar também, por exemplo, o pacote <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Aviso''': Tem a versão $1 do SQLite, que é anterior à versão mínima necessária, a $2. O SQLite não estará disponível.",
        "config-no-fts3": "'''Aviso''': O SQLite foi compilado sem o módulo [//sqlite.org/fts3.html FTS3]; as funcionalidades de pesquisa não estarão disponíveis nesta instalação.",
        "config-magic-quotes-runtime": "'''Erro fatal: A opção [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] está ativa!'''\nEsta opção causa corrupção dos dados de entrada, de uma forma imprevisível.\nNão pode instalar ou usar o MediaWiki a menos que esta opção seja desativada.",
index 772ce96..3a9f267 100644 (file)
@@ -67,7 +67,7 @@
        "config-unicode-using-intl": "Status message in the MediaWiki installer environment checks.",
        "config-unicode-pure-php-warning": "PECL is the name of a group producing standard pieces of software for PHP, and intl is the name of their library handling some aspects of internationalization.",
        "config-unicode-update-warning": "ICU is a body producing standard software tools for support of Unicode and other internationalization aspects. This message warns the system administrator installing MediaWiki that the server's software is not up-to-date and MediaWiki will have problems handling some characters.",
-       "config-no-db": "{{doc-important|Do not translate \"<code>./configure --with-mysqli</code>\" and \"<code>php5-mysql</code>\".}}\nParameters:\n* $1 is comma separated list of database types supported by MediaWiki.",
+       "config-no-db": "{{doc-important|Do not translate \"<code>./configure --with-mysqli</code>\" and \"<code>php5-mysql</code>\".}}\nParameters:\n* $1 is comma separated list of database types supported by MediaWiki.\n* $2 is the count of items in $1 - for use in plural.",
        "config-outdated-sqlite": "Used as warning. Parameters:\n* $1 - the version of SQLite that has been installed\n* $2 - minimum version",
        "config-no-fts3": "A \"[[:wikipedia:Front and back ends|backend]]\" is a system or component that ordinary users don't interact with directly and don't need to know about, and that is responsible for a distinct task or service - for example, a storage back-end is a generic system for storing data which other applications can use. Possible alternatives for back-end are \"system\" or \"service\", or (depending on context and language) even leave it untranslated.",
        "config-register-globals-error": "Error message in the MediaWiki installer environment checks.",
index 7dd0baa..27b7b93 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Singhalawap",
                        "පසිඳු කාවින්ද",
-                       "Sahan.ssw"
+                       "Sahan.ssw",
+                       "Thirsty"
                ]
        },
        "config-desc": "මාධ්‍යවිකි සඳහා වූ ස්ථාපකය",
@@ -60,6 +61,7 @@
        "config-missing-db-name": "\"දත්ත සංචිත නාමය\" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ",
        "config-missing-db-host": "\"දත්ත සංචිත ධාරකය\" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ",
        "config-missing-db-server-oracle": "\"දත්ත සංචිත TNS\" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ",
+       "config-sqlite-name-help": "ඔබගේ විකිය හදුන්වාදෙන නමක් තෝරාගන්න. \nහිස්තැන් හෝ විරාම ලක්ෂණ ‍නොයොදන්න.\nමෙය SQLite දත්ත ගොනුනාමය සදහා යොදා ගනු ඇත.",
        "config-regenerate": "නැවත ජනිත කරන්න LocalSettings.php →",
        "config-db-web-account": "ජාල ප්‍රවේශනය සඳහා දත්ත සංචිත ගිණුම",
        "config-mysql-engine": "ආචයන එන්ජිම:",
index eac135b..4b12c75 100644 (file)
        "config-localsettings-key": "Chìa khóa nâng cấp:",
        "config-localsettings-badkey": "Bạn đã cung cấp một chìa khóa sai.",
        "config-upgrade-key-missing": "Một bản cài đặt MediaWiki sẵn đã được phát hiện.\nĐể nâng cấp bản cài đặt này, hãy thêm dòng sau vào cuối <code>LocalSettings.php</code>:\n\n$1",
+       "config-localsettings-incomplete": "Tập tin <code>LocalSettings.php</code> đã tồn tại hình như không hoàn chỉnh.\nBiến $1 chưa được đặt.\nXin hãy thay đổi <code>LocalSettings.php</code> để đặt biến này, rồi bấm “{{int:Config-continue}}”.",
+       "config-localsettings-connection-error": "Đã xuất hiện lỗi khi kết nối với cơ sở dữ liệu dùng cấu hình trong <code>LocalSettings.php</code>. Xin hãy sửa lại cấu hình và thử lại.\n\n$1",
        "config-session-error": "Lỗi khi bắt đầu phiên làm việc: $1",
+       "config-session-expired": "Dữ liệu phiên làm việc của bạn dường như đã hết hạn. Các phiên làm việc được cấu hình để kéo dài $1. Để tăng thời gian này, đặt <code>session.gc_maxlifetime</code> trong php.ini, rồi khởi động lại quá trình cài đặt.",
+       "config-no-session": "Đã mất dữ liệu phiên làm việc của bạn! Kiểm tra tập tin php.ini và đảm bảo rằng <code>session.save_path</code> đã được đặt thành một thư mục thích hợp.",
        "config-your-language": "Ngôn ngữ của bạn:",
        "config-your-language-help": "Chọn một ngôn ngữ để sử dụng trong quá trình cài đặt.",
        "config-wiki-language": "Ngôn ngữ wiki:",
        "config-page-copying": "Sao chép",
        "config-page-upgradedoc": "Nâng cấp",
        "config-page-existingwiki": "Wiki đã tồn tại",
+       "config-help-restart": "Bạn có muốn xóa tất cả dữ liệu được lưu mà bạn vừa nhập và khởi động lại quá trình cài đặt?",
        "config-restart": "Có, khởi động lại nó",
        "config-welcome": "=== Kiểm tra môi trường ===\nBây giờ sẽ kiểm tra sơ qua môi trường này có phù hợp cho việc cài đặt MediaWiki.\nHãy nhớ bao gồm thông tin này khi nào xin hỗ trợ hoàn thành việc cài đặt.",
+       "config-copyright": "=== Bản quyền và Điều khoản ===\n\n$1\n\nChương trình này là phần mềm tự do; bạn có thể phân phối lại và/hoặc chỉnh sửa nó dưới điều khoản của Giấy phép Công cộng GNU (GNU General Public License) do Quỹ Phần mềm Tự do (Free Software Foundation) xuất bản; hoặc phiên bản 2 của giấy phép đó, hoặc (tùy theo ý bạn) bất kỳ phiên bản nào sau này.\n\nChương trình này được phân phối với hy vọng rằng nó sẽ hữu ích, nhưng <strong>không có bất kỳ bảo hành nào</strong>; không có thậm chí bảo hành bao hàm về <strong>khả năng thương mại</strong> hoặc <strong>sự thích hợp với một mục đích cụ thể</strong>.\nXem Giấy phép Công cộng GNU để biết thêm chi tiết.\n\nBạn phải nhận <doclink href=Copying>một bản sao của Giấy phép Công cộng GNU</doclink> đi kèm chương trình này; nếu không, hãy viết thư cho Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, Hoa Kỳ, hoặc [http://www.gnu.org/copyleft/gpl.html đọc nó trên mạng].",
+       "config-sidebar": "* [//www.mediawiki.org/wiki/Special:MyLanguage/MediaWiki Trang chủ MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Hướng dẫn sử dụng]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Hướng dẫn quản lý]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Câu thường hỏi]\n----\n* <doclink href=Readme>Cần đọc trước</doclink>\n* <doclink href=ReleaseNotes>Ghi chú phát hành</doclink>\n* <doclink href=Copying>Sao chép</doclink>\n* <doclink href=UpgradeDoc>Nâng cấp</doclink>",
        "config-env-good": "Đã kiểm tra môi trường.\nBạn có thể cài đặt MediaWiki.",
        "config-env-bad": "Đã kiểm tra môi trường.\nBạn không thể cài đặt MediaWiki.",
        "config-env-php": "PHP $1 đã được cài đặt.",
        "config-unicode-using-intl": "Sẽ sử dụng [http://pecl.php.net/intl phần mở rộng PECL intl] để chuẩn hóa Unicode.",
        "config-unicode-pure-php-warning": "<strong>Cảnh báo:</strong>  [http://pecl.php.net/intl intl PECL extension] không được phép xử lý Unicode chuẩn hóa, trả lại thực thi PHP-gốc chậm.\nNếu bạn chạy một site lưu lượng lớn, bạn phải để ý qua một chút trên  [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
        "config-unicode-update-warning": "<strong>Cảnh báo:</strong> Phiên bản cài đặt của gói Unicode chuẩn hóa sử dụng một phiên bản cũ của thư viện [http://site.icu-project.org/ the ICU project].\nBạn phải [//www.mediawiki.org/wiki/Special:MyLanguage/nâng cấp Unicode_normalization_considerations] nếu bạn quan tâm đến việc sử dụng Unicode.",
+       "config-no-db": "Không tìm thấy một trình điều khiển cơ sở dữ liệu phù hợp! Bạn cần phải cài một trình điều khiển cơ sở dữ liệu cho PHP.\n{{PLURAL:$2|Loại|Các loại}} cơ sở dữ liệu sau đây được hỗ trợ: $1.\n\nNếu bạn đã biên dịch PHP lấy, cấu hình lại nó mà kích hoạt một trình khách cơ sở dữ liệu, ví dụ bằng lệnh <code>./configure --with-mysqli</code>.\nNếu bạn đã cài PHP từ một gói Debian hoặc Ubuntu, thì bạn cũng cần phải cài ví dụ gói <code>php5-mysql</code>.",
+       "config-outdated-sqlite": "<strong>Chú ý:</strong> Bạn có SQLite $1, phiên bản này thấp hơn phiên bản yêu câu tối thiểu $2. SQLite sẽ không có tác dụng.",
+       "config-no-fts3": "<strong>Chú ý:</strong> SQLite được biên dịch mà không có [//sqlite.org/fts3.html mô đun FTS3], nên các chức năng tìm kiếm sẽ bị vô hiệu trên hệ thống phía sau này.",
+       "config-register-globals-error": "<strong>Lỗi: Tùy chọn <code>[http://php.net/register_globals register_globals]</code> của PHP đã được kích hoạt.\nNó phải bị vô hiệu để tiếp tục quá trình cài đặt.</strong>\nXem [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] để biết cách thực hiện.",
+       "config-magic-quotes-gpc": "<strong>Sai lầm: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] đang hoạt động!</strong>\nTùy chọn này sẽ làm hỏng dữ liệu nhập một cách không thể đoán trước.\nBạn không thể cài đặt hoặc sử dụng MediaWiki trừ phi tùy chọn này bị vô hiệu.",
+       "config-magic-quotes-runtime": "<strong>Sai lầm: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] đang hoạt động!</strong>\nTùy chọn này sẽ làm hỏng dữ liệu nhập một cách không thể đoán trước.\nBạn không thể cài đặt hoặc sử dụng MediaWiki trừ phi tùy chọn này bị vô hiệu.",
+       "config-magic-quotes-sybase": "<strong>Sai lầm: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] đang hoạt động!</strong>\nTùy chọn này sẽ làm hỏng dữ liệu nhập một cách không thể đoán trước.\nBạn không thể cài đặt hoặc sử dụng MediaWiki trừ phi tùy chọn này bị vô hiệu.",
+       "config-mbstring": "<strong>Sai lầm: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] được kích hoạt!</strong>\nTùy chọn này gây lỗi và có thể làm hỏng dữ liệu một cách không thể đoán trước.\nBạn không thể cài đặt hoặc sử dụng MediaWiki trừ phi tùy chọn này bị vô hiệu.",
+       "config-safe-mode": "<strong>Cảnh báo:</strong> [http://www.php.net/features.safe-mode Chế độ an toàn] của PHP đang được kích hoạt.\nNó có thể gây vấn đề, nhất là nếu dùng các chức năng tải lên tập tin và <code>math</code>.",
+       "config-xml-bad": "Mô đun XML của PHP đang bị thiếu.\nMediaWiki yêu cầu các hàm trong mô đun này và sẽ không hoạt động trong cấu hình này.\nNếu bạn đang chạy Mandrake, hãy cài đặt gói php-xml.",
+       "config-pcre-old": "<strong>Sai lầm:</strong> PCRE $1 trở lên được yêu cầu phải có.\nBản nhị phân PHP của bạn dang được liên kết với PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Thông tin bổ sung].",
+       "config-pcre-no-utf8": "<strong>Sai lầm:</strong> Mô đun PCRE của PHP dường như được biên dịch mà không có hỗ trợ PCRE_UTF8.\nMediaWiki yêu cầu phải có hỗ trợ UTF-8 để hoạt động chính xác.",
+       "config-memory-raised": "<code>memory_limit</code> của PHP là $1, tăng lên $2.",
+       "config-memory-bad": "<strong>Cảnh báo:</strong> <code>memory_limit</code> của PHP là $1.\nGiá trị này có lẽ quá thấp.\nCài đặt có thể bị thất bại!",
+       "config-ctype": "<strong>Sai lầm:</strong> PHP phải được biên dịch với hỗ trợ cho [http://www.php.net/manual/en/ctype.installation.php phần mở rộng Ctype].",
+       "config-iconv": "<strong>Sai lầm:</strong> PHP phải được biên dịch với hỗ trợ cho [http://www.php.net/manual/en/iconv.installation.php phần mở rộng iconv].",
+       "config-json": "<strong>Sai lầm:</strong> PHP được biên dịch mà không có hỗ trợ cho JSON.\nBạn phải cài đặt hoặc phần mở rộng JSON PHP hoặc phần mở rộng [http://pecl.php.net/package/jsonc PECL jsonc] trước khi cài đặt MediaWiki.\n* Phần mở rộng PHP có sẵn trong Red Hat Enterprise Linux (CentOS) 5 và 6 nhưng phải được kích hoạt trong <code>/etc/php.ini</code> hoặc <code>/etc/php.d/json.ini</code>.\n* Một số phiên bản Linux được phát hành sau tháng 5 năm 2013 bỏ qua phần mở rộng PHP và gói lại phần mở rộng PECL là <code>php5-json</code> hoặc <code>php-pecl-jsonc</code> thay thế.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] đã được cài đặt",
        "config-apc": "[http://www.php.net/apc APC] đã được cài đặt",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] đã được cài đặt",
+       "config-no-cache": "<strong>Cảnh báo:</strong> Không tìm thấy [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] hoặc [http://www.iis.net/download/WinCacheForPhp WinCache].\nVùng nhớ đệm đối tượng không được kích hoạt.",
+       "config-mod-security": "<strong>Cảnh báo:</strong> [http://modsecurity.org/ mod_security]/mod_security2 đã được kích hoạt trên máy chủ Web của bạn. Nhiều cấu hình phổ biến của phần mềm này sẽ gây vấn đề cho MediaWiki và những phần mềm khác cho phép người dùng đăng các nội dung tùy tiện.\nNếu có thể, bạn nên vô hiệu nó. Còn không, tra cứu [http://modsecurity.org/documentation/ tài liệu mod_security] hoặc liên hệ với nhà cung cấp hỗ trợ cho máy chủ nếu bạn gặp những lỗi ngẫu nhiên nào đó.",
        "config-diff3-bad": "Không tìm thấy GNU diff3.",
        "config-git": "Đã tìm thấy phần mềm điều khiển phiên bản Git: <code>$1</code>.",
        "config-git-bad": "Không tìm thấy phần mềm điều khiển phiên bản Git.",
+       "config-imagemagick": "Đã tìm thấy ImageMagick: <code>$1</code>.\nChức năng thu nhỏ hình ảnh sẽ được kích hoạt nếu bạn cho phép tải lên.",
+       "config-gd": "Đã tìm thấy thư viện đồ họa GD đi kèm.\nChức năng thu nhỏ hình ảnh sẽ được kích hoạt nếu bạn cho phép tải lên.",
+       "config-no-scaling": "Không thể tìm thấy thư viện GD hoặc ImageMagic. Chức năng thu nhỏ hình ảnh sẽ bị vô hiệu.",
+       "config-no-uri": "<strong>Lỗi:</strong> Không thể xác định URI hiện tại. Cài đặt bị thất bại.",
+       "config-no-cli-uri": "<strong>Cảnh báo:</strong> Không có <code>--scriptpath</code> nào được xác định, nên sử dụng mặc định: <code>$1</code>.",
        "config-using-server": "Sẽ sử dụng tên máy chủ “<nowiki>$1</nowiki>”.",
        "config-using-uri": "Sẽ sử dụng URL máy chủ “<nowiki>$1$2</nowiki>”.",
+       "config-uploads-not-safe": "<strong>Cảnh báo:</strong> Thư mục tải lên mặc định của bạn, <code>$1</code>, đang có lỗ hỏng bảo mật, dễ bị khai thác bởi các đoạn mã thực thi xấu.\nMặc dù MediaWiki kiểm tra tất cả các tập tin tải lên để tránh nguy cơ bảo mật, chúng tôi đặc biệt khuyến cáo [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security đóng lỗ hỏng bảo mật này lại] trước khi kích hoạt tính năng tải lên.",
+       "config-no-cli-uploads-check": "<strong>Cảnh báo:</strong> Thư mục tải lên mặc định của bạn (<code>$1</code>) không được kiểm tra lỗ hỏng bảo mật dễ bị khai thác bởi các đoạn mã thực thi xấu trong quá trình cài đặt giao diện dòng lệnh.",
+       "config-brokenlibxml": "Hệ thống của bạn có kết hợp các phiên bản lỗi lầm của PHP và libxml2, điều này có thể gây ra tổn thương không nhìn thấy được đối với dữ liệu trong MediaWiki và các ứng dụng Web khác.\nHãy nâng cấp lên phiên bản libxml2 2.7.3 trở lên ([https://bugs.php.net/bug.php?id=45996 lỗi nộp PHP]).\nCài đặt bị hủy bỏ.",
+       "config-suhosin-max-value-length": "Suhosin được cài đặt và hạn chế tham số GET <code>length</code> (độ dài) không thể vượt quá $1 byte.\nThành phần ResourceLoader của MediaWiki sẽ khắc phục giới hạn này, nhưng điều này sẽ làm giảm hiệu suất.\nNếu có thể, bạn nên tăng <code>suhosin.get.max_value_length</code> lên 1024 trở lên trong <code>php.ini</code>, và đặt <code>$wgResourceLoaderMaxQueryLength</code> cùng giá trị trong <code>LocalSettings.php</code>.",
        "config-db-type": "Kiểu cơ sở dữ liệu:",
        "config-db-host": "Máy chủ của cơ sở dữ liệu:",
+       "config-db-host-help": "Nếu máy chủ cơ sở dữ liệu của bạn nằm trên máy chủ khác, hãy điền tên hoặc địa chỉ IP của máy chủ vào đây.\n\nNếu bạn đang dùng Web hosting chia sẻ, tài liệu của nhà cung cấp hosting của bạn sẽ có tên chính xác của máy chủ.\n\nNếu bạn đang cài đặt trên một máy chủ Windows và sử dụng MySQL, việc dùng “localhost” có thể không hợp với tên máy chủ. Nếu bị như vậy, hãy thử “127.0.0.1” tức địa chỉ IP địa phương.\n\nNếu bạn đang dùng PostgreSQL, hãy để trống mục này để kết nối với một ổ cắm Unix.",
        "config-db-host-oracle": "TNS cơ sở dữ liệu:",
+       "config-db-host-oracle-help": "Nhập một [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Tên Kết nối Địa phương] hợp lệ; một tập tin tnsnames.ora phải được hiển thị đối với cài đặt này.<br />Nếu bạn đang sử dụng các thư viện trình khách 10g trở lên, bạn cũng có thể sử dụng phương pháp đặt tên [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
        "config-db-wiki-settings": "Dữ liệu để nhận ra wiki này",
        "config-db-name": "Tên cơ sở dữ liệu:",
+       "config-db-name-help": "Chọn một tên để chỉ thị wiki của bạn.\nKhông nên đưa dấu cách vào tên này.\n\nNếu bạn đang sử dụng Web hosting chia sẻ, nhà cung cấp hosting của bạn hoặc là sẽ cung cấp cho bạn một tên cơ sở dữ liệu cụ thể để sử dụng hoặc là sẽ cho phép bạn tạo ra các cơ sở dữ liệu thông qua một bảng điều khiển.",
        "config-db-name-oracle": "Giản đồ cơ sở dữ liệu:",
+       "config-db-account-oracle-warn": "Có ba trường hợp được hỗ trợ để cài đặt Oracle làm cơ sở dữ liệu phía sau:\n\nNếu bạn muốn tạo tài khoản cơ sở dữ liệu trong quá trình cài đặt, xin vui lòng cung cấp một tài khoản với vai trò SYSDBA là tài khoản cơ sở dữ liệu để cài đặt và xác định định danh mong muốn cho tài khoản truy cập Web, nếu không bạn có thể tạo tài khoản truy cập Web thủ công và chỉ cung cấp tài khoản đó (nếu nó có các quyền yêu cầu để tạo ra các đối tượng giản đồ) hoặc cung cấp hai tài khoản riêng, một có quyền tạo ra và một bị hạn chế có quyền truy cập Web.\n\nMột kịch bản để tạo một tài khoản với quyền yêu cầu có sẵn trong thư mục cài đặt “maintenance/oracle/”. Hãy nhớ rằng việc sử dụng một tài khoản bị hạn chế sẽ vô hiệu hóa tất cả các khả năng bảo trì với tài khoản mặc định.",
        "config-db-install-account": "Tài khoản người dùng để cài đặt",
        "config-db-username": "Tên người dùng cơ sở dữ liệu:",
        "config-db-password": "Mật khẩu cơ sở dữ liệu:",
+       "config-db-password-empty": "Xin nhập vào một mật khẩu cho người dùng cơ sở dữ liệu mới: $1. Tuy bạn có thể tạo một tài khoản người dùng mà không cần mật khẩu, nhưng khi đó sẽ không đảm bảo tính bảo mật cho bạn.",
        "config-db-username-empty": "Bạn phải nhập một giá trị cho “{{int:config-db-username}}”",
+       "config-db-install-username": "Nhập tên người dùng để kết nối với cơ sở dữ liệu trong quá trình cài đặt.\nĐây không phải là tên người dùng của tài khoản MediaWiki; đây là tên người dùng cho cơ sở dữ liệu của bạn.",
+       "config-db-install-password": "Nhập mật khẩu để kết nối với cơ sở dữ liệu trong quá trình cài đặt.\nĐây không phải là mật khẩu của tài khoản MediaWiki; đây là mật khẩu cho cơ sở dữ liệu của bạn.",
+       "config-db-install-help": "Nhập tên người dùng và mật khẩu sẽ được sử dụng để kết nối với cơ sở dữ liệu trong quá trình cài đặt.",
+       "config-db-account-lock": "Sử dụng cùng tên người dùng và mật khẩu trong quá trình hoạt động bình thường",
        "config-db-wiki-account": "Tài khoản người dùng để hoạt động bình thường",
+       "config-db-wiki-help": "Nhập tên người dùng và mật khẩu sẽ được sử dụng để kết nối với cơ sở dữ liệu trong quá trình hoạt động bình thường của wiki.\nNếu tài khoản không tồn tại và tài khoản cài đặt có đủ quyền hạn, tài khoản người dùng này sẽ được tạo ra với những đặc quyền tối thiểu cần thiết để vận hành wiki.",
        "config-db-prefix": "Tiền tố bảng cơ sở dữ liệu:",
+       "config-db-prefix-help": "Nếu bạn cần phải chia sẻ một cơ sở dữ liệu chung với nhiều wiki, hay giữa MediaWiki và một ứng dụng Web, bạn có thể quyết định thêm một tiền tố cho tất cả các tên bảng để tránh xung đột.\nKhông sử dụng dấu cách.\n\nTrường này thường được bỏ trống.",
        "config-db-charset": "Bảng mã cơ sở dữ liệu",
        "config-charset-mysql5-binary": "MySQL 4.1/5.0 nhị phân",
        "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-charset-mysql4": "MySQL 4.0 UTF-8 tương thích ngược",
+       "config-charset-help": "<strong>Cảnh báo:</strong> Nếu bạn sử dụng <strong>UTF-8 tương thích ngược</strong> trên MySQL 4.1+ và sau đó sao lưu cơ sở dữ liệu với <code>mysqldump</code>, việc này có thể phá hủy tất cả các ký tự không phải ASCII, không thể phục hồi sao lưu bị hỏng của bạn!\n\nTrong <strong>chế độ nhị phân</strong>, MediaWiki lưu trữ văn bản UTF-8 vào cơ sở dữ liệu trong các trường nhị phân.\nĐiều này hiệu quả hơn so với chế độ UTF-8 của MySQL và cho phép bạn sử dụng đầy đủ các ký tự của Unicode.\nTrong <strong>chế độ UTF-8</strong>, MySQL sẽ biết bảng mã của dữ liệu và có thể trình bày và chuyển đổi nó chính xác,\nnhưng nó sẽ không cho phép lưu các ký tự nằm cao hơn [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Mặt phẳng đa ngôn ngữ căn bản].",
        "config-mysql-old": "Cần MySQL $1 trở lên; bạn có $2.",
        "config-db-port": "Cổng cơ sở dữ liệu:",
        "config-db-schema": "Giản đồ cho MediaWiki:",
+       "config-db-schema-help": "Giản đồ này thường làm việc tốt.\nChỉ thay đổi nó nếu bạn biết cần phải làm như vậy.",
        "config-pg-test-error": "Không thể kết nối với cơ sở dữ liệu '''$1''': $2",
        "config-sqlite-dir": "Thư mục dữ liệu SQLite:",
+       "config-sqlite-dir-help": "SQLite lưu tất cả các dữ liệu trong một tập tin duy nhất.\n\nThư mục mà bạn cung cấp phải cho phép máy chủ Web ghi vào khi cài đặt.\n\n<strong>Không</strong> nên làm cho nó truy cập được qua Web; đây là lý do chúng tôi không đặt nó vào cùng thư mục với các tập tin PHP của bạn.\n\nTrình cài đặt sẽ ghi một tập tin <code>.htaccess</code> đi kèm, nhưng nếu thất bại người nào đó có thể truy cập vào cơ sở dữ liệu thô của bạn.\nĐiều đó bao gồm dữ liệu người dùng thô (địa chỉ thư điện tử, mật khẩu được băm) cũng như các phiên bản bị xóa và dữ liệu bị hạn chế khác trên wiki.\n\nXem xét đặt cơ sở dữ liệu tại nơi nào khác hẳn, ví dụ trong <code>/var/lib/mediawiki/wiki_cua_ban</code>.",
        "config-oracle-def-ts": "Không gian bảng mặc định:",
        "config-oracle-temp-ts": "Không gian bảng tạm:",
        "config-type-mysql": "MySQL (hoặc tương hợp)",
        "config-type-mssql": "Microsoft SQL Server",
+       "config-support-info": "MediaWiki hỗ trợ các hệ thống cơ sở dữ liệu sau đây:\n\n$1\n\nNếu bạn không thấy hệ thống cơ sở dữ liệu mà bạn đang muốn sử dụng được liệt kê dưới đây, thì hãy theo chỉ dẫn được liên kết ở trên để kích hoạt tính năng hỗ trợ.",
+       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] là mục tiêu chính cho MediaWiki và được hỗ trợ tốt nhất. MediaWiki cũng làm việc với [{{int:version-db-mariadb-url}} MariaDB] và [{{int:version-db-percona-url}} Percona Server], là những cơ sở dữ liệu tương thích với MySQL. ([http://www.php.net/manual/en/mysqli.installation.php Làm thế nào để biên dịch PHP với sự hỗ trợ của MySQL])",
+       "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] là một hệ thống cơ sở dữ liệu mã nguồn mở phổ biến như là một thay thế cho MySQL. Có thể có một số lỗi nhỏ lâu đời, và nó không được khuyến cáo sử dụng trong môi trường sản xuất. ([http://www.php.net/manual/en/pgsql.installation.php Làm thế nào để biên dịch PHP với sự hỗ trợ của PostgreSQL])",
+       "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] là một hệ thống cơ sở dữ liệu dung lượng nhẹ được hỗ trợ rất tốt. ([http://www.php.net/manual/en/pdo.installation.php Làm thế nào để biên dịch PHP với sự hỗ trợ của SQLite], sử dụng PDO)",
+       "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] là một cơ sở dữ liệu doanh nghiệp thương mại. ([http://www.php.net/manual/en/oci8.installation.php Làm thế nào để biên dịch PHP với sự hỗ trợ của OCI8])",
+       "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] là một cơ sở dữ liệu doanh nghiệp thương mại cho Windows. ([http://www.php.net/manual/en/sqlsrv.installation.php Làm thế nào để biên dịch PHP với sự hỗ trợ của SQLSRV])",
        "config-header-mysql": "Thiết lập MySQL",
        "config-header-postgres": "Thiết lập PostgreSQL",
        "config-header-sqlite": "Thiết lập SQLite",
        "config-missing-db-name": "Bạn phải nhập một giá trị cho “{{int:config-db-name}}”",
        "config-missing-db-host": "Bạn phải nhập một giá trị cho “{{int:config-db-host}}”",
        "config-missing-db-server-oracle": "Bạn phải nhập một giá trị cho “{{int:config-db-host-oracle}}”",
+       "config-invalid-db-server-oracle": "Cơ sở dữ liệu TNS không hợp lệ “$1”.\nHoặc sử dụng “TNS Name” hoặc một chuỗi “Easy Connect” ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Phương pháp đặt tên Oracle]).",
+       "config-invalid-db-name": "Tên cơ sở dữ liệu không hợp lệ “$1”.\nChỉ sử dụng các chữ cái ASCII (a–z, A–Z), số (0–9), dấu gạch dưới (_) và dấu gạch ngang (-).",
+       "config-invalid-db-prefix": "Tiền tố cơ sở dữ liệu không hợp lệ “$1”.\nChỉ sử dụng các chữ cái ASCII (a–z, A–Z), số (0–9), dấu gạch dưới (_) và dấu gạch ngang (-).",
+       "config-connection-error": "$1.\n\nKiểm tra máy chủ, tên người dùng, và mật khẩu và thử lại lần nữa.",
        "config-invalid-schema": "Giản đồ “$1” không hợp lệ cho MediaWiki.\nHãy chỉ sử dụng các chữ cái ASCII (a–z, A–Z), chữ số (0–9), và dấu gạch dưới (_).",
+       "config-db-sys-create-oracle": "Trình cài đặt chỉ hỗ trợ sử dụng một tài khoản SYSDBA để tạo một tài khoản mới.",
+       "config-db-sys-user-exists-oracle": "Tài khoản người dùng “$1” đã tồn tại. SYSDBA chỉ có thể được sử dụng để tạo một tài khoản mới!",
        "config-postgres-old": "Cần PostgreSQL $1 trở lên; bạn có $2.",
        "config-mssql-old": "Cần Microsoft SQL Server $1 trở lên. Bạn có $2.",
+       "config-sqlite-name-help": "Chọn một tên để chỉ thị wiki của bạn.\nKhông sử dụng các dấu cách ( ) hoặc dấu gạch nối (-).\nTên này sẽ được sử dụng cho tên tập tin dữ liệu SQLite.",
+       "config-sqlite-parent-unwritable-group": "Không thể tạo ra thư mục dữ liệu <code><nowiki>$1</nowiki></code>, bởi vì thư mục cha <code><nowiki>$2</nowiki></code> không cho phép máy chủ Web ghi vào.\n\nTrình cài đặt đã xác định người dùng mà máy chủ Web của bạn đang chạy.\n\nHãy thiết lập để thư mục <code><nowiki>$3</nowiki></code> có thể ghi được bởi nó để tiếp tục.\nTrong một hệ thống Unix/Linux làm theo như sau:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+       "config-sqlite-parent-unwritable-nogroup": "Không thể tạo ra thư mục dữ liệu <code><nowiki>$1</nowiki></code>, bởi vì thư mục cha <code><nowiki>$2</nowiki></code> không cho phép máy chủ Web ghi vào.\n\nTrình cài đặt không thể xác định người sử dụng mà máy chủ web của bạn đang chạy.\nThiết lập thư mục <code><nowiki>$3</nowiki></code> có thể ghi toàn cục bởi nó (và những người khác!) để tiếp tục.\nTrong một hệ thống Unix/Linux hãy đánh các dòng lệnh sau:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+       "config-sqlite-mkdir-error": "Lỗi tạo thư mục dữ liệu “$1”.\nKiểm tra vị trí lưu và thử lại.",
+       "config-sqlite-dir-unwritable": "Không thể ghi vào thư mục “$1”.\nThay đổi quyền hạn của nó để máy chủ Web có thể ghi vào, và thử lại.",
+       "config-sqlite-connection-error": "$1.\n\nKiểm tra thư mục dữ liệu và tên cơ sở dữ liệu dưới đây và thử lại.",
        "config-sqlite-readonly": "Không thể ghi vào tập tin <code>$1</code>.",
        "config-sqlite-cant-create-db": "Không thể tạo ra tập tin cơ sở dữ liệu <code>$1</code>.",
        "config-sqlite-fts3-downgrade": "PHP thiếu sự hỗ trợ cho FTS3; đang giáng cấp các bảng",
        "config-can-upgrade": "Cơ sở dữ liệu này có bảng MediaWiki.\nĐể nâng cấp các bảng đến MediaWiki $1, bấm <strong>Tiếp tục</strong>.",
+       "config-upgrade-done": "Nâng cấp đã hoàn thành.\n\nBạn có thể [$1 bắt đầu sử dụng wiki của bạn] ngay bây giờ.\n\nNếu bạn muốn tạo lại tập tin <code>LocalSettings.php</code> của bạn, bấm nút bên dưới.\nĐiều này <strong>không được khuyến khích</strong>, trừ khi bạn đang gặp vấn đề với wiki của bạn.",
+       "config-upgrade-done-no-regenerate": "Nâng cấp đã hoàn thành.\n\nBạn có thể [$1 bắt đầu sử dụng wiki của bạn] ngay bây giờ.",
        "config-regenerate": "Tạo lại LocalSettings.php →",
        "config-show-table-status": "Truy vấn <code>SHOW TABLE STATUS</code> bị thất bại!",
        "config-unknown-collation": "<strong>Cảnh báo:</strong> Database đang sử dụng đối chiếu không được thừa nhận.",
        "config-db-web-account": "Tài khoản cơ sở dữ liệu để truy cập Web",
+       "config-db-web-help": "Chọn tên người dùng và mật khẩu mà máy chủ Web sẽ sử dụng để kết nối đến máy chủ cơ sở dữ liệu trong quá trình hoạt động bình thường của wiki.",
        "config-db-web-account-same": "Sử dụng lại tài khoản cài đặt",
        "config-db-web-create": "Mở tài khoản nếu chưa tồn tại",
        "config-db-web-no-create-privs": "Tài khoản mà bạn xác định để cài đặt không có đủ quyền để tạo một tài khoản. Tài khoản mà bạn chỉ ra ở đây phải thực sự tồn tại trước đó.",
        "config-mysql-engine": "Máy lưu trữ:",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
+       "config-mysql-myisam-dep": "<strong>Cảnh báo:</strong> Bạn đã chọn MyISAM làm động cơ lưu trữ cho MySQL, điều này không được khuyến khích sử dụng với MediaWiki, bởi vì:\n* Nó ít hỗ trợ đồng thời do việc khóa bảng\n* Nó dễ bị lỗi hơn so với các động cơ khác\n* Kho mã nguồn của MediaWiki không phải khi nào cũng xử lý MyISAM như mong muốn\n\nNếu cài đặt MySQL của bạn hỗ trợ InnoDB, đặc biệt khuyến cáo bạn nên chọn để thay thế.\nNếu cài đặt MySQL của bạn không hỗ trợ InnoDB, có lẽ đã đến lúc để nâng cấp.",
+       "config-mysql-only-myisam-dep": "<strong>Cảnh báo:</strong> MyISAM chỉ là công cụ lưu trữ có sẵn cho MySQL trên máy tính này, và điều này không được khuyến khích sử dụng với MediaWiki, bởi vì:\n* Nó ít hỗ trợ đồng thời do việc khóa khóa\n* Nó là dễ bị hư hỏng hơn các engine khác\n* Codebase MediaWiki không phải khi nào cũng xử lý MyISAM như mong muốn\n\nCài đặt MySQL của bạn không hỗ trợ InnoDB, có lẽ đã đến lúc để nâng cấp.",
+       "config-mysql-engine-help": "<strong>InnoDB</strong> hầu như luôn là tùy chọn tốt nhất, vì nó có hỗ trợ đồng thời rất tốt.\n\n<strong>MyISAM</strong> có thể nhanh hơn trong chế độ một người dùng hoặc các cài đặt chỉ-đọc (read-only).\nCơ sở dữ liệu MyISAM có xu hướng thường xuyên bị hỏng hóc hơn so với cơ sở dữ liệu InnoDB.",
        "config-mysql-charset": "Bảng mã cơ sở dữ liệu:",
        "config-mysql-binary": "Nhị phân",
        "config-mysql-utf8": "UTF-8",
+       "config-mysql-charset-help": "Trong <strong>chế độ nhị phân</strong>, MediaWiki lưu văn bản UTF-8 vào cơ sở dữ liệu trong các trường nhị phân.\nĐiều này hiệu quả hơn so với chế độ UTF-8 của MySQL, và cho phép bạn sử dụng đầy đủ các ký tự Unicode.\n\nTrong <strong>chế độ UTF-8 </strong>, MySQL sẽ biết những ký tự nào thiết lập dữ liệu của bạn, và có thể trình bày và chuyển đổi nó một cách thích hợp, nhưng nó sẽ không cho phép bạn lưu trữ các ký tự nằm trên [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mssql-auth": "Kiểu xác thực:",
+       "config-mssql-install-auth": "Chọn loại xác thực sẽ được sử dụng để kết nối với cơ sở dữ liệu trong quá trình cài đặt.\nNếu bạn chọn \"{{int:config-mssql-windowsauth}}\", thông tin của bất cứ người sử dụng nào mà máy chủ web đang chạy sẽ được sử dụng.",
+       "config-mssql-web-auth": "Chọn kiểu xác thực mà máy chủ web sẽ sử dụng để kết nối đến máy chủ cơ sở dữ liệu, trong quá trình hoạt động bình thường của wiki.\nNếu bạn chọn \"{{int:config-mssql-windowsauth}}\", thông tin của bất cứ người sử dụng nào mà máy chủ web đang hoạt động sẽ được sử dụng.",
        "config-mssql-sqlauth": "Xác thực SQL Server",
        "config-mssql-windowsauth": "Xác thực Windows",
        "config-site-name": "Tên wiki:",
+       "config-site-name-help": "Điều này sẽ xuất hiện trên thanh tiêu đề của trình duyệt và ở những nơi khác.",
        "config-site-name-blank": "Nhập tên của trang Web.",
        "config-project-namespace": "Không gian tên dự án:",
        "config-ns-generic": "Dự án",
        "config-ns-site-name": "Cùng với tên wiki: $1",
        "config-ns-other": "Khác (định rõ)",
        "config-ns-other-default": "WikiTôi",
+       "config-project-namespace-help": "Ví dụ sau đây của Wikipedia, nhiều wiki tách các trang sách họ với các trang nội dung, trong một \"''' không gian tên dự án'''\".\nTất cả các tiêu đề trang trong không gian tên này bắt đầu với một tiền tố nhất định, bạn có thể xác định ở đây.\nThông thường, tiền tố này được bắt nguồn từ tên của wiki, nhưng nó không thể chứa các ký tự đặc biệt như \"#\" hoặc \":\".",
+       "config-ns-invalid": "Không gian tên cụ thể \"<nowiki>$1</nowiki>\" không hợp lệ.\nXác định một không gian tên dự án khác.",
+       "config-ns-conflict": "Không gian tên cụ thể \"<nowiki>$1</nowiki>\" xung đột với một không gian tên MediaWiki mặc định.\nXác định một không gian tên dự án khác.",
        "config-admin-box": "Tài khoản bảo quản viên",
        "config-admin-name": "Tên người dùng của bạn:",
        "config-admin-password": "Mật khẩu:",
        "config-admin-password-confirm": "Nhập lại mật khẩu:",
+       "config-admin-help": "Nhập tên người dùng ưa thích ở đây, ví dụ như \" Joe Bloggs\" .\nĐây là tên mà bạn sẽ sử dụng để đăng nhập vào wiki.",
        "config-admin-name-blank": "Nhập tên người dùng của bảo quản viên.",
+       "config-admin-name-invalid": "Tên người dùng cụ thể \"<nowiki>$1</nowiki>\" không hợp lệ.\nChỉ định một tên người dùng khác.",
        "config-admin-password-blank": "Nhập mật khẩu của tài khoản bảo quản viên.",
        "config-admin-password-mismatch": "Bạn đã nhập hai mật khẩu không khớp với nhau.",
        "config-admin-email": "Địa chỉ thư điện tử:",
+       "config-admin-email-help": "Nhập một địa chỉ email vào đây để cho phép bạn nhận được email từ những người dùng khác trên wiki, thiết lập lại mật khẩu của bạn, và sẽ được thông báo về những thay đổi trong các trang nằm trong danh sách theo dõi của bạn. Bạn có thể để trống trường này.",
+       "config-admin-error-user": "Lỗi nội bộ khi tạo một admin với tên <nowiki>$1</nowiki>\".",
+       "config-admin-error-password": "Lỗi nội bộ khi thiết lập một mật khẩu cho admin \" <nowiki>$1</nowiki>\": <pre>$2</pre>",
        "config-admin-error-bademail": "Bạn đã nhập một địa chỉ thư điện tử không hợp lệ.",
        "config-subscribe": "Theo dõi [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce danh sách thư thông báo phát hành].",
+       "config-subscribe-help": "thông báo an ninh.\nBạn nên đồng ý với nó và cập nhật bản cài đặt MediaWiki của bạn khi phiên bản mới xuất hiện.",
+       "config-subscribe-noemail": "Bạn đã cố gắng để đăng ký vào danh sách nhận thư thông báo phát hành mà không cung cấp một địa chỉ email nào cả.\nVui lòng cung cấp một địa chỉ email nếu bạn muốn đăng ký vào danh sách nhận thư.",
+       "config-almost-done": "Bạn gần như đã hoàn tất!\nBây giờ bạn có thể bỏ qua cấu hình còn lại và cài đặt wiki ngay bây giờ.",
        "config-optional-continue": "Hỏi tôi về thêm chi tiết.",
        "config-optional-skip": "Chán quá, cài đặt wiki rỗi.",
        "config-profile": "Hồ sơ quyền người dùng:",
        "config-profile-no-anon": "Bắt buộc mở tài khoản",
        "config-profile-fishbowl": "Chỉ những người dùng được phép",
        "config-profile-private": "Wiki riêng tư",
+       "config-profile-help": "Wiki làm việc tốt nhất khi có càng nhiều người chỉnh sửa chúng nhất có thể.\nTrong MediaWiki, rất dễ dàng để xem lại các thay đổi gần đây, và quay trở lại tình trạng ban đầu trước bất kỳ thiệt hại nào được thực hiện bởi người dùng vô tình hoặc người dùng có dụng ý xấu.\n\nTuy nhiên, nhiều người thấy là MediaWiki rất hữu ích trong chừng mực nào đó, và đôi khi thật không phải dễ dàng để thuyết phục mọi người về những lợi ích theo cách thức mà wiki mang lại.\nVì vậy, bạn có sự lựa chọn của riêng bạn.\n\nMô hình <strong>{{int:config-profile-wiki}}</strong> cho phép bất cứ ai tham gia chỉnh sửa, thậm chí không cần đăng nhập.\nMột wiki với <strong>{{int:config-profile-no-anon}}</strong> cung cấp thêm trách nhiệm, nhưng có thể ngăn chặn những người đóng góp thông thường.\n\nKịch bản <strong>{{int:config-profile-fishbowl}}</strong>  cho phép người dùng được duyệt chỉnh sửa, nhưng công chúng có thể xem các trang web, bao gồm cả lịch sử.\nMột <strong>{{int:config-profile-private}}</strong> chỉ cho phép được duyệt xem các trang, với cùng nhóm được phép chỉnh sửa.\n\nNhiều cấu hình quyền sử dụng phức tạp có sẵn sau khi cài đặt, xin xem [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights relevant manual entry].",
        "config-license": "Bản quyền và giấy phép:",
        "config-license-none": "Không hiển thị giấy phép ở chân trang",
        "config-license-cc-by-sa": "Creative Commons Ghi công–Chia sẻ tương tự",
        "config-license-cc-choose": "Chọn một giấy phép Creative Commons tùy biến",
        "config-email-settings": "Thiết lập thư điện tử",
        "config-enable-email": "Cho phép gửi thư điện tử đi",
+       "config-enable-email-help": "Nếu bạn muốn email để làm việc, [http://www.php.net/manual/en/mail.configuration.php thiết lập mail của PHP] cần phải được cấu hình đúng.\nNếu bạn không muốn sử dụng bất kỳ tính năng email nào, bạn có thể vô hiệu chúng ở đây.",
        "config-email-user": "Cho phép người dùng gửi thư điện tử cho người dùng khác",
+       "config-email-user-help": "Cho phép tất cả người dùng gửi email cho nhau, nếu họ đã kích hoạt nó trong cài đặt tùy chọn của họ.",
        "config-email-usertalk": "Gửi thư thông báo về tin nhắn mới",
+       "config-email-usertalk-help": "Cho phép người dùng nhận được thông báo về các thay đổi trong trang thảo luận người dùng, nếu họ đã kích hoạt nó trong cài đặt tùy chọn của họ.",
        "config-email-watchlist": "Gửi thư thông báo về bài theo dõi",
+       "config-email-watchlist-help": "Cho phép người dùng nhận được thông báo về các trang theo dõi của họ nếu họ đã kích hoạt nó trong ưu tiên của họ.",
        "config-email-auth": "Xác minh qua thư điện tử",
        "config-email-sender": "Địa chỉ thư điện tử trả lại:",
        "config-upload-settings": "Hình ảnh và tập tin tải lên",
        "config-upload-enable": "Cho phép tải lên tập tin",
        "config-upload-deleted": "Thư mục chứa các tập tin đã xóa:",
+       "config-upload-deleted-help": "Chọn một thư mục trong đó lưu trữ các tập tin đã bị xóa.\nLý tưởng nhất, thư mục này không nên được truy cập từ trang web.",
        "config-logo": "URL biểu trưng:",
+       "config-logo-help": "Giao diện mặc định của MediaWiki bao gồm không gian cho một logo 135x160 điểm ảnh trên menu sidebar (thanh bên).\nTải lên một hình ảnh kích thước thích hợp, và nhập URL hình ảnh đó vào đây.\n\nBạn có thể sử dụng <code>$wgStylePath</code> hoặc <code>$wgScriptPath</code> nếu logo của bạn liên quan đường những đường dẫn ở đây.\n\nNếu bạn không muốn có một logo, hãy bỏ trống ô này.",
        "config-instantcommons": "Kích hoạt Instant Commons",
+       "config-cc-error": "Người chọn giấy phép Creative Commons đã không đưa ra kết quả nào.\nNhập tên giấy phép bằng tay.",
        "config-cc-again": "Chọn một lần nữa…",
        "config-cc-not-chosen": "Chọn một giấy phép Creative Commons và bấm “Tiếp tục”.",
        "config-advanced-settings": "Thiết lập nâng cao",
        "config-cache-accel": "Bộ nhớ đệm đối tượng PHP (APC, XCache, hoặc WinCache)",
        "config-cache-memcached": "Sử dụng Memcached (cần thiết lập và cấu hình thêm)",
        "config-memcached-servers": "Máy chủ Memcached:",
+       "config-memcached-help": "Danh sách các địa chỉ IP để sử dụng cho Memcached .\nNên xác định trên một dòng và chỉ định các cổng được sử dụng. Ví dụ:\n 127.0.0.1:11211\n 192.168.1.25:1234",
        "config-memcache-needservers": "Bạn đã chọn Memcached là loại bộ nhớ đệm nhưng không định rõ máy chủ nào.",
        "config-memcache-badip": "Bạn đã nhập một địa chỉ IP không hợp lệ cho Memcached: $1.",
+       "config-memcache-noport": "Bạn không thể chỉ định một cổng để sử dụng cho máy chủ Memcached:$1.\nNếu bạn không biết cổng nào, mặc định là 11211.",
        "config-memcache-badport": "Số cổng Memcached phải từ $1 đến $2.",
        "config-extensions": "Phần mở rộng",
+       "config-extensions-help": "Mở rộng được liệt kê ở trên đã được phát hiện trong thư mục <code>./extensions</code> của bạn.\n\nChúng có thể yêu cầu thêm cấu hình, nhưng bạn có thể kích hoạt chúng ngay bây giờ.",
        "config-skins": "Giao diện",
        "config-skins-use-as-default": "Dùng giao diện này làm mặc định",
        "config-skins-must-enable-some": "Phải chọn ít nhất một giao diện để kích hoạt.",
        "config-install-pg-commit": "Đang gửi các thay đổi",
        "config-install-pg-plpgsql": "Tìm ngôn ngữ PL/pgSQL",
        "config-pg-no-plpgsql": "Bạn cần phải cài đặt ngôn ngữ PL/pgSQL vào cơ sở dữ liệu $1",
+       "config-pg-no-create-privs": "Tài khoản bạn xác định để cài đặt không đủ quyền hạn để tạo một tài khoản.",
+       "config-pg-not-in-role": "Tài khoản bạn xác định cho người dùng web đã tồn tại.\nTài khoản bạn xác định cho việc cài đặt không phải là một superuser(người dùng cao cấp) và không phải là một thành viên của vai trò người sử dụng web, vì vậy nó không thể tạo ra các đối tượng thuộc sở hữu của người sử dụng web.\n\nMediaWiki hiện nay yêu cầu rằng các bảng được sở hữu bởi người sử dụng web. Hãy xác định một tên tài khoản web, hoặc click \"back\" (quay trở về) và chỉ định một người dùng cài đặt có đặc quyền thích hợp.",
        "config-install-user": "Đang tạo người dùng trên cơ sở dữ liệu",
        "config-install-user-alreadyexists": "Người dùng “$1” đã tồn tại",
        "config-install-user-create-failed": "Thất bại khi tạo người dùng “$1”: $2",
        "config-install-stats": "Đang khởi tạo các thống kê",
        "config-install-keys": "Tạo ra các chìa khóa bí mật",
        "config-install-updates": "Tránh các cập nhật không cần thiết",
+       "config-install-updates-failed": "<strong>Lỗi:</strong> Chèn phím cập nhật vào các bảng không thành công với các lỗi sau:1$",
        "config-install-sysop": "Đang mở tài khoản người dùng bảo quản viên",
        "config-install-subscribe-fail": "Không thể theo dõi mediawiki-announce: $1",
        "config-install-subscribe-notpossible": "cURL không được cài đặt và <code>allow_url_fopen</code> không có sẵn.",
        "config-install-mainpage": "Đang tạo trang đầu với nội dung mặc định",
        "config-install-extension-tables": "Đang tạo bảng cho các phần mở rộng được kích hoạt",
        "config-install-mainpage-failed": "Không thể chèn trang đầu: $1",
+       "config-install-done": "<strong>Xin chúc mừng!</strong>\nBạn đã cài đặt thành công MediaWiki.\n\nBộ cài đặt đã tạo ra một file <code>LocalSettings.php</code>.\nFile này chứa tất cả các cấu hình của bạn.\n\nBạn sẽ cần phải tải nó về và đặt nó trong thư mục cài đặt wiki của bạn (cùng thư mục với index.php). Việc tải về có lẽ sẽ được khởi động tự động.\n\nNếu việc tải về không được cung cấp, hoặc nếu bạn hủy bỏ nó, bạn có thể khởi động lại tải về bằng cách nhấn vào liên kết dưới đây:\n\n$3\n\n<strong>Lưu ý:</strong> Nếu bạn không làm điều này ngay bây giờ, điều này sẽ tạo ra tập tin cấu hình sẽ không có giá trị cho bạn sau này nếu bạn thoát khỏi trình cài đặt mà không tải nó về.\n\nKhi đã việc tải về đã hoàn thành, bạn có thể <strong>[$2 truy cập trang wiki của bạn]</strong>.",
        "config-download-localsettings": "Tải về <code>LocalSettings.php</code>",
        "config-help": "Trợ giúp",
        "config-help-tooltip": "nhấn chuột để mở rộng",
index f4c3316..cbd48f1 100644 (file)
@@ -72,7 +72,7 @@
        "config-unicode-using-intl": "使用[http://pecl.php.net/intl intl PECL扩展程序]标准化Unicode。",
        "config-unicode-pure-php-warning": "<strong>警告:</strong>因为尚未安装 [http://pecl.php.net/intl intl PECL 扩展]以处理 Unicode 正常化,故只能退而采用运行较慢的纯 PHP 实现的方法。\n如果您运行着一个高流量的网站,请参阅 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode标准化]一文。",
        "config-unicode-update-warning": "'''警告''':Unicode正常化封装器的已安装版本使用了旧版本的[http://site.icu-project.org/ ICU项目]库。如果您需要使用Unicode,请将其[//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 升级]。",
-       "config-no-db": "æ\89¾ä¸\8då\88°å\90\88é\80\82ç\9a\84æ\95°æ\8d®åº\93驱å\8a¨ï¼\81æ\82¨é\9c\80è¦\81为PHPå®\89è£\85æ\95°æ\8d®åº\93驱å\8a¨ã\80\82ç\9b®å\89\8dæ\94¯æ\8c\81以ä¸\8bæ\95°æ\8d®åº\93ï¼\9a$1ã\80\82å¦\82æ\9e\9cæ\82¨æ\98¯è\87ªå·±ç¼\96è¯\91ç\9a\84PHPï¼\8c请é\87\8dæ\96°é\85\8dç½®ä»\96ä¸\8eæ\95°æ\8d®åº\93客æ\88·ç«¯å°\86å\85¶å\90¯ç\94¨ï¼\8c诸å¦\82ï¼\8c使ç\94¨<code>./configure --with-mysqli</code>ã\80\82å¦\82æ\9e\9cæ\82¨ä»\8eDebianæ\88\96Ubuntuå\8c\85å®\89è£\85äº\86PHPï¼\8cä¹\8bå\90\8eæ\82¨ä»\8dé\9c\80è¦\81å®\89è£\85诸å¦\82<code>php5-mysql</code>包。",
+       "config-no-db": "æ\97 æ³\95æ\89¾å\88°å\90\88é\80\82ç\9a\84æ\95°æ\8d®åº\93驱å\8a¨ï¼\81æ\82¨é\9c\80è¦\81为PHPå®\89è£\85æ\95°æ\8d®åº\93驱å\8a¨ã\80\82ç\9b®å\89\8dæ\94¯æ\8c\81以ä¸\8bæ\95°æ\8d®åº\93{{PLURAL:$2|ç±»å\9e\8b}}ï¼\9a$1ã\80\82\n\nå¦\82æ\9e\9cæ\82¨è\87ªå·±ç¼\96è¯\91äº\86PHPï¼\8c请é\80\9aè¿\87å\90¯ç\94¨æ\95°æ\8d®åº\93客æ\88·ç«¯é\87\8dæ\96°é\85\8dç½®å®\83ï¼\8cä¾\8bå¦\82使ç\94¨ <code>./configure --with-mysqli</code>ã\80\82å¦\82æ\9e\9cæ\82¨ä»\8e Debian æ\88\96 Ubuntu å®\89è£\85å\8c\85å®\89è£\85äº\86PHPï¼\8cé\82£ä¹\88æ\82¨ä¹\9fé\9c\80è¦\81å®\89è£\85ï¼\8cä¾\8bå¦\82 <code>php5-mysql</code> å®\89è£\85包。",
        "config-outdated-sqlite": "'''警告''':您已安装SQLite $1,但是它的版本低于最低要求版本$2。因此您无法选择SQLite。",
        "config-no-fts3": "'''警告''':已编译的SQLite不包含[//sqlite.org/fts3.html FTS3模块],后台搜索功能将不可用。",
        "config-register-globals-error": "<strong>错误:PHP<code>[http://php.net/register_globals register_globals]</code>选项被启用。必须禁用它才能继续安装。</strong>关于如何禁用,参见[https://www.mediawiki.org/wiki/register_globals mediawiki.org此页]。",
index 56fd1c6..334d374 100644 (file)
@@ -135,7 +135,15 @@ abstract class Job implements IJobSpecification {
        }
 
        /**
-        * @return bool Whether only one of each identical set of jobs should be run
+        * Whether the queue should reject insertion of this job if a duplicate exists
+        *
+        * This can be used to avoid duplicated effort or combined with delayed jobs to
+        * coalesce updates into larger batches. Claimed jobs are never treated as
+        * duplicates of new jobs, and some queues may allow a few duplicates due to
+        * network partitions and fail-over. Thus, additional locking is needed to
+        * enforce mutual exclusion if this is really needed.
+        *
+        * @return bool
         */
        public function ignoreDuplicates() {
                return $this->removeDuplicates;
index d99bfab..ef0f087 100644 (file)
@@ -76,6 +76,12 @@ class JobRunner {
                        $this->runJobsLog( "Executed $count periodic queue task(s)." );
                }
 
+               // Bail out if in read-only mode
+               if ( wfReadOnly() ) {
+                       $response['reached'] = 'read-only';
+                       return $response;
+               }
+
                // Bail out if there is too much DB lag
                list( , $maxLag ) = wfGetLBFactory()->getMainLB( wfWikiID() )->getMaxLag();
                if ( $maxLag >= 5 ) {
index bea6ced..ffe26a9 100644 (file)
@@ -359,7 +359,7 @@ class CSSMin {
         * @return bool
         */
        public static function isLocalUrl( $maybeUrl ) {
-               if ( !self::isRemoteUrl( $maybeUrl ) && $maybeUrl !== '' && $maybeUrl[0] === '/' ) {
+               if ( $maybeUrl !== '' && $maybeUrl[0] === '/' && !self::isRemoteUrl( $maybeUrl ) ) {
                        return true;
                }
                return false;
index bd32949..a6fd11a 100644 (file)
 class DeferredStringifier {
        /** @var callable Callback used for result string generation */
        private $callback;
+
        /** @var array */
        private $params;
+
        /** @var string */
        private $result;
 
@@ -42,7 +44,7 @@ class DeferredStringifier {
        }
 
        /**
-        * Returns a string generated by callback
+        * Get the string generated from the callback
         *
         * @return string
         */
diff --git a/includes/libs/ExplodeIterator.php b/includes/libs/ExplodeIterator.php
new file mode 100644 (file)
index 0000000..3b34d9b
--- /dev/null
@@ -0,0 +1,116 @@
+<?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
+ */
+
+/**
+ * An iterator which works exactly like:
+ *
+ * foreach ( explode( $delim, $s ) as $element ) {
+ *    ...
+ * }
+ *
+ * Except it doesn't use 193 byte per element
+ */
+class ExplodeIterator implements Iterator {
+       // The subject string
+       private $subject, $subjectLength;
+
+       // The delimiter
+       private $delim, $delimLength;
+
+       // The position of the start of the line
+       private $curPos;
+
+       // The position after the end of the next delimiter
+       private $endPos;
+
+       // The current token
+       private $current;
+
+       /**
+        * Construct a DelimIterator
+        * @param string $delim
+        * @param string $subject
+        */
+       public function __construct( $delim, $subject ) {
+               $this->subject = $subject;
+               $this->delim = $delim;
+
+               // Micro-optimisation (theoretical)
+               $this->subjectLength = strlen( $subject );
+               $this->delimLength = strlen( $delim );
+
+               $this->rewind();
+       }
+
+       public function rewind() {
+               $this->curPos = 0;
+               $this->endPos = strpos( $this->subject, $this->delim );
+               $this->refreshCurrent();
+       }
+
+       public function refreshCurrent() {
+               if ( $this->curPos === false ) {
+                       $this->current = false;
+               } elseif ( $this->curPos >= $this->subjectLength ) {
+                       $this->current = '';
+               } elseif ( $this->endPos === false ) {
+                       $this->current = substr( $this->subject, $this->curPos );
+               } else {
+                       $this->current = substr( $this->subject, $this->curPos, $this->endPos - $this->curPos );
+               }
+       }
+
+       public function current() {
+               return $this->current;
+       }
+
+       /**
+        * @return int|bool Current position or boolean false if invalid
+        */
+       public function key() {
+               return $this->curPos;
+       }
+
+       /**
+        * @return string
+        */
+       public function next() {
+               if ( $this->endPos === false ) {
+                       $this->curPos = false;
+               } else {
+                       $this->curPos = $this->endPos + $this->delimLength;
+                       if ( $this->curPos >= $this->subjectLength ) {
+                               $this->endPos = false;
+                       } else {
+                               $this->endPos = strpos( $this->subject, $this->delim, $this->curPos );
+                       }
+               }
+               $this->refreshCurrent();
+
+               return $this->current;
+       }
+
+       /**
+        * @return bool
+        */
+       public function valid() {
+               return $this->curPos !== false;
+       }
+}
index ce97142..8d80eb3 100644 (file)
 class ProcessCacheLRU {
        /** @var Array */
        protected $cache = array(); // (key => prop => value)
+
        /** @var Array */
        protected $cacheTimes = array(); // (key => prop => UNIX timestamp)
 
        protected $maxCacheKeys; // integer; max entries
 
        /**
-        * @param $maxKeys integer Maximum number of entries allowed (min 1).
+        * @param int $maxKeys Maximum number of entries allowed (min 1).
         * @throws UnexpectedValueException When $maxCacheKeys is not an int or =< 0.
         */
        public function __construct( $maxKeys ) {
@@ -46,9 +47,9 @@ class ProcessCacheLRU {
         * This will prune the cache if it gets too large based on LRU.
         * If the item is already set, it will be pushed to the top of the cache.
         *
-        * @param $key string
-        * @param $prop string
-        * @param $value mixed
+        * @param string $key
+        * @param string $prop
+        * @param mixed $value
         * @return void
         */
        public function set( $key, $prop, $value ) {
@@ -67,15 +68,16 @@ class ProcessCacheLRU {
        /**
         * Check if a property field exists for a cache entry.
         *
-        * @param $key string
-        * @param $prop string
-        * @param $maxAge float Ignore items older than this many seconds (since 1.21)
+        * @param string $key
+        * @param string $prop
+        * @param float $maxAge Ignore items older than this many seconds (since 1.21)
         * @return bool
         */
        public function has( $key, $prop, $maxAge = 0.0 ) {
                if ( isset( $this->cache[$key][$prop] ) ) {
                        return ( $maxAge <= 0 ||
-                               ( microtime( true ) - $this->cacheTimes[$key][$prop] ) <= $maxAge );
+                               ( microtime( true ) - $this->cacheTimes[$key][$prop] ) <= $maxAge
+                       );
                }
 
                return false;
@@ -86,13 +88,14 @@ class ProcessCacheLRU {
         * This returns null if the property is not set.
         * If the item is already set, it will be pushed to the top of the cache.
         *
-        * @param $key string
-        * @param $prop string
+        * @param string $key
+        * @param string $prop
         * @return mixed
         */
        public function get( $key, $prop ) {
                if ( isset( $this->cache[$key][$prop] ) ) {
-                       $this->ping( $key ); // push to top
+                       // push to top
+                       $this->ping( $key );
                        return $this->cache[$key][$prop];
                } else {
                        return null;
@@ -100,9 +103,9 @@ class ProcessCacheLRU {
        }
 
        /**
-        * Clear one or several cache entries, or all cache entries
+        * Clear one or several cache entries, or all cache entries.
         *
-        * @param $keys string|Array
+        * @param string|array $keys
         * @return void
         */
        public function clear( $keys = null ) {
@@ -120,7 +123,7 @@ class ProcessCacheLRU {
        /**
         * Resize the maximum number of cache entries, removing older entries as needed
         *
-        * @param $maxKeys integer
+        * @param int $maxKeys
         * @return void
         * @throws UnexpectedValueException
         */
@@ -140,7 +143,7 @@ class ProcessCacheLRU {
        /**
         * Push an entry to the top of the cache
         *
-        * @param $key string
+        * @param string $key
         */
        protected function ping( $key ) {
                $item = $this->cache[$key];
diff --git a/includes/libs/ReplacementArray.php b/includes/libs/ReplacementArray.php
new file mode 100644 (file)
index 0000000..7fdb309
--- /dev/null
@@ -0,0 +1,125 @@
+<?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
+ */
+
+/**
+ * Replacement array for FSS with fallback to strtr()
+ * Supports lazy initialisation of FSS resource
+ */
+class ReplacementArray {
+       private $data = false;
+       private $fss = false;
+
+       /**
+        * Create an object with the specified replacement array
+        * The array should have the same form as the replacement array for strtr()
+        * @param array $data
+        */
+       public function __construct( $data = array() ) {
+               $this->data = $data;
+       }
+
+       /**
+        * @return array
+        */
+       public function __sleep() {
+               return array( 'data' );
+       }
+
+       public function __wakeup() {
+               $this->fss = false;
+       }
+
+       /**
+        * Set the whole replacement array at once
+        * @param array $data
+        */
+       public function setArray( $data ) {
+               $this->data = $data;
+               $this->fss = false;
+       }
+
+       /**
+        * @return array|bool
+        */
+       public function getArray() {
+               return $this->data;
+       }
+
+       /**
+        * Set an element of the replacement array
+        * @param string $from
+        * @param string $to
+        */
+       public function setPair( $from, $to ) {
+               $this->data[$from] = $to;
+               $this->fss = false;
+       }
+
+       /**
+        * @param array $data
+        */
+       public function mergeArray( $data ) {
+               $this->data = array_merge( $this->data, $data );
+               $this->fss = false;
+       }
+
+       /**
+        * @param ReplacementArray $other
+        */
+       public function merge( ReplacementArray $other ) {
+               $this->data = array_merge( $this->data, $other->data );
+               $this->fss = false;
+       }
+
+       /**
+        * @param string $from
+        */
+       public function removePair( $from ) {
+               unset( $this->data[$from] );
+               $this->fss = false;
+       }
+
+       /**
+        * @param array $data
+        */
+       public function removeArray( $data ) {
+               foreach ( $data as $from => $to ) {
+                       $this->removePair( $from );
+               }
+               $this->fss = false;
+       }
+
+       /**
+        * @param string $subject
+        * @return string
+        */
+       public function replace( $subject ) {
+               if ( function_exists( 'fss_prep_replace' ) ) {
+                       if ( $this->fss === false ) {
+                               $this->fss = fss_prep_replace( $this->data );
+                       }
+                       $result = fss_exec_replace( $this->fss, $subject );
+               } else {
+                       $result = strtr( $subject, $this->data );
+               }
+
+               return $result;
+       }
+}
diff --git a/includes/libs/normal/.gitignore b/includes/libs/normal/.gitignore
new file mode 100644 (file)
index 0000000..5af0afa
--- /dev/null
@@ -0,0 +1,6 @@
+/CompositionExclusions.txt
+/DerivedNormalizationProps.txt
+/NormalizationCorrections.txt
+/NormalizationTest.txt
+/UnicodeData.txt
+/testdata
diff --git a/includes/libs/normal/Makefile b/includes/libs/normal/Makefile
new file mode 100644 (file)
index 0000000..b00154d
--- /dev/null
@@ -0,0 +1,72 @@
+.PHONY : all test testutf8 testclean icutest bench icubench clean distclean
+
+## Latest greatest version of Unicode
+## May cause confusion if running test suite from these files
+## when the data was generated from a previous version.
+#BASE=http://www.unicode.org/Public/UNIDATA
+
+# Explicitly using Unicode 6.0
+BASE=http://www.unicode.org/Public/6.0.0/ucd
+
+# Can override to php-cli or php5 or whatever
+PHP=php
+#PHP=php-cli
+
+# Some nice tool to grab URLs with
+FETCH=wget
+#FETCH=fetch
+
+all : UtfNormalData.inc
+
+UtfNormalData.inc : UtfNormalGenerate.php UtfNormalUtil.php UnicodeData.txt CompositionExclusions.txt NormalizationCorrections.txt DerivedNormalizationProps.txt
+       $(PHP) UtfNormalGenerate.php
+
+test : UtfNormalTest.php UtfNormalData.inc NormalizationTest.txt
+       $(PHP) UtfNormalTest.php
+
+bench : UtfNormalData.inc testdata/washington.txt testdata/berlin.txt testdata/tokyo.txt testdata/young.txt testdata/bulgakov.txt
+       $(PHP) UtfNormalBench.php
+
+icutest : UtfNormalData.inc NormalizationTest.txt
+       $(PHP) Utf8Test.php --icu
+       $(PHP) UtfNormalTest.php --icu
+
+icubench : UtfNormalData.inc testdata/washington.txt testdata/berlin.txt testdata/tokyo.txt testdata/young.txt testdata/bulgakov.txt
+       $(PHP) UtfNormalBench.php --icu
+
+clean :
+       rm -f UtfNormalData.inc UtfNormalDataK.inc
+
+distclean : clean
+       rm -f CompositionExclusions.txt NormalizationTest.txt NormalizationCorrections.txt UnicodeData.txt DerivedNormalizationProps.txt UTF-8-test.txt
+
+# The Unicode data files...
+CompositionExclusions.txt :
+       $(FETCH) $(BASE)/CompositionExclusions.txt
+
+NormalizationTest.txt :
+       $(FETCH) $(BASE)/NormalizationTest.txt
+
+NormalizationCorrections.txt :
+       $(FETCH) $(BASE)/NormalizationCorrections.txt
+
+DerivedNormalizationProps.txt :
+       $(FETCH) $(BASE)/DerivedNormalizationProps.txt
+
+UnicodeData.txt :
+       $(FETCH) $(BASE)/UnicodeData.txt
+
+testdata/berlin.txt :
+       mkdir -p testdata && wget -U MediaWiki/test -O testdata/berlin.txt "http://de.wikipedia.org/w/index.php?title=Berlin&oldid=2775712&action=raw"
+
+testdata/washington.txt :
+       mkdir -p testdata && wget -U MediaWiki/test -O testdata/washington.txt "http://en.wikipedia.org/w/index.php?title=Washington%2C_D.C.&oldid=6370218&action=raw"
+
+testdata/tokyo.txt :
+       mkdir -p testdata && wget -U MediaWiki/test -O testdata/tokyo.txt "http://ja.wikipedia.org/w/index.php?title=%E6%9D%B1%E4%BA%AC%E9%83%BD&oldid=940880&action=raw"
+
+testdata/young.txt :
+       mkdir -p testdata && wget -U MediaWiki/test -O testdata/young.txt "http://ko.wikipedia.org/w/index.php?title=%EC%9D%B4%EC%88%98%EC%98%81&oldid=627688&action=raw"
+
+testdata/bulgakov.txt :
+       mkdir -p testdata && wget -U MediaWiki/test -O testdata/bulgakov.txt "http://ru.wikipedia.org/w/index.php?title=%D0%91%D1%83%D0%BB%D0%B3%D0%B0%D0%BA%D0%BE%D0%B2%2C_%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B9_%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B5%D0%B2%D0%B8%D1%87&oldid=17704&action=raw"
diff --git a/includes/libs/normal/README b/includes/libs/normal/README
new file mode 100644 (file)
index 0000000..fa70c63
--- /dev/null
@@ -0,0 +1,59 @@
+This directory contains some Unicode normalization routines. These routines
+are meant to be reusable in other projects, so I'm not tying them to the
+MediaWiki utility functions.
+
+The main function to care about is UtfNormal::toNFC(); this will convert
+a given UTF-8 string to Normalization Form C if it's not already such.
+The function assumes that the input string is already valid UTF-8; if there
+are corrupt characters this may produce erroneous results.
+
+To also check for illegal characters, use UtfNormal::cleanUp(). This will
+strip illegal UTF-8 sequences and characters that are illegal in XML, and
+if necessary convert to normalization form C.
+
+Performance is kind of stinky in absolute terms, though it should be speedy
+on pure ASCII text. ;) On text that can be determined quickly to already be
+in NFC it's not too awful but it can quickly get uncomfortably slow,
+particularly for Korean text (the hangul decomposition/composition code is
+extra slow).
+
+
+== Regenerating data tables ==
+
+UtfNormalData.inc and UtfNormalDataK.inc are generated from the Unicode
+Character Database by the script UtfNormalGenerate.php. On a *nix system
+'make' should fetch the necessary files and regenerate it if the scripts
+have been changed or you remove it.
+
+
+== Testing ==
+
+'make test' will run the conformance test (UtfNormalTest.php), fetching the
+data from the net if necessary. If it reports failure, something is
+going wrong!
+
+You may have to set up PHPUnit first.
+
+$ pear channel-discover pear.phpunit.de
+$ pear install phpunit/PHPUnit
+
+== Benchmarks ==
+
+Run 'make bench' to download some sample texts from Wikipedia and run some
+cheap benchmarks of some of the functions. Take all numbers with large
+grains of salt.
+
+
+== PHP module extension ==
+
+There's an experimental PHP extension module which wraps the ICU library's
+normalization functions. This is *MUCH* faster than doing this work in pure
+PHP code. This is at https://git.wikimedia.org/summary/mediawiki%2Fextensions%2Fnormal.git.
+It is used by the WMF, which currently runs PHP 5.3.10 on Linux.  It hasn't been
+thoroughly tested on other configurations, but may work.
+
+If the php_normal.so module is loaded in php.ini, the normalization functions
+will automatically use it. If you can't (or don't want to) load it in php.ini,
+you may be able to load it using the dl() function before the inclusion of
+UtfNormal.php, and it will be picked up.
+
diff --git a/includes/libs/normal/RandomTest.php b/includes/libs/normal/RandomTest.php
new file mode 100644 (file)
index 0000000..0604d7b
--- /dev/null
@@ -0,0 +1,102 @@
+<?php
+/**
+ * Test feeds random 16-byte strings to both the pure PHP and ICU-based
+ * UtfNormal::cleanUp() code paths, and checks to see if there's a
+ * difference. Will run forever until it finds one or you kill it.
+ *
+ * Copyright (C) 2004 Brion Vibber <brion@pobox.com>
+ * https://www.mediawiki.org/
+ *
+ * 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 UtfNormal
+ */
+
+if ( PHP_SAPI != 'cli' ) {
+       die( "Run me from the command line please.\n" );
+}
+
+/** */
+require_once 'UtfNormal.php';
+require_once '../diff/DifferenceEngine.php';
+
+dl( 'php_utfnormal.so' );
+
+# mt_srand( 99999 );
+
+function randomString( $length, $nullOk, $ascii = false ) {
+       $out = '';
+       for ( $i = 0; $i < $length; $i++ )
+               $out .= chr( mt_rand( $nullOk ? 0 : 1, $ascii ? 127 : 255 ) );
+
+       return $out;
+}
+
+/* Duplicate of the cleanUp() path for ICU usage */
+function donorm( $str ) {
+       # We exclude a few chars that ICU would not.
+       $str = preg_replace( '/[\x00-\x08\x0b\x0c\x0e-\x1f]/', UTF8_REPLACEMENT, $str );
+       $str = str_replace( UTF8_FFFE, UTF8_REPLACEMENT, $str );
+       $str = str_replace( UTF8_FFFF, UTF8_REPLACEMENT, $str );
+
+       # UnicodeString constructor fails if the string ends with a head byte.
+       # Add a junk char at the end, we'll strip it off
+       return rtrim( utf8_normalize( $str . "\x01", UtfNormal::UNORM_NFC ), "\x01" );
+}
+
+function showDiffs( $a, $b ) {
+       $ota = explode( "\n", str_replace( "\r\n", "\n", $a ) );
+       $nta = explode( "\n", str_replace( "\r\n", "\n", $b ) );
+
+       $diffs = new Diff( $ota, $nta );
+       $formatter = new TableDiffFormatter();
+       $funky = $formatter->format( $diffs );
+       $matches = array();
+       preg_match_all( '/<(?:ins|del) class="diffchange">(.*?)<\/(?:ins|del)>/', $funky, $matches );
+       foreach ( $matches[1] as $bit ) {
+               $hex = bin2hex( $bit );
+               echo "\t$hex\n";
+       }
+}
+
+$size = 16;
+$n = 0;
+while ( true ) {
+       $n++;
+       echo "$n\n";
+
+       $str = randomString( $size, true );
+       $clean = UtfNormal::cleanUp( $str );
+       $norm = donorm( $str );
+
+       echo strlen( $clean ) . ", " . strlen( $norm );
+       if ( $clean == $norm ) {
+               echo " (match)\n";
+       } else {
+               echo " (FAIL)\n";
+               echo "\traw: " . bin2hex( $str ) . "\n" .
+                       "\tphp: " . bin2hex( $clean ) . "\n" .
+                       "\ticu: " . bin2hex( $norm ) . "\n";
+               echo "\n\tdiffs:\n";
+               showDiffs( $clean, $norm );
+               die();
+       }
+
+       $str = '';
+       $clean = '';
+       $norm = '';
+}
diff --git a/includes/libs/normal/UtfNormal.php b/includes/libs/normal/UtfNormal.php
new file mode 100644 (file)
index 0000000..8204f97
--- /dev/null
@@ -0,0 +1,790 @@
+<?php
+/**
+ * Unicode normalization routines
+ *
+ * Copyright © 2004 Brion Vibber <brion@pobox.com>
+ * https://www.mediawiki.org/
+ *
+ * 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 UtfNormal
+ */
+
+/**
+ * @defgroup UtfNormal UtfNormal
+ */
+
+define( 'NORMALIZE_ICU', function_exists( 'utf8_normalize' ) );
+define( 'NORMALIZE_INTL', function_exists( 'normalizer_normalize' ) );
+
+/**
+ * Unicode normalization routines for working with UTF-8 strings.
+ * Currently assumes that input strings are valid UTF-8!
+ *
+ * Not as fast as I'd like, but should be usable for most purposes.
+ * UtfNormal::toNFC() will bail early if given ASCII text or text
+ * it can quickly determine is already normalized.
+ *
+ * All functions can be called static.
+ *
+ * See description of forms at http://www.unicode.org/reports/tr15/
+ *
+ * @ingroup UtfNormal
+ */
+class UtfNormal {
+       /**
+        * For using the ICU wrapper
+        */
+       const UNORM_NONE = 1;
+       const UNORM_NFD = 2;
+       const UNORM_NFKD = 3;
+       const UNORM_NFC = 4;
+       const UNORM_NFKC = 5;
+       const UNORM_FCD = 6;
+       const UNORM_DEFAULT = self::UNORM_NFC;
+
+       public static $utfCombiningClass = null;
+       public static $utfCanonicalComp = null;
+       public static $utfCanonicalDecomp = null;
+
+       # Load compatibility decompositions on demand if they are needed.
+       public static $utfCompatibilityDecomp = null;
+       public static $utfCheckNFC;
+
+       /**
+        * The ultimate convenience function! Clean up invalid UTF-8 sequences,
+        * and convert to normal form C, canonical composition.
+        *
+        * Fast return for pure ASCII strings; some lesser optimizations for
+        * strings containing only known-good characters. Not as fast as toNFC().
+        *
+        * @param string $string a UTF-8 string
+        * @return string a clean, shiny, normalized UTF-8 string
+        */
+       static function cleanUp( $string ) {
+               if ( NORMALIZE_ICU ) {
+                       $string = self::replaceForNativeNormalize( $string );
+
+                       # UnicodeString constructor fails if the string ends with a
+                       # head byte. Add a junk char at the end, we'll strip it off.
+                       return rtrim( utf8_normalize( $string . "\x01", self::UNORM_NFC ), "\x01" );
+               } elseif ( NORMALIZE_INTL ) {
+                       $string = self::replaceForNativeNormalize( $string );
+                       $norm = normalizer_normalize( $string, Normalizer::FORM_C );
+                       if ( $norm === null || $norm === false ) {
+                               # normalizer_normalize will either return false or null
+                               # (depending on which doc you read) if invalid utf8 string.
+                               # quickIsNFCVerify cleans up invalid sequences.
+
+                               if ( UtfNormal::quickIsNFCVerify( $string ) ) {
+                                       # if that's true, the string is actually already normal.
+                                       return $string;
+                               } else {
+                                       # Now we are valid but non-normal
+                                       return normalizer_normalize( $string, Normalizer::FORM_C );
+                               }
+                       } else {
+                               return $norm;
+                       }
+               } elseif ( UtfNormal::quickIsNFCVerify( $string ) ) {
+                       # Side effect -- $string has had UTF-8 errors cleaned up.
+                       return $string;
+               } else {
+                       return UtfNormal::NFC( $string );
+               }
+       }
+
+       /**
+        * Convert a UTF-8 string to normal form C, canonical composition.
+        * Fast return for pure ASCII strings; some lesser optimizations for
+        * strings containing only known-good characters.
+        *
+        * @param string $string a valid UTF-8 string. Input is not validated.
+        * @return string a UTF-8 string in normal form C
+        */
+       static function toNFC( $string ) {
+               if ( NORMALIZE_INTL )
+                       return normalizer_normalize( $string, Normalizer::FORM_C );
+               elseif ( NORMALIZE_ICU )
+                       return utf8_normalize( $string, self::UNORM_NFC );
+               elseif ( UtfNormal::quickIsNFC( $string ) )
+                       return $string;
+               else
+                       return UtfNormal::NFC( $string );
+       }
+
+       /**
+        * Convert a UTF-8 string to normal form D, canonical decomposition.
+        * Fast return for pure ASCII strings.
+        *
+        * @param string $string a valid UTF-8 string. Input is not validated.
+        * @return string a UTF-8 string in normal form D
+        */
+       static function toNFD( $string ) {
+               if ( NORMALIZE_INTL )
+                       return normalizer_normalize( $string, Normalizer::FORM_D );
+               elseif ( NORMALIZE_ICU )
+                       return utf8_normalize( $string, self::UNORM_NFD );
+               elseif ( preg_match( '/[\x80-\xff]/', $string ) )
+                       return UtfNormal::NFD( $string );
+               else
+                       return $string;
+       }
+
+       /**
+        * Convert a UTF-8 string to normal form KC, compatibility composition.
+        * This may cause irreversible information loss, use judiciously.
+        * Fast return for pure ASCII strings.
+        *
+        * @param string $string a valid UTF-8 string. Input is not validated.
+        * @return string a UTF-8 string in normal form KC
+        */
+       static function toNFKC( $string ) {
+               if ( NORMALIZE_INTL )
+                       return normalizer_normalize( $string, Normalizer::FORM_KC );
+               elseif ( NORMALIZE_ICU )
+                       return utf8_normalize( $string, self::UNORM_NFKC );
+               elseif ( preg_match( '/[\x80-\xff]/', $string ) )
+                       return UtfNormal::NFKC( $string );
+               else
+                       return $string;
+       }
+
+       /**
+        * Convert a UTF-8 string to normal form KD, compatibility decomposition.
+        * This may cause irreversible information loss, use judiciously.
+        * Fast return for pure ASCII strings.
+        *
+        * @param string $string a valid UTF-8 string. Input is not validated.
+        * @return string a UTF-8 string in normal form KD
+        */
+       static function toNFKD( $string ) {
+               if ( NORMALIZE_INTL )
+                       return normalizer_normalize( $string, Normalizer::FORM_KD );
+               elseif ( NORMALIZE_ICU )
+                       return utf8_normalize( $string, self::UNORM_NFKD );
+               elseif ( preg_match( '/[\x80-\xff]/', $string ) )
+                       return UtfNormal::NFKD( $string );
+               else
+                       return $string;
+       }
+
+       /**
+        * Load the basic composition data if necessary
+        * @private
+        */
+       static function loadData() {
+               if ( !isset( self::$utfCombiningClass ) ) {
+                       require_once __DIR__ . '/UtfNormalData.inc';
+               }
+       }
+
+       /**
+        * Returns true if the string is _definitely_ in NFC.
+        * Returns false if not or uncertain.
+        * @param string $string a valid UTF-8 string. Input is not validated.
+        * @return bool
+        */
+       static function quickIsNFC( $string ) {
+               # ASCII is always valid NFC!
+               # If it's pure ASCII, let it through.
+               if ( !preg_match( '/[\x80-\xff]/', $string ) ) return true;
+
+               UtfNormal::loadData();
+               $len = strlen( $string );
+               for ( $i = 0; $i < $len; $i++ ) {
+                       $c = $string[$i];
+                       $n = ord( $c );
+                       if ( $n < 0x80 ) {
+                               continue;
+                       } elseif ( $n >= 0xf0 ) {
+                               $c = substr( $string, $i, 4 );
+                               $i += 3;
+                       } elseif ( $n >= 0xe0 ) {
+                               $c = substr( $string, $i, 3 );
+                               $i += 2;
+                       } elseif ( $n >= 0xc0 ) {
+                               $c = substr( $string, $i, 2 );
+                               $i++;
+                       }
+                       if ( isset( self::$utfCheckNFC[$c] ) ) {
+                               # If it's NO or MAYBE, bail and do the slow check.
+                               return false;
+                       }
+                       if ( isset( self::$utfCombiningClass[$c] ) ) {
+                               # Combining character? We might have to do sorting, at least.
+                               return false;
+                       }
+               }
+
+               return true;
+       }
+
+       /**
+        * Returns true if the string is _definitely_ in NFC.
+        * Returns false if not or uncertain.
+        * @param string $string a UTF-8 string, altered on output to be valid UTF-8 safe for XML.
+        * @return bool
+        */
+       static function quickIsNFCVerify( &$string ) {
+               # Screen out some characters that eg won't be allowed in XML
+               $string = preg_replace( '/[\x00-\x08\x0b\x0c\x0e-\x1f]/', UTF8_REPLACEMENT, $string );
+
+               # ASCII is always valid NFC!
+               # If we're only ever given plain ASCII, we can avoid the overhead
+               # of initializing the decomposition tables by skipping out early.
+               if ( !preg_match( '/[\x80-\xff]/', $string ) ) return true;
+
+               static $checkit = null, $tailBytes = null, $utfCheckOrCombining = null;
+               if ( !isset( $checkit ) ) {
+                       # Load/build some scary lookup tables...
+                       UtfNormal::loadData();
+
+                       $utfCheckOrCombining = array_merge( self::$utfCheckNFC, self::$utfCombiningClass );
+
+                       # Head bytes for sequences which we should do further validity checks
+                       $checkit = array_flip( array_map( 'chr',
+                               array( 0xc0, 0xc1, 0xe0, 0xed, 0xef,
+                                       0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
+                                       0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff ) ) );
+
+                       # Each UTF-8 head byte is followed by a certain
+                       # number of tail bytes.
+                       $tailBytes = array();
+                       for ( $n = 0; $n < 256; $n++ ) {
+                               if ( $n < 0xc0 ) {
+                                       $remaining = 0;
+                               } elseif ( $n < 0xe0 ) {
+                                       $remaining = 1;
+                               } elseif ( $n < 0xf0 ) {
+                                       $remaining = 2;
+                               } elseif ( $n < 0xf8 ) {
+                                       $remaining = 3;
+                               } elseif ( $n < 0xfc ) {
+                                       $remaining = 4;
+                               } elseif ( $n < 0xfe ) {
+                                       $remaining = 5;
+                               } else {
+                                       $remaining = 0;
+                               }
+                               $tailBytes[chr( $n )] = $remaining;
+                       }
+               }
+
+               # Chop the text into pure-ASCII and non-ASCII areas;
+               # large ASCII parts can be handled much more quickly.
+               # Don't chop up Unicode areas for punctuation, though,
+               # that wastes energy.
+               $matches = array();
+               preg_match_all(
+                       '/([\x00-\x7f]+|[\x80-\xff][\x00-\x40\x5b-\x5f\x7b-\xff]*)/',
+                       $string, $matches );
+
+               $looksNormal = true;
+               $base = 0;
+               $replace = array();
+               foreach ( $matches[1] as $str ) {
+                       $chunk = strlen( $str );
+
+                       if ( $str[0] < "\x80" ) {
+                               # ASCII chunk: guaranteed to be valid UTF-8
+                               # and in normal form C, so skip over it.
+                               $base += $chunk;
+                               continue;
+                       }
+
+                       # We'll have to examine the chunk byte by byte to ensure
+                       # that it consists of valid UTF-8 sequences, and to see
+                       # if any of them might not be normalized.
+                       #
+                       # Since PHP is not the fastest language on earth, some of
+                       # this code is a little ugly with inner loop optimizations.
+
+                       $head = '';
+                       $len = $chunk + 1; # Counting down is faster. I'm *so* sorry.
+
+                       for ( $i = -1; --$len; ) {
+                               $remaining = $tailBytes[$c = $str[++$i]];
+                               if ( $remaining ) {
+                                       # UTF-8 head byte!
+                                       $sequence = $head = $c;
+                                       do {
+                                               # Look for the defined number of tail bytes...
+                                               if ( --$len && ( $c = $str[++$i] ) >= "\x80" && $c < "\xc0" ) {
+                                                       # Legal tail bytes are nice.
+                                                       $sequence .= $c;
+                                               } else {
+                                                       if ( 0 == $len ) {
+                                                               # Premature end of string!
+                                                               # Drop a replacement character into output to
+                                                               # represent the invalid UTF-8 sequence.
+                                                               $replace[] = array( UTF8_REPLACEMENT,
+                                                                       $base + $i + 1 - strlen( $sequence ),
+                                                                       strlen( $sequence ) );
+                                                               break 2;
+                                                       } else {
+                                                               # Illegal tail byte; abandon the sequence.
+                                                               $replace[] = array( UTF8_REPLACEMENT,
+                                                                       $base + $i - strlen( $sequence ),
+                                                                       strlen( $sequence ) );
+                                                               # Back up and reprocess this byte; it may itself
+                                                               # be a legal ASCII or UTF-8 sequence head.
+                                                               --$i;
+                                                               ++$len;
+                                                               continue 2;
+                                                       }
+                                               }
+                                       } while ( --$remaining );
+
+                                       if ( isset( $checkit[$head] ) ) {
+                                               # Do some more detailed validity checks, for
+                                               # invalid characters and illegal sequences.
+                                               if ( $head == "\xed" ) {
+                                                       # 0xed is relatively frequent in Korean, which
+                                                       # abuts the surrogate area, so we're doing
+                                                       # this check separately to speed things up.
+
+                                                       if ( $sequence >= UTF8_SURROGATE_FIRST ) {
+                                                               # Surrogates are legal only in UTF-16 code.
+                                                               # They are totally forbidden here in UTF-8
+                                                               # utopia.
+                                                               $replace[] = array( UTF8_REPLACEMENT,
+                                                                       $base + $i + 1 - strlen( $sequence ),
+                                                                       strlen( $sequence ) );
+                                                               $head = '';
+                                                               continue;
+                                                       }
+                                               } else {
+                                                       # Slower, but rarer checks...
+                                                       $n = ord( $head );
+                                                       if (
+                                                               # "Overlong sequences" are those that are syntactically
+                                                               # correct but use more UTF-8 bytes than are necessary to
+                                                               # encode a character. Naïve string comparisons can be
+                                                               # tricked into failing to see a match for an ASCII
+                                                               # character, for instance, which can be a security hole
+                                                               # if blacklist checks are being used.
+                                                               ( $n < 0xc2 && $sequence <= UTF8_OVERLONG_A )
+                                                               || ( $n == 0xe0 && $sequence <= UTF8_OVERLONG_B )
+                                                               || ( $n == 0xf0 && $sequence <= UTF8_OVERLONG_C )
+
+                                                               # U+FFFE and U+FFFF are explicitly forbidden in Unicode.
+                                                               || ( $n == 0xef &&
+                                                                       ( $sequence == UTF8_FFFE )
+                                                                       || ( $sequence == UTF8_FFFF ) )
+
+                                                               # Unicode has been limited to 21 bits; longer
+                                                               # sequences are not allowed.
+                                                               || ( $n >= 0xf0 && $sequence > UTF8_MAX )
+                                                       ) {
+
+                                                               $replace[] = array( UTF8_REPLACEMENT,
+                                                                       $base + $i + 1 - strlen( $sequence ),
+                                                                       strlen( $sequence ) );
+                                                               $head = '';
+                                                               continue;
+                                                       }
+                                               }
+                                       }
+
+                                       if ( isset( $utfCheckOrCombining[$sequence] ) ) {
+                                               # If it's NO or MAYBE, we'll have to rip
+                                               # the string apart and put it back together.
+                                               # That's going to be mighty slow.
+                                               $looksNormal = false;
+                                       }
+
+                                       # The sequence is legal!
+                                       $head = '';
+                               } elseif ( $c < "\x80" ) {
+                                       # ASCII byte.
+                                       $head = '';
+                               } elseif ( $c < "\xc0" ) {
+                                       # Illegal tail bytes
+                                       if ( $head == '' ) {
+                                               # Out of the blue!
+                                               $replace[] = array( UTF8_REPLACEMENT, $base + $i, 1 );
+                                       } else {
+                                               # Don't add if we're continuing a broken sequence;
+                                               # we already put a replacement character when we looked
+                                               # at the broken sequence.
+                                               $replace[] = array( '', $base + $i, 1 );
+                                       }
+                               } else {
+                                       # Miscellaneous freaks.
+                                       $replace[] = array( UTF8_REPLACEMENT, $base + $i, 1 );
+                                       $head = '';
+                               }
+                       }
+                       $base += $chunk;
+               }
+               if ( count( $replace ) ) {
+                       # There were illegal UTF-8 sequences we need to fix up.
+                       $out = '';
+                       $last = 0;
+                       foreach ( $replace as $rep ) {
+                               list( $replacement, $start, $length ) = $rep;
+                               if ( $last < $start ) {
+                                       $out .= substr( $string, $last, $start - $last );
+                               }
+                               $out .= $replacement;
+                               $last = $start + $length;
+                       }
+                       if ( $last < strlen( $string ) ) {
+                               $out .= substr( $string, $last );
+                       }
+                       $string = $out;
+               }
+
+               return $looksNormal;
+       }
+
+       # These take a string and run the normalization on them, without
+       # checking for validity or any optimization etc. Input must be
+       # VALID UTF-8!
+       /**
+        * @param $string string
+        * @return string
+        * @private
+        */
+       static function NFC( $string ) {
+               return UtfNormal::fastCompose( UtfNormal::NFD( $string ) );
+       }
+
+       /**
+        * @param $string string
+        * @return string
+        * @private
+        */
+       static function NFD( $string ) {
+               UtfNormal::loadData();
+
+               return UtfNormal::fastCombiningSort(
+                       UtfNormal::fastDecompose( $string, self::$utfCanonicalDecomp ) );
+       }
+
+       /**
+        * @param $string string
+        * @return string
+        * @private
+        */
+       static function NFKC( $string ) {
+               return UtfNormal::fastCompose( UtfNormal::NFKD( $string ) );
+       }
+
+       /**
+        * @param $string string
+        * @return string
+        * @private
+        */
+       static function NFKD( $string ) {
+               if ( !isset( self::$utfCompatibilityDecomp ) ) {
+                       require_once 'UtfNormalDataK.inc';
+               }
+
+               return self::fastCombiningSort(
+                       self::fastDecompose( $string, self::$utfCompatibilityDecomp ) );
+       }
+
+       /**
+        * Perform decomposition of a UTF-8 string into either D or KD form
+        * (depending on which decomposition map is passed to us).
+        * Input is assumed to be *valid* UTF-8. Invalid code will break.
+        * @private
+        * @param string $string valid UTF-8 string
+        * @param array $map hash of expanded decomposition map
+        * @return string a UTF-8 string decomposed, not yet normalized (needs sorting)
+        */
+       static function fastDecompose( $string, $map ) {
+               UtfNormal::loadData();
+               $len = strlen( $string );
+               $out = '';
+               for ( $i = 0; $i < $len; $i++ ) {
+                       $c = $string[$i];
+                       $n = ord( $c );
+                       if ( $n < 0x80 ) {
+                               # ASCII chars never decompose
+                               # THEY ARE IMMORTAL
+                               $out .= $c;
+                               continue;
+                       } elseif ( $n >= 0xf0 ) {
+                               $c = substr( $string, $i, 4 );
+                               $i += 3;
+                       } elseif ( $n >= 0xe0 ) {
+                               $c = substr( $string, $i, 3 );
+                               $i += 2;
+                       } elseif ( $n >= 0xc0 ) {
+                               $c = substr( $string, $i, 2 );
+                               $i++;
+                       }
+                       if ( isset( $map[$c] ) ) {
+                               $out .= $map[$c];
+                               continue;
+                       } else {
+                               if ( $c >= UTF8_HANGUL_FIRST && $c <= UTF8_HANGUL_LAST ) {
+                                       # Decompose a hangul syllable into jamo;
+                                       # hardcoded for three-byte UTF-8 sequence.
+                                       # A lookup table would be slightly faster,
+                                       # but adds a lot of memory & disk needs.
+                                       #
+                                       $index = ( ( ord( $c[0] ) & 0x0f ) << 12
+                                                       | ( ord( $c[1] ) & 0x3f ) << 6
+                                                       | ( ord( $c[2] ) & 0x3f ) )
+                                               - UNICODE_HANGUL_FIRST;
+                                       $l = intval( $index / UNICODE_HANGUL_NCOUNT );
+                                       $v = intval( ( $index % UNICODE_HANGUL_NCOUNT ) / UNICODE_HANGUL_TCOUNT );
+                                       $t = $index % UNICODE_HANGUL_TCOUNT;
+                                       $out .= "\xe1\x84" . chr( 0x80 + $l ) . "\xe1\x85" . chr( 0xa1 + $v );
+                                       if ( $t >= 25 ) {
+                                               $out .= "\xe1\x87" . chr( 0x80 + $t - 25 );
+                                       } elseif ( $t ) {
+                                               $out .= "\xe1\x86" . chr( 0xa7 + $t );
+                                       }
+                                       continue;
+                               }
+                       }
+                       $out .= $c;
+               }
+
+               return $out;
+       }
+
+       /**
+        * Sorts combining characters into canonical order. This is the
+        * final step in creating decomposed normal forms D and KD.
+        * @private
+        * @param string $string a valid, decomposed UTF-8 string. Input is not validated.
+        * @return string a UTF-8 string with combining characters sorted in canonical order
+        */
+       static function fastCombiningSort( $string ) {
+               UtfNormal::loadData();
+               $len = strlen( $string );
+               $out = '';
+               $combiners = array();
+               $lastClass = -1;
+               for ( $i = 0; $i < $len; $i++ ) {
+                       $c = $string[$i];
+                       $n = ord( $c );
+                       if ( $n >= 0x80 ) {
+                               if ( $n >= 0xf0 ) {
+                                       $c = substr( $string, $i, 4 );
+                                       $i += 3;
+                               } elseif ( $n >= 0xe0 ) {
+                                       $c = substr( $string, $i, 3 );
+                                       $i += 2;
+                               } elseif ( $n >= 0xc0 ) {
+                                       $c = substr( $string, $i, 2 );
+                                       $i++;
+                               }
+                               if ( isset( self::$utfCombiningClass[$c] ) ) {
+                                       $lastClass = self::$utfCombiningClass[$c];
+                                       if ( isset( $combiners[$lastClass] ) ) {
+                                               $combiners[$lastClass] .= $c;
+                                       } else {
+                                               $combiners[$lastClass] = $c;
+                                       }
+                                       continue;
+                               }
+                       }
+                       if ( $lastClass ) {
+                               ksort( $combiners );
+                               $out .= implode( '', $combiners );
+                               $combiners = array();
+                       }
+                       $out .= $c;
+                       $lastClass = 0;
+               }
+               if ( $lastClass ) {
+                       ksort( $combiners );
+                       $out .= implode( '', $combiners );
+               }
+
+               return $out;
+       }
+
+       /**
+        * Produces canonically composed sequences, i.e. normal form C or KC.
+        *
+        * @private
+        * @param string $string a valid UTF-8 string in sorted normal form D or KD.
+        *   Input is not validated.
+        * @return string a UTF-8 string with canonical precomposed characters used
+        *   where possible.
+        */
+       static function fastCompose( $string ) {
+               UtfNormal::loadData();
+               $len = strlen( $string );
+               $out = '';
+               $lastClass = -1;
+               $lastHangul = 0;
+               $startChar = '';
+               $combining = '';
+               $x1 = ord( substr( UTF8_HANGUL_VBASE, 0, 1 ) );
+               $x2 = ord( substr( UTF8_HANGUL_TEND, 0, 1 ) );
+               for ( $i = 0; $i < $len; $i++ ) {
+                       $c = $string[$i];
+                       $n = ord( $c );
+                       if ( $n < 0x80 ) {
+                               # No combining characters here...
+                               $out .= $startChar;
+                               $out .= $combining;
+                               $startChar = $c;
+                               $combining = '';
+                               $lastClass = 0;
+                               continue;
+                       } elseif ( $n >= 0xf0 ) {
+                               $c = substr( $string, $i, 4 );
+                               $i += 3;
+                       } elseif ( $n >= 0xe0 ) {
+                               $c = substr( $string, $i, 3 );
+                               $i += 2;
+                       } elseif ( $n >= 0xc0 ) {
+                               $c = substr( $string, $i, 2 );
+                               $i++;
+                       }
+                       $pair = $startChar . $c;
+                       if ( $n > 0x80 ) {
+                               if ( isset( self::$utfCombiningClass[$c] ) ) {
+                                       # A combining char; see what we can do with it
+                                       $class = self::$utfCombiningClass[$c];
+                                       if ( !empty( $startChar ) &&
+                                               $lastClass < $class &&
+                                               $class > 0 &&
+                                               isset( self::$utfCanonicalComp[$pair] )
+                                       ) {
+                                               $startChar = self::$utfCanonicalComp[$pair];
+                                               $class = 0;
+                                       } else {
+                                               $combining .= $c;
+                                       }
+                                       $lastClass = $class;
+                                       $lastHangul = 0;
+                                       continue;
+                               }
+                       }
+                       # New start char
+                       if ( $lastClass == 0 ) {
+                               if ( isset( self::$utfCanonicalComp[$pair] ) ) {
+                                       $startChar = self::$utfCanonicalComp[$pair];
+                                       $lastHangul = 0;
+                                       continue;
+                               }
+                               if ( $n >= $x1 && $n <= $x2 ) {
+                                       # WARNING: Hangul code is painfully slow.
+                                       # I apologize for this ugly, ugly code; however
+                                       # performance is even more teh suck if we call
+                                       # out to nice clean functions. Lookup tables are
+                                       # marginally faster, but require a lot of space.
+                                       #
+                                       if ( $c >= UTF8_HANGUL_VBASE &&
+                                               $c <= UTF8_HANGUL_VEND &&
+                                               $startChar >= UTF8_HANGUL_LBASE &&
+                                               $startChar <= UTF8_HANGUL_LEND
+                                       ) {
+                                               #
+                                               #$lIndex = utf8ToCodepoint( $startChar ) - UNICODE_HANGUL_LBASE;
+                                               #$vIndex = utf8ToCodepoint( $c ) - UNICODE_HANGUL_VBASE;
+                                               $lIndex = ord( $startChar[2] ) - 0x80;
+                                               $vIndex = ord( $c[2] ) - 0xa1;
+
+                                               $hangulPoint = UNICODE_HANGUL_FIRST +
+                                                       UNICODE_HANGUL_TCOUNT *
+                                                       ( UNICODE_HANGUL_VCOUNT * $lIndex + $vIndex );
+
+                                               # Hardcode the limited-range UTF-8 conversion:
+                                               $startChar = chr( $hangulPoint >> 12 & 0x0f | 0xe0 ) .
+                                                       chr( $hangulPoint >> 6 & 0x3f | 0x80 ) .
+                                                       chr( $hangulPoint & 0x3f | 0x80 );
+                                               $lastHangul = 0;
+                                               continue;
+                                       } elseif ( $c >= UTF8_HANGUL_TBASE &&
+                                               $c <= UTF8_HANGUL_TEND &&
+                                               $startChar >= UTF8_HANGUL_FIRST &&
+                                               $startChar <= UTF8_HANGUL_LAST &&
+                                               !$lastHangul
+                                       ) {
+                                               # $tIndex = utf8ToCodepoint( $c ) - UNICODE_HANGUL_TBASE;
+                                               $tIndex = ord( $c[2] ) - 0xa7;
+                                               if ( $tIndex < 0 ) $tIndex = ord( $c[2] ) - 0x80 + ( 0x11c0 - 0x11a7 );
+
+                                               # Increment the code point by $tIndex, without
+                                               # the function overhead of decoding and recoding UTF-8
+                                               #
+                                               $tail = ord( $startChar[2] ) + $tIndex;
+                                               if ( $tail > 0xbf ) {
+                                                       $tail -= 0x40;
+                                                       $mid = ord( $startChar[1] ) + 1;
+                                                       if ( $mid > 0xbf ) {
+                                                               $startChar[0] = chr( ord( $startChar[0] ) + 1 );
+                                                               $mid -= 0x40;
+                                                       }
+                                                       $startChar[1] = chr( $mid );
+                                               }
+                                               $startChar[2] = chr( $tail );
+
+                                               # If there's another jamo char after this, *don't* try to merge it.
+                                               $lastHangul = 1;
+                                               continue;
+                                       }
+                               }
+                       }
+                       $out .= $startChar;
+                       $out .= $combining;
+                       $startChar = $c;
+                       $combining = '';
+                       $lastClass = 0;
+                       $lastHangul = 0;
+               }
+               $out .= $startChar . $combining;
+
+               return $out;
+       }
+
+       /**
+        * This is just used for the benchmark, comparing how long it takes to
+        * interate through a string without really doing anything of substance.
+        * @param $string string
+        * @return string
+        */
+       static function placebo( $string ) {
+               $len = strlen( $string );
+               $out = '';
+               for ( $i = 0; $i < $len; $i++ ) {
+                       $out .= $string[$i];
+               }
+
+               return $out;
+       }
+
+       /**
+        * Function to replace some characters that we don't want
+        * but most of the native normalize functions keep.
+        *
+        * @param string $string The string
+        * @return String String with the character codes replaced.
+        */
+       private static function replaceForNativeNormalize( $string ) {
+               $string = preg_replace(
+                       '/[\x00-\x08\x0b\x0c\x0e-\x1f]/',
+                       UTF8_REPLACEMENT,
+                       $string );
+               $string = str_replace( UTF8_FFFE, UTF8_REPLACEMENT, $string );
+               $string = str_replace( UTF8_FFFF, UTF8_REPLACEMENT, $string );
+
+               return $string;
+       }
+}
diff --git a/includes/libs/normal/UtfNormalBench.php b/includes/libs/normal/UtfNormalBench.php
new file mode 100644 (file)
index 0000000..bd2bc4e
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Approximate benchmark for some basic operations.
+ *
+ * Copyright © 2004 Brion Vibber <brion@pobox.com>
+ * https://www.mediawiki.org/
+ *
+ * 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 UtfNormal
+ */
+
+if ( PHP_SAPI != 'cli' ) {
+       die( "Run me from the command line please.\n" );
+}
+
+if ( isset( $_SERVER['argv'] ) && in_array( '--icu', $_SERVER['argv'] ) ) {
+       dl( 'php_utfnormal.so' );
+}
+
+require_once 'UtfNormalDefines.php';
+require_once 'UtfNormalUtil.php';
+require_once 'UtfNormal.php';
+
+define( 'BENCH_CYCLES', 5 );
+
+$testfiles = array(
+       'testdata/washington.txt' => 'English text',
+       'testdata/berlin.txt' => 'German text',
+       'testdata/bulgakov.txt' => 'Russian text',
+       'testdata/tokyo.txt' => 'Japanese text',
+       'testdata/young.txt' => 'Korean text'
+);
+$normalizer = new UtfNormal;
+UtfNormal::loadData();
+foreach ( $testfiles as $file => $desc ) {
+       benchmarkTest( $normalizer, $file, $desc );
+}
+
+# -------
+
+function benchmarkTest( &$u, $filename, $desc ) {
+       print "Testing $filename ($desc)...\n";
+       $data = file_get_contents( $filename );
+       $forms = array(
+#              'placebo',
+               'cleanUp',
+               'toNFC',
+#              'toNFKC',
+#              'toNFD', 'toNFKD',
+               'NFC',
+#              'NFKC',
+#              'NFD', 'NFKD',
+               array( 'fastDecompose', 'fastCombiningSort', 'fastCompose' ),
+#              'quickIsNFC', 'quickIsNFCVerify',
+       );
+
+       foreach ( $forms as $form ) {
+               if ( is_array( $form ) ) {
+                       $str = $data;
+                       foreach ( $form as $step ) {
+                               $str = benchmarkForm( $u, $str, $step );
+                       }
+               } else {
+                       benchmarkForm( $u, $data, $form );
+               }
+       }
+}
+
+function benchmarkForm( &$u, &$data, $form ) {
+       #$start = microtime( true );
+       for ( $i = 0; $i < BENCH_CYCLES; $i++ ) {
+               $start = microtime( true );
+               $out = $u->$form( $data, UtfNormal::$utfCanonicalDecomp );
+               $deltas[] = ( microtime( true ) - $start );
+       }
+       #$delta = (microtime( true ) - $start) / BENCH_CYCLES;
+       sort( $deltas );
+       $delta = $deltas[0]; # Take shortest time
+
+       $rate = intval( strlen( $data ) / $delta );
+       $same = ( 0 == strcmp( $data, $out ) );
+
+       printf( " %20s %6.1fms %12s bytes/s (%s)\n",
+               $form,
+               $delta * 1000.0,
+               number_format( $rate ),
+               ( $same ? 'no change' : 'changed' ) );
+
+       return $out;
+}
diff --git a/includes/libs/normal/UtfNormalData.inc b/includes/libs/normal/UtfNormalData.inc
new file mode 100644 (file)
index 0000000..5755f6b
--- /dev/null
@@ -0,0 +1,14 @@
+<?php
+/**
+ * This file was automatically generated -- do not edit!
+ * Run UtfNormalGenerate.php to create this file again (make clean && make)
+ *
+ * @file
+ */
+// @codingStandardsIgnoreFile
+
+UtfNormal::$utfCombiningClass = unserialize( 'a:606:{s:2:"̀";i:230;s:2:"́";i:230;s:2:"̂";i:230;s:2:"̃";i:230;s:2:"̄";i:230;s:2:"̅";i:230;s:2:"̆";i:230;s:2:"̇";i:230;s:2:"̈";i:230;s:2:"̉";i:230;s:2:"̊";i:230;s:2:"̋";i:230;s:2:"̌";i:230;s:2:"̍";i:230;s:2:"̎";i:230;s:2:"̏";i:230;s:2:"̐";i:230;s:2:"̑";i:230;s:2:"̒";i:230;s:2:"̓";i:230;s:2:"̔";i:230;s:2:"̕";i:232;s:2:"̖";i:220;s:2:"̗";i:220;s:2:"̘";i:220;s:2:"̙";i:220;s:2:"̚";i:232;s:2:"̛";i:216;s:2:"̜";i:220;s:2:"̝";i:220;s:2:"̞";i:220;s:2:"̟";i:220;s:2:"̠";i:220;s:2:"̡";i:202;s:2:"̢";i:202;s:2:"̣";i:220;s:2:"̤";i:220;s:2:"̥";i:220;s:2:"̦";i:220;s:2:"̧";i:202;s:2:"̨";i:202;s:2:"̩";i:220;s:2:"̪";i:220;s:2:"̫";i:220;s:2:"̬";i:220;s:2:"̭";i:220;s:2:"̮";i:220;s:2:"̯";i:220;s:2:"̰";i:220;s:2:"̱";i:220;s:2:"̲";i:220;s:2:"̳";i:220;s:2:"̴";i:1;s:2:"̵";i:1;s:2:"̶";i:1;s:2:"̷";i:1;s:2:"̸";i:1;s:2:"̹";i:220;s:2:"̺";i:220;s:2:"̻";i:220;s:2:"̼";i:220;s:2:"̽";i:230;s:2:"̾";i:230;s:2:"̿";i:230;s:2:"̀";i:230;s:2:"́";i:230;s:2:"͂";i:230;s:2:"̓";i:230;s:2:"̈́";i:230;s:2:"ͅ";i:240;s:2:"͆";i:230;s:2:"͇";i:220;s:2:"͈";i:220;s:2:"͉";i:220;s:2:"͊";i:230;s:2:"͋";i:230;s:2:"͌";i:230;s:2:"͍";i:220;s:2:"͎";i:220;s:2:"͐";i:230;s:2:"͑";i:230;s:2:"͒";i:230;s:2:"͓";i:220;s:2:"͔";i:220;s:2:"͕";i:220;s:2:"͖";i:220;s:2:"͗";i:230;s:2:"͘";i:232;s:2:"͙";i:220;s:2:"͚";i:220;s:2:"͛";i:230;s:2:"͜";i:233;s:2:"͝";i:234;s:2:"͞";i:234;s:2:"͟";i:233;s:2:"͠";i:234;s:2:"͡";i:234;s:2:"͢";i:233;s:2:"ͣ";i:230;s:2:"ͤ";i:230;s:2:"ͥ";i:230;s:2:"ͦ";i:230;s:2:"ͧ";i:230;s:2:"ͨ";i:230;s:2:"ͩ";i:230;s:2:"ͪ";i:230;s:2:"ͫ";i:230;s:2:"ͬ";i:230;s:2:"ͭ";i:230;s:2:"ͮ";i:230;s:2:"ͯ";i:230;s:2:"҃";i:230;s:2:"҄";i:230;s:2:"҅";i:230;s:2:"҆";i:230;s:2:"҇";i:230;s:2:"֑";i:220;s:2:"֒";i:230;s:2:"֓";i:230;s:2:"֔";i:230;s:2:"֕";i:230;s:2:"֖";i:220;s:2:"֗";i:230;s:2:"֘";i:230;s:2:"֙";i:230;s:2:"֚";i:222;s:2:"֛";i:220;s:2:"֜";i:230;s:2:"֝";i:230;s:2:"֞";i:230;s:2:"֟";i:230;s:2:"֠";i:230;s:2:"֡";i:230;s:2:"֢";i:220;s:2:"֣";i:220;s:2:"֤";i:220;s:2:"֥";i:220;s:2:"֦";i:220;s:2:"֧";i:220;s:2:"֨";i:230;s:2:"֩";i:230;s:2:"֪";i:220;s:2:"֫";i:230;s:2:"֬";i:230;s:2:"֭";i:222;s:2:"֮";i:228;s:2:"֯";i:230;s:2:"ְ";i:10;s:2:"ֱ";i:11;s:2:"ֲ";i:12;s:2:"ֳ";i:13;s:2:"ִ";i:14;s:2:"ֵ";i:15;s:2:"ֶ";i:16;s:2:"ַ";i:17;s:2:"ָ";i:18;s:2:"ֹ";i:19;s:2:"ֺ";i:19;s:2:"ֻ";i:20;s:2:"ּ";i:21;s:2:"ֽ";i:22;s:2:"ֿ";i:23;s:2:"ׁ";i:24;s:2:"ׂ";i:25;s:2:"ׄ";i:230;s:2:"ׅ";i:220;s:2:"ׇ";i:18;s:2:"ؐ";i:230;s:2:"ؑ";i:230;s:2:"ؒ";i:230;s:2:"ؓ";i:230;s:2:"ؔ";i:230;s:2:"ؕ";i:230;s:2:"ؖ";i:230;s:2:"ؗ";i:230;s:2:"ؘ";i:30;s:2:"ؙ";i:31;s:2:"ؚ";i:32;s:2:"ً";i:27;s:2:"ٌ";i:28;s:2:"ٍ";i:29;s:2:"َ";i:30;s:2:"ُ";i:31;s:2:"ِ";i:32;s:2:"ّ";i:33;s:2:"ْ";i:34;s:2:"ٓ";i:230;s:2:"ٔ";i:230;s:2:"ٕ";i:220;s:2:"ٖ";i:220;s:2:"ٗ";i:230;s:2:"٘";i:230;s:2:"ٙ";i:230;s:2:"ٚ";i:230;s:2:"ٛ";i:230;s:2:"ٜ";i:220;s:2:"ٝ";i:230;s:2:"ٞ";i:230;s:2:"ٟ";i:220;s:2:"ٰ";i:35;s:2:"ۖ";i:230;s:2:"ۗ";i:230;s:2:"ۘ";i:230;s:2:"ۙ";i:230;s:2:"ۚ";i:230;s:2:"ۛ";i:230;s:2:"ۜ";i:230;s:2:"۟";i:230;s:2:"۠";i:230;s:2:"ۡ";i:230;s:2:"ۢ";i:230;s:2:"ۣ";i:220;s:2:"ۤ";i:230;s:2:"ۧ";i:230;s:2:"ۨ";i:230;s:2:"۪";i:220;s:2:"۫";i:230;s:2:"۬";i:230;s:2:"ۭ";i:220;s:2:"ܑ";i:36;s:2:"ܰ";i:230;s:2:"ܱ";i:220;s:2:"ܲ";i:230;s:2:"ܳ";i:230;s:2:"ܴ";i:220;s:2:"ܵ";i:230;s:2:"ܶ";i:230;s:2:"ܷ";i:220;s:2:"ܸ";i:220;s:2:"ܹ";i:220;s:2:"ܺ";i:230;s:2:"ܻ";i:220;s:2:"ܼ";i:220;s:2:"ܽ";i:230;s:2:"ܾ";i:220;s:2:"ܿ";i:230;s:2:"݀";i:230;s:2:"݁";i:230;s:2:"݂";i:220;s:2:"݃";i:230;s:2:"݄";i:220;s:2:"݅";i:230;s:2:"݆";i:220;s:2:"݇";i:230;s:2:"݈";i:220;s:2:"݉";i:230;s:2:"݊";i:230;s:2:"߫";i:230;s:2:"߬";i:230;s:2:"߭";i:230;s:2:"߮";i:230;s:2:"߯";i:230;s:2:"߰";i:230;s:2:"߱";i:230;s:2:"߲";i:220;s:2:"߳";i:230;s:3:"ࠖ";i:230;s:3:"ࠗ";i:230;s:3:"࠘";i:230;s:3:"࠙";i:230;s:3:"ࠛ";i:230;s:3:"ࠜ";i:230;s:3:"ࠝ";i:230;s:3:"ࠞ";i:230;s:3:"ࠟ";i:230;s:3:"ࠠ";i:230;s:3:"ࠡ";i:230;s:3:"ࠢ";i:230;s:3:"ࠣ";i:230;s:3:"ࠥ";i:230;s:3:"ࠦ";i:230;s:3:"ࠧ";i:230;s:3:"ࠩ";i:230;s:3:"ࠪ";i:230;s:3:"ࠫ";i:230;s:3:"ࠬ";i:230;s:3:"࠭";i:230;s:3:"࡙";i:220;s:3:"࡚";i:220;s:3:"࡛";i:220;s:3:"़";i:7;s:3:"्";i:9;s:3:"॑";i:230;s:3:"॒";i:220;s:3:"॓";i:230;s:3:"॔";i:230;s:3:"়";i:7;s:3:"্";i:9;s:3:"਼";i:7;s:3:"੍";i:9;s:3:"઼";i:7;s:3:"્";i:9;s:3:"଼";i:7;s:3:"୍";i:9;s:3:"்";i:9;s:3:"్";i:9;s:3:"ౕ";i:84;s:3:"ౖ";i:91;s:3:"಼";i:7;s:3:"್";i:9;s:3:"്";i:9;s:3:"්";i:9;s:3:"ุ";i:103;s:3:"ู";i:103;s:3:"ฺ";i:9;s:3:"่";i:107;s:3:"้";i:107;s:3:"๊";i:107;s:3:"๋";i:107;s:3:"ຸ";i:118;s:3:"ູ";i:118;s:3:"່";i:122;s:3:"້";i:122;s:3:"໊";i:122;s:3:"໋";i:122;s:3:"༘";i:220;s:3:"༙";i:220;s:3:"༵";i:220;s:3:"༷";i:220;s:3:"༹";i:216;s:3:"ཱ";i:129;s:3:"ི";i:130;s:3:"ུ";i:132;s:3:"ེ";i:130;s:3:"ཻ";i:130;s:3:"ོ";i:130;s:3:"ཽ";i:130;s:3:"ྀ";i:130;s:3:"ྂ";i:230;s:3:"ྃ";i:230;s:3:"྄";i:9;s:3:"྆";i:230;s:3:"྇";i:230;s:3:"࿆";i:220;s:3:"့";i:7;s:3:"္";i:9;s:3:"်";i:9;s:3:"ႍ";i:220;s:3:"፝";i:230;s:3:"፞";i:230;s:3:"፟";i:230;s:3:"᜔";i:9;s:3:"᜴";i:9;s:3:"្";i:9;s:3:"៝";i:230;s:3:"ᢩ";i:228;s:3:"᤹";i:222;s:3:"᤺";i:230;s:3:"᤻";i:220;s:3:"ᨗ";i:230;s:3:"ᨘ";i:220;s:3:"᩠";i:9;s:3:"᩵";i:230;s:3:"᩶";i:230;s:3:"᩷";i:230;s:3:"᩸";i:230;s:3:"᩹";i:230;s:3:"᩺";i:230;s:3:"᩻";i:230;s:3:"᩼";i:230;s:3:"᩿";i:220;s:3:"᬴";i:7;s:3:"᭄";i:9;s:3:"᭫";i:230;s:3:"᭬";i:220;s:3:"᭭";i:230;s:3:"᭮";i:230;s:3:"᭯";i:230;s:3:"᭰";i:230;s:3:"᭱";i:230;s:3:"᭲";i:230;s:3:"᭳";i:230;s:3:"᮪";i:9;s:3:"᯦";i:7;s:3:"᯲";i:9;s:3:"᯳";i:9;s:3:"᰷";i:7;s:3:"᳐";i:230;s:3:"᳑";i:230;s:3:"᳒";i:230;s:3:"᳔";i:1;s:3:"᳕";i:220;s:3:"᳖";i:220;s:3:"᳗";i:220;s:3:"᳘";i:220;s:3:"᳙";i:220;s:3:"᳚";i:230;s:3:"᳛";i:230;s:3:"᳜";i:220;s:3:"᳝";i:220;s:3:"᳞";i:220;s:3:"᳟";i:220;s:3:"᳠";i:230;s:3:"᳢";i:1;s:3:"᳣";i:1;s:3:"᳤";i:1;s:3:"᳥";i:1;s:3:"᳦";i:1;s:3:"᳧";i:1;s:3:"᳨";i:1;s:3:"᳭";i:220;s:3:"᷀";i:230;s:3:"᷁";i:230;s:3:"᷂";i:220;s:3:"᷃";i:230;s:3:"᷄";i:230;s:3:"᷅";i:230;s:3:"᷆";i:230;s:3:"᷇";i:230;s:3:"᷈";i:230;s:3:"᷉";i:230;s:3:"᷊";i:220;s:3:"᷋";i:230;s:3:"᷌";i:230;s:3:"᷍";i:234;s:3:"᷎";i:214;s:3:"᷏";i:220;s:3:"᷐";i:202;s:3:"᷑";i:230;s:3:"᷒";i:230;s:3:"ᷓ";i:230;s:3:"ᷔ";i:230;s:3:"ᷕ";i:230;s:3:"ᷖ";i:230;s:3:"ᷗ";i:230;s:3:"ᷘ";i:230;s:3:"ᷙ";i:230;s:3:"ᷚ";i:230;s:3:"ᷛ";i:230;s:3:"ᷜ";i:230;s:3:"ᷝ";i:230;s:3:"ᷞ";i:230;s:3:"ᷟ";i:230;s:3:"ᷠ";i:230;s:3:"ᷡ";i:230;s:3:"ᷢ";i:230;s:3:"ᷣ";i:230;s:3:"ᷤ";i:230;s:3:"ᷥ";i:230;s:3:"ᷦ";i:230;s:3:"᷼";i:233;s:3:"᷽";i:220;s:3:"᷾";i:230;s:3:"᷿";i:220;s:3:"⃐";i:230;s:3:"⃑";i:230;s:3:"⃒";i:1;s:3:"⃓";i:1;s:3:"⃔";i:230;s:3:"⃕";i:230;s:3:"⃖";i:230;s:3:"⃗";i:230;s:3:"⃘";i:1;s:3:"⃙";i:1;s:3:"⃚";i:1;s:3:"⃛";i:230;s:3:"⃜";i:230;s:3:"⃡";i:230;s:3:"⃥";i:1;s:3:"⃦";i:1;s:3:"⃧";i:230;s:3:"⃨";i:220;s:3:"⃩";i:230;s:3:"⃪";i:1;s:3:"⃫";i:1;s:3:"⃬";i:220;s:3:"⃭";i:220;s:3:"⃮";i:220;s:3:"⃯";i:220;s:3:"⃰";i:230;s:3:"⳯";i:230;s:3:"⳰";i:230;s:3:"⳱";i:230;s:3:"⵿";i:9;s:3:"ⷠ";i:230;s:3:"ⷡ";i:230;s:3:"ⷢ";i:230;s:3:"ⷣ";i:230;s:3:"ⷤ";i:230;s:3:"ⷥ";i:230;s:3:"ⷦ";i:230;s:3:"ⷧ";i:230;s:3:"ⷨ";i:230;s:3:"ⷩ";i:230;s:3:"ⷪ";i:230;s:3:"ⷫ";i:230;s:3:"ⷬ";i:230;s:3:"ⷭ";i:230;s:3:"ⷮ";i:230;s:3:"ⷯ";i:230;s:3:"ⷰ";i:230;s:3:"ⷱ";i:230;s:3:"ⷲ";i:230;s:3:"ⷳ";i:230;s:3:"ⷴ";i:230;s:3:"ⷵ";i:230;s:3:"ⷶ";i:230;s:3:"ⷷ";i:230;s:3:"ⷸ";i:230;s:3:"ⷹ";i:230;s:3:"ⷺ";i:230;s:3:"ⷻ";i:230;s:3:"ⷼ";i:230;s:3:"ⷽ";i:230;s:3:"ⷾ";i:230;s:3:"ⷿ";i:230;s:3:"〪";i:218;s:3:"〫";i:228;s:3:"〬";i:232;s:3:"〭";i:222;s:3:"〮";i:224;s:3:"〯";i:224;s:3:"゙";i:8;s:3:"゚";i:8;s:3:"꙯";i:230;s:3:"꙼";i:230;s:3:"꙽";i:230;s:3:"꛰";i:230;s:3:"꛱";i:230;s:3:"꠆";i:9;s:3:"꣄";i:9;s:3:"꣠";i:230;s:3:"꣡";i:230;s:3:"꣢";i:230;s:3:"꣣";i:230;s:3:"꣤";i:230;s:3:"꣥";i:230;s:3:"꣦";i:230;s:3:"꣧";i:230;s:3:"꣨";i:230;s:3:"꣩";i:230;s:3:"꣪";i:230;s:3:"꣫";i:230;s:3:"꣬";i:230;s:3:"꣭";i:230;s:3:"꣮";i:230;s:3:"꣯";i:230;s:3:"꣰";i:230;s:3:"꣱";i:230;s:3:"꤫";i:220;s:3:"꤬";i:220;s:3:"꤭";i:220;s:3:"꥓";i:9;s:3:"꦳";i:7;s:3:"꧀";i:9;s:3:"ꪰ";i:230;s:3:"ꪲ";i:230;s:3:"ꪳ";i:230;s:3:"ꪴ";i:220;s:3:"ꪷ";i:230;s:3:"ꪸ";i:230;s:3:"ꪾ";i:230;s:3:"꪿";i:230;s:3:"꫁";i:230;s:3:"꯭";i:9;s:3:"ﬞ";i:26;s:3:"︠";i:230;s:3:"︡";i:230;s:3:"︢";i:230;s:3:"︣";i:230;s:3:"︤";i:230;s:3:"︥";i:230;s:3:"︦";i:230;s:4:"𐇽";i:220;s:4:"𐨍";i:220;s:4:"𐨏";i:230;s:4:"𐨸";i:230;s:4:"𐨹";i:1;s:4:"𐨺";i:220;s:4:"𐨿";i:9;s:4:"𑁆";i:9;s:4:"𑂹";i:9;s:4:"𑂺";i:7;s:4:"𝅥";i:216;s:4:"𝅦";i:216;s:4:"𝅧";i:1;s:4:"𝅨";i:1;s:4:"𝅩";i:1;s:4:"𝅭";i:226;s:4:"𝅮";i:216;s:4:"𝅯";i:216;s:4:"𝅰";i:216;s:4:"𝅱";i:216;s:4:"𝅲";i:216;s:4:"𝅻";i:220;s:4:"𝅼";i:220;s:4:"𝅽";i:220;s:4:"𝅾";i:220;s:4:"𝅿";i:220;s:4:"𝆀";i:220;s:4:"𝆁";i:220;s:4:"𝆂";i:220;s:4:"𝆅";i:230;s:4:"𝆆";i:230;s:4:"𝆇";i:230;s:4:"𝆈";i:230;s:4:"𝆉";i:230;s:4:"𝆊";i:220;s:4:"𝆋";i:220;s:4:"𝆪";i:230;s:4:"𝆫";i:230;s:4:"𝆬";i:230;s:4:"𝆭";i:230;s:4:"𝉂";i:230;s:4:"𝉃";i:230;s:4:"𝉄";i:230;}' );
+UtfNormal::$utfCanonicalComp = unserialize( 'a:1868:{s:3:"À";s:2:"À";s:3:"Á";s:2:"Á";s:3:"Â";s:2:"Â";s:3:"Ã";s:2:"Ã";s:3:"Ä";s:2:"Ä";s:3:"Å";s:2:"Å";s:3:"Ç";s:2:"Ç";s:3:"È";s:2:"È";s:3:"É";s:2:"É";s:3:"Ê";s:2:"Ê";s:3:"Ë";s:2:"Ë";s:3:"Ì";s:2:"Ì";s:3:"Í";s:2:"Í";s:3:"Î";s:2:"Î";s:3:"Ï";s:2:"Ï";s:3:"Ñ";s:2:"Ñ";s:3:"Ò";s:2:"Ò";s:3:"Ó";s:2:"Ó";s:3:"Ô";s:2:"Ô";s:3:"Õ";s:2:"Õ";s:3:"Ö";s:2:"Ö";s:3:"Ù";s:2:"Ù";s:3:"Ú";s:2:"Ú";s:3:"Û";s:2:"Û";s:3:"Ü";s:2:"Ü";s:3:"Ý";s:2:"Ý";s:3:"à";s:2:"à";s:3:"á";s:2:"á";s:3:"â";s:2:"â";s:3:"ã";s:2:"ã";s:3:"ä";s:2:"ä";s:3:"å";s:2:"å";s:3:"ç";s:2:"ç";s:3:"è";s:2:"è";s:3:"é";s:2:"é";s:3:"ê";s:2:"ê";s:3:"ë";s:2:"ë";s:3:"ì";s:2:"ì";s:3:"í";s:2:"í";s:3:"î";s:2:"î";s:3:"ï";s:2:"ï";s:3:"ñ";s:2:"ñ";s:3:"ò";s:2:"ò";s:3:"ó";s:2:"ó";s:3:"ô";s:2:"ô";s:3:"õ";s:2:"õ";s:3:"ö";s:2:"ö";s:3:"ù";s:2:"ù";s:3:"ú";s:2:"ú";s:3:"û";s:2:"û";s:3:"ü";s:2:"ü";s:3:"ý";s:2:"ý";s:3:"ÿ";s:2:"ÿ";s:3:"Ā";s:2:"Ā";s:3:"ā";s:2:"ā";s:3:"Ă";s:2:"Ă";s:3:"ă";s:2:"ă";s:3:"Ą";s:2:"Ą";s:3:"ą";s:2:"ą";s:3:"Ć";s:2:"Ć";s:3:"ć";s:2:"ć";s:3:"Ĉ";s:2:"Ĉ";s:3:"ĉ";s:2:"ĉ";s:3:"Ċ";s:2:"Ċ";s:3:"ċ";s:2:"ċ";s:3:"Č";s:2:"Č";s:3:"č";s:2:"č";s:3:"Ď";s:2:"Ď";s:3:"ď";s:2:"ď";s:3:"Ē";s:2:"Ē";s:3:"ē";s:2:"ē";s:3:"Ĕ";s:2:"Ĕ";s:3:"ĕ";s:2:"ĕ";s:3:"Ė";s:2:"Ė";s:3:"ė";s:2:"ė";s:3:"Ę";s:2:"Ę";s:3:"ę";s:2:"ę";s:3:"Ě";s:2:"Ě";s:3:"ě";s:2:"ě";s:3:"Ĝ";s:2:"Ĝ";s:3:"ĝ";s:2:"ĝ";s:3:"Ğ";s:2:"Ğ";s:3:"ğ";s:2:"ğ";s:3:"Ġ";s:2:"Ġ";s:3:"ġ";s:2:"ġ";s:3:"Ģ";s:2:"Ģ";s:3:"ģ";s:2:"ģ";s:3:"Ĥ";s:2:"Ĥ";s:3:"ĥ";s:2:"ĥ";s:3:"Ĩ";s:2:"Ĩ";s:3:"ĩ";s:2:"ĩ";s:3:"Ī";s:2:"Ī";s:3:"ī";s:2:"ī";s:3:"Ĭ";s:2:"Ĭ";s:3:"ĭ";s:2:"ĭ";s:3:"Į";s:2:"Į";s:3:"į";s:2:"į";s:3:"İ";s:2:"İ";s:3:"Ĵ";s:2:"Ĵ";s:3:"ĵ";s:2:"ĵ";s:3:"Ķ";s:2:"Ķ";s:3:"ķ";s:2:"ķ";s:3:"Ĺ";s:2:"Ĺ";s:3:"ĺ";s:2:"ĺ";s:3:"Ļ";s:2:"Ļ";s:3:"ļ";s:2:"ļ";s:3:"Ľ";s:2:"Ľ";s:3:"ľ";s:2:"ľ";s:3:"Ń";s:2:"Ń";s:3:"ń";s:2:"ń";s:3:"Ņ";s:2:"Ņ";s:3:"ņ";s:2:"ņ";s:3:"Ň";s:2:"Ň";s:3:"ň";s:2:"ň";s:3:"Ō";s:2:"Ō";s:3:"ō";s:2:"ō";s:3:"Ŏ";s:2:"Ŏ";s:3:"ŏ";s:2:"ŏ";s:3:"Ő";s:2:"Ő";s:3:"ő";s:2:"ő";s:3:"Ŕ";s:2:"Ŕ";s:3:"ŕ";s:2:"ŕ";s:3:"Ŗ";s:2:"Ŗ";s:3:"ŗ";s:2:"ŗ";s:3:"Ř";s:2:"Ř";s:3:"ř";s:2:"ř";s:3:"Ś";s:2:"Ś";s:3:"ś";s:2:"ś";s:3:"Ŝ";s:2:"Ŝ";s:3:"ŝ";s:2:"ŝ";s:3:"Ş";s:2:"Ş";s:3:"ş";s:2:"ş";s:3:"Š";s:2:"Š";s:3:"š";s:2:"š";s:3:"Ţ";s:2:"Ţ";s:3:"ţ";s:2:"ţ";s:3:"Ť";s:2:"Ť";s:3:"ť";s:2:"ť";s:3:"Ũ";s:2:"Ũ";s:3:"ũ";s:2:"ũ";s:3:"Ū";s:2:"Ū";s:3:"ū";s:2:"ū";s:3:"Ŭ";s:2:"Ŭ";s:3:"ŭ";s:2:"ŭ";s:3:"Ů";s:2:"Ů";s:3:"ů";s:2:"ů";s:3:"Ű";s:2:"Ű";s:3:"ű";s:2:"ű";s:3:"Ų";s:2:"Ų";s:3:"ų";s:2:"ų";s:3:"Ŵ";s:2:"Ŵ";s:3:"ŵ";s:2:"ŵ";s:3:"Ŷ";s:2:"Ŷ";s:3:"ŷ";s:2:"ŷ";s:3:"Ÿ";s:2:"Ÿ";s:3:"Ź";s:2:"Ź";s:3:"ź";s:2:"ź";s:3:"Ż";s:2:"Ż";s:3:"ż";s:2:"ż";s:3:"Ž";s:2:"Ž";s:3:"ž";s:2:"ž";s:3:"Ơ";s:2:"Ơ";s:3:"ơ";s:2:"ơ";s:3:"Ư";s:2:"Ư";s:3:"ư";s:2:"ư";s:3:"Ǎ";s:2:"Ǎ";s:3:"ǎ";s:2:"ǎ";s:3:"Ǐ";s:2:"Ǐ";s:3:"ǐ";s:2:"ǐ";s:3:"Ǒ";s:2:"Ǒ";s:3:"ǒ";s:2:"ǒ";s:3:"Ǔ";s:2:"Ǔ";s:3:"ǔ";s:2:"ǔ";s:4:"Ǖ";s:2:"Ǖ";s:4:"ǖ";s:2:"ǖ";s:4:"Ǘ";s:2:"Ǘ";s:4:"ǘ";s:2:"ǘ";s:4:"Ǚ";s:2:"Ǚ";s:4:"ǚ";s:2:"ǚ";s:4:"Ǜ";s:2:"Ǜ";s:4:"ǜ";s:2:"ǜ";s:4:"Ǟ";s:2:"Ǟ";s:4:"ǟ";s:2:"ǟ";s:4:"Ǡ";s:2:"Ǡ";s:4:"ǡ";s:2:"ǡ";s:4:"Ǣ";s:2:"Ǣ";s:4:"ǣ";s:2:"ǣ";s:3:"Ǧ";s:2:"Ǧ";s:3:"ǧ";s:2:"ǧ";s:3:"Ǩ";s:2:"Ǩ";s:3:"ǩ";s:2:"ǩ";s:3:"Ǫ";s:2:"Ǫ";s:3:"ǫ";s:2:"ǫ";s:4:"Ǭ";s:2:"Ǭ";s:4:"ǭ";s:2:"ǭ";s:4:"Ǯ";s:2:"Ǯ";s:4:"ǯ";s:2:"ǯ";s:3:"ǰ";s:2:"ǰ";s:3:"Ǵ";s:2:"Ǵ";s:3:"ǵ";s:2:"ǵ";s:3:"Ǹ";s:2:"Ǹ";s:3:"ǹ";s:2:"ǹ";s:4:"Ǻ";s:2:"Ǻ";s:4:"ǻ";s:2:"ǻ";s:4:"Ǽ";s:2:"Ǽ";s:4:"ǽ";s:2:"ǽ";s:4:"Ǿ";s:2:"Ǿ";s:4:"ǿ";s:2:"ǿ";s:3:"Ȁ";s:2:"Ȁ";s:3:"ȁ";s:2:"ȁ";s:3:"Ȃ";s:2:"Ȃ";s:3:"ȃ";s:2:"ȃ";s:3:"Ȅ";s:2:"Ȅ";s:3:"ȅ";s:2:"ȅ";s:3:"Ȇ";s:2:"Ȇ";s:3:"ȇ";s:2:"ȇ";s:3:"Ȉ";s:2:"Ȉ";s:3:"ȉ";s:2:"ȉ";s:3:"Ȋ";s:2:"Ȋ";s:3:"ȋ";s:2:"ȋ";s:3:"Ȍ";s:2:"Ȍ";s:3:"ȍ";s:2:"ȍ";s:3:"Ȏ";s:2:"Ȏ";s:3:"ȏ";s:2:"ȏ";s:3:"Ȑ";s:2:"Ȑ";s:3:"ȑ";s:2:"ȑ";s:3:"Ȓ";s:2:"Ȓ";s:3:"ȓ";s:2:"ȓ";s:3:"Ȕ";s:2:"Ȕ";s:3:"ȕ";s:2:"ȕ";s:3:"Ȗ";s:2:"Ȗ";s:3:"ȗ";s:2:"ȗ";s:3:"Ș";s:2:"Ș";s:3:"ș";s:2:"ș";s:3:"Ț";s:2:"Ț";s:3:"ț";s:2:"ț";s:3:"Ȟ";s:2:"Ȟ";s:3:"ȟ";s:2:"ȟ";s:3:"Ȧ";s:2:"Ȧ";s:3:"ȧ";s:2:"ȧ";s:3:"Ȩ";s:2:"Ȩ";s:3:"ȩ";s:2:"ȩ";s:4:"Ȫ";s:2:"Ȫ";s:4:"ȫ";s:2:"ȫ";s:4:"Ȭ";s:2:"Ȭ";s:4:"ȭ";s:2:"ȭ";s:3:"Ȯ";s:2:"Ȯ";s:3:"ȯ";s:2:"ȯ";s:4:"Ȱ";s:2:"Ȱ";s:4:"ȱ";s:2:"ȱ";s:3:"Ȳ";s:2:"Ȳ";s:3:"ȳ";s:2:"ȳ";s:2:"̀";s:2:"̀";s:2:"́";s:2:"́";s:2:"̓";s:2:"̓";s:4:"̈́";s:2:"̈́";s:2:"ʹ";s:2:"ʹ";s:1:";";s:2:";";s:4:"΅";s:2:"΅";s:4:"Ά";s:2:"Ά";s:2:"·";s:2:"·";s:4:"Έ";s:2:"Έ";s:4:"Ή";s:2:"Ή";s:4:"Ί";s:2:"Ί";s:4:"Ό";s:2:"Ό";s:4:"Ύ";s:2:"Ύ";s:4:"Ώ";s:2:"Ώ";s:4:"ΐ";s:2:"ΐ";s:4:"Ϊ";s:2:"Ϊ";s:4:"Ϋ";s:2:"Ϋ";s:4:"ά";s:2:"ά";s:4:"έ";s:2:"έ";s:4:"ή";s:2:"ή";s:4:"ί";s:2:"ί";s:4:"ΰ";s:2:"ΰ";s:4:"ϊ";s:2:"ϊ";s:4:"ϋ";s:2:"ϋ";s:4:"ό";s:2:"ό";s:4:"ύ";s:2:"ύ";s:4:"ώ";s:2:"ώ";s:4:"ϓ";s:2:"ϓ";s:4:"ϔ";s:2:"ϔ";s:4:"Ѐ";s:2:"Ѐ";s:4:"Ё";s:2:"Ё";s:4:"Ѓ";s:2:"Ѓ";s:4:"Ї";s:2:"Ї";s:4:"Ќ";s:2:"Ќ";s:4:"Ѝ";s:2:"Ѝ";s:4:"Ў";s:2:"Ў";s:4:"Й";s:2:"Й";s:4:"й";s:2:"й";s:4:"ѐ";s:2:"ѐ";s:4:"ё";s:2:"ё";s:4:"ѓ";s:2:"ѓ";s:4:"ї";s:2:"ї";s:4:"ќ";s:2:"ќ";s:4:"ѝ";s:2:"ѝ";s:4:"ў";s:2:"ў";s:4:"Ѷ";s:2:"Ѷ";s:4:"ѷ";s:2:"ѷ";s:4:"Ӂ";s:2:"Ӂ";s:4:"ӂ";s:2:"ӂ";s:4:"Ӑ";s:2:"Ӑ";s:4:"ӑ";s:2:"ӑ";s:4:"Ӓ";s:2:"Ӓ";s:4:"ӓ";s:2:"ӓ";s:4:"Ӗ";s:2:"Ӗ";s:4:"ӗ";s:2:"ӗ";s:4:"Ӛ";s:2:"Ӛ";s:4:"ӛ";s:2:"ӛ";s:4:"Ӝ";s:2:"Ӝ";s:4:"ӝ";s:2:"ӝ";s:4:"Ӟ";s:2:"Ӟ";s:4:"ӟ";s:2:"ӟ";s:4:"Ӣ";s:2:"Ӣ";s:4:"ӣ";s:2:"ӣ";s:4:"Ӥ";s:2:"Ӥ";s:4:"ӥ";s:2:"ӥ";s:4:"Ӧ";s:2:"Ӧ";s:4:"ӧ";s:2:"ӧ";s:4:"Ӫ";s:2:"Ӫ";s:4:"ӫ";s:2:"ӫ";s:4:"Ӭ";s:2:"Ӭ";s:4:"ӭ";s:2:"ӭ";s:4:"Ӯ";s:2:"Ӯ";s:4:"ӯ";s:2:"ӯ";s:4:"Ӱ";s:2:"Ӱ";s:4:"ӱ";s:2:"ӱ";s:4:"Ӳ";s:2:"Ӳ";s:4:"ӳ";s:2:"ӳ";s:4:"Ӵ";s:2:"Ӵ";s:4:"ӵ";s:2:"ӵ";s:4:"Ӹ";s:2:"Ӹ";s:4:"ӹ";s:2:"ӹ";s:4:"آ";s:2:"آ";s:4:"أ";s:2:"أ";s:4:"ؤ";s:2:"ؤ";s:4:"إ";s:2:"إ";s:4:"ئ";s:2:"ئ";s:4:"ۀ";s:2:"ۀ";s:4:"ۂ";s:2:"ۂ";s:4:"ۓ";s:2:"ۓ";s:6:"ऩ";s:3:"ऩ";s:6:"ऱ";s:3:"ऱ";s:6:"ऴ";s:3:"ऴ";s:6:"ো";s:3:"ো";s:6:"ৌ";s:3:"ৌ";s:6:"ୈ";s:3:"ୈ";s:6:"ୋ";s:3:"ୋ";s:6:"ୌ";s:3:"ୌ";s:6:"ஔ";s:3:"ஔ";s:6:"ொ";s:3:"ொ";s:6:"ோ";s:3:"ோ";s:6:"ௌ";s:3:"ௌ";s:6:"ై";s:3:"ై";s:6:"ೀ";s:3:"ೀ";s:6:"ೇ";s:3:"ೇ";s:6:"ೈ";s:3:"ೈ";s:6:"ೊ";s:3:"ೊ";s:6:"ೋ";s:3:"ೋ";s:6:"ൊ";s:3:"ൊ";s:6:"ോ";s:3:"ോ";s:6:"ൌ";s:3:"ൌ";s:6:"ේ";s:3:"ේ";s:6:"ො";s:3:"ො";s:6:"ෝ";s:3:"ෝ";s:6:"ෞ";s:3:"ෞ";s:6:"ཱི";s:3:"ཱི";s:6:"ཱུ";s:3:"ཱུ";s:6:"ཱྀ";s:3:"ཱྀ";s:6:"ဦ";s:3:"ဦ";s:6:"ᬆ";s:3:"ᬆ";s:6:"ᬈ";s:3:"ᬈ";s:6:"ᬊ";s:3:"ᬊ";s:6:"ᬌ";s:3:"ᬌ";s:6:"ᬎ";s:3:"ᬎ";s:6:"ᬒ";s:3:"ᬒ";s:6:"ᬻ";s:3:"ᬻ";s:6:"ᬽ";s:3:"ᬽ";s:6:"ᭀ";s:3:"ᭀ";s:6:"ᭁ";s:3:"ᭁ";s:6:"ᭃ";s:3:"ᭃ";s:3:"Ḁ";s:3:"Ḁ";s:3:"ḁ";s:3:"ḁ";s:3:"Ḃ";s:3:"Ḃ";s:3:"ḃ";s:3:"ḃ";s:3:"Ḅ";s:3:"Ḅ";s:3:"ḅ";s:3:"ḅ";s:3:"Ḇ";s:3:"Ḇ";s:3:"ḇ";s:3:"ḇ";s:4:"Ḉ";s:3:"Ḉ";s:4:"ḉ";s:3:"ḉ";s:3:"Ḋ";s:3:"Ḋ";s:3:"ḋ";s:3:"ḋ";s:3:"Ḍ";s:3:"Ḍ";s:3:"ḍ";s:3:"ḍ";s:3:"Ḏ";s:3:"Ḏ";s:3:"ḏ";s:3:"ḏ";s:3:"Ḑ";s:3:"Ḑ";s:3:"ḑ";s:3:"ḑ";s:3:"Ḓ";s:3:"Ḓ";s:3:"ḓ";s:3:"ḓ";s:4:"Ḕ";s:3:"Ḕ";s:4:"ḕ";s:3:"ḕ";s:4:"Ḗ";s:3:"Ḗ";s:4:"ḗ";s:3:"ḗ";s:3:"Ḙ";s:3:"Ḙ";s:3:"ḙ";s:3:"ḙ";s:3:"Ḛ";s:3:"Ḛ";s:3:"ḛ";s:3:"ḛ";s:4:"Ḝ";s:3:"Ḝ";s:4:"ḝ";s:3:"ḝ";s:3:"Ḟ";s:3:"Ḟ";s:3:"ḟ";s:3:"ḟ";s:3:"Ḡ";s:3:"Ḡ";s:3:"ḡ";s:3:"ḡ";s:3:"Ḣ";s:3:"Ḣ";s:3:"ḣ";s:3:"ḣ";s:3:"Ḥ";s:3:"Ḥ";s:3:"ḥ";s:3:"ḥ";s:3:"Ḧ";s:3:"Ḧ";s:3:"ḧ";s:3:"ḧ";s:3:"Ḩ";s:3:"Ḩ";s:3:"ḩ";s:3:"ḩ";s:3:"Ḫ";s:3:"Ḫ";s:3:"ḫ";s:3:"ḫ";s:3:"Ḭ";s:3:"Ḭ";s:3:"ḭ";s:3:"ḭ";s:4:"Ḯ";s:3:"Ḯ";s:4:"ḯ";s:3:"ḯ";s:3:"Ḱ";s:3:"Ḱ";s:3:"ḱ";s:3:"ḱ";s:3:"Ḳ";s:3:"Ḳ";s:3:"ḳ";s:3:"ḳ";s:3:"Ḵ";s:3:"Ḵ";s:3:"ḵ";s:3:"ḵ";s:3:"Ḷ";s:3:"Ḷ";s:3:"ḷ";s:3:"ḷ";s:5:"Ḹ";s:3:"Ḹ";s:5:"ḹ";s:3:"ḹ";s:3:"Ḻ";s:3:"Ḻ";s:3:"ḻ";s:3:"ḻ";s:3:"Ḽ";s:3:"Ḽ";s:3:"ḽ";s:3:"ḽ";s:3:"Ḿ";s:3:"Ḿ";s:3:"ḿ";s:3:"ḿ";s:3:"Ṁ";s:3:"Ṁ";s:3:"ṁ";s:3:"ṁ";s:3:"Ṃ";s:3:"Ṃ";s:3:"ṃ";s:3:"ṃ";s:3:"Ṅ";s:3:"Ṅ";s:3:"ṅ";s:3:"ṅ";s:3:"Ṇ";s:3:"Ṇ";s:3:"ṇ";s:3:"ṇ";s:3:"Ṉ";s:3:"Ṉ";s:3:"ṉ";s:3:"ṉ";s:3:"Ṋ";s:3:"Ṋ";s:3:"ṋ";s:3:"ṋ";s:4:"Ṍ";s:3:"Ṍ";s:4:"ṍ";s:3:"ṍ";s:4:"Ṏ";s:3:"Ṏ";s:4:"ṏ";s:3:"ṏ";s:4:"Ṑ";s:3:"Ṑ";s:4:"ṑ";s:3:"ṑ";s:4:"Ṓ";s:3:"Ṓ";s:4:"ṓ";s:3:"ṓ";s:3:"Ṕ";s:3:"Ṕ";s:3:"ṕ";s:3:"ṕ";s:3:"Ṗ";s:3:"Ṗ";s:3:"ṗ";s:3:"ṗ";s:3:"Ṙ";s:3:"Ṙ";s:3:"ṙ";s:3:"ṙ";s:3:"Ṛ";s:3:"Ṛ";s:3:"ṛ";s:3:"ṛ";s:5:"Ṝ";s:3:"Ṝ";s:5:"ṝ";s:3:"ṝ";s:3:"Ṟ";s:3:"Ṟ";s:3:"ṟ";s:3:"ṟ";s:3:"Ṡ";s:3:"Ṡ";s:3:"ṡ";s:3:"ṡ";s:3:"Ṣ";s:3:"Ṣ";s:3:"ṣ";s:3:"ṣ";s:4:"Ṥ";s:3:"Ṥ";s:4:"ṥ";s:3:"ṥ";s:4:"Ṧ";s:3:"Ṧ";s:4:"ṧ";s:3:"ṧ";s:5:"Ṩ";s:3:"Ṩ";s:5:"ṩ";s:3:"ṩ";s:3:"Ṫ";s:3:"Ṫ";s:3:"ṫ";s:3:"ṫ";s:3:"Ṭ";s:3:"Ṭ";s:3:"ṭ";s:3:"ṭ";s:3:"Ṯ";s:3:"Ṯ";s:3:"ṯ";s:3:"ṯ";s:3:"Ṱ";s:3:"Ṱ";s:3:"ṱ";s:3:"ṱ";s:3:"Ṳ";s:3:"Ṳ";s:3:"ṳ";s:3:"ṳ";s:3:"Ṵ";s:3:"Ṵ";s:3:"ṵ";s:3:"ṵ";s:3:"Ṷ";s:3:"Ṷ";s:3:"ṷ";s:3:"ṷ";s:4:"Ṹ";s:3:"Ṹ";s:4:"ṹ";s:3:"ṹ";s:4:"Ṻ";s:3:"Ṻ";s:4:"ṻ";s:3:"ṻ";s:3:"Ṽ";s:3:"Ṽ";s:3:"ṽ";s:3:"ṽ";s:3:"Ṿ";s:3:"Ṿ";s:3:"ṿ";s:3:"ṿ";s:3:"Ẁ";s:3:"Ẁ";s:3:"ẁ";s:3:"ẁ";s:3:"Ẃ";s:3:"Ẃ";s:3:"ẃ";s:3:"ẃ";s:3:"Ẅ";s:3:"Ẅ";s:3:"ẅ";s:3:"ẅ";s:3:"Ẇ";s:3:"Ẇ";s:3:"ẇ";s:3:"ẇ";s:3:"Ẉ";s:3:"Ẉ";s:3:"ẉ";s:3:"ẉ";s:3:"Ẋ";s:3:"Ẋ";s:3:"ẋ";s:3:"ẋ";s:3:"Ẍ";s:3:"Ẍ";s:3:"ẍ";s:3:"ẍ";s:3:"Ẏ";s:3:"Ẏ";s:3:"ẏ";s:3:"ẏ";s:3:"Ẑ";s:3:"Ẑ";s:3:"ẑ";s:3:"ẑ";s:3:"Ẓ";s:3:"Ẓ";s:3:"ẓ";s:3:"ẓ";s:3:"Ẕ";s:3:"Ẕ";s:3:"ẕ";s:3:"ẕ";s:3:"ẖ";s:3:"ẖ";s:3:"ẗ";s:3:"ẗ";s:3:"ẘ";s:3:"ẘ";s:3:"ẙ";s:3:"ẙ";s:4:"ẛ";s:3:"ẛ";s:3:"Ạ";s:3:"Ạ";s:3:"ạ";s:3:"ạ";s:3:"Ả";s:3:"Ả";s:3:"ả";s:3:"ả";s:4:"Ấ";s:3:"Ấ";s:4:"ấ";s:3:"ấ";s:4:"Ầ";s:3:"Ầ";s:4:"ầ";s:3:"ầ";s:4:"Ẩ";s:3:"Ẩ";s:4:"ẩ";s:3:"ẩ";s:4:"Ẫ";s:3:"Ẫ";s:4:"ẫ";s:3:"ẫ";s:5:"Ậ";s:3:"Ậ";s:5:"ậ";s:3:"ậ";s:4:"Ắ";s:3:"Ắ";s:4:"ắ";s:3:"ắ";s:4:"Ằ";s:3:"Ằ";s:4:"ằ";s:3:"ằ";s:4:"Ẳ";s:3:"Ẳ";s:4:"ẳ";s:3:"ẳ";s:4:"Ẵ";s:3:"Ẵ";s:4:"ẵ";s:3:"ẵ";s:5:"Ặ";s:3:"Ặ";s:5:"ặ";s:3:"ặ";s:3:"Ẹ";s:3:"Ẹ";s:3:"ẹ";s:3:"ẹ";s:3:"Ẻ";s:3:"Ẻ";s:3:"ẻ";s:3:"ẻ";s:3:"Ẽ";s:3:"Ẽ";s:3:"ẽ";s:3:"ẽ";s:4:"Ế";s:3:"Ế";s:4:"ế";s:3:"ế";s:4:"Ề";s:3:"Ề";s:4:"ề";s:3:"ề";s:4:"Ể";s:3:"Ể";s:4:"ể";s:3:"ể";s:4:"Ễ";s:3:"Ễ";s:4:"ễ";s:3:"ễ";s:5:"Ệ";s:3:"Ệ";s:5:"ệ";s:3:"ệ";s:3:"Ỉ";s:3:"Ỉ";s:3:"ỉ";s:3:"ỉ";s:3:"Ị";s:3:"Ị";s:3:"ị";s:3:"ị";s:3:"Ọ";s:3:"Ọ";s:3:"ọ";s:3:"ọ";s:3:"Ỏ";s:3:"Ỏ";s:3:"ỏ";s:3:"ỏ";s:4:"Ố";s:3:"Ố";s:4:"ố";s:3:"ố";s:4:"Ồ";s:3:"Ồ";s:4:"ồ";s:3:"ồ";s:4:"Ổ";s:3:"Ổ";s:4:"ổ";s:3:"ổ";s:4:"Ỗ";s:3:"Ỗ";s:4:"ỗ";s:3:"ỗ";s:5:"Ộ";s:3:"Ộ";s:5:"ộ";s:3:"ộ";s:4:"Ớ";s:3:"Ớ";s:4:"ớ";s:3:"ớ";s:4:"Ờ";s:3:"Ờ";s:4:"ờ";s:3:"ờ";s:4:"Ở";s:3:"Ở";s:4:"ở";s:3:"ở";s:4:"Ỡ";s:3:"Ỡ";s:4:"ỡ";s:3:"ỡ";s:4:"Ợ";s:3:"Ợ";s:4:"ợ";s:3:"ợ";s:3:"Ụ";s:3:"Ụ";s:3:"ụ";s:3:"ụ";s:3:"Ủ";s:3:"Ủ";s:3:"ủ";s:3:"ủ";s:4:"Ứ";s:3:"Ứ";s:4:"ứ";s:3:"ứ";s:4:"Ừ";s:3:"Ừ";s:4:"ừ";s:3:"ừ";s:4:"Ử";s:3:"Ử";s:4:"ử";s:3:"ử";s:4:"Ữ";s:3:"Ữ";s:4:"ữ";s:3:"ữ";s:4:"Ự";s:3:"Ự";s:4:"ự";s:3:"ự";s:3:"Ỳ";s:3:"Ỳ";s:3:"ỳ";s:3:"ỳ";s:3:"Ỵ";s:3:"Ỵ";s:3:"ỵ";s:3:"ỵ";s:3:"Ỷ";s:3:"Ỷ";s:3:"ỷ";s:3:"ỷ";s:3:"Ỹ";s:3:"Ỹ";s:3:"ỹ";s:3:"ỹ";s:4:"ἀ";s:3:"ἀ";s:4:"ἁ";s:3:"ἁ";s:5:"ἂ";s:3:"ἂ";s:5:"ἃ";s:3:"ἃ";s:5:"ἄ";s:3:"ἄ";s:5:"ἅ";s:3:"ἅ";s:5:"ἆ";s:3:"ἆ";s:5:"ἇ";s:3:"ἇ";s:4:"Ἀ";s:3:"Ἀ";s:4:"Ἁ";s:3:"Ἁ";s:5:"Ἂ";s:3:"Ἂ";s:5:"Ἃ";s:3:"Ἃ";s:5:"Ἄ";s:3:"Ἄ";s:5:"Ἅ";s:3:"Ἅ";s:5:"Ἆ";s:3:"Ἆ";s:5:"Ἇ";s:3:"Ἇ";s:4:"ἐ";s:3:"ἐ";s:4:"ἑ";s:3:"ἑ";s:5:"ἒ";s:3:"ἒ";s:5:"ἓ";s:3:"ἓ";s:5:"ἔ";s:3:"ἔ";s:5:"ἕ";s:3:"ἕ";s:4:"Ἐ";s:3:"Ἐ";s:4:"Ἑ";s:3:"Ἑ";s:5:"Ἒ";s:3:"Ἒ";s:5:"Ἓ";s:3:"Ἓ";s:5:"Ἔ";s:3:"Ἔ";s:5:"Ἕ";s:3:"Ἕ";s:4:"ἠ";s:3:"ἠ";s:4:"ἡ";s:3:"ἡ";s:5:"ἢ";s:3:"ἢ";s:5:"ἣ";s:3:"ἣ";s:5:"ἤ";s:3:"ἤ";s:5:"ἥ";s:3:"ἥ";s:5:"ἦ";s:3:"ἦ";s:5:"ἧ";s:3:"ἧ";s:4:"Ἠ";s:3:"Ἠ";s:4:"Ἡ";s:3:"Ἡ";s:5:"Ἢ";s:3:"Ἢ";s:5:"Ἣ";s:3:"Ἣ";s:5:"Ἤ";s:3:"Ἤ";s:5:"Ἥ";s:3:"Ἥ";s:5:"Ἦ";s:3:"Ἦ";s:5:"Ἧ";s:3:"Ἧ";s:4:"ἰ";s:3:"ἰ";s:4:"ἱ";s:3:"ἱ";s:5:"ἲ";s:3:"ἲ";s:5:"ἳ";s:3:"ἳ";s:5:"ἴ";s:3:"ἴ";s:5:"ἵ";s:3:"ἵ";s:5:"ἶ";s:3:"ἶ";s:5:"ἷ";s:3:"ἷ";s:4:"Ἰ";s:3:"Ἰ";s:4:"Ἱ";s:3:"Ἱ";s:5:"Ἲ";s:3:"Ἲ";s:5:"Ἳ";s:3:"Ἳ";s:5:"Ἴ";s:3:"Ἴ";s:5:"Ἵ";s:3:"Ἵ";s:5:"Ἶ";s:3:"Ἶ";s:5:"Ἷ";s:3:"Ἷ";s:4:"ὀ";s:3:"ὀ";s:4:"ὁ";s:3:"ὁ";s:5:"ὂ";s:3:"ὂ";s:5:"ὃ";s:3:"ὃ";s:5:"ὄ";s:3:"ὄ";s:5:"ὅ";s:3:"ὅ";s:4:"Ὀ";s:3:"Ὀ";s:4:"Ὁ";s:3:"Ὁ";s:5:"Ὂ";s:3:"Ὂ";s:5:"Ὃ";s:3:"Ὃ";s:5:"Ὄ";s:3:"Ὄ";s:5:"Ὅ";s:3:"Ὅ";s:4:"ὐ";s:3:"ὐ";s:4:"ὑ";s:3:"ὑ";s:5:"ὒ";s:3:"ὒ";s:5:"ὓ";s:3:"ὓ";s:5:"ὔ";s:3:"ὔ";s:5:"ὕ";s:3:"ὕ";s:5:"ὖ";s:3:"ὖ";s:5:"ὗ";s:3:"ὗ";s:4:"Ὑ";s:3:"Ὑ";s:5:"Ὓ";s:3:"Ὓ";s:5:"Ὕ";s:3:"Ὕ";s:5:"Ὗ";s:3:"Ὗ";s:4:"ὠ";s:3:"ὠ";s:4:"ὡ";s:3:"ὡ";s:5:"ὢ";s:3:"ὢ";s:5:"ὣ";s:3:"ὣ";s:5:"ὤ";s:3:"ὤ";s:5:"ὥ";s:3:"ὥ";s:5:"ὦ";s:3:"ὦ";s:5:"ὧ";s:3:"ὧ";s:4:"Ὠ";s:3:"Ὠ";s:4:"Ὡ";s:3:"Ὡ";s:5:"Ὢ";s:3:"Ὢ";s:5:"Ὣ";s:3:"Ὣ";s:5:"Ὤ";s:3:"Ὤ";s:5:"Ὥ";s:3:"Ὥ";s:5:"Ὦ";s:3:"Ὦ";s:5:"Ὧ";s:3:"Ὧ";s:4:"ὰ";s:3:"ὰ";s:2:"ά";s:3:"ά";s:4:"ὲ";s:3:"ὲ";s:2:"έ";s:3:"έ";s:4:"ὴ";s:3:"ὴ";s:2:"ή";s:3:"ή";s:4:"ὶ";s:3:"ὶ";s:2:"ί";s:3:"ί";s:4:"ὸ";s:3:"ὸ";s:2:"ό";s:3:"ό";s:4:"ὺ";s:3:"ὺ";s:2:"ύ";s:3:"ύ";s:4:"ὼ";s:3:"ὼ";s:2:"ώ";s:3:"ώ";s:5:"ᾀ";s:3:"ᾀ";s:5:"ᾁ";s:3:"ᾁ";s:5:"ᾂ";s:3:"ᾂ";s:5:"ᾃ";s:3:"ᾃ";s:5:"ᾄ";s:3:"ᾄ";s:5:"ᾅ";s:3:"ᾅ";s:5:"ᾆ";s:3:"ᾆ";s:5:"ᾇ";s:3:"ᾇ";s:5:"ᾈ";s:3:"ᾈ";s:5:"ᾉ";s:3:"ᾉ";s:5:"ᾊ";s:3:"ᾊ";s:5:"ᾋ";s:3:"ᾋ";s:5:"ᾌ";s:3:"ᾌ";s:5:"ᾍ";s:3:"ᾍ";s:5:"ᾎ";s:3:"ᾎ";s:5:"ᾏ";s:3:"ᾏ";s:5:"ᾐ";s:3:"ᾐ";s:5:"ᾑ";s:3:"ᾑ";s:5:"ᾒ";s:3:"ᾒ";s:5:"ᾓ";s:3:"ᾓ";s:5:"ᾔ";s:3:"ᾔ";s:5:"ᾕ";s:3:"ᾕ";s:5:"ᾖ";s:3:"ᾖ";s:5:"ᾗ";s:3:"ᾗ";s:5:"ᾘ";s:3:"ᾘ";s:5:"ᾙ";s:3:"ᾙ";s:5:"ᾚ";s:3:"ᾚ";s:5:"ᾛ";s:3:"ᾛ";s:5:"ᾜ";s:3:"ᾜ";s:5:"ᾝ";s:3:"ᾝ";s:5:"ᾞ";s:3:"ᾞ";s:5:"ᾟ";s:3:"ᾟ";s:5:"ᾠ";s:3:"ᾠ";s:5:"ᾡ";s:3:"ᾡ";s:5:"ᾢ";s:3:"ᾢ";s:5:"ᾣ";s:3:"ᾣ";s:5:"ᾤ";s:3:"ᾤ";s:5:"ᾥ";s:3:"ᾥ";s:5:"ᾦ";s:3:"ᾦ";s:5:"ᾧ";s:3:"ᾧ";s:5:"ᾨ";s:3:"ᾨ";s:5:"ᾩ";s:3:"ᾩ";s:5:"ᾪ";s:3:"ᾪ";s:5:"ᾫ";s:3:"ᾫ";s:5:"ᾬ";s:3:"ᾬ";s:5:"ᾭ";s:3:"ᾭ";s:5:"ᾮ";s:3:"ᾮ";s:5:"ᾯ";s:3:"ᾯ";s:4:"ᾰ";s:3:"ᾰ";s:4:"ᾱ";s:3:"ᾱ";s:5:"ᾲ";s:3:"ᾲ";s:4:"ᾳ";s:3:"ᾳ";s:4:"ᾴ";s:3:"ᾴ";s:4:"ᾶ";s:3:"ᾶ";s:5:"ᾷ";s:3:"ᾷ";s:4:"Ᾰ";s:3:"Ᾰ";s:4:"Ᾱ";s:3:"Ᾱ";s:4:"Ὰ";s:3:"Ὰ";s:2:"Ά";s:3:"Ά";s:4:"ᾼ";s:3:"ᾼ";s:2:"ι";s:3:"ι";s:4:"῁";s:3:"῁";s:5:"ῂ";s:3:"ῂ";s:4:"ῃ";s:3:"ῃ";s:4:"ῄ";s:3:"ῄ";s:4:"ῆ";s:3:"ῆ";s:5:"ῇ";s:3:"ῇ";s:4:"Ὲ";s:3:"Ὲ";s:2:"Έ";s:3:"Έ";s:4:"Ὴ";s:3:"Ὴ";s:2:"Ή";s:3:"Ή";s:4:"ῌ";s:3:"ῌ";s:5:"῍";s:3:"῍";s:5:"῎";s:3:"῎";s:5:"῏";s:3:"῏";s:4:"ῐ";s:3:"ῐ";s:4:"ῑ";s:3:"ῑ";s:4:"ῒ";s:3:"ῒ";s:2:"ΐ";s:3:"ΐ";s:4:"ῖ";s:3:"ῖ";s:4:"ῗ";s:3:"ῗ";s:4:"Ῐ";s:3:"Ῐ";s:4:"Ῑ";s:3:"Ῑ";s:4:"Ὶ";s:3:"Ὶ";s:2:"Ί";s:3:"Ί";s:5:"῝";s:3:"῝";s:5:"῞";s:3:"῞";s:5:"῟";s:3:"῟";s:4:"ῠ";s:3:"ῠ";s:4:"ῡ";s:3:"ῡ";s:4:"ῢ";s:3:"ῢ";s:2:"ΰ";s:3:"ΰ";s:4:"ῤ";s:3:"ῤ";s:4:"ῥ";s:3:"ῥ";s:4:"ῦ";s:3:"ῦ";s:4:"ῧ";s:3:"ῧ";s:4:"Ῠ";s:3:"Ῠ";s:4:"Ῡ";s:3:"Ῡ";s:4:"Ὺ";s:3:"Ὺ";s:2:"Ύ";s:3:"Ύ";s:4:"Ῥ";s:3:"Ῥ";s:4:"῭";s:3:"῭";s:2:"΅";s:3:"΅";s:1:"`";s:3:"`";s:5:"ῲ";s:3:"ῲ";s:4:"ῳ";s:3:"ῳ";s:4:"ῴ";s:3:"ῴ";s:4:"ῶ";s:3:"ῶ";s:5:"ῷ";s:3:"ῷ";s:4:"Ὸ";s:3:"Ὸ";s:2:"Ό";s:3:"Ό";s:4:"Ὼ";s:3:"Ὼ";s:2:"Ώ";s:3:"Ώ";s:4:"ῼ";s:3:"ῼ";s:2:"´";s:3:"´";s:3:" ";s:3:" ";s:3:" ";s:3:" ";s:2:"Ω";s:3:"Ω";s:1:"K";s:3:"K";s:2:"Å";s:3:"Å";s:5:"↚";s:3:"↚";s:5:"↛";s:3:"↛";s:5:"↮";s:3:"↮";s:5:"⇍";s:3:"⇍";s:5:"⇎";s:3:"⇎";s:5:"⇏";s:3:"⇏";s:5:"∄";s:3:"∄";s:5:"∉";s:3:"∉";s:5:"∌";s:3:"∌";s:5:"∤";s:3:"∤";s:5:"∦";s:3:"∦";s:5:"≁";s:3:"≁";s:5:"≄";s:3:"≄";s:5:"≇";s:3:"≇";s:5:"≉";s:3:"≉";s:3:"≠";s:3:"≠";s:5:"≢";s:3:"≢";s:5:"≭";s:3:"≭";s:3:"≮";s:3:"≮";s:3:"≯";s:3:"≯";s:5:"≰";s:3:"≰";s:5:"≱";s:3:"≱";s:5:"≴";s:3:"≴";s:5:"≵";s:3:"≵";s:5:"≸";s:3:"≸";s:5:"≹";s:3:"≹";s:5:"⊀";s:3:"⊀";s:5:"⊁";s:3:"⊁";s:5:"⊄";s:3:"⊄";s:5:"⊅";s:3:"⊅";s:5:"⊈";s:3:"⊈";s:5:"⊉";s:3:"⊉";s:5:"⊬";s:3:"⊬";s:5:"⊭";s:3:"⊭";s:5:"⊮";s:3:"⊮";s:5:"⊯";s:3:"⊯";s:5:"⋠";s:3:"⋠";s:5:"⋡";s:3:"⋡";s:5:"⋢";s:3:"⋢";s:5:"⋣";s:3:"⋣";s:5:"⋪";s:3:"⋪";s:5:"⋫";s:3:"⋫";s:5:"⋬";s:3:"⋬";s:5:"⋭";s:3:"⋭";s:3:"〈";s:3:"〈";s:3:"〉";s:3:"〉";s:6:"が";s:3:"が";s:6:"ぎ";s:3:"ぎ";s:6:"ぐ";s:3:"ぐ";s:6:"げ";s:3:"げ";s:6:"ご";s:3:"ご";s:6:"ざ";s:3:"ざ";s:6:"じ";s:3:"じ";s:6:"ず";s:3:"ず";s:6:"ぜ";s:3:"ぜ";s:6:"ぞ";s:3:"ぞ";s:6:"だ";s:3:"だ";s:6:"ぢ";s:3:"ぢ";s:6:"づ";s:3:"づ";s:6:"で";s:3:"で";s:6:"ど";s:3:"ど";s:6:"ば";s:3:"ば";s:6:"ぱ";s:3:"ぱ";s:6:"び";s:3:"び";s:6:"ぴ";s:3:"ぴ";s:6:"ぶ";s:3:"ぶ";s:6:"ぷ";s:3:"ぷ";s:6:"べ";s:3:"べ";s:6:"ぺ";s:3:"ぺ";s:6:"ぼ";s:3:"ぼ";s:6:"ぽ";s:3:"ぽ";s:6:"ゔ";s:3:"ゔ";s:6:"ゞ";s:3:"ゞ";s:6:"ガ";s:3:"ガ";s:6:"ギ";s:3:"ギ";s:6:"グ";s:3:"グ";s:6:"ゲ";s:3:"ゲ";s:6:"ゴ";s:3:"ゴ";s:6:"ザ";s:3:"ザ";s:6:"ジ";s:3:"ジ";s:6:"ズ";s:3:"ズ";s:6:"ゼ";s:3:"ゼ";s:6:"ゾ";s:3:"ゾ";s:6:"ダ";s:3:"ダ";s:6:"ヂ";s:3:"ヂ";s:6:"ヅ";s:3:"ヅ";s:6:"デ";s:3:"デ";s:6:"ド";s:3:"ド";s:6:"バ";s:3:"バ";s:6:"パ";s:3:"パ";s:6:"ビ";s:3:"ビ";s:6:"ピ";s:3:"ピ";s:6:"ブ";s:3:"ブ";s:6:"プ";s:3:"プ";s:6:"ベ";s:3:"ベ";s:6:"ペ";s:3:"ペ";s:6:"ボ";s:3:"ボ";s:6:"ポ";s:3:"ポ";s:6:"ヴ";s:3:"ヴ";s:6:"ヷ";s:3:"ヷ";s:6:"ヸ";s:3:"ヸ";s:6:"ヹ";s:3:"ヹ";s:6:"ヺ";s:3:"ヺ";s:6:"ヾ";s:3:"ヾ";s:3:"豈";s:3:"豈";s:3:"更";s:3:"更";s:3:"車";s:3:"車";s:3:"賈";s:3:"賈";s:3:"滑";s:3:"滑";s:3:"串";s:3:"串";s:3:"句";s:3:"句";s:3:"龜";s:3:"龜";s:3:"契";s:3:"契";s:3:"金";s:3:"金";s:3:"喇";s:3:"喇";s:3:"奈";s:3:"奈";s:3:"懶";s:4:"懶";s:3:"癩";s:3:"癩";s:3:"羅";s:3:"羅";s:3:"蘿";s:3:"蘿";s:3:"螺";s:3:"螺";s:3:"裸";s:3:"裸";s:3:"邏";s:3:"邏";s:3:"樂";s:3:"樂";s:3:"洛";s:3:"洛";s:3:"烙";s:3:"烙";s:3:"珞";s:3:"珞";s:3:"落";s:3:"落";s:3:"酪";s:3:"酪";s:3:"駱";s:3:"駱";s:3:"亂";s:3:"亂";s:3:"卵";s:3:"卵";s:3:"欄";s:3:"欄";s:3:"爛";s:3:"爛";s:3:"蘭";s:3:"蘭";s:3:"鸞";s:3:"鸞";s:3:"嵐";s:3:"嵐";s:3:"濫";s:3:"濫";s:3:"藍";s:3:"藍";s:3:"襤";s:3:"襤";s:3:"拉";s:3:"拉";s:3:"臘";s:3:"臘";s:3:"蠟";s:3:"蠟";s:3:"廊";s:4:"廊";s:3:"朗";s:4:"朗";s:3:"浪";s:3:"浪";s:3:"狼";s:3:"狼";s:3:"郎";s:3:"郎";s:3:"來";s:3:"來";s:3:"冷";s:3:"冷";s:3:"勞";s:3:"勞";s:3:"擄";s:3:"擄";s:3:"櫓";s:3:"櫓";s:3:"爐";s:3:"爐";s:3:"盧";s:3:"盧";s:3:"老";s:3:"老";s:3:"蘆";s:3:"蘆";s:3:"虜";s:4:"虜";s:3:"路";s:3:"路";s:3:"露";s:3:"露";s:3:"魯";s:3:"魯";s:3:"鷺";s:3:"鷺";s:3:"碌";s:4:"碌";s:3:"祿";s:3:"祿";s:3:"綠";s:3:"綠";s:3:"菉";s:3:"菉";s:3:"錄";s:3:"錄";s:3:"鹿";s:3:"鹿";s:3:"論";s:3:"論";s:3:"壟";s:3:"壟";s:3:"弄";s:3:"弄";s:3:"籠";s:3:"籠";s:3:"聾";s:3:"聾";s:3:"牢";s:3:"牢";s:3:"磊";s:3:"磊";s:3:"賂";s:3:"賂";s:3:"雷";s:3:"雷";s:3:"壘";s:3:"壘";s:3:"屢";s:3:"屢";s:3:"樓";s:3:"樓";s:3:"淚";s:3:"淚";s:3:"漏";s:3:"漏";s:3:"累";s:3:"累";s:3:"縷";s:3:"縷";s:3:"陋";s:3:"陋";s:3:"勒";s:3:"勒";s:3:"肋";s:3:"肋";s:3:"凜";s:3:"凜";s:3:"凌";s:3:"凌";s:3:"稜";s:3:"稜";s:3:"綾";s:3:"綾";s:3:"菱";s:3:"菱";s:3:"陵";s:3:"陵";s:3:"讀";s:3:"讀";s:3:"拏";s:3:"拏";s:3:"諾";s:3:"諾";s:3:"丹";s:3:"丹";s:3:"寧";s:4:"寧";s:3:"怒";s:3:"怒";s:3:"率";s:3:"率";s:3:"異";s:4:"異";s:3:"北";s:4:"北";s:3:"磻";s:3:"磻";s:3:"便";s:3:"便";s:3:"復";s:3:"復";s:3:"不";s:3:"不";s:3:"泌";s:3:"泌";s:3:"數";s:3:"數";s:3:"索";s:3:"索";s:3:"參";s:3:"參";s:3:"塞";s:3:"塞";s:3:"省";s:3:"省";s:3:"葉";s:3:"葉";s:3:"說";s:3:"說";s:3:"殺";s:4:"殺";s:3:"辰";s:3:"辰";s:3:"沈";s:3:"沈";s:3:"拾";s:3:"拾";s:3:"若";s:4:"若";s:3:"掠";s:3:"掠";s:3:"略";s:3:"略";s:3:"亮";s:3:"亮";s:3:"兩";s:3:"兩";s:3:"凉";s:3:"凉";s:3:"梁";s:3:"梁";s:3:"糧";s:3:"糧";s:3:"良";s:3:"良";s:3:"諒";s:3:"諒";s:3:"量";s:3:"量";s:3:"勵";s:3:"勵";s:3:"呂";s:3:"呂";s:3:"女";s:3:"女";s:3:"廬";s:3:"廬";s:3:"旅";s:3:"旅";s:3:"濾";s:3:"濾";s:3:"礪";s:3:"礪";s:3:"閭";s:3:"閭";s:3:"驪";s:3:"驪";s:3:"麗";s:3:"麗";s:3:"黎";s:3:"黎";s:3:"力";s:3:"力";s:3:"曆";s:3:"曆";s:3:"歷";s:3:"歷";s:3:"轢";s:3:"轢";s:3:"年";s:3:"年";s:3:"憐";s:3:"憐";s:3:"戀";s:3:"戀";s:3:"撚";s:3:"撚";s:3:"漣";s:3:"漣";s:3:"煉";s:3:"煉";s:3:"璉";s:3:"璉";s:3:"秊";s:3:"秊";s:3:"練";s:3:"練";s:3:"聯";s:3:"聯";s:3:"輦";s:3:"輦";s:3:"蓮";s:3:"蓮";s:3:"連";s:3:"連";s:3:"鍊";s:3:"鍊";s:3:"列";s:3:"列";s:3:"劣";s:3:"劣";s:3:"咽";s:3:"咽";s:3:"烈";s:3:"烈";s:3:"裂";s:3:"裂";s:3:"廉";s:3:"廉";s:3:"念";s:3:"念";s:3:"捻";s:3:"捻";s:3:"殮";s:3:"殮";s:3:"簾";s:3:"簾";s:3:"獵";s:3:"獵";s:3:"令";s:3:"令";s:3:"囹";s:3:"囹";s:3:"嶺";s:3:"嶺";s:3:"怜";s:3:"怜";s:3:"玲";s:3:"玲";s:3:"瑩";s:3:"瑩";s:3:"羚";s:3:"羚";s:3:"聆";s:3:"聆";s:3:"鈴";s:3:"鈴";s:3:"零";s:3:"零";s:3:"靈";s:3:"靈";s:3:"領";s:3:"領";s:3:"例";s:3:"例";s:3:"禮";s:3:"禮";s:3:"醴";s:3:"醴";s:3:"隸";s:3:"隸";s:3:"惡";s:3:"惡";s:3:"了";s:3:"了";s:3:"僚";s:3:"僚";s:3:"寮";s:3:"寮";s:3:"尿";s:3:"尿";s:3:"料";s:3:"料";s:3:"燎";s:3:"燎";s:3:"療";s:3:"療";s:3:"蓼";s:3:"蓼";s:3:"遼";s:3:"遼";s:3:"龍";s:3:"龍";s:3:"暈";s:3:"暈";s:3:"阮";s:3:"阮";s:3:"劉";s:3:"劉";s:3:"杻";s:3:"杻";s:3:"柳";s:3:"柳";s:3:"流";s:4:"流";s:3:"溜";s:3:"溜";s:3:"琉";s:3:"琉";s:3:"留";s:3:"留";s:3:"硫";s:3:"硫";s:3:"紐";s:3:"紐";s:3:"類";s:3:"類";s:3:"六";s:3:"六";s:3:"戮";s:3:"戮";s:3:"陸";s:3:"陸";s:3:"倫";s:3:"倫";s:3:"崙";s:3:"崙";s:3:"淪";s:3:"淪";s:3:"輪";s:3:"輪";s:3:"律";s:3:"律";s:3:"慄";s:3:"慄";s:3:"栗";s:3:"栗";s:3:"隆";s:3:"隆";s:3:"利";s:3:"利";s:3:"吏";s:3:"吏";s:3:"履";s:3:"履";s:3:"易";s:3:"易";s:3:"李";s:3:"李";s:3:"梨";s:3:"梨";s:3:"泥";s:3:"泥";s:3:"理";s:3:"理";s:3:"痢";s:3:"痢";s:3:"罹";s:3:"罹";s:3:"裏";s:3:"裏";s:3:"裡";s:3:"裡";s:3:"里";s:3:"里";s:3:"離";s:3:"離";s:3:"匿";s:3:"匿";s:3:"溺";s:3:"溺";s:3:"吝";s:3:"吝";s:3:"燐";s:3:"燐";s:3:"璘";s:3:"璘";s:3:"藺";s:3:"藺";s:3:"隣";s:3:"隣";s:3:"鱗";s:3:"鱗";s:3:"麟";s:3:"麟";s:3:"林";s:3:"林";s:3:"淋";s:3:"淋";s:3:"臨";s:3:"臨";s:3:"立";s:3:"立";s:3:"笠";s:3:"笠";s:3:"粒";s:3:"粒";s:3:"狀";s:3:"狀";s:3:"炙";s:3:"炙";s:3:"識";s:3:"識";s:3:"什";s:3:"什";s:3:"茶";s:3:"茶";s:3:"刺";s:3:"刺";s:3:"切";s:4:"切";s:3:"度";s:3:"度";s:3:"拓";s:3:"拓";s:3:"糖";s:3:"糖";s:3:"宅";s:3:"宅";s:3:"洞";s:3:"洞";s:3:"暴";s:3:"暴";s:3:"輻";s:3:"輻";s:3:"行";s:3:"行";s:3:"降";s:3:"降";s:3:"見";s:3:"見";s:3:"廓";s:3:"廓";s:3:"兀";s:3:"兀";s:3:"嗀";s:3:"嗀";s:3:"塚";s:3:"塚";s:3:"晴";s:3:"晴";s:3:"凞";s:3:"凞";s:3:"猪";s:3:"猪";s:3:"益";s:3:"益";s:3:"礼";s:3:"礼";s:3:"神";s:3:"神";s:3:"祥";s:3:"祥";s:3:"福";s:4:"福";s:3:"靖";s:3:"靖";s:3:"精";s:3:"精";s:3:"羽";s:3:"羽";s:3:"蘒";s:3:"蘒";s:3:"諸";s:3:"諸";s:3:"逸";s:3:"逸";s:3:"都";s:3:"都";s:3:"飯";s:3:"飯";s:3:"飼";s:3:"飼";s:3:"館";s:3:"館";s:3:"鶴";s:3:"鶴";s:3:"侮";s:4:"侮";s:3:"僧";s:4:"僧";s:3:"免";s:4:"免";s:3:"勉";s:4:"勉";s:3:"勤";s:4:"勤";s:3:"卑";s:4:"卑";s:3:"喝";s:3:"喝";s:3:"嘆";s:4:"嘆";s:3:"器";s:3:"器";s:3:"塀";s:3:"塀";s:3:"墨";s:3:"墨";s:3:"層";s:3:"層";s:3:"屮";s:4:"屮";s:3:"悔";s:4:"悔";s:3:"慨";s:3:"慨";s:3:"憎";s:4:"憎";s:3:"懲";s:4:"懲";s:3:"敏";s:4:"敏";s:3:"既";s:3:"既";s:3:"暑";s:4:"暑";s:3:"梅";s:4:"梅";s:3:"海";s:4:"海";s:3:"渚";s:3:"渚";s:3:"漢";s:3:"漢";s:3:"煮";s:3:"煮";s:3:"爫";s:3:"爫";s:3:"琢";s:3:"琢";s:3:"碑";s:3:"碑";s:3:"社";s:3:"社";s:3:"祉";s:3:"祉";s:3:"祈";s:3:"祈";s:3:"祐";s:3:"祐";s:3:"祖";s:4:"祖";s:3:"祝";s:3:"祝";s:3:"禍";s:3:"禍";s:3:"禎";s:3:"禎";s:3:"穀";s:4:"穀";s:3:"突";s:3:"突";s:3:"節";s:3:"節";s:3:"縉";s:3:"縉";s:3:"繁";s:3:"繁";s:3:"署";s:3:"署";s:3:"者";s:4:"者";s:3:"臭";s:3:"臭";s:3:"艹";s:3:"艹";s:3:"著";s:4:"著";s:3:"褐";s:3:"褐";s:3:"視";s:3:"視";s:3:"謁";s:3:"謁";s:3:"謹";s:3:"謹";s:3:"賓";s:3:"賓";s:3:"贈";s:3:"贈";s:3:"辶";s:3:"辶";s:3:"難";s:3:"難";s:3:"響";s:3:"響";s:3:"頻";s:3:"頻";s:3:"恵";s:3:"恵";s:4:"𤋮";s:3:"𤋮";s:3:"舘";s:3:"舘";s:3:"並";s:3:"並";s:3:"况";s:4:"况";s:3:"全";s:3:"全";s:3:"侀";s:3:"侀";s:3:"充";s:3:"充";s:3:"冀";s:3:"冀";s:3:"勇";s:4:"勇";s:3:"勺";s:4:"勺";s:3:"啕";s:3:"啕";s:3:"喙";s:4:"喙";s:3:"嗢";s:3:"嗢";s:3:"墳";s:3:"墳";s:3:"奄";s:3:"奄";s:3:"奔";s:3:"奔";s:3:"婢";s:3:"婢";s:3:"嬨";s:3:"嬨";s:3:"廒";s:3:"廒";s:3:"廙";s:3:"廙";s:3:"彩";s:3:"彩";s:3:"徭";s:3:"徭";s:3:"惘";s:3:"惘";s:3:"慎";s:4:"慎";s:3:"愈";s:3:"愈";s:3:"慠";s:3:"慠";s:3:"戴";s:3:"戴";s:3:"揄";s:3:"揄";s:3:"搜";s:3:"搜";s:3:"摒";s:3:"摒";s:3:"敖";s:3:"敖";s:3:"望";s:4:"望";s:3:"杖";s:3:"杖";s:3:"歹";s:3:"歹";s:3:"滛";s:3:"滛";s:3:"滋";s:4:"滋";s:3:"瀞";s:4:"瀞";s:3:"瞧";s:3:"瞧";s:3:"爵";s:4:"爵";s:3:"犯";s:3:"犯";s:3:"瑱";s:4:"瑱";s:3:"甆";s:3:"甆";s:3:"画";s:3:"画";s:3:"瘝";s:3:"瘝";s:3:"瘟";s:3:"瘟";s:3:"盛";s:3:"盛";s:3:"直";s:4:"直";s:3:"睊";s:4:"睊";s:3:"着";s:3:"着";s:3:"磌";s:4:"磌";s:3:"窱";s:3:"窱";s:3:"类";s:3:"类";s:3:"絛";s:3:"絛";s:3:"缾";s:3:"缾";s:3:"荒";s:3:"荒";s:3:"華";s:3:"華";s:3:"蝹";s:4:"蝹";s:3:"襁";s:3:"襁";s:3:"覆";s:3:"覆";s:3:"調";s:3:"調";s:3:"請";s:3:"請";s:3:"諭";s:4:"諭";s:3:"變";s:4:"變";s:3:"輸";s:4:"輸";s:3:"遲";s:3:"遲";s:3:"醙";s:3:"醙";s:3:"鉶";s:3:"鉶";s:3:"陼";s:3:"陼";s:3:"韛";s:3:"韛";s:3:"頋";s:4:"頋";s:3:"鬒";s:4:"鬒";s:4:"𢡊";s:3:"𢡊";s:4:"𢡄";s:3:"𢡄";s:4:"𣏕";s:3:"𣏕";s:3:"㮝";s:4:"㮝";s:3:"䀘";s:3:"䀘";s:3:"䀹";s:4:"䀹";s:4:"𥉉";s:3:"𥉉";s:4:"𥳐";s:3:"𥳐";s:4:"𧻓";s:3:"𧻓";s:3:"齃";s:3:"齃";s:3:"龎";s:3:"龎";s:8:"𑂚";s:4:"𑂚";s:8:"𑂜";s:4:"𑂜";s:8:"𑂫";s:4:"𑂫";s:3:"丽";s:4:"丽";s:3:"丸";s:4:"丸";s:3:"乁";s:4:"乁";s:4:"𠄢";s:4:"𠄢";s:3:"你";s:4:"你";s:3:"侻";s:4:"侻";s:3:"倂";s:4:"倂";s:3:"偺";s:4:"偺";s:3:"備";s:4:"備";s:3:"像";s:4:"像";s:3:"㒞";s:4:"㒞";s:4:"𠘺";s:4:"𠘺";s:3:"兔";s:4:"兔";s:3:"兤";s:4:"兤";s:3:"具";s:4:"具";s:4:"𠔜";s:4:"𠔜";s:3:"㒹";s:4:"㒹";s:3:"內";s:4:"內";s:3:"再";s:4:"再";s:4:"𠕋";s:4:"𠕋";s:3:"冗";s:4:"冗";s:3:"冤";s:4:"冤";s:3:"仌";s:4:"仌";s:3:"冬";s:4:"冬";s:4:"𩇟";s:4:"𩇟";s:3:"凵";s:4:"凵";s:3:"刃";s:4:"刃";s:3:"㓟";s:4:"㓟";s:3:"刻";s:4:"刻";s:3:"剆";s:4:"剆";s:3:"割";s:4:"割";s:3:"剷";s:4:"剷";s:3:"㔕";s:4:"㔕";s:3:"包";s:4:"包";s:3:"匆";s:4:"匆";s:3:"卉";s:4:"卉";s:3:"博";s:4:"博";s:3:"即";s:4:"即";s:3:"卽";s:4:"卽";s:3:"卿";s:4:"卿";s:4:"𠨬";s:4:"𠨬";s:3:"灰";s:4:"灰";s:3:"及";s:4:"及";s:3:"叟";s:4:"叟";s:4:"𠭣";s:4:"𠭣";s:3:"叫";s:4:"叫";s:3:"叱";s:4:"叱";s:3:"吆";s:4:"吆";s:3:"咞";s:4:"咞";s:3:"吸";s:4:"吸";s:3:"呈";s:4:"呈";s:3:"周";s:4:"周";s:3:"咢";s:4:"咢";s:3:"哶";s:4:"哶";s:3:"唐";s:4:"唐";s:3:"啓";s:4:"啓";s:3:"啣";s:4:"啣";s:3:"善";s:4:"善";s:3:"喫";s:4:"喫";s:3:"喳";s:4:"喳";s:3:"嗂";s:4:"嗂";s:3:"圖";s:4:"圖";s:3:"圗";s:4:"圗";s:3:"噑";s:4:"噑";s:3:"噴";s:4:"噴";s:3:"壮";s:4:"壮";s:3:"城";s:4:"城";s:3:"埴";s:4:"埴";s:3:"堍";s:4:"堍";s:3:"型";s:4:"型";s:3:"堲";s:4:"堲";s:3:"報";s:4:"報";s:3:"墬";s:4:"墬";s:4:"𡓤";s:4:"𡓤";s:3:"売";s:4:"売";s:3:"壷";s:4:"壷";s:3:"夆";s:4:"夆";s:3:"多";s:4:"多";s:3:"夢";s:4:"夢";s:3:"奢";s:4:"奢";s:4:"𡚨";s:4:"𡚨";s:4:"𡛪";s:4:"𡛪";s:3:"姬";s:4:"姬";s:3:"娛";s:4:"娛";s:3:"娧";s:4:"娧";s:3:"姘";s:4:"姘";s:3:"婦";s:4:"婦";s:3:"㛮";s:4:"㛮";s:3:"㛼";s:4:"㛼";s:3:"嬈";s:4:"嬈";s:3:"嬾";s:4:"嬾";s:4:"𡧈";s:4:"𡧈";s:3:"寃";s:4:"寃";s:3:"寘";s:4:"寘";s:3:"寳";s:4:"寳";s:4:"𡬘";s:4:"𡬘";s:3:"寿";s:4:"寿";s:3:"将";s:4:"将";s:3:"当";s:4:"当";s:3:"尢";s:4:"尢";s:3:"㞁";s:4:"㞁";s:3:"屠";s:4:"屠";s:3:"峀";s:4:"峀";s:3:"岍";s:4:"岍";s:4:"𡷤";s:4:"𡷤";s:3:"嵃";s:4:"嵃";s:4:"𡷦";s:4:"𡷦";s:3:"嵮";s:4:"嵮";s:3:"嵫";s:4:"嵫";s:3:"嵼";s:4:"嵼";s:3:"巡";s:4:"巡";s:3:"巢";s:4:"巢";s:3:"㠯";s:4:"㠯";s:3:"巽";s:4:"巽";s:3:"帨";s:4:"帨";s:3:"帽";s:4:"帽";s:3:"幩";s:4:"幩";s:3:"㡢";s:4:"㡢";s:4:"𢆃";s:4:"𢆃";s:3:"㡼";s:4:"㡼";s:3:"庰";s:4:"庰";s:3:"庳";s:4:"庳";s:3:"庶";s:4:"庶";s:4:"𪎒";s:4:"𪎒";s:3:"廾";s:4:"廾";s:4:"𢌱";s:4:"𢌱";s:3:"舁";s:4:"舁";s:3:"弢";s:4:"弢";s:3:"㣇";s:4:"㣇";s:4:"𣊸";s:4:"𣊸";s:4:"𦇚";s:4:"𦇚";s:3:"形";s:4:"形";s:3:"彫";s:4:"彫";s:3:"㣣";s:4:"㣣";s:3:"徚";s:4:"徚";s:3:"忍";s:4:"忍";s:3:"志";s:4:"志";s:3:"忹";s:4:"忹";s:3:"悁";s:4:"悁";s:3:"㤺";s:4:"㤺";s:3:"㤜";s:4:"㤜";s:4:"𢛔";s:4:"𢛔";s:3:"惇";s:4:"惇";s:3:"慈";s:4:"慈";s:3:"慌";s:4:"慌";s:3:"慺";s:4:"慺";s:3:"憲";s:4:"憲";s:3:"憤";s:4:"憤";s:3:"憯";s:4:"憯";s:3:"懞";s:4:"懞";s:3:"成";s:4:"成";s:3:"戛";s:4:"戛";s:3:"扝";s:4:"扝";s:3:"抱";s:4:"抱";s:3:"拔";s:4:"拔";s:3:"捐";s:4:"捐";s:4:"𢬌";s:4:"𢬌";s:3:"挽";s:4:"挽";s:3:"拼";s:4:"拼";s:3:"捨";s:4:"捨";s:3:"掃";s:4:"掃";s:3:"揤";s:4:"揤";s:4:"𢯱";s:4:"𢯱";s:3:"搢";s:4:"搢";s:3:"揅";s:4:"揅";s:3:"掩";s:4:"掩";s:3:"㨮";s:4:"㨮";s:3:"摩";s:4:"摩";s:3:"摾";s:4:"摾";s:3:"撝";s:4:"撝";s:3:"摷";s:4:"摷";s:3:"㩬";s:4:"㩬";s:3:"敬";s:4:"敬";s:4:"𣀊";s:4:"𣀊";s:3:"旣";s:4:"旣";s:3:"書";s:4:"書";s:3:"晉";s:4:"晉";s:3:"㬙";s:4:"㬙";s:3:"㬈";s:4:"㬈";s:3:"㫤";s:4:"㫤";s:3:"冒";s:4:"冒";s:3:"冕";s:4:"冕";s:3:"最";s:4:"最";s:3:"暜";s:4:"暜";s:3:"肭";s:4:"肭";s:3:"䏙";s:4:"䏙";s:3:"朡";s:4:"朡";s:3:"杞";s:4:"杞";s:3:"杓";s:4:"杓";s:4:"𣏃";s:4:"𣏃";s:3:"㭉";s:4:"㭉";s:3:"柺";s:4:"柺";s:3:"枅";s:4:"枅";s:3:"桒";s:4:"桒";s:4:"𣑭";s:4:"𣑭";s:3:"梎";s:4:"梎";s:3:"栟";s:4:"栟";s:3:"椔";s:4:"椔";s:3:"楂";s:4:"楂";s:3:"榣";s:4:"榣";s:3:"槪";s:4:"槪";s:3:"檨";s:4:"檨";s:4:"𣚣";s:4:"𣚣";s:3:"櫛";s:4:"櫛";s:3:"㰘";s:4:"㰘";s:3:"次";s:4:"次";s:4:"𣢧";s:4:"𣢧";s:3:"歔";s:4:"歔";s:3:"㱎";s:4:"㱎";s:3:"歲";s:4:"歲";s:3:"殟";s:4:"殟";s:3:"殻";s:4:"殻";s:4:"𣪍";s:4:"𣪍";s:4:"𡴋";s:4:"𡴋";s:4:"𣫺";s:4:"𣫺";s:3:"汎";s:4:"汎";s:4:"𣲼";s:4:"𣲼";s:3:"沿";s:4:"沿";s:3:"泍";s:4:"泍";s:3:"汧";s:4:"汧";s:3:"洖";s:4:"洖";s:3:"派";s:4:"派";s:3:"浩";s:4:"浩";s:3:"浸";s:4:"浸";s:3:"涅";s:4:"涅";s:4:"𣴞";s:4:"𣴞";s:3:"洴";s:4:"洴";s:3:"港";s:4:"港";s:3:"湮";s:4:"湮";s:3:"㴳";s:4:"㴳";s:3:"滇";s:4:"滇";s:4:"𣻑";s:4:"𣻑";s:3:"淹";s:4:"淹";s:3:"潮";s:4:"潮";s:4:"𣽞";s:4:"𣽞";s:4:"𣾎";s:4:"𣾎";s:3:"濆";s:4:"濆";s:3:"瀹";s:4:"瀹";s:3:"瀛";s:4:"瀛";s:3:"㶖";s:4:"㶖";s:3:"灊";s:4:"灊";s:3:"災";s:4:"災";s:3:"灷";s:4:"灷";s:3:"炭";s:4:"炭";s:4:"𠔥";s:4:"𠔥";s:3:"煅";s:4:"煅";s:4:"𤉣";s:4:"𤉣";s:3:"熜";s:4:"熜";s:4:"𤎫";s:4:"𤎫";s:3:"爨";s:4:"爨";s:3:"牐";s:4:"牐";s:4:"𤘈";s:4:"𤘈";s:3:"犀";s:4:"犀";s:3:"犕";s:4:"犕";s:4:"𤜵";s:4:"𤜵";s:4:"𤠔";s:4:"𤠔";s:3:"獺";s:4:"獺";s:3:"王";s:4:"王";s:3:"㺬";s:4:"㺬";s:3:"玥";s:4:"玥";s:3:"㺸";s:4:"㺸";s:3:"瑇";s:4:"瑇";s:3:"瑜";s:4:"瑜";s:3:"璅";s:4:"璅";s:3:"瓊";s:4:"瓊";s:3:"㼛";s:4:"㼛";s:3:"甤";s:4:"甤";s:4:"𤰶";s:4:"𤰶";s:3:"甾";s:4:"甾";s:4:"𤲒";s:4:"𤲒";s:4:"𢆟";s:4:"𢆟";s:3:"瘐";s:4:"瘐";s:4:"𤾡";s:4:"𤾡";s:4:"𤾸";s:4:"𤾸";s:4:"𥁄";s:4:"𥁄";s:3:"㿼";s:4:"㿼";s:3:"䀈";s:4:"䀈";s:4:"𥃳";s:4:"𥃳";s:4:"𥃲";s:4:"𥃲";s:4:"𥄙";s:4:"𥄙";s:4:"𥄳";s:4:"𥄳";s:3:"眞";s:4:"眞";s:3:"真";s:4:"真";s:3:"瞋";s:4:"瞋";s:3:"䁆";s:4:"䁆";s:3:"䂖";s:4:"䂖";s:4:"𥐝";s:4:"𥐝";s:3:"硎";s:4:"硎";s:3:"䃣";s:4:"䃣";s:4:"𥘦";s:4:"𥘦";s:4:"𥚚";s:4:"𥚚";s:4:"𥛅";s:4:"𥛅";s:3:"秫";s:4:"秫";s:3:"䄯";s:4:"䄯";s:3:"穊";s:4:"穊";s:3:"穏";s:4:"穏";s:4:"𥥼";s:4:"𥥼";s:4:"𥪧";s:4:"𥪧";s:3:"竮";s:4:"竮";s:3:"䈂";s:4:"䈂";s:4:"𥮫";s:4:"𥮫";s:3:"篆";s:4:"篆";s:3:"築";s:4:"築";s:3:"䈧";s:4:"䈧";s:4:"𥲀";s:4:"𥲀";s:3:"糒";s:4:"糒";s:3:"䊠";s:4:"䊠";s:3:"糨";s:4:"糨";s:3:"糣";s:4:"糣";s:3:"紀";s:4:"紀";s:4:"𥾆";s:4:"𥾆";s:3:"絣";s:4:"絣";s:3:"䌁";s:4:"䌁";s:3:"緇";s:4:"緇";s:3:"縂";s:4:"縂";s:3:"繅";s:4:"繅";s:3:"䌴";s:4:"䌴";s:4:"𦈨";s:4:"𦈨";s:4:"𦉇";s:4:"𦉇";s:3:"䍙";s:4:"䍙";s:4:"𦋙";s:4:"𦋙";s:3:"罺";s:4:"罺";s:4:"𦌾";s:4:"𦌾";s:3:"羕";s:4:"羕";s:3:"翺";s:4:"翺";s:4:"𦓚";s:4:"𦓚";s:4:"𦔣";s:4:"𦔣";s:3:"聠";s:4:"聠";s:4:"𦖨";s:4:"𦖨";s:3:"聰";s:4:"聰";s:4:"𣍟";s:4:"𣍟";s:3:"䏕";s:4:"䏕";s:3:"育";s:4:"育";s:3:"脃";s:4:"脃";s:3:"䐋";s:4:"䐋";s:3:"脾";s:4:"脾";s:3:"媵";s:4:"媵";s:4:"𦞧";s:4:"𦞧";s:4:"𦞵";s:4:"𦞵";s:4:"𣎓";s:4:"𣎓";s:4:"𣎜";s:4:"𣎜";s:3:"舄";s:4:"舄";s:3:"辞";s:4:"辞";s:3:"䑫";s:4:"䑫";s:3:"芑";s:4:"芑";s:3:"芋";s:4:"芋";s:3:"芝";s:4:"芝";s:3:"劳";s:4:"劳";s:3:"花";s:4:"花";s:3:"芳";s:4:"芳";s:3:"芽";s:4:"芽";s:3:"苦";s:4:"苦";s:4:"𦬼";s:4:"𦬼";s:3:"茝";s:4:"茝";s:3:"荣";s:4:"荣";s:3:"莭";s:4:"莭";s:3:"茣";s:4:"茣";s:3:"莽";s:4:"莽";s:3:"菧";s:4:"菧";s:3:"荓";s:4:"荓";s:3:"菊";s:4:"菊";s:3:"菌";s:4:"菌";s:3:"菜";s:4:"菜";s:4:"𦰶";s:4:"𦰶";s:4:"𦵫";s:4:"𦵫";s:4:"𦳕";s:4:"𦳕";s:3:"䔫";s:4:"䔫";s:3:"蓱";s:4:"蓱";s:3:"蓳";s:4:"蓳";s:3:"蔖";s:4:"蔖";s:4:"𧏊";s:4:"𧏊";s:3:"蕤";s:4:"蕤";s:4:"𦼬";s:4:"𦼬";s:3:"䕝";s:4:"䕝";s:3:"䕡";s:4:"䕡";s:4:"𦾱";s:4:"𦾱";s:4:"𧃒";s:4:"𧃒";s:3:"䕫";s:4:"䕫";s:3:"虐";s:4:"虐";s:3:"虧";s:4:"虧";s:3:"虩";s:4:"虩";s:3:"蚩";s:4:"蚩";s:3:"蚈";s:4:"蚈";s:3:"蜎";s:4:"蜎";s:3:"蛢";s:4:"蛢";s:3:"蜨";s:4:"蜨";s:3:"蝫";s:4:"蝫";s:3:"螆";s:4:"螆";s:3:"䗗";s:4:"䗗";s:3:"蟡";s:4:"蟡";s:3:"蠁";s:4:"蠁";s:3:"䗹";s:4:"䗹";s:3:"衠";s:4:"衠";s:3:"衣";s:4:"衣";s:4:"𧙧";s:4:"𧙧";s:3:"裗";s:4:"裗";s:3:"裞";s:4:"裞";s:3:"䘵";s:4:"䘵";s:3:"裺";s:4:"裺";s:3:"㒻";s:4:"㒻";s:4:"𧢮";s:4:"𧢮";s:4:"𧥦";s:4:"𧥦";s:3:"䚾";s:4:"䚾";s:3:"䛇";s:4:"䛇";s:3:"誠";s:4:"誠";s:3:"豕";s:4:"豕";s:4:"𧲨";s:4:"𧲨";s:3:"貫";s:4:"貫";s:3:"賁";s:4:"賁";s:3:"贛";s:4:"贛";s:3:"起";s:4:"起";s:4:"𧼯";s:4:"𧼯";s:4:"𠠄";s:4:"𠠄";s:3:"跋";s:4:"跋";s:3:"趼";s:4:"趼";s:3:"跰";s:4:"跰";s:4:"𠣞";s:4:"𠣞";s:3:"軔";s:4:"軔";s:4:"𨗒";s:4:"𨗒";s:4:"𨗭";s:4:"𨗭";s:3:"邔";s:4:"邔";s:3:"郱";s:4:"郱";s:3:"鄑";s:4:"鄑";s:4:"𨜮";s:4:"𨜮";s:3:"鄛";s:4:"鄛";s:3:"鈸";s:4:"鈸";s:3:"鋗";s:4:"鋗";s:3:"鋘";s:4:"鋘";s:3:"鉼";s:4:"鉼";s:3:"鏹";s:4:"鏹";s:3:"鐕";s:4:"鐕";s:4:"𨯺";s:4:"𨯺";s:3:"開";s:4:"開";s:3:"䦕";s:4:"䦕";s:3:"閷";s:4:"閷";s:4:"𨵷";s:4:"𨵷";s:3:"䧦";s:4:"䧦";s:3:"雃";s:4:"雃";s:3:"嶲";s:4:"嶲";s:3:"霣";s:4:"霣";s:4:"𩅅";s:4:"𩅅";s:4:"𩈚";s:4:"𩈚";s:3:"䩮";s:4:"䩮";s:3:"䩶";s:4:"䩶";s:3:"韠";s:4:"韠";s:4:"𩐊";s:4:"𩐊";s:3:"䪲";s:4:"䪲";s:4:"𩒖";s:4:"𩒖";s:3:"頩";s:4:"頩";s:4:"𩖶";s:4:"𩖶";s:3:"飢";s:4:"飢";s:3:"䬳";s:4:"䬳";s:3:"餩";s:4:"餩";s:3:"馧";s:4:"馧";s:3:"駂";s:4:"駂";s:3:"駾";s:4:"駾";s:3:"䯎";s:4:"䯎";s:4:"𩬰";s:4:"𩬰";s:3:"鱀";s:4:"鱀";s:3:"鳽";s:4:"鳽";s:3:"䳎";s:4:"䳎";s:3:"䳭";s:4:"䳭";s:3:"鵧";s:4:"鵧";s:4:"𪃎";s:4:"𪃎";s:3:"䳸";s:4:"䳸";s:4:"𪄅";s:4:"𪄅";s:4:"𪈎";s:4:"𪈎";s:4:"𪊑";s:4:"𪊑";s:3:"麻";s:4:"麻";s:3:"䵖";s:4:"䵖";s:3:"黹";s:4:"黹";s:3:"黾";s:4:"黾";s:3:"鼅";s:4:"鼅";s:3:"鼏";s:4:"鼏";s:3:"鼖";s:4:"鼖";s:3:"鼻";s:4:"鼻";s:4:"𪘀";s:4:"𪘀";}' );
+UtfNormal::$utfCanonicalDecomp = unserialize( 'a:2049:{s:2:"À";s:3:"À";s:2:"Á";s:3:"Á";s:2:"Â";s:3:"Â";s:2:"Ã";s:3:"Ã";s:2:"Ä";s:3:"Ä";s:2:"Å";s:3:"Å";s:2:"Ç";s:3:"Ç";s:2:"È";s:3:"È";s:2:"É";s:3:"É";s:2:"Ê";s:3:"Ê";s:2:"Ë";s:3:"Ë";s:2:"Ì";s:3:"Ì";s:2:"Í";s:3:"Í";s:2:"Î";s:3:"Î";s:2:"Ï";s:3:"Ï";s:2:"Ñ";s:3:"Ñ";s:2:"Ò";s:3:"Ò";s:2:"Ó";s:3:"Ó";s:2:"Ô";s:3:"Ô";s:2:"Õ";s:3:"Õ";s:2:"Ö";s:3:"Ö";s:2:"Ù";s:3:"Ù";s:2:"Ú";s:3:"Ú";s:2:"Û";s:3:"Û";s:2:"Ü";s:3:"Ü";s:2:"Ý";s:3:"Ý";s:2:"à";s:3:"à";s:2:"á";s:3:"á";s:2:"â";s:3:"â";s:2:"ã";s:3:"ã";s:2:"ä";s:3:"ä";s:2:"å";s:3:"å";s:2:"ç";s:3:"ç";s:2:"è";s:3:"è";s:2:"é";s:3:"é";s:2:"ê";s:3:"ê";s:2:"ë";s:3:"ë";s:2:"ì";s:3:"ì";s:2:"í";s:3:"í";s:2:"î";s:3:"î";s:2:"ï";s:3:"ï";s:2:"ñ";s:3:"ñ";s:2:"ò";s:3:"ò";s:2:"ó";s:3:"ó";s:2:"ô";s:3:"ô";s:2:"õ";s:3:"õ";s:2:"ö";s:3:"ö";s:2:"ù";s:3:"ù";s:2:"ú";s:3:"ú";s:2:"û";s:3:"û";s:2:"ü";s:3:"ü";s:2:"ý";s:3:"ý";s:2:"ÿ";s:3:"ÿ";s:2:"Ā";s:3:"Ā";s:2:"ā";s:3:"ā";s:2:"Ă";s:3:"Ă";s:2:"ă";s:3:"ă";s:2:"Ą";s:3:"Ą";s:2:"ą";s:3:"ą";s:2:"Ć";s:3:"Ć";s:2:"ć";s:3:"ć";s:2:"Ĉ";s:3:"Ĉ";s:2:"ĉ";s:3:"ĉ";s:2:"Ċ";s:3:"Ċ";s:2:"ċ";s:3:"ċ";s:2:"Č";s:3:"Č";s:2:"č";s:3:"č";s:2:"Ď";s:3:"Ď";s:2:"ď";s:3:"ď";s:2:"Ē";s:3:"Ē";s:2:"ē";s:3:"ē";s:2:"Ĕ";s:3:"Ĕ";s:2:"ĕ";s:3:"ĕ";s:2:"Ė";s:3:"Ė";s:2:"ė";s:3:"ė";s:2:"Ę";s:3:"Ę";s:2:"ę";s:3:"ę";s:2:"Ě";s:3:"Ě";s:2:"ě";s:3:"ě";s:2:"Ĝ";s:3:"Ĝ";s:2:"ĝ";s:3:"ĝ";s:2:"Ğ";s:3:"Ğ";s:2:"ğ";s:3:"ğ";s:2:"Ġ";s:3:"Ġ";s:2:"ġ";s:3:"ġ";s:2:"Ģ";s:3:"Ģ";s:2:"ģ";s:3:"ģ";s:2:"Ĥ";s:3:"Ĥ";s:2:"ĥ";s:3:"ĥ";s:2:"Ĩ";s:3:"Ĩ";s:2:"ĩ";s:3:"ĩ";s:2:"Ī";s:3:"Ī";s:2:"ī";s:3:"ī";s:2:"Ĭ";s:3:"Ĭ";s:2:"ĭ";s:3:"ĭ";s:2:"Į";s:3:"Į";s:2:"į";s:3:"į";s:2:"İ";s:3:"İ";s:2:"Ĵ";s:3:"Ĵ";s:2:"ĵ";s:3:"ĵ";s:2:"Ķ";s:3:"Ķ";s:2:"ķ";s:3:"ķ";s:2:"Ĺ";s:3:"Ĺ";s:2:"ĺ";s:3:"ĺ";s:2:"Ļ";s:3:"Ļ";s:2:"ļ";s:3:"ļ";s:2:"Ľ";s:3:"Ľ";s:2:"ľ";s:3:"ľ";s:2:"Ń";s:3:"Ń";s:2:"ń";s:3:"ń";s:2:"Ņ";s:3:"Ņ";s:2:"ņ";s:3:"ņ";s:2:"Ň";s:3:"Ň";s:2:"ň";s:3:"ň";s:2:"Ō";s:3:"Ō";s:2:"ō";s:3:"ō";s:2:"Ŏ";s:3:"Ŏ";s:2:"ŏ";s:3:"ŏ";s:2:"Ő";s:3:"Ő";s:2:"ő";s:3:"ő";s:2:"Ŕ";s:3:"Ŕ";s:2:"ŕ";s:3:"ŕ";s:2:"Ŗ";s:3:"Ŗ";s:2:"ŗ";s:3:"ŗ";s:2:"Ř";s:3:"Ř";s:2:"ř";s:3:"ř";s:2:"Ś";s:3:"Ś";s:2:"ś";s:3:"ś";s:2:"Ŝ";s:3:"Ŝ";s:2:"ŝ";s:3:"ŝ";s:2:"Ş";s:3:"Ş";s:2:"ş";s:3:"ş";s:2:"Š";s:3:"Š";s:2:"š";s:3:"š";s:2:"Ţ";s:3:"Ţ";s:2:"ţ";s:3:"ţ";s:2:"Ť";s:3:"Ť";s:2:"ť";s:3:"ť";s:2:"Ũ";s:3:"Ũ";s:2:"ũ";s:3:"ũ";s:2:"Ū";s:3:"Ū";s:2:"ū";s:3:"ū";s:2:"Ŭ";s:3:"Ŭ";s:2:"ŭ";s:3:"ŭ";s:2:"Ů";s:3:"Ů";s:2:"ů";s:3:"ů";s:2:"Ű";s:3:"Ű";s:2:"ű";s:3:"ű";s:2:"Ų";s:3:"Ų";s:2:"ų";s:3:"ų";s:2:"Ŵ";s:3:"Ŵ";s:2:"ŵ";s:3:"ŵ";s:2:"Ŷ";s:3:"Ŷ";s:2:"ŷ";s:3:"ŷ";s:2:"Ÿ";s:3:"Ÿ";s:2:"Ź";s:3:"Ź";s:2:"ź";s:3:"ź";s:2:"Ż";s:3:"Ż";s:2:"ż";s:3:"ż";s:2:"Ž";s:3:"Ž";s:2:"ž";s:3:"ž";s:2:"Ơ";s:3:"Ơ";s:2:"ơ";s:3:"ơ";s:2:"Ư";s:3:"Ư";s:2:"ư";s:3:"ư";s:2:"Ǎ";s:3:"Ǎ";s:2:"ǎ";s:3:"ǎ";s:2:"Ǐ";s:3:"Ǐ";s:2:"ǐ";s:3:"ǐ";s:2:"Ǒ";s:3:"Ǒ";s:2:"ǒ";s:3:"ǒ";s:2:"Ǔ";s:3:"Ǔ";s:2:"ǔ";s:3:"ǔ";s:2:"Ǖ";s:5:"Ǖ";s:2:"ǖ";s:5:"ǖ";s:2:"Ǘ";s:5:"Ǘ";s:2:"ǘ";s:5:"ǘ";s:2:"Ǚ";s:5:"Ǚ";s:2:"ǚ";s:5:"ǚ";s:2:"Ǜ";s:5:"Ǜ";s:2:"ǜ";s:5:"ǜ";s:2:"Ǟ";s:5:"Ǟ";s:2:"ǟ";s:5:"ǟ";s:2:"Ǡ";s:5:"Ǡ";s:2:"ǡ";s:5:"ǡ";s:2:"Ǣ";s:4:"Ǣ";s:2:"ǣ";s:4:"ǣ";s:2:"Ǧ";s:3:"Ǧ";s:2:"ǧ";s:3:"ǧ";s:2:"Ǩ";s:3:"Ǩ";s:2:"ǩ";s:3:"ǩ";s:2:"Ǫ";s:3:"Ǫ";s:2:"ǫ";s:3:"ǫ";s:2:"Ǭ";s:5:"Ǭ";s:2:"ǭ";s:5:"ǭ";s:2:"Ǯ";s:4:"Ǯ";s:2:"ǯ";s:4:"ǯ";s:2:"ǰ";s:3:"ǰ";s:2:"Ǵ";s:3:"Ǵ";s:2:"ǵ";s:3:"ǵ";s:2:"Ǹ";s:3:"Ǹ";s:2:"ǹ";s:3:"ǹ";s:2:"Ǻ";s:5:"Ǻ";s:2:"ǻ";s:5:"ǻ";s:2:"Ǽ";s:4:"Ǽ";s:2:"ǽ";s:4:"ǽ";s:2:"Ǿ";s:4:"Ǿ";s:2:"ǿ";s:4:"ǿ";s:2:"Ȁ";s:3:"Ȁ";s:2:"ȁ";s:3:"ȁ";s:2:"Ȃ";s:3:"Ȃ";s:2:"ȃ";s:3:"ȃ";s:2:"Ȅ";s:3:"Ȅ";s:2:"ȅ";s:3:"ȅ";s:2:"Ȇ";s:3:"Ȇ";s:2:"ȇ";s:3:"ȇ";s:2:"Ȉ";s:3:"Ȉ";s:2:"ȉ";s:3:"ȉ";s:2:"Ȋ";s:3:"Ȋ";s:2:"ȋ";s:3:"ȋ";s:2:"Ȍ";s:3:"Ȍ";s:2:"ȍ";s:3:"ȍ";s:2:"Ȏ";s:3:"Ȏ";s:2:"ȏ";s:3:"ȏ";s:2:"Ȑ";s:3:"Ȑ";s:2:"ȑ";s:3:"ȑ";s:2:"Ȓ";s:3:"Ȓ";s:2:"ȓ";s:3:"ȓ";s:2:"Ȕ";s:3:"Ȕ";s:2:"ȕ";s:3:"ȕ";s:2:"Ȗ";s:3:"Ȗ";s:2:"ȗ";s:3:"ȗ";s:2:"Ș";s:3:"Ș";s:2:"ș";s:3:"ș";s:2:"Ț";s:3:"Ț";s:2:"ț";s:3:"ț";s:2:"Ȟ";s:3:"Ȟ";s:2:"ȟ";s:3:"ȟ";s:2:"Ȧ";s:3:"Ȧ";s:2:"ȧ";s:3:"ȧ";s:2:"Ȩ";s:3:"Ȩ";s:2:"ȩ";s:3:"ȩ";s:2:"Ȫ";s:5:"Ȫ";s:2:"ȫ";s:5:"ȫ";s:2:"Ȭ";s:5:"Ȭ";s:2:"ȭ";s:5:"ȭ";s:2:"Ȯ";s:3:"Ȯ";s:2:"ȯ";s:3:"ȯ";s:2:"Ȱ";s:5:"Ȱ";s:2:"ȱ";s:5:"ȱ";s:2:"Ȳ";s:3:"Ȳ";s:2:"ȳ";s:3:"ȳ";s:2:"̀";s:2:"̀";s:2:"́";s:2:"́";s:2:"̓";s:2:"̓";s:2:"̈́";s:4:"̈́";s:2:"ʹ";s:2:"ʹ";s:2:";";s:1:";";s:2:"΅";s:4:"΅";s:2:"Ά";s:4:"Ά";s:2:"·";s:2:"·";s:2:"Έ";s:4:"Έ";s:2:"Ή";s:4:"Ή";s:2:"Ί";s:4:"Ί";s:2:"Ό";s:4:"Ό";s:2:"Ύ";s:4:"Ύ";s:2:"Ώ";s:4:"Ώ";s:2:"ΐ";s:6:"ΐ";s:2:"Ϊ";s:4:"Ϊ";s:2:"Ϋ";s:4:"Ϋ";s:2:"ά";s:4:"ά";s:2:"έ";s:4:"έ";s:2:"ή";s:4:"ή";s:2:"ί";s:4:"ί";s:2:"ΰ";s:6:"ΰ";s:2:"ϊ";s:4:"ϊ";s:2:"ϋ";s:4:"ϋ";s:2:"ό";s:4:"ό";s:2:"ύ";s:4:"ύ";s:2:"ώ";s:4:"ώ";s:2:"ϓ";s:4:"ϓ";s:2:"ϔ";s:4:"ϔ";s:2:"Ѐ";s:4:"Ѐ";s:2:"Ё";s:4:"Ё";s:2:"Ѓ";s:4:"Ѓ";s:2:"Ї";s:4:"Ї";s:2:"Ќ";s:4:"Ќ";s:2:"Ѝ";s:4:"Ѝ";s:2:"Ў";s:4:"Ў";s:2:"Й";s:4:"Й";s:2:"й";s:4:"й";s:2:"ѐ";s:4:"ѐ";s:2:"ё";s:4:"ё";s:2:"ѓ";s:4:"ѓ";s:2:"ї";s:4:"ї";s:2:"ќ";s:4:"ќ";s:2:"ѝ";s:4:"ѝ";s:2:"ў";s:4:"ў";s:2:"Ѷ";s:4:"Ѷ";s:2:"ѷ";s:4:"ѷ";s:2:"Ӂ";s:4:"Ӂ";s:2:"ӂ";s:4:"ӂ";s:2:"Ӑ";s:4:"Ӑ";s:2:"ӑ";s:4:"ӑ";s:2:"Ӓ";s:4:"Ӓ";s:2:"ӓ";s:4:"ӓ";s:2:"Ӗ";s:4:"Ӗ";s:2:"ӗ";s:4:"ӗ";s:2:"Ӛ";s:4:"Ӛ";s:2:"ӛ";s:4:"ӛ";s:2:"Ӝ";s:4:"Ӝ";s:2:"ӝ";s:4:"ӝ";s:2:"Ӟ";s:4:"Ӟ";s:2:"ӟ";s:4:"ӟ";s:2:"Ӣ";s:4:"Ӣ";s:2:"ӣ";s:4:"ӣ";s:2:"Ӥ";s:4:"Ӥ";s:2:"ӥ";s:4:"ӥ";s:2:"Ӧ";s:4:"Ӧ";s:2:"ӧ";s:4:"ӧ";s:2:"Ӫ";s:4:"Ӫ";s:2:"ӫ";s:4:"ӫ";s:2:"Ӭ";s:4:"Ӭ";s:2:"ӭ";s:4:"ӭ";s:2:"Ӯ";s:4:"Ӯ";s:2:"ӯ";s:4:"ӯ";s:2:"Ӱ";s:4:"Ӱ";s:2:"ӱ";s:4:"ӱ";s:2:"Ӳ";s:4:"Ӳ";s:2:"ӳ";s:4:"ӳ";s:2:"Ӵ";s:4:"Ӵ";s:2:"ӵ";s:4:"ӵ";s:2:"Ӹ";s:4:"Ӹ";s:2:"ӹ";s:4:"ӹ";s:2:"آ";s:4:"آ";s:2:"أ";s:4:"أ";s:2:"ؤ";s:4:"ؤ";s:2:"إ";s:4:"إ";s:2:"ئ";s:4:"ئ";s:2:"ۀ";s:4:"ۀ";s:2:"ۂ";s:4:"ۂ";s:2:"ۓ";s:4:"ۓ";s:3:"ऩ";s:6:"ऩ";s:3:"ऱ";s:6:"ऱ";s:3:"ऴ";s:6:"ऴ";s:3:"क़";s:6:"क़";s:3:"ख़";s:6:"ख़";s:3:"ग़";s:6:"ग़";s:3:"ज़";s:6:"ज़";s:3:"ड़";s:6:"ड़";s:3:"ढ़";s:6:"ढ़";s:3:"फ़";s:6:"फ़";s:3:"य़";s:6:"य़";s:3:"ো";s:6:"ো";s:3:"ৌ";s:6:"ৌ";s:3:"ড়";s:6:"ড়";s:3:"ঢ়";s:6:"ঢ়";s:3:"য়";s:6:"য়";s:3:"ਲ਼";s:6:"ਲ਼";s:3:"ਸ਼";s:6:"ਸ਼";s:3:"ਖ਼";s:6:"ਖ਼";s:3:"ਗ਼";s:6:"ਗ਼";s:3:"ਜ਼";s:6:"ਜ਼";s:3:"ਫ਼";s:6:"ਫ਼";s:3:"ୈ";s:6:"ୈ";s:3:"ୋ";s:6:"ୋ";s:3:"ୌ";s:6:"ୌ";s:3:"ଡ଼";s:6:"ଡ଼";s:3:"ଢ଼";s:6:"ଢ଼";s:3:"ஔ";s:6:"ஔ";s:3:"ொ";s:6:"ொ";s:3:"ோ";s:6:"ோ";s:3:"ௌ";s:6:"ௌ";s:3:"ై";s:6:"ై";s:3:"ೀ";s:6:"ೀ";s:3:"ೇ";s:6:"ೇ";s:3:"ೈ";s:6:"ೈ";s:3:"ೊ";s:6:"ೊ";s:3:"ೋ";s:9:"ೋ";s:3:"ൊ";s:6:"ൊ";s:3:"ോ";s:6:"ോ";s:3:"ൌ";s:6:"ൌ";s:3:"ේ";s:6:"ේ";s:3:"ො";s:6:"ො";s:3:"ෝ";s:9:"ෝ";s:3:"ෞ";s:6:"ෞ";s:3:"གྷ";s:6:"གྷ";s:3:"ཌྷ";s:6:"ཌྷ";s:3:"དྷ";s:6:"དྷ";s:3:"བྷ";s:6:"བྷ";s:3:"ཛྷ";s:6:"ཛྷ";s:3:"ཀྵ";s:6:"ཀྵ";s:3:"ཱི";s:6:"ཱི";s:3:"ཱུ";s:6:"ཱུ";s:3:"ྲྀ";s:6:"ྲྀ";s:3:"ླྀ";s:6:"ླྀ";s:3:"ཱྀ";s:6:"ཱྀ";s:3:"ྒྷ";s:6:"ྒྷ";s:3:"ྜྷ";s:6:"ྜྷ";s:3:"ྡྷ";s:6:"ྡྷ";s:3:"ྦྷ";s:6:"ྦྷ";s:3:"ྫྷ";s:6:"ྫྷ";s:3:"ྐྵ";s:6:"ྐྵ";s:3:"ဦ";s:6:"ဦ";s:3:"ᬆ";s:6:"ᬆ";s:3:"ᬈ";s:6:"ᬈ";s:3:"ᬊ";s:6:"ᬊ";s:3:"ᬌ";s:6:"ᬌ";s:3:"ᬎ";s:6:"ᬎ";s:3:"ᬒ";s:6:"ᬒ";s:3:"ᬻ";s:6:"ᬻ";s:3:"ᬽ";s:6:"ᬽ";s:3:"ᭀ";s:6:"ᭀ";s:3:"ᭁ";s:6:"ᭁ";s:3:"ᭃ";s:6:"ᭃ";s:3:"Ḁ";s:3:"Ḁ";s:3:"ḁ";s:3:"ḁ";s:3:"Ḃ";s:3:"Ḃ";s:3:"ḃ";s:3:"ḃ";s:3:"Ḅ";s:3:"Ḅ";s:3:"ḅ";s:3:"ḅ";s:3:"Ḇ";s:3:"Ḇ";s:3:"ḇ";s:3:"ḇ";s:3:"Ḉ";s:5:"Ḉ";s:3:"ḉ";s:5:"ḉ";s:3:"Ḋ";s:3:"Ḋ";s:3:"ḋ";s:3:"ḋ";s:3:"Ḍ";s:3:"Ḍ";s:3:"ḍ";s:3:"ḍ";s:3:"Ḏ";s:3:"Ḏ";s:3:"ḏ";s:3:"ḏ";s:3:"Ḑ";s:3:"Ḑ";s:3:"ḑ";s:3:"ḑ";s:3:"Ḓ";s:3:"Ḓ";s:3:"ḓ";s:3:"ḓ";s:3:"Ḕ";s:5:"Ḕ";s:3:"ḕ";s:5:"ḕ";s:3:"Ḗ";s:5:"Ḗ";s:3:"ḗ";s:5:"ḗ";s:3:"Ḙ";s:3:"Ḙ";s:3:"ḙ";s:3:"ḙ";s:3:"Ḛ";s:3:"Ḛ";s:3:"ḛ";s:3:"ḛ";s:3:"Ḝ";s:5:"Ḝ";s:3:"ḝ";s:5:"ḝ";s:3:"Ḟ";s:3:"Ḟ";s:3:"ḟ";s:3:"ḟ";s:3:"Ḡ";s:3:"Ḡ";s:3:"ḡ";s:3:"ḡ";s:3:"Ḣ";s:3:"Ḣ";s:3:"ḣ";s:3:"ḣ";s:3:"Ḥ";s:3:"Ḥ";s:3:"ḥ";s:3:"ḥ";s:3:"Ḧ";s:3:"Ḧ";s:3:"ḧ";s:3:"ḧ";s:3:"Ḩ";s:3:"Ḩ";s:3:"ḩ";s:3:"ḩ";s:3:"Ḫ";s:3:"Ḫ";s:3:"ḫ";s:3:"ḫ";s:3:"Ḭ";s:3:"Ḭ";s:3:"ḭ";s:3:"ḭ";s:3:"Ḯ";s:5:"Ḯ";s:3:"ḯ";s:5:"ḯ";s:3:"Ḱ";s:3:"Ḱ";s:3:"ḱ";s:3:"ḱ";s:3:"Ḳ";s:3:"Ḳ";s:3:"ḳ";s:3:"ḳ";s:3:"Ḵ";s:3:"Ḵ";s:3:"ḵ";s:3:"ḵ";s:3:"Ḷ";s:3:"Ḷ";s:3:"ḷ";s:3:"ḷ";s:3:"Ḹ";s:5:"Ḹ";s:3:"ḹ";s:5:"ḹ";s:3:"Ḻ";s:3:"Ḻ";s:3:"ḻ";s:3:"ḻ";s:3:"Ḽ";s:3:"Ḽ";s:3:"ḽ";s:3:"ḽ";s:3:"Ḿ";s:3:"Ḿ";s:3:"ḿ";s:3:"ḿ";s:3:"Ṁ";s:3:"Ṁ";s:3:"ṁ";s:3:"ṁ";s:3:"Ṃ";s:3:"Ṃ";s:3:"ṃ";s:3:"ṃ";s:3:"Ṅ";s:3:"Ṅ";s:3:"ṅ";s:3:"ṅ";s:3:"Ṇ";s:3:"Ṇ";s:3:"ṇ";s:3:"ṇ";s:3:"Ṉ";s:3:"Ṉ";s:3:"ṉ";s:3:"ṉ";s:3:"Ṋ";s:3:"Ṋ";s:3:"ṋ";s:3:"ṋ";s:3:"Ṍ";s:5:"Ṍ";s:3:"ṍ";s:5:"ṍ";s:3:"Ṏ";s:5:"Ṏ";s:3:"ṏ";s:5:"ṏ";s:3:"Ṑ";s:5:"Ṑ";s:3:"ṑ";s:5:"ṑ";s:3:"Ṓ";s:5:"Ṓ";s:3:"ṓ";s:5:"ṓ";s:3:"Ṕ";s:3:"Ṕ";s:3:"ṕ";s:3:"ṕ";s:3:"Ṗ";s:3:"Ṗ";s:3:"ṗ";s:3:"ṗ";s:3:"Ṙ";s:3:"Ṙ";s:3:"ṙ";s:3:"ṙ";s:3:"Ṛ";s:3:"Ṛ";s:3:"ṛ";s:3:"ṛ";s:3:"Ṝ";s:5:"Ṝ";s:3:"ṝ";s:5:"ṝ";s:3:"Ṟ";s:3:"Ṟ";s:3:"ṟ";s:3:"ṟ";s:3:"Ṡ";s:3:"Ṡ";s:3:"ṡ";s:3:"ṡ";s:3:"Ṣ";s:3:"Ṣ";s:3:"ṣ";s:3:"ṣ";s:3:"Ṥ";s:5:"Ṥ";s:3:"ṥ";s:5:"ṥ";s:3:"Ṧ";s:5:"Ṧ";s:3:"ṧ";s:5:"ṧ";s:3:"Ṩ";s:5:"Ṩ";s:3:"ṩ";s:5:"ṩ";s:3:"Ṫ";s:3:"Ṫ";s:3:"ṫ";s:3:"ṫ";s:3:"Ṭ";s:3:"Ṭ";s:3:"ṭ";s:3:"ṭ";s:3:"Ṯ";s:3:"Ṯ";s:3:"ṯ";s:3:"ṯ";s:3:"Ṱ";s:3:"Ṱ";s:3:"ṱ";s:3:"ṱ";s:3:"Ṳ";s:3:"Ṳ";s:3:"ṳ";s:3:"ṳ";s:3:"Ṵ";s:3:"Ṵ";s:3:"ṵ";s:3:"ṵ";s:3:"Ṷ";s:3:"Ṷ";s:3:"ṷ";s:3:"ṷ";s:3:"Ṹ";s:5:"Ṹ";s:3:"ṹ";s:5:"ṹ";s:3:"Ṻ";s:5:"Ṻ";s:3:"ṻ";s:5:"ṻ";s:3:"Ṽ";s:3:"Ṽ";s:3:"ṽ";s:3:"ṽ";s:3:"Ṿ";s:3:"Ṿ";s:3:"ṿ";s:3:"ṿ";s:3:"Ẁ";s:3:"Ẁ";s:3:"ẁ";s:3:"ẁ";s:3:"Ẃ";s:3:"Ẃ";s:3:"ẃ";s:3:"ẃ";s:3:"Ẅ";s:3:"Ẅ";s:3:"ẅ";s:3:"ẅ";s:3:"Ẇ";s:3:"Ẇ";s:3:"ẇ";s:3:"ẇ";s:3:"Ẉ";s:3:"Ẉ";s:3:"ẉ";s:3:"ẉ";s:3:"Ẋ";s:3:"Ẋ";s:3:"ẋ";s:3:"ẋ";s:3:"Ẍ";s:3:"Ẍ";s:3:"ẍ";s:3:"ẍ";s:3:"Ẏ";s:3:"Ẏ";s:3:"ẏ";s:3:"ẏ";s:3:"Ẑ";s:3:"Ẑ";s:3:"ẑ";s:3:"ẑ";s:3:"Ẓ";s:3:"Ẓ";s:3:"ẓ";s:3:"ẓ";s:3:"Ẕ";s:3:"Ẕ";s:3:"ẕ";s:3:"ẕ";s:3:"ẖ";s:3:"ẖ";s:3:"ẗ";s:3:"ẗ";s:3:"ẘ";s:3:"ẘ";s:3:"ẙ";s:3:"ẙ";s:3:"ẛ";s:4:"ẛ";s:3:"Ạ";s:3:"Ạ";s:3:"ạ";s:3:"ạ";s:3:"Ả";s:3:"Ả";s:3:"ả";s:3:"ả";s:3:"Ấ";s:5:"Ấ";s:3:"ấ";s:5:"ấ";s:3:"Ầ";s:5:"Ầ";s:3:"ầ";s:5:"ầ";s:3:"Ẩ";s:5:"Ẩ";s:3:"ẩ";s:5:"ẩ";s:3:"Ẫ";s:5:"Ẫ";s:3:"ẫ";s:5:"ẫ";s:3:"Ậ";s:5:"Ậ";s:3:"ậ";s:5:"ậ";s:3:"Ắ";s:5:"Ắ";s:3:"ắ";s:5:"ắ";s:3:"Ằ";s:5:"Ằ";s:3:"ằ";s:5:"ằ";s:3:"Ẳ";s:5:"Ẳ";s:3:"ẳ";s:5:"ẳ";s:3:"Ẵ";s:5:"Ẵ";s:3:"ẵ";s:5:"ẵ";s:3:"Ặ";s:5:"Ặ";s:3:"ặ";s:5:"ặ";s:3:"Ẹ";s:3:"Ẹ";s:3:"ẹ";s:3:"ẹ";s:3:"Ẻ";s:3:"Ẻ";s:3:"ẻ";s:3:"ẻ";s:3:"Ẽ";s:3:"Ẽ";s:3:"ẽ";s:3:"ẽ";s:3:"Ế";s:5:"Ế";s:3:"ế";s:5:"ế";s:3:"Ề";s:5:"Ề";s:3:"ề";s:5:"ề";s:3:"Ể";s:5:"Ể";s:3:"ể";s:5:"ể";s:3:"Ễ";s:5:"Ễ";s:3:"ễ";s:5:"ễ";s:3:"Ệ";s:5:"Ệ";s:3:"ệ";s:5:"ệ";s:3:"Ỉ";s:3:"Ỉ";s:3:"ỉ";s:3:"ỉ";s:3:"Ị";s:3:"Ị";s:3:"ị";s:3:"ị";s:3:"Ọ";s:3:"Ọ";s:3:"ọ";s:3:"ọ";s:3:"Ỏ";s:3:"Ỏ";s:3:"ỏ";s:3:"ỏ";s:3:"Ố";s:5:"Ố";s:3:"ố";s:5:"ố";s:3:"Ồ";s:5:"Ồ";s:3:"ồ";s:5:"ồ";s:3:"Ổ";s:5:"Ổ";s:3:"ổ";s:5:"ổ";s:3:"Ỗ";s:5:"Ỗ";s:3:"ỗ";s:5:"ỗ";s:3:"Ộ";s:5:"Ộ";s:3:"ộ";s:5:"ộ";s:3:"Ớ";s:5:"Ớ";s:3:"ớ";s:5:"ớ";s:3:"Ờ";s:5:"Ờ";s:3:"ờ";s:5:"ờ";s:3:"Ở";s:5:"Ở";s:3:"ở";s:5:"ở";s:3:"Ỡ";s:5:"Ỡ";s:3:"ỡ";s:5:"ỡ";s:3:"Ợ";s:5:"Ợ";s:3:"ợ";s:5:"ợ";s:3:"Ụ";s:3:"Ụ";s:3:"ụ";s:3:"ụ";s:3:"Ủ";s:3:"Ủ";s:3:"ủ";s:3:"ủ";s:3:"Ứ";s:5:"Ứ";s:3:"ứ";s:5:"ứ";s:3:"Ừ";s:5:"Ừ";s:3:"ừ";s:5:"ừ";s:3:"Ử";s:5:"Ử";s:3:"ử";s:5:"ử";s:3:"Ữ";s:5:"Ữ";s:3:"ữ";s:5:"ữ";s:3:"Ự";s:5:"Ự";s:3:"ự";s:5:"ự";s:3:"Ỳ";s:3:"Ỳ";s:3:"ỳ";s:3:"ỳ";s:3:"Ỵ";s:3:"Ỵ";s:3:"ỵ";s:3:"ỵ";s:3:"Ỷ";s:3:"Ỷ";s:3:"ỷ";s:3:"ỷ";s:3:"Ỹ";s:3:"Ỹ";s:3:"ỹ";s:3:"ỹ";s:3:"ἀ";s:4:"ἀ";s:3:"ἁ";s:4:"ἁ";s:3:"ἂ";s:6:"ἂ";s:3:"ἃ";s:6:"ἃ";s:3:"ἄ";s:6:"ἄ";s:3:"ἅ";s:6:"ἅ";s:3:"ἆ";s:6:"ἆ";s:3:"ἇ";s:6:"ἇ";s:3:"Ἀ";s:4:"Ἀ";s:3:"Ἁ";s:4:"Ἁ";s:3:"Ἂ";s:6:"Ἂ";s:3:"Ἃ";s:6:"Ἃ";s:3:"Ἄ";s:6:"Ἄ";s:3:"Ἅ";s:6:"Ἅ";s:3:"Ἆ";s:6:"Ἆ";s:3:"Ἇ";s:6:"Ἇ";s:3:"ἐ";s:4:"ἐ";s:3:"ἑ";s:4:"ἑ";s:3:"ἒ";s:6:"ἒ";s:3:"ἓ";s:6:"ἓ";s:3:"ἔ";s:6:"ἔ";s:3:"ἕ";s:6:"ἕ";s:3:"Ἐ";s:4:"Ἐ";s:3:"Ἑ";s:4:"Ἑ";s:3:"Ἒ";s:6:"Ἒ";s:3:"Ἓ";s:6:"Ἓ";s:3:"Ἔ";s:6:"Ἔ";s:3:"Ἕ";s:6:"Ἕ";s:3:"ἠ";s:4:"ἠ";s:3:"ἡ";s:4:"ἡ";s:3:"ἢ";s:6:"ἢ";s:3:"ἣ";s:6:"ἣ";s:3:"ἤ";s:6:"ἤ";s:3:"ἥ";s:6:"ἥ";s:3:"ἦ";s:6:"ἦ";s:3:"ἧ";s:6:"ἧ";s:3:"Ἠ";s:4:"Ἠ";s:3:"Ἡ";s:4:"Ἡ";s:3:"Ἢ";s:6:"Ἢ";s:3:"Ἣ";s:6:"Ἣ";s:3:"Ἤ";s:6:"Ἤ";s:3:"Ἥ";s:6:"Ἥ";s:3:"Ἦ";s:6:"Ἦ";s:3:"Ἧ";s:6:"Ἧ";s:3:"ἰ";s:4:"ἰ";s:3:"ἱ";s:4:"ἱ";s:3:"ἲ";s:6:"ἲ";s:3:"ἳ";s:6:"ἳ";s:3:"ἴ";s:6:"ἴ";s:3:"ἵ";s:6:"ἵ";s:3:"ἶ";s:6:"ἶ";s:3:"ἷ";s:6:"ἷ";s:3:"Ἰ";s:4:"Ἰ";s:3:"Ἱ";s:4:"Ἱ";s:3:"Ἲ";s:6:"Ἲ";s:3:"Ἳ";s:6:"Ἳ";s:3:"Ἴ";s:6:"Ἴ";s:3:"Ἵ";s:6:"Ἵ";s:3:"Ἶ";s:6:"Ἶ";s:3:"Ἷ";s:6:"Ἷ";s:3:"ὀ";s:4:"ὀ";s:3:"ὁ";s:4:"ὁ";s:3:"ὂ";s:6:"ὂ";s:3:"ὃ";s:6:"ὃ";s:3:"ὄ";s:6:"ὄ";s:3:"ὅ";s:6:"ὅ";s:3:"Ὀ";s:4:"Ὀ";s:3:"Ὁ";s:4:"Ὁ";s:3:"Ὂ";s:6:"Ὂ";s:3:"Ὃ";s:6:"Ὃ";s:3:"Ὄ";s:6:"Ὄ";s:3:"Ὅ";s:6:"Ὅ";s:3:"ὐ";s:4:"ὐ";s:3:"ὑ";s:4:"ὑ";s:3:"ὒ";s:6:"ὒ";s:3:"ὓ";s:6:"ὓ";s:3:"ὔ";s:6:"ὔ";s:3:"ὕ";s:6:"ὕ";s:3:"ὖ";s:6:"ὖ";s:3:"ὗ";s:6:"ὗ";s:3:"Ὑ";s:4:"Ὑ";s:3:"Ὓ";s:6:"Ὓ";s:3:"Ὕ";s:6:"Ὕ";s:3:"Ὗ";s:6:"Ὗ";s:3:"ὠ";s:4:"ὠ";s:3:"ὡ";s:4:"ὡ";s:3:"ὢ";s:6:"ὢ";s:3:"ὣ";s:6:"ὣ";s:3:"ὤ";s:6:"ὤ";s:3:"ὥ";s:6:"ὥ";s:3:"ὦ";s:6:"ὦ";s:3:"ὧ";s:6:"ὧ";s:3:"Ὠ";s:4:"Ὠ";s:3:"Ὡ";s:4:"Ὡ";s:3:"Ὢ";s:6:"Ὢ";s:3:"Ὣ";s:6:"Ὣ";s:3:"Ὤ";s:6:"Ὤ";s:3:"Ὥ";s:6:"Ὥ";s:3:"Ὦ";s:6:"Ὦ";s:3:"Ὧ";s:6:"Ὧ";s:3:"ὰ";s:4:"ὰ";s:3:"ά";s:4:"ά";s:3:"ὲ";s:4:"ὲ";s:3:"έ";s:4:"έ";s:3:"ὴ";s:4:"ὴ";s:3:"ή";s:4:"ή";s:3:"ὶ";s:4:"ὶ";s:3:"ί";s:4:"ί";s:3:"ὸ";s:4:"ὸ";s:3:"ό";s:4:"ό";s:3:"ὺ";s:4:"ὺ";s:3:"ύ";s:4:"ύ";s:3:"ὼ";s:4:"ὼ";s:3:"ώ";s:4:"ώ";s:3:"ᾀ";s:6:"ᾀ";s:3:"ᾁ";s:6:"ᾁ";s:3:"ᾂ";s:8:"ᾂ";s:3:"ᾃ";s:8:"ᾃ";s:3:"ᾄ";s:8:"ᾄ";s:3:"ᾅ";s:8:"ᾅ";s:3:"ᾆ";s:8:"ᾆ";s:3:"ᾇ";s:8:"ᾇ";s:3:"ᾈ";s:6:"ᾈ";s:3:"ᾉ";s:6:"ᾉ";s:3:"ᾊ";s:8:"ᾊ";s:3:"ᾋ";s:8:"ᾋ";s:3:"ᾌ";s:8:"ᾌ";s:3:"ᾍ";s:8:"ᾍ";s:3:"ᾎ";s:8:"ᾎ";s:3:"ᾏ";s:8:"ᾏ";s:3:"ᾐ";s:6:"ᾐ";s:3:"ᾑ";s:6:"ᾑ";s:3:"ᾒ";s:8:"ᾒ";s:3:"ᾓ";s:8:"ᾓ";s:3:"ᾔ";s:8:"ᾔ";s:3:"ᾕ";s:8:"ᾕ";s:3:"ᾖ";s:8:"ᾖ";s:3:"ᾗ";s:8:"ᾗ";s:3:"ᾘ";s:6:"ᾘ";s:3:"ᾙ";s:6:"ᾙ";s:3:"ᾚ";s:8:"ᾚ";s:3:"ᾛ";s:8:"ᾛ";s:3:"ᾜ";s:8:"ᾜ";s:3:"ᾝ";s:8:"ᾝ";s:3:"ᾞ";s:8:"ᾞ";s:3:"ᾟ";s:8:"ᾟ";s:3:"ᾠ";s:6:"ᾠ";s:3:"ᾡ";s:6:"ᾡ";s:3:"ᾢ";s:8:"ᾢ";s:3:"ᾣ";s:8:"ᾣ";s:3:"ᾤ";s:8:"ᾤ";s:3:"ᾥ";s:8:"ᾥ";s:3:"ᾦ";s:8:"ᾦ";s:3:"ᾧ";s:8:"ᾧ";s:3:"ᾨ";s:6:"ᾨ";s:3:"ᾩ";s:6:"ᾩ";s:3:"ᾪ";s:8:"ᾪ";s:3:"ᾫ";s:8:"ᾫ";s:3:"ᾬ";s:8:"ᾬ";s:3:"ᾭ";s:8:"ᾭ";s:3:"ᾮ";s:8:"ᾮ";s:3:"ᾯ";s:8:"ᾯ";s:3:"ᾰ";s:4:"ᾰ";s:3:"ᾱ";s:4:"ᾱ";s:3:"ᾲ";s:6:"ᾲ";s:3:"ᾳ";s:4:"ᾳ";s:3:"ᾴ";s:6:"ᾴ";s:3:"ᾶ";s:4:"ᾶ";s:3:"ᾷ";s:6:"ᾷ";s:3:"Ᾰ";s:4:"Ᾰ";s:3:"Ᾱ";s:4:"Ᾱ";s:3:"Ὰ";s:4:"Ὰ";s:3:"Ά";s:4:"Ά";s:3:"ᾼ";s:4:"ᾼ";s:3:"ι";s:2:"ι";s:3:"῁";s:4:"῁";s:3:"ῂ";s:6:"ῂ";s:3:"ῃ";s:4:"ῃ";s:3:"ῄ";s:6:"ῄ";s:3:"ῆ";s:4:"ῆ";s:3:"ῇ";s:6:"ῇ";s:3:"Ὲ";s:4:"Ὲ";s:3:"Έ";s:4:"Έ";s:3:"Ὴ";s:4:"Ὴ";s:3:"Ή";s:4:"Ή";s:3:"ῌ";s:4:"ῌ";s:3:"῍";s:5:"῍";s:3:"῎";s:5:"῎";s:3:"῏";s:5:"῏";s:3:"ῐ";s:4:"ῐ";s:3:"ῑ";s:4:"ῑ";s:3:"ῒ";s:6:"ῒ";s:3:"ΐ";s:6:"ΐ";s:3:"ῖ";s:4:"ῖ";s:3:"ῗ";s:6:"ῗ";s:3:"Ῐ";s:4:"Ῐ";s:3:"Ῑ";s:4:"Ῑ";s:3:"Ὶ";s:4:"Ὶ";s:3:"Ί";s:4:"Ί";s:3:"῝";s:5:"῝";s:3:"῞";s:5:"῞";s:3:"῟";s:5:"῟";s:3:"ῠ";s:4:"ῠ";s:3:"ῡ";s:4:"ῡ";s:3:"ῢ";s:6:"ῢ";s:3:"ΰ";s:6:"ΰ";s:3:"ῤ";s:4:"ῤ";s:3:"ῥ";s:4:"ῥ";s:3:"ῦ";s:4:"ῦ";s:3:"ῧ";s:6:"ῧ";s:3:"Ῠ";s:4:"Ῠ";s:3:"Ῡ";s:4:"Ῡ";s:3:"Ὺ";s:4:"Ὺ";s:3:"Ύ";s:4:"Ύ";s:3:"Ῥ";s:4:"Ῥ";s:3:"῭";s:4:"῭";s:3:"΅";s:4:"΅";s:3:"`";s:1:"`";s:3:"ῲ";s:6:"ῲ";s:3:"ῳ";s:4:"ῳ";s:3:"ῴ";s:6:"ῴ";s:3:"ῶ";s:4:"ῶ";s:3:"ῷ";s:6:"ῷ";s:3:"Ὸ";s:4:"Ὸ";s:3:"Ό";s:4:"Ό";s:3:"Ὼ";s:4:"Ὼ";s:3:"Ώ";s:4:"Ώ";s:3:"ῼ";s:4:"ῼ";s:3:"´";s:2:"´";s:3:" ";s:3:" ";s:3:" ";s:3:" ";s:3:"Ω";s:2:"Ω";s:3:"K";s:1:"K";s:3:"Å";s:3:"Å";s:3:"↚";s:5:"↚";s:3:"↛";s:5:"↛";s:3:"↮";s:5:"↮";s:3:"⇍";s:5:"⇍";s:3:"⇎";s:5:"⇎";s:3:"⇏";s:5:"⇏";s:3:"∄";s:5:"∄";s:3:"∉";s:5:"∉";s:3:"∌";s:5:"∌";s:3:"∤";s:5:"∤";s:3:"∦";s:5:"∦";s:3:"≁";s:5:"≁";s:3:"≄";s:5:"≄";s:3:"≇";s:5:"≇";s:3:"≉";s:5:"≉";s:3:"≠";s:3:"≠";s:3:"≢";s:5:"≢";s:3:"≭";s:5:"≭";s:3:"≮";s:3:"≮";s:3:"≯";s:3:"≯";s:3:"≰";s:5:"≰";s:3:"≱";s:5:"≱";s:3:"≴";s:5:"≴";s:3:"≵";s:5:"≵";s:3:"≸";s:5:"≸";s:3:"≹";s:5:"≹";s:3:"⊀";s:5:"⊀";s:3:"⊁";s:5:"⊁";s:3:"⊄";s:5:"⊄";s:3:"⊅";s:5:"⊅";s:3:"⊈";s:5:"⊈";s:3:"⊉";s:5:"⊉";s:3:"⊬";s:5:"⊬";s:3:"⊭";s:5:"⊭";s:3:"⊮";s:5:"⊮";s:3:"⊯";s:5:"⊯";s:3:"⋠";s:5:"⋠";s:3:"⋡";s:5:"⋡";s:3:"⋢";s:5:"⋢";s:3:"⋣";s:5:"⋣";s:3:"⋪";s:5:"⋪";s:3:"⋫";s:5:"⋫";s:3:"⋬";s:5:"⋬";s:3:"⋭";s:5:"⋭";s:3:"〈";s:3:"〈";s:3:"〉";s:3:"〉";s:3:"⫝̸";s:5:"⫝̸";s:3:"が";s:6:"が";s:3:"ぎ";s:6:"ぎ";s:3:"ぐ";s:6:"ぐ";s:3:"げ";s:6:"げ";s:3:"ご";s:6:"ご";s:3:"ざ";s:6:"ざ";s:3:"じ";s:6:"じ";s:3:"ず";s:6:"ず";s:3:"ぜ";s:6:"ぜ";s:3:"ぞ";s:6:"ぞ";s:3:"だ";s:6:"だ";s:3:"ぢ";s:6:"ぢ";s:3:"づ";s:6:"づ";s:3:"で";s:6:"で";s:3:"ど";s:6:"ど";s:3:"ば";s:6:"ば";s:3:"ぱ";s:6:"ぱ";s:3:"び";s:6:"び";s:3:"ぴ";s:6:"ぴ";s:3:"ぶ";s:6:"ぶ";s:3:"ぷ";s:6:"ぷ";s:3:"べ";s:6:"べ";s:3:"ぺ";s:6:"ぺ";s:3:"ぼ";s:6:"ぼ";s:3:"ぽ";s:6:"ぽ";s:3:"ゔ";s:6:"ゔ";s:3:"ゞ";s:6:"ゞ";s:3:"ガ";s:6:"ガ";s:3:"ギ";s:6:"ギ";s:3:"グ";s:6:"グ";s:3:"ゲ";s:6:"ゲ";s:3:"ゴ";s:6:"ゴ";s:3:"ザ";s:6:"ザ";s:3:"ジ";s:6:"ジ";s:3:"ズ";s:6:"ズ";s:3:"ゼ";s:6:"ゼ";s:3:"ゾ";s:6:"ゾ";s:3:"ダ";s:6:"ダ";s:3:"ヂ";s:6:"ヂ";s:3:"ヅ";s:6:"ヅ";s:3:"デ";s:6:"デ";s:3:"ド";s:6:"ド";s:3:"バ";s:6:"バ";s:3:"パ";s:6:"パ";s:3:"ビ";s:6:"ビ";s:3:"ピ";s:6:"ピ";s:3:"ブ";s:6:"ブ";s:3:"プ";s:6:"プ";s:3:"ベ";s:6:"ベ";s:3:"ペ";s:6:"ペ";s:3:"ボ";s:6:"ボ";s:3:"ポ";s:6:"ポ";s:3:"ヴ";s:6:"ヴ";s:3:"ヷ";s:6:"ヷ";s:3:"ヸ";s:6:"ヸ";s:3:"ヹ";s:6:"ヹ";s:3:"ヺ";s:6:"ヺ";s:3:"ヾ";s:6:"ヾ";s:3:"豈";s:3:"豈";s:3:"更";s:3:"更";s:3:"車";s:3:"車";s:3:"賈";s:3:"賈";s:3:"滑";s:3:"滑";s:3:"串";s:3:"串";s:3:"句";s:3:"句";s:3:"龜";s:3:"龜";s:3:"龜";s:3:"龜";s:3:"契";s:3:"契";s:3:"金";s:3:"金";s:3:"喇";s:3:"喇";s:3:"奈";s:3:"奈";s:3:"懶";s:3:"懶";s:3:"癩";s:3:"癩";s:3:"羅";s:3:"羅";s:3:"蘿";s:3:"蘿";s:3:"螺";s:3:"螺";s:3:"裸";s:3:"裸";s:3:"邏";s:3:"邏";s:3:"樂";s:3:"樂";s:3:"洛";s:3:"洛";s:3:"烙";s:3:"烙";s:3:"珞";s:3:"珞";s:3:"落";s:3:"落";s:3:"酪";s:3:"酪";s:3:"駱";s:3:"駱";s:3:"亂";s:3:"亂";s:3:"卵";s:3:"卵";s:3:"欄";s:3:"欄";s:3:"爛";s:3:"爛";s:3:"蘭";s:3:"蘭";s:3:"鸞";s:3:"鸞";s:3:"嵐";s:3:"嵐";s:3:"濫";s:3:"濫";s:3:"藍";s:3:"藍";s:3:"襤";s:3:"襤";s:3:"拉";s:3:"拉";s:3:"臘";s:3:"臘";s:3:"蠟";s:3:"蠟";s:3:"廊";s:3:"廊";s:3:"朗";s:3:"朗";s:3:"浪";s:3:"浪";s:3:"狼";s:3:"狼";s:3:"郎";s:3:"郎";s:3:"來";s:3:"來";s:3:"冷";s:3:"冷";s:3:"勞";s:3:"勞";s:3:"擄";s:3:"擄";s:3:"櫓";s:3:"櫓";s:3:"爐";s:3:"爐";s:3:"盧";s:3:"盧";s:3:"老";s:3:"老";s:3:"蘆";s:3:"蘆";s:3:"虜";s:3:"虜";s:3:"路";s:3:"路";s:3:"露";s:3:"露";s:3:"魯";s:3:"魯";s:3:"鷺";s:3:"鷺";s:3:"碌";s:3:"碌";s:3:"祿";s:3:"祿";s:3:"綠";s:3:"綠";s:3:"菉";s:3:"菉";s:3:"錄";s:3:"錄";s:3:"鹿";s:3:"鹿";s:3:"論";s:3:"論";s:3:"壟";s:3:"壟";s:3:"弄";s:3:"弄";s:3:"籠";s:3:"籠";s:3:"聾";s:3:"聾";s:3:"牢";s:3:"牢";s:3:"磊";s:3:"磊";s:3:"賂";s:3:"賂";s:3:"雷";s:3:"雷";s:3:"壘";s:3:"壘";s:3:"屢";s:3:"屢";s:3:"樓";s:3:"樓";s:3:"淚";s:3:"淚";s:3:"漏";s:3:"漏";s:3:"累";s:3:"累";s:3:"縷";s:3:"縷";s:3:"陋";s:3:"陋";s:3:"勒";s:3:"勒";s:3:"肋";s:3:"肋";s:3:"凜";s:3:"凜";s:3:"凌";s:3:"凌";s:3:"稜";s:3:"稜";s:3:"綾";s:3:"綾";s:3:"菱";s:3:"菱";s:3:"陵";s:3:"陵";s:3:"讀";s:3:"讀";s:3:"拏";s:3:"拏";s:3:"樂";s:3:"樂";s:3:"諾";s:3:"諾";s:3:"丹";s:3:"丹";s:3:"寧";s:3:"寧";s:3:"怒";s:3:"怒";s:3:"率";s:3:"率";s:3:"異";s:3:"異";s:3:"北";s:3:"北";s:3:"磻";s:3:"磻";s:3:"便";s:3:"便";s:3:"復";s:3:"復";s:3:"不";s:3:"不";s:3:"泌";s:3:"泌";s:3:"數";s:3:"數";s:3:"索";s:3:"索";s:3:"參";s:3:"參";s:3:"塞";s:3:"塞";s:3:"省";s:3:"省";s:3:"葉";s:3:"葉";s:3:"說";s:3:"說";s:3:"殺";s:3:"殺";s:3:"辰";s:3:"辰";s:3:"沈";s:3:"沈";s:3:"拾";s:3:"拾";s:3:"若";s:3:"若";s:3:"掠";s:3:"掠";s:3:"略";s:3:"略";s:3:"亮";s:3:"亮";s:3:"兩";s:3:"兩";s:3:"凉";s:3:"凉";s:3:"梁";s:3:"梁";s:3:"糧";s:3:"糧";s:3:"良";s:3:"良";s:3:"諒";s:3:"諒";s:3:"量";s:3:"量";s:3:"勵";s:3:"勵";s:3:"呂";s:3:"呂";s:3:"女";s:3:"女";s:3:"廬";s:3:"廬";s:3:"旅";s:3:"旅";s:3:"濾";s:3:"濾";s:3:"礪";s:3:"礪";s:3:"閭";s:3:"閭";s:3:"驪";s:3:"驪";s:3:"麗";s:3:"麗";s:3:"黎";s:3:"黎";s:3:"力";s:3:"力";s:3:"曆";s:3:"曆";s:3:"歷";s:3:"歷";s:3:"轢";s:3:"轢";s:3:"年";s:3:"年";s:3:"憐";s:3:"憐";s:3:"戀";s:3:"戀";s:3:"撚";s:3:"撚";s:3:"漣";s:3:"漣";s:3:"煉";s:3:"煉";s:3:"璉";s:3:"璉";s:3:"秊";s:3:"秊";s:3:"練";s:3:"練";s:3:"聯";s:3:"聯";s:3:"輦";s:3:"輦";s:3:"蓮";s:3:"蓮";s:3:"連";s:3:"連";s:3:"鍊";s:3:"鍊";s:3:"列";s:3:"列";s:3:"劣";s:3:"劣";s:3:"咽";s:3:"咽";s:3:"烈";s:3:"烈";s:3:"裂";s:3:"裂";s:3:"說";s:3:"說";s:3:"廉";s:3:"廉";s:3:"念";s:3:"念";s:3:"捻";s:3:"捻";s:3:"殮";s:3:"殮";s:3:"簾";s:3:"簾";s:3:"獵";s:3:"獵";s:3:"令";s:3:"令";s:3:"囹";s:3:"囹";s:3:"寧";s:3:"寧";s:3:"嶺";s:3:"嶺";s:3:"怜";s:3:"怜";s:3:"玲";s:3:"玲";s:3:"瑩";s:3:"瑩";s:3:"羚";s:3:"羚";s:3:"聆";s:3:"聆";s:3:"鈴";s:3:"鈴";s:3:"零";s:3:"零";s:3:"靈";s:3:"靈";s:3:"領";s:3:"領";s:3:"例";s:3:"例";s:3:"禮";s:3:"禮";s:3:"醴";s:3:"醴";s:3:"隸";s:3:"隸";s:3:"惡";s:3:"惡";s:3:"了";s:3:"了";s:3:"僚";s:3:"僚";s:3:"寮";s:3:"寮";s:3:"尿";s:3:"尿";s:3:"料";s:3:"料";s:3:"樂";s:3:"樂";s:3:"燎";s:3:"燎";s:3:"療";s:3:"療";s:3:"蓼";s:3:"蓼";s:3:"遼";s:3:"遼";s:3:"龍";s:3:"龍";s:3:"暈";s:3:"暈";s:3:"阮";s:3:"阮";s:3:"劉";s:3:"劉";s:3:"杻";s:3:"杻";s:3:"柳";s:3:"柳";s:3:"流";s:3:"流";s:3:"溜";s:3:"溜";s:3:"琉";s:3:"琉";s:3:"留";s:3:"留";s:3:"硫";s:3:"硫";s:3:"紐";s:3:"紐";s:3:"類";s:3:"類";s:3:"六";s:3:"六";s:3:"戮";s:3:"戮";s:3:"陸";s:3:"陸";s:3:"倫";s:3:"倫";s:3:"崙";s:3:"崙";s:3:"淪";s:3:"淪";s:3:"輪";s:3:"輪";s:3:"律";s:3:"律";s:3:"慄";s:3:"慄";s:3:"栗";s:3:"栗";s:3:"率";s:3:"率";s:3:"隆";s:3:"隆";s:3:"利";s:3:"利";s:3:"吏";s:3:"吏";s:3:"履";s:3:"履";s:3:"易";s:3:"易";s:3:"李";s:3:"李";s:3:"梨";s:3:"梨";s:3:"泥";s:3:"泥";s:3:"理";s:3:"理";s:3:"痢";s:3:"痢";s:3:"罹";s:3:"罹";s:3:"裏";s:3:"裏";s:3:"裡";s:3:"裡";s:3:"里";s:3:"里";s:3:"離";s:3:"離";s:3:"匿";s:3:"匿";s:3:"溺";s:3:"溺";s:3:"吝";s:3:"吝";s:3:"燐";s:3:"燐";s:3:"璘";s:3:"璘";s:3:"藺";s:3:"藺";s:3:"隣";s:3:"隣";s:3:"鱗";s:3:"鱗";s:3:"麟";s:3:"麟";s:3:"林";s:3:"林";s:3:"淋";s:3:"淋";s:3:"臨";s:3:"臨";s:3:"立";s:3:"立";s:3:"笠";s:3:"笠";s:3:"粒";s:3:"粒";s:3:"狀";s:3:"狀";s:3:"炙";s:3:"炙";s:3:"識";s:3:"識";s:3:"什";s:3:"什";s:3:"茶";s:3:"茶";s:3:"刺";s:3:"刺";s:3:"切";s:3:"切";s:3:"度";s:3:"度";s:3:"拓";s:3:"拓";s:3:"糖";s:3:"糖";s:3:"宅";s:3:"宅";s:3:"洞";s:3:"洞";s:3:"暴";s:3:"暴";s:3:"輻";s:3:"輻";s:3:"行";s:3:"行";s:3:"降";s:3:"降";s:3:"見";s:3:"見";s:3:"廓";s:3:"廓";s:3:"兀";s:3:"兀";s:3:"嗀";s:3:"嗀";s:3:"塚";s:3:"塚";s:3:"晴";s:3:"晴";s:3:"凞";s:3:"凞";s:3:"猪";s:3:"猪";s:3:"益";s:3:"益";s:3:"礼";s:3:"礼";s:3:"神";s:3:"神";s:3:"祥";s:3:"祥";s:3:"福";s:3:"福";s:3:"靖";s:3:"靖";s:3:"精";s:3:"精";s:3:"羽";s:3:"羽";s:3:"蘒";s:3:"蘒";s:3:"諸";s:3:"諸";s:3:"逸";s:3:"逸";s:3:"都";s:3:"都";s:3:"飯";s:3:"飯";s:3:"飼";s:3:"飼";s:3:"館";s:3:"館";s:3:"鶴";s:3:"鶴";s:3:"侮";s:3:"侮";s:3:"僧";s:3:"僧";s:3:"免";s:3:"免";s:3:"勉";s:3:"勉";s:3:"勤";s:3:"勤";s:3:"卑";s:3:"卑";s:3:"喝";s:3:"喝";s:3:"嘆";s:3:"嘆";s:3:"器";s:3:"器";s:3:"塀";s:3:"塀";s:3:"墨";s:3:"墨";s:3:"層";s:3:"層";s:3:"屮";s:3:"屮";s:3:"悔";s:3:"悔";s:3:"慨";s:3:"慨";s:3:"憎";s:3:"憎";s:3:"懲";s:3:"懲";s:3:"敏";s:3:"敏";s:3:"既";s:3:"既";s:3:"暑";s:3:"暑";s:3:"梅";s:3:"梅";s:3:"海";s:3:"海";s:3:"渚";s:3:"渚";s:3:"漢";s:3:"漢";s:3:"煮";s:3:"煮";s:3:"爫";s:3:"爫";s:3:"琢";s:3:"琢";s:3:"碑";s:3:"碑";s:3:"社";s:3:"社";s:3:"祉";s:3:"祉";s:3:"祈";s:3:"祈";s:3:"祐";s:3:"祐";s:3:"祖";s:3:"祖";s:3:"祝";s:3:"祝";s:3:"禍";s:3:"禍";s:3:"禎";s:3:"禎";s:3:"穀";s:3:"穀";s:3:"突";s:3:"突";s:3:"節";s:3:"節";s:3:"練";s:3:"練";s:3:"縉";s:3:"縉";s:3:"繁";s:3:"繁";s:3:"署";s:3:"署";s:3:"者";s:3:"者";s:3:"臭";s:3:"臭";s:3:"艹";s:3:"艹";s:3:"艹";s:3:"艹";s:3:"著";s:3:"著";s:3:"褐";s:3:"褐";s:3:"視";s:3:"視";s:3:"謁";s:3:"謁";s:3:"謹";s:3:"謹";s:3:"賓";s:3:"賓";s:3:"贈";s:3:"贈";s:3:"辶";s:3:"辶";s:3:"逸";s:3:"逸";s:3:"難";s:3:"難";s:3:"響";s:3:"響";s:3:"頻";s:3:"頻";s:3:"恵";s:3:"恵";s:3:"𤋮";s:4:"𤋮";s:3:"舘";s:3:"舘";s:3:"並";s:3:"並";s:3:"况";s:3:"况";s:3:"全";s:3:"全";s:3:"侀";s:3:"侀";s:3:"充";s:3:"充";s:3:"冀";s:3:"冀";s:3:"勇";s:3:"勇";s:3:"勺";s:3:"勺";s:3:"喝";s:3:"喝";s:3:"啕";s:3:"啕";s:3:"喙";s:3:"喙";s:3:"嗢";s:3:"嗢";s:3:"塚";s:3:"塚";s:3:"墳";s:3:"墳";s:3:"奄";s:3:"奄";s:3:"奔";s:3:"奔";s:3:"婢";s:3:"婢";s:3:"嬨";s:3:"嬨";s:3:"廒";s:3:"廒";s:3:"廙";s:3:"廙";s:3:"彩";s:3:"彩";s:3:"徭";s:3:"徭";s:3:"惘";s:3:"惘";s:3:"慎";s:3:"慎";s:3:"愈";s:3:"愈";s:3:"憎";s:3:"憎";s:3:"慠";s:3:"慠";s:3:"懲";s:3:"懲";s:3:"戴";s:3:"戴";s:3:"揄";s:3:"揄";s:3:"搜";s:3:"搜";s:3:"摒";s:3:"摒";s:3:"敖";s:3:"敖";s:3:"晴";s:3:"晴";s:3:"朗";s:3:"朗";s:3:"望";s:3:"望";s:3:"杖";s:3:"杖";s:3:"歹";s:3:"歹";s:3:"殺";s:3:"殺";s:3:"流";s:3:"流";s:3:"滛";s:3:"滛";s:3:"滋";s:3:"滋";s:3:"漢";s:3:"漢";s:3:"瀞";s:3:"瀞";s:3:"煮";s:3:"煮";s:3:"瞧";s:3:"瞧";s:3:"爵";s:3:"爵";s:3:"犯";s:3:"犯";s:3:"猪";s:3:"猪";s:3:"瑱";s:3:"瑱";s:3:"甆";s:3:"甆";s:3:"画";s:3:"画";s:3:"瘝";s:3:"瘝";s:3:"瘟";s:3:"瘟";s:3:"益";s:3:"益";s:3:"盛";s:3:"盛";s:3:"直";s:3:"直";s:3:"睊";s:3:"睊";s:3:"着";s:3:"着";s:3:"磌";s:3:"磌";s:3:"窱";s:3:"窱";s:3:"節";s:3:"節";s:3:"类";s:3:"类";s:3:"絛";s:3:"絛";s:3:"練";s:3:"練";s:3:"缾";s:3:"缾";s:3:"者";s:3:"者";s:3:"荒";s:3:"荒";s:3:"華";s:3:"華";s:3:"蝹";s:3:"蝹";s:3:"襁";s:3:"襁";s:3:"覆";s:3:"覆";s:3:"視";s:3:"視";s:3:"調";s:3:"調";s:3:"諸";s:3:"諸";s:3:"請";s:3:"請";s:3:"謁";s:3:"謁";s:3:"諾";s:3:"諾";s:3:"諭";s:3:"諭";s:3:"謹";s:3:"謹";s:3:"變";s:3:"變";s:3:"贈";s:3:"贈";s:3:"輸";s:3:"輸";s:3:"遲";s:3:"遲";s:3:"醙";s:3:"醙";s:3:"鉶";s:3:"鉶";s:3:"陼";s:3:"陼";s:3:"難";s:3:"難";s:3:"靖";s:3:"靖";s:3:"韛";s:3:"韛";s:3:"響";s:3:"響";s:3:"頋";s:3:"頋";s:3:"頻";s:3:"頻";s:3:"鬒";s:3:"鬒";s:3:"龜";s:3:"龜";s:3:"𢡊";s:4:"𢡊";s:3:"𢡄";s:4:"𢡄";s:3:"𣏕";s:4:"𣏕";s:3:"㮝";s:3:"㮝";s:3:"䀘";s:3:"䀘";s:3:"䀹";s:3:"䀹";s:3:"𥉉";s:4:"𥉉";s:3:"𥳐";s:4:"𥳐";s:3:"𧻓";s:4:"𧻓";s:3:"齃";s:3:"齃";s:3:"龎";s:3:"龎";s:3:"יִ";s:4:"יִ";s:3:"ײַ";s:4:"ײַ";s:3:"שׁ";s:4:"שׁ";s:3:"שׂ";s:4:"שׂ";s:3:"שּׁ";s:6:"שּׁ";s:3:"שּׂ";s:6:"שּׂ";s:3:"אַ";s:4:"אַ";s:3:"אָ";s:4:"אָ";s:3:"אּ";s:4:"אּ";s:3:"בּ";s:4:"בּ";s:3:"גּ";s:4:"גּ";s:3:"דּ";s:4:"דּ";s:3:"הּ";s:4:"הּ";s:3:"וּ";s:4:"וּ";s:3:"זּ";s:4:"זּ";s:3:"טּ";s:4:"טּ";s:3:"יּ";s:4:"יּ";s:3:"ךּ";s:4:"ךּ";s:3:"כּ";s:4:"כּ";s:3:"לּ";s:4:"לּ";s:3:"מּ";s:4:"מּ";s:3:"נּ";s:4:"נּ";s:3:"סּ";s:4:"סּ";s:3:"ףּ";s:4:"ףּ";s:3:"פּ";s:4:"פּ";s:3:"צּ";s:4:"צּ";s:3:"קּ";s:4:"קּ";s:3:"רּ";s:4:"רּ";s:3:"שּ";s:4:"שּ";s:3:"תּ";s:4:"תּ";s:3:"וֹ";s:4:"וֹ";s:3:"בֿ";s:4:"בֿ";s:3:"כֿ";s:4:"כֿ";s:3:"פֿ";s:4:"פֿ";s:4:"𑂚";s:8:"𑂚";s:4:"𑂜";s:8:"𑂜";s:4:"𑂫";s:8:"𑂫";s:4:"𝅗𝅥";s:8:"𝅗𝅥";s:4:"𝅘𝅥";s:8:"𝅘𝅥";s:4:"𝅘𝅥𝅮";s:12:"𝅘𝅥𝅮";s:4:"𝅘𝅥𝅯";s:12:"𝅘𝅥𝅯";s:4:"𝅘𝅥𝅰";s:12:"𝅘𝅥𝅰";s:4:"𝅘𝅥𝅱";s:12:"𝅘𝅥𝅱";s:4:"𝅘𝅥𝅲";s:12:"𝅘𝅥𝅲";s:4:"𝆹𝅥";s:8:"𝆹𝅥";s:4:"𝆺𝅥";s:8:"𝆺𝅥";s:4:"𝆹𝅥𝅮";s:12:"𝆹𝅥𝅮";s:4:"𝆺𝅥𝅮";s:12:"𝆺𝅥𝅮";s:4:"𝆹𝅥𝅯";s:12:"𝆹𝅥𝅯";s:4:"𝆺𝅥𝅯";s:12:"𝆺𝅥𝅯";s:4:"丽";s:3:"丽";s:4:"丸";s:3:"丸";s:4:"乁";s:3:"乁";s:4:"𠄢";s:4:"𠄢";s:4:"你";s:3:"你";s:4:"侮";s:3:"侮";s:4:"侻";s:3:"侻";s:4:"倂";s:3:"倂";s:4:"偺";s:3:"偺";s:4:"備";s:3:"備";s:4:"僧";s:3:"僧";s:4:"像";s:3:"像";s:4:"㒞";s:3:"㒞";s:4:"𠘺";s:4:"𠘺";s:4:"免";s:3:"免";s:4:"兔";s:3:"兔";s:4:"兤";s:3:"兤";s:4:"具";s:3:"具";s:4:"𠔜";s:4:"𠔜";s:4:"㒹";s:3:"㒹";s:4:"內";s:3:"內";s:4:"再";s:3:"再";s:4:"𠕋";s:4:"𠕋";s:4:"冗";s:3:"冗";s:4:"冤";s:3:"冤";s:4:"仌";s:3:"仌";s:4:"冬";s:3:"冬";s:4:"况";s:3:"况";s:4:"𩇟";s:4:"𩇟";s:4:"凵";s:3:"凵";s:4:"刃";s:3:"刃";s:4:"㓟";s:3:"㓟";s:4:"刻";s:3:"刻";s:4:"剆";s:3:"剆";s:4:"割";s:3:"割";s:4:"剷";s:3:"剷";s:4:"㔕";s:3:"㔕";s:4:"勇";s:3:"勇";s:4:"勉";s:3:"勉";s:4:"勤";s:3:"勤";s:4:"勺";s:3:"勺";s:4:"包";s:3:"包";s:4:"匆";s:3:"匆";s:4:"北";s:3:"北";s:4:"卉";s:3:"卉";s:4:"卑";s:3:"卑";s:4:"博";s:3:"博";s:4:"即";s:3:"即";s:4:"卽";s:3:"卽";s:4:"卿";s:3:"卿";s:4:"卿";s:3:"卿";s:4:"卿";s:3:"卿";s:4:"𠨬";s:4:"𠨬";s:4:"灰";s:3:"灰";s:4:"及";s:3:"及";s:4:"叟";s:3:"叟";s:4:"𠭣";s:4:"𠭣";s:4:"叫";s:3:"叫";s:4:"叱";s:3:"叱";s:4:"吆";s:3:"吆";s:4:"咞";s:3:"咞";s:4:"吸";s:3:"吸";s:4:"呈";s:3:"呈";s:4:"周";s:3:"周";s:4:"咢";s:3:"咢";s:4:"哶";s:3:"哶";s:4:"唐";s:3:"唐";s:4:"啓";s:3:"啓";s:4:"啣";s:3:"啣";s:4:"善";s:3:"善";s:4:"善";s:3:"善";s:4:"喙";s:3:"喙";s:4:"喫";s:3:"喫";s:4:"喳";s:3:"喳";s:4:"嗂";s:3:"嗂";s:4:"圖";s:3:"圖";s:4:"嘆";s:3:"嘆";s:4:"圗";s:3:"圗";s:4:"噑";s:3:"噑";s:4:"噴";s:3:"噴";s:4:"切";s:3:"切";s:4:"壮";s:3:"壮";s:4:"城";s:3:"城";s:4:"埴";s:3:"埴";s:4:"堍";s:3:"堍";s:4:"型";s:3:"型";s:4:"堲";s:3:"堲";s:4:"報";s:3:"報";s:4:"墬";s:3:"墬";s:4:"𡓤";s:4:"𡓤";s:4:"売";s:3:"売";s:4:"壷";s:3:"壷";s:4:"夆";s:3:"夆";s:4:"多";s:3:"多";s:4:"夢";s:3:"夢";s:4:"奢";s:3:"奢";s:4:"𡚨";s:4:"𡚨";s:4:"𡛪";s:4:"𡛪";s:4:"姬";s:3:"姬";s:4:"娛";s:3:"娛";s:4:"娧";s:3:"娧";s:4:"姘";s:3:"姘";s:4:"婦";s:3:"婦";s:4:"㛮";s:3:"㛮";s:4:"㛼";s:3:"㛼";s:4:"嬈";s:3:"嬈";s:4:"嬾";s:3:"嬾";s:4:"嬾";s:3:"嬾";s:4:"𡧈";s:4:"𡧈";s:4:"寃";s:3:"寃";s:4:"寘";s:3:"寘";s:4:"寧";s:3:"寧";s:4:"寳";s:3:"寳";s:4:"𡬘";s:4:"𡬘";s:4:"寿";s:3:"寿";s:4:"将";s:3:"将";s:4:"当";s:3:"当";s:4:"尢";s:3:"尢";s:4:"㞁";s:3:"㞁";s:4:"屠";s:3:"屠";s:4:"屮";s:3:"屮";s:4:"峀";s:3:"峀";s:4:"岍";s:3:"岍";s:4:"𡷤";s:4:"𡷤";s:4:"嵃";s:3:"嵃";s:4:"𡷦";s:4:"𡷦";s:4:"嵮";s:3:"嵮";s:4:"嵫";s:3:"嵫";s:4:"嵼";s:3:"嵼";s:4:"巡";s:3:"巡";s:4:"巢";s:3:"巢";s:4:"㠯";s:3:"㠯";s:4:"巽";s:3:"巽";s:4:"帨";s:3:"帨";s:4:"帽";s:3:"帽";s:4:"幩";s:3:"幩";s:4:"㡢";s:3:"㡢";s:4:"𢆃";s:4:"𢆃";s:4:"㡼";s:3:"㡼";s:4:"庰";s:3:"庰";s:4:"庳";s:3:"庳";s:4:"庶";s:3:"庶";s:4:"廊";s:3:"廊";s:4:"𪎒";s:4:"𪎒";s:4:"廾";s:3:"廾";s:4:"𢌱";s:4:"𢌱";s:4:"𢌱";s:4:"𢌱";s:4:"舁";s:3:"舁";s:4:"弢";s:3:"弢";s:4:"弢";s:3:"弢";s:4:"㣇";s:3:"㣇";s:4:"𣊸";s:4:"𣊸";s:4:"𦇚";s:4:"𦇚";s:4:"形";s:3:"形";s:4:"彫";s:3:"彫";s:4:"㣣";s:3:"㣣";s:4:"徚";s:3:"徚";s:4:"忍";s:3:"忍";s:4:"志";s:3:"志";s:4:"忹";s:3:"忹";s:4:"悁";s:3:"悁";s:4:"㤺";s:3:"㤺";s:4:"㤜";s:3:"㤜";s:4:"悔";s:3:"悔";s:4:"𢛔";s:4:"𢛔";s:4:"惇";s:3:"惇";s:4:"慈";s:3:"慈";s:4:"慌";s:3:"慌";s:4:"慎";s:3:"慎";s:4:"慌";s:3:"慌";s:4:"慺";s:3:"慺";s:4:"憎";s:3:"憎";s:4:"憲";s:3:"憲";s:4:"憤";s:3:"憤";s:4:"憯";s:3:"憯";s:4:"懞";s:3:"懞";s:4:"懲";s:3:"懲";s:4:"懶";s:3:"懶";s:4:"成";s:3:"成";s:4:"戛";s:3:"戛";s:4:"扝";s:3:"扝";s:4:"抱";s:3:"抱";s:4:"拔";s:3:"拔";s:4:"捐";s:3:"捐";s:4:"𢬌";s:4:"𢬌";s:4:"挽";s:3:"挽";s:4:"拼";s:3:"拼";s:4:"捨";s:3:"捨";s:4:"掃";s:3:"掃";s:4:"揤";s:3:"揤";s:4:"𢯱";s:4:"𢯱";s:4:"搢";s:3:"搢";s:4:"揅";s:3:"揅";s:4:"掩";s:3:"掩";s:4:"㨮";s:3:"㨮";s:4:"摩";s:3:"摩";s:4:"摾";s:3:"摾";s:4:"撝";s:3:"撝";s:4:"摷";s:3:"摷";s:4:"㩬";s:3:"㩬";s:4:"敏";s:3:"敏";s:4:"敬";s:3:"敬";s:4:"𣀊";s:4:"𣀊";s:4:"旣";s:3:"旣";s:4:"書";s:3:"書";s:4:"晉";s:3:"晉";s:4:"㬙";s:3:"㬙";s:4:"暑";s:3:"暑";s:4:"㬈";s:3:"㬈";s:4:"㫤";s:3:"㫤";s:4:"冒";s:3:"冒";s:4:"冕";s:3:"冕";s:4:"最";s:3:"最";s:4:"暜";s:3:"暜";s:4:"肭";s:3:"肭";s:4:"䏙";s:3:"䏙";s:4:"朗";s:3:"朗";s:4:"望";s:3:"望";s:4:"朡";s:3:"朡";s:4:"杞";s:3:"杞";s:4:"杓";s:3:"杓";s:4:"𣏃";s:4:"𣏃";s:4:"㭉";s:3:"㭉";s:4:"柺";s:3:"柺";s:4:"枅";s:3:"枅";s:4:"桒";s:3:"桒";s:4:"梅";s:3:"梅";s:4:"𣑭";s:4:"𣑭";s:4:"梎";s:3:"梎";s:4:"栟";s:3:"栟";s:4:"椔";s:3:"椔";s:4:"㮝";s:3:"㮝";s:4:"楂";s:3:"楂";s:4:"榣";s:3:"榣";s:4:"槪";s:3:"槪";s:4:"檨";s:3:"檨";s:4:"𣚣";s:4:"𣚣";s:4:"櫛";s:3:"櫛";s:4:"㰘";s:3:"㰘";s:4:"次";s:3:"次";s:4:"𣢧";s:4:"𣢧";s:4:"歔";s:3:"歔";s:4:"㱎";s:3:"㱎";s:4:"歲";s:3:"歲";s:4:"殟";s:3:"殟";s:4:"殺";s:3:"殺";s:4:"殻";s:3:"殻";s:4:"𣪍";s:4:"𣪍";s:4:"𡴋";s:4:"𡴋";s:4:"𣫺";s:4:"𣫺";s:4:"汎";s:3:"汎";s:4:"𣲼";s:4:"𣲼";s:4:"沿";s:3:"沿";s:4:"泍";s:3:"泍";s:4:"汧";s:3:"汧";s:4:"洖";s:3:"洖";s:4:"派";s:3:"派";s:4:"海";s:3:"海";s:4:"流";s:3:"流";s:4:"浩";s:3:"浩";s:4:"浸";s:3:"浸";s:4:"涅";s:3:"涅";s:4:"𣴞";s:4:"𣴞";s:4:"洴";s:3:"洴";s:4:"港";s:3:"港";s:4:"湮";s:3:"湮";s:4:"㴳";s:3:"㴳";s:4:"滋";s:3:"滋";s:4:"滇";s:3:"滇";s:4:"𣻑";s:4:"𣻑";s:4:"淹";s:3:"淹";s:4:"潮";s:3:"潮";s:4:"𣽞";s:4:"𣽞";s:4:"𣾎";s:4:"𣾎";s:4:"濆";s:3:"濆";s:4:"瀹";s:3:"瀹";s:4:"瀞";s:3:"瀞";s:4:"瀛";s:3:"瀛";s:4:"㶖";s:3:"㶖";s:4:"灊";s:3:"灊";s:4:"災";s:3:"災";s:4:"灷";s:3:"灷";s:4:"炭";s:3:"炭";s:4:"𠔥";s:4:"𠔥";s:4:"煅";s:3:"煅";s:4:"𤉣";s:4:"𤉣";s:4:"熜";s:3:"熜";s:4:"𤎫";s:4:"𤎫";s:4:"爨";s:3:"爨";s:4:"爵";s:3:"爵";s:4:"牐";s:3:"牐";s:4:"𤘈";s:4:"𤘈";s:4:"犀";s:3:"犀";s:4:"犕";s:3:"犕";s:4:"𤜵";s:4:"𤜵";s:4:"𤠔";s:4:"𤠔";s:4:"獺";s:3:"獺";s:4:"王";s:3:"王";s:4:"㺬";s:3:"㺬";s:4:"玥";s:3:"玥";s:4:"㺸";s:3:"㺸";s:4:"㺸";s:3:"㺸";s:4:"瑇";s:3:"瑇";s:4:"瑜";s:3:"瑜";s:4:"瑱";s:3:"瑱";s:4:"璅";s:3:"璅";s:4:"瓊";s:3:"瓊";s:4:"㼛";s:3:"㼛";s:4:"甤";s:3:"甤";s:4:"𤰶";s:4:"𤰶";s:4:"甾";s:3:"甾";s:4:"𤲒";s:4:"𤲒";s:4:"異";s:3:"異";s:4:"𢆟";s:4:"𢆟";s:4:"瘐";s:3:"瘐";s:4:"𤾡";s:4:"𤾡";s:4:"𤾸";s:4:"𤾸";s:4:"𥁄";s:4:"𥁄";s:4:"㿼";s:3:"㿼";s:4:"䀈";s:3:"䀈";s:4:"直";s:3:"直";s:4:"𥃳";s:4:"𥃳";s:4:"𥃲";s:4:"𥃲";s:4:"𥄙";s:4:"𥄙";s:4:"𥄳";s:4:"𥄳";s:4:"眞";s:3:"眞";s:4:"真";s:3:"真";s:4:"真";s:3:"真";s:4:"睊";s:3:"睊";s:4:"䀹";s:3:"䀹";s:4:"瞋";s:3:"瞋";s:4:"䁆";s:3:"䁆";s:4:"䂖";s:3:"䂖";s:4:"𥐝";s:4:"𥐝";s:4:"硎";s:3:"硎";s:4:"碌";s:3:"碌";s:4:"磌";s:3:"磌";s:4:"䃣";s:3:"䃣";s:4:"𥘦";s:4:"𥘦";s:4:"祖";s:3:"祖";s:4:"𥚚";s:4:"𥚚";s:4:"𥛅";s:4:"𥛅";s:4:"福";s:3:"福";s:4:"秫";s:3:"秫";s:4:"䄯";s:3:"䄯";s:4:"穀";s:3:"穀";s:4:"穊";s:3:"穊";s:4:"穏";s:3:"穏";s:4:"𥥼";s:4:"𥥼";s:4:"𥪧";s:4:"𥪧";s:4:"𥪧";s:4:"𥪧";s:4:"竮";s:3:"竮";s:4:"䈂";s:3:"䈂";s:4:"𥮫";s:4:"𥮫";s:4:"篆";s:3:"篆";s:4:"築";s:3:"築";s:4:"䈧";s:3:"䈧";s:4:"𥲀";s:4:"𥲀";s:4:"糒";s:3:"糒";s:4:"䊠";s:3:"䊠";s:4:"糨";s:3:"糨";s:4:"糣";s:3:"糣";s:4:"紀";s:3:"紀";s:4:"𥾆";s:4:"𥾆";s:4:"絣";s:3:"絣";s:4:"䌁";s:3:"䌁";s:4:"緇";s:3:"緇";s:4:"縂";s:3:"縂";s:4:"繅";s:3:"繅";s:4:"䌴";s:3:"䌴";s:4:"𦈨";s:4:"𦈨";s:4:"𦉇";s:4:"𦉇";s:4:"䍙";s:3:"䍙";s:4:"𦋙";s:4:"𦋙";s:4:"罺";s:3:"罺";s:4:"𦌾";s:4:"𦌾";s:4:"羕";s:3:"羕";s:4:"翺";s:3:"翺";s:4:"者";s:3:"者";s:4:"𦓚";s:4:"𦓚";s:4:"𦔣";s:4:"𦔣";s:4:"聠";s:3:"聠";s:4:"𦖨";s:4:"𦖨";s:4:"聰";s:3:"聰";s:4:"𣍟";s:4:"𣍟";s:4:"䏕";s:3:"䏕";s:4:"育";s:3:"育";s:4:"脃";s:3:"脃";s:4:"䐋";s:3:"䐋";s:4:"脾";s:3:"脾";s:4:"媵";s:3:"媵";s:4:"𦞧";s:4:"𦞧";s:4:"𦞵";s:4:"𦞵";s:4:"𣎓";s:4:"𣎓";s:4:"𣎜";s:4:"𣎜";s:4:"舁";s:3:"舁";s:4:"舄";s:3:"舄";s:4:"辞";s:3:"辞";s:4:"䑫";s:3:"䑫";s:4:"芑";s:3:"芑";s:4:"芋";s:3:"芋";s:4:"芝";s:3:"芝";s:4:"劳";s:3:"劳";s:4:"花";s:3:"花";s:4:"芳";s:3:"芳";s:4:"芽";s:3:"芽";s:4:"苦";s:3:"苦";s:4:"𦬼";s:4:"𦬼";s:4:"若";s:3:"若";s:4:"茝";s:3:"茝";s:4:"荣";s:3:"荣";s:4:"莭";s:3:"莭";s:4:"茣";s:3:"茣";s:4:"莽";s:3:"莽";s:4:"菧";s:3:"菧";s:4:"著";s:3:"著";s:4:"荓";s:3:"荓";s:4:"菊";s:3:"菊";s:4:"菌";s:3:"菌";s:4:"菜";s:3:"菜";s:4:"𦰶";s:4:"𦰶";s:4:"𦵫";s:4:"𦵫";s:4:"𦳕";s:4:"𦳕";s:4:"䔫";s:3:"䔫";s:4:"蓱";s:3:"蓱";s:4:"蓳";s:3:"蓳";s:4:"蔖";s:3:"蔖";s:4:"𧏊";s:4:"𧏊";s:4:"蕤";s:3:"蕤";s:4:"𦼬";s:4:"𦼬";s:4:"䕝";s:3:"䕝";s:4:"䕡";s:3:"䕡";s:4:"𦾱";s:4:"𦾱";s:4:"𧃒";s:4:"𧃒";s:4:"䕫";s:3:"䕫";s:4:"虐";s:3:"虐";s:4:"虜";s:3:"虜";s:4:"虧";s:3:"虧";s:4:"虩";s:3:"虩";s:4:"蚩";s:3:"蚩";s:4:"蚈";s:3:"蚈";s:4:"蜎";s:3:"蜎";s:4:"蛢";s:3:"蛢";s:4:"蝹";s:3:"蝹";s:4:"蜨";s:3:"蜨";s:4:"蝫";s:3:"蝫";s:4:"螆";s:3:"螆";s:4:"䗗";s:3:"䗗";s:4:"蟡";s:3:"蟡";s:4:"蠁";s:3:"蠁";s:4:"䗹";s:3:"䗹";s:4:"衠";s:3:"衠";s:4:"衣";s:3:"衣";s:4:"𧙧";s:4:"𧙧";s:4:"裗";s:3:"裗";s:4:"裞";s:3:"裞";s:4:"䘵";s:3:"䘵";s:4:"裺";s:3:"裺";s:4:"㒻";s:3:"㒻";s:4:"𧢮";s:4:"𧢮";s:4:"𧥦";s:4:"𧥦";s:4:"䚾";s:3:"䚾";s:4:"䛇";s:3:"䛇";s:4:"誠";s:3:"誠";s:4:"諭";s:3:"諭";s:4:"變";s:3:"變";s:4:"豕";s:3:"豕";s:4:"𧲨";s:4:"𧲨";s:4:"貫";s:3:"貫";s:4:"賁";s:3:"賁";s:4:"贛";s:3:"贛";s:4:"起";s:3:"起";s:4:"𧼯";s:4:"𧼯";s:4:"𠠄";s:4:"𠠄";s:4:"跋";s:3:"跋";s:4:"趼";s:3:"趼";s:4:"跰";s:3:"跰";s:4:"𠣞";s:4:"𠣞";s:4:"軔";s:3:"軔";s:4:"輸";s:3:"輸";s:4:"𨗒";s:4:"𨗒";s:4:"𨗭";s:4:"𨗭";s:4:"邔";s:3:"邔";s:4:"郱";s:3:"郱";s:4:"鄑";s:3:"鄑";s:4:"𨜮";s:4:"𨜮";s:4:"鄛";s:3:"鄛";s:4:"鈸";s:3:"鈸";s:4:"鋗";s:3:"鋗";s:4:"鋘";s:3:"鋘";s:4:"鉼";s:3:"鉼";s:4:"鏹";s:3:"鏹";s:4:"鐕";s:3:"鐕";s:4:"𨯺";s:4:"𨯺";s:4:"開";s:3:"開";s:4:"䦕";s:3:"䦕";s:4:"閷";s:3:"閷";s:4:"𨵷";s:4:"𨵷";s:4:"䧦";s:3:"䧦";s:4:"雃";s:3:"雃";s:4:"嶲";s:3:"嶲";s:4:"霣";s:3:"霣";s:4:"𩅅";s:4:"𩅅";s:4:"𩈚";s:4:"𩈚";s:4:"䩮";s:3:"䩮";s:4:"䩶";s:3:"䩶";s:4:"韠";s:3:"韠";s:4:"𩐊";s:4:"𩐊";s:4:"䪲";s:3:"䪲";s:4:"𩒖";s:4:"𩒖";s:4:"頋";s:3:"頋";s:4:"頋";s:3:"頋";s:4:"頩";s:3:"頩";s:4:"𩖶";s:4:"𩖶";s:4:"飢";s:3:"飢";s:4:"䬳";s:3:"䬳";s:4:"餩";s:3:"餩";s:4:"馧";s:3:"馧";s:4:"駂";s:3:"駂";s:4:"駾";s:3:"駾";s:4:"䯎";s:3:"䯎";s:4:"𩬰";s:4:"𩬰";s:4:"鬒";s:3:"鬒";s:4:"鱀";s:3:"鱀";s:4:"鳽";s:3:"鳽";s:4:"䳎";s:3:"䳎";s:4:"䳭";s:3:"䳭";s:4:"鵧";s:3:"鵧";s:4:"𪃎";s:4:"𪃎";s:4:"䳸";s:3:"䳸";s:4:"𪄅";s:4:"𪄅";s:4:"𪈎";s:4:"𪈎";s:4:"𪊑";s:4:"𪊑";s:4:"麻";s:3:"麻";s:4:"䵖";s:3:"䵖";s:4:"黹";s:3:"黹";s:4:"黾";s:3:"黾";s:4:"鼅";s:3:"鼅";s:4:"鼏";s:3:"鼏";s:4:"鼖";s:3:"鼖";s:4:"鼻";s:3:"鼻";s:4:"𪘀";s:4:"𪘀";}' );
+UtfNormal::$utfCheckNFC = unserialize( 'a:1221:{s:2:"̀";s:1:"N";s:2:"́";s:1:"N";s:2:"̓";s:1:"N";s:2:"̈́";s:1:"N";s:2:"ʹ";s:1:"N";s:2:";";s:1:"N";s:2:"·";s:1:"N";s:3:"क़";s:1:"N";s:3:"ख़";s:1:"N";s:3:"ग़";s:1:"N";s:3:"ज़";s:1:"N";s:3:"ड़";s:1:"N";s:3:"ढ़";s:1:"N";s:3:"फ़";s:1:"N";s:3:"य़";s:1:"N";s:3:"ড়";s:1:"N";s:3:"ঢ়";s:1:"N";s:3:"য়";s:1:"N";s:3:"ਲ਼";s:1:"N";s:3:"ਸ਼";s:1:"N";s:3:"ਖ਼";s:1:"N";s:3:"ਗ਼";s:1:"N";s:3:"ਜ਼";s:1:"N";s:3:"ਫ਼";s:1:"N";s:3:"ଡ଼";s:1:"N";s:3:"ଢ଼";s:1:"N";s:3:"གྷ";s:1:"N";s:3:"ཌྷ";s:1:"N";s:3:"དྷ";s:1:"N";s:3:"བྷ";s:1:"N";s:3:"ཛྷ";s:1:"N";s:3:"ཀྵ";s:1:"N";s:3:"ཱི";s:1:"N";s:3:"ཱུ";s:1:"N";s:3:"ྲྀ";s:1:"N";s:3:"ླྀ";s:1:"N";s:3:"ཱྀ";s:1:"N";s:3:"ྒྷ";s:1:"N";s:3:"ྜྷ";s:1:"N";s:3:"ྡྷ";s:1:"N";s:3:"ྦྷ";s:1:"N";s:3:"ྫྷ";s:1:"N";s:3:"ྐྵ";s:1:"N";s:3:"ά";s:1:"N";s:3:"έ";s:1:"N";s:3:"ή";s:1:"N";s:3:"ί";s:1:"N";s:3:"ό";s:1:"N";s:3:"ύ";s:1:"N";s:3:"ώ";s:1:"N";s:3:"Ά";s:1:"N";s:3:"ι";s:1:"N";s:3:"Έ";s:1:"N";s:3:"Ή";s:1:"N";s:3:"ΐ";s:1:"N";s:3:"Ί";s:1:"N";s:3:"ΰ";s:1:"N";s:3:"Ύ";s:1:"N";s:3:"΅";s:1:"N";s:3:"`";s:1:"N";s:3:"Ό";s:1:"N";s:3:"Ώ";s:1:"N";s:3:"´";s:1:"N";s:3:" ";s:1:"N";s:3:" ";s:1:"N";s:3:"Ω";s:1:"N";s:3:"K";s:1:"N";s:3:"Å";s:1:"N";s:3:"〈";s:1:"N";s:3:"〉";s:1:"N";s:3:"⫝̸";s:1:"N";s:3:"豈";s:1:"N";s:3:"更";s:1:"N";s:3:"車";s:1:"N";s:3:"賈";s:1:"N";s:3:"滑";s:1:"N";s:3:"串";s:1:"N";s:3:"句";s:1:"N";s:3:"龜";s:1:"N";s:3:"龜";s:1:"N";s:3:"契";s:1:"N";s:3:"金";s:1:"N";s:3:"喇";s:1:"N";s:3:"奈";s:1:"N";s:3:"懶";s:1:"N";s:3:"癩";s:1:"N";s:3:"羅";s:1:"N";s:3:"蘿";s:1:"N";s:3:"螺";s:1:"N";s:3:"裸";s:1:"N";s:3:"邏";s:1:"N";s:3:"樂";s:1:"N";s:3:"洛";s:1:"N";s:3:"烙";s:1:"N";s:3:"珞";s:1:"N";s:3:"落";s:1:"N";s:3:"酪";s:1:"N";s:3:"駱";s:1:"N";s:3:"亂";s:1:"N";s:3:"卵";s:1:"N";s:3:"欄";s:1:"N";s:3:"爛";s:1:"N";s:3:"蘭";s:1:"N";s:3:"鸞";s:1:"N";s:3:"嵐";s:1:"N";s:3:"濫";s:1:"N";s:3:"藍";s:1:"N";s:3:"襤";s:1:"N";s:3:"拉";s:1:"N";s:3:"臘";s:1:"N";s:3:"蠟";s:1:"N";s:3:"廊";s:1:"N";s:3:"朗";s:1:"N";s:3:"浪";s:1:"N";s:3:"狼";s:1:"N";s:3:"郎";s:1:"N";s:3:"來";s:1:"N";s:3:"冷";s:1:"N";s:3:"勞";s:1:"N";s:3:"擄";s:1:"N";s:3:"櫓";s:1:"N";s:3:"爐";s:1:"N";s:3:"盧";s:1:"N";s:3:"老";s:1:"N";s:3:"蘆";s:1:"N";s:3:"虜";s:1:"N";s:3:"路";s:1:"N";s:3:"露";s:1:"N";s:3:"魯";s:1:"N";s:3:"鷺";s:1:"N";s:3:"碌";s:1:"N";s:3:"祿";s:1:"N";s:3:"綠";s:1:"N";s:3:"菉";s:1:"N";s:3:"錄";s:1:"N";s:3:"鹿";s:1:"N";s:3:"論";s:1:"N";s:3:"壟";s:1:"N";s:3:"弄";s:1:"N";s:3:"籠";s:1:"N";s:3:"聾";s:1:"N";s:3:"牢";s:1:"N";s:3:"磊";s:1:"N";s:3:"賂";s:1:"N";s:3:"雷";s:1:"N";s:3:"壘";s:1:"N";s:3:"屢";s:1:"N";s:3:"樓";s:1:"N";s:3:"淚";s:1:"N";s:3:"漏";s:1:"N";s:3:"累";s:1:"N";s:3:"縷";s:1:"N";s:3:"陋";s:1:"N";s:3:"勒";s:1:"N";s:3:"肋";s:1:"N";s:3:"凜";s:1:"N";s:3:"凌";s:1:"N";s:3:"稜";s:1:"N";s:3:"綾";s:1:"N";s:3:"菱";s:1:"N";s:3:"陵";s:1:"N";s:3:"讀";s:1:"N";s:3:"拏";s:1:"N";s:3:"樂";s:1:"N";s:3:"諾";s:1:"N";s:3:"丹";s:1:"N";s:3:"寧";s:1:"N";s:3:"怒";s:1:"N";s:3:"率";s:1:"N";s:3:"異";s:1:"N";s:3:"北";s:1:"N";s:3:"磻";s:1:"N";s:3:"便";s:1:"N";s:3:"復";s:1:"N";s:3:"不";s:1:"N";s:3:"泌";s:1:"N";s:3:"數";s:1:"N";s:3:"索";s:1:"N";s:3:"參";s:1:"N";s:3:"塞";s:1:"N";s:3:"省";s:1:"N";s:3:"葉";s:1:"N";s:3:"說";s:1:"N";s:3:"殺";s:1:"N";s:3:"辰";s:1:"N";s:3:"沈";s:1:"N";s:3:"拾";s:1:"N";s:3:"若";s:1:"N";s:3:"掠";s:1:"N";s:3:"略";s:1:"N";s:3:"亮";s:1:"N";s:3:"兩";s:1:"N";s:3:"凉";s:1:"N";s:3:"梁";s:1:"N";s:3:"糧";s:1:"N";s:3:"良";s:1:"N";s:3:"諒";s:1:"N";s:3:"量";s:1:"N";s:3:"勵";s:1:"N";s:3:"呂";s:1:"N";s:3:"女";s:1:"N";s:3:"廬";s:1:"N";s:3:"旅";s:1:"N";s:3:"濾";s:1:"N";s:3:"礪";s:1:"N";s:3:"閭";s:1:"N";s:3:"驪";s:1:"N";s:3:"麗";s:1:"N";s:3:"黎";s:1:"N";s:3:"力";s:1:"N";s:3:"曆";s:1:"N";s:3:"歷";s:1:"N";s:3:"轢";s:1:"N";s:3:"年";s:1:"N";s:3:"憐";s:1:"N";s:3:"戀";s:1:"N";s:3:"撚";s:1:"N";s:3:"漣";s:1:"N";s:3:"煉";s:1:"N";s:3:"璉";s:1:"N";s:3:"秊";s:1:"N";s:3:"練";s:1:"N";s:3:"聯";s:1:"N";s:3:"輦";s:1:"N";s:3:"蓮";s:1:"N";s:3:"連";s:1:"N";s:3:"鍊";s:1:"N";s:3:"列";s:1:"N";s:3:"劣";s:1:"N";s:3:"咽";s:1:"N";s:3:"烈";s:1:"N";s:3:"裂";s:1:"N";s:3:"說";s:1:"N";s:3:"廉";s:1:"N";s:3:"念";s:1:"N";s:3:"捻";s:1:"N";s:3:"殮";s:1:"N";s:3:"簾";s:1:"N";s:3:"獵";s:1:"N";s:3:"令";s:1:"N";s:3:"囹";s:1:"N";s:3:"寧";s:1:"N";s:3:"嶺";s:1:"N";s:3:"怜";s:1:"N";s:3:"玲";s:1:"N";s:3:"瑩";s:1:"N";s:3:"羚";s:1:"N";s:3:"聆";s:1:"N";s:3:"鈴";s:1:"N";s:3:"零";s:1:"N";s:3:"靈";s:1:"N";s:3:"領";s:1:"N";s:3:"例";s:1:"N";s:3:"禮";s:1:"N";s:3:"醴";s:1:"N";s:3:"隸";s:1:"N";s:3:"惡";s:1:"N";s:3:"了";s:1:"N";s:3:"僚";s:1:"N";s:3:"寮";s:1:"N";s:3:"尿";s:1:"N";s:3:"料";s:1:"N";s:3:"樂";s:1:"N";s:3:"燎";s:1:"N";s:3:"療";s:1:"N";s:3:"蓼";s:1:"N";s:3:"遼";s:1:"N";s:3:"龍";s:1:"N";s:3:"暈";s:1:"N";s:3:"阮";s:1:"N";s:3:"劉";s:1:"N";s:3:"杻";s:1:"N";s:3:"柳";s:1:"N";s:3:"流";s:1:"N";s:3:"溜";s:1:"N";s:3:"琉";s:1:"N";s:3:"留";s:1:"N";s:3:"硫";s:1:"N";s:3:"紐";s:1:"N";s:3:"類";s:1:"N";s:3:"六";s:1:"N";s:3:"戮";s:1:"N";s:3:"陸";s:1:"N";s:3:"倫";s:1:"N";s:3:"崙";s:1:"N";s:3:"淪";s:1:"N";s:3:"輪";s:1:"N";s:3:"律";s:1:"N";s:3:"慄";s:1:"N";s:3:"栗";s:1:"N";s:3:"率";s:1:"N";s:3:"隆";s:1:"N";s:3:"利";s:1:"N";s:3:"吏";s:1:"N";s:3:"履";s:1:"N";s:3:"易";s:1:"N";s:3:"李";s:1:"N";s:3:"梨";s:1:"N";s:3:"泥";s:1:"N";s:3:"理";s:1:"N";s:3:"痢";s:1:"N";s:3:"罹";s:1:"N";s:3:"裏";s:1:"N";s:3:"裡";s:1:"N";s:3:"里";s:1:"N";s:3:"離";s:1:"N";s:3:"匿";s:1:"N";s:3:"溺";s:1:"N";s:3:"吝";s:1:"N";s:3:"燐";s:1:"N";s:3:"璘";s:1:"N";s:3:"藺";s:1:"N";s:3:"隣";s:1:"N";s:3:"鱗";s:1:"N";s:3:"麟";s:1:"N";s:3:"林";s:1:"N";s:3:"淋";s:1:"N";s:3:"臨";s:1:"N";s:3:"立";s:1:"N";s:3:"笠";s:1:"N";s:3:"粒";s:1:"N";s:3:"狀";s:1:"N";s:3:"炙";s:1:"N";s:3:"識";s:1:"N";s:3:"什";s:1:"N";s:3:"茶";s:1:"N";s:3:"刺";s:1:"N";s:3:"切";s:1:"N";s:3:"度";s:1:"N";s:3:"拓";s:1:"N";s:3:"糖";s:1:"N";s:3:"宅";s:1:"N";s:3:"洞";s:1:"N";s:3:"暴";s:1:"N";s:3:"輻";s:1:"N";s:3:"行";s:1:"N";s:3:"降";s:1:"N";s:3:"見";s:1:"N";s:3:"廓";s:1:"N";s:3:"兀";s:1:"N";s:3:"嗀";s:1:"N";s:3:"塚";s:1:"N";s:3:"晴";s:1:"N";s:3:"凞";s:1:"N";s:3:"猪";s:1:"N";s:3:"益";s:1:"N";s:3:"礼";s:1:"N";s:3:"神";s:1:"N";s:3:"祥";s:1:"N";s:3:"福";s:1:"N";s:3:"靖";s:1:"N";s:3:"精";s:1:"N";s:3:"羽";s:1:"N";s:3:"蘒";s:1:"N";s:3:"諸";s:1:"N";s:3:"逸";s:1:"N";s:3:"都";s:1:"N";s:3:"飯";s:1:"N";s:3:"飼";s:1:"N";s:3:"館";s:1:"N";s:3:"鶴";s:1:"N";s:3:"侮";s:1:"N";s:3:"僧";s:1:"N";s:3:"免";s:1:"N";s:3:"勉";s:1:"N";s:3:"勤";s:1:"N";s:3:"卑";s:1:"N";s:3:"喝";s:1:"N";s:3:"嘆";s:1:"N";s:3:"器";s:1:"N";s:3:"塀";s:1:"N";s:3:"墨";s:1:"N";s:3:"層";s:1:"N";s:3:"屮";s:1:"N";s:3:"悔";s:1:"N";s:3:"慨";s:1:"N";s:3:"憎";s:1:"N";s:3:"懲";s:1:"N";s:3:"敏";s:1:"N";s:3:"既";s:1:"N";s:3:"暑";s:1:"N";s:3:"梅";s:1:"N";s:3:"海";s:1:"N";s:3:"渚";s:1:"N";s:3:"漢";s:1:"N";s:3:"煮";s:1:"N";s:3:"爫";s:1:"N";s:3:"琢";s:1:"N";s:3:"碑";s:1:"N";s:3:"社";s:1:"N";s:3:"祉";s:1:"N";s:3:"祈";s:1:"N";s:3:"祐";s:1:"N";s:3:"祖";s:1:"N";s:3:"祝";s:1:"N";s:3:"禍";s:1:"N";s:3:"禎";s:1:"N";s:3:"穀";s:1:"N";s:3:"突";s:1:"N";s:3:"節";s:1:"N";s:3:"練";s:1:"N";s:3:"縉";s:1:"N";s:3:"繁";s:1:"N";s:3:"署";s:1:"N";s:3:"者";s:1:"N";s:3:"臭";s:1:"N";s:3:"艹";s:1:"N";s:3:"艹";s:1:"N";s:3:"著";s:1:"N";s:3:"褐";s:1:"N";s:3:"視";s:1:"N";s:3:"謁";s:1:"N";s:3:"謹";s:1:"N";s:3:"賓";s:1:"N";s:3:"贈";s:1:"N";s:3:"辶";s:1:"N";s:3:"逸";s:1:"N";s:3:"難";s:1:"N";s:3:"響";s:1:"N";s:3:"頻";s:1:"N";s:3:"恵";s:1:"N";s:3:"𤋮";s:1:"N";s:3:"舘";s:1:"N";s:3:"並";s:1:"N";s:3:"况";s:1:"N";s:3:"全";s:1:"N";s:3:"侀";s:1:"N";s:3:"充";s:1:"N";s:3:"冀";s:1:"N";s:3:"勇";s:1:"N";s:3:"勺";s:1:"N";s:3:"喝";s:1:"N";s:3:"啕";s:1:"N";s:3:"喙";s:1:"N";s:3:"嗢";s:1:"N";s:3:"塚";s:1:"N";s:3:"墳";s:1:"N";s:3:"奄";s:1:"N";s:3:"奔";s:1:"N";s:3:"婢";s:1:"N";s:3:"嬨";s:1:"N";s:3:"廒";s:1:"N";s:3:"廙";s:1:"N";s:3:"彩";s:1:"N";s:3:"徭";s:1:"N";s:3:"惘";s:1:"N";s:3:"慎";s:1:"N";s:3:"愈";s:1:"N";s:3:"憎";s:1:"N";s:3:"慠";s:1:"N";s:3:"懲";s:1:"N";s:3:"戴";s:1:"N";s:3:"揄";s:1:"N";s:3:"搜";s:1:"N";s:3:"摒";s:1:"N";s:3:"敖";s:1:"N";s:3:"晴";s:1:"N";s:3:"朗";s:1:"N";s:3:"望";s:1:"N";s:3:"杖";s:1:"N";s:3:"歹";s:1:"N";s:3:"殺";s:1:"N";s:3:"流";s:1:"N";s:3:"滛";s:1:"N";s:3:"滋";s:1:"N";s:3:"漢";s:1:"N";s:3:"瀞";s:1:"N";s:3:"煮";s:1:"N";s:3:"瞧";s:1:"N";s:3:"爵";s:1:"N";s:3:"犯";s:1:"N";s:3:"猪";s:1:"N";s:3:"瑱";s:1:"N";s:3:"甆";s:1:"N";s:3:"画";s:1:"N";s:3:"瘝";s:1:"N";s:3:"瘟";s:1:"N";s:3:"益";s:1:"N";s:3:"盛";s:1:"N";s:3:"直";s:1:"N";s:3:"睊";s:1:"N";s:3:"着";s:1:"N";s:3:"磌";s:1:"N";s:3:"窱";s:1:"N";s:3:"節";s:1:"N";s:3:"类";s:1:"N";s:3:"絛";s:1:"N";s:3:"練";s:1:"N";s:3:"缾";s:1:"N";s:3:"者";s:1:"N";s:3:"荒";s:1:"N";s:3:"華";s:1:"N";s:3:"蝹";s:1:"N";s:3:"襁";s:1:"N";s:3:"覆";s:1:"N";s:3:"視";s:1:"N";s:3:"調";s:1:"N";s:3:"諸";s:1:"N";s:3:"請";s:1:"N";s:3:"謁";s:1:"N";s:3:"諾";s:1:"N";s:3:"諭";s:1:"N";s:3:"謹";s:1:"N";s:3:"變";s:1:"N";s:3:"贈";s:1:"N";s:3:"輸";s:1:"N";s:3:"遲";s:1:"N";s:3:"醙";s:1:"N";s:3:"鉶";s:1:"N";s:3:"陼";s:1:"N";s:3:"難";s:1:"N";s:3:"靖";s:1:"N";s:3:"韛";s:1:"N";s:3:"響";s:1:"N";s:3:"頋";s:1:"N";s:3:"頻";s:1:"N";s:3:"鬒";s:1:"N";s:3:"龜";s:1:"N";s:3:"𢡊";s:1:"N";s:3:"𢡄";s:1:"N";s:3:"𣏕";s:1:"N";s:3:"㮝";s:1:"N";s:3:"䀘";s:1:"N";s:3:"䀹";s:1:"N";s:3:"𥉉";s:1:"N";s:3:"𥳐";s:1:"N";s:3:"𧻓";s:1:"N";s:3:"齃";s:1:"N";s:3:"龎";s:1:"N";s:3:"יִ";s:1:"N";s:3:"ײַ";s:1:"N";s:3:"שׁ";s:1:"N";s:3:"שׂ";s:1:"N";s:3:"שּׁ";s:1:"N";s:3:"שּׂ";s:1:"N";s:3:"אַ";s:1:"N";s:3:"אָ";s:1:"N";s:3:"אּ";s:1:"N";s:3:"בּ";s:1:"N";s:3:"גּ";s:1:"N";s:3:"דּ";s:1:"N";s:3:"הּ";s:1:"N";s:3:"וּ";s:1:"N";s:3:"זּ";s:1:"N";s:3:"טּ";s:1:"N";s:3:"יּ";s:1:"N";s:3:"ךּ";s:1:"N";s:3:"כּ";s:1:"N";s:3:"לּ";s:1:"N";s:3:"מּ";s:1:"N";s:3:"נּ";s:1:"N";s:3:"סּ";s:1:"N";s:3:"ףּ";s:1:"N";s:3:"פּ";s:1:"N";s:3:"צּ";s:1:"N";s:3:"קּ";s:1:"N";s:3:"רּ";s:1:"N";s:3:"שּ";s:1:"N";s:3:"תּ";s:1:"N";s:3:"וֹ";s:1:"N";s:3:"בֿ";s:1:"N";s:3:"כֿ";s:1:"N";s:3:"פֿ";s:1:"N";s:4:"𝅗𝅥";s:1:"N";s:4:"𝅘𝅥";s:1:"N";s:4:"𝅘𝅥𝅮";s:1:"N";s:4:"𝅘𝅥𝅯";s:1:"N";s:4:"𝅘𝅥𝅰";s:1:"N";s:4:"𝅘𝅥𝅱";s:1:"N";s:4:"𝅘𝅥𝅲";s:1:"N";s:4:"𝆹𝅥";s:1:"N";s:4:"𝆺𝅥";s:1:"N";s:4:"𝆹𝅥𝅮";s:1:"N";s:4:"𝆺𝅥𝅮";s:1:"N";s:4:"𝆹𝅥𝅯";s:1:"N";s:4:"𝆺𝅥𝅯";s:1:"N";s:4:"丽";s:1:"N";s:4:"丸";s:1:"N";s:4:"乁";s:1:"N";s:4:"𠄢";s:1:"N";s:4:"你";s:1:"N";s:4:"侮";s:1:"N";s:4:"侻";s:1:"N";s:4:"倂";s:1:"N";s:4:"偺";s:1:"N";s:4:"備";s:1:"N";s:4:"僧";s:1:"N";s:4:"像";s:1:"N";s:4:"㒞";s:1:"N";s:4:"𠘺";s:1:"N";s:4:"免";s:1:"N";s:4:"兔";s:1:"N";s:4:"兤";s:1:"N";s:4:"具";s:1:"N";s:4:"𠔜";s:1:"N";s:4:"㒹";s:1:"N";s:4:"內";s:1:"N";s:4:"再";s:1:"N";s:4:"𠕋";s:1:"N";s:4:"冗";s:1:"N";s:4:"冤";s:1:"N";s:4:"仌";s:1:"N";s:4:"冬";s:1:"N";s:4:"况";s:1:"N";s:4:"𩇟";s:1:"N";s:4:"凵";s:1:"N";s:4:"刃";s:1:"N";s:4:"㓟";s:1:"N";s:4:"刻";s:1:"N";s:4:"剆";s:1:"N";s:4:"割";s:1:"N";s:4:"剷";s:1:"N";s:4:"㔕";s:1:"N";s:4:"勇";s:1:"N";s:4:"勉";s:1:"N";s:4:"勤";s:1:"N";s:4:"勺";s:1:"N";s:4:"包";s:1:"N";s:4:"匆";s:1:"N";s:4:"北";s:1:"N";s:4:"卉";s:1:"N";s:4:"卑";s:1:"N";s:4:"博";s:1:"N";s:4:"即";s:1:"N";s:4:"卽";s:1:"N";s:4:"卿";s:1:"N";s:4:"卿";s:1:"N";s:4:"卿";s:1:"N";s:4:"𠨬";s:1:"N";s:4:"灰";s:1:"N";s:4:"及";s:1:"N";s:4:"叟";s:1:"N";s:4:"𠭣";s:1:"N";s:4:"叫";s:1:"N";s:4:"叱";s:1:"N";s:4:"吆";s:1:"N";s:4:"咞";s:1:"N";s:4:"吸";s:1:"N";s:4:"呈";s:1:"N";s:4:"周";s:1:"N";s:4:"咢";s:1:"N";s:4:"哶";s:1:"N";s:4:"唐";s:1:"N";s:4:"啓";s:1:"N";s:4:"啣";s:1:"N";s:4:"善";s:1:"N";s:4:"善";s:1:"N";s:4:"喙";s:1:"N";s:4:"喫";s:1:"N";s:4:"喳";s:1:"N";s:4:"嗂";s:1:"N";s:4:"圖";s:1:"N";s:4:"嘆";s:1:"N";s:4:"圗";s:1:"N";s:4:"噑";s:1:"N";s:4:"噴";s:1:"N";s:4:"切";s:1:"N";s:4:"壮";s:1:"N";s:4:"城";s:1:"N";s:4:"埴";s:1:"N";s:4:"堍";s:1:"N";s:4:"型";s:1:"N";s:4:"堲";s:1:"N";s:4:"報";s:1:"N";s:4:"墬";s:1:"N";s:4:"𡓤";s:1:"N";s:4:"売";s:1:"N";s:4:"壷";s:1:"N";s:4:"夆";s:1:"N";s:4:"多";s:1:"N";s:4:"夢";s:1:"N";s:4:"奢";s:1:"N";s:4:"𡚨";s:1:"N";s:4:"𡛪";s:1:"N";s:4:"姬";s:1:"N";s:4:"娛";s:1:"N";s:4:"娧";s:1:"N";s:4:"姘";s:1:"N";s:4:"婦";s:1:"N";s:4:"㛮";s:1:"N";s:4:"㛼";s:1:"N";s:4:"嬈";s:1:"N";s:4:"嬾";s:1:"N";s:4:"嬾";s:1:"N";s:4:"𡧈";s:1:"N";s:4:"寃";s:1:"N";s:4:"寘";s:1:"N";s:4:"寧";s:1:"N";s:4:"寳";s:1:"N";s:4:"𡬘";s:1:"N";s:4:"寿";s:1:"N";s:4:"将";s:1:"N";s:4:"当";s:1:"N";s:4:"尢";s:1:"N";s:4:"㞁";s:1:"N";s:4:"屠";s:1:"N";s:4:"屮";s:1:"N";s:4:"峀";s:1:"N";s:4:"岍";s:1:"N";s:4:"𡷤";s:1:"N";s:4:"嵃";s:1:"N";s:4:"𡷦";s:1:"N";s:4:"嵮";s:1:"N";s:4:"嵫";s:1:"N";s:4:"嵼";s:1:"N";s:4:"巡";s:1:"N";s:4:"巢";s:1:"N";s:4:"㠯";s:1:"N";s:4:"巽";s:1:"N";s:4:"帨";s:1:"N";s:4:"帽";s:1:"N";s:4:"幩";s:1:"N";s:4:"㡢";s:1:"N";s:4:"𢆃";s:1:"N";s:4:"㡼";s:1:"N";s:4:"庰";s:1:"N";s:4:"庳";s:1:"N";s:4:"庶";s:1:"N";s:4:"廊";s:1:"N";s:4:"𪎒";s:1:"N";s:4:"廾";s:1:"N";s:4:"𢌱";s:1:"N";s:4:"𢌱";s:1:"N";s:4:"舁";s:1:"N";s:4:"弢";s:1:"N";s:4:"弢";s:1:"N";s:4:"㣇";s:1:"N";s:4:"𣊸";s:1:"N";s:4:"𦇚";s:1:"N";s:4:"形";s:1:"N";s:4:"彫";s:1:"N";s:4:"㣣";s:1:"N";s:4:"徚";s:1:"N";s:4:"忍";s:1:"N";s:4:"志";s:1:"N";s:4:"忹";s:1:"N";s:4:"悁";s:1:"N";s:4:"㤺";s:1:"N";s:4:"㤜";s:1:"N";s:4:"悔";s:1:"N";s:4:"𢛔";s:1:"N";s:4:"惇";s:1:"N";s:4:"慈";s:1:"N";s:4:"慌";s:1:"N";s:4:"慎";s:1:"N";s:4:"慌";s:1:"N";s:4:"慺";s:1:"N";s:4:"憎";s:1:"N";s:4:"憲";s:1:"N";s:4:"憤";s:1:"N";s:4:"憯";s:1:"N";s:4:"懞";s:1:"N";s:4:"懲";s:1:"N";s:4:"懶";s:1:"N";s:4:"成";s:1:"N";s:4:"戛";s:1:"N";s:4:"扝";s:1:"N";s:4:"抱";s:1:"N";s:4:"拔";s:1:"N";s:4:"捐";s:1:"N";s:4:"𢬌";s:1:"N";s:4:"挽";s:1:"N";s:4:"拼";s:1:"N";s:4:"捨";s:1:"N";s:4:"掃";s:1:"N";s:4:"揤";s:1:"N";s:4:"𢯱";s:1:"N";s:4:"搢";s:1:"N";s:4:"揅";s:1:"N";s:4:"掩";s:1:"N";s:4:"㨮";s:1:"N";s:4:"摩";s:1:"N";s:4:"摾";s:1:"N";s:4:"撝";s:1:"N";s:4:"摷";s:1:"N";s:4:"㩬";s:1:"N";s:4:"敏";s:1:"N";s:4:"敬";s:1:"N";s:4:"𣀊";s:1:"N";s:4:"旣";s:1:"N";s:4:"書";s:1:"N";s:4:"晉";s:1:"N";s:4:"㬙";s:1:"N";s:4:"暑";s:1:"N";s:4:"㬈";s:1:"N";s:4:"㫤";s:1:"N";s:4:"冒";s:1:"N";s:4:"冕";s:1:"N";s:4:"最";s:1:"N";s:4:"暜";s:1:"N";s:4:"肭";s:1:"N";s:4:"䏙";s:1:"N";s:4:"朗";s:1:"N";s:4:"望";s:1:"N";s:4:"朡";s:1:"N";s:4:"杞";s:1:"N";s:4:"杓";s:1:"N";s:4:"𣏃";s:1:"N";s:4:"㭉";s:1:"N";s:4:"柺";s:1:"N";s:4:"枅";s:1:"N";s:4:"桒";s:1:"N";s:4:"梅";s:1:"N";s:4:"𣑭";s:1:"N";s:4:"梎";s:1:"N";s:4:"栟";s:1:"N";s:4:"椔";s:1:"N";s:4:"㮝";s:1:"N";s:4:"楂";s:1:"N";s:4:"榣";s:1:"N";s:4:"槪";s:1:"N";s:4:"檨";s:1:"N";s:4:"𣚣";s:1:"N";s:4:"櫛";s:1:"N";s:4:"㰘";s:1:"N";s:4:"次";s:1:"N";s:4:"𣢧";s:1:"N";s:4:"歔";s:1:"N";s:4:"㱎";s:1:"N";s:4:"歲";s:1:"N";s:4:"殟";s:1:"N";s:4:"殺";s:1:"N";s:4:"殻";s:1:"N";s:4:"𣪍";s:1:"N";s:4:"𡴋";s:1:"N";s:4:"𣫺";s:1:"N";s:4:"汎";s:1:"N";s:4:"𣲼";s:1:"N";s:4:"沿";s:1:"N";s:4:"泍";s:1:"N";s:4:"汧";s:1:"N";s:4:"洖";s:1:"N";s:4:"派";s:1:"N";s:4:"海";s:1:"N";s:4:"流";s:1:"N";s:4:"浩";s:1:"N";s:4:"浸";s:1:"N";s:4:"涅";s:1:"N";s:4:"𣴞";s:1:"N";s:4:"洴";s:1:"N";s:4:"港";s:1:"N";s:4:"湮";s:1:"N";s:4:"㴳";s:1:"N";s:4:"滋";s:1:"N";s:4:"滇";s:1:"N";s:4:"𣻑";s:1:"N";s:4:"淹";s:1:"N";s:4:"潮";s:1:"N";s:4:"𣽞";s:1:"N";s:4:"𣾎";s:1:"N";s:4:"濆";s:1:"N";s:4:"瀹";s:1:"N";s:4:"瀞";s:1:"N";s:4:"瀛";s:1:"N";s:4:"㶖";s:1:"N";s:4:"灊";s:1:"N";s:4:"災";s:1:"N";s:4:"灷";s:1:"N";s:4:"炭";s:1:"N";s:4:"𠔥";s:1:"N";s:4:"煅";s:1:"N";s:4:"𤉣";s:1:"N";s:4:"熜";s:1:"N";s:4:"𤎫";s:1:"N";s:4:"爨";s:1:"N";s:4:"爵";s:1:"N";s:4:"牐";s:1:"N";s:4:"𤘈";s:1:"N";s:4:"犀";s:1:"N";s:4:"犕";s:1:"N";s:4:"𤜵";s:1:"N";s:4:"𤠔";s:1:"N";s:4:"獺";s:1:"N";s:4:"王";s:1:"N";s:4:"㺬";s:1:"N";s:4:"玥";s:1:"N";s:4:"㺸";s:1:"N";s:4:"㺸";s:1:"N";s:4:"瑇";s:1:"N";s:4:"瑜";s:1:"N";s:4:"瑱";s:1:"N";s:4:"璅";s:1:"N";s:4:"瓊";s:1:"N";s:4:"㼛";s:1:"N";s:4:"甤";s:1:"N";s:4:"𤰶";s:1:"N";s:4:"甾";s:1:"N";s:4:"𤲒";s:1:"N";s:4:"異";s:1:"N";s:4:"𢆟";s:1:"N";s:4:"瘐";s:1:"N";s:4:"𤾡";s:1:"N";s:4:"𤾸";s:1:"N";s:4:"𥁄";s:1:"N";s:4:"㿼";s:1:"N";s:4:"䀈";s:1:"N";s:4:"直";s:1:"N";s:4:"𥃳";s:1:"N";s:4:"𥃲";s:1:"N";s:4:"𥄙";s:1:"N";s:4:"𥄳";s:1:"N";s:4:"眞";s:1:"N";s:4:"真";s:1:"N";s:4:"真";s:1:"N";s:4:"睊";s:1:"N";s:4:"䀹";s:1:"N";s:4:"瞋";s:1:"N";s:4:"䁆";s:1:"N";s:4:"䂖";s:1:"N";s:4:"𥐝";s:1:"N";s:4:"硎";s:1:"N";s:4:"碌";s:1:"N";s:4:"磌";s:1:"N";s:4:"䃣";s:1:"N";s:4:"𥘦";s:1:"N";s:4:"祖";s:1:"N";s:4:"𥚚";s:1:"N";s:4:"𥛅";s:1:"N";s:4:"福";s:1:"N";s:4:"秫";s:1:"N";s:4:"䄯";s:1:"N";s:4:"穀";s:1:"N";s:4:"穊";s:1:"N";s:4:"穏";s:1:"N";s:4:"𥥼";s:1:"N";s:4:"𥪧";s:1:"N";s:4:"𥪧";s:1:"N";s:4:"竮";s:1:"N";s:4:"䈂";s:1:"N";s:4:"𥮫";s:1:"N";s:4:"篆";s:1:"N";s:4:"築";s:1:"N";s:4:"䈧";s:1:"N";s:4:"𥲀";s:1:"N";s:4:"糒";s:1:"N";s:4:"䊠";s:1:"N";s:4:"糨";s:1:"N";s:4:"糣";s:1:"N";s:4:"紀";s:1:"N";s:4:"𥾆";s:1:"N";s:4:"絣";s:1:"N";s:4:"䌁";s:1:"N";s:4:"緇";s:1:"N";s:4:"縂";s:1:"N";s:4:"繅";s:1:"N";s:4:"䌴";s:1:"N";s:4:"𦈨";s:1:"N";s:4:"𦉇";s:1:"N";s:4:"䍙";s:1:"N";s:4:"𦋙";s:1:"N";s:4:"罺";s:1:"N";s:4:"𦌾";s:1:"N";s:4:"羕";s:1:"N";s:4:"翺";s:1:"N";s:4:"者";s:1:"N";s:4:"𦓚";s:1:"N";s:4:"𦔣";s:1:"N";s:4:"聠";s:1:"N";s:4:"𦖨";s:1:"N";s:4:"聰";s:1:"N";s:4:"𣍟";s:1:"N";s:4:"䏕";s:1:"N";s:4:"育";s:1:"N";s:4:"脃";s:1:"N";s:4:"䐋";s:1:"N";s:4:"脾";s:1:"N";s:4:"媵";s:1:"N";s:4:"𦞧";s:1:"N";s:4:"𦞵";s:1:"N";s:4:"𣎓";s:1:"N";s:4:"𣎜";s:1:"N";s:4:"舁";s:1:"N";s:4:"舄";s:1:"N";s:4:"辞";s:1:"N";s:4:"䑫";s:1:"N";s:4:"芑";s:1:"N";s:4:"芋";s:1:"N";s:4:"芝";s:1:"N";s:4:"劳";s:1:"N";s:4:"花";s:1:"N";s:4:"芳";s:1:"N";s:4:"芽";s:1:"N";s:4:"苦";s:1:"N";s:4:"𦬼";s:1:"N";s:4:"若";s:1:"N";s:4:"茝";s:1:"N";s:4:"荣";s:1:"N";s:4:"莭";s:1:"N";s:4:"茣";s:1:"N";s:4:"莽";s:1:"N";s:4:"菧";s:1:"N";s:4:"著";s:1:"N";s:4:"荓";s:1:"N";s:4:"菊";s:1:"N";s:4:"菌";s:1:"N";s:4:"菜";s:1:"N";s:4:"𦰶";s:1:"N";s:4:"𦵫";s:1:"N";s:4:"𦳕";s:1:"N";s:4:"䔫";s:1:"N";s:4:"蓱";s:1:"N";s:4:"蓳";s:1:"N";s:4:"蔖";s:1:"N";s:4:"𧏊";s:1:"N";s:4:"蕤";s:1:"N";s:4:"𦼬";s:1:"N";s:4:"䕝";s:1:"N";s:4:"䕡";s:1:"N";s:4:"𦾱";s:1:"N";s:4:"𧃒";s:1:"N";s:4:"䕫";s:1:"N";s:4:"虐";s:1:"N";s:4:"虜";s:1:"N";s:4:"虧";s:1:"N";s:4:"虩";s:1:"N";s:4:"蚩";s:1:"N";s:4:"蚈";s:1:"N";s:4:"蜎";s:1:"N";s:4:"蛢";s:1:"N";s:4:"蝹";s:1:"N";s:4:"蜨";s:1:"N";s:4:"蝫";s:1:"N";s:4:"螆";s:1:"N";s:4:"䗗";s:1:"N";s:4:"蟡";s:1:"N";s:4:"蠁";s:1:"N";s:4:"䗹";s:1:"N";s:4:"衠";s:1:"N";s:4:"衣";s:1:"N";s:4:"𧙧";s:1:"N";s:4:"裗";s:1:"N";s:4:"裞";s:1:"N";s:4:"䘵";s:1:"N";s:4:"裺";s:1:"N";s:4:"㒻";s:1:"N";s:4:"𧢮";s:1:"N";s:4:"𧥦";s:1:"N";s:4:"䚾";s:1:"N";s:4:"䛇";s:1:"N";s:4:"誠";s:1:"N";s:4:"諭";s:1:"N";s:4:"變";s:1:"N";s:4:"豕";s:1:"N";s:4:"𧲨";s:1:"N";s:4:"貫";s:1:"N";s:4:"賁";s:1:"N";s:4:"贛";s:1:"N";s:4:"起";s:1:"N";s:4:"𧼯";s:1:"N";s:4:"𠠄";s:1:"N";s:4:"跋";s:1:"N";s:4:"趼";s:1:"N";s:4:"跰";s:1:"N";s:4:"𠣞";s:1:"N";s:4:"軔";s:1:"N";s:4:"輸";s:1:"N";s:4:"𨗒";s:1:"N";s:4:"𨗭";s:1:"N";s:4:"邔";s:1:"N";s:4:"郱";s:1:"N";s:4:"鄑";s:1:"N";s:4:"𨜮";s:1:"N";s:4:"鄛";s:1:"N";s:4:"鈸";s:1:"N";s:4:"鋗";s:1:"N";s:4:"鋘";s:1:"N";s:4:"鉼";s:1:"N";s:4:"鏹";s:1:"N";s:4:"鐕";s:1:"N";s:4:"𨯺";s:1:"N";s:4:"開";s:1:"N";s:4:"䦕";s:1:"N";s:4:"閷";s:1:"N";s:4:"𨵷";s:1:"N";s:4:"䧦";s:1:"N";s:4:"雃";s:1:"N";s:4:"嶲";s:1:"N";s:4:"霣";s:1:"N";s:4:"𩅅";s:1:"N";s:4:"𩈚";s:1:"N";s:4:"䩮";s:1:"N";s:4:"䩶";s:1:"N";s:4:"韠";s:1:"N";s:4:"𩐊";s:1:"N";s:4:"䪲";s:1:"N";s:4:"𩒖";s:1:"N";s:4:"頋";s:1:"N";s:4:"頋";s:1:"N";s:4:"頩";s:1:"N";s:4:"𩖶";s:1:"N";s:4:"飢";s:1:"N";s:4:"䬳";s:1:"N";s:4:"餩";s:1:"N";s:4:"馧";s:1:"N";s:4:"駂";s:1:"N";s:4:"駾";s:1:"N";s:4:"䯎";s:1:"N";s:4:"𩬰";s:1:"N";s:4:"鬒";s:1:"N";s:4:"鱀";s:1:"N";s:4:"鳽";s:1:"N";s:4:"䳎";s:1:"N";s:4:"䳭";s:1:"N";s:4:"鵧";s:1:"N";s:4:"𪃎";s:1:"N";s:4:"䳸";s:1:"N";s:4:"𪄅";s:1:"N";s:4:"𪈎";s:1:"N";s:4:"𪊑";s:1:"N";s:4:"麻";s:1:"N";s:4:"䵖";s:1:"N";s:4:"黹";s:1:"N";s:4:"黾";s:1:"N";s:4:"鼅";s:1:"N";s:4:"鼏";s:1:"N";s:4:"鼖";s:1:"N";s:4:"鼻";s:1:"N";s:4:"𪘀";s:1:"N";s:2:"̀";s:1:"M";s:2:"́";s:1:"M";s:2:"̂";s:1:"M";s:2:"̃";s:1:"M";s:2:"̄";s:1:"M";s:2:"̆";s:1:"M";s:2:"̇";s:1:"M";s:2:"̈";s:1:"M";s:2:"̉";s:1:"M";s:2:"̊";s:1:"M";s:2:"̋";s:1:"M";s:2:"̌";s:1:"M";s:2:"̏";s:1:"M";s:2:"̑";s:1:"M";s:2:"̓";s:1:"M";s:2:"̔";s:1:"M";s:2:"̛";s:1:"M";s:2:"̣";s:1:"M";s:2:"̤";s:1:"M";s:2:"̥";s:1:"M";s:2:"̦";s:1:"M";s:2:"̧";s:1:"M";s:2:"̨";s:1:"M";s:2:"̭";s:1:"M";s:2:"̮";s:1:"M";s:2:"̰";s:1:"M";s:2:"̱";s:1:"M";s:2:"̸";s:1:"M";s:2:"͂";s:1:"M";s:2:"ͅ";s:1:"M";s:2:"ٓ";s:1:"M";s:2:"ٔ";s:1:"M";s:2:"ٕ";s:1:"M";s:3:"़";s:1:"M";s:3:"া";s:1:"M";s:3:"ৗ";s:1:"M";s:3:"ା";s:1:"M";s:3:"ୖ";s:1:"M";s:3:"ୗ";s:1:"M";s:3:"ா";s:1:"M";s:3:"ௗ";s:1:"M";s:3:"ౖ";s:1:"M";s:3:"ೂ";s:1:"M";s:3:"ೕ";s:1:"M";s:3:"ೖ";s:1:"M";s:3:"ാ";s:1:"M";s:3:"ൗ";s:1:"M";s:3:"්";s:1:"M";s:3:"ා";s:1:"M";s:3:"ෟ";s:1:"M";s:3:"ီ";s:1:"M";s:3:"ᅡ";s:1:"M";s:3:"ᅢ";s:1:"M";s:3:"ᅣ";s:1:"M";s:3:"ᅤ";s:1:"M";s:3:"ᅥ";s:1:"M";s:3:"ᅦ";s:1:"M";s:3:"ᅧ";s:1:"M";s:3:"ᅨ";s:1:"M";s:3:"ᅩ";s:1:"M";s:3:"ᅪ";s:1:"M";s:3:"ᅫ";s:1:"M";s:3:"ᅬ";s:1:"M";s:3:"ᅭ";s:1:"M";s:3:"ᅮ";s:1:"M";s:3:"ᅯ";s:1:"M";s:3:"ᅰ";s:1:"M";s:3:"ᅱ";s:1:"M";s:3:"ᅲ";s:1:"M";s:3:"ᅳ";s:1:"M";s:3:"ᅴ";s:1:"M";s:3:"ᅵ";s:1:"M";s:3:"ᆨ";s:1:"M";s:3:"ᆩ";s:1:"M";s:3:"ᆪ";s:1:"M";s:3:"ᆫ";s:1:"M";s:3:"ᆬ";s:1:"M";s:3:"ᆭ";s:1:"M";s:3:"ᆮ";s:1:"M";s:3:"ᆯ";s:1:"M";s:3:"ᆰ";s:1:"M";s:3:"ᆱ";s:1:"M";s:3:"ᆲ";s:1:"M";s:3:"ᆳ";s:1:"M";s:3:"ᆴ";s:1:"M";s:3:"ᆵ";s:1:"M";s:3:"ᆶ";s:1:"M";s:3:"ᆷ";s:1:"M";s:3:"ᆸ";s:1:"M";s:3:"ᆹ";s:1:"M";s:3:"ᆺ";s:1:"M";s:3:"ᆻ";s:1:"M";s:3:"ᆼ";s:1:"M";s:3:"ᆽ";s:1:"M";s:3:"ᆾ";s:1:"M";s:3:"ᆿ";s:1:"M";s:3:"ᇀ";s:1:"M";s:3:"ᇁ";s:1:"M";s:3:"ᇂ";s:1:"M";s:3:"ᬵ";s:1:"M";s:3:"゙";s:1:"M";s:3:"゚";s:1:"M";s:4:"𑂺";s:1:"M";}' );
+
diff --git a/includes/libs/normal/UtfNormalDataK.inc b/includes/libs/normal/UtfNormalDataK.inc
new file mode 100644 (file)
index 0000000..dde3eff
--- /dev/null
@@ -0,0 +1,11 @@
+<?php
+/**
+ * This file was automatically generated -- do not edit!
+ * Run UtfNormalGenerate.php to create this file again (make clean && make)
+ *
+ * @file
+ */
+// @codingStandardsIgnoreFile
+
+UtfNormal::$utfCompatibilityDecomp = unserialize( 'a:5559:{s:2:" ";s:1:" ";s:2:"¨";s:3:" ̈";s:2:"ª";s:1:"a";s:2:"¯";s:3:" ̄";s:2:"²";s:1:"2";s:2:"³";s:1:"3";s:2:"´";s:3:" ́";s:2:"µ";s:2:"μ";s:2:"¸";s:3:" ̧";s:2:"¹";s:1:"1";s:2:"º";s:1:"o";s:2:"¼";s:5:"1⁄4";s:2:"½";s:5:"1⁄2";s:2:"¾";s:5:"3⁄4";s:2:"À";s:3:"À";s:2:"Á";s:3:"Á";s:2:"Â";s:3:"Â";s:2:"Ã";s:3:"Ã";s:2:"Ä";s:3:"Ä";s:2:"Å";s:3:"Å";s:2:"Ç";s:3:"Ç";s:2:"È";s:3:"È";s:2:"É";s:3:"É";s:2:"Ê";s:3:"Ê";s:2:"Ë";s:3:"Ë";s:2:"Ì";s:3:"Ì";s:2:"Í";s:3:"Í";s:2:"Î";s:3:"Î";s:2:"Ï";s:3:"Ï";s:2:"Ñ";s:3:"Ñ";s:2:"Ò";s:3:"Ò";s:2:"Ó";s:3:"Ó";s:2:"Ô";s:3:"Ô";s:2:"Õ";s:3:"Õ";s:2:"Ö";s:3:"Ö";s:2:"Ù";s:3:"Ù";s:2:"Ú";s:3:"Ú";s:2:"Û";s:3:"Û";s:2:"Ü";s:3:"Ü";s:2:"Ý";s:3:"Ý";s:2:"à";s:3:"à";s:2:"á";s:3:"á";s:2:"â";s:3:"â";s:2:"ã";s:3:"ã";s:2:"ä";s:3:"ä";s:2:"å";s:3:"å";s:2:"ç";s:3:"ç";s:2:"è";s:3:"è";s:2:"é";s:3:"é";s:2:"ê";s:3:"ê";s:2:"ë";s:3:"ë";s:2:"ì";s:3:"ì";s:2:"í";s:3:"í";s:2:"î";s:3:"î";s:2:"ï";s:3:"ï";s:2:"ñ";s:3:"ñ";s:2:"ò";s:3:"ò";s:2:"ó";s:3:"ó";s:2:"ô";s:3:"ô";s:2:"õ";s:3:"õ";s:2:"ö";s:3:"ö";s:2:"ù";s:3:"ù";s:2:"ú";s:3:"ú";s:2:"û";s:3:"û";s:2:"ü";s:3:"ü";s:2:"ý";s:3:"ý";s:2:"ÿ";s:3:"ÿ";s:2:"Ā";s:3:"Ā";s:2:"ā";s:3:"ā";s:2:"Ă";s:3:"Ă";s:2:"ă";s:3:"ă";s:2:"Ą";s:3:"Ą";s:2:"ą";s:3:"ą";s:2:"Ć";s:3:"Ć";s:2:"ć";s:3:"ć";s:2:"Ĉ";s:3:"Ĉ";s:2:"ĉ";s:3:"ĉ";s:2:"Ċ";s:3:"Ċ";s:2:"ċ";s:3:"ċ";s:2:"Č";s:3:"Č";s:2:"č";s:3:"č";s:2:"Ď";s:3:"Ď";s:2:"ď";s:3:"ď";s:2:"Ē";s:3:"Ē";s:2:"ē";s:3:"ē";s:2:"Ĕ";s:3:"Ĕ";s:2:"ĕ";s:3:"ĕ";s:2:"Ė";s:3:"Ė";s:2:"ė";s:3:"ė";s:2:"Ę";s:3:"Ę";s:2:"ę";s:3:"ę";s:2:"Ě";s:3:"Ě";s:2:"ě";s:3:"ě";s:2:"Ĝ";s:3:"Ĝ";s:2:"ĝ";s:3:"ĝ";s:2:"Ğ";s:3:"Ğ";s:2:"ğ";s:3:"ğ";s:2:"Ġ";s:3:"Ġ";s:2:"ġ";s:3:"ġ";s:2:"Ģ";s:3:"Ģ";s:2:"ģ";s:3:"ģ";s:2:"Ĥ";s:3:"Ĥ";s:2:"ĥ";s:3:"ĥ";s:2:"Ĩ";s:3:"Ĩ";s:2:"ĩ";s:3:"ĩ";s:2:"Ī";s:3:"Ī";s:2:"ī";s:3:"ī";s:2:"Ĭ";s:3:"Ĭ";s:2:"ĭ";s:3:"ĭ";s:2:"Į";s:3:"Į";s:2:"į";s:3:"į";s:2:"İ";s:3:"İ";s:2:"IJ";s:2:"IJ";s:2:"ij";s:2:"ij";s:2:"Ĵ";s:3:"Ĵ";s:2:"ĵ";s:3:"ĵ";s:2:"Ķ";s:3:"Ķ";s:2:"ķ";s:3:"ķ";s:2:"Ĺ";s:3:"Ĺ";s:2:"ĺ";s:3:"ĺ";s:2:"Ļ";s:3:"Ļ";s:2:"ļ";s:3:"ļ";s:2:"Ľ";s:3:"Ľ";s:2:"ľ";s:3:"ľ";s:2:"Ŀ";s:3:"L·";s:2:"ŀ";s:3:"l·";s:2:"Ń";s:3:"Ń";s:2:"ń";s:3:"ń";s:2:"Ņ";s:3:"Ņ";s:2:"ņ";s:3:"ņ";s:2:"Ň";s:3:"Ň";s:2:"ň";s:3:"ň";s:2:"ʼn";s:3:"ʼn";s:2:"Ō";s:3:"Ō";s:2:"ō";s:3:"ō";s:2:"Ŏ";s:3:"Ŏ";s:2:"ŏ";s:3:"ŏ";s:2:"Ő";s:3:"Ő";s:2:"ő";s:3:"ő";s:2:"Ŕ";s:3:"Ŕ";s:2:"ŕ";s:3:"ŕ";s:2:"Ŗ";s:3:"Ŗ";s:2:"ŗ";s:3:"ŗ";s:2:"Ř";s:3:"Ř";s:2:"ř";s:3:"ř";s:2:"Ś";s:3:"Ś";s:2:"ś";s:3:"ś";s:2:"Ŝ";s:3:"Ŝ";s:2:"ŝ";s:3:"ŝ";s:2:"Ş";s:3:"Ş";s:2:"ş";s:3:"ş";s:2:"Š";s:3:"Š";s:2:"š";s:3:"š";s:2:"Ţ";s:3:"Ţ";s:2:"ţ";s:3:"ţ";s:2:"Ť";s:3:"Ť";s:2:"ť";s:3:"ť";s:2:"Ũ";s:3:"Ũ";s:2:"ũ";s:3:"ũ";s:2:"Ū";s:3:"Ū";s:2:"ū";s:3:"ū";s:2:"Ŭ";s:3:"Ŭ";s:2:"ŭ";s:3:"ŭ";s:2:"Ů";s:3:"Ů";s:2:"ů";s:3:"ů";s:2:"Ű";s:3:"Ű";s:2:"ű";s:3:"ű";s:2:"Ų";s:3:"Ų";s:2:"ų";s:3:"ų";s:2:"Ŵ";s:3:"Ŵ";s:2:"ŵ";s:3:"ŵ";s:2:"Ŷ";s:3:"Ŷ";s:2:"ŷ";s:3:"ŷ";s:2:"Ÿ";s:3:"Ÿ";s:2:"Ź";s:3:"Ź";s:2:"ź";s:3:"ź";s:2:"Ż";s:3:"Ż";s:2:"ż";s:3:"ż";s:2:"Ž";s:3:"Ž";s:2:"ž";s:3:"ž";s:2:"ſ";s:1:"s";s:2:"Ơ";s:3:"Ơ";s:2:"ơ";s:3:"ơ";s:2:"Ư";s:3:"Ư";s:2:"ư";s:3:"ư";s:2:"DŽ";s:4:"DŽ";s:2:"Dž";s:4:"Dž";s:2:"dž";s:4:"dž";s:2:"LJ";s:2:"LJ";s:2:"Lj";s:2:"Lj";s:2:"lj";s:2:"lj";s:2:"NJ";s:2:"NJ";s:2:"Nj";s:2:"Nj";s:2:"nj";s:2:"nj";s:2:"Ǎ";s:3:"Ǎ";s:2:"ǎ";s:3:"ǎ";s:2:"Ǐ";s:3:"Ǐ";s:2:"ǐ";s:3:"ǐ";s:2:"Ǒ";s:3:"Ǒ";s:2:"ǒ";s:3:"ǒ";s:2:"Ǔ";s:3:"Ǔ";s:2:"ǔ";s:3:"ǔ";s:2:"Ǖ";s:5:"Ǖ";s:2:"ǖ";s:5:"ǖ";s:2:"Ǘ";s:5:"Ǘ";s:2:"ǘ";s:5:"ǘ";s:2:"Ǚ";s:5:"Ǚ";s:2:"ǚ";s:5:"ǚ";s:2:"Ǜ";s:5:"Ǜ";s:2:"ǜ";s:5:"ǜ";s:2:"Ǟ";s:5:"Ǟ";s:2:"ǟ";s:5:"ǟ";s:2:"Ǡ";s:5:"Ǡ";s:2:"ǡ";s:5:"ǡ";s:2:"Ǣ";s:4:"Ǣ";s:2:"ǣ";s:4:"ǣ";s:2:"Ǧ";s:3:"Ǧ";s:2:"ǧ";s:3:"ǧ";s:2:"Ǩ";s:3:"Ǩ";s:2:"ǩ";s:3:"ǩ";s:2:"Ǫ";s:3:"Ǫ";s:2:"ǫ";s:3:"ǫ";s:2:"Ǭ";s:5:"Ǭ";s:2:"ǭ";s:5:"ǭ";s:2:"Ǯ";s:4:"Ǯ";s:2:"ǯ";s:4:"ǯ";s:2:"ǰ";s:3:"ǰ";s:2:"DZ";s:2:"DZ";s:2:"Dz";s:2:"Dz";s:2:"dz";s:2:"dz";s:2:"Ǵ";s:3:"Ǵ";s:2:"ǵ";s:3:"ǵ";s:2:"Ǹ";s:3:"Ǹ";s:2:"ǹ";s:3:"ǹ";s:2:"Ǻ";s:5:"Ǻ";s:2:"ǻ";s:5:"ǻ";s:2:"Ǽ";s:4:"Ǽ";s:2:"ǽ";s:4:"ǽ";s:2:"Ǿ";s:4:"Ǿ";s:2:"ǿ";s:4:"ǿ";s:2:"Ȁ";s:3:"Ȁ";s:2:"ȁ";s:3:"ȁ";s:2:"Ȃ";s:3:"Ȃ";s:2:"ȃ";s:3:"ȃ";s:2:"Ȅ";s:3:"Ȅ";s:2:"ȅ";s:3:"ȅ";s:2:"Ȇ";s:3:"Ȇ";s:2:"ȇ";s:3:"ȇ";s:2:"Ȉ";s:3:"Ȉ";s:2:"ȉ";s:3:"ȉ";s:2:"Ȋ";s:3:"Ȋ";s:2:"ȋ";s:3:"ȋ";s:2:"Ȍ";s:3:"Ȍ";s:2:"ȍ";s:3:"ȍ";s:2:"Ȏ";s:3:"Ȏ";s:2:"ȏ";s:3:"ȏ";s:2:"Ȑ";s:3:"Ȑ";s:2:"ȑ";s:3:"ȑ";s:2:"Ȓ";s:3:"Ȓ";s:2:"ȓ";s:3:"ȓ";s:2:"Ȕ";s:3:"Ȕ";s:2:"ȕ";s:3:"ȕ";s:2:"Ȗ";s:3:"Ȗ";s:2:"ȗ";s:3:"ȗ";s:2:"Ș";s:3:"Ș";s:2:"ș";s:3:"ș";s:2:"Ț";s:3:"Ț";s:2:"ț";s:3:"ț";s:2:"Ȟ";s:3:"Ȟ";s:2:"ȟ";s:3:"ȟ";s:2:"Ȧ";s:3:"Ȧ";s:2:"ȧ";s:3:"ȧ";s:2:"Ȩ";s:3:"Ȩ";s:2:"ȩ";s:3:"ȩ";s:2:"Ȫ";s:5:"Ȫ";s:2:"ȫ";s:5:"ȫ";s:2:"Ȭ";s:5:"Ȭ";s:2:"ȭ";s:5:"ȭ";s:2:"Ȯ";s:3:"Ȯ";s:2:"ȯ";s:3:"ȯ";s:2:"Ȱ";s:5:"Ȱ";s:2:"ȱ";s:5:"ȱ";s:2:"Ȳ";s:3:"Ȳ";s:2:"ȳ";s:3:"ȳ";s:2:"ʰ";s:1:"h";s:2:"ʱ";s:2:"ɦ";s:2:"ʲ";s:1:"j";s:2:"ʳ";s:1:"r";s:2:"ʴ";s:2:"ɹ";s:2:"ʵ";s:2:"ɻ";s:2:"ʶ";s:2:"ʁ";s:2:"ʷ";s:1:"w";s:2:"ʸ";s:1:"y";s:2:"˘";s:3:" ̆";s:2:"˙";s:3:" ̇";s:2:"˚";s:3:" ̊";s:2:"˛";s:3:" ̨";s:2:"˜";s:3:" ̃";s:2:"˝";s:3:" ̋";s:2:"ˠ";s:2:"ɣ";s:2:"ˡ";s:1:"l";s:2:"ˢ";s:1:"s";s:2:"ˣ";s:1:"x";s:2:"ˤ";s:2:"ʕ";s:2:"̀";s:2:"̀";s:2:"́";s:2:"́";s:2:"̓";s:2:"̓";s:2:"̈́";s:4:"̈́";s:2:"ʹ";s:2:"ʹ";s:2:"ͺ";s:3:" ͅ";s:2:";";s:1:";";s:2:"΄";s:3:" ́";s:2:"΅";s:5:" ̈́";s:2:"Ά";s:4:"Ά";s:2:"·";s:2:"·";s:2:"Έ";s:4:"Έ";s:2:"Ή";s:4:"Ή";s:2:"Ί";s:4:"Ί";s:2:"Ό";s:4:"Ό";s:2:"Ύ";s:4:"Ύ";s:2:"Ώ";s:4:"Ώ";s:2:"ΐ";s:6:"ΐ";s:2:"Ϊ";s:4:"Ϊ";s:2:"Ϋ";s:4:"Ϋ";s:2:"ά";s:4:"ά";s:2:"έ";s:4:"έ";s:2:"ή";s:4:"ή";s:2:"ί";s:4:"ί";s:2:"ΰ";s:6:"ΰ";s:2:"ϊ";s:4:"ϊ";s:2:"ϋ";s:4:"ϋ";s:2:"ό";s:4:"ό";s:2:"ύ";s:4:"ύ";s:2:"ώ";s:4:"ώ";s:2:"ϐ";s:2:"β";s:2:"ϑ";s:2:"θ";s:2:"ϒ";s:2:"Υ";s:2:"ϓ";s:4:"Ύ";s:2:"ϔ";s:4:"Ϋ";s:2:"ϕ";s:2:"φ";s:2:"ϖ";s:2:"π";s:2:"ϰ";s:2:"κ";s:2:"ϱ";s:2:"ρ";s:2:"ϲ";s:2:"ς";s:2:"ϴ";s:2:"Θ";s:2:"ϵ";s:2:"ε";s:2:"Ϲ";s:2:"Σ";s:2:"Ѐ";s:4:"Ѐ";s:2:"Ё";s:4:"Ё";s:2:"Ѓ";s:4:"Ѓ";s:2:"Ї";s:4:"Ї";s:2:"Ќ";s:4:"Ќ";s:2:"Ѝ";s:4:"Ѝ";s:2:"Ў";s:4:"Ў";s:2:"Й";s:4:"Й";s:2:"й";s:4:"й";s:2:"ѐ";s:4:"ѐ";s:2:"ё";s:4:"ё";s:2:"ѓ";s:4:"ѓ";s:2:"ї";s:4:"ї";s:2:"ќ";s:4:"ќ";s:2:"ѝ";s:4:"ѝ";s:2:"ў";s:4:"ў";s:2:"Ѷ";s:4:"Ѷ";s:2:"ѷ";s:4:"ѷ";s:2:"Ӂ";s:4:"Ӂ";s:2:"ӂ";s:4:"ӂ";s:2:"Ӑ";s:4:"Ӑ";s:2:"ӑ";s:4:"ӑ";s:2:"Ӓ";s:4:"Ӓ";s:2:"ӓ";s:4:"ӓ";s:2:"Ӗ";s:4:"Ӗ";s:2:"ӗ";s:4:"ӗ";s:2:"Ӛ";s:4:"Ӛ";s:2:"ӛ";s:4:"ӛ";s:2:"Ӝ";s:4:"Ӝ";s:2:"ӝ";s:4:"ӝ";s:2:"Ӟ";s:4:"Ӟ";s:2:"ӟ";s:4:"ӟ";s:2:"Ӣ";s:4:"Ӣ";s:2:"ӣ";s:4:"ӣ";s:2:"Ӥ";s:4:"Ӥ";s:2:"ӥ";s:4:"ӥ";s:2:"Ӧ";s:4:"Ӧ";s:2:"ӧ";s:4:"ӧ";s:2:"Ӫ";s:4:"Ӫ";s:2:"ӫ";s:4:"ӫ";s:2:"Ӭ";s:4:"Ӭ";s:2:"ӭ";s:4:"ӭ";s:2:"Ӯ";s:4:"Ӯ";s:2:"ӯ";s:4:"ӯ";s:2:"Ӱ";s:4:"Ӱ";s:2:"ӱ";s:4:"ӱ";s:2:"Ӳ";s:4:"Ӳ";s:2:"ӳ";s:4:"ӳ";s:2:"Ӵ";s:4:"Ӵ";s:2:"ӵ";s:4:"ӵ";s:2:"Ӹ";s:4:"Ӹ";s:2:"ӹ";s:4:"ӹ";s:2:"և";s:4:"եւ";s:2:"آ";s:4:"آ";s:2:"أ";s:4:"أ";s:2:"ؤ";s:4:"ؤ";s:2:"إ";s:4:"إ";s:2:"ئ";s:4:"ئ";s:2:"ٵ";s:4:"اٴ";s:2:"ٶ";s:4:"وٴ";s:2:"ٷ";s:4:"ۇٴ";s:2:"ٸ";s:4:"يٴ";s:2:"ۀ";s:4:"ۀ";s:2:"ۂ";s:4:"ۂ";s:2:"ۓ";s:4:"ۓ";s:3:"ऩ";s:6:"ऩ";s:3:"ऱ";s:6:"ऱ";s:3:"ऴ";s:6:"ऴ";s:3:"क़";s:6:"क़";s:3:"ख़";s:6:"ख़";s:3:"ग़";s:6:"ग़";s:3:"ज़";s:6:"ज़";s:3:"ड़";s:6:"ड़";s:3:"ढ़";s:6:"ढ़";s:3:"फ़";s:6:"फ़";s:3:"य़";s:6:"य़";s:3:"ো";s:6:"ো";s:3:"ৌ";s:6:"ৌ";s:3:"ড়";s:6:"ড়";s:3:"ঢ়";s:6:"ঢ়";s:3:"য়";s:6:"য়";s:3:"ਲ਼";s:6:"ਲ਼";s:3:"ਸ਼";s:6:"ਸ਼";s:3:"ਖ਼";s:6:"ਖ਼";s:3:"ਗ਼";s:6:"ਗ਼";s:3:"ਜ਼";s:6:"ਜ਼";s:3:"ਫ਼";s:6:"ਫ਼";s:3:"ୈ";s:6:"ୈ";s:3:"ୋ";s:6:"ୋ";s:3:"ୌ";s:6:"ୌ";s:3:"ଡ଼";s:6:"ଡ଼";s:3:"ଢ଼";s:6:"ଢ଼";s:3:"ஔ";s:6:"ஔ";s:3:"ொ";s:6:"ொ";s:3:"ோ";s:6:"ோ";s:3:"ௌ";s:6:"ௌ";s:3:"ై";s:6:"ై";s:3:"ೀ";s:6:"ೀ";s:3:"ೇ";s:6:"ೇ";s:3:"ೈ";s:6:"ೈ";s:3:"ೊ";s:6:"ೊ";s:3:"ೋ";s:9:"ೋ";s:3:"ൊ";s:6:"ൊ";s:3:"ോ";s:6:"ോ";s:3:"ൌ";s:6:"ൌ";s:3:"ේ";s:6:"ේ";s:3:"ො";s:6:"ො";s:3:"ෝ";s:9:"ෝ";s:3:"ෞ";s:6:"ෞ";s:3:"ำ";s:6:"ํา";s:3:"ຳ";s:6:"ໍາ";s:3:"ໜ";s:6:"ຫນ";s:3:"ໝ";s:6:"ຫມ";s:3:"༌";s:3:"་";s:3:"གྷ";s:6:"གྷ";s:3:"ཌྷ";s:6:"ཌྷ";s:3:"དྷ";s:6:"དྷ";s:3:"བྷ";s:6:"བྷ";s:3:"ཛྷ";s:6:"ཛྷ";s:3:"ཀྵ";s:6:"ཀྵ";s:3:"ཱི";s:6:"ཱི";s:3:"ཱུ";s:6:"ཱུ";s:3:"ྲྀ";s:6:"ྲྀ";s:3:"ཷ";s:9:"ྲཱྀ";s:3:"ླྀ";s:6:"ླྀ";s:3:"ཹ";s:9:"ླཱྀ";s:3:"ཱྀ";s:6:"ཱྀ";s:3:"ྒྷ";s:6:"ྒྷ";s:3:"ྜྷ";s:6:"ྜྷ";s:3:"ྡྷ";s:6:"ྡྷ";s:3:"ྦྷ";s:6:"ྦྷ";s:3:"ྫྷ";s:6:"ྫྷ";s:3:"ྐྵ";s:6:"ྐྵ";s:3:"ဦ";s:6:"ဦ";s:3:"ჼ";s:3:"ნ";s:3:"ᬆ";s:6:"ᬆ";s:3:"ᬈ";s:6:"ᬈ";s:3:"ᬊ";s:6:"ᬊ";s:3:"ᬌ";s:6:"ᬌ";s:3:"ᬎ";s:6:"ᬎ";s:3:"ᬒ";s:6:"ᬒ";s:3:"ᬻ";s:6:"ᬻ";s:3:"ᬽ";s:6:"ᬽ";s:3:"ᭀ";s:6:"ᭀ";s:3:"ᭁ";s:6:"ᭁ";s:3:"ᭃ";s:6:"ᭃ";s:3:"ᴬ";s:1:"A";s:3:"ᴭ";s:2:"Æ";s:3:"ᴮ";s:1:"B";s:3:"ᴰ";s:1:"D";s:3:"ᴱ";s:1:"E";s:3:"ᴲ";s:2:"Ǝ";s:3:"ᴳ";s:1:"G";s:3:"ᴴ";s:1:"H";s:3:"ᴵ";s:1:"I";s:3:"ᴶ";s:1:"J";s:3:"ᴷ";s:1:"K";s:3:"ᴸ";s:1:"L";s:3:"ᴹ";s:1:"M";s:3:"ᴺ";s:1:"N";s:3:"ᴼ";s:1:"O";s:3:"ᴽ";s:2:"Ȣ";s:3:"ᴾ";s:1:"P";s:3:"ᴿ";s:1:"R";s:3:"ᵀ";s:1:"T";s:3:"ᵁ";s:1:"U";s:3:"ᵂ";s:1:"W";s:3:"ᵃ";s:1:"a";s:3:"ᵄ";s:2:"ɐ";s:3:"ᵅ";s:2:"ɑ";s:3:"ᵆ";s:3:"ᴂ";s:3:"ᵇ";s:1:"b";s:3:"ᵈ";s:1:"d";s:3:"ᵉ";s:1:"e";s:3:"ᵊ";s:2:"ə";s:3:"ᵋ";s:2:"ɛ";s:3:"ᵌ";s:2:"ɜ";s:3:"ᵍ";s:1:"g";s:3:"ᵏ";s:1:"k";s:3:"ᵐ";s:1:"m";s:3:"ᵑ";s:2:"ŋ";s:3:"ᵒ";s:1:"o";s:3:"ᵓ";s:2:"ɔ";s:3:"ᵔ";s:3:"ᴖ";s:3:"ᵕ";s:3:"ᴗ";s:3:"ᵖ";s:1:"p";s:3:"ᵗ";s:1:"t";s:3:"ᵘ";s:1:"u";s:3:"ᵙ";s:3:"ᴝ";s:3:"ᵚ";s:2:"ɯ";s:3:"ᵛ";s:1:"v";s:3:"ᵜ";s:3:"ᴥ";s:3:"ᵝ";s:2:"β";s:3:"ᵞ";s:2:"γ";s:3:"ᵟ";s:2:"δ";s:3:"ᵠ";s:2:"φ";s:3:"ᵡ";s:2:"χ";s:3:"ᵢ";s:1:"i";s:3:"ᵣ";s:1:"r";s:3:"ᵤ";s:1:"u";s:3:"ᵥ";s:1:"v";s:3:"ᵦ";s:2:"β";s:3:"ᵧ";s:2:"γ";s:3:"ᵨ";s:2:"ρ";s:3:"ᵩ";s:2:"φ";s:3:"ᵪ";s:2:"χ";s:3:"ᵸ";s:2:"н";s:3:"ᶛ";s:2:"ɒ";s:3:"ᶜ";s:1:"c";s:3:"ᶝ";s:2:"ɕ";s:3:"ᶞ";s:2:"ð";s:3:"ᶟ";s:2:"ɜ";s:3:"ᶠ";s:1:"f";s:3:"ᶡ";s:2:"ɟ";s:3:"ᶢ";s:2:"ɡ";s:3:"ᶣ";s:2:"ɥ";s:3:"ᶤ";s:2:"ɨ";s:3:"ᶥ";s:2:"ɩ";s:3:"ᶦ";s:2:"ɪ";s:3:"ᶧ";s:3:"ᵻ";s:3:"ᶨ";s:2:"ʝ";s:3:"ᶩ";s:2:"ɭ";s:3:"ᶪ";s:3:"ᶅ";s:3:"ᶫ";s:2:"ʟ";s:3:"ᶬ";s:2:"ɱ";s:3:"ᶭ";s:2:"ɰ";s:3:"ᶮ";s:2:"ɲ";s:3:"ᶯ";s:2:"ɳ";s:3:"ᶰ";s:2:"ɴ";s:3:"ᶱ";s:2:"ɵ";s:3:"ᶲ";s:2:"ɸ";s:3:"ᶳ";s:2:"ʂ";s:3:"ᶴ";s:2:"ʃ";s:3:"ᶵ";s:2:"ƫ";s:3:"ᶶ";s:2:"ʉ";s:3:"ᶷ";s:2:"ʊ";s:3:"ᶸ";s:3:"ᴜ";s:3:"ᶹ";s:2:"ʋ";s:3:"ᶺ";s:2:"ʌ";s:3:"ᶻ";s:1:"z";s:3:"ᶼ";s:2:"ʐ";s:3:"ᶽ";s:2:"ʑ";s:3:"ᶾ";s:2:"ʒ";s:3:"ᶿ";s:2:"θ";s:3:"Ḁ";s:3:"Ḁ";s:3:"ḁ";s:3:"ḁ";s:3:"Ḃ";s:3:"Ḃ";s:3:"ḃ";s:3:"ḃ";s:3:"Ḅ";s:3:"Ḅ";s:3:"ḅ";s:3:"ḅ";s:3:"Ḇ";s:3:"Ḇ";s:3:"ḇ";s:3:"ḇ";s:3:"Ḉ";s:5:"Ḉ";s:3:"ḉ";s:5:"ḉ";s:3:"Ḋ";s:3:"Ḋ";s:3:"ḋ";s:3:"ḋ";s:3:"Ḍ";s:3:"Ḍ";s:3:"ḍ";s:3:"ḍ";s:3:"Ḏ";s:3:"Ḏ";s:3:"ḏ";s:3:"ḏ";s:3:"Ḑ";s:3:"Ḑ";s:3:"ḑ";s:3:"ḑ";s:3:"Ḓ";s:3:"Ḓ";s:3:"ḓ";s:3:"ḓ";s:3:"Ḕ";s:5:"Ḕ";s:3:"ḕ";s:5:"ḕ";s:3:"Ḗ";s:5:"Ḗ";s:3:"ḗ";s:5:"ḗ";s:3:"Ḙ";s:3:"Ḙ";s:3:"ḙ";s:3:"ḙ";s:3:"Ḛ";s:3:"Ḛ";s:3:"ḛ";s:3:"ḛ";s:3:"Ḝ";s:5:"Ḝ";s:3:"ḝ";s:5:"ḝ";s:3:"Ḟ";s:3:"Ḟ";s:3:"ḟ";s:3:"ḟ";s:3:"Ḡ";s:3:"Ḡ";s:3:"ḡ";s:3:"ḡ";s:3:"Ḣ";s:3:"Ḣ";s:3:"ḣ";s:3:"ḣ";s:3:"Ḥ";s:3:"Ḥ";s:3:"ḥ";s:3:"ḥ";s:3:"Ḧ";s:3:"Ḧ";s:3:"ḧ";s:3:"ḧ";s:3:"Ḩ";s:3:"Ḩ";s:3:"ḩ";s:3:"ḩ";s:3:"Ḫ";s:3:"Ḫ";s:3:"ḫ";s:3:"ḫ";s:3:"Ḭ";s:3:"Ḭ";s:3:"ḭ";s:3:"ḭ";s:3:"Ḯ";s:5:"Ḯ";s:3:"ḯ";s:5:"ḯ";s:3:"Ḱ";s:3:"Ḱ";s:3:"ḱ";s:3:"ḱ";s:3:"Ḳ";s:3:"Ḳ";s:3:"ḳ";s:3:"ḳ";s:3:"Ḵ";s:3:"Ḵ";s:3:"ḵ";s:3:"ḵ";s:3:"Ḷ";s:3:"Ḷ";s:3:"ḷ";s:3:"ḷ";s:3:"Ḹ";s:5:"Ḹ";s:3:"ḹ";s:5:"ḹ";s:3:"Ḻ";s:3:"Ḻ";s:3:"ḻ";s:3:"ḻ";s:3:"Ḽ";s:3:"Ḽ";s:3:"ḽ";s:3:"ḽ";s:3:"Ḿ";s:3:"Ḿ";s:3:"ḿ";s:3:"ḿ";s:3:"Ṁ";s:3:"Ṁ";s:3:"ṁ";s:3:"ṁ";s:3:"Ṃ";s:3:"Ṃ";s:3:"ṃ";s:3:"ṃ";s:3:"Ṅ";s:3:"Ṅ";s:3:"ṅ";s:3:"ṅ";s:3:"Ṇ";s:3:"Ṇ";s:3:"ṇ";s:3:"ṇ";s:3:"Ṉ";s:3:"Ṉ";s:3:"ṉ";s:3:"ṉ";s:3:"Ṋ";s:3:"Ṋ";s:3:"ṋ";s:3:"ṋ";s:3:"Ṍ";s:5:"Ṍ";s:3:"ṍ";s:5:"ṍ";s:3:"Ṏ";s:5:"Ṏ";s:3:"ṏ";s:5:"ṏ";s:3:"Ṑ";s:5:"Ṑ";s:3:"ṑ";s:5:"ṑ";s:3:"Ṓ";s:5:"Ṓ";s:3:"ṓ";s:5:"ṓ";s:3:"Ṕ";s:3:"Ṕ";s:3:"ṕ";s:3:"ṕ";s:3:"Ṗ";s:3:"Ṗ";s:3:"ṗ";s:3:"ṗ";s:3:"Ṙ";s:3:"Ṙ";s:3:"ṙ";s:3:"ṙ";s:3:"Ṛ";s:3:"Ṛ";s:3:"ṛ";s:3:"ṛ";s:3:"Ṝ";s:5:"Ṝ";s:3:"ṝ";s:5:"ṝ";s:3:"Ṟ";s:3:"Ṟ";s:3:"ṟ";s:3:"ṟ";s:3:"Ṡ";s:3:"Ṡ";s:3:"ṡ";s:3:"ṡ";s:3:"Ṣ";s:3:"Ṣ";s:3:"ṣ";s:3:"ṣ";s:3:"Ṥ";s:5:"Ṥ";s:3:"ṥ";s:5:"ṥ";s:3:"Ṧ";s:5:"Ṧ";s:3:"ṧ";s:5:"ṧ";s:3:"Ṩ";s:5:"Ṩ";s:3:"ṩ";s:5:"ṩ";s:3:"Ṫ";s:3:"Ṫ";s:3:"ṫ";s:3:"ṫ";s:3:"Ṭ";s:3:"Ṭ";s:3:"ṭ";s:3:"ṭ";s:3:"Ṯ";s:3:"Ṯ";s:3:"ṯ";s:3:"ṯ";s:3:"Ṱ";s:3:"Ṱ";s:3:"ṱ";s:3:"ṱ";s:3:"Ṳ";s:3:"Ṳ";s:3:"ṳ";s:3:"ṳ";s:3:"Ṵ";s:3:"Ṵ";s:3:"ṵ";s:3:"ṵ";s:3:"Ṷ";s:3:"Ṷ";s:3:"ṷ";s:3:"ṷ";s:3:"Ṹ";s:5:"Ṹ";s:3:"ṹ";s:5:"ṹ";s:3:"Ṻ";s:5:"Ṻ";s:3:"ṻ";s:5:"ṻ";s:3:"Ṽ";s:3:"Ṽ";s:3:"ṽ";s:3:"ṽ";s:3:"Ṿ";s:3:"Ṿ";s:3:"ṿ";s:3:"ṿ";s:3:"Ẁ";s:3:"Ẁ";s:3:"ẁ";s:3:"ẁ";s:3:"Ẃ";s:3:"Ẃ";s:3:"ẃ";s:3:"ẃ";s:3:"Ẅ";s:3:"Ẅ";s:3:"ẅ";s:3:"ẅ";s:3:"Ẇ";s:3:"Ẇ";s:3:"ẇ";s:3:"ẇ";s:3:"Ẉ";s:3:"Ẉ";s:3:"ẉ";s:3:"ẉ";s:3:"Ẋ";s:3:"Ẋ";s:3:"ẋ";s:3:"ẋ";s:3:"Ẍ";s:3:"Ẍ";s:3:"ẍ";s:3:"ẍ";s:3:"Ẏ";s:3:"Ẏ";s:3:"ẏ";s:3:"ẏ";s:3:"Ẑ";s:3:"Ẑ";s:3:"ẑ";s:3:"ẑ";s:3:"Ẓ";s:3:"Ẓ";s:3:"ẓ";s:3:"ẓ";s:3:"Ẕ";s:3:"Ẕ";s:3:"ẕ";s:3:"ẕ";s:3:"ẖ";s:3:"ẖ";s:3:"ẗ";s:3:"ẗ";s:3:"ẘ";s:3:"ẘ";s:3:"ẙ";s:3:"ẙ";s:3:"ẚ";s:3:"aʾ";s:3:"ẛ";s:3:"ṡ";s:3:"Ạ";s:3:"Ạ";s:3:"ạ";s:3:"ạ";s:3:"Ả";s:3:"Ả";s:3:"ả";s:3:"ả";s:3:"Ấ";s:5:"Ấ";s:3:"ấ";s:5:"ấ";s:3:"Ầ";s:5:"Ầ";s:3:"ầ";s:5:"ầ";s:3:"Ẩ";s:5:"Ẩ";s:3:"ẩ";s:5:"ẩ";s:3:"Ẫ";s:5:"Ẫ";s:3:"ẫ";s:5:"ẫ";s:3:"Ậ";s:5:"Ậ";s:3:"ậ";s:5:"ậ";s:3:"Ắ";s:5:"Ắ";s:3:"ắ";s:5:"ắ";s:3:"Ằ";s:5:"Ằ";s:3:"ằ";s:5:"ằ";s:3:"Ẳ";s:5:"Ẳ";s:3:"ẳ";s:5:"ẳ";s:3:"Ẵ";s:5:"Ẵ";s:3:"ẵ";s:5:"ẵ";s:3:"Ặ";s:5:"Ặ";s:3:"ặ";s:5:"ặ";s:3:"Ẹ";s:3:"Ẹ";s:3:"ẹ";s:3:"ẹ";s:3:"Ẻ";s:3:"Ẻ";s:3:"ẻ";s:3:"ẻ";s:3:"Ẽ";s:3:"Ẽ";s:3:"ẽ";s:3:"ẽ";s:3:"Ế";s:5:"Ế";s:3:"ế";s:5:"ế";s:3:"Ề";s:5:"Ề";s:3:"ề";s:5:"ề";s:3:"Ể";s:5:"Ể";s:3:"ể";s:5:"ể";s:3:"Ễ";s:5:"Ễ";s:3:"ễ";s:5:"ễ";s:3:"Ệ";s:5:"Ệ";s:3:"ệ";s:5:"ệ";s:3:"Ỉ";s:3:"Ỉ";s:3:"ỉ";s:3:"ỉ";s:3:"Ị";s:3:"Ị";s:3:"ị";s:3:"ị";s:3:"Ọ";s:3:"Ọ";s:3:"ọ";s:3:"ọ";s:3:"Ỏ";s:3:"Ỏ";s:3:"ỏ";s:3:"ỏ";s:3:"Ố";s:5:"Ố";s:3:"ố";s:5:"ố";s:3:"Ồ";s:5:"Ồ";s:3:"ồ";s:5:"ồ";s:3:"Ổ";s:5:"Ổ";s:3:"ổ";s:5:"ổ";s:3:"Ỗ";s:5:"Ỗ";s:3:"ỗ";s:5:"ỗ";s:3:"Ộ";s:5:"Ộ";s:3:"ộ";s:5:"ộ";s:3:"Ớ";s:5:"Ớ";s:3:"ớ";s:5:"ớ";s:3:"Ờ";s:5:"Ờ";s:3:"ờ";s:5:"ờ";s:3:"Ở";s:5:"Ở";s:3:"ở";s:5:"ở";s:3:"Ỡ";s:5:"Ỡ";s:3:"ỡ";s:5:"ỡ";s:3:"Ợ";s:5:"Ợ";s:3:"ợ";s:5:"ợ";s:3:"Ụ";s:3:"Ụ";s:3:"ụ";s:3:"ụ";s:3:"Ủ";s:3:"Ủ";s:3:"ủ";s:3:"ủ";s:3:"Ứ";s:5:"Ứ";s:3:"ứ";s:5:"ứ";s:3:"Ừ";s:5:"Ừ";s:3:"ừ";s:5:"ừ";s:3:"Ử";s:5:"Ử";s:3:"ử";s:5:"ử";s:3:"Ữ";s:5:"Ữ";s:3:"ữ";s:5:"ữ";s:3:"Ự";s:5:"Ự";s:3:"ự";s:5:"ự";s:3:"Ỳ";s:3:"Ỳ";s:3:"ỳ";s:3:"ỳ";s:3:"Ỵ";s:3:"Ỵ";s:3:"ỵ";s:3:"ỵ";s:3:"Ỷ";s:3:"Ỷ";s:3:"ỷ";s:3:"ỷ";s:3:"Ỹ";s:3:"Ỹ";s:3:"ỹ";s:3:"ỹ";s:3:"ἀ";s:4:"ἀ";s:3:"ἁ";s:4:"ἁ";s:3:"ἂ";s:6:"ἂ";s:3:"ἃ";s:6:"ἃ";s:3:"ἄ";s:6:"ἄ";s:3:"ἅ";s:6:"ἅ";s:3:"ἆ";s:6:"ἆ";s:3:"ἇ";s:6:"ἇ";s:3:"Ἀ";s:4:"Ἀ";s:3:"Ἁ";s:4:"Ἁ";s:3:"Ἂ";s:6:"Ἂ";s:3:"Ἃ";s:6:"Ἃ";s:3:"Ἄ";s:6:"Ἄ";s:3:"Ἅ";s:6:"Ἅ";s:3:"Ἆ";s:6:"Ἆ";s:3:"Ἇ";s:6:"Ἇ";s:3:"ἐ";s:4:"ἐ";s:3:"ἑ";s:4:"ἑ";s:3:"ἒ";s:6:"ἒ";s:3:"ἓ";s:6:"ἓ";s:3:"ἔ";s:6:"ἔ";s:3:"ἕ";s:6:"ἕ";s:3:"Ἐ";s:4:"Ἐ";s:3:"Ἑ";s:4:"Ἑ";s:3:"Ἒ";s:6:"Ἒ";s:3:"Ἓ";s:6:"Ἓ";s:3:"Ἔ";s:6:"Ἔ";s:3:"Ἕ";s:6:"Ἕ";s:3:"ἠ";s:4:"ἠ";s:3:"ἡ";s:4:"ἡ";s:3:"ἢ";s:6:"ἢ";s:3:"ἣ";s:6:"ἣ";s:3:"ἤ";s:6:"ἤ";s:3:"ἥ";s:6:"ἥ";s:3:"ἦ";s:6:"ἦ";s:3:"ἧ";s:6:"ἧ";s:3:"Ἠ";s:4:"Ἠ";s:3:"Ἡ";s:4:"Ἡ";s:3:"Ἢ";s:6:"Ἢ";s:3:"Ἣ";s:6:"Ἣ";s:3:"Ἤ";s:6:"Ἤ";s:3:"Ἥ";s:6:"Ἥ";s:3:"Ἦ";s:6:"Ἦ";s:3:"Ἧ";s:6:"Ἧ";s:3:"ἰ";s:4:"ἰ";s:3:"ἱ";s:4:"ἱ";s:3:"ἲ";s:6:"ἲ";s:3:"ἳ";s:6:"ἳ";s:3:"ἴ";s:6:"ἴ";s:3:"ἵ";s:6:"ἵ";s:3:"ἶ";s:6:"ἶ";s:3:"ἷ";s:6:"ἷ";s:3:"Ἰ";s:4:"Ἰ";s:3:"Ἱ";s:4:"Ἱ";s:3:"Ἲ";s:6:"Ἲ";s:3:"Ἳ";s:6:"Ἳ";s:3:"Ἴ";s:6:"Ἴ";s:3:"Ἵ";s:6:"Ἵ";s:3:"Ἶ";s:6:"Ἶ";s:3:"Ἷ";s:6:"Ἷ";s:3:"ὀ";s:4:"ὀ";s:3:"ὁ";s:4:"ὁ";s:3:"ὂ";s:6:"ὂ";s:3:"ὃ";s:6:"ὃ";s:3:"ὄ";s:6:"ὄ";s:3:"ὅ";s:6:"ὅ";s:3:"Ὀ";s:4:"Ὀ";s:3:"Ὁ";s:4:"Ὁ";s:3:"Ὂ";s:6:"Ὂ";s:3:"Ὃ";s:6:"Ὃ";s:3:"Ὄ";s:6:"Ὄ";s:3:"Ὅ";s:6:"Ὅ";s:3:"ὐ";s:4:"ὐ";s:3:"ὑ";s:4:"ὑ";s:3:"ὒ";s:6:"ὒ";s:3:"ὓ";s:6:"ὓ";s:3:"ὔ";s:6:"ὔ";s:3:"ὕ";s:6:"ὕ";s:3:"ὖ";s:6:"ὖ";s:3:"ὗ";s:6:"ὗ";s:3:"Ὑ";s:4:"Ὑ";s:3:"Ὓ";s:6:"Ὓ";s:3:"Ὕ";s:6:"Ὕ";s:3:"Ὗ";s:6:"Ὗ";s:3:"ὠ";s:4:"ὠ";s:3:"ὡ";s:4:"ὡ";s:3:"ὢ";s:6:"ὢ";s:3:"ὣ";s:6:"ὣ";s:3:"ὤ";s:6:"ὤ";s:3:"ὥ";s:6:"ὥ";s:3:"ὦ";s:6:"ὦ";s:3:"ὧ";s:6:"ὧ";s:3:"Ὠ";s:4:"Ὠ";s:3:"Ὡ";s:4:"Ὡ";s:3:"Ὢ";s:6:"Ὢ";s:3:"Ὣ";s:6:"Ὣ";s:3:"Ὤ";s:6:"Ὤ";s:3:"Ὥ";s:6:"Ὥ";s:3:"Ὦ";s:6:"Ὦ";s:3:"Ὧ";s:6:"Ὧ";s:3:"ὰ";s:4:"ὰ";s:3:"ά";s:4:"ά";s:3:"ὲ";s:4:"ὲ";s:3:"έ";s:4:"έ";s:3:"ὴ";s:4:"ὴ";s:3:"ή";s:4:"ή";s:3:"ὶ";s:4:"ὶ";s:3:"ί";s:4:"ί";s:3:"ὸ";s:4:"ὸ";s:3:"ό";s:4:"ό";s:3:"ὺ";s:4:"ὺ";s:3:"ύ";s:4:"ύ";s:3:"ὼ";s:4:"ὼ";s:3:"ώ";s:4:"ώ";s:3:"ᾀ";s:6:"ᾀ";s:3:"ᾁ";s:6:"ᾁ";s:3:"ᾂ";s:8:"ᾂ";s:3:"ᾃ";s:8:"ᾃ";s:3:"ᾄ";s:8:"ᾄ";s:3:"ᾅ";s:8:"ᾅ";s:3:"ᾆ";s:8:"ᾆ";s:3:"ᾇ";s:8:"ᾇ";s:3:"ᾈ";s:6:"ᾈ";s:3:"ᾉ";s:6:"ᾉ";s:3:"ᾊ";s:8:"ᾊ";s:3:"ᾋ";s:8:"ᾋ";s:3:"ᾌ";s:8:"ᾌ";s:3:"ᾍ";s:8:"ᾍ";s:3:"ᾎ";s:8:"ᾎ";s:3:"ᾏ";s:8:"ᾏ";s:3:"ᾐ";s:6:"ᾐ";s:3:"ᾑ";s:6:"ᾑ";s:3:"ᾒ";s:8:"ᾒ";s:3:"ᾓ";s:8:"ᾓ";s:3:"ᾔ";s:8:"ᾔ";s:3:"ᾕ";s:8:"ᾕ";s:3:"ᾖ";s:8:"ᾖ";s:3:"ᾗ";s:8:"ᾗ";s:3:"ᾘ";s:6:"ᾘ";s:3:"ᾙ";s:6:"ᾙ";s:3:"ᾚ";s:8:"ᾚ";s:3:"ᾛ";s:8:"ᾛ";s:3:"ᾜ";s:8:"ᾜ";s:3:"ᾝ";s:8:"ᾝ";s:3:"ᾞ";s:8:"ᾞ";s:3:"ᾟ";s:8:"ᾟ";s:3:"ᾠ";s:6:"ᾠ";s:3:"ᾡ";s:6:"ᾡ";s:3:"ᾢ";s:8:"ᾢ";s:3:"ᾣ";s:8:"ᾣ";s:3:"ᾤ";s:8:"ᾤ";s:3:"ᾥ";s:8:"ᾥ";s:3:"ᾦ";s:8:"ᾦ";s:3:"ᾧ";s:8:"ᾧ";s:3:"ᾨ";s:6:"ᾨ";s:3:"ᾩ";s:6:"ᾩ";s:3:"ᾪ";s:8:"ᾪ";s:3:"ᾫ";s:8:"ᾫ";s:3:"ᾬ";s:8:"ᾬ";s:3:"ᾭ";s:8:"ᾭ";s:3:"ᾮ";s:8:"ᾮ";s:3:"ᾯ";s:8:"ᾯ";s:3:"ᾰ";s:4:"ᾰ";s:3:"ᾱ";s:4:"ᾱ";s:3:"ᾲ";s:6:"ᾲ";s:3:"ᾳ";s:4:"ᾳ";s:3:"ᾴ";s:6:"ᾴ";s:3:"ᾶ";s:4:"ᾶ";s:3:"ᾷ";s:6:"ᾷ";s:3:"Ᾰ";s:4:"Ᾰ";s:3:"Ᾱ";s:4:"Ᾱ";s:3:"Ὰ";s:4:"Ὰ";s:3:"Ά";s:4:"Ά";s:3:"ᾼ";s:4:"ᾼ";s:3:"᾽";s:3:" ̓";s:3:"ι";s:2:"ι";s:3:"᾿";s:3:" ̓";s:3:"῀";s:3:" ͂";s:3:"῁";s:5:" ̈͂";s:3:"ῂ";s:6:"ῂ";s:3:"ῃ";s:4:"ῃ";s:3:"ῄ";s:6:"ῄ";s:3:"ῆ";s:4:"ῆ";s:3:"ῇ";s:6:"ῇ";s:3:"Ὲ";s:4:"Ὲ";s:3:"Έ";s:4:"Έ";s:3:"Ὴ";s:4:"Ὴ";s:3:"Ή";s:4:"Ή";s:3:"ῌ";s:4:"ῌ";s:3:"῍";s:5:" ̓̀";s:3:"῎";s:5:" ̓́";s:3:"῏";s:5:" ̓͂";s:3:"ῐ";s:4:"ῐ";s:3:"ῑ";s:4:"ῑ";s:3:"ῒ";s:6:"ῒ";s:3:"ΐ";s:6:"ΐ";s:3:"ῖ";s:4:"ῖ";s:3:"ῗ";s:6:"ῗ";s:3:"Ῐ";s:4:"Ῐ";s:3:"Ῑ";s:4:"Ῑ";s:3:"Ὶ";s:4:"Ὶ";s:3:"Ί";s:4:"Ί";s:3:"῝";s:5:" ̔̀";s:3:"῞";s:5:" ̔́";s:3:"῟";s:5:" ̔͂";s:3:"ῠ";s:4:"ῠ";s:3:"ῡ";s:4:"ῡ";s:3:"ῢ";s:6:"ῢ";s:3:"ΰ";s:6:"ΰ";s:3:"ῤ";s:4:"ῤ";s:3:"ῥ";s:4:"ῥ";s:3:"ῦ";s:4:"ῦ";s:3:"ῧ";s:6:"ῧ";s:3:"Ῠ";s:4:"Ῠ";s:3:"Ῡ";s:4:"Ῡ";s:3:"Ὺ";s:4:"Ὺ";s:3:"Ύ";s:4:"Ύ";s:3:"Ῥ";s:4:"Ῥ";s:3:"῭";s:5:" ̈̀";s:3:"΅";s:5:" ̈́";s:3:"`";s:1:"`";s:3:"ῲ";s:6:"ῲ";s:3:"ῳ";s:4:"ῳ";s:3:"ῴ";s:6:"ῴ";s:3:"ῶ";s:4:"ῶ";s:3:"ῷ";s:6:"ῷ";s:3:"Ὸ";s:4:"Ὸ";s:3:"Ό";s:4:"Ό";s:3:"Ὼ";s:4:"Ὼ";s:3:"Ώ";s:4:"Ώ";s:3:"ῼ";s:4:"ῼ";s:3:"´";s:3:" ́";s:3:"῾";s:3:" ̔";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:"‑";s:3:"‐";s:3:"‗";s:3:" ̳";s:3:"․";s:1:".";s:3:"‥";s:2:"..";s:3:"…";s:3:"...";s:3:" ";s:1:" ";s:3:"″";s:6:"′′";s:3:"‴";s:9:"′′′";s:3:"‶";s:6:"‵‵";s:3:"‷";s:9:"‵‵‵";s:3:"‼";s:2:"!!";s:3:"‾";s:3:" ̅";s:3:"⁇";s:2:"??";s:3:"⁈";s:2:"?!";s:3:"⁉";s:2:"!?";s:3:"⁗";s:12:"′′′′";s:3:" ";s:1:" ";s:3:"⁰";s:1:"0";s:3:"ⁱ";s:1:"i";s:3:"⁴";s:1:"4";s:3:"⁵";s:1:"5";s:3:"⁶";s:1:"6";s:3:"⁷";s:1:"7";s:3:"⁸";s:1:"8";s:3:"⁹";s:1:"9";s:3:"⁺";s:1:"+";s:3:"⁻";s:3:"−";s:3:"⁼";s:1:"=";s:3:"⁽";s:1:"(";s:3:"⁾";s:1:")";s:3:"ⁿ";s:1:"n";s:3:"₀";s:1:"0";s:3:"₁";s:1:"1";s:3:"₂";s:1:"2";s:3:"₃";s:1:"3";s:3:"₄";s:1:"4";s:3:"₅";s:1:"5";s:3:"₆";s:1:"6";s:3:"₇";s:1:"7";s:3:"₈";s:1:"8";s:3:"₉";s:1:"9";s:3:"₊";s:1:"+";s:3:"₋";s:3:"−";s:3:"₌";s:1:"=";s:3:"₍";s:1:"(";s:3:"₎";s:1:")";s:3:"ₐ";s:1:"a";s:3:"ₑ";s:1:"e";s:3:"ₒ";s:1:"o";s:3:"ₓ";s:1:"x";s:3:"ₔ";s:2:"ə";s:3:"ₕ";s:1:"h";s:3:"ₖ";s:1:"k";s:3:"ₗ";s:1:"l";s:3:"ₘ";s:1:"m";s:3:"ₙ";s:1:"n";s:3:"ₚ";s:1:"p";s:3:"ₛ";s:1:"s";s:3:"ₜ";s:1:"t";s:3:"₨";s:2:"Rs";s:3:"℀";s:3:"a/c";s:3:"℁";s:3:"a/s";s:3:"ℂ";s:1:"C";s:3:"℃";s:3:"°C";s:3:"℅";s:3:"c/o";s:3:"℆";s:3:"c/u";s:3:"ℇ";s:2:"Ɛ";s:3:"℉";s:3:"°F";s:3:"ℊ";s:1:"g";s:3:"ℋ";s:1:"H";s:3:"ℌ";s:1:"H";s:3:"ℍ";s:1:"H";s:3:"ℎ";s:1:"h";s:3:"ℏ";s:2:"ħ";s:3:"ℐ";s:1:"I";s:3:"ℑ";s:1:"I";s:3:"ℒ";s:1:"L";s:3:"ℓ";s:1:"l";s:3:"ℕ";s:1:"N";s:3:"№";s:2:"No";s:3:"ℙ";s:1:"P";s:3:"ℚ";s:1:"Q";s:3:"ℛ";s:1:"R";s:3:"ℜ";s:1:"R";s:3:"ℝ";s:1:"R";s:3:"℠";s:2:"SM";s:3:"℡";s:3:"TEL";s:3:"™";s:2:"TM";s:3:"ℤ";s:1:"Z";s:3:"Ω";s:2:"Ω";s:3:"ℨ";s:1:"Z";s:3:"K";s:1:"K";s:3:"Å";s:3:"Å";s:3:"ℬ";s:1:"B";s:3:"ℭ";s:1:"C";s:3:"ℯ";s:1:"e";s:3:"ℰ";s:1:"E";s:3:"ℱ";s:1:"F";s:3:"ℳ";s:1:"M";s:3:"ℴ";s:1:"o";s:3:"ℵ";s:2:"א";s:3:"ℶ";s:2:"ב";s:3:"ℷ";s:2:"ג";s:3:"ℸ";s:2:"ד";s:3:"ℹ";s:1:"i";s:3:"℻";s:3:"FAX";s:3:"ℼ";s:2:"π";s:3:"ℽ";s:2:"γ";s:3:"ℾ";s:2:"Γ";s:3:"ℿ";s:2:"Π";s:3:"⅀";s:3:"∑";s:3:"ⅅ";s:1:"D";s:3:"ⅆ";s:1:"d";s:3:"ⅇ";s:1:"e";s:3:"ⅈ";s:1:"i";s:3:"ⅉ";s:1:"j";s:3:"⅐";s:5:"1⁄7";s:3:"⅑";s:5:"1⁄9";s:3:"⅒";s:6:"1⁄10";s:3:"⅓";s:5:"1⁄3";s:3:"⅔";s:5:"2⁄3";s:3:"⅕";s:5:"1⁄5";s:3:"⅖";s:5:"2⁄5";s:3:"⅗";s:5:"3⁄5";s:3:"⅘";s:5:"4⁄5";s:3:"⅙";s:5:"1⁄6";s:3:"⅚";s:5:"5⁄6";s:3:"⅛";s:5:"1⁄8";s:3:"⅜";s:5:"3⁄8";s:3:"⅝";s:5:"5⁄8";s:3:"⅞";s:5:"7⁄8";s:3:"⅟";s:4:"1⁄";s:3:"Ⅰ";s:1:"I";s:3:"Ⅱ";s:2:"II";s:3:"Ⅲ";s:3:"III";s:3:"Ⅳ";s:2:"IV";s:3:"Ⅴ";s:1:"V";s:3:"Ⅵ";s:2:"VI";s:3:"Ⅶ";s:3:"VII";s:3:"Ⅷ";s:4:"VIII";s:3:"Ⅸ";s:2:"IX";s:3:"Ⅹ";s:1:"X";s:3:"Ⅺ";s:2:"XI";s:3:"Ⅻ";s:3:"XII";s:3:"Ⅼ";s:1:"L";s:3:"Ⅽ";s:1:"C";s:3:"Ⅾ";s:1:"D";s:3:"Ⅿ";s:1:"M";s:3:"ⅰ";s:1:"i";s:3:"ⅱ";s:2:"ii";s:3:"ⅲ";s:3:"iii";s:3:"ⅳ";s:2:"iv";s:3:"ⅴ";s:1:"v";s:3:"ⅵ";s:2:"vi";s:3:"ⅶ";s:3:"vii";s:3:"ⅷ";s:4:"viii";s:3:"ⅸ";s:2:"ix";s:3:"ⅹ";s:1:"x";s:3:"ⅺ";s:2:"xi";s:3:"ⅻ";s:3:"xii";s:3:"ⅼ";s:1:"l";s:3:"ⅽ";s:1:"c";s:3:"ⅾ";s:1:"d";s:3:"ⅿ";s:1:"m";s:3:"↉";s:5:"0⁄3";s:3:"↚";s:5:"↚";s:3:"↛";s:5:"↛";s:3:"↮";s:5:"↮";s:3:"⇍";s:5:"⇍";s:3:"⇎";s:5:"⇎";s:3:"⇏";s:5:"⇏";s:3:"∄";s:5:"∄";s:3:"∉";s:5:"∉";s:3:"∌";s:5:"∌";s:3:"∤";s:5:"∤";s:3:"∦";s:5:"∦";s:3:"∬";s:6:"∫∫";s:3:"∭";s:9:"∫∫∫";s:3:"∯";s:6:"∮∮";s:3:"∰";s:9:"∮∮∮";s:3:"≁";s:5:"≁";s:3:"≄";s:5:"≄";s:3:"≇";s:5:"≇";s:3:"≉";s:5:"≉";s:3:"≠";s:3:"≠";s:3:"≢";s:5:"≢";s:3:"≭";s:5:"≭";s:3:"≮";s:3:"≮";s:3:"≯";s:3:"≯";s:3:"≰";s:5:"≰";s:3:"≱";s:5:"≱";s:3:"≴";s:5:"≴";s:3:"≵";s:5:"≵";s:3:"≸";s:5:"≸";s:3:"≹";s:5:"≹";s:3:"⊀";s:5:"⊀";s:3:"⊁";s:5:"⊁";s:3:"⊄";s:5:"⊄";s:3:"⊅";s:5:"⊅";s:3:"⊈";s:5:"⊈";s:3:"⊉";s:5:"⊉";s:3:"⊬";s:5:"⊬";s:3:"⊭";s:5:"⊭";s:3:"⊮";s:5:"⊮";s:3:"⊯";s:5:"⊯";s:3:"⋠";s:5:"⋠";s:3:"⋡";s:5:"⋡";s:3:"⋢";s:5:"⋢";s:3:"⋣";s:5:"⋣";s:3:"⋪";s:5:"⋪";s:3:"⋫";s:5:"⋫";s:3:"⋬";s:5:"⋬";s:3:"⋭";s:5:"⋭";s:3:"〈";s:3:"〈";s:3:"〉";s:3:"〉";s:3:"①";s:1:"1";s:3:"②";s:1:"2";s:3:"③";s:1:"3";s:3:"④";s:1:"4";s:3:"⑤";s:1:"5";s:3:"⑥";s:1:"6";s:3:"⑦";s:1:"7";s:3:"⑧";s:1:"8";s:3:"⑨";s:1:"9";s:3:"⑩";s:2:"10";s:3:"⑪";s:2:"11";s:3:"⑫";s:2:"12";s:3:"⑬";s:2:"13";s:3:"⑭";s:2:"14";s:3:"⑮";s:2:"15";s:3:"⑯";s:2:"16";s:3:"⑰";s:2:"17";s:3:"⑱";s:2:"18";s:3:"⑲";s:2:"19";s:3:"⑳";s:2:"20";s:3:"⑴";s:3:"(1)";s:3:"⑵";s:3:"(2)";s:3:"⑶";s:3:"(3)";s:3:"⑷";s:3:"(4)";s:3:"⑸";s:3:"(5)";s:3:"⑹";s:3:"(6)";s:3:"⑺";s:3:"(7)";s:3:"⑻";s:3:"(8)";s:3:"⑼";s:3:"(9)";s:3:"⑽";s:4:"(10)";s:3:"⑾";s:4:"(11)";s:3:"⑿";s:4:"(12)";s:3:"⒀";s:4:"(13)";s:3:"⒁";s:4:"(14)";s:3:"⒂";s:4:"(15)";s:3:"⒃";s:4:"(16)";s:3:"⒄";s:4:"(17)";s:3:"⒅";s:4:"(18)";s:3:"⒆";s:4:"(19)";s:3:"⒇";s:4:"(20)";s:3:"⒈";s:2:"1.";s:3:"⒉";s:2:"2.";s:3:"⒊";s:2:"3.";s:3:"⒋";s:2:"4.";s:3:"⒌";s:2:"5.";s:3:"⒍";s:2:"6.";s:3:"⒎";s:2:"7.";s:3:"⒏";s:2:"8.";s:3:"⒐";s:2:"9.";s:3:"⒑";s:3:"10.";s:3:"⒒";s:3:"11.";s:3:"⒓";s:3:"12.";s:3:"⒔";s:3:"13.";s:3:"⒕";s:3:"14.";s:3:"⒖";s:3:"15.";s:3:"⒗";s:3:"16.";s:3:"⒘";s:3:"17.";s:3:"⒙";s:3:"18.";s:3:"⒚";s:3:"19.";s:3:"⒛";s:3:"20.";s:3:"⒜";s:3:"(a)";s:3:"⒝";s:3:"(b)";s:3:"⒞";s:3:"(c)";s:3:"⒟";s:3:"(d)";s:3:"⒠";s:3:"(e)";s:3:"⒡";s:3:"(f)";s:3:"⒢";s:3:"(g)";s:3:"⒣";s:3:"(h)";s:3:"⒤";s:3:"(i)";s:3:"⒥";s:3:"(j)";s:3:"⒦";s:3:"(k)";s:3:"⒧";s:3:"(l)";s:3:"⒨";s:3:"(m)";s:3:"⒩";s:3:"(n)";s:3:"⒪";s:3:"(o)";s:3:"⒫";s:3:"(p)";s:3:"⒬";s:3:"(q)";s:3:"⒭";s:3:"(r)";s:3:"⒮";s:3:"(s)";s:3:"⒯";s:3:"(t)";s:3:"⒰";s:3:"(u)";s:3:"⒱";s:3:"(v)";s:3:"⒲";s:3:"(w)";s:3:"⒳";s:3:"(x)";s:3:"⒴";s:3:"(y)";s:3:"⒵";s:3:"(z)";s:3:"Ⓐ";s:1:"A";s:3:"Ⓑ";s:1:"B";s:3:"Ⓒ";s:1:"C";s:3:"Ⓓ";s:1:"D";s:3:"Ⓔ";s:1:"E";s:3:"Ⓕ";s:1:"F";s:3:"Ⓖ";s:1:"G";s:3:"Ⓗ";s:1:"H";s:3:"Ⓘ";s:1:"I";s:3:"Ⓙ";s:1:"J";s:3:"Ⓚ";s:1:"K";s:3:"Ⓛ";s:1:"L";s:3:"Ⓜ";s:1:"M";s:3:"Ⓝ";s:1:"N";s:3:"Ⓞ";s:1:"O";s:3:"Ⓟ";s:1:"P";s:3:"Ⓠ";s:1:"Q";s:3:"Ⓡ";s:1:"R";s:3:"Ⓢ";s:1:"S";s:3:"Ⓣ";s:1:"T";s:3:"Ⓤ";s:1:"U";s:3:"Ⓥ";s:1:"V";s:3:"Ⓦ";s:1:"W";s:3:"Ⓧ";s:1:"X";s:3:"Ⓨ";s:1:"Y";s:3:"Ⓩ";s:1:"Z";s:3:"ⓐ";s:1:"a";s:3:"ⓑ";s:1:"b";s:3:"ⓒ";s:1:"c";s:3:"ⓓ";s:1:"d";s:3:"ⓔ";s:1:"e";s:3:"ⓕ";s:1:"f";s:3:"ⓖ";s:1:"g";s:3:"ⓗ";s:1:"h";s:3:"ⓘ";s:1:"i";s:3:"ⓙ";s:1:"j";s:3:"ⓚ";s:1:"k";s:3:"ⓛ";s:1:"l";s:3:"ⓜ";s:1:"m";s:3:"ⓝ";s:1:"n";s:3:"ⓞ";s:1:"o";s:3:"ⓟ";s:1:"p";s:3:"ⓠ";s:1:"q";s:3:"ⓡ";s:1:"r";s:3:"ⓢ";s:1:"s";s:3:"ⓣ";s:1:"t";s:3:"ⓤ";s:1:"u";s:3:"ⓥ";s:1:"v";s:3:"ⓦ";s:1:"w";s:3:"ⓧ";s:1:"x";s:3:"ⓨ";s:1:"y";s:3:"ⓩ";s:1:"z";s:3:"⓪";s:1:"0";s:3:"⨌";s:12:"∫∫∫∫";s:3:"⩴";s:3:"::=";s:3:"⩵";s:2:"==";s:3:"⩶";s:3:"===";s:3:"⫝̸";s:5:"⫝̸";s:3:"ⱼ";s:1:"j";s:3:"ⱽ";s:1:"V";s:3:"ⵯ";s:3:"ⵡ";s:3:"⺟";s:3:"母";s:3:"⻳";s:3:"龟";s:3:"⼀";s:3:"一";s:3:"⼁";s:3:"丨";s:3:"⼂";s:3:"丶";s:3:"⼃";s:3:"丿";s:3:"⼄";s:3:"乙";s:3:"⼅";s:3:"亅";s:3:"⼆";s:3:"二";s:3:"⼇";s:3:"亠";s:3:"⼈";s:3:"人";s:3:"⼉";s:3:"儿";s:3:"⼊";s:3:"入";s:3:"⼋";s:3:"八";s:3:"⼌";s:3:"冂";s:3:"⼍";s:3:"冖";s:3:"⼎";s:3:"冫";s:3:"⼏";s:3:"几";s:3:"⼐";s:3:"凵";s:3:"⼑";s:3:"刀";s:3:"⼒";s:3:"力";s:3:"⼓";s:3:"勹";s:3:"⼔";s:3:"匕";s:3:"⼕";s:3:"匚";s:3:"⼖";s:3:"匸";s:3:"⼗";s:3:"十";s:3:"⼘";s:3:"卜";s:3:"⼙";s:3:"卩";s:3:"⼚";s:3:"厂";s:3:"⼛";s:3:"厶";s:3:"⼜";s:3:"又";s:3:"⼝";s:3:"口";s:3:"⼞";s:3:"囗";s:3:"⼟";s:3:"土";s:3:"⼠";s:3:"士";s:3:"⼡";s:3:"夂";s:3:"⼢";s:3:"夊";s:3:"⼣";s:3:"夕";s:3:"⼤";s:3:"大";s:3:"⼥";s:3:"女";s:3:"⼦";s:3:"子";s:3:"⼧";s:3:"宀";s:3:"⼨";s:3:"寸";s:3:"⼩";s:3:"小";s:3:"⼪";s:3:"尢";s:3:"⼫";s:3:"尸";s:3:"⼬";s:3:"屮";s:3:"⼭";s:3:"山";s:3:"⼮";s:3:"巛";s:3:"⼯";s:3:"工";s:3:"⼰";s:3:"己";s:3:"⼱";s:3:"巾";s:3:"⼲";s:3:"干";s:3:"⼳";s:3:"幺";s:3:"⼴";s:3:"广";s:3:"⼵";s:3:"廴";s:3:"⼶";s:3:"廾";s:3:"⼷";s:3:"弋";s:3:"⼸";s:3:"弓";s:3:"⼹";s:3:"彐";s:3:"⼺";s:3:"彡";s:3:"⼻";s:3:"彳";s:3:"⼼";s:3:"心";s:3:"⼽";s:3:"戈";s:3:"⼾";s:3:"戶";s:3:"⼿";s:3:"手";s:3:"⽀";s:3:"支";s:3:"⽁";s:3:"攴";s:3:"⽂";s:3:"文";s:3:"⽃";s:3:"斗";s:3:"⽄";s:3:"斤";s:3:"⽅";s:3:"方";s:3:"⽆";s:3:"无";s:3:"⽇";s:3:"日";s:3:"⽈";s:3:"曰";s:3:"⽉";s:3:"月";s:3:"⽊";s:3:"木";s:3:"⽋";s:3:"欠";s:3:"⽌";s:3:"止";s:3:"⽍";s:3:"歹";s:3:"⽎";s:3:"殳";s:3:"⽏";s:3:"毋";s:3:"⽐";s:3:"比";s:3:"⽑";s:3:"毛";s:3:"⽒";s:3:"氏";s:3:"⽓";s:3:"气";s:3:"⽔";s:3:"水";s:3:"⽕";s:3:"火";s:3:"⽖";s:3:"爪";s:3:"⽗";s:3:"父";s:3:"⽘";s:3:"爻";s:3:"⽙";s:3:"爿";s:3:"⽚";s:3:"片";s:3:"⽛";s:3:"牙";s:3:"⽜";s:3:"牛";s:3:"⽝";s:3:"犬";s:3:"⽞";s:3:"玄";s:3:"⽟";s:3:"玉";s:3:"⽠";s:3:"瓜";s:3:"⽡";s:3:"瓦";s:3:"⽢";s:3:"甘";s:3:"⽣";s:3:"生";s:3:"⽤";s:3:"用";s:3:"⽥";s:3:"田";s:3:"⽦";s:3:"疋";s:3:"⽧";s:3:"疒";s:3:"⽨";s:3:"癶";s:3:"⽩";s:3:"白";s:3:"⽪";s:3:"皮";s:3:"⽫";s:3:"皿";s:3:"⽬";s:3:"目";s:3:"⽭";s:3:"矛";s:3:"⽮";s:3:"矢";s:3:"⽯";s:3:"石";s:3:"⽰";s:3:"示";s:3:"⽱";s:3:"禸";s:3:"⽲";s:3:"禾";s:3:"⽳";s:3:"穴";s:3:"⽴";s:3:"立";s:3:"⽵";s:3:"竹";s:3:"⽶";s:3:"米";s:3:"⽷";s:3:"糸";s:3:"⽸";s:3:"缶";s:3:"⽹";s:3:"网";s:3:"⽺";s:3:"羊";s:3:"⽻";s:3:"羽";s:3:"⽼";s:3:"老";s:3:"⽽";s:3:"而";s:3:"⽾";s:3:"耒";s:3:"⽿";s:3:"耳";s:3:"⾀";s:3:"聿";s:3:"⾁";s:3:"肉";s:3:"⾂";s:3:"臣";s:3:"⾃";s:3:"自";s:3:"⾄";s:3:"至";s:3:"⾅";s:3:"臼";s:3:"⾆";s:3:"舌";s:3:"⾇";s:3:"舛";s:3:"⾈";s:3:"舟";s:3:"⾉";s:3:"艮";s:3:"⾊";s:3:"色";s:3:"⾋";s:3:"艸";s:3:"⾌";s:3:"虍";s:3:"⾍";s:3:"虫";s:3:"⾎";s:3:"血";s:3:"⾏";s:3:"行";s:3:"⾐";s:3:"衣";s:3:"⾑";s:3:"襾";s:3:"⾒";s:3:"見";s:3:"⾓";s:3:"角";s:3:"⾔";s:3:"言";s:3:"⾕";s:3:"谷";s:3:"⾖";s:3:"豆";s:3:"⾗";s:3:"豕";s:3:"⾘";s:3:"豸";s:3:"⾙";s:3:"貝";s:3:"⾚";s:3:"赤";s:3:"⾛";s:3:"走";s:3:"⾜";s:3:"足";s:3:"⾝";s:3:"身";s:3:"⾞";s:3:"車";s:3:"⾟";s:3:"辛";s:3:"⾠";s:3:"辰";s:3:"⾡";s:3:"辵";s:3:"⾢";s:3:"邑";s:3:"⾣";s:3:"酉";s:3:"⾤";s:3:"釆";s:3:"⾥";s:3:"里";s:3:"⾦";s:3:"金";s:3:"⾧";s:3:"長";s:3:"⾨";s:3:"門";s:3:"⾩";s:3:"阜";s:3:"⾪";s:3:"隶";s:3:"⾫";s:3:"隹";s:3:"⾬";s:3:"雨";s:3:"⾭";s:3:"靑";s:3:"⾮";s:3:"非";s:3:"⾯";s:3:"面";s:3:"⾰";s:3:"革";s:3:"⾱";s:3:"韋";s:3:"⾲";s:3:"韭";s:3:"⾳";s:3:"音";s:3:"⾴";s:3:"頁";s:3:"⾵";s:3:"風";s:3:"⾶";s:3:"飛";s:3:"⾷";s:3:"食";s:3:"⾸";s:3:"首";s:3:"⾹";s:3:"香";s:3:"⾺";s:3:"馬";s:3:"⾻";s:3:"骨";s:3:"⾼";s:3:"高";s:3:"⾽";s:3:"髟";s:3:"⾾";s:3:"鬥";s:3:"⾿";s:3:"鬯";s:3:"⿀";s:3:"鬲";s:3:"⿁";s:3:"鬼";s:3:"⿂";s:3:"魚";s:3:"⿃";s:3:"鳥";s:3:"⿄";s:3:"鹵";s:3:"⿅";s:3:"鹿";s:3:"⿆";s:3:"麥";s:3:"⿇";s:3:"麻";s:3:"⿈";s:3:"黃";s:3:"⿉";s:3:"黍";s:3:"⿊";s:3:"黑";s:3:"⿋";s:3:"黹";s:3:"⿌";s:3:"黽";s:3:"⿍";s:3:"鼎";s:3:"⿎";s:3:"鼓";s:3:"⿏";s:3:"鼠";s:3:"⿐";s:3:"鼻";s:3:"⿑";s:3:"齊";s:3:"⿒";s:3:"齒";s:3:"⿓";s:3:"龍";s:3:"⿔";s:3:"龜";s:3:"⿕";s:3:"龠";s:3:" ";s:1:" ";s:3:"〶";s:3:"〒";s:3:"〸";s:3:"十";s:3:"〹";s:3:"卄";s:3:"〺";s:3:"卅";s:3:"が";s:6:"が";s:3:"ぎ";s:6:"ぎ";s:3:"ぐ";s:6:"ぐ";s:3:"げ";s:6:"げ";s:3:"ご";s:6:"ご";s:3:"ざ";s:6:"ざ";s:3:"じ";s:6:"じ";s:3:"ず";s:6:"ず";s:3:"ぜ";s:6:"ぜ";s:3:"ぞ";s:6:"ぞ";s:3:"だ";s:6:"だ";s:3:"ぢ";s:6:"ぢ";s:3:"づ";s:6:"づ";s:3:"で";s:6:"で";s:3:"ど";s:6:"ど";s:3:"ば";s:6:"ば";s:3:"ぱ";s:6:"ぱ";s:3:"び";s:6:"び";s:3:"ぴ";s:6:"ぴ";s:3:"ぶ";s:6:"ぶ";s:3:"ぷ";s:6:"ぷ";s:3:"べ";s:6:"べ";s:3:"ぺ";s:6:"ぺ";s:3:"ぼ";s:6:"ぼ";s:3:"ぽ";s:6:"ぽ";s:3:"ゔ";s:6:"ゔ";s:3:"゛";s:4:" ゙";s:3:"゜";s:4:" ゚";s:3:"ゞ";s:6:"ゞ";s:3:"ゟ";s:6:"より";s:3:"ガ";s:6:"ガ";s:3:"ギ";s:6:"ギ";s:3:"グ";s:6:"グ";s:3:"ゲ";s:6:"ゲ";s:3:"ゴ";s:6:"ゴ";s:3:"ザ";s:6:"ザ";s:3:"ジ";s:6:"ジ";s:3:"ズ";s:6:"ズ";s:3:"ゼ";s:6:"ゼ";s:3:"ゾ";s:6:"ゾ";s:3:"ダ";s:6:"ダ";s:3:"ヂ";s:6:"ヂ";s:3:"ヅ";s:6:"ヅ";s:3:"デ";s:6:"デ";s:3:"ド";s:6:"ド";s:3:"バ";s:6:"バ";s:3:"パ";s:6:"パ";s:3:"ビ";s:6:"ビ";s:3:"ピ";s:6:"ピ";s:3:"ブ";s:6:"ブ";s:3:"プ";s:6:"プ";s:3:"ベ";s:6:"ベ";s:3:"ペ";s:6:"ペ";s:3:"ボ";s:6:"ボ";s:3:"ポ";s:6:"ポ";s:3:"ヴ";s:6:"ヴ";s:3:"ヷ";s:6:"ヷ";s:3:"ヸ";s:6:"ヸ";s:3:"ヹ";s:6:"ヹ";s:3:"ヺ";s:6:"ヺ";s:3:"ヾ";s:6:"ヾ";s:3:"ヿ";s:6:"コト";s:3:"ㄱ";s:3:"ᄀ";s:3:"ㄲ";s:3:"ᄁ";s:3:"ㄳ";s:3:"ᆪ";s:3:"ㄴ";s:3:"ᄂ";s:3:"ㄵ";s:3:"ᆬ";s:3:"ㄶ";s:3:"ᆭ";s:3:"ㄷ";s:3:"ᄃ";s:3:"ㄸ";s:3:"ᄄ";s:3:"ㄹ";s:3:"ᄅ";s:3:"ㄺ";s:3:"ᆰ";s:3:"ㄻ";s:3:"ᆱ";s:3:"ㄼ";s:3:"ᆲ";s:3:"ㄽ";s:3:"ᆳ";s:3:"ㄾ";s:3:"ᆴ";s:3:"ㄿ";s:3:"ᆵ";s:3:"ㅀ";s:3:"ᄚ";s:3:"ㅁ";s:3:"ᄆ";s:3:"ㅂ";s:3:"ᄇ";s:3:"ㅃ";s:3:"ᄈ";s:3:"ㅄ";s:3:"ᄡ";s:3:"ㅅ";s:3:"ᄉ";s:3:"ㅆ";s:3:"ᄊ";s:3:"ㅇ";s:3:"ᄋ";s:3:"ㅈ";s:3:"ᄌ";s:3:"ㅉ";s:3:"ᄍ";s:3:"ㅊ";s:3:"ᄎ";s:3:"ㅋ";s:3:"ᄏ";s:3:"ㅌ";s:3:"ᄐ";s:3:"ㅍ";s:3:"ᄑ";s:3:"ㅎ";s:3:"ᄒ";s:3:"ㅏ";s:3:"ᅡ";s:3:"ㅐ";s:3:"ᅢ";s:3:"ㅑ";s:3:"ᅣ";s:3:"ㅒ";s:3:"ᅤ";s:3:"ㅓ";s:3:"ᅥ";s:3:"ㅔ";s:3:"ᅦ";s:3:"ㅕ";s:3:"ᅧ";s:3:"ㅖ";s:3:"ᅨ";s:3:"ㅗ";s:3:"ᅩ";s:3:"ㅘ";s:3:"ᅪ";s:3:"ㅙ";s:3:"ᅫ";s:3:"ㅚ";s:3:"ᅬ";s:3:"ㅛ";s:3:"ᅭ";s:3:"ㅜ";s:3:"ᅮ";s:3:"ㅝ";s:3:"ᅯ";s:3:"ㅞ";s:3:"ᅰ";s:3:"ㅟ";s:3:"ᅱ";s:3:"ㅠ";s:3:"ᅲ";s:3:"ㅡ";s:3:"ᅳ";s:3:"ㅢ";s:3:"ᅴ";s:3:"ㅣ";s:3:"ᅵ";s:3:"ㅤ";s:3:"ᅠ";s:3:"ㅥ";s:3:"ᄔ";s:3:"ㅦ";s:3:"ᄕ";s:3:"ㅧ";s:3:"ᇇ";s:3:"ㅨ";s:3:"ᇈ";s:3:"ㅩ";s:3:"ᇌ";s:3:"ㅪ";s:3:"ᇎ";s:3:"ㅫ";s:3:"ᇓ";s:3:"ㅬ";s:3:"ᇗ";s:3:"ㅭ";s:3:"ᇙ";s:3:"ㅮ";s:3:"ᄜ";s:3:"ㅯ";s:3:"ᇝ";s:3:"ㅰ";s:3:"ᇟ";s:3:"ㅱ";s:3:"ᄝ";s:3:"ㅲ";s:3:"ᄞ";s:3:"ㅳ";s:3:"ᄠ";s:3:"ㅴ";s:3:"ᄢ";s:3:"ㅵ";s:3:"ᄣ";s:3:"ㅶ";s:3:"ᄧ";s:3:"ㅷ";s:3:"ᄩ";s:3:"ㅸ";s:3:"ᄫ";s:3:"ㅹ";s:3:"ᄬ";s:3:"ㅺ";s:3:"ᄭ";s:3:"ㅻ";s:3:"ᄮ";s:3:"ㅼ";s:3:"ᄯ";s:3:"ㅽ";s:3:"ᄲ";s:3:"ㅾ";s:3:"ᄶ";s:3:"ㅿ";s:3:"ᅀ";s:3:"ㆀ";s:3:"ᅇ";s:3:"ㆁ";s:3:"ᅌ";s:3:"ㆂ";s:3:"ᇱ";s:3:"ㆃ";s:3:"ᇲ";s:3:"ㆄ";s:3:"ᅗ";s:3:"ㆅ";s:3:"ᅘ";s:3:"ㆆ";s:3:"ᅙ";s:3:"ㆇ";s:3:"ᆄ";s:3:"ㆈ";s:3:"ᆅ";s:3:"ㆉ";s:3:"ᆈ";s:3:"ㆊ";s:3:"ᆑ";s:3:"ㆋ";s:3:"ᆒ";s:3:"ㆌ";s:3:"ᆔ";s:3:"ㆍ";s:3:"ᆞ";s:3:"ㆎ";s:3:"ᆡ";s:3:"㆒";s:3:"一";s:3:"㆓";s:3:"二";s:3:"㆔";s:3:"三";s:3:"㆕";s:3:"四";s:3:"㆖";s:3:"上";s:3:"㆗";s:3:"中";s:3:"㆘";s:3:"下";s:3:"㆙";s:3:"甲";s:3:"㆚";s:3:"乙";s:3:"㆛";s:3:"丙";s:3:"㆜";s:3:"丁";s:3:"㆝";s:3:"天";s:3:"㆞";s:3:"地";s:3:"㆟";s:3:"人";s:3:"㈀";s:5:"(ᄀ)";s:3:"㈁";s:5:"(ᄂ)";s:3:"㈂";s:5:"(ᄃ)";s:3:"㈃";s:5:"(ᄅ)";s:3:"㈄";s:5:"(ᄆ)";s:3:"㈅";s:5:"(ᄇ)";s:3:"㈆";s:5:"(ᄉ)";s:3:"㈇";s:5:"(ᄋ)";s:3:"㈈";s:5:"(ᄌ)";s:3:"㈉";s:5:"(ᄎ)";s:3:"㈊";s:5:"(ᄏ)";s:3:"㈋";s:5:"(ᄐ)";s:3:"㈌";s:5:"(ᄑ)";s:3:"㈍";s:5:"(ᄒ)";s:3:"㈎";s:8:"(가)";s:3:"㈏";s:8:"(나)";s:3:"㈐";s:8:"(다)";s:3:"㈑";s:8:"(라)";s:3:"㈒";s:8:"(마)";s:3:"㈓";s:8:"(바)";s:3:"㈔";s:8:"(사)";s:3:"㈕";s:8:"(아)";s:3:"㈖";s:8:"(자)";s:3:"㈗";s:8:"(차)";s:3:"㈘";s:8:"(카)";s:3:"㈙";s:8:"(타)";s:3:"㈚";s:8:"(파)";s:3:"㈛";s:8:"(하)";s:3:"㈜";s:8:"(주)";s:3:"㈝";s:17:"(오전)";s:3:"㈞";s:14:"(오후)";s:3:"㈠";s:5:"(一)";s:3:"㈡";s:5:"(二)";s:3:"㈢";s:5:"(三)";s:3:"㈣";s:5:"(四)";s:3:"㈤";s:5:"(五)";s:3:"㈥";s:5:"(六)";s:3:"㈦";s:5:"(七)";s:3:"㈧";s:5:"(八)";s:3:"㈨";s:5:"(九)";s:3:"㈩";s:5:"(十)";s:3:"㈪";s:5:"(月)";s:3:"㈫";s:5:"(火)";s:3:"㈬";s:5:"(水)";s:3:"㈭";s:5:"(木)";s:3:"㈮";s:5:"(金)";s:3:"㈯";s:5:"(土)";s:3:"㈰";s:5:"(日)";s:3:"㈱";s:5:"(株)";s:3:"㈲";s:5:"(有)";s:3:"㈳";s:5:"(社)";s:3:"㈴";s:5:"(名)";s:3:"㈵";s:5:"(特)";s:3:"㈶";s:5:"(財)";s:3:"㈷";s:5:"(祝)";s:3:"㈸";s:5:"(労)";s:3:"㈹";s:5:"(代)";s:3:"㈺";s:5:"(呼)";s:3:"㈻";s:5:"(学)";s:3:"㈼";s:5:"(監)";s:3:"㈽";s:5:"(企)";s:3:"㈾";s:5:"(資)";s:3:"㈿";s:5:"(協)";s:3:"㉀";s:5:"(祭)";s:3:"㉁";s:5:"(休)";s:3:"㉂";s:5:"(自)";s:3:"㉃";s:5:"(至)";s:3:"㉄";s:3:"問";s:3:"㉅";s:3:"幼";s:3:"㉆";s:3:"文";s:3:"㉇";s:3:"箏";s:3:"㉐";s:3:"PTE";s:3:"㉑";s:2:"21";s:3:"㉒";s:2:"22";s:3:"㉓";s:2:"23";s:3:"㉔";s:2:"24";s:3:"㉕";s:2:"25";s:3:"㉖";s:2:"26";s:3:"㉗";s:2:"27";s:3:"㉘";s:2:"28";s:3:"㉙";s:2:"29";s:3:"㉚";s:2:"30";s:3:"㉛";s:2:"31";s:3:"㉜";s:2:"32";s:3:"㉝";s:2:"33";s:3:"㉞";s:2:"34";s:3:"㉟";s:2:"35";s:3:"㉠";s:3:"ᄀ";s:3:"㉡";s:3:"ᄂ";s:3:"㉢";s:3:"ᄃ";s:3:"㉣";s:3:"ᄅ";s:3:"㉤";s:3:"ᄆ";s:3:"㉥";s:3:"ᄇ";s:3:"㉦";s:3:"ᄉ";s:3:"㉧";s:3:"ᄋ";s:3:"㉨";s:3:"ᄌ";s:3:"㉩";s:3:"ᄎ";s:3:"㉪";s:3:"ᄏ";s:3:"㉫";s:3:"ᄐ";s:3:"㉬";s:3:"ᄑ";s:3:"㉭";s:3:"ᄒ";s:3:"㉮";s:6:"가";s:3:"㉯";s:6:"나";s:3:"㉰";s:6:"다";s:3:"㉱";s:6:"라";s:3:"㉲";s:6:"마";s:3:"㉳";s:6:"바";s:3:"㉴";s:6:"사";s:3:"㉵";s:6:"아";s:3:"㉶";s:6:"자";s:3:"㉷";s:6:"차";s:3:"㉸";s:6:"카";s:3:"㉹";s:6:"타";s:3:"㉺";s:6:"파";s:3:"㉻";s:6:"하";s:3:"㉼";s:15:"참고";s:3:"㉽";s:12:"주의";s:3:"㉾";s:6:"우";s:3:"㊀";s:3:"一";s:3:"㊁";s:3:"二";s:3:"㊂";s:3:"三";s:3:"㊃";s:3:"四";s:3:"㊄";s:3:"五";s:3:"㊅";s:3:"六";s:3:"㊆";s:3:"七";s:3:"㊇";s:3:"八";s:3:"㊈";s:3:"九";s:3:"㊉";s:3:"十";s:3:"㊊";s:3:"月";s:3:"㊋";s:3:"火";s:3:"㊌";s:3:"水";s:3:"㊍";s:3:"木";s:3:"㊎";s:3:"金";s:3:"㊏";s:3:"土";s:3:"㊐";s:3:"日";s:3:"㊑";s:3:"株";s:3:"㊒";s:3:"有";s:3:"㊓";s:3:"社";s:3:"㊔";s:3:"名";s:3:"㊕";s:3:"特";s:3:"㊖";s:3:"財";s:3:"㊗";s:3:"祝";s:3:"㊘";s:3:"労";s:3:"㊙";s:3:"秘";s:3:"㊚";s:3:"男";s:3:"㊛";s:3:"女";s:3:"㊜";s:3:"適";s:3:"㊝";s:3:"優";s:3:"㊞";s:3:"印";s:3:"㊟";s:3:"注";s:3:"㊠";s:3:"項";s:3:"㊡";s:3:"休";s:3:"㊢";s:3:"写";s:3:"㊣";s:3:"正";s:3:"㊤";s:3:"上";s:3:"㊥";s:3:"中";s:3:"㊦";s:3:"下";s:3:"㊧";s:3:"左";s:3:"㊨";s:3:"右";s:3:"㊩";s:3:"医";s:3:"㊪";s:3:"宗";s:3:"㊫";s:3:"学";s:3:"㊬";s:3:"監";s:3:"㊭";s:3:"企";s:3:"㊮";s:3:"資";s:3:"㊯";s:3:"協";s:3:"㊰";s:3:"夜";s:3:"㊱";s:2:"36";s:3:"㊲";s:2:"37";s:3:"㊳";s:2:"38";s:3:"㊴";s:2:"39";s:3:"㊵";s:2:"40";s:3:"㊶";s:2:"41";s:3:"㊷";s:2:"42";s:3:"㊸";s:2:"43";s:3:"㊹";s:2:"44";s:3:"㊺";s:2:"45";s:3:"㊻";s:2:"46";s:3:"㊼";s:2:"47";s:3:"㊽";s:2:"48";s:3:"㊾";s:2:"49";s:3:"㊿";s:2:"50";s:3:"㋀";s:4:"1月";s:3:"㋁";s:4:"2月";s:3:"㋂";s:4:"3月";s:3:"㋃";s:4:"4月";s:3:"㋄";s:4:"5月";s:3:"㋅";s:4:"6月";s:3:"㋆";s:4:"7月";s:3:"㋇";s:4:"8月";s:3:"㋈";s:4:"9月";s:3:"㋉";s:5:"10月";s:3:"㋊";s:5:"11月";s:3:"㋋";s:5:"12月";s:3:"㋌";s:2:"Hg";s:3:"㋍";s:3:"erg";s:3:"㋎";s:2:"eV";s:3:"㋏";s:3:"LTD";s:3:"㋐";s:3:"ア";s:3:"㋑";s:3:"イ";s:3:"㋒";s:3:"ウ";s:3:"㋓";s:3:"エ";s:3:"㋔";s:3:"オ";s:3:"㋕";s:3:"カ";s:3:"㋖";s:3:"キ";s:3:"㋗";s:3:"ク";s:3:"㋘";s:3:"ケ";s:3:"㋙";s:3:"コ";s:3:"㋚";s:3:"サ";s:3:"㋛";s:3:"シ";s:3:"㋜";s:3:"ス";s:3:"㋝";s:3:"セ";s:3:"㋞";s:3:"ソ";s:3:"㋟";s:3:"タ";s:3:"㋠";s:3:"チ";s:3:"㋡";s:3:"ツ";s:3:"㋢";s:3:"テ";s:3:"㋣";s:3:"ト";s:3:"㋤";s:3:"ナ";s:3:"㋥";s:3:"ニ";s:3:"㋦";s:3:"ヌ";s:3:"㋧";s:3:"ネ";s:3:"㋨";s:3:"ノ";s:3:"㋩";s:3:"ハ";s:3:"㋪";s:3:"ヒ";s:3:"㋫";s:3:"フ";s:3:"㋬";s:3:"ヘ";s:3:"㋭";s:3:"ホ";s:3:"㋮";s:3:"マ";s:3:"㋯";s:3:"ミ";s:3:"㋰";s:3:"ム";s:3:"㋱";s:3:"メ";s:3:"㋲";s:3:"モ";s:3:"㋳";s:3:"ヤ";s:3:"㋴";s:3:"ユ";s:3:"㋵";s:3:"ヨ";s:3:"㋶";s:3:"ラ";s:3:"㋷";s:3:"リ";s:3:"㋸";s:3:"ル";s:3:"㋹";s:3:"レ";s:3:"㋺";s:3:"ロ";s:3:"㋻";s:3:"ワ";s:3:"㋼";s:3:"ヰ";s:3:"㋽";s:3:"ヱ";s:3:"㋾";s:3:"ヲ";s:3:"㌀";s:15:"アパート";s:3:"㌁";s:12:"アルファ";s:3:"㌂";s:15:"アンペア";s:3:"㌃";s:9:"アール";s:3:"㌄";s:15:"イニング";s:3:"㌅";s:9:"インチ";s:3:"㌆";s:9:"ウォン";s:3:"㌇";s:18:"エスクード";s:3:"㌈";s:12:"エーカー";s:3:"㌉";s:9:"オンス";s:3:"㌊";s:9:"オーム";s:3:"㌋";s:9:"カイリ";s:3:"㌌";s:12:"カラット";s:3:"㌍";s:12:"カロリー";s:3:"㌎";s:12:"ガロン";s:3:"㌏";s:12:"ガンマ";s:3:"㌐";s:12:"ギガ";s:3:"㌑";s:12:"ギニー";s:3:"㌒";s:12:"キュリー";s:3:"㌓";s:18:"ギルダー";s:3:"㌔";s:6:"キロ";s:3:"㌕";s:18:"キログラム";s:3:"㌖";s:18:"キロメートル";s:3:"㌗";s:15:"キロワット";s:3:"㌘";s:12:"グラム";s:3:"㌙";s:18:"グラムトン";s:3:"㌚";s:18:"クルゼイロ";s:3:"㌛";s:12:"クローネ";s:3:"㌜";s:9:"ケース";s:3:"㌝";s:9:"コルナ";s:3:"㌞";s:12:"コーポ";s:3:"㌟";s:12:"サイクル";s:3:"㌠";s:15:"サンチーム";s:3:"㌡";s:15:"シリング";s:3:"㌢";s:9:"センチ";s:3:"㌣";s:9:"セント";s:3:"㌤";s:12:"ダース";s:3:"㌥";s:9:"デシ";s:3:"㌦";s:9:"ドル";s:3:"㌧";s:6:"トン";s:3:"㌨";s:6:"ナノ";s:3:"㌩";s:9:"ノット";s:3:"㌪";s:9:"ハイツ";s:3:"㌫";s:18:"パーセント";s:3:"㌬";s:12:"パーツ";s:3:"㌭";s:15:"バーレル";s:3:"㌮";s:18:"ピアストル";s:3:"㌯";s:12:"ピクル";s:3:"㌰";s:9:"ピコ";s:3:"㌱";s:9:"ビル";s:3:"㌲";s:18:"ファラッド";s:3:"㌳";s:12:"フィート";s:3:"㌴";s:18:"ブッシェル";s:3:"㌵";s:9:"フラン";s:3:"㌶";s:15:"ヘクタール";s:3:"㌷";s:9:"ペソ";s:3:"㌸";s:12:"ペニヒ";s:3:"㌹";s:9:"ヘルツ";s:3:"㌺";s:12:"ペンス";s:3:"㌻";s:15:"ページ";s:3:"㌼";s:12:"ベータ";s:3:"㌽";s:15:"ポイント";s:3:"㌾";s:12:"ボルト";s:3:"㌿";s:6:"ホン";s:3:"㍀";s:15:"ポンド";s:3:"㍁";s:9:"ホール";s:3:"㍂";s:9:"ホーン";s:3:"㍃";s:12:"マイクロ";s:3:"㍄";s:9:"マイル";s:3:"㍅";s:9:"マッハ";s:3:"㍆";s:9:"マルク";s:3:"㍇";s:15:"マンション";s:3:"㍈";s:12:"ミクロン";s:3:"㍉";s:6:"ミリ";s:3:"㍊";s:18:"ミリバール";s:3:"㍋";s:9:"メガ";s:3:"㍌";s:15:"メガトン";s:3:"㍍";s:12:"メートル";s:3:"㍎";s:12:"ヤード";s:3:"㍏";s:9:"ヤール";s:3:"㍐";s:9:"ユアン";s:3:"㍑";s:12:"リットル";s:3:"㍒";s:6:"リラ";s:3:"㍓";s:12:"ルピー";s:3:"㍔";s:15:"ルーブル";s:3:"㍕";s:6:"レム";s:3:"㍖";s:18:"レントゲン";s:3:"㍗";s:9:"ワット";s:3:"㍘";s:4:"0点";s:3:"㍙";s:4:"1点";s:3:"㍚";s:4:"2点";s:3:"㍛";s:4:"3点";s:3:"㍜";s:4:"4点";s:3:"㍝";s:4:"5点";s:3:"㍞";s:4:"6点";s:3:"㍟";s:4:"7点";s:3:"㍠";s:4:"8点";s:3:"㍡";s:4:"9点";s:3:"㍢";s:5:"10点";s:3:"㍣";s:5:"11点";s:3:"㍤";s:5:"12点";s:3:"㍥";s:5:"13点";s:3:"㍦";s:5:"14点";s:3:"㍧";s:5:"15点";s:3:"㍨";s:5:"16点";s:3:"㍩";s:5:"17点";s:3:"㍪";s:5:"18点";s:3:"㍫";s:5:"19点";s:3:"㍬";s:5:"20点";s:3:"㍭";s:5:"21点";s:3:"㍮";s:5:"22点";s:3:"㍯";s:5:"23点";s:3:"㍰";s:5:"24点";s:3:"㍱";s:3:"hPa";s:3:"㍲";s:2:"da";s:3:"㍳";s:2:"AU";s:3:"㍴";s:3:"bar";s:3:"㍵";s:2:"oV";s:3:"㍶";s:2:"pc";s:3:"㍷";s:2:"dm";s:3:"㍸";s:3:"dm2";s:3:"㍹";s:3:"dm3";s:3:"㍺";s:2:"IU";s:3:"㍻";s:6:"平成";s:3:"㍼";s:6:"昭和";s:3:"㍽";s:6:"大正";s:3:"㍾";s:6:"明治";s:3:"㍿";s:12:"株式会社";s:3:"㎀";s:2:"pA";s:3:"㎁";s:2:"nA";s:3:"㎂";s:3:"μA";s:3:"㎃";s:2:"mA";s:3:"㎄";s:2:"kA";s:3:"㎅";s:2:"KB";s:3:"㎆";s:2:"MB";s:3:"㎇";s:2:"GB";s:3:"㎈";s:3:"cal";s:3:"㎉";s:4:"kcal";s:3:"㎊";s:2:"pF";s:3:"㎋";s:2:"nF";s:3:"㎌";s:3:"μF";s:3:"㎍";s:3:"μg";s:3:"㎎";s:2:"mg";s:3:"㎏";s:2:"kg";s:3:"㎐";s:2:"Hz";s:3:"㎑";s:3:"kHz";s:3:"㎒";s:3:"MHz";s:3:"㎓";s:3:"GHz";s:3:"㎔";s:3:"THz";s:3:"㎕";s:3:"μl";s:3:"㎖";s:2:"ml";s:3:"㎗";s:2:"dl";s:3:"㎘";s:2:"kl";s:3:"㎙";s:2:"fm";s:3:"㎚";s:2:"nm";s:3:"㎛";s:3:"μm";s:3:"㎜";s:2:"mm";s:3:"㎝";s:2:"cm";s:3:"㎞";s:2:"km";s:3:"㎟";s:3:"mm2";s:3:"㎠";s:3:"cm2";s:3:"㎡";s:2:"m2";s:3:"㎢";s:3:"km2";s:3:"㎣";s:3:"mm3";s:3:"㎤";s:3:"cm3";s:3:"㎥";s:2:"m3";s:3:"㎦";s:3:"km3";s:3:"㎧";s:5:"m∕s";s:3:"㎨";s:6:"m∕s2";s:3:"㎩";s:2:"Pa";s:3:"㎪";s:3:"kPa";s:3:"㎫";s:3:"MPa";s:3:"㎬";s:3:"GPa";s:3:"㎭";s:3:"rad";s:3:"㎮";s:7:"rad∕s";s:3:"㎯";s:8:"rad∕s2";s:3:"㎰";s:2:"ps";s:3:"㎱";s:2:"ns";s:3:"㎲";s:3:"μs";s:3:"㎳";s:2:"ms";s:3:"㎴";s:2:"pV";s:3:"㎵";s:2:"nV";s:3:"㎶";s:3:"μV";s:3:"㎷";s:2:"mV";s:3:"㎸";s:2:"kV";s:3:"㎹";s:2:"MV";s:3:"㎺";s:2:"pW";s:3:"㎻";s:2:"nW";s:3:"㎼";s:3:"μW";s:3:"㎽";s:2:"mW";s:3:"㎾";s:2:"kW";s:3:"㎿";s:2:"MW";s:3:"㏀";s:3:"kΩ";s:3:"㏁";s:3:"MΩ";s:3:"㏂";s:4:"a.m.";s:3:"㏃";s:2:"Bq";s:3:"㏄";s:2:"cc";s:3:"㏅";s:2:"cd";s:3:"㏆";s:6:"C∕kg";s:3:"㏇";s:3:"Co.";s:3:"㏈";s:2:"dB";s:3:"㏉";s:2:"Gy";s:3:"㏊";s:2:"ha";s:3:"㏋";s:2:"HP";s:3:"㏌";s:2:"in";s:3:"㏍";s:2:"KK";s:3:"㏎";s:2:"KM";s:3:"㏏";s:2:"kt";s:3:"㏐";s:2:"lm";s:3:"㏑";s:2:"ln";s:3:"㏒";s:3:"log";s:3:"㏓";s:2:"lx";s:3:"㏔";s:2:"mb";s:3:"㏕";s:3:"mil";s:3:"㏖";s:3:"mol";s:3:"㏗";s:2:"PH";s:3:"㏘";s:4:"p.m.";s:3:"㏙";s:3:"PPM";s:3:"㏚";s:2:"PR";s:3:"㏛";s:2:"sr";s:3:"㏜";s:2:"Sv";s:3:"㏝";s:2:"Wb";s:3:"㏞";s:5:"V∕m";s:3:"㏟";s:5:"A∕m";s:3:"㏠";s:4:"1日";s:3:"㏡";s:4:"2日";s:3:"㏢";s:4:"3日";s:3:"㏣";s:4:"4日";s:3:"㏤";s:4:"5日";s:3:"㏥";s:4:"6日";s:3:"㏦";s:4:"7日";s:3:"㏧";s:4:"8日";s:3:"㏨";s:4:"9日";s:3:"㏩";s:5:"10日";s:3:"㏪";s:5:"11日";s:3:"㏫";s:5:"12日";s:3:"㏬";s:5:"13日";s:3:"㏭";s:5:"14日";s:3:"㏮";s:5:"15日";s:3:"㏯";s:5:"16日";s:3:"㏰";s:5:"17日";s:3:"㏱";s:5:"18日";s:3:"㏲";s:5:"19日";s:3:"㏳";s:5:"20日";s:3:"㏴";s:5:"21日";s:3:"㏵";s:5:"22日";s:3:"㏶";s:5:"23日";s:3:"㏷";s:5:"24日";s:3:"㏸";s:5:"25日";s:3:"㏹";s:5:"26日";s:3:"㏺";s:5:"27日";s:3:"㏻";s:5:"28日";s:3:"㏼";s:5:"29日";s:3:"㏽";s:5:"30日";s:3:"㏾";s:5:"31日";s:3:"㏿";s:3:"gal";s:3:"ꝰ";s:3:"ꝯ";s:3:"豈";s:3:"豈";s:3:"更";s:3:"更";s:3:"車";s:3:"車";s:3:"賈";s:3:"賈";s:3:"滑";s:3:"滑";s:3:"串";s:3:"串";s:3:"句";s:3:"句";s:3:"龜";s:3:"龜";s:3:"龜";s:3:"龜";s:3:"契";s:3:"契";s:3:"金";s:3:"金";s:3:"喇";s:3:"喇";s:3:"奈";s:3:"奈";s:3:"懶";s:3:"懶";s:3:"癩";s:3:"癩";s:3:"羅";s:3:"羅";s:3:"蘿";s:3:"蘿";s:3:"螺";s:3:"螺";s:3:"裸";s:3:"裸";s:3:"邏";s:3:"邏";s:3:"樂";s:3:"樂";s:3:"洛";s:3:"洛";s:3:"烙";s:3:"烙";s:3:"珞";s:3:"珞";s:3:"落";s:3:"落";s:3:"酪";s:3:"酪";s:3:"駱";s:3:"駱";s:3:"亂";s:3:"亂";s:3:"卵";s:3:"卵";s:3:"欄";s:3:"欄";s:3:"爛";s:3:"爛";s:3:"蘭";s:3:"蘭";s:3:"鸞";s:3:"鸞";s:3:"嵐";s:3:"嵐";s:3:"濫";s:3:"濫";s:3:"藍";s:3:"藍";s:3:"襤";s:3:"襤";s:3:"拉";s:3:"拉";s:3:"臘";s:3:"臘";s:3:"蠟";s:3:"蠟";s:3:"廊";s:3:"廊";s:3:"朗";s:3:"朗";s:3:"浪";s:3:"浪";s:3:"狼";s:3:"狼";s:3:"郎";s:3:"郎";s:3:"來";s:3:"來";s:3:"冷";s:3:"冷";s:3:"勞";s:3:"勞";s:3:"擄";s:3:"擄";s:3:"櫓";s:3:"櫓";s:3:"爐";s:3:"爐";s:3:"盧";s:3:"盧";s:3:"老";s:3:"老";s:3:"蘆";s:3:"蘆";s:3:"虜";s:3:"虜";s:3:"路";s:3:"路";s:3:"露";s:3:"露";s:3:"魯";s:3:"魯";s:3:"鷺";s:3:"鷺";s:3:"碌";s:3:"碌";s:3:"祿";s:3:"祿";s:3:"綠";s:3:"綠";s:3:"菉";s:3:"菉";s:3:"錄";s:3:"錄";s:3:"鹿";s:3:"鹿";s:3:"論";s:3:"論";s:3:"壟";s:3:"壟";s:3:"弄";s:3:"弄";s:3:"籠";s:3:"籠";s:3:"聾";s:3:"聾";s:3:"牢";s:3:"牢";s:3:"磊";s:3:"磊";s:3:"賂";s:3:"賂";s:3:"雷";s:3:"雷";s:3:"壘";s:3:"壘";s:3:"屢";s:3:"屢";s:3:"樓";s:3:"樓";s:3:"淚";s:3:"淚";s:3:"漏";s:3:"漏";s:3:"累";s:3:"累";s:3:"縷";s:3:"縷";s:3:"陋";s:3:"陋";s:3:"勒";s:3:"勒";s:3:"肋";s:3:"肋";s:3:"凜";s:3:"凜";s:3:"凌";s:3:"凌";s:3:"稜";s:3:"稜";s:3:"綾";s:3:"綾";s:3:"菱";s:3:"菱";s:3:"陵";s:3:"陵";s:3:"讀";s:3:"讀";s:3:"拏";s:3:"拏";s:3:"樂";s:3:"樂";s:3:"諾";s:3:"諾";s:3:"丹";s:3:"丹";s:3:"寧";s:3:"寧";s:3:"怒";s:3:"怒";s:3:"率";s:3:"率";s:3:"異";s:3:"異";s:3:"北";s:3:"北";s:3:"磻";s:3:"磻";s:3:"便";s:3:"便";s:3:"復";s:3:"復";s:3:"不";s:3:"不";s:3:"泌";s:3:"泌";s:3:"數";s:3:"數";s:3:"索";s:3:"索";s:3:"參";s:3:"參";s:3:"塞";s:3:"塞";s:3:"省";s:3:"省";s:3:"葉";s:3:"葉";s:3:"說";s:3:"說";s:3:"殺";s:3:"殺";s:3:"辰";s:3:"辰";s:3:"沈";s:3:"沈";s:3:"拾";s:3:"拾";s:3:"若";s:3:"若";s:3:"掠";s:3:"掠";s:3:"略";s:3:"略";s:3:"亮";s:3:"亮";s:3:"兩";s:3:"兩";s:3:"凉";s:3:"凉";s:3:"梁";s:3:"梁";s:3:"糧";s:3:"糧";s:3:"良";s:3:"良";s:3:"諒";s:3:"諒";s:3:"量";s:3:"量";s:3:"勵";s:3:"勵";s:3:"呂";s:3:"呂";s:3:"女";s:3:"女";s:3:"廬";s:3:"廬";s:3:"旅";s:3:"旅";s:3:"濾";s:3:"濾";s:3:"礪";s:3:"礪";s:3:"閭";s:3:"閭";s:3:"驪";s:3:"驪";s:3:"麗";s:3:"麗";s:3:"黎";s:3:"黎";s:3:"力";s:3:"力";s:3:"曆";s:3:"曆";s:3:"歷";s:3:"歷";s:3:"轢";s:3:"轢";s:3:"年";s:3:"年";s:3:"憐";s:3:"憐";s:3:"戀";s:3:"戀";s:3:"撚";s:3:"撚";s:3:"漣";s:3:"漣";s:3:"煉";s:3:"煉";s:3:"璉";s:3:"璉";s:3:"秊";s:3:"秊";s:3:"練";s:3:"練";s:3:"聯";s:3:"聯";s:3:"輦";s:3:"輦";s:3:"蓮";s:3:"蓮";s:3:"連";s:3:"連";s:3:"鍊";s:3:"鍊";s:3:"列";s:3:"列";s:3:"劣";s:3:"劣";s:3:"咽";s:3:"咽";s:3:"烈";s:3:"烈";s:3:"裂";s:3:"裂";s:3:"說";s:3:"說";s:3:"廉";s:3:"廉";s:3:"念";s:3:"念";s:3:"捻";s:3:"捻";s:3:"殮";s:3:"殮";s:3:"簾";s:3:"簾";s:3:"獵";s:3:"獵";s:3:"令";s:3:"令";s:3:"囹";s:3:"囹";s:3:"寧";s:3:"寧";s:3:"嶺";s:3:"嶺";s:3:"怜";s:3:"怜";s:3:"玲";s:3:"玲";s:3:"瑩";s:3:"瑩";s:3:"羚";s:3:"羚";s:3:"聆";s:3:"聆";s:3:"鈴";s:3:"鈴";s:3:"零";s:3:"零";s:3:"靈";s:3:"靈";s:3:"領";s:3:"領";s:3:"例";s:3:"例";s:3:"禮";s:3:"禮";s:3:"醴";s:3:"醴";s:3:"隸";s:3:"隸";s:3:"惡";s:3:"惡";s:3:"了";s:3:"了";s:3:"僚";s:3:"僚";s:3:"寮";s:3:"寮";s:3:"尿";s:3:"尿";s:3:"料";s:3:"料";s:3:"樂";s:3:"樂";s:3:"燎";s:3:"燎";s:3:"療";s:3:"療";s:3:"蓼";s:3:"蓼";s:3:"遼";s:3:"遼";s:3:"龍";s:3:"龍";s:3:"暈";s:3:"暈";s:3:"阮";s:3:"阮";s:3:"劉";s:3:"劉";s:3:"杻";s:3:"杻";s:3:"柳";s:3:"柳";s:3:"流";s:3:"流";s:3:"溜";s:3:"溜";s:3:"琉";s:3:"琉";s:3:"留";s:3:"留";s:3:"硫";s:3:"硫";s:3:"紐";s:3:"紐";s:3:"類";s:3:"類";s:3:"六";s:3:"六";s:3:"戮";s:3:"戮";s:3:"陸";s:3:"陸";s:3:"倫";s:3:"倫";s:3:"崙";s:3:"崙";s:3:"淪";s:3:"淪";s:3:"輪";s:3:"輪";s:3:"律";s:3:"律";s:3:"慄";s:3:"慄";s:3:"栗";s:3:"栗";s:3:"率";s:3:"率";s:3:"隆";s:3:"隆";s:3:"利";s:3:"利";s:3:"吏";s:3:"吏";s:3:"履";s:3:"履";s:3:"易";s:3:"易";s:3:"李";s:3:"李";s:3:"梨";s:3:"梨";s:3:"泥";s:3:"泥";s:3:"理";s:3:"理";s:3:"痢";s:3:"痢";s:3:"罹";s:3:"罹";s:3:"裏";s:3:"裏";s:3:"裡";s:3:"裡";s:3:"里";s:3:"里";s:3:"離";s:3:"離";s:3:"匿";s:3:"匿";s:3:"溺";s:3:"溺";s:3:"吝";s:3:"吝";s:3:"燐";s:3:"燐";s:3:"璘";s:3:"璘";s:3:"藺";s:3:"藺";s:3:"隣";s:3:"隣";s:3:"鱗";s:3:"鱗";s:3:"麟";s:3:"麟";s:3:"林";s:3:"林";s:3:"淋";s:3:"淋";s:3:"臨";s:3:"臨";s:3:"立";s:3:"立";s:3:"笠";s:3:"笠";s:3:"粒";s:3:"粒";s:3:"狀";s:3:"狀";s:3:"炙";s:3:"炙";s:3:"識";s:3:"識";s:3:"什";s:3:"什";s:3:"茶";s:3:"茶";s:3:"刺";s:3:"刺";s:3:"切";s:3:"切";s:3:"度";s:3:"度";s:3:"拓";s:3:"拓";s:3:"糖";s:3:"糖";s:3:"宅";s:3:"宅";s:3:"洞";s:3:"洞";s:3:"暴";s:3:"暴";s:3:"輻";s:3:"輻";s:3:"行";s:3:"行";s:3:"降";s:3:"降";s:3:"見";s:3:"見";s:3:"廓";s:3:"廓";s:3:"兀";s:3:"兀";s:3:"嗀";s:3:"嗀";s:3:"塚";s:3:"塚";s:3:"晴";s:3:"晴";s:3:"凞";s:3:"凞";s:3:"猪";s:3:"猪";s:3:"益";s:3:"益";s:3:"礼";s:3:"礼";s:3:"神";s:3:"神";s:3:"祥";s:3:"祥";s:3:"福";s:3:"福";s:3:"靖";s:3:"靖";s:3:"精";s:3:"精";s:3:"羽";s:3:"羽";s:3:"蘒";s:3:"蘒";s:3:"諸";s:3:"諸";s:3:"逸";s:3:"逸";s:3:"都";s:3:"都";s:3:"飯";s:3:"飯";s:3:"飼";s:3:"飼";s:3:"館";s:3:"館";s:3:"鶴";s:3:"鶴";s:3:"侮";s:3:"侮";s:3:"僧";s:3:"僧";s:3:"免";s:3:"免";s:3:"勉";s:3:"勉";s:3:"勤";s:3:"勤";s:3:"卑";s:3:"卑";s:3:"喝";s:3:"喝";s:3:"嘆";s:3:"嘆";s:3:"器";s:3:"器";s:3:"塀";s:3:"塀";s:3:"墨";s:3:"墨";s:3:"層";s:3:"層";s:3:"屮";s:3:"屮";s:3:"悔";s:3:"悔";s:3:"慨";s:3:"慨";s:3:"憎";s:3:"憎";s:3:"懲";s:3:"懲";s:3:"敏";s:3:"敏";s:3:"既";s:3:"既";s:3:"暑";s:3:"暑";s:3:"梅";s:3:"梅";s:3:"海";s:3:"海";s:3:"渚";s:3:"渚";s:3:"漢";s:3:"漢";s:3:"煮";s:3:"煮";s:3:"爫";s:3:"爫";s:3:"琢";s:3:"琢";s:3:"碑";s:3:"碑";s:3:"社";s:3:"社";s:3:"祉";s:3:"祉";s:3:"祈";s:3:"祈";s:3:"祐";s:3:"祐";s:3:"祖";s:3:"祖";s:3:"祝";s:3:"祝";s:3:"禍";s:3:"禍";s:3:"禎";s:3:"禎";s:3:"穀";s:3:"穀";s:3:"突";s:3:"突";s:3:"節";s:3:"節";s:3:"練";s:3:"練";s:3:"縉";s:3:"縉";s:3:"繁";s:3:"繁";s:3:"署";s:3:"署";s:3:"者";s:3:"者";s:3:"臭";s:3:"臭";s:3:"艹";s:3:"艹";s:3:"艹";s:3:"艹";s:3:"著";s:3:"著";s:3:"褐";s:3:"褐";s:3:"視";s:3:"視";s:3:"謁";s:3:"謁";s:3:"謹";s:3:"謹";s:3:"賓";s:3:"賓";s:3:"贈";s:3:"贈";s:3:"辶";s:3:"辶";s:3:"逸";s:3:"逸";s:3:"難";s:3:"難";s:3:"響";s:3:"響";s:3:"頻";s:3:"頻";s:3:"恵";s:3:"恵";s:3:"𤋮";s:4:"𤋮";s:3:"舘";s:3:"舘";s:3:"並";s:3:"並";s:3:"况";s:3:"况";s:3:"全";s:3:"全";s:3:"侀";s:3:"侀";s:3:"充";s:3:"充";s:3:"冀";s:3:"冀";s:3:"勇";s:3:"勇";s:3:"勺";s:3:"勺";s:3:"喝";s:3:"喝";s:3:"啕";s:3:"啕";s:3:"喙";s:3:"喙";s:3:"嗢";s:3:"嗢";s:3:"塚";s:3:"塚";s:3:"墳";s:3:"墳";s:3:"奄";s:3:"奄";s:3:"奔";s:3:"奔";s:3:"婢";s:3:"婢";s:3:"嬨";s:3:"嬨";s:3:"廒";s:3:"廒";s:3:"廙";s:3:"廙";s:3:"彩";s:3:"彩";s:3:"徭";s:3:"徭";s:3:"惘";s:3:"惘";s:3:"慎";s:3:"慎";s:3:"愈";s:3:"愈";s:3:"憎";s:3:"憎";s:3:"慠";s:3:"慠";s:3:"懲";s:3:"懲";s:3:"戴";s:3:"戴";s:3:"揄";s:3:"揄";s:3:"搜";s:3:"搜";s:3:"摒";s:3:"摒";s:3:"敖";s:3:"敖";s:3:"晴";s:3:"晴";s:3:"朗";s:3:"朗";s:3:"望";s:3:"望";s:3:"杖";s:3:"杖";s:3:"歹";s:3:"歹";s:3:"殺";s:3:"殺";s:3:"流";s:3:"流";s:3:"滛";s:3:"滛";s:3:"滋";s:3:"滋";s:3:"漢";s:3:"漢";s:3:"瀞";s:3:"瀞";s:3:"煮";s:3:"煮";s:3:"瞧";s:3:"瞧";s:3:"爵";s:3:"爵";s:3:"犯";s:3:"犯";s:3:"猪";s:3:"猪";s:3:"瑱";s:3:"瑱";s:3:"甆";s:3:"甆";s:3:"画";s:3:"画";s:3:"瘝";s:3:"瘝";s:3:"瘟";s:3:"瘟";s:3:"益";s:3:"益";s:3:"盛";s:3:"盛";s:3:"直";s:3:"直";s:3:"睊";s:3:"睊";s:3:"着";s:3:"着";s:3:"磌";s:3:"磌";s:3:"窱";s:3:"窱";s:3:"節";s:3:"節";s:3:"类";s:3:"类";s:3:"絛";s:3:"絛";s:3:"練";s:3:"練";s:3:"缾";s:3:"缾";s:3:"者";s:3:"者";s:3:"荒";s:3:"荒";s:3:"華";s:3:"華";s:3:"蝹";s:3:"蝹";s:3:"襁";s:3:"襁";s:3:"覆";s:3:"覆";s:3:"視";s:3:"視";s:3:"調";s:3:"調";s:3:"諸";s:3:"諸";s:3:"請";s:3:"請";s:3:"謁";s:3:"謁";s:3:"諾";s:3:"諾";s:3:"諭";s:3:"諭";s:3:"謹";s:3:"謹";s:3:"變";s:3:"變";s:3:"贈";s:3:"贈";s:3:"輸";s:3:"輸";s:3:"遲";s:3:"遲";s:3:"醙";s:3:"醙";s:3:"鉶";s:3:"鉶";s:3:"陼";s:3:"陼";s:3:"難";s:3:"難";s:3:"靖";s:3:"靖";s:3:"韛";s:3:"韛";s:3:"響";s:3:"響";s:3:"頋";s:3:"頋";s:3:"頻";s:3:"頻";s:3:"鬒";s:3:"鬒";s:3:"龜";s:3:"龜";s:3:"𢡊";s:4:"𢡊";s:3:"𢡄";s:4:"𢡄";s:3:"𣏕";s:4:"𣏕";s:3:"㮝";s:3:"㮝";s:3:"䀘";s:3:"䀘";s:3:"䀹";s:3:"䀹";s:3:"𥉉";s:4:"𥉉";s:3:"𥳐";s:4:"𥳐";s:3:"𧻓";s:4:"𧻓";s:3:"齃";s:3:"齃";s:3:"龎";s:3:"龎";s:3:"ff";s:2:"ff";s:3:"fi";s:2:"fi";s:3:"fl";s:2:"fl";s:3:"ffi";s:3:"ffi";s:3:"ffl";s:3:"ffl";s:3:"ſt";s:2:"st";s:3:"st";s:2:"st";s:3:"ﬓ";s:4:"մն";s:3:"ﬔ";s:4:"մե";s:3:"ﬕ";s:4:"մի";s:3:"ﬖ";s:4:"վն";s:3:"ﬗ";s:4:"մխ";s:3:"יִ";s:4:"יִ";s:3:"ײַ";s:4:"ײַ";s:3:"ﬠ";s:2:"ע";s:3:"ﬡ";s:2:"א";s:3:"ﬢ";s:2:"ד";s:3:"ﬣ";s:2:"ה";s:3:"ﬤ";s:2:"כ";s:3:"ﬥ";s:2:"ל";s:3:"ﬦ";s:2:"ם";s:3:"ﬧ";s:2:"ר";s:3:"ﬨ";s:2:"ת";s:3:"﬩";s:1:"+";s:3:"שׁ";s:4:"שׁ";s:3:"שׂ";s:4:"שׂ";s:3:"שּׁ";s:6:"שּׁ";s:3:"שּׂ";s:6:"שּׂ";s:3:"אַ";s:4:"אַ";s:3:"אָ";s:4:"אָ";s:3:"אּ";s:4:"אּ";s:3:"בּ";s:4:"בּ";s:3:"גּ";s:4:"גּ";s:3:"דּ";s:4:"דּ";s:3:"הּ";s:4:"הּ";s:3:"וּ";s:4:"וּ";s:3:"זּ";s:4:"זּ";s:3:"טּ";s:4:"טּ";s:3:"יּ";s:4:"יּ";s:3:"ךּ";s:4:"ךּ";s:3:"כּ";s:4:"כּ";s:3:"לּ";s:4:"לּ";s:3:"מּ";s:4:"מּ";s:3:"נּ";s:4:"נּ";s:3:"סּ";s:4:"סּ";s:3:"ףּ";s:4:"ףּ";s:3:"פּ";s:4:"פּ";s:3:"צּ";s:4:"צּ";s:3:"קּ";s:4:"קּ";s:3:"רּ";s:4:"רּ";s:3:"שּ";s:4:"שּ";s:3:"תּ";s:4:"תּ";s:3:"וֹ";s:4:"וֹ";s:3:"בֿ";s:4:"בֿ";s:3:"כֿ";s:4:"כֿ";s:3:"פֿ";s:4:"פֿ";s:3:"ﭏ";s:4:"אל";s:3:"ﭐ";s:2:"ٱ";s:3:"ﭑ";s:2:"ٱ";s:3:"ﭒ";s:2:"ٻ";s:3:"ﭓ";s:2:"ٻ";s:3:"ﭔ";s:2:"ٻ";s:3:"ﭕ";s:2:"ٻ";s:3:"ﭖ";s:2:"پ";s:3:"ﭗ";s:2:"پ";s:3:"ﭘ";s:2:"پ";s:3:"ﭙ";s:2:"پ";s:3:"ﭚ";s:2:"ڀ";s:3:"ﭛ";s:2:"ڀ";s:3:"ﭜ";s:2:"ڀ";s:3:"ﭝ";s:2:"ڀ";s:3:"ﭞ";s:2:"ٺ";s:3:"ﭟ";s:2:"ٺ";s:3:"ﭠ";s:2:"ٺ";s:3:"ﭡ";s:2:"ٺ";s:3:"ﭢ";s:2:"ٿ";s:3:"ﭣ";s:2:"ٿ";s:3:"ﭤ";s:2:"ٿ";s:3:"ﭥ";s:2:"ٿ";s:3:"ﭦ";s:2:"ٹ";s:3:"ﭧ";s:2:"ٹ";s:3:"ﭨ";s:2:"ٹ";s:3:"ﭩ";s:2:"ٹ";s:3:"ﭪ";s:2:"ڤ";s:3:"ﭫ";s:2:"ڤ";s:3:"ﭬ";s:2:"ڤ";s:3:"ﭭ";s:2:"ڤ";s:3:"ﭮ";s:2:"ڦ";s:3:"ﭯ";s:2:"ڦ";s:3:"ﭰ";s:2:"ڦ";s:3:"ﭱ";s:2:"ڦ";s:3:"ﭲ";s:2:"ڄ";s:3:"ﭳ";s:2:"ڄ";s:3:"ﭴ";s:2:"ڄ";s:3:"ﭵ";s:2:"ڄ";s:3:"ﭶ";s:2:"ڃ";s:3:"ﭷ";s:2:"ڃ";s:3:"ﭸ";s:2:"ڃ";s:3:"ﭹ";s:2:"ڃ";s:3:"ﭺ";s:2:"چ";s:3:"ﭻ";s:2:"چ";s:3:"ﭼ";s:2:"چ";s:3:"ﭽ";s:2:"چ";s:3:"ﭾ";s:2:"ڇ";s:3:"ﭿ";s:2:"ڇ";s:3:"ﮀ";s:2:"ڇ";s:3:"ﮁ";s:2:"ڇ";s:3:"ﮂ";s:2:"ڍ";s:3:"ﮃ";s:2:"ڍ";s:3:"ﮄ";s:2:"ڌ";s:3:"ﮅ";s:2:"ڌ";s:3:"ﮆ";s:2:"ڎ";s:3:"ﮇ";s:2:"ڎ";s:3:"ﮈ";s:2:"ڈ";s:3:"ﮉ";s:2:"ڈ";s:3:"ﮊ";s:2:"ژ";s:3:"ﮋ";s:2:"ژ";s:3:"ﮌ";s:2:"ڑ";s:3:"ﮍ";s:2:"ڑ";s:3:"ﮎ";s:2:"ک";s:3:"ﮏ";s:2:"ک";s:3:"ﮐ";s:2:"ک";s:3:"ﮑ";s:2:"ک";s:3:"ﮒ";s:2:"گ";s:3:"ﮓ";s:2:"گ";s:3:"ﮔ";s:2:"گ";s:3:"ﮕ";s:2:"گ";s:3:"ﮖ";s:2:"ڳ";s:3:"ﮗ";s:2:"ڳ";s:3:"ﮘ";s:2:"ڳ";s:3:"ﮙ";s:2:"ڳ";s:3:"ﮚ";s:2:"ڱ";s:3:"ﮛ";s:2:"ڱ";s:3:"ﮜ";s:2:"ڱ";s:3:"ﮝ";s:2:"ڱ";s:3:"ﮞ";s:2:"ں";s:3:"ﮟ";s:2:"ں";s:3:"ﮠ";s:2:"ڻ";s:3:"ﮡ";s:2:"ڻ";s:3:"ﮢ";s:2:"ڻ";s:3:"ﮣ";s:2:"ڻ";s:3:"ﮤ";s:4:"ۀ";s:3:"ﮥ";s:4:"ۀ";s:3:"ﮦ";s:2:"ہ";s:3:"ﮧ";s:2:"ہ";s:3:"ﮨ";s:2:"ہ";s:3:"ﮩ";s:2:"ہ";s:3:"ﮪ";s:2:"ھ";s:3:"ﮫ";s:2:"ھ";s:3:"ﮬ";s:2:"ھ";s:3:"ﮭ";s:2:"ھ";s:3:"ﮮ";s:2:"ے";s:3:"ﮯ";s:2:"ے";s:3:"ﮰ";s:4:"ۓ";s:3:"ﮱ";s:4:"ۓ";s:3:"ﯓ";s:2:"ڭ";s:3:"ﯔ";s:2:"ڭ";s:3:"ﯕ";s:2:"ڭ";s:3:"ﯖ";s:2:"ڭ";s:3:"ﯗ";s:2:"ۇ";s:3:"ﯘ";s:2:"ۇ";s:3:"ﯙ";s:2:"ۆ";s:3:"ﯚ";s:2:"ۆ";s:3:"ﯛ";s:2:"ۈ";s:3:"ﯜ";s:2:"ۈ";s:3:"ﯝ";s:4:"ۇٴ";s:3:"ﯞ";s:2:"ۋ";s:3:"ﯟ";s:2:"ۋ";s:3:"ﯠ";s:2:"ۅ";s:3:"ﯡ";s:2:"ۅ";s:3:"ﯢ";s:2:"ۉ";s:3:"ﯣ";s:2:"ۉ";s:3:"ﯤ";s:2:"ې";s:3:"ﯥ";s:2:"ې";s:3:"ﯦ";s:2:"ې";s:3:"ﯧ";s:2:"ې";s:3:"ﯨ";s:2:"ى";s:3:"ﯩ";s:2:"ى";s:3:"ﯪ";s:6:"ئا";s:3:"ﯫ";s:6:"ئا";s:3:"ﯬ";s:6:"ئە";s:3:"ﯭ";s:6:"ئە";s:3:"ﯮ";s:6:"ئو";s:3:"ﯯ";s:6:"ئو";s:3:"ﯰ";s:6:"ئۇ";s:3:"ﯱ";s:6:"ئۇ";s:3:"ﯲ";s:6:"ئۆ";s:3:"ﯳ";s:6:"ئۆ";s:3:"ﯴ";s:6:"ئۈ";s:3:"ﯵ";s:6:"ئۈ";s:3:"ﯶ";s:6:"ئې";s:3:"ﯷ";s:6:"ئې";s:3:"ﯸ";s:6:"ئې";s:3:"ﯹ";s:6:"ئى";s:3:"ﯺ";s:6:"ئى";s:3:"ﯻ";s:6:"ئى";s:3:"ﯼ";s:2:"ی";s:3:"ﯽ";s:2:"ی";s:3:"ﯾ";s:2:"ی";s:3:"ﯿ";s:2:"ی";s:3:"ﰀ";s:6:"ئج";s:3:"ﰁ";s:6:"ئح";s:3:"ﰂ";s:6:"ئم";s:3:"ﰃ";s:6:"ئى";s:3:"ﰄ";s:6:"ئي";s:3:"ﰅ";s:4:"بج";s:3:"ﰆ";s:4:"بح";s:3:"ﰇ";s:4:"بخ";s:3:"ﰈ";s:4:"بم";s:3:"ﰉ";s:4:"بى";s:3:"ﰊ";s:4:"بي";s:3:"ﰋ";s:4:"تج";s:3:"ﰌ";s:4:"تح";s:3:"ﰍ";s:4:"تخ";s:3:"ﰎ";s:4:"تم";s:3:"ﰏ";s:4:"تى";s:3:"ﰐ";s:4:"تي";s:3:"ﰑ";s:4:"ثج";s:3:"ﰒ";s:4:"ثم";s:3:"ﰓ";s:4:"ثى";s:3:"ﰔ";s:4:"ثي";s:3:"ﰕ";s:4:"جح";s:3:"ﰖ";s:4:"جم";s:3:"ﰗ";s:4:"حج";s:3:"ﰘ";s:4:"حم";s:3:"ﰙ";s:4:"خج";s:3:"ﰚ";s:4:"خح";s:3:"ﰛ";s:4:"خم";s:3:"ﰜ";s:4:"سج";s:3:"ﰝ";s:4:"سح";s:3:"ﰞ";s:4:"سخ";s:3:"ﰟ";s:4:"سم";s:3:"ﰠ";s:4:"صح";s:3:"ﰡ";s:4:"صم";s:3:"ﰢ";s:4:"ضج";s:3:"ﰣ";s:4:"ضح";s:3:"ﰤ";s:4:"ضخ";s:3:"ﰥ";s:4:"ضم";s:3:"ﰦ";s:4:"طح";s:3:"ﰧ";s:4:"طم";s:3:"ﰨ";s:4:"ظم";s:3:"ﰩ";s:4:"عج";s:3:"ﰪ";s:4:"عم";s:3:"ﰫ";s:4:"غج";s:3:"ﰬ";s:4:"غم";s:3:"ﰭ";s:4:"فج";s:3:"ﰮ";s:4:"فح";s:3:"ﰯ";s:4:"فخ";s:3:"ﰰ";s:4:"فم";s:3:"ﰱ";s:4:"فى";s:3:"ﰲ";s:4:"في";s:3:"ﰳ";s:4:"قح";s:3:"ﰴ";s:4:"قم";s:3:"ﰵ";s:4:"قى";s:3:"ﰶ";s:4:"قي";s:3:"ﰷ";s:4:"كا";s:3:"ﰸ";s:4:"كج";s:3:"ﰹ";s:4:"كح";s:3:"ﰺ";s:4:"كخ";s:3:"ﰻ";s:4:"كل";s:3:"ﰼ";s:4:"كم";s:3:"ﰽ";s:4:"كى";s:3:"ﰾ";s:4:"كي";s:3:"ﰿ";s:4:"لج";s:3:"ﱀ";s:4:"لح";s:3:"ﱁ";s:4:"لخ";s:3:"ﱂ";s:4:"لم";s:3:"ﱃ";s:4:"لى";s:3:"ﱄ";s:4:"لي";s:3:"ﱅ";s:4:"مج";s:3:"ﱆ";s:4:"مح";s:3:"ﱇ";s:4:"مخ";s:3:"ﱈ";s:4:"مم";s:3:"ﱉ";s:4:"مى";s:3:"ﱊ";s:4:"مي";s:3:"ﱋ";s:4:"نج";s:3:"ﱌ";s:4:"نح";s:3:"ﱍ";s:4:"نخ";s:3:"ﱎ";s:4:"نم";s:3:"ﱏ";s:4:"نى";s:3:"ﱐ";s:4:"ني";s:3:"ﱑ";s:4:"هج";s:3:"ﱒ";s:4:"هم";s:3:"ﱓ";s:4:"هى";s:3:"ﱔ";s:4:"هي";s:3:"ﱕ";s:4:"يج";s:3:"ﱖ";s:4:"يح";s:3:"ﱗ";s:4:"يخ";s:3:"ﱘ";s:4:"يم";s:3:"ﱙ";s:4:"يى";s:3:"ﱚ";s:4:"يي";s:3:"ﱛ";s:4:"ذٰ";s:3:"ﱜ";s:4:"رٰ";s:3:"ﱝ";s:4:"ىٰ";s:3:"ﱞ";s:5:" ٌّ";s:3:"ﱟ";s:5:" ٍّ";s:3:"ﱠ";s:5:" َّ";s:3:"ﱡ";s:5:" ُّ";s:3:"ﱢ";s:5:" ِّ";s:3:"ﱣ";s:5:" ّٰ";s:3:"ﱤ";s:6:"ئر";s:3:"ﱥ";s:6:"ئز";s:3:"ﱦ";s:6:"ئم";s:3:"ﱧ";s:6:"ئن";s:3:"ﱨ";s:6:"ئى";s:3:"ﱩ";s:6:"ئي";s:3:"ﱪ";s:4:"بر";s:3:"ﱫ";s:4:"بز";s:3:"ﱬ";s:4:"بم";s:3:"ﱭ";s:4:"بن";s:3:"ﱮ";s:4:"بى";s:3:"ﱯ";s:4:"بي";s:3:"ﱰ";s:4:"تر";s:3:"ﱱ";s:4:"تز";s:3:"ﱲ";s:4:"تم";s:3:"ﱳ";s:4:"تن";s:3:"ﱴ";s:4:"تى";s:3:"ﱵ";s:4:"تي";s:3:"ﱶ";s:4:"ثر";s:3:"ﱷ";s:4:"ثز";s:3:"ﱸ";s:4:"ثم";s:3:"ﱹ";s:4:"ثن";s:3:"ﱺ";s:4:"ثى";s:3:"ﱻ";s:4:"ثي";s:3:"ﱼ";s:4:"فى";s:3:"ﱽ";s:4:"في";s:3:"ﱾ";s:4:"قى";s:3:"ﱿ";s:4:"قي";s:3:"ﲀ";s:4:"كا";s:3:"ﲁ";s:4:"كل";s:3:"ﲂ";s:4:"كم";s:3:"ﲃ";s:4:"كى";s:3:"ﲄ";s:4:"كي";s:3:"ﲅ";s:4:"لم";s:3:"ﲆ";s:4:"لى";s:3:"ﲇ";s:4:"لي";s:3:"ﲈ";s:4:"ما";s:3:"ﲉ";s:4:"مم";s:3:"ﲊ";s:4:"نر";s:3:"ﲋ";s:4:"نز";s:3:"ﲌ";s:4:"نم";s:3:"ﲍ";s:4:"نن";s:3:"ﲎ";s:4:"نى";s:3:"ﲏ";s:4:"ني";s:3:"ﲐ";s:4:"ىٰ";s:3:"ﲑ";s:4:"ير";s:3:"ﲒ";s:4:"يز";s:3:"ﲓ";s:4:"يم";s:3:"ﲔ";s:4:"ين";s:3:"ﲕ";s:4:"يى";s:3:"ﲖ";s:4:"يي";s:3:"ﲗ";s:6:"ئج";s:3:"ﲘ";s:6:"ئح";s:3:"ﲙ";s:6:"ئخ";s:3:"ﲚ";s:6:"ئم";s:3:"ﲛ";s:6:"ئه";s:3:"ﲜ";s:4:"بج";s:3:"ﲝ";s:4:"بح";s:3:"ﲞ";s:4:"بخ";s:3:"ﲟ";s:4:"بم";s:3:"ﲠ";s:4:"به";s:3:"ﲡ";s:4:"تج";s:3:"ﲢ";s:4:"تح";s:3:"ﲣ";s:4:"تخ";s:3:"ﲤ";s:4:"تم";s:3:"ﲥ";s:4:"ته";s:3:"ﲦ";s:4:"ثم";s:3:"ﲧ";s:4:"جح";s:3:"ﲨ";s:4:"جم";s:3:"ﲩ";s:4:"حج";s:3:"ﲪ";s:4:"حم";s:3:"ﲫ";s:4:"خج";s:3:"ﲬ";s:4:"خم";s:3:"ﲭ";s:4:"سج";s:3:"ﲮ";s:4:"سح";s:3:"ﲯ";s:4:"سخ";s:3:"ﲰ";s:4:"سم";s:3:"ﲱ";s:4:"صح";s:3:"ﲲ";s:4:"صخ";s:3:"ﲳ";s:4:"صم";s:3:"ﲴ";s:4:"ضج";s:3:"ﲵ";s:4:"ضح";s:3:"ﲶ";s:4:"ضخ";s:3:"ﲷ";s:4:"ضم";s:3:"ﲸ";s:4:"طح";s:3:"ﲹ";s:4:"ظم";s:3:"ﲺ";s:4:"عج";s:3:"ﲻ";s:4:"عم";s:3:"ﲼ";s:4:"غج";s:3:"ﲽ";s:4:"غم";s:3:"ﲾ";s:4:"فج";s:3:"ﲿ";s:4:"فح";s:3:"ﳀ";s:4:"فخ";s:3:"ﳁ";s:4:"فم";s:3:"ﳂ";s:4:"قح";s:3:"ﳃ";s:4:"قم";s:3:"ﳄ";s:4:"كج";s:3:"ﳅ";s:4:"كح";s:3:"ﳆ";s:4:"كخ";s:3:"ﳇ";s:4:"كل";s:3:"ﳈ";s:4:"كم";s:3:"ﳉ";s:4:"لج";s:3:"ﳊ";s:4:"لح";s:3:"ﳋ";s:4:"لخ";s:3:"ﳌ";s:4:"لم";s:3:"ﳍ";s:4:"له";s:3:"ﳎ";s:4:"مج";s:3:"ﳏ";s:4:"مح";s:3:"ﳐ";s:4:"مخ";s:3:"ﳑ";s:4:"مم";s:3:"ﳒ";s:4:"نج";s:3:"ﳓ";s:4:"نح";s:3:"ﳔ";s:4:"نخ";s:3:"ﳕ";s:4:"نم";s:3:"ﳖ";s:4:"نه";s:3:"ﳗ";s:4:"هج";s:3:"ﳘ";s:4:"هم";s:3:"ﳙ";s:4:"هٰ";s:3:"ﳚ";s:4:"يج";s:3:"ﳛ";s:4:"يح";s:3:"ﳜ";s:4:"يخ";s:3:"ﳝ";s:4:"يم";s:3:"ﳞ";s:4:"يه";s:3:"ﳟ";s:6:"ئم";s:3:"ﳠ";s:6:"ئه";s:3:"ﳡ";s:4:"بم";s:3:"ﳢ";s:4:"به";s:3:"ﳣ";s:4:"تم";s:3:"ﳤ";s:4:"ته";s:3:"ﳥ";s:4:"ثم";s:3:"ﳦ";s:4:"ثه";s:3:"ﳧ";s:4:"سم";s:3:"ﳨ";s:4:"سه";s:3:"ﳩ";s:4:"شم";s:3:"ﳪ";s:4:"شه";s:3:"ﳫ";s:4:"كل";s:3:"ﳬ";s:4:"كم";s:3:"ﳭ";s:4:"لم";s:3:"ﳮ";s:4:"نم";s:3:"ﳯ";s:4:"نه";s:3:"ﳰ";s:4:"يم";s:3:"ﳱ";s:4:"يه";s:3:"ﳲ";s:6:"ـَّ";s:3:"ﳳ";s:6:"ـُّ";s:3:"ﳴ";s:6:"ـِّ";s:3:"ﳵ";s:4:"طى";s:3:"ﳶ";s:4:"طي";s:3:"ﳷ";s:4:"عى";s:3:"ﳸ";s:4:"عي";s:3:"ﳹ";s:4:"غى";s:3:"ﳺ";s:4:"غي";s:3:"ﳻ";s:4:"سى";s:3:"ﳼ";s:4:"سي";s:3:"ﳽ";s:4:"شى";s:3:"ﳾ";s:4:"شي";s:3:"ﳿ";s:4:"حى";s:3:"ﴀ";s:4:"حي";s:3:"ﴁ";s:4:"جى";s:3:"ﴂ";s:4:"جي";s:3:"ﴃ";s:4:"خى";s:3:"ﴄ";s:4:"خي";s:3:"ﴅ";s:4:"صى";s:3:"ﴆ";s:4:"صي";s:3:"ﴇ";s:4:"ضى";s:3:"ﴈ";s:4:"ضي";s:3:"ﴉ";s:4:"شج";s:3:"ﴊ";s:4:"شح";s:3:"ﴋ";s:4:"شخ";s:3:"ﴌ";s:4:"شم";s:3:"ﴍ";s:4:"شر";s:3:"ﴎ";s:4:"سر";s:3:"ﴏ";s:4:"صر";s:3:"ﴐ";s:4:"ضر";s:3:"ﴑ";s:4:"طى";s:3:"ﴒ";s:4:"طي";s:3:"ﴓ";s:4:"عى";s:3:"ﴔ";s:4:"عي";s:3:"ﴕ";s:4:"غى";s:3:"ﴖ";s:4:"غي";s:3:"ﴗ";s:4:"سى";s:3:"ﴘ";s:4:"سي";s:3:"ﴙ";s:4:"شى";s:3:"ﴚ";s:4:"شي";s:3:"ﴛ";s:4:"حى";s:3:"ﴜ";s:4:"حي";s:3:"ﴝ";s:4:"جى";s:3:"ﴞ";s:4:"جي";s:3:"ﴟ";s:4:"خى";s:3:"ﴠ";s:4:"خي";s:3:"ﴡ";s:4:"صى";s:3:"ﴢ";s:4:"صي";s:3:"ﴣ";s:4:"ضى";s:3:"ﴤ";s:4:"ضي";s:3:"ﴥ";s:4:"شج";s:3:"ﴦ";s:4:"شح";s:3:"ﴧ";s:4:"شخ";s:3:"ﴨ";s:4:"شم";s:3:"ﴩ";s:4:"شر";s:3:"ﴪ";s:4:"سر";s:3:"ﴫ";s:4:"صر";s:3:"ﴬ";s:4:"ضر";s:3:"ﴭ";s:4:"شج";s:3:"ﴮ";s:4:"شح";s:3:"ﴯ";s:4:"شخ";s:3:"ﴰ";s:4:"شم";s:3:"ﴱ";s:4:"سه";s:3:"ﴲ";s:4:"شه";s:3:"ﴳ";s:4:"طم";s:3:"ﴴ";s:4:"سج";s:3:"ﴵ";s:4:"سح";s:3:"ﴶ";s:4:"سخ";s:3:"ﴷ";s:4:"شج";s:3:"ﴸ";s:4:"شح";s:3:"ﴹ";s:4:"شخ";s:3:"ﴺ";s:4:"طم";s:3:"ﴻ";s:4:"ظم";s:3:"ﴼ";s:4:"اً";s:3:"ﴽ";s:4:"اً";s:3:"ﵐ";s:6:"تجم";s:3:"ﵑ";s:6:"تحج";s:3:"ﵒ";s:6:"تحج";s:3:"ﵓ";s:6:"تحم";s:3:"ﵔ";s:6:"تخم";s:3:"ﵕ";s:6:"تمج";s:3:"ﵖ";s:6:"تمح";s:3:"ﵗ";s:6:"تمخ";s:3:"ﵘ";s:6:"جمح";s:3:"ﵙ";s:6:"جمح";s:3:"ﵚ";s:6:"حمي";s:3:"ﵛ";s:6:"حمى";s:3:"ﵜ";s:6:"سحج";s:3:"ﵝ";s:6:"سجح";s:3:"ﵞ";s:6:"سجى";s:3:"ﵟ";s:6:"سمح";s:3:"ﵠ";s:6:"سمح";s:3:"ﵡ";s:6:"سمج";s:3:"ﵢ";s:6:"سمم";s:3:"ﵣ";s:6:"سمم";s:3:"ﵤ";s:6:"صحح";s:3:"ﵥ";s:6:"صحح";s:3:"ﵦ";s:6:"صمم";s:3:"ﵧ";s:6:"شحم";s:3:"ﵨ";s:6:"شحم";s:3:"ﵩ";s:6:"شجي";s:3:"ﵪ";s:6:"شمخ";s:3:"ﵫ";s:6:"شمخ";s:3:"ﵬ";s:6:"شمم";s:3:"ﵭ";s:6:"شمم";s:3:"ﵮ";s:6:"ضحى";s:3:"ﵯ";s:6:"ضخم";s:3:"ﵰ";s:6:"ضخم";s:3:"ﵱ";s:6:"طمح";s:3:"ﵲ";s:6:"طمح";s:3:"ﵳ";s:6:"طمم";s:3:"ﵴ";s:6:"طمي";s:3:"ﵵ";s:6:"عجم";s:3:"ﵶ";s:6:"عمم";s:3:"ﵷ";s:6:"عمم";s:3:"ﵸ";s:6:"عمى";s:3:"ﵹ";s:6:"غمم";s:3:"ﵺ";s:6:"غمي";s:3:"ﵻ";s:6:"غمى";s:3:"ﵼ";s:6:"فخم";s:3:"ﵽ";s:6:"فخم";s:3:"ﵾ";s:6:"قمح";s:3:"ﵿ";s:6:"قمم";s:3:"ﶀ";s:6:"لحم";s:3:"ﶁ";s:6:"لحي";s:3:"ﶂ";s:6:"لحى";s:3:"ﶃ";s:6:"لجج";s:3:"ﶄ";s:6:"لجج";s:3:"ﶅ";s:6:"لخم";s:3:"ﶆ";s:6:"لخم";s:3:"ﶇ";s:6:"لمح";s:3:"ﶈ";s:6:"لمح";s:3:"ﶉ";s:6:"محج";s:3:"ﶊ";s:6:"محم";s:3:"ﶋ";s:6:"محي";s:3:"ﶌ";s:6:"مجح";s:3:"ﶍ";s:6:"مجم";s:3:"ﶎ";s:6:"مخج";s:3:"ﶏ";s:6:"مخم";s:3:"ﶒ";s:6:"مجخ";s:3:"ﶓ";s:6:"همج";s:3:"ﶔ";s:6:"همم";s:3:"ﶕ";s:6:"نحم";s:3:"ﶖ";s:6:"نحى";s:3:"ﶗ";s:6:"نجم";s:3:"ﶘ";s:6:"نجم";s:3:"ﶙ";s:6:"نجى";s:3:"ﶚ";s:6:"نمي";s:3:"ﶛ";s:6:"نمى";s:3:"ﶜ";s:6:"يمم";s:3:"ﶝ";s:6:"يمم";s:3:"ﶞ";s:6:"بخي";s:3:"ﶟ";s:6:"تجي";s:3:"ﶠ";s:6:"تجى";s:3:"ﶡ";s:6:"تخي";s:3:"ﶢ";s:6:"تخى";s:3:"ﶣ";s:6:"تمي";s:3:"ﶤ";s:6:"تمى";s:3:"ﶥ";s:6:"جمي";s:3:"ﶦ";s:6:"جحى";s:3:"ﶧ";s:6:"جمى";s:3:"ﶨ";s:6:"سخى";s:3:"ﶩ";s:6:"صحي";s:3:"ﶪ";s:6:"شحي";s:3:"ﶫ";s:6:"ضحي";s:3:"ﶬ";s:6:"لجي";s:3:"ﶭ";s:6:"لمي";s:3:"ﶮ";s:6:"يحي";s:3:"ﶯ";s:6:"يجي";s:3:"ﶰ";s:6:"يمي";s:3:"ﶱ";s:6:"ممي";s:3:"ﶲ";s:6:"قمي";s:3:"ﶳ";s:6:"نحي";s:3:"ﶴ";s:6:"قمح";s:3:"ﶵ";s:6:"لحم";s:3:"ﶶ";s:6:"عمي";s:3:"ﶷ";s:6:"كمي";s:3:"ﶸ";s:6:"نجح";s:3:"ﶹ";s:6:"مخي";s:3:"ﶺ";s:6:"لجم";s:3:"ﶻ";s:6:"كمم";s:3:"ﶼ";s:6:"لجم";s:3:"ﶽ";s:6:"نجح";s:3:"ﶾ";s:6:"جحي";s:3:"ﶿ";s:6:"حجي";s:3:"ﷀ";s:6:"مجي";s:3:"ﷁ";s:6:"فمي";s:3:"ﷂ";s:6:"بحي";s:3:"ﷃ";s:6:"كمم";s:3:"ﷄ";s:6:"عجم";s:3:"ﷅ";s:6:"صمم";s:3:"ﷆ";s:6:"سخي";s:3:"ﷇ";s:6:"نجي";s:3:"ﷰ";s:6:"صلے";s:3:"ﷱ";s:6:"قلے";s:3:"ﷲ";s:8:"الله";s:3:"ﷳ";s:8:"اكبر";s:3:"ﷴ";s:8:"محمد";s:3:"ﷵ";s:8:"صلعم";s:3:"ﷶ";s:8:"رسول";s:3:"ﷷ";s:8:"عليه";s:3:"ﷸ";s:8:"وسلم";s:3:"ﷹ";s:6:"صلى";s:3:"ﷺ";s:33:"صلى الله عليه وسلم";s:3:"ﷻ";s:15:"جل جلاله";s:3:"﷼";s:8:"ریال";s:3:"︐";s:1:",";s:3:"︑";s:3:"、";s:3:"︒";s:3:"。";s:3:"︓";s:1:":";s:3:"︔";s:1:";";s:3:"︕";s:1:"!";s:3:"︖";s:1:"?";s:3:"︗";s:3:"〖";s:3:"︘";s:3:"〗";s:3:"︙";s:3:"...";s:3:"︰";s:2:"..";s:3:"︱";s:3:"—";s:3:"︲";s:3:"–";s:3:"︳";s:1:"_";s:3:"︴";s:1:"_";s:3:"︵";s:1:"(";s:3:"︶";s:1:")";s:3:"︷";s:1:"{";s:3:"︸";s:1:"}";s:3:"︹";s:3:"〔";s:3:"︺";s:3:"〕";s:3:"︻";s:3:"【";s:3:"︼";s:3:"】";s:3:"︽";s:3:"《";s:3:"︾";s:3:"》";s:3:"︿";s:3:"〈";s:3:"﹀";s:3:"〉";s:3:"﹁";s:3:"「";s:3:"﹂";s:3:"」";s:3:"﹃";s:3:"『";s:3:"﹄";s:3:"』";s:3:"﹇";s:1:"[";s:3:"﹈";s:1:"]";s:3:"﹉";s:3:" ̅";s:3:"﹊";s:3:" ̅";s:3:"﹋";s:3:" ̅";s:3:"﹌";s:3:" ̅";s:3:"﹍";s:1:"_";s:3:"﹎";s:1:"_";s:3:"﹏";s:1:"_";s:3:"﹐";s:1:",";s:3:"﹑";s:3:"、";s:3:"﹒";s:1:".";s:3:"﹔";s:1:";";s:3:"﹕";s:1:":";s:3:"﹖";s:1:"?";s:3:"﹗";s:1:"!";s:3:"﹘";s:3:"—";s:3:"﹙";s:1:"(";s:3:"﹚";s:1:")";s:3:"﹛";s:1:"{";s:3:"﹜";s:1:"}";s:3:"﹝";s:3:"〔";s:3:"﹞";s:3:"〕";s:3:"﹟";s:1:"#";s:3:"﹠";s:1:"&";s:3:"﹡";s:1:"*";s:3:"﹢";s:1:"+";s:3:"﹣";s:1:"-";s:3:"﹤";s:1:"<";s:3:"﹥";s:1:">";s:3:"﹦";s:1:"=";s:3:"﹨";s:1:"\\";s:3:"﹩";s:1:"$";s:3:"﹪";s:1:"%";s:3:"﹫";s:1:"@";s:3:"ﹰ";s:3:" ً";s:3:"ﹱ";s:4:"ـً";s:3:"ﹲ";s:3:" ٌ";s:3:"ﹴ";s:3:" ٍ";s:3:"ﹶ";s:3:" َ";s:3:"ﹷ";s:4:"ـَ";s:3:"ﹸ";s:3:" ُ";s:3:"ﹹ";s:4:"ـُ";s:3:"ﹺ";s:3:" ِ";s:3:"ﹻ";s:4:"ـِ";s:3:"ﹼ";s:3:" ّ";s:3:"ﹽ";s:4:"ـّ";s:3:"ﹾ";s:3:" ْ";s:3:"ﹿ";s:4:"ـْ";s:3:"ﺀ";s:2:"ء";s:3:"ﺁ";s:4:"آ";s:3:"ﺂ";s:4:"آ";s:3:"ﺃ";s:4:"أ";s:3:"ﺄ";s:4:"أ";s:3:"ﺅ";s:4:"ؤ";s:3:"ﺆ";s:4:"ؤ";s:3:"ﺇ";s:4:"إ";s:3:"ﺈ";s:4:"إ";s:3:"ﺉ";s:4:"ئ";s:3:"ﺊ";s:4:"ئ";s:3:"ﺋ";s:4:"ئ";s:3:"ﺌ";s:4:"ئ";s:3:"ﺍ";s:2:"ا";s:3:"ﺎ";s:2:"ا";s:3:"ﺏ";s:2:"ب";s:3:"ﺐ";s:2:"ب";s:3:"ﺑ";s:2:"ب";s:3:"ﺒ";s:2:"ب";s:3:"ﺓ";s:2:"ة";s:3:"ﺔ";s:2:"ة";s:3:"ﺕ";s:2:"ت";s:3:"ﺖ";s:2:"ت";s:3:"ﺗ";s:2:"ت";s:3:"ﺘ";s:2:"ت";s:3:"ﺙ";s:2:"ث";s:3:"ﺚ";s:2:"ث";s:3:"ﺛ";s:2:"ث";s:3:"ﺜ";s:2:"ث";s:3:"ﺝ";s:2:"ج";s:3:"ﺞ";s:2:"ج";s:3:"ﺟ";s:2:"ج";s:3:"ﺠ";s:2:"ج";s:3:"ﺡ";s:2:"ح";s:3:"ﺢ";s:2:"ح";s:3:"ﺣ";s:2:"ح";s:3:"ﺤ";s:2:"ح";s:3:"ﺥ";s:2:"خ";s:3:"ﺦ";s:2:"خ";s:3:"ﺧ";s:2:"خ";s:3:"ﺨ";s:2:"خ";s:3:"ﺩ";s:2:"د";s:3:"ﺪ";s:2:"د";s:3:"ﺫ";s:2:"ذ";s:3:"ﺬ";s:2:"ذ";s:3:"ﺭ";s:2:"ر";s:3:"ﺮ";s:2:"ر";s:3:"ﺯ";s:2:"ز";s:3:"ﺰ";s:2:"ز";s:3:"ﺱ";s:2:"س";s:3:"ﺲ";s:2:"س";s:3:"ﺳ";s:2:"س";s:3:"ﺴ";s:2:"س";s:3:"ﺵ";s:2:"ش";s:3:"ﺶ";s:2:"ش";s:3:"ﺷ";s:2:"ش";s:3:"ﺸ";s:2:"ش";s:3:"ﺹ";s:2:"ص";s:3:"ﺺ";s:2:"ص";s:3:"ﺻ";s:2:"ص";s:3:"ﺼ";s:2:"ص";s:3:"ﺽ";s:2:"ض";s:3:"ﺾ";s:2:"ض";s:3:"ﺿ";s:2:"ض";s:3:"ﻀ";s:2:"ض";s:3:"ﻁ";s:2:"ط";s:3:"ﻂ";s:2:"ط";s:3:"ﻃ";s:2:"ط";s:3:"ﻄ";s:2:"ط";s:3:"ﻅ";s:2:"ظ";s:3:"ﻆ";s:2:"ظ";s:3:"ﻇ";s:2:"ظ";s:3:"ﻈ";s:2:"ظ";s:3:"ﻉ";s:2:"ع";s:3:"ﻊ";s:2:"ع";s:3:"ﻋ";s:2:"ع";s:3:"ﻌ";s:2:"ع";s:3:"ﻍ";s:2:"غ";s:3:"ﻎ";s:2:"غ";s:3:"ﻏ";s:2:"غ";s:3:"ﻐ";s:2:"غ";s:3:"ﻑ";s:2:"ف";s:3:"ﻒ";s:2:"ف";s:3:"ﻓ";s:2:"ف";s:3:"ﻔ";s:2:"ف";s:3:"ﻕ";s:2:"ق";s:3:"ﻖ";s:2:"ق";s:3:"ﻗ";s:2:"ق";s:3:"ﻘ";s:2:"ق";s:3:"ﻙ";s:2:"ك";s:3:"ﻚ";s:2:"ك";s:3:"ﻛ";s:2:"ك";s:3:"ﻜ";s:2:"ك";s:3:"ﻝ";s:2:"ل";s:3:"ﻞ";s:2:"ل";s:3:"ﻟ";s:2:"ل";s:3:"ﻠ";s:2:"ل";s:3:"ﻡ";s:2:"م";s:3:"ﻢ";s:2:"م";s:3:"ﻣ";s:2:"م";s:3:"ﻤ";s:2:"م";s:3:"ﻥ";s:2:"ن";s:3:"ﻦ";s:2:"ن";s:3:"ﻧ";s:2:"ن";s:3:"ﻨ";s:2:"ن";s:3:"ﻩ";s:2:"ه";s:3:"ﻪ";s:2:"ه";s:3:"ﻫ";s:2:"ه";s:3:"ﻬ";s:2:"ه";s:3:"ﻭ";s:2:"و";s:3:"ﻮ";s:2:"و";s:3:"ﻯ";s:2:"ى";s:3:"ﻰ";s:2:"ى";s:3:"ﻱ";s:2:"ي";s:3:"ﻲ";s:2:"ي";s:3:"ﻳ";s:2:"ي";s:3:"ﻴ";s:2:"ي";s:3:"ﻵ";s:6:"لآ";s:3:"ﻶ";s:6:"لآ";s:3:"ﻷ";s:6:"لأ";s:3:"ﻸ";s:6:"لأ";s:3:"ﻹ";s:6:"لإ";s:3:"ﻺ";s:6:"لإ";s:3:"ﻻ";s:4:"لا";s:3:"ﻼ";s:4:"لا";s:3:"!";s:1:"!";s:3:""";s:1:""";s:3:"#";s:1:"#";s:3:"$";s:1:"$";s:3:"%";s:1:"%";s:3:"&";s:1:"&";s:3:"'";s:1:"\'";s:3:"(";s:1:"(";s:3:")";s:1:")";s:3:"*";s:1:"*";s:3:"+";s:1:"+";s:3:",";s:1:",";s:3:"-";s:1:"-";s:3:".";s:1:".";s:3:"/";s:1:"/";s:3:"0";s:1:"0";s:3:"1";s:1:"1";s:3:"2";s:1:"2";s:3:"3";s:1:"3";s:3:"4";s:1:"4";s:3:"5";s:1:"5";s:3:"6";s:1:"6";s:3:"7";s:1:"7";s:3:"8";s:1:"8";s:3:"9";s:1:"9";s:3:":";s:1:":";s:3:";";s:1:";";s:3:"<";s:1:"<";s:3:"=";s:1:"=";s:3:">";s:1:">";s:3:"?";s:1:"?";s:3:"@";s:1:"@";s:3:"A";s:1:"A";s:3:"B";s:1:"B";s:3:"C";s:1:"C";s:3:"D";s:1:"D";s:3:"E";s:1:"E";s:3:"F";s:1:"F";s:3:"G";s:1:"G";s:3:"H";s:1:"H";s:3:"I";s:1:"I";s:3:"J";s:1:"J";s:3:"K";s:1:"K";s:3:"L";s:1:"L";s:3:"M";s:1:"M";s:3:"N";s:1:"N";s:3:"O";s:1:"O";s:3:"P";s:1:"P";s:3:"Q";s:1:"Q";s:3:"R";s:1:"R";s:3:"S";s:1:"S";s:3:"T";s:1:"T";s:3:"U";s:1:"U";s:3:"V";s:1:"V";s:3:"W";s:1:"W";s:3:"X";s:1:"X";s:3:"Y";s:1:"Y";s:3:"Z";s:1:"Z";s:3:"[";s:1:"[";s:3:"\";s:1:"\\";s:3:"]";s:1:"]";s:3:"^";s:1:"^";s:3:"_";s:1:"_";s:3:"`";s:1:"`";s:3:"a";s:1:"a";s:3:"b";s:1:"b";s:3:"c";s:1:"c";s:3:"d";s:1:"d";s:3:"e";s:1:"e";s:3:"f";s:1:"f";s:3:"g";s:1:"g";s:3:"h";s:1:"h";s:3:"i";s:1:"i";s:3:"j";s:1:"j";s:3:"k";s:1:"k";s:3:"l";s:1:"l";s:3:"m";s:1:"m";s:3:"n";s:1:"n";s:3:"o";s:1:"o";s:3:"p";s:1:"p";s:3:"q";s:1:"q";s:3:"r";s:1:"r";s:3:"s";s:1:"s";s:3:"t";s:1:"t";s:3:"u";s:1:"u";s:3:"v";s:1:"v";s:3:"w";s:1:"w";s:3:"x";s:1:"x";s:3:"y";s:1:"y";s:3:"z";s:1:"z";s:3:"{";s:1:"{";s:3:"|";s:1:"|";s:3:"}";s:1:"}";s:3:"~";s:1:"~";s:3:"⦅";s:3:"⦅";s:3:"⦆";s:3:"⦆";s:3:"。";s:3:"。";s:3:"「";s:3:"「";s:3:"」";s:3:"」";s:3:"、";s:3:"、";s:3:"・";s:3:"・";s:3:"ヲ";s:3:"ヲ";s:3:"ァ";s:3:"ァ";s:3:"ィ";s:3:"ィ";s:3:"ゥ";s:3:"ゥ";s:3:"ェ";s:3:"ェ";s:3:"ォ";s:3:"ォ";s:3:"ャ";s:3:"ャ";s:3:"ュ";s:3:"ュ";s:3:"ョ";s:3:"ョ";s:3:"ッ";s:3:"ッ";s:3:"ー";s:3:"ー";s:3:"ア";s:3:"ア";s:3:"イ";s:3:"イ";s:3:"ウ";s:3:"ウ";s:3:"エ";s:3:"エ";s:3:"オ";s:3:"オ";s:3:"カ";s:3:"カ";s:3:"キ";s:3:"キ";s:3:"ク";s:3:"ク";s:3:"ケ";s:3:"ケ";s:3:"コ";s:3:"コ";s:3:"サ";s:3:"サ";s:3:"シ";s:3:"シ";s:3:"ス";s:3:"ス";s:3:"セ";s:3:"セ";s:3:"ソ";s:3:"ソ";s:3:"タ";s:3:"タ";s:3:"チ";s:3:"チ";s:3:"ツ";s:3:"ツ";s:3:"テ";s:3:"テ";s:3:"ト";s:3:"ト";s:3:"ナ";s:3:"ナ";s:3:"ニ";s:3:"ニ";s:3:"ヌ";s:3:"ヌ";s:3:"ネ";s:3:"ネ";s:3:"ノ";s:3:"ノ";s:3:"ハ";s:3:"ハ";s:3:"ヒ";s:3:"ヒ";s:3:"フ";s:3:"フ";s:3:"ヘ";s:3:"ヘ";s:3:"ホ";s:3:"ホ";s:3:"マ";s:3:"マ";s:3:"ミ";s:3:"ミ";s:3:"ム";s:3:"ム";s:3:"メ";s:3:"メ";s:3:"モ";s:3:"モ";s:3:"ヤ";s:3:"ヤ";s:3:"ユ";s:3:"ユ";s:3:"ヨ";s:3:"ヨ";s:3:"ラ";s:3:"ラ";s:3:"リ";s:3:"リ";s:3:"ル";s:3:"ル";s:3:"レ";s:3:"レ";s:3:"ロ";s:3:"ロ";s:3:"ワ";s:3:"ワ";s:3:"ン";s:3:"ン";s:3:"゙";s:3:"゙";s:3:"゚";s:3:"゚";s:3:"ᅠ";s:3:"ᅠ";s:3:"ᄀ";s:3:"ᄀ";s:3:"ᄁ";s:3:"ᄁ";s:3:"ᆪ";s:3:"ᆪ";s:3:"ᄂ";s:3:"ᄂ";s:3:"ᆬ";s:3:"ᆬ";s:3:"ᆭ";s:3:"ᆭ";s:3:"ᄃ";s:3:"ᄃ";s:3:"ᄄ";s:3:"ᄄ";s:3:"ᄅ";s:3:"ᄅ";s:3:"ᆰ";s:3:"ᆰ";s:3:"ᆱ";s:3:"ᆱ";s:3:"ᆲ";s:3:"ᆲ";s:3:"ᆳ";s:3:"ᆳ";s:3:"ᆴ";s:3:"ᆴ";s:3:"ᆵ";s:3:"ᆵ";s:3:"ᄚ";s:3:"ᄚ";s:3:"ᄆ";s:3:"ᄆ";s:3:"ᄇ";s:3:"ᄇ";s:3:"ᄈ";s:3:"ᄈ";s:3:"ᄡ";s:3:"ᄡ";s:3:"ᄉ";s:3:"ᄉ";s:3:"ᄊ";s:3:"ᄊ";s:3:"ᄋ";s:3:"ᄋ";s:3:"ᄌ";s:3:"ᄌ";s:3:"ᄍ";s:3:"ᄍ";s:3:"ᄎ";s:3:"ᄎ";s:3:"ᄏ";s:3:"ᄏ";s:3:"ᄐ";s:3:"ᄐ";s:3:"ᄑ";s:3:"ᄑ";s:3:"ᄒ";s:3:"ᄒ";s:3:"ᅡ";s:3:"ᅡ";s:3:"ᅢ";s:3:"ᅢ";s:3:"ᅣ";s:3:"ᅣ";s:3:"ᅤ";s:3:"ᅤ";s:3:"ᅥ";s:3:"ᅥ";s:3:"ᅦ";s:3:"ᅦ";s:3:"ᅧ";s:3:"ᅧ";s:3:"ᅨ";s:3:"ᅨ";s:3:"ᅩ";s:3:"ᅩ";s:3:"ᅪ";s:3:"ᅪ";s:3:"ᅫ";s:3:"ᅫ";s:3:"ᅬ";s:3:"ᅬ";s:3:"ᅭ";s:3:"ᅭ";s:3:"ᅮ";s:3:"ᅮ";s:3:"ᅯ";s:3:"ᅯ";s:3:"ᅰ";s:3:"ᅰ";s:3:"ᅱ";s:3:"ᅱ";s:3:"ᅲ";s:3:"ᅲ";s:3:"ᅳ";s:3:"ᅳ";s:3:"ᅴ";s:3:"ᅴ";s:3:"ᅵ";s:3:"ᅵ";s:3:"¢";s:2:"¢";s:3:"£";s:2:"£";s:3:"¬";s:2:"¬";s:3:" ̄";s:3:" ̄";s:3:"¦";s:2:"¦";s:3:"¥";s:2:"¥";s:3:"₩";s:3:"₩";s:3:"│";s:3:"│";s:3:"←";s:3:"←";s:3:"↑";s:3:"↑";s:3:"→";s:3:"→";s:3:"↓";s:3:"↓";s:3:"■";s:3:"■";s:3:"○";s:3:"○";s:4:"𑂚";s:8:"𑂚";s:4:"𑂜";s:8:"𑂜";s:4:"𑂫";s:8:"𑂫";s:4:"𝅗𝅥";s:8:"𝅗𝅥";s:4:"𝅘𝅥";s:8:"𝅘𝅥";s:4:"𝅘𝅥𝅮";s:12:"𝅘𝅥𝅮";s:4:"𝅘𝅥𝅯";s:12:"𝅘𝅥𝅯";s:4:"𝅘𝅥𝅰";s:12:"𝅘𝅥𝅰";s:4:"𝅘𝅥𝅱";s:12:"𝅘𝅥𝅱";s:4:"𝅘𝅥𝅲";s:12:"𝅘𝅥𝅲";s:4:"𝆹𝅥";s:8:"𝆹𝅥";s:4:"𝆺𝅥";s:8:"𝆺𝅥";s:4:"𝆹𝅥𝅮";s:12:"𝆹𝅥𝅮";s:4:"𝆺𝅥𝅮";s:12:"𝆺𝅥𝅮";s:4:"𝆹𝅥𝅯";s:12:"𝆹𝅥𝅯";s:4:"𝆺𝅥𝅯";s:12:"𝆺𝅥𝅯";s:4:"𝐀";s:1:"A";s:4:"𝐁";s:1:"B";s:4:"𝐂";s:1:"C";s:4:"𝐃";s:1:"D";s:4:"𝐄";s:1:"E";s:4:"𝐅";s:1:"F";s:4:"𝐆";s:1:"G";s:4:"𝐇";s:1:"H";s:4:"𝐈";s:1:"I";s:4:"𝐉";s:1:"J";s:4:"𝐊";s:1:"K";s:4:"𝐋";s:1:"L";s:4:"𝐌";s:1:"M";s:4:"𝐍";s:1:"N";s:4:"𝐎";s:1:"O";s:4:"𝐏";s:1:"P";s:4:"𝐐";s:1:"Q";s:4:"𝐑";s:1:"R";s:4:"𝐒";s:1:"S";s:4:"𝐓";s:1:"T";s:4:"𝐔";s:1:"U";s:4:"𝐕";s:1:"V";s:4:"𝐖";s:1:"W";s:4:"𝐗";s:1:"X";s:4:"𝐘";s:1:"Y";s:4:"𝐙";s:1:"Z";s:4:"𝐚";s:1:"a";s:4:"𝐛";s:1:"b";s:4:"𝐜";s:1:"c";s:4:"𝐝";s:1:"d";s:4:"𝐞";s:1:"e";s:4:"𝐟";s:1:"f";s:4:"𝐠";s:1:"g";s:4:"𝐡";s:1:"h";s:4:"𝐢";s:1:"i";s:4:"𝐣";s:1:"j";s:4:"𝐤";s:1:"k";s:4:"𝐥";s:1:"l";s:4:"𝐦";s:1:"m";s:4:"𝐧";s:1:"n";s:4:"𝐨";s:1:"o";s:4:"𝐩";s:1:"p";s:4:"𝐪";s:1:"q";s:4:"𝐫";s:1:"r";s:4:"𝐬";s:1:"s";s:4:"𝐭";s:1:"t";s:4:"𝐮";s:1:"u";s:4:"𝐯";s:1:"v";s:4:"𝐰";s:1:"w";s:4:"𝐱";s:1:"x";s:4:"𝐲";s:1:"y";s:4:"𝐳";s:1:"z";s:4:"𝐴";s:1:"A";s:4:"𝐵";s:1:"B";s:4:"𝐶";s:1:"C";s:4:"𝐷";s:1:"D";s:4:"𝐸";s:1:"E";s:4:"𝐹";s:1:"F";s:4:"𝐺";s:1:"G";s:4:"𝐻";s:1:"H";s:4:"𝐼";s:1:"I";s:4:"𝐽";s:1:"J";s:4:"𝐾";s:1:"K";s:4:"𝐿";s:1:"L";s:4:"𝑀";s:1:"M";s:4:"𝑁";s:1:"N";s:4:"𝑂";s:1:"O";s:4:"𝑃";s:1:"P";s:4:"𝑄";s:1:"Q";s:4:"𝑅";s:1:"R";s:4:"𝑆";s:1:"S";s:4:"𝑇";s:1:"T";s:4:"𝑈";s:1:"U";s:4:"𝑉";s:1:"V";s:4:"𝑊";s:1:"W";s:4:"𝑋";s:1:"X";s:4:"𝑌";s:1:"Y";s:4:"𝑍";s:1:"Z";s:4:"𝑎";s:1:"a";s:4:"𝑏";s:1:"b";s:4:"𝑐";s:1:"c";s:4:"𝑑";s:1:"d";s:4:"𝑒";s:1:"e";s:4:"𝑓";s:1:"f";s:4:"𝑔";s:1:"g";s:4:"𝑖";s:1:"i";s:4:"𝑗";s:1:"j";s:4:"𝑘";s:1:"k";s:4:"𝑙";s:1:"l";s:4:"𝑚";s:1:"m";s:4:"𝑛";s:1:"n";s:4:"𝑜";s:1:"o";s:4:"𝑝";s:1:"p";s:4:"𝑞";s:1:"q";s:4:"𝑟";s:1:"r";s:4:"𝑠";s:1:"s";s:4:"𝑡";s:1:"t";s:4:"𝑢";s:1:"u";s:4:"𝑣";s:1:"v";s:4:"𝑤";s:1:"w";s:4:"𝑥";s:1:"x";s:4:"𝑦";s:1:"y";s:4:"𝑧";s:1:"z";s:4:"𝑨";s:1:"A";s:4:"𝑩";s:1:"B";s:4:"𝑪";s:1:"C";s:4:"𝑫";s:1:"D";s:4:"𝑬";s:1:"E";s:4:"𝑭";s:1:"F";s:4:"𝑮";s:1:"G";s:4:"𝑯";s:1:"H";s:4:"𝑰";s:1:"I";s:4:"𝑱";s:1:"J";s:4:"𝑲";s:1:"K";s:4:"𝑳";s:1:"L";s:4:"𝑴";s:1:"M";s:4:"𝑵";s:1:"N";s:4:"𝑶";s:1:"O";s:4:"𝑷";s:1:"P";s:4:"𝑸";s:1:"Q";s:4:"𝑹";s:1:"R";s:4:"𝑺";s:1:"S";s:4:"𝑻";s:1:"T";s:4:"𝑼";s:1:"U";s:4:"𝑽";s:1:"V";s:4:"𝑾";s:1:"W";s:4:"𝑿";s:1:"X";s:4:"𝒀";s:1:"Y";s:4:"𝒁";s:1:"Z";s:4:"𝒂";s:1:"a";s:4:"𝒃";s:1:"b";s:4:"𝒄";s:1:"c";s:4:"𝒅";s:1:"d";s:4:"𝒆";s:1:"e";s:4:"𝒇";s:1:"f";s:4:"𝒈";s:1:"g";s:4:"𝒉";s:1:"h";s:4:"𝒊";s:1:"i";s:4:"𝒋";s:1:"j";s:4:"𝒌";s:1:"k";s:4:"𝒍";s:1:"l";s:4:"𝒎";s:1:"m";s:4:"𝒏";s:1:"n";s:4:"𝒐";s:1:"o";s:4:"𝒑";s:1:"p";s:4:"𝒒";s:1:"q";s:4:"𝒓";s:1:"r";s:4:"𝒔";s:1:"s";s:4:"𝒕";s:1:"t";s:4:"𝒖";s:1:"u";s:4:"𝒗";s:1:"v";s:4:"𝒘";s:1:"w";s:4:"𝒙";s:1:"x";s:4:"𝒚";s:1:"y";s:4:"𝒛";s:1:"z";s:4:"𝒜";s:1:"A";s:4:"𝒞";s:1:"C";s:4:"𝒟";s:1:"D";s:4:"𝒢";s:1:"G";s:4:"𝒥";s:1:"J";s:4:"𝒦";s:1:"K";s:4:"𝒩";s:1:"N";s:4:"𝒪";s:1:"O";s:4:"𝒫";s:1:"P";s:4:"𝒬";s:1:"Q";s:4:"𝒮";s:1:"S";s:4:"𝒯";s:1:"T";s:4:"𝒰";s:1:"U";s:4:"𝒱";s:1:"V";s:4:"𝒲";s:1:"W";s:4:"𝒳";s:1:"X";s:4:"𝒴";s:1:"Y";s:4:"𝒵";s:1:"Z";s:4:"𝒶";s:1:"a";s:4:"𝒷";s:1:"b";s:4:"𝒸";s:1:"c";s:4:"𝒹";s:1:"d";s:4:"𝒻";s:1:"f";s:4:"𝒽";s:1:"h";s:4:"𝒾";s:1:"i";s:4:"𝒿";s:1:"j";s:4:"𝓀";s:1:"k";s:4:"𝓁";s:1:"l";s:4:"𝓂";s:1:"m";s:4:"𝓃";s:1:"n";s:4:"𝓅";s:1:"p";s:4:"𝓆";s:1:"q";s:4:"𝓇";s:1:"r";s:4:"𝓈";s:1:"s";s:4:"𝓉";s:1:"t";s:4:"𝓊";s:1:"u";s:4:"𝓋";s:1:"v";s:4:"𝓌";s:1:"w";s:4:"𝓍";s:1:"x";s:4:"𝓎";s:1:"y";s:4:"𝓏";s:1:"z";s:4:"𝓐";s:1:"A";s:4:"𝓑";s:1:"B";s:4:"𝓒";s:1:"C";s:4:"𝓓";s:1:"D";s:4:"𝓔";s:1:"E";s:4:"𝓕";s:1:"F";s:4:"𝓖";s:1:"G";s:4:"𝓗";s:1:"H";s:4:"𝓘";s:1:"I";s:4:"𝓙";s:1:"J";s:4:"𝓚";s:1:"K";s:4:"𝓛";s:1:"L";s:4:"𝓜";s:1:"M";s:4:"𝓝";s:1:"N";s:4:"𝓞";s:1:"O";s:4:"𝓟";s:1:"P";s:4:"𝓠";s:1:"Q";s:4:"𝓡";s:1:"R";s:4:"𝓢";s:1:"S";s:4:"𝓣";s:1:"T";s:4:"𝓤";s:1:"U";s:4:"𝓥";s:1:"V";s:4:"𝓦";s:1:"W";s:4:"𝓧";s:1:"X";s:4:"𝓨";s:1:"Y";s:4:"𝓩";s:1:"Z";s:4:"𝓪";s:1:"a";s:4:"𝓫";s:1:"b";s:4:"𝓬";s:1:"c";s:4:"𝓭";s:1:"d";s:4:"𝓮";s:1:"e";s:4:"𝓯";s:1:"f";s:4:"𝓰";s:1:"g";s:4:"𝓱";s:1:"h";s:4:"𝓲";s:1:"i";s:4:"𝓳";s:1:"j";s:4:"𝓴";s:1:"k";s:4:"𝓵";s:1:"l";s:4:"𝓶";s:1:"m";s:4:"𝓷";s:1:"n";s:4:"𝓸";s:1:"o";s:4:"𝓹";s:1:"p";s:4:"𝓺";s:1:"q";s:4:"𝓻";s:1:"r";s:4:"𝓼";s:1:"s";s:4:"𝓽";s:1:"t";s:4:"𝓾";s:1:"u";s:4:"𝓿";s:1:"v";s:4:"𝔀";s:1:"w";s:4:"𝔁";s:1:"x";s:4:"𝔂";s:1:"y";s:4:"𝔃";s:1:"z";s:4:"𝔄";s:1:"A";s:4:"𝔅";s:1:"B";s:4:"𝔇";s:1:"D";s:4:"𝔈";s:1:"E";s:4:"𝔉";s:1:"F";s:4:"𝔊";s:1:"G";s:4:"𝔍";s:1:"J";s:4:"𝔎";s:1:"K";s:4:"𝔏";s:1:"L";s:4:"𝔐";s:1:"M";s:4:"𝔑";s:1:"N";s:4:"𝔒";s:1:"O";s:4:"𝔓";s:1:"P";s:4:"𝔔";s:1:"Q";s:4:"𝔖";s:1:"S";s:4:"𝔗";s:1:"T";s:4:"𝔘";s:1:"U";s:4:"𝔙";s:1:"V";s:4:"𝔚";s:1:"W";s:4:"𝔛";s:1:"X";s:4:"𝔜";s:1:"Y";s:4:"𝔞";s:1:"a";s:4:"𝔟";s:1:"b";s:4:"𝔠";s:1:"c";s:4:"𝔡";s:1:"d";s:4:"𝔢";s:1:"e";s:4:"𝔣";s:1:"f";s:4:"𝔤";s:1:"g";s:4:"𝔥";s:1:"h";s:4:"𝔦";s:1:"i";s:4:"𝔧";s:1:"j";s:4:"𝔨";s:1:"k";s:4:"𝔩";s:1:"l";s:4:"𝔪";s:1:"m";s:4:"𝔫";s:1:"n";s:4:"𝔬";s:1:"o";s:4:"𝔭";s:1:"p";s:4:"𝔮";s:1:"q";s:4:"𝔯";s:1:"r";s:4:"𝔰";s:1:"s";s:4:"𝔱";s:1:"t";s:4:"𝔲";s:1:"u";s:4:"𝔳";s:1:"v";s:4:"𝔴";s:1:"w";s:4:"𝔵";s:1:"x";s:4:"𝔶";s:1:"y";s:4:"𝔷";s:1:"z";s:4:"𝔸";s:1:"A";s:4:"𝔹";s:1:"B";s:4:"𝔻";s:1:"D";s:4:"𝔼";s:1:"E";s:4:"𝔽";s:1:"F";s:4:"𝔾";s:1:"G";s:4:"𝕀";s:1:"I";s:4:"𝕁";s:1:"J";s:4:"𝕂";s:1:"K";s:4:"𝕃";s:1:"L";s:4:"𝕄";s:1:"M";s:4:"𝕆";s:1:"O";s:4:"𝕊";s:1:"S";s:4:"𝕋";s:1:"T";s:4:"𝕌";s:1:"U";s:4:"𝕍";s:1:"V";s:4:"𝕎";s:1:"W";s:4:"𝕏";s:1:"X";s:4:"𝕐";s:1:"Y";s:4:"𝕒";s:1:"a";s:4:"𝕓";s:1:"b";s:4:"𝕔";s:1:"c";s:4:"𝕕";s:1:"d";s:4:"𝕖";s:1:"e";s:4:"𝕗";s:1:"f";s:4:"𝕘";s:1:"g";s:4:"𝕙";s:1:"h";s:4:"𝕚";s:1:"i";s:4:"𝕛";s:1:"j";s:4:"𝕜";s:1:"k";s:4:"𝕝";s:1:"l";s:4:"𝕞";s:1:"m";s:4:"𝕟";s:1:"n";s:4:"𝕠";s:1:"o";s:4:"𝕡";s:1:"p";s:4:"𝕢";s:1:"q";s:4:"𝕣";s:1:"r";s:4:"𝕤";s:1:"s";s:4:"𝕥";s:1:"t";s:4:"𝕦";s:1:"u";s:4:"𝕧";s:1:"v";s:4:"𝕨";s:1:"w";s:4:"𝕩";s:1:"x";s:4:"𝕪";s:1:"y";s:4:"𝕫";s:1:"z";s:4:"𝕬";s:1:"A";s:4:"𝕭";s:1:"B";s:4:"𝕮";s:1:"C";s:4:"𝕯";s:1:"D";s:4:"𝕰";s:1:"E";s:4:"𝕱";s:1:"F";s:4:"𝕲";s:1:"G";s:4:"𝕳";s:1:"H";s:4:"𝕴";s:1:"I";s:4:"𝕵";s:1:"J";s:4:"𝕶";s:1:"K";s:4:"𝕷";s:1:"L";s:4:"𝕸";s:1:"M";s:4:"𝕹";s:1:"N";s:4:"𝕺";s:1:"O";s:4:"𝕻";s:1:"P";s:4:"𝕼";s:1:"Q";s:4:"𝕽";s:1:"R";s:4:"𝕾";s:1:"S";s:4:"𝕿";s:1:"T";s:4:"𝖀";s:1:"U";s:4:"𝖁";s:1:"V";s:4:"𝖂";s:1:"W";s:4:"𝖃";s:1:"X";s:4:"𝖄";s:1:"Y";s:4:"𝖅";s:1:"Z";s:4:"𝖆";s:1:"a";s:4:"𝖇";s:1:"b";s:4:"𝖈";s:1:"c";s:4:"𝖉";s:1:"d";s:4:"𝖊";s:1:"e";s:4:"𝖋";s:1:"f";s:4:"𝖌";s:1:"g";s:4:"𝖍";s:1:"h";s:4:"𝖎";s:1:"i";s:4:"𝖏";s:1:"j";s:4:"𝖐";s:1:"k";s:4:"𝖑";s:1:"l";s:4:"𝖒";s:1:"m";s:4:"𝖓";s:1:"n";s:4:"𝖔";s:1:"o";s:4:"𝖕";s:1:"p";s:4:"𝖖";s:1:"q";s:4:"𝖗";s:1:"r";s:4:"𝖘";s:1:"s";s:4:"𝖙";s:1:"t";s:4:"𝖚";s:1:"u";s:4:"𝖛";s:1:"v";s:4:"𝖜";s:1:"w";s:4:"𝖝";s:1:"x";s:4:"𝖞";s:1:"y";s:4:"𝖟";s:1:"z";s:4:"𝖠";s:1:"A";s:4:"𝖡";s:1:"B";s:4:"𝖢";s:1:"C";s:4:"𝖣";s:1:"D";s:4:"𝖤";s:1:"E";s:4:"𝖥";s:1:"F";s:4:"𝖦";s:1:"G";s:4:"𝖧";s:1:"H";s:4:"𝖨";s:1:"I";s:4:"𝖩";s:1:"J";s:4:"𝖪";s:1:"K";s:4:"𝖫";s:1:"L";s:4:"𝖬";s:1:"M";s:4:"𝖭";s:1:"N";s:4:"𝖮";s:1:"O";s:4:"𝖯";s:1:"P";s:4:"𝖰";s:1:"Q";s:4:"𝖱";s:1:"R";s:4:"𝖲";s:1:"S";s:4:"𝖳";s:1:"T";s:4:"𝖴";s:1:"U";s:4:"𝖵";s:1:"V";s:4:"𝖶";s:1:"W";s:4:"𝖷";s:1:"X";s:4:"𝖸";s:1:"Y";s:4:"𝖹";s:1:"Z";s:4:"𝖺";s:1:"a";s:4:"𝖻";s:1:"b";s:4:"𝖼";s:1:"c";s:4:"𝖽";s:1:"d";s:4:"𝖾";s:1:"e";s:4:"𝖿";s:1:"f";s:4:"𝗀";s:1:"g";s:4:"𝗁";s:1:"h";s:4:"𝗂";s:1:"i";s:4:"𝗃";s:1:"j";s:4:"𝗄";s:1:"k";s:4:"𝗅";s:1:"l";s:4:"𝗆";s:1:"m";s:4:"𝗇";s:1:"n";s:4:"𝗈";s:1:"o";s:4:"𝗉";s:1:"p";s:4:"𝗊";s:1:"q";s:4:"𝗋";s:1:"r";s:4:"𝗌";s:1:"s";s:4:"𝗍";s:1:"t";s:4:"𝗎";s:1:"u";s:4:"𝗏";s:1:"v";s:4:"𝗐";s:1:"w";s:4:"𝗑";s:1:"x";s:4:"𝗒";s:1:"y";s:4:"𝗓";s:1:"z";s:4:"𝗔";s:1:"A";s:4:"𝗕";s:1:"B";s:4:"𝗖";s:1:"C";s:4:"𝗗";s:1:"D";s:4:"𝗘";s:1:"E";s:4:"𝗙";s:1:"F";s:4:"𝗚";s:1:"G";s:4:"𝗛";s:1:"H";s:4:"𝗜";s:1:"I";s:4:"𝗝";s:1:"J";s:4:"𝗞";s:1:"K";s:4:"𝗟";s:1:"L";s:4:"𝗠";s:1:"M";s:4:"𝗡";s:1:"N";s:4:"𝗢";s:1:"O";s:4:"𝗣";s:1:"P";s:4:"𝗤";s:1:"Q";s:4:"𝗥";s:1:"R";s:4:"𝗦";s:1:"S";s:4:"𝗧";s:1:"T";s:4:"𝗨";s:1:"U";s:4:"𝗩";s:1:"V";s:4:"𝗪";s:1:"W";s:4:"𝗫";s:1:"X";s:4:"𝗬";s:1:"Y";s:4:"𝗭";s:1:"Z";s:4:"𝗮";s:1:"a";s:4:"𝗯";s:1:"b";s:4:"𝗰";s:1:"c";s:4:"𝗱";s:1:"d";s:4:"𝗲";s:1:"e";s:4:"𝗳";s:1:"f";s:4:"𝗴";s:1:"g";s:4:"𝗵";s:1:"h";s:4:"𝗶";s:1:"i";s:4:"𝗷";s:1:"j";s:4:"𝗸";s:1:"k";s:4:"𝗹";s:1:"l";s:4:"𝗺";s:1:"m";s:4:"𝗻";s:1:"n";s:4:"𝗼";s:1:"o";s:4:"𝗽";s:1:"p";s:4:"𝗾";s:1:"q";s:4:"𝗿";s:1:"r";s:4:"𝘀";s:1:"s";s:4:"𝘁";s:1:"t";s:4:"𝘂";s:1:"u";s:4:"𝘃";s:1:"v";s:4:"𝘄";s:1:"w";s:4:"𝘅";s:1:"x";s:4:"𝘆";s:1:"y";s:4:"𝘇";s:1:"z";s:4:"𝘈";s:1:"A";s:4:"𝘉";s:1:"B";s:4:"𝘊";s:1:"C";s:4:"𝘋";s:1:"D";s:4:"𝘌";s:1:"E";s:4:"𝘍";s:1:"F";s:4:"𝘎";s:1:"G";s:4:"𝘏";s:1:"H";s:4:"𝘐";s:1:"I";s:4:"𝘑";s:1:"J";s:4:"𝘒";s:1:"K";s:4:"𝘓";s:1:"L";s:4:"𝘔";s:1:"M";s:4:"𝘕";s:1:"N";s:4:"𝘖";s:1:"O";s:4:"𝘗";s:1:"P";s:4:"𝘘";s:1:"Q";s:4:"𝘙";s:1:"R";s:4:"𝘚";s:1:"S";s:4:"𝘛";s:1:"T";s:4:"𝘜";s:1:"U";s:4:"𝘝";s:1:"V";s:4:"𝘞";s:1:"W";s:4:"𝘟";s:1:"X";s:4:"𝘠";s:1:"Y";s:4:"𝘡";s:1:"Z";s:4:"𝘢";s:1:"a";s:4:"𝘣";s:1:"b";s:4:"𝘤";s:1:"c";s:4:"𝘥";s:1:"d";s:4:"𝘦";s:1:"e";s:4:"𝘧";s:1:"f";s:4:"𝘨";s:1:"g";s:4:"𝘩";s:1:"h";s:4:"𝘪";s:1:"i";s:4:"𝘫";s:1:"j";s:4:"𝘬";s:1:"k";s:4:"𝘭";s:1:"l";s:4:"𝘮";s:1:"m";s:4:"𝘯";s:1:"n";s:4:"𝘰";s:1:"o";s:4:"𝘱";s:1:"p";s:4:"𝘲";s:1:"q";s:4:"𝘳";s:1:"r";s:4:"𝘴";s:1:"s";s:4:"𝘵";s:1:"t";s:4:"𝘶";s:1:"u";s:4:"𝘷";s:1:"v";s:4:"𝘸";s:1:"w";s:4:"𝘹";s:1:"x";s:4:"𝘺";s:1:"y";s:4:"𝘻";s:1:"z";s:4:"𝘼";s:1:"A";s:4:"𝘽";s:1:"B";s:4:"𝘾";s:1:"C";s:4:"𝘿";s:1:"D";s:4:"𝙀";s:1:"E";s:4:"𝙁";s:1:"F";s:4:"𝙂";s:1:"G";s:4:"𝙃";s:1:"H";s:4:"𝙄";s:1:"I";s:4:"𝙅";s:1:"J";s:4:"𝙆";s:1:"K";s:4:"𝙇";s:1:"L";s:4:"𝙈";s:1:"M";s:4:"𝙉";s:1:"N";s:4:"𝙊";s:1:"O";s:4:"𝙋";s:1:"P";s:4:"𝙌";s:1:"Q";s:4:"𝙍";s:1:"R";s:4:"𝙎";s:1:"S";s:4:"𝙏";s:1:"T";s:4:"𝙐";s:1:"U";s:4:"𝙑";s:1:"V";s:4:"𝙒";s:1:"W";s:4:"𝙓";s:1:"X";s:4:"𝙔";s:1:"Y";s:4:"𝙕";s:1:"Z";s:4:"𝙖";s:1:"a";s:4:"𝙗";s:1:"b";s:4:"𝙘";s:1:"c";s:4:"𝙙";s:1:"d";s:4:"𝙚";s:1:"e";s:4:"𝙛";s:1:"f";s:4:"𝙜";s:1:"g";s:4:"𝙝";s:1:"h";s:4:"𝙞";s:1:"i";s:4:"𝙟";s:1:"j";s:4:"𝙠";s:1:"k";s:4:"𝙡";s:1:"l";s:4:"𝙢";s:1:"m";s:4:"𝙣";s:1:"n";s:4:"𝙤";s:1:"o";s:4:"𝙥";s:1:"p";s:4:"𝙦";s:1:"q";s:4:"𝙧";s:1:"r";s:4:"𝙨";s:1:"s";s:4:"𝙩";s:1:"t";s:4:"𝙪";s:1:"u";s:4:"𝙫";s:1:"v";s:4:"𝙬";s:1:"w";s:4:"𝙭";s:1:"x";s:4:"𝙮";s:1:"y";s:4:"𝙯";s:1:"z";s:4:"𝙰";s:1:"A";s:4:"𝙱";s:1:"B";s:4:"𝙲";s:1:"C";s:4:"𝙳";s:1:"D";s:4:"𝙴";s:1:"E";s:4:"𝙵";s:1:"F";s:4:"𝙶";s:1:"G";s:4:"𝙷";s:1:"H";s:4:"𝙸";s:1:"I";s:4:"𝙹";s:1:"J";s:4:"𝙺";s:1:"K";s:4:"𝙻";s:1:"L";s:4:"𝙼";s:1:"M";s:4:"𝙽";s:1:"N";s:4:"𝙾";s:1:"O";s:4:"𝙿";s:1:"P";s:4:"𝚀";s:1:"Q";s:4:"𝚁";s:1:"R";s:4:"𝚂";s:1:"S";s:4:"𝚃";s:1:"T";s:4:"𝚄";s:1:"U";s:4:"𝚅";s:1:"V";s:4:"𝚆";s:1:"W";s:4:"𝚇";s:1:"X";s:4:"𝚈";s:1:"Y";s:4:"𝚉";s:1:"Z";s:4:"𝚊";s:1:"a";s:4:"𝚋";s:1:"b";s:4:"𝚌";s:1:"c";s:4:"𝚍";s:1:"d";s:4:"𝚎";s:1:"e";s:4:"𝚏";s:1:"f";s:4:"𝚐";s:1:"g";s:4:"𝚑";s:1:"h";s:4:"𝚒";s:1:"i";s:4:"𝚓";s:1:"j";s:4:"𝚔";s:1:"k";s:4:"𝚕";s:1:"l";s:4:"𝚖";s:1:"m";s:4:"𝚗";s:1:"n";s:4:"𝚘";s:1:"o";s:4:"𝚙";s:1:"p";s:4:"𝚚";s:1:"q";s:4:"𝚛";s:1:"r";s:4:"𝚜";s:1:"s";s:4:"𝚝";s:1:"t";s:4:"𝚞";s:1:"u";s:4:"𝚟";s:1:"v";s:4:"𝚠";s:1:"w";s:4:"𝚡";s:1:"x";s:4:"𝚢";s:1:"y";s:4:"𝚣";s:1:"z";s:4:"𝚤";s:2:"ı";s:4:"𝚥";s:2:"ȷ";s:4:"𝚨";s:2:"Α";s:4:"𝚩";s:2:"Β";s:4:"𝚪";s:2:"Γ";s:4:"𝚫";s:2:"Δ";s:4:"𝚬";s:2:"Ε";s:4:"𝚭";s:2:"Ζ";s:4:"𝚮";s:2:"Η";s:4:"𝚯";s:2:"Θ";s:4:"𝚰";s:2:"Ι";s:4:"𝚱";s:2:"Κ";s:4:"𝚲";s:2:"Λ";s:4:"𝚳";s:2:"Μ";s:4:"𝚴";s:2:"Ν";s:4:"𝚵";s:2:"Ξ";s:4:"𝚶";s:2:"Ο";s:4:"𝚷";s:2:"Π";s:4:"𝚸";s:2:"Ρ";s:4:"𝚹";s:2:"Θ";s:4:"𝚺";s:2:"Σ";s:4:"𝚻";s:2:"Τ";s:4:"𝚼";s:2:"Υ";s:4:"𝚽";s:2:"Φ";s:4:"𝚾";s:2:"Χ";s:4:"𝚿";s:2:"Ψ";s:4:"𝛀";s:2:"Ω";s:4:"𝛁";s:3:"∇";s:4:"𝛂";s:2:"α";s:4:"𝛃";s:2:"β";s:4:"𝛄";s:2:"γ";s:4:"𝛅";s:2:"δ";s:4:"𝛆";s:2:"ε";s:4:"𝛇";s:2:"ζ";s:4:"𝛈";s:2:"η";s:4:"𝛉";s:2:"θ";s:4:"𝛊";s:2:"ι";s:4:"𝛋";s:2:"κ";s:4:"𝛌";s:2:"λ";s:4:"𝛍";s:2:"μ";s:4:"𝛎";s:2:"ν";s:4:"𝛏";s:2:"ξ";s:4:"𝛐";s:2:"ο";s:4:"𝛑";s:2:"π";s:4:"𝛒";s:2:"ρ";s:4:"𝛓";s:2:"ς";s:4:"𝛔";s:2:"σ";s:4:"𝛕";s:2:"τ";s:4:"𝛖";s:2:"υ";s:4:"𝛗";s:2:"φ";s:4:"𝛘";s:2:"χ";s:4:"𝛙";s:2:"ψ";s:4:"𝛚";s:2:"ω";s:4:"𝛛";s:3:"∂";s:4:"𝛜";s:2:"ε";s:4:"𝛝";s:2:"θ";s:4:"𝛞";s:2:"κ";s:4:"𝛟";s:2:"φ";s:4:"𝛠";s:2:"ρ";s:4:"𝛡";s:2:"π";s:4:"𝛢";s:2:"Α";s:4:"𝛣";s:2:"Β";s:4:"𝛤";s:2:"Γ";s:4:"𝛥";s:2:"Δ";s:4:"𝛦";s:2:"Ε";s:4:"𝛧";s:2:"Ζ";s:4:"𝛨";s:2:"Η";s:4:"𝛩";s:2:"Θ";s:4:"𝛪";s:2:"Ι";s:4:"𝛫";s:2:"Κ";s:4:"𝛬";s:2:"Λ";s:4:"𝛭";s:2:"Μ";s:4:"𝛮";s:2:"Ν";s:4:"𝛯";s:2:"Ξ";s:4:"𝛰";s:2:"Ο";s:4:"𝛱";s:2:"Π";s:4:"𝛲";s:2:"Ρ";s:4:"𝛳";s:2:"Θ";s:4:"𝛴";s:2:"Σ";s:4:"𝛵";s:2:"Τ";s:4:"𝛶";s:2:"Υ";s:4:"𝛷";s:2:"Φ";s:4:"𝛸";s:2:"Χ";s:4:"𝛹";s:2:"Ψ";s:4:"𝛺";s:2:"Ω";s:4:"𝛻";s:3:"∇";s:4:"𝛼";s:2:"α";s:4:"𝛽";s:2:"β";s:4:"𝛾";s:2:"γ";s:4:"𝛿";s:2:"δ";s:4:"𝜀";s:2:"ε";s:4:"𝜁";s:2:"ζ";s:4:"𝜂";s:2:"η";s:4:"𝜃";s:2:"θ";s:4:"𝜄";s:2:"ι";s:4:"𝜅";s:2:"κ";s:4:"𝜆";s:2:"λ";s:4:"𝜇";s:2:"μ";s:4:"𝜈";s:2:"ν";s:4:"𝜉";s:2:"ξ";s:4:"𝜊";s:2:"ο";s:4:"𝜋";s:2:"π";s:4:"𝜌";s:2:"ρ";s:4:"𝜍";s:2:"ς";s:4:"𝜎";s:2:"σ";s:4:"𝜏";s:2:"τ";s:4:"𝜐";s:2:"υ";s:4:"𝜑";s:2:"φ";s:4:"𝜒";s:2:"χ";s:4:"𝜓";s:2:"ψ";s:4:"𝜔";s:2:"ω";s:4:"𝜕";s:3:"∂";s:4:"𝜖";s:2:"ε";s:4:"𝜗";s:2:"θ";s:4:"𝜘";s:2:"κ";s:4:"𝜙";s:2:"φ";s:4:"𝜚";s:2:"ρ";s:4:"𝜛";s:2:"π";s:4:"𝜜";s:2:"Α";s:4:"𝜝";s:2:"Β";s:4:"𝜞";s:2:"Γ";s:4:"𝜟";s:2:"Δ";s:4:"𝜠";s:2:"Ε";s:4:"𝜡";s:2:"Ζ";s:4:"𝜢";s:2:"Η";s:4:"𝜣";s:2:"Θ";s:4:"𝜤";s:2:"Ι";s:4:"𝜥";s:2:"Κ";s:4:"𝜦";s:2:"Λ";s:4:"𝜧";s:2:"Μ";s:4:"𝜨";s:2:"Ν";s:4:"𝜩";s:2:"Ξ";s:4:"𝜪";s:2:"Ο";s:4:"𝜫";s:2:"Π";s:4:"𝜬";s:2:"Ρ";s:4:"𝜭";s:2:"Θ";s:4:"𝜮";s:2:"Σ";s:4:"𝜯";s:2:"Τ";s:4:"𝜰";s:2:"Υ";s:4:"𝜱";s:2:"Φ";s:4:"𝜲";s:2:"Χ";s:4:"𝜳";s:2:"Ψ";s:4:"𝜴";s:2:"Ω";s:4:"𝜵";s:3:"∇";s:4:"𝜶";s:2:"α";s:4:"𝜷";s:2:"β";s:4:"𝜸";s:2:"γ";s:4:"𝜹";s:2:"δ";s:4:"𝜺";s:2:"ε";s:4:"𝜻";s:2:"ζ";s:4:"𝜼";s:2:"η";s:4:"𝜽";s:2:"θ";s:4:"𝜾";s:2:"ι";s:4:"𝜿";s:2:"κ";s:4:"𝝀";s:2:"λ";s:4:"𝝁";s:2:"μ";s:4:"𝝂";s:2:"ν";s:4:"𝝃";s:2:"ξ";s:4:"𝝄";s:2:"ο";s:4:"𝝅";s:2:"π";s:4:"𝝆";s:2:"ρ";s:4:"𝝇";s:2:"ς";s:4:"𝝈";s:2:"σ";s:4:"𝝉";s:2:"τ";s:4:"𝝊";s:2:"υ";s:4:"𝝋";s:2:"φ";s:4:"𝝌";s:2:"χ";s:4:"𝝍";s:2:"ψ";s:4:"𝝎";s:2:"ω";s:4:"𝝏";s:3:"∂";s:4:"𝝐";s:2:"ε";s:4:"𝝑";s:2:"θ";s:4:"𝝒";s:2:"κ";s:4:"𝝓";s:2:"φ";s:4:"𝝔";s:2:"ρ";s:4:"𝝕";s:2:"π";s:4:"𝝖";s:2:"Α";s:4:"𝝗";s:2:"Β";s:4:"𝝘";s:2:"Γ";s:4:"𝝙";s:2:"Δ";s:4:"𝝚";s:2:"Ε";s:4:"𝝛";s:2:"Ζ";s:4:"𝝜";s:2:"Η";s:4:"𝝝";s:2:"Θ";s:4:"𝝞";s:2:"Ι";s:4:"𝝟";s:2:"Κ";s:4:"𝝠";s:2:"Λ";s:4:"𝝡";s:2:"Μ";s:4:"𝝢";s:2:"Ν";s:4:"𝝣";s:2:"Ξ";s:4:"𝝤";s:2:"Ο";s:4:"𝝥";s:2:"Π";s:4:"𝝦";s:2:"Ρ";s:4:"𝝧";s:2:"Θ";s:4:"𝝨";s:2:"Σ";s:4:"𝝩";s:2:"Τ";s:4:"𝝪";s:2:"Υ";s:4:"𝝫";s:2:"Φ";s:4:"𝝬";s:2:"Χ";s:4:"𝝭";s:2:"Ψ";s:4:"𝝮";s:2:"Ω";s:4:"𝝯";s:3:"∇";s:4:"𝝰";s:2:"α";s:4:"𝝱";s:2:"β";s:4:"𝝲";s:2:"γ";s:4:"𝝳";s:2:"δ";s:4:"𝝴";s:2:"ε";s:4:"𝝵";s:2:"ζ";s:4:"𝝶";s:2:"η";s:4:"𝝷";s:2:"θ";s:4:"𝝸";s:2:"ι";s:4:"𝝹";s:2:"κ";s:4:"𝝺";s:2:"λ";s:4:"𝝻";s:2:"μ";s:4:"𝝼";s:2:"ν";s:4:"𝝽";s:2:"ξ";s:4:"𝝾";s:2:"ο";s:4:"𝝿";s:2:"π";s:4:"𝞀";s:2:"ρ";s:4:"𝞁";s:2:"ς";s:4:"𝞂";s:2:"σ";s:4:"𝞃";s:2:"τ";s:4:"𝞄";s:2:"υ";s:4:"𝞅";s:2:"φ";s:4:"𝞆";s:2:"χ";s:4:"𝞇";s:2:"ψ";s:4:"𝞈";s:2:"ω";s:4:"𝞉";s:3:"∂";s:4:"𝞊";s:2:"ε";s:4:"𝞋";s:2:"θ";s:4:"𝞌";s:2:"κ";s:4:"𝞍";s:2:"φ";s:4:"𝞎";s:2:"ρ";s:4:"𝞏";s:2:"π";s:4:"𝞐";s:2:"Α";s:4:"𝞑";s:2:"Β";s:4:"𝞒";s:2:"Γ";s:4:"𝞓";s:2:"Δ";s:4:"𝞔";s:2:"Ε";s:4:"𝞕";s:2:"Ζ";s:4:"𝞖";s:2:"Η";s:4:"𝞗";s:2:"Θ";s:4:"𝞘";s:2:"Ι";s:4:"𝞙";s:2:"Κ";s:4:"𝞚";s:2:"Λ";s:4:"𝞛";s:2:"Μ";s:4:"𝞜";s:2:"Ν";s:4:"𝞝";s:2:"Ξ";s:4:"𝞞";s:2:"Ο";s:4:"𝞟";s:2:"Π";s:4:"𝞠";s:2:"Ρ";s:4:"𝞡";s:2:"Θ";s:4:"𝞢";s:2:"Σ";s:4:"𝞣";s:2:"Τ";s:4:"𝞤";s:2:"Υ";s:4:"𝞥";s:2:"Φ";s:4:"𝞦";s:2:"Χ";s:4:"𝞧";s:2:"Ψ";s:4:"𝞨";s:2:"Ω";s:4:"𝞩";s:3:"∇";s:4:"𝞪";s:2:"α";s:4:"𝞫";s:2:"β";s:4:"𝞬";s:2:"γ";s:4:"𝞭";s:2:"δ";s:4:"𝞮";s:2:"ε";s:4:"𝞯";s:2:"ζ";s:4:"𝞰";s:2:"η";s:4:"𝞱";s:2:"θ";s:4:"𝞲";s:2:"ι";s:4:"𝞳";s:2:"κ";s:4:"𝞴";s:2:"λ";s:4:"𝞵";s:2:"μ";s:4:"𝞶";s:2:"ν";s:4:"𝞷";s:2:"ξ";s:4:"𝞸";s:2:"ο";s:4:"𝞹";s:2:"π";s:4:"𝞺";s:2:"ρ";s:4:"𝞻";s:2:"ς";s:4:"𝞼";s:2:"σ";s:4:"𝞽";s:2:"τ";s:4:"𝞾";s:2:"υ";s:4:"𝞿";s:2:"φ";s:4:"𝟀";s:2:"χ";s:4:"𝟁";s:2:"ψ";s:4:"𝟂";s:2:"ω";s:4:"𝟃";s:3:"∂";s:4:"𝟄";s:2:"ε";s:4:"𝟅";s:2:"θ";s:4:"𝟆";s:2:"κ";s:4:"𝟇";s:2:"φ";s:4:"𝟈";s:2:"ρ";s:4:"𝟉";s:2:"π";s:4:"𝟊";s:2:"Ϝ";s:4:"𝟋";s:2:"ϝ";s:4:"𝟎";s:1:"0";s:4:"𝟏";s:1:"1";s:4:"𝟐";s:1:"2";s:4:"𝟑";s:1:"3";s:4:"𝟒";s:1:"4";s:4:"𝟓";s:1:"5";s:4:"𝟔";s:1:"6";s:4:"𝟕";s:1:"7";s:4:"𝟖";s:1:"8";s:4:"𝟗";s:1:"9";s:4:"𝟘";s:1:"0";s:4:"𝟙";s:1:"1";s:4:"𝟚";s:1:"2";s:4:"𝟛";s:1:"3";s:4:"𝟜";s:1:"4";s:4:"𝟝";s:1:"5";s:4:"𝟞";s:1:"6";s:4:"𝟟";s:1:"7";s:4:"𝟠";s:1:"8";s:4:"𝟡";s:1:"9";s:4:"𝟢";s:1:"0";s:4:"𝟣";s:1:"1";s:4:"𝟤";s:1:"2";s:4:"𝟥";s:1:"3";s:4:"𝟦";s:1:"4";s:4:"𝟧";s:1:"5";s:4:"𝟨";s:1:"6";s:4:"𝟩";s:1:"7";s:4:"𝟪";s:1:"8";s:4:"𝟫";s:1:"9";s:4:"𝟬";s:1:"0";s:4:"𝟭";s:1:"1";s:4:"𝟮";s:1:"2";s:4:"𝟯";s:1:"3";s:4:"𝟰";s:1:"4";s:4:"𝟱";s:1:"5";s:4:"𝟲";s:1:"6";s:4:"𝟳";s:1:"7";s:4:"𝟴";s:1:"8";s:4:"𝟵";s:1:"9";s:4:"𝟶";s:1:"0";s:4:"𝟷";s:1:"1";s:4:"𝟸";s:1:"2";s:4:"𝟹";s:1:"3";s:4:"𝟺";s:1:"4";s:4:"𝟻";s:1:"5";s:4:"𝟼";s:1:"6";s:4:"𝟽";s:1:"7";s:4:"𝟾";s:1:"8";s:4:"𝟿";s:1:"9";s:4:"🄀";s:2:"0.";s:4:"🄁";s:2:"0,";s:4:"🄂";s:2:"1,";s:4:"🄃";s:2:"2,";s:4:"🄄";s:2:"3,";s:4:"🄅";s:2:"4,";s:4:"🄆";s:2:"5,";s:4:"🄇";s:2:"6,";s:4:"🄈";s:2:"7,";s:4:"🄉";s:2:"8,";s:4:"🄊";s:2:"9,";s:4:"🄐";s:3:"(A)";s:4:"🄑";s:3:"(B)";s:4:"🄒";s:3:"(C)";s:4:"🄓";s:3:"(D)";s:4:"🄔";s:3:"(E)";s:4:"🄕";s:3:"(F)";s:4:"🄖";s:3:"(G)";s:4:"🄗";s:3:"(H)";s:4:"🄘";s:3:"(I)";s:4:"🄙";s:3:"(J)";s:4:"🄚";s:3:"(K)";s:4:"🄛";s:3:"(L)";s:4:"🄜";s:3:"(M)";s:4:"🄝";s:3:"(N)";s:4:"🄞";s:3:"(O)";s:4:"🄟";s:3:"(P)";s:4:"🄠";s:3:"(Q)";s:4:"🄡";s:3:"(R)";s:4:"🄢";s:3:"(S)";s:4:"🄣";s:3:"(T)";s:4:"🄤";s:3:"(U)";s:4:"🄥";s:3:"(V)";s:4:"🄦";s:3:"(W)";s:4:"🄧";s:3:"(X)";s:4:"🄨";s:3:"(Y)";s:4:"🄩";s:3:"(Z)";s:4:"🄪";s:7:"〔S〕";s:4:"🄫";s:1:"C";s:4:"🄬";s:1:"R";s:4:"🄭";s:2:"CD";s:4:"🄮";s:2:"WZ";s:4:"🄰";s:1:"A";s:4:"🄱";s:1:"B";s:4:"🄲";s:1:"C";s:4:"🄳";s:1:"D";s:4:"🄴";s:1:"E";s:4:"🄵";s:1:"F";s:4:"🄶";s:1:"G";s:4:"🄷";s:1:"H";s:4:"🄸";s:1:"I";s:4:"🄹";s:1:"J";s:4:"🄺";s:1:"K";s:4:"🄻";s:1:"L";s:4:"🄼";s:1:"M";s:4:"🄽";s:1:"N";s:4:"🄾";s:1:"O";s:4:"🄿";s:1:"P";s:4:"🅀";s:1:"Q";s:4:"🅁";s:1:"R";s:4:"🅂";s:1:"S";s:4:"🅃";s:1:"T";s:4:"🅄";s:1:"U";s:4:"🅅";s:1:"V";s:4:"🅆";s:1:"W";s:4:"🅇";s:1:"X";s:4:"🅈";s:1:"Y";s:4:"🅉";s:1:"Z";s:4:"🅊";s:2:"HV";s:4:"🅋";s:2:"MV";s:4:"🅌";s:2:"SD";s:4:"🅍";s:2:"SS";s:4:"🅎";s:3:"PPV";s:4:"🅏";s:2:"WC";s:4:"🆐";s:2:"DJ";s:4:"🈀";s:6:"ほか";s:4:"🈁";s:6:"ココ";s:4:"🈂";s:3:"サ";s:4:"🈐";s:3:"手";s:4:"🈑";s:3:"字";s:4:"🈒";s:3:"双";s:4:"🈓";s:6:"デ";s:4:"🈔";s:3:"二";s:4:"🈕";s:3:"多";s:4:"🈖";s:3:"解";s:4:"🈗";s:3:"天";s:4:"🈘";s:3:"交";s:4:"🈙";s:3:"映";s:4:"🈚";s:3:"無";s:4:"🈛";s:3:"料";s:4:"🈜";s:3:"前";s:4:"🈝";s:3:"後";s:4:"🈞";s:3:"再";s:4:"🈟";s:3:"新";s:4:"🈠";s:3:"初";s:4:"🈡";s:3:"終";s:4:"🈢";s:3:"生";s:4:"🈣";s:3:"販";s:4:"🈤";s:3:"声";s:4:"🈥";s:3:"吹";s:4:"🈦";s:3:"演";s:4:"🈧";s:3:"投";s:4:"🈨";s:3:"捕";s:4:"🈩";s:3:"一";s:4:"🈪";s:3:"三";s:4:"🈫";s:3:"遊";s:4:"🈬";s:3:"左";s:4:"🈭";s:3:"中";s:4:"🈮";s:3:"右";s:4:"🈯";s:3:"指";s:4:"🈰";s:3:"走";s:4:"🈱";s:3:"打";s:4:"🈲";s:3:"禁";s:4:"🈳";s:3:"空";s:4:"🈴";s:3:"合";s:4:"🈵";s:3:"満";s:4:"🈶";s:3:"有";s:4:"🈷";s:3:"月";s:4:"🈸";s:3:"申";s:4:"🈹";s:3:"割";s:4:"🈺";s:3:"営";s:4:"🉀";s:9:"〔本〕";s:4:"🉁";s:9:"〔三〕";s:4:"🉂";s:9:"〔二〕";s:4:"🉃";s:9:"〔安〕";s:4:"🉄";s:9:"〔点〕";s:4:"🉅";s:9:"〔打〕";s:4:"🉆";s:9:"〔盗〕";s:4:"🉇";s:9:"〔勝〕";s:4:"🉈";s:9:"〔敗〕";s:4:"🉐";s:3:"得";s:4:"🉑";s:3:"可";s:4:"丽";s:3:"丽";s:4:"丸";s:3:"丸";s:4:"乁";s:3:"乁";s:4:"𠄢";s:4:"𠄢";s:4:"你";s:3:"你";s:4:"侮";s:3:"侮";s:4:"侻";s:3:"侻";s:4:"倂";s:3:"倂";s:4:"偺";s:3:"偺";s:4:"備";s:3:"備";s:4:"僧";s:3:"僧";s:4:"像";s:3:"像";s:4:"㒞";s:3:"㒞";s:4:"𠘺";s:4:"𠘺";s:4:"免";s:3:"免";s:4:"兔";s:3:"兔";s:4:"兤";s:3:"兤";s:4:"具";s:3:"具";s:4:"𠔜";s:4:"𠔜";s:4:"㒹";s:3:"㒹";s:4:"內";s:3:"內";s:4:"再";s:3:"再";s:4:"𠕋";s:4:"𠕋";s:4:"冗";s:3:"冗";s:4:"冤";s:3:"冤";s:4:"仌";s:3:"仌";s:4:"冬";s:3:"冬";s:4:"况";s:3:"况";s:4:"𩇟";s:4:"𩇟";s:4:"凵";s:3:"凵";s:4:"刃";s:3:"刃";s:4:"㓟";s:3:"㓟";s:4:"刻";s:3:"刻";s:4:"剆";s:3:"剆";s:4:"割";s:3:"割";s:4:"剷";s:3:"剷";s:4:"㔕";s:3:"㔕";s:4:"勇";s:3:"勇";s:4:"勉";s:3:"勉";s:4:"勤";s:3:"勤";s:4:"勺";s:3:"勺";s:4:"包";s:3:"包";s:4:"匆";s:3:"匆";s:4:"北";s:3:"北";s:4:"卉";s:3:"卉";s:4:"卑";s:3:"卑";s:4:"博";s:3:"博";s:4:"即";s:3:"即";s:4:"卽";s:3:"卽";s:4:"卿";s:3:"卿";s:4:"卿";s:3:"卿";s:4:"卿";s:3:"卿";s:4:"𠨬";s:4:"𠨬";s:4:"灰";s:3:"灰";s:4:"及";s:3:"及";s:4:"叟";s:3:"叟";s:4:"𠭣";s:4:"𠭣";s:4:"叫";s:3:"叫";s:4:"叱";s:3:"叱";s:4:"吆";s:3:"吆";s:4:"咞";s:3:"咞";s:4:"吸";s:3:"吸";s:4:"呈";s:3:"呈";s:4:"周";s:3:"周";s:4:"咢";s:3:"咢";s:4:"哶";s:3:"哶";s:4:"唐";s:3:"唐";s:4:"啓";s:3:"啓";s:4:"啣";s:3:"啣";s:4:"善";s:3:"善";s:4:"善";s:3:"善";s:4:"喙";s:3:"喙";s:4:"喫";s:3:"喫";s:4:"喳";s:3:"喳";s:4:"嗂";s:3:"嗂";s:4:"圖";s:3:"圖";s:4:"嘆";s:3:"嘆";s:4:"圗";s:3:"圗";s:4:"噑";s:3:"噑";s:4:"噴";s:3:"噴";s:4:"切";s:3:"切";s:4:"壮";s:3:"壮";s:4:"城";s:3:"城";s:4:"埴";s:3:"埴";s:4:"堍";s:3:"堍";s:4:"型";s:3:"型";s:4:"堲";s:3:"堲";s:4:"報";s:3:"報";s:4:"墬";s:3:"墬";s:4:"𡓤";s:4:"𡓤";s:4:"売";s:3:"売";s:4:"壷";s:3:"壷";s:4:"夆";s:3:"夆";s:4:"多";s:3:"多";s:4:"夢";s:3:"夢";s:4:"奢";s:3:"奢";s:4:"𡚨";s:4:"𡚨";s:4:"𡛪";s:4:"𡛪";s:4:"姬";s:3:"姬";s:4:"娛";s:3:"娛";s:4:"娧";s:3:"娧";s:4:"姘";s:3:"姘";s:4:"婦";s:3:"婦";s:4:"㛮";s:3:"㛮";s:4:"㛼";s:3:"㛼";s:4:"嬈";s:3:"嬈";s:4:"嬾";s:3:"嬾";s:4:"嬾";s:3:"嬾";s:4:"𡧈";s:4:"𡧈";s:4:"寃";s:3:"寃";s:4:"寘";s:3:"寘";s:4:"寧";s:3:"寧";s:4:"寳";s:3:"寳";s:4:"𡬘";s:4:"𡬘";s:4:"寿";s:3:"寿";s:4:"将";s:3:"将";s:4:"当";s:3:"当";s:4:"尢";s:3:"尢";s:4:"㞁";s:3:"㞁";s:4:"屠";s:3:"屠";s:4:"屮";s:3:"屮";s:4:"峀";s:3:"峀";s:4:"岍";s:3:"岍";s:4:"𡷤";s:4:"𡷤";s:4:"嵃";s:3:"嵃";s:4:"𡷦";s:4:"𡷦";s:4:"嵮";s:3:"嵮";s:4:"嵫";s:3:"嵫";s:4:"嵼";s:3:"嵼";s:4:"巡";s:3:"巡";s:4:"巢";s:3:"巢";s:4:"㠯";s:3:"㠯";s:4:"巽";s:3:"巽";s:4:"帨";s:3:"帨";s:4:"帽";s:3:"帽";s:4:"幩";s:3:"幩";s:4:"㡢";s:3:"㡢";s:4:"𢆃";s:4:"𢆃";s:4:"㡼";s:3:"㡼";s:4:"庰";s:3:"庰";s:4:"庳";s:3:"庳";s:4:"庶";s:3:"庶";s:4:"廊";s:3:"廊";s:4:"𪎒";s:4:"𪎒";s:4:"廾";s:3:"廾";s:4:"𢌱";s:4:"𢌱";s:4:"𢌱";s:4:"𢌱";s:4:"舁";s:3:"舁";s:4:"弢";s:3:"弢";s:4:"弢";s:3:"弢";s:4:"㣇";s:3:"㣇";s:4:"𣊸";s:4:"𣊸";s:4:"𦇚";s:4:"𦇚";s:4:"形";s:3:"形";s:4:"彫";s:3:"彫";s:4:"㣣";s:3:"㣣";s:4:"徚";s:3:"徚";s:4:"忍";s:3:"忍";s:4:"志";s:3:"志";s:4:"忹";s:3:"忹";s:4:"悁";s:3:"悁";s:4:"㤺";s:3:"㤺";s:4:"㤜";s:3:"㤜";s:4:"悔";s:3:"悔";s:4:"𢛔";s:4:"𢛔";s:4:"惇";s:3:"惇";s:4:"慈";s:3:"慈";s:4:"慌";s:3:"慌";s:4:"慎";s:3:"慎";s:4:"慌";s:3:"慌";s:4:"慺";s:3:"慺";s:4:"憎";s:3:"憎";s:4:"憲";s:3:"憲";s:4:"憤";s:3:"憤";s:4:"憯";s:3:"憯";s:4:"懞";s:3:"懞";s:4:"懲";s:3:"懲";s:4:"懶";s:3:"懶";s:4:"成";s:3:"成";s:4:"戛";s:3:"戛";s:4:"扝";s:3:"扝";s:4:"抱";s:3:"抱";s:4:"拔";s:3:"拔";s:4:"捐";s:3:"捐";s:4:"𢬌";s:4:"𢬌";s:4:"挽";s:3:"挽";s:4:"拼";s:3:"拼";s:4:"捨";s:3:"捨";s:4:"掃";s:3:"掃";s:4:"揤";s:3:"揤";s:4:"𢯱";s:4:"𢯱";s:4:"搢";s:3:"搢";s:4:"揅";s:3:"揅";s:4:"掩";s:3:"掩";s:4:"㨮";s:3:"㨮";s:4:"摩";s:3:"摩";s:4:"摾";s:3:"摾";s:4:"撝";s:3:"撝";s:4:"摷";s:3:"摷";s:4:"㩬";s:3:"㩬";s:4:"敏";s:3:"敏";s:4:"敬";s:3:"敬";s:4:"𣀊";s:4:"𣀊";s:4:"旣";s:3:"旣";s:4:"書";s:3:"書";s:4:"晉";s:3:"晉";s:4:"㬙";s:3:"㬙";s:4:"暑";s:3:"暑";s:4:"㬈";s:3:"㬈";s:4:"㫤";s:3:"㫤";s:4:"冒";s:3:"冒";s:4:"冕";s:3:"冕";s:4:"最";s:3:"最";s:4:"暜";s:3:"暜";s:4:"肭";s:3:"肭";s:4:"䏙";s:3:"䏙";s:4:"朗";s:3:"朗";s:4:"望";s:3:"望";s:4:"朡";s:3:"朡";s:4:"杞";s:3:"杞";s:4:"杓";s:3:"杓";s:4:"𣏃";s:4:"𣏃";s:4:"㭉";s:3:"㭉";s:4:"柺";s:3:"柺";s:4:"枅";s:3:"枅";s:4:"桒";s:3:"桒";s:4:"梅";s:3:"梅";s:4:"𣑭";s:4:"𣑭";s:4:"梎";s:3:"梎";s:4:"栟";s:3:"栟";s:4:"椔";s:3:"椔";s:4:"㮝";s:3:"㮝";s:4:"楂";s:3:"楂";s:4:"榣";s:3:"榣";s:4:"槪";s:3:"槪";s:4:"檨";s:3:"檨";s:4:"𣚣";s:4:"𣚣";s:4:"櫛";s:3:"櫛";s:4:"㰘";s:3:"㰘";s:4:"次";s:3:"次";s:4:"𣢧";s:4:"𣢧";s:4:"歔";s:3:"歔";s:4:"㱎";s:3:"㱎";s:4:"歲";s:3:"歲";s:4:"殟";s:3:"殟";s:4:"殺";s:3:"殺";s:4:"殻";s:3:"殻";s:4:"𣪍";s:4:"𣪍";s:4:"𡴋";s:4:"𡴋";s:4:"𣫺";s:4:"𣫺";s:4:"汎";s:3:"汎";s:4:"𣲼";s:4:"𣲼";s:4:"沿";s:3:"沿";s:4:"泍";s:3:"泍";s:4:"汧";s:3:"汧";s:4:"洖";s:3:"洖";s:4:"派";s:3:"派";s:4:"海";s:3:"海";s:4:"流";s:3:"流";s:4:"浩";s:3:"浩";s:4:"浸";s:3:"浸";s:4:"涅";s:3:"涅";s:4:"𣴞";s:4:"𣴞";s:4:"洴";s:3:"洴";s:4:"港";s:3:"港";s:4:"湮";s:3:"湮";s:4:"㴳";s:3:"㴳";s:4:"滋";s:3:"滋";s:4:"滇";s:3:"滇";s:4:"𣻑";s:4:"𣻑";s:4:"淹";s:3:"淹";s:4:"潮";s:3:"潮";s:4:"𣽞";s:4:"𣽞";s:4:"𣾎";s:4:"𣾎";s:4:"濆";s:3:"濆";s:4:"瀹";s:3:"瀹";s:4:"瀞";s:3:"瀞";s:4:"瀛";s:3:"瀛";s:4:"㶖";s:3:"㶖";s:4:"灊";s:3:"灊";s:4:"災";s:3:"災";s:4:"灷";s:3:"灷";s:4:"炭";s:3:"炭";s:4:"𠔥";s:4:"𠔥";s:4:"煅";s:3:"煅";s:4:"𤉣";s:4:"𤉣";s:4:"熜";s:3:"熜";s:4:"𤎫";s:4:"𤎫";s:4:"爨";s:3:"爨";s:4:"爵";s:3:"爵";s:4:"牐";s:3:"牐";s:4:"𤘈";s:4:"𤘈";s:4:"犀";s:3:"犀";s:4:"犕";s:3:"犕";s:4:"𤜵";s:4:"𤜵";s:4:"𤠔";s:4:"𤠔";s:4:"獺";s:3:"獺";s:4:"王";s:3:"王";s:4:"㺬";s:3:"㺬";s:4:"玥";s:3:"玥";s:4:"㺸";s:3:"㺸";s:4:"㺸";s:3:"㺸";s:4:"瑇";s:3:"瑇";s:4:"瑜";s:3:"瑜";s:4:"瑱";s:3:"瑱";s:4:"璅";s:3:"璅";s:4:"瓊";s:3:"瓊";s:4:"㼛";s:3:"㼛";s:4:"甤";s:3:"甤";s:4:"𤰶";s:4:"𤰶";s:4:"甾";s:3:"甾";s:4:"𤲒";s:4:"𤲒";s:4:"異";s:3:"異";s:4:"𢆟";s:4:"𢆟";s:4:"瘐";s:3:"瘐";s:4:"𤾡";s:4:"𤾡";s:4:"𤾸";s:4:"𤾸";s:4:"𥁄";s:4:"𥁄";s:4:"㿼";s:3:"㿼";s:4:"䀈";s:3:"䀈";s:4:"直";s:3:"直";s:4:"𥃳";s:4:"𥃳";s:4:"𥃲";s:4:"𥃲";s:4:"𥄙";s:4:"𥄙";s:4:"𥄳";s:4:"𥄳";s:4:"眞";s:3:"眞";s:4:"真";s:3:"真";s:4:"真";s:3:"真";s:4:"睊";s:3:"睊";s:4:"䀹";s:3:"䀹";s:4:"瞋";s:3:"瞋";s:4:"䁆";s:3:"䁆";s:4:"䂖";s:3:"䂖";s:4:"𥐝";s:4:"𥐝";s:4:"硎";s:3:"硎";s:4:"碌";s:3:"碌";s:4:"磌";s:3:"磌";s:4:"䃣";s:3:"䃣";s:4:"𥘦";s:4:"𥘦";s:4:"祖";s:3:"祖";s:4:"𥚚";s:4:"𥚚";s:4:"𥛅";s:4:"𥛅";s:4:"福";s:3:"福";s:4:"秫";s:3:"秫";s:4:"䄯";s:3:"䄯";s:4:"穀";s:3:"穀";s:4:"穊";s:3:"穊";s:4:"穏";s:3:"穏";s:4:"𥥼";s:4:"𥥼";s:4:"𥪧";s:4:"𥪧";s:4:"𥪧";s:4:"𥪧";s:4:"竮";s:3:"竮";s:4:"䈂";s:3:"䈂";s:4:"𥮫";s:4:"𥮫";s:4:"篆";s:3:"篆";s:4:"築";s:3:"築";s:4:"䈧";s:3:"䈧";s:4:"𥲀";s:4:"𥲀";s:4:"糒";s:3:"糒";s:4:"䊠";s:3:"䊠";s:4:"糨";s:3:"糨";s:4:"糣";s:3:"糣";s:4:"紀";s:3:"紀";s:4:"𥾆";s:4:"𥾆";s:4:"絣";s:3:"絣";s:4:"䌁";s:3:"䌁";s:4:"緇";s:3:"緇";s:4:"縂";s:3:"縂";s:4:"繅";s:3:"繅";s:4:"䌴";s:3:"䌴";s:4:"𦈨";s:4:"𦈨";s:4:"𦉇";s:4:"𦉇";s:4:"䍙";s:3:"䍙";s:4:"𦋙";s:4:"𦋙";s:4:"罺";s:3:"罺";s:4:"𦌾";s:4:"𦌾";s:4:"羕";s:3:"羕";s:4:"翺";s:3:"翺";s:4:"者";s:3:"者";s:4:"𦓚";s:4:"𦓚";s:4:"𦔣";s:4:"𦔣";s:4:"聠";s:3:"聠";s:4:"𦖨";s:4:"𦖨";s:4:"聰";s:3:"聰";s:4:"𣍟";s:4:"𣍟";s:4:"䏕";s:3:"䏕";s:4:"育";s:3:"育";s:4:"脃";s:3:"脃";s:4:"䐋";s:3:"䐋";s:4:"脾";s:3:"脾";s:4:"媵";s:3:"媵";s:4:"𦞧";s:4:"𦞧";s:4:"𦞵";s:4:"𦞵";s:4:"𣎓";s:4:"𣎓";s:4:"𣎜";s:4:"𣎜";s:4:"舁";s:3:"舁";s:4:"舄";s:3:"舄";s:4:"辞";s:3:"辞";s:4:"䑫";s:3:"䑫";s:4:"芑";s:3:"芑";s:4:"芋";s:3:"芋";s:4:"芝";s:3:"芝";s:4:"劳";s:3:"劳";s:4:"花";s:3:"花";s:4:"芳";s:3:"芳";s:4:"芽";s:3:"芽";s:4:"苦";s:3:"苦";s:4:"𦬼";s:4:"𦬼";s:4:"若";s:3:"若";s:4:"茝";s:3:"茝";s:4:"荣";s:3:"荣";s:4:"莭";s:3:"莭";s:4:"茣";s:3:"茣";s:4:"莽";s:3:"莽";s:4:"菧";s:3:"菧";s:4:"著";s:3:"著";s:4:"荓";s:3:"荓";s:4:"菊";s:3:"菊";s:4:"菌";s:3:"菌";s:4:"菜";s:3:"菜";s:4:"𦰶";s:4:"𦰶";s:4:"𦵫";s:4:"𦵫";s:4:"𦳕";s:4:"𦳕";s:4:"䔫";s:3:"䔫";s:4:"蓱";s:3:"蓱";s:4:"蓳";s:3:"蓳";s:4:"蔖";s:3:"蔖";s:4:"𧏊";s:4:"𧏊";s:4:"蕤";s:3:"蕤";s:4:"𦼬";s:4:"𦼬";s:4:"䕝";s:3:"䕝";s:4:"䕡";s:3:"䕡";s:4:"𦾱";s:4:"𦾱";s:4:"𧃒";s:4:"𧃒";s:4:"䕫";s:3:"䕫";s:4:"虐";s:3:"虐";s:4:"虜";s:3:"虜";s:4:"虧";s:3:"虧";s:4:"虩";s:3:"虩";s:4:"蚩";s:3:"蚩";s:4:"蚈";s:3:"蚈";s:4:"蜎";s:3:"蜎";s:4:"蛢";s:3:"蛢";s:4:"蝹";s:3:"蝹";s:4:"蜨";s:3:"蜨";s:4:"蝫";s:3:"蝫";s:4:"螆";s:3:"螆";s:4:"䗗";s:3:"䗗";s:4:"蟡";s:3:"蟡";s:4:"蠁";s:3:"蠁";s:4:"䗹";s:3:"䗹";s:4:"衠";s:3:"衠";s:4:"衣";s:3:"衣";s:4:"𧙧";s:4:"𧙧";s:4:"裗";s:3:"裗";s:4:"裞";s:3:"裞";s:4:"䘵";s:3:"䘵";s:4:"裺";s:3:"裺";s:4:"㒻";s:3:"㒻";s:4:"𧢮";s:4:"𧢮";s:4:"𧥦";s:4:"𧥦";s:4:"䚾";s:3:"䚾";s:4:"䛇";s:3:"䛇";s:4:"誠";s:3:"誠";s:4:"諭";s:3:"諭";s:4:"變";s:3:"變";s:4:"豕";s:3:"豕";s:4:"𧲨";s:4:"𧲨";s:4:"貫";s:3:"貫";s:4:"賁";s:3:"賁";s:4:"贛";s:3:"贛";s:4:"起";s:3:"起";s:4:"𧼯";s:4:"𧼯";s:4:"𠠄";s:4:"𠠄";s:4:"跋";s:3:"跋";s:4:"趼";s:3:"趼";s:4:"跰";s:3:"跰";s:4:"𠣞";s:4:"𠣞";s:4:"軔";s:3:"軔";s:4:"輸";s:3:"輸";s:4:"𨗒";s:4:"𨗒";s:4:"𨗭";s:4:"𨗭";s:4:"邔";s:3:"邔";s:4:"郱";s:3:"郱";s:4:"鄑";s:3:"鄑";s:4:"𨜮";s:4:"𨜮";s:4:"鄛";s:3:"鄛";s:4:"鈸";s:3:"鈸";s:4:"鋗";s:3:"鋗";s:4:"鋘";s:3:"鋘";s:4:"鉼";s:3:"鉼";s:4:"鏹";s:3:"鏹";s:4:"鐕";s:3:"鐕";s:4:"𨯺";s:4:"𨯺";s:4:"開";s:3:"開";s:4:"䦕";s:3:"䦕";s:4:"閷";s:3:"閷";s:4:"𨵷";s:4:"𨵷";s:4:"䧦";s:3:"䧦";s:4:"雃";s:3:"雃";s:4:"嶲";s:3:"嶲";s:4:"霣";s:3:"霣";s:4:"𩅅";s:4:"𩅅";s:4:"𩈚";s:4:"𩈚";s:4:"䩮";s:3:"䩮";s:4:"䩶";s:3:"䩶";s:4:"韠";s:3:"韠";s:4:"𩐊";s:4:"𩐊";s:4:"䪲";s:3:"䪲";s:4:"𩒖";s:4:"𩒖";s:4:"頋";s:3:"頋";s:4:"頋";s:3:"頋";s:4:"頩";s:3:"頩";s:4:"𩖶";s:4:"𩖶";s:4:"飢";s:3:"飢";s:4:"䬳";s:3:"䬳";s:4:"餩";s:3:"餩";s:4:"馧";s:3:"馧";s:4:"駂";s:3:"駂";s:4:"駾";s:3:"駾";s:4:"䯎";s:3:"䯎";s:4:"𩬰";s:4:"𩬰";s:4:"鬒";s:3:"鬒";s:4:"鱀";s:3:"鱀";s:4:"鳽";s:3:"鳽";s:4:"䳎";s:3:"䳎";s:4:"䳭";s:3:"䳭";s:4:"鵧";s:3:"鵧";s:4:"𪃎";s:4:"𪃎";s:4:"䳸";s:3:"䳸";s:4:"𪄅";s:4:"𪄅";s:4:"𪈎";s:4:"𪈎";s:4:"𪊑";s:4:"𪊑";s:4:"麻";s:3:"麻";s:4:"䵖";s:3:"䵖";s:4:"黹";s:3:"黹";s:4:"黾";s:3:"黾";s:4:"鼅";s:3:"鼅";s:4:"鼏";s:3:"鼏";s:4:"鼖";s:3:"鼖";s:4:"鼻";s:3:"鼻";s:4:"𪘀";s:4:"𪘀";}' );
+
diff --git a/includes/libs/normal/UtfNormalDefines.php b/includes/libs/normal/UtfNormalDefines.php
new file mode 100644 (file)
index 0000000..18d89f6
--- /dev/null
@@ -0,0 +1,77 @@
+<?php
+/**
+ * Some constant definitions for the unicode normalization module.
+ *
+ * Note: these constants must all be resolvable at compile time by HipHop,
+ * since this file will not be executed during request startup for a compiled
+ * MediaWiki.
+ *
+ * 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 UtfNormal
+ */
+
+define( 'UNICODE_HANGUL_FIRST', 0xac00 );
+define( 'UNICODE_HANGUL_LAST', 0xd7a3 );
+
+define( 'UNICODE_HANGUL_LBASE', 0x1100 );
+define( 'UNICODE_HANGUL_VBASE', 0x1161 );
+define( 'UNICODE_HANGUL_TBASE', 0x11a7 );
+
+define( 'UNICODE_HANGUL_LCOUNT', 19 );
+define( 'UNICODE_HANGUL_VCOUNT', 21 );
+define( 'UNICODE_HANGUL_TCOUNT', 28 );
+define( 'UNICODE_HANGUL_NCOUNT', UNICODE_HANGUL_VCOUNT * UNICODE_HANGUL_TCOUNT );
+
+define( 'UNICODE_HANGUL_LEND', UNICODE_HANGUL_LBASE + UNICODE_HANGUL_LCOUNT - 1 );
+define( 'UNICODE_HANGUL_VEND', UNICODE_HANGUL_VBASE + UNICODE_HANGUL_VCOUNT - 1 );
+define( 'UNICODE_HANGUL_TEND', UNICODE_HANGUL_TBASE + UNICODE_HANGUL_TCOUNT - 1 );
+
+define( 'UNICODE_SURROGATE_FIRST', 0xd800 );
+define( 'UNICODE_SURROGATE_LAST', 0xdfff );
+define( 'UNICODE_MAX', 0x10ffff );
+define( 'UNICODE_REPLACEMENT', 0xfffd );
+
+define( 'UTF8_HANGUL_FIRST', "\xea\xb0\x80" /*codepointToUtf8( UNICODE_HANGUL_FIRST )*/ );
+define( 'UTF8_HANGUL_LAST', "\xed\x9e\xa3" /*codepointToUtf8( UNICODE_HANGUL_LAST )*/ );
+
+define( 'UTF8_HANGUL_LBASE', "\xe1\x84\x80" /*codepointToUtf8( UNICODE_HANGUL_LBASE )*/ );
+define( 'UTF8_HANGUL_VBASE', "\xe1\x85\xa1" /*codepointToUtf8( UNICODE_HANGUL_VBASE )*/ );
+define( 'UTF8_HANGUL_TBASE', "\xe1\x86\xa7" /*codepointToUtf8( UNICODE_HANGUL_TBASE )*/ );
+
+define( 'UTF8_HANGUL_LEND', "\xe1\x84\x92" /*codepointToUtf8( UNICODE_HANGUL_LEND )*/ );
+define( 'UTF8_HANGUL_VEND', "\xe1\x85\xb5" /*codepointToUtf8( UNICODE_HANGUL_VEND )*/ );
+define( 'UTF8_HANGUL_TEND', "\xe1\x87\x82" /*codepointToUtf8( UNICODE_HANGUL_TEND )*/ );
+
+define( 'UTF8_SURROGATE_FIRST', "\xed\xa0\x80" /*codepointToUtf8( UNICODE_SURROGATE_FIRST )*/ );
+define( 'UTF8_SURROGATE_LAST', "\xed\xbf\xbf" /*codepointToUtf8( UNICODE_SURROGATE_LAST )*/ );
+define( 'UTF8_MAX', "\xf4\x8f\xbf\xbf" /*codepointToUtf8( UNICODE_MAX )*/ );
+define( 'UTF8_REPLACEMENT', "\xef\xbf\xbd" /*codepointToUtf8( UNICODE_REPLACEMENT )*/ );
+#define( 'UTF8_REPLACEMENT', '!' );
+
+define( 'UTF8_OVERLONG_A', "\xc1\xbf" );
+define( 'UTF8_OVERLONG_B', "\xe0\x9f\xbf" );
+define( 'UTF8_OVERLONG_C', "\xf0\x8f\xbf\xbf" );
+
+# These two ranges are illegal
+define( 'UTF8_FDD0', "\xef\xb7\x90" /*codepointToUtf8( 0xfdd0 )*/ );
+define( 'UTF8_FDEF', "\xef\xb7\xaf" /*codepointToUtf8( 0xfdef )*/ );
+define( 'UTF8_FFFE', "\xef\xbf\xbe" /*codepointToUtf8( 0xfffe )*/ );
+define( 'UTF8_FFFF', "\xef\xbf\xbf" /*codepointToUtf8( 0xffff )*/ );
+
+define( 'UTF8_HEAD', false );
+define( 'UTF8_TAIL', true );
diff --git a/includes/libs/normal/UtfNormalGenerate.php b/includes/libs/normal/UtfNormalGenerate.php
new file mode 100644 (file)
index 0000000..f57aa6c
--- /dev/null
@@ -0,0 +1,250 @@
+<?php
+/**
+ * This script generates UniNormalData.inc from the Unicode Character Database
+ * and supplementary files.
+ *
+ * Copyright (C) 2004 Brion Vibber <brion@pobox.com>
+ * https://www.mediawiki.org/
+ *
+ * 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 UtfNormal
+ */
+
+if ( PHP_SAPI != 'cli' ) {
+       die( "Run me from the command line please.\n" );
+}
+
+require_once 'UtfNormalDefines.php';
+require_once 'UtfNormalUtil.php';
+
+$in = fopen( "DerivedNormalizationProps.txt", "rt" );
+if ( !$in ) {
+       print "Can't open DerivedNormalizationProps.txt for reading.\n";
+       print "If necessary, fetch this file from the internet:\n";
+       print "http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt\n";
+       exit( -1 );
+}
+print "Initializing normalization quick check tables...\n";
+$checkNFC = array();
+while ( false !== ( $line = fgets( $in ) ) ) {
+       $matches = array();
+       if ( preg_match(
+               '/^([0-9A-F]+)(?:..([0-9A-F]+))?\s*;\s*(NFC_QC)\s*;\s*([MN])/',
+               $line,
+               $matches )
+       ) {
+               list( $junk, $first, $last, $prop, $value ) = $matches;
+               #print "$first $last $prop $value\n";
+               if ( !$last ) {
+                       $last = $first;
+               }
+
+               $lastInDecimal = hexdec( $last );
+               for ( $i = hexdec( $first ); $i <= $lastInDecimal; $i++ ) {
+                       $char = codepointToUtf8( $i );
+                       $checkNFC[$char] = $value;
+               }
+       }
+}
+fclose( $in );
+
+$in = fopen( "CompositionExclusions.txt", "rt" );
+if ( !$in ) {
+       print "Can't open CompositionExclusions.txt for reading.\n";
+       print "If necessary, fetch this file from the internet:\n";
+       print "http://www.unicode.org/Public/UNIDATA/CompositionExclusions.txt\n";
+       exit( -1 );
+}
+$exclude = array();
+while ( false !== ( $line = fgets( $in ) ) ) {
+       if ( preg_match( '/^([0-9A-F]+)/i', $line, $matches ) ) {
+               $codepoint = $matches[1];
+               $source = codepointToUtf8( hexdec( $codepoint ) );
+               $exclude[$source] = true;
+       }
+}
+fclose( $in );
+
+$in = fopen( "UnicodeData.txt", "rt" );
+if ( !$in ) {
+       print "Can't open UnicodeData.txt for reading.\n";
+       print "If necessary, fetch this file from the internet:\n";
+       print "http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\n";
+       exit( -1 );
+}
+
+$compatibilityDecomp = array();
+$canonicalDecomp = array();
+$canonicalComp = array();
+$combiningClass = array();
+$total = 0;
+$compat = 0;
+$canon = 0;
+
+print "Reading character definitions...\n";
+while ( false !== ( $line = fgets( $in ) ) ) {
+       $columns = explode( ';', $line );
+       $codepoint = $columns[0];
+       $name = $columns[1];
+       $canonicalCombiningClass = $columns[3];
+       $decompositionMapping = $columns[5];
+
+       $source = codepointToUtf8( hexdec( $codepoint ) );
+
+       if ( $canonicalCombiningClass != 0 ) {
+               $combiningClass[$source] = intval( $canonicalCombiningClass );
+       }
+
+       if ( $decompositionMapping === '' ) continue;
+       if ( preg_match( '/^<(.+)> (.*)$/', $decompositionMapping, $matches ) ) {
+               # Compatibility decomposition
+               $canonical = false;
+               $decompositionMapping = $matches[2];
+               $compat++;
+       } else {
+               $canonical = true;
+               $canon++;
+       }
+       $total++;
+       $dest = hexSequenceToUtf8( $decompositionMapping );
+
+       $compatibilityDecomp[$source] = $dest;
+       if ( $canonical ) {
+               $canonicalDecomp[$source] = $dest;
+               if ( empty( $exclude[$source] ) ) {
+                       $canonicalComp[$dest] = $source;
+               }
+       }
+       #print "$codepoint | $canonicalCombiningClasses | $decompositionMapping\n";
+}
+fclose( $in );
+
+print "Recursively expanding canonical mappings...\n";
+$changed = 42;
+$pass = 1;
+while ( $changed > 0 ) {
+       print "pass $pass\n";
+       $changed = 0;
+       foreach ( $canonicalDecomp as $source => $dest ) {
+               $newDest = preg_replace_callback(
+                       '/([\xc0-\xff][\x80-\xbf]+)/',
+                       'callbackCanonical',
+                       $dest );
+               if ( $newDest === $dest ) continue;
+               $changed++;
+               $canonicalDecomp[$source] = $newDest;
+       }
+       $pass++;
+}
+
+print "Recursively expanding compatibility mappings...\n";
+$changed = 42;
+$pass = 1;
+while ( $changed > 0 ) {
+       print "pass $pass\n";
+       $changed = 0;
+       foreach ( $compatibilityDecomp as $source => $dest ) {
+               $newDest = preg_replace_callback(
+                       '/([\xc0-\xff][\x80-\xbf]+)/',
+                       'callbackCompat',
+                       $dest );
+               if ( $newDest === $dest ) continue;
+               $changed++;
+               $compatibilityDecomp[$source] = $newDest;
+       }
+       $pass++;
+}
+
+print "$total decomposition mappings ($canon canonical, $compat compatibility)\n";
+
+$out = fopen( "UtfNormalData.inc", "wt" );
+if ( $out ) {
+       $serCombining = escapeSingleString( serialize( $combiningClass ) );
+       $serComp = escapeSingleString( serialize( $canonicalComp ) );
+       $serCanon = escapeSingleString( serialize( $canonicalDecomp ) );
+       $serCheckNFC = escapeSingleString( serialize( $checkNFC ) );
+       $outdata = "<" . "?php
+/**
+ * This file was automatically generated -- do not edit!
+ * Run UtfNormalGenerate.php to create this file again (make clean && make)
+ *
+ * @file
+ */
+// @codingStandardsIgnoreFile
+
+UtfNormal::\$utfCombiningClass = unserialize( '$serCombining' );
+UtfNormal::\$utfCanonicalComp = unserialize( '$serComp' );
+UtfNormal::\$utfCanonicalDecomp = unserialize( '$serCanon' );
+UtfNormal::\$utfCheckNFC = unserialize( '$serCheckNFC' );
+\n";
+       fputs( $out, $outdata );
+       fclose( $out );
+       print "Wrote out UtfNormalData.inc\n";
+} else {
+       print "Can't create file UtfNormalData.inc\n";
+       exit( -1 );
+}
+
+$out = fopen( "UtfNormalDataK.inc", "wt" );
+if ( $out ) {
+       $serCompat = escapeSingleString( serialize( $compatibilityDecomp ) );
+       $outdata = "<" . "?php
+/**
+ * This file was automatically generated -- do not edit!
+ * Run UtfNormalGenerate.php to create this file again (make clean && make)
+ *
+ * @file
+ */
+// @codingStandardsIgnoreFile
+
+UtfNormal::\$utfCompatibilityDecomp = unserialize( '$serCompat' );
+\n";
+       fputs( $out, $outdata );
+       fclose( $out );
+       print "Wrote out UtfNormalDataK.inc\n";
+       exit( 0 );
+} else {
+       print "Can't create file UtfNormalDataK.inc\n";
+       exit( -1 );
+}
+
+# ---------------
+
+function callbackCanonical( $matches ) {
+       // @codingStandardsIgnoreStart MediaWiki.NamingConventions.ValidGlobalName.wgPrefix
+       global $canonicalDecomp;
+       // @codingStandardsIgnoreEnd
+
+       if ( isset( $canonicalDecomp[$matches[1]] ) ) {
+               return $canonicalDecomp[$matches[1]];
+       }
+
+       return $matches[1];
+}
+
+function callbackCompat( $matches ) {
+       // @codingStandardsIgnoreStart MediaWiki.NamingConventions.ValidGlobalName.wgPrefix
+       global $compatibilityDecomp;
+       // @codingStandardsIgnoreEnd
+
+       if ( isset( $compatibilityDecomp[$matches[1]] ) ) {
+               return $compatibilityDecomp[$matches[1]];
+       }
+
+       return $matches[1];
+}
diff --git a/includes/libs/normal/UtfNormalMemStress.php b/includes/libs/normal/UtfNormalMemStress.php
new file mode 100644 (file)
index 0000000..f133e4d
--- /dev/null
@@ -0,0 +1,107 @@
+<?php
+/**
+ * Approximate benchmark for some basic operations.
+ * Runs large chunks of text through cleanup with a lowish memory limit,
+ * to test regression on mem usage (bug 28146)
+ *
+ * Copyright © 2004-2011 Brion Vibber <brion@wikimedia.org>
+ * https://www.mediawiki.org/
+ *
+ * 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 UtfNormal
+ */
+
+if ( PHP_SAPI != 'cli' ) {
+       die( "Run me from the command line please.\n" );
+}
+
+if ( isset( $_SERVER['argv'] ) && in_array( '--icu', $_SERVER['argv'] ) ) {
+       dl( 'php_utfnormal.so' );
+}
+
+require_once 'UtfNormalDefines.php';
+require_once 'UtfNormalUtil.php';
+require_once 'UtfNormal.php';
+
+define( 'BENCH_CYCLES', 1 );
+define( 'BIGSIZE', 1024 * 1024 * 10 ); // 10m
+ini_set( 'memory_limit', BIGSIZE + 120 * 1024 * 1024 );
+
+$testfiles = array(
+       'testdata/washington.txt' => 'English text',
+       'testdata/berlin.txt' => 'German text',
+       'testdata/bulgakov.txt' => 'Russian text',
+       'testdata/tokyo.txt' => 'Japanese text',
+       'testdata/young.txt' => 'Korean text'
+);
+$normalizer = new UtfNormal;
+UtfNormal::loadData();
+foreach ( $testfiles as $file => $desc ) {
+       benchmarkTest( $normalizer, $file, $desc );
+}
+
+# -------
+
+function benchmarkTest( &$u, $filename, $desc ) {
+       print "Testing $filename ($desc)...\n";
+       $data = file_get_contents( $filename );
+       $all = $data;
+       while ( strlen( $all ) < BIGSIZE ) {
+               $all .= $all;
+       }
+       $data = $all;
+       echo "Data is " . strlen( $data ) . " bytes.\n";
+       $forms = array(
+               'quickIsNFCVerify',
+               'cleanUp',
+       );
+
+       foreach ( $forms as $form ) {
+               if ( is_array( $form ) ) {
+                       $str = $data;
+                       foreach ( $form as $step ) {
+                               $str = benchmarkForm( $u, $str, $step );
+                       }
+               } else {
+                       benchmarkForm( $u, $data, $form );
+               }
+       }
+}
+
+function benchmarkForm( &$u, &$data, $form ) {
+       #$start = microtime( true );
+       for ( $i = 0; $i < BENCH_CYCLES; $i++ ) {
+               $start = microtime( true );
+               $out = $u->$form( $data, UtfNormal::$utfCanonicalDecomp );
+               $deltas[] = ( microtime( true ) - $start );
+       }
+       #$delta = (microtime( true ) - $start) / BENCH_CYCLES;
+       sort( $deltas );
+       $delta = $deltas[0]; # Take shortest time
+
+       $rate = intval( strlen( $data ) / $delta );
+       $same = ( 0 == strcmp( $data, $out ) );
+
+       printf( " %20s %6.1fms %12s bytes/s (%s)\n",
+               $form,
+               $delta * 1000.0,
+               number_format( $rate ),
+               ( $same ? 'no change' : 'changed' ) );
+
+       return $out;
+}
diff --git a/includes/libs/normal/UtfNormalTest.php b/includes/libs/normal/UtfNormalTest.php
new file mode 100644 (file)
index 0000000..10cd0f0
--- /dev/null
@@ -0,0 +1,257 @@
+<?php
+/**
+ * Implements the conformance test at:
+ * http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
+ *
+ * Copyright © 2004 Brion Vibber <brion@pobox.com>
+ * https://www.mediawiki.org/
+ *
+ * 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 UtfNormal
+ */
+
+if ( PHP_SAPI != 'cli' ) {
+       die( "Run me from the command line please.\n" );
+}
+
+$verbose = true;
+#define( 'PRETTY_UTF8', true );
+
+if ( defined( 'PRETTY_UTF8' ) ) {
+       function pretty( $string ) {
+               return strtoupper( bin2hex( $string ) );
+       }
+} else {
+       /**
+        * @ignore
+        * @param string $string
+        * @return string
+        */
+       function pretty( $string ) {
+               return strtoupper( utf8ToHexSequence( $string ) );
+       }
+}
+
+if ( isset( $_SERVER['argv'] ) && in_array( '--icu', $_SERVER['argv'] ) ) {
+       dl( 'php_utfnormal.so' );
+}
+
+require_once 'UtfNormalDefines.php';
+require_once 'UtfNormalUtil.php';
+require_once 'UtfNormal.php';
+
+$in = fopen( "NormalizationTest.txt", "rt" );
+if ( !$in ) {
+       print "Couldn't open NormalizationTest.txt -- can't run tests.\n";
+       print "If necessary, manually download this file. It can be obtained at\n";
+       print "http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt";
+       exit( -1 );
+}
+
+$normalizer = new UtfNormal;
+
+$total = 0;
+$success = 0;
+$failure = 0;
+$ok = true;
+$testedChars = array();
+
+while ( false !== ( $line = fgets( $in ) ) ) {
+       list( $data, $comment ) = explode( '#', $line );
+       if ( $data === '' ) continue;
+       $matches = array();
+       if ( preg_match( '/@Part([\d])/', $data, $matches ) ) {
+               if ( $matches[1] > 0 ) {
+                       $ok = reportResults( $total, $success, $failure ) && $ok;
+               }
+               print "Part {$matches[1]}: $comment";
+               continue;
+       }
+
+       $columns = array_map( "hexSequenceToUtf8", explode( ";", $data ) );
+       array_unshift( $columns, '' );
+
+       $testedChars[$columns[1]] = true;
+       $total++;
+       if ( testNormals( $normalizer, $columns, $comment, $verbose ) ) {
+               $success++;
+       } else {
+               $failure++;
+               # print "FAILED: $comment";
+       }
+       if ( $total % 100 == 0 ) print "$total ";
+}
+fclose( $in );
+
+$ok = reportResults( $total, $success, $failure ) && $ok;
+
+$in = fopen( "UnicodeData.txt", "rt" );
+if ( !$in ) {
+       print "Can't open UnicodeData.txt for reading.\n";
+       print "If necessary, fetch this file from the internet:\n";
+       print "http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\n";
+       exit( -1 );
+}
+print "Now testing invariants...\n";
+
+while ( false !== ( $line = fgets( $in ) ) ) {
+       $cols = explode( ';', $line );
+       $char = codepointToUtf8( hexdec( $cols[0] ) );
+       $desc = $cols[0] . ": " . $cols[1];
+       if ( $char < "\x20" || $char >= UTF8_SURROGATE_FIRST && $char <= UTF8_SURROGATE_LAST ) {
+               # Can't check NULL with the ICU plugin, as null bytes fail in C land.
+               # Skip other control characters, as we strip them for XML safety.
+               # Surrogates are illegal on their own or in UTF-8, ignore.
+               continue;
+       }
+       if ( empty( $testedChars[$char] ) ) {
+               $total++;
+               if ( testInvariant( $normalizer, $char, $desc, $verbose ) ) {
+                       $success++;
+               } else {
+                       $failure++;
+               }
+               if ( $total % 100 == 0 ) print "$total ";
+       }
+}
+fclose( $in );
+
+$ok = reportResults( $total, $success, $failure ) && $ok;
+
+if ( $ok ) {
+       print "TEST SUCCEEDED!\n";
+       exit( 0 );
+} else {
+       print "TEST FAILED!\n";
+       exit( -1 );
+}
+
+## ------
+
+function reportResults( &$total, &$success, &$failure ) {
+       $percSucc = intval( $success * 100 / $total );
+       $percFail = intval( $failure * 100 / $total );
+       print "\n";
+       print "$success tests successful ($percSucc%)\n";
+       print "$failure tests failed ($percFail%)\n\n";
+       $ok = ( $success > 0 && $failure == 0 );
+       $total = 0;
+       $success = 0;
+       $failure = 0;
+
+       return $ok;
+}
+
+function testNormals( &$u, $c, $comment, $verbose, $reportFailure = false ) {
+       $result = testNFC( $u, $c, $comment, $reportFailure );
+       $result = testNFD( $u, $c, $comment, $reportFailure ) && $result;
+       $result = testNFKC( $u, $c, $comment, $reportFailure ) && $result;
+       $result = testNFKD( $u, $c, $comment, $reportFailure ) && $result;
+       $result = testCleanUp( $u, $c, $comment, $reportFailure ) && $result;
+
+       if ( $verbose && !$result && !$reportFailure ) {
+               print $comment;
+               testNormals( $u, $c, $comment, $verbose, true );
+       }
+
+       return $result;
+}
+
+function verbosify( $a, $b, $col, $form, $verbose ) {
+       #$result = ($a === $b);
+       $result = ( strcmp( $a, $b ) == 0 );
+       if ( $verbose ) {
+               $aa = pretty( $a );
+               $bb = pretty( $b );
+               $ok = $result ? "succeed" : " failed";
+               $eq = $result ? "==" : "!=";
+               print "  $ok $form c$col '$aa' $eq '$bb'\n";
+       }
+
+       return $result;
+}
+
+function testNFC( &$u, $c, $comment, $verbose ) {
+       $result = verbosify( $c[2], $u->toNFC( $c[1] ), 1, 'NFC', $verbose );
+       $result = verbosify( $c[2], $u->toNFC( $c[2] ), 2, 'NFC', $verbose ) && $result;
+       $result = verbosify( $c[2], $u->toNFC( $c[3] ), 3, 'NFC', $verbose ) && $result;
+       $result = verbosify( $c[4], $u->toNFC( $c[4] ), 4, 'NFC', $verbose ) && $result;
+       $result = verbosify( $c[4], $u->toNFC( $c[5] ), 5, 'NFC', $verbose ) && $result;
+
+       return $result;
+}
+
+function testCleanUp( &$u, $c, $comment, $verbose ) {
+       $x = $c[1];
+       $result = verbosify( $c[2], $u->cleanUp( $x ), 1, 'cleanUp', $verbose );
+       $x = $c[2];
+       $result = verbosify( $c[2], $u->cleanUp( $x ), 2, 'cleanUp', $verbose ) && $result;
+       $x = $c[3];
+       $result = verbosify( $c[2], $u->cleanUp( $x ), 3, 'cleanUp', $verbose ) && $result;
+       $x = $c[4];
+       $result = verbosify( $c[4], $u->cleanUp( $x ), 4, 'cleanUp', $verbose ) && $result;
+       $x = $c[5];
+       $result = verbosify( $c[4], $u->cleanUp( $x ), 5, 'cleanUp', $verbose ) && $result;
+
+       return $result;
+}
+
+function testNFD( &$u, $c, $comment, $verbose ) {
+       $result = verbosify( $c[3], $u->toNFD( $c[1] ), 1, 'NFD', $verbose );
+       $result = verbosify( $c[3], $u->toNFD( $c[2] ), 2, 'NFD', $verbose ) && $result;
+       $result = verbosify( $c[3], $u->toNFD( $c[3] ), 3, 'NFD', $verbose ) && $result;
+       $result = verbosify( $c[5], $u->toNFD( $c[4] ), 4, 'NFD', $verbose ) && $result;
+       $result = verbosify( $c[5], $u->toNFD( $c[5] ), 5, 'NFD', $verbose ) && $result;
+
+       return $result;
+}
+
+function testNFKC( &$u, $c, $comment, $verbose ) {
+       $result = verbosify( $c[4], $u->toNFKC( $c[1] ), 1, 'NFKC', $verbose );
+       $result = verbosify( $c[4], $u->toNFKC( $c[2] ), 2, 'NFKC', $verbose ) && $result;
+       $result = verbosify( $c[4], $u->toNFKC( $c[3] ), 3, 'NFKC', $verbose ) && $result;
+       $result = verbosify( $c[4], $u->toNFKC( $c[4] ), 4, 'NFKC', $verbose ) && $result;
+       $result = verbosify( $c[4], $u->toNFKC( $c[5] ), 5, 'NFKC', $verbose ) && $result;
+
+       return $result;
+}
+
+function testNFKD( &$u, $c, $comment, $verbose ) {
+       $result = verbosify( $c[5], $u->toNFKD( $c[1] ), 1, 'NFKD', $verbose );
+       $result = verbosify( $c[5], $u->toNFKD( $c[2] ), 2, 'NFKD', $verbose ) && $result;
+       $result = verbosify( $c[5], $u->toNFKD( $c[3] ), 3, 'NFKD', $verbose ) && $result;
+       $result = verbosify( $c[5], $u->toNFKD( $c[4] ), 4, 'NFKD', $verbose ) && $result;
+       $result = verbosify( $c[5], $u->toNFKD( $c[5] ), 5, 'NFKD', $verbose ) && $result;
+
+       return $result;
+}
+
+function testInvariant( &$u, $char, $desc, $verbose, $reportFailure = false ) {
+       $result = verbosify( $char, $u->toNFC( $char ), 1, 'NFC', $reportFailure );
+       $result = verbosify( $char, $u->toNFD( $char ), 1, 'NFD', $reportFailure ) && $result;
+       $result = verbosify( $char, $u->toNFKC( $char ), 1, 'NFKC', $reportFailure ) && $result;
+       $result = verbosify( $char, $u->toNFKD( $char ), 1, 'NFKD', $reportFailure ) && $result;
+       $result = verbosify( $char, $u->cleanUp( $char ), 1, 'cleanUp', $reportFailure ) && $result;
+
+       if ( $verbose && !$result && !$reportFailure ) {
+               print $desc;
+               testInvariant( $u, $char, $desc, $verbose, true );
+       }
+
+       return $result;
+}
diff --git a/includes/libs/normal/UtfNormalTest2.php b/includes/libs/normal/UtfNormalTest2.php
new file mode 100644 (file)
index 0000000..53e68c2
--- /dev/null
@@ -0,0 +1,275 @@
+#!/usr/bin/env php
+<?php
+/**
+ * Other tests for the unicode normalization module.
+ *
+ * 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 UtfNormal
+ */
+
+if ( PHP_SAPI != 'cli' ) {
+       die( "Run me from the command line please.\n" );
+}
+
+// From http://unicode.org/Public/UNIDATA/NormalizationTest.txt
+$file = "NormalizationTest.txt";
+
+// Anything after this character is a comment
+define ( 'COMMENT', '#' );
+
+// Semicolons are used to separate the columns
+define ( 'SEPARATOR', ';' );
+
+$f = fopen( $file, "r" );
+
+/**
+ * The following section will be used for testing different normalization methods.
+ * - Pure PHP
+ * ~ no assertion errors
+ * ~ 6.25 minutes
+ * - php_utfnormal.so or intl extension: both are wrappers around
+ * libicu so we list the version of libicu when making the
+ * comparison
+ * - libicu Ubuntu 3.8.1-3ubuntu1.1 php 5.2.6-3ubuntu4.5
+ * ~ 2200 assertion errors
+ * ~ 5 seconds
+ * ~ output: http://paste2.org/p/921566
+ * - libicu Ubuntu 4.2.1-3 php 5.3.2-1ubuntu4.2
+ * ~ 1384 assertion errors
+ * ~ 15 seconds
+ * ~ output: http://paste2.org/p/921435
+ * - libicu Debian 4.4.1-5 php 5.3.2-1ubuntu4.2
+ * ~ no assertion errors
+ * ~ 13 seconds
+ * - Tests comparing pure PHP output with libicu output were added
+ * later and slow down the runtime.
+ */
+
+require_once './UtfNormal.php';
+function normalize_form_c( $c ) {
+       return UtfNormal::toNFC( $c );
+}
+
+function normalize_form_d( $c ) {
+       return UtfNormal::toNFD( $c );
+}
+
+function normalize_form_kc( $c ) {
+       return UtfNormal::toNFKC( $c );
+}
+
+function normalize_form_kd( $c ) {
+       return UtfNormal::toNFKD( $c );
+}
+
+/**
+ * This set of functions is only useful if youve added a param to the
+ * following functions to force pure PHP usage.  I decided not to
+ * commit that code since might produce a slowdown in the UTF
+ * normalization code just for the sake of these tests. -- hexmode
+ * @return string
+ */
+function normalize_form_c_php( $c ) {
+       return UtfNormal::toNFC( $c, "php" );
+}
+
+function normalize_form_d_php( $c ) {
+       return UtfNormal::toNFD( $c, "php" );
+}
+
+function normalize_form_kc_php( $c ) {
+       return UtfNormal::toNFKC( $c, "php" );
+}
+
+function normalize_form_kd_php( $c ) {
+       return UtfNormal::toNFKD( $c, "php" );
+}
+
+assert_options( ASSERT_ACTIVE, 1 );
+assert_options( ASSERT_WARNING, 0 );
+assert_options( ASSERT_QUIET_EVAL, 1 );
+assert_options( ASSERT_CALLBACK, 'my_assert' );
+
+function my_assert( $file, $line, $code ) {
+       // @codingStandardsIgnoreStart MediaWiki.NamingConventions.ValidGlobalName.wgPrefix
+       global $col, $lineNo;
+       // @codingStandardsIgnoreEnd
+
+       echo "Assertion that '$code' failed on line $lineNo ($col[5])\n";
+}
+
+$count = 0;
+$lineNo = 0;
+if ( $f !== false ) {
+       while ( ( $col = getRow( $f ) ) !== false ) {
+               $lineNo++;
+
+               if ( count( $col ) == 6 ) {
+                       $count++;
+                       if ( $count % 100 === 0 ) echo "Count: $count\n";
+               } else {
+                       continue;
+               }
+
+               # verify that the pure PHP version is correct
+               $NFCc1 = normalize_form_c( $col[0] );
+               $NFCc1p = normalize_form_c_php( $col[0] );
+               assert( '$NFCc1 === $NFCc1p' );
+               $NFCc2 = normalize_form_c( $col[1] );
+               $NFCc2p = normalize_form_c_php( $col[1] );
+               assert( '$NFCc2 === $NFCc2p' );
+               $NFCc3 = normalize_form_c( $col[2] );
+               $NFCc3p = normalize_form_c_php( $col[2] );
+               assert( '$NFCc3 === $NFCc3p' );
+               $NFCc4 = normalize_form_c( $col[3] );
+               $NFCc4p = normalize_form_c_php( $col[3] );
+               assert( '$NFCc4 === $NFCc4p' );
+               $NFCc5 = normalize_form_c( $col[4] );
+               $NFCc5p = normalize_form_c_php( $col[4] );
+               assert( '$NFCc5 === $NFCc5p' );
+
+               $NFDc1 = normalize_form_d( $col[0] );
+               $NFDc1p = normalize_form_d_php( $col[0] );
+               assert( '$NFDc1 === $NFDc1p' );
+               $NFDc2 = normalize_form_d( $col[1] );
+               $NFDc2p = normalize_form_d_php( $col[1] );
+               assert( '$NFDc2 === $NFDc2p' );
+               $NFDc3 = normalize_form_d( $col[2] );
+               $NFDc3p = normalize_form_d_php( $col[2] );
+               assert( '$NFDc3 === $NFDc3p' );
+               $NFDc4 = normalize_form_d( $col[3] );
+               $NFDc4p = normalize_form_d_php( $col[3] );
+               assert( '$NFDc4 === $NFDc4p' );
+               $NFDc5 = normalize_form_d( $col[4] );
+               $NFDc5p = normalize_form_d_php( $col[4] );
+               assert( '$NFDc5 === $NFDc5p' );
+
+               $NFKDc1 = normalize_form_kd( $col[0] );
+               $NFKDc1p = normalize_form_kd_php( $col[0] );
+               assert( '$NFKDc1 === $NFKDc1p' );
+               $NFKDc2 = normalize_form_kd( $col[1] );
+               $NFKDc2p = normalize_form_kd_php( $col[1] );
+               assert( '$NFKDc2 === $NFKDc2p' );
+               $NFKDc3 = normalize_form_kd( $col[2] );
+               $NFKDc3p = normalize_form_kd_php( $col[2] );
+               assert( '$NFKDc3 === $NFKDc3p' );
+               $NFKDc4 = normalize_form_kd( $col[3] );
+               $NFKDc4p = normalize_form_kd_php( $col[3] );
+               assert( '$NFKDc4 === $NFKDc4p' );
+               $NFKDc5 = normalize_form_kd( $col[4] );
+               $NFKDc5p = normalize_form_kd_php( $col[4] );
+               assert( '$NFKDc5 === $NFKDc5p' );
+
+               $NFKCc1 = normalize_form_kc( $col[0] );
+               $NFKCc1p = normalize_form_kc_php( $col[0] );
+               assert( '$NFKCc1 === $NFKCc1p' );
+               $NFKCc2 = normalize_form_kc( $col[1] );
+               $NFKCc2p = normalize_form_kc_php( $col[1] );
+               assert( '$NFKCc2 === $NFKCc2p' );
+               $NFKCc3 = normalize_form_kc( $col[2] );
+               $NFKCc3p = normalize_form_kc_php( $col[2] );
+               assert( '$NFKCc3 === $NFKCc3p' );
+               $NFKCc4 = normalize_form_kc( $col[3] );
+               $NFKCc4p = normalize_form_kc_php( $col[3] );
+               assert( '$NFKCc4 === $NFKCc4p' );
+               $NFKCc5 = normalize_form_kc( $col[4] );
+               $NFKCc5p = normalize_form_kc_php( $col[4] );
+               assert( '$NFKCc5 === $NFKCc5p' );
+
+               # c2 ==  NFC(c1) ==      NFC(c2) ==      NFC(c3)
+               assert( '$col[1] === $NFCc1' );
+               assert( '$col[1] === $NFCc2' );
+               assert( '$col[1] === $NFCc3' );
+
+               # c4 ==  NFC(c4) ==      NFC(c5)
+               assert( '$col[3] === $NFCc4' );
+               assert( '$col[3] === $NFCc5' );
+
+               # c3 ==  NFD(c1) ==      NFD(c2) ==      NFD(c3)
+               assert( '$col[2] === $NFDc1' );
+               assert( '$col[2] === $NFDc2' );
+               assert( '$col[2] === $NFDc3' );
+
+               # c5 ==  NFD(c4) ==      NFD(c5)
+               assert( '$col[4] === $NFDc4' );
+               assert( '$col[4] === $NFDc5' );
+
+               # c4 == NFKC(c1) == NFKC(c2) == NFKC(c3) == NFKC(c4) == NFKC(c5)
+               assert( '$col[3] === $NFKCc1' );
+               assert( '$col[3] === $NFKCc2' );
+               assert( '$col[3] === $NFKCc3' );
+               assert( '$col[3] === $NFKCc4' );
+               assert( '$col[3] === $NFKCc5' );
+
+               # c5 == NFKD(c1) == NFKD(c2) == NFKD(c3) == NFKD(c4) == NFKD(c5)
+               assert( '$col[4] === $NFKDc1' );
+               assert( '$col[4] === $NFKDc2' );
+               assert( '$col[4] === $NFKDc3' );
+               assert( '$col[4] === $NFKDc4' );
+               assert( '$col[4] === $NFKDc5' );
+       }
+}
+echo "done.\n";
+
+// Compare against http://en.wikipedia.org/wiki/UTF-8#Description
+function unichr( $c ) {
+       if ( $c <= 0x7F ) {
+               return chr( $c );
+       } elseif ( $c <= 0x7FF ) {
+               return chr( 0xC0 | $c >> 6 ) . chr( 0x80 | $c & 0x3F );
+       } elseif ( $c <= 0xFFFF ) {
+               return chr( 0xE0 | $c >> 12 ) . chr( 0x80 | $c >> 6 & 0x3F )
+               . chr( 0x80 | $c & 0x3F );
+       } elseif ( $c <= 0x10FFFF ) {
+               return chr( 0xF0 | $c >> 18 ) . chr( 0x80 | $c >> 12 & 0x3F )
+               . chr( 0x80 | $c >> 6 & 0x3F )
+               . chr( 0x80 | $c & 0x3F );
+       } else {
+               return false;
+       }
+}
+
+function unistr( $c ) {
+       return implode( "", array_map( "unichr", array_map( "hexdec", explode( " ", $c ) ) ) );
+}
+
+function getRow( $f ) {
+       $row = fgets( $f );
+       if ( $row === false ) return false;
+       $row = rtrim( $row );
+       $pos = strpos( $row, COMMENT );
+       $pos2 = strpos( $row, ")" );
+       if ( $pos === 0 ) return array( $row );
+       $c = "";
+
+       if ( $pos ) {
+               if ( $pos2 ) $c = substr( $row, $pos2 + 2 );
+               else      $c = substr( $row, $pos );
+               $row = substr( $row, 0, $pos );
+       }
+
+       $ret = array();
+       foreach ( explode( SEPARATOR, $row ) as $ent ) {
+               if ( trim( $ent ) !== "" ) {
+                       $ret[] = unistr( $ent );
+               }
+       }
+       $ret[] = $c;
+
+       return $ret;
+}
diff --git a/includes/libs/normal/UtfNormalUtil.php b/includes/libs/normal/UtfNormalUtil.php
new file mode 100644 (file)
index 0000000..6c925df
--- /dev/null
@@ -0,0 +1,154 @@
+<?php
+/**
+ * Some of these functions are adapted from places in MediaWiki.
+ * Should probably merge them for consistency.
+ *
+ * Copyright © 2004 Brion Vibber <brion@pobox.com>
+ * https://www.mediawiki.org/
+ *
+ * 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 UtfNormal
+ */
+
+/**
+ * Return UTF-8 sequence for a given Unicode code point.
+ * May die if fed out of range data.
+ *
+ * @param $codepoint Integer:
+ * @return String
+ * @public
+ */
+function codepointToUtf8( $codepoint ) {
+       if ( $codepoint < 0x80 ) {
+               return chr( $codepoint );
+       }
+
+       if ( $codepoint < 0x800 ) {
+               return chr( $codepoint >> 6 & 0x3f | 0xc0 ) .
+                       chr( $codepoint & 0x3f | 0x80 );
+       }
+
+       if ( $codepoint < 0x10000 ) {
+               return chr( $codepoint >> 12 & 0x0f | 0xe0 ) .
+                       chr( $codepoint >> 6 & 0x3f | 0x80 ) .
+                       chr( $codepoint & 0x3f | 0x80 );
+       }
+
+       if ( $codepoint < 0x110000 ) {
+               return chr( $codepoint >> 18 & 0x07 | 0xf0 ) .
+                       chr( $codepoint >> 12 & 0x3f | 0x80 ) .
+                       chr( $codepoint >> 6 & 0x3f | 0x80 ) .
+                       chr( $codepoint & 0x3f | 0x80 );
+       }
+
+       echo "Asked for code outside of range ($codepoint)\n";
+       die( -1 );
+}
+
+/**
+ * Take a series of space-separated hexadecimal numbers representing
+ * Unicode code points and return a UTF-8 string composed of those
+ * characters. Used by UTF-8 data generation and testing routines.
+ *
+ * @param $sequence String
+ * @return String
+ * @private
+ */
+function hexSequenceToUtf8( $sequence ) {
+       $utf = '';
+       foreach ( explode( ' ', $sequence ) as $hex ) {
+               $n = hexdec( $hex );
+               $utf .= codepointToUtf8( $n );
+       }
+
+       return $utf;
+}
+
+/**
+ * Take a UTF-8 string and return a space-separated series of hex
+ * numbers representing Unicode code points. For debugging.
+ *
+ * @param string $str UTF-8 string.
+ * @return string
+ * @private
+ */
+function utf8ToHexSequence( $str ) {
+       $buf = '';
+       foreach ( preg_split( '//u', $str, -1, PREG_SPLIT_NO_EMPTY ) as $cp ) {
+               $buf .= sprintf( '%04x ', utf8ToCodepoint( $cp ) );
+       }
+
+       return rtrim( $buf );
+}
+
+/**
+ * Determine the Unicode codepoint of a single-character UTF-8 sequence.
+ * Does not check for invalid input data.
+ *
+ * @param $char String
+ * @return Integer
+ * @public
+ */
+function utf8ToCodepoint( $char ) {
+       # Find the length
+       $z = ord( $char[0] );
+       if ( $z & 0x80 ) {
+               $length = 0;
+               while ( $z & 0x80 ) {
+                       $length++;
+                       $z <<= 1;
+               }
+       } else {
+               $length = 1;
+       }
+
+       if ( $length != strlen( $char ) ) {
+               return false;
+       }
+
+       if ( $length == 1 ) {
+               return ord( $char );
+       }
+
+       # Mask off the length-determining bits and shift back to the original location
+       $z &= 0xff;
+       $z >>= $length;
+
+       # Add in the free bits from subsequent bytes
+       for ( $i = 1; $i < $length; $i++ ) {
+               $z <<= 6;
+               $z |= ord( $char[$i] ) & 0x3f;
+       }
+
+       return $z;
+}
+
+/**
+ * Escape a string for inclusion in a PHP single-quoted string literal.
+ *
+ * @param string $string string to be escaped.
+ * @return String: escaped string.
+ * @public
+ */
+function escapeSingleString( $string ) {
+       return strtr( $string,
+               array(
+                       '\\' => '\\\\',
+                       '\'' => '\\\''
+               ) );
+}
diff --git a/includes/libs/replacers/DoubleReplacer.php b/includes/libs/replacers/DoubleReplacer.php
new file mode 100644 (file)
index 0000000..fed023b
--- /dev/null
@@ -0,0 +1,43 @@
+<?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
+ */
+
+/**
+ * Class to perform secondary replacement within each replacement string
+ */
+class DoubleReplacer extends Replacer {
+       /**
+        * @param mixed $from
+        * @param mixed $to
+        * @param int $index
+        */
+       public function __construct( $from, $to, $index = 0 ) {
+               $this->from = $from;
+               $this->to = $to;
+               $this->index = $index;
+       }
+
+       /**
+        * @param array $matches
+        * @return mixed
+        */
+       public function replace( array $matches ) {
+               return str_replace( $this->from, $this->to, $matches[$this->index] );
+       }
+}
diff --git a/includes/libs/replacers/HashtableReplacer.php b/includes/libs/replacers/HashtableReplacer.php
new file mode 100644 (file)
index 0000000..b3c219d
--- /dev/null
@@ -0,0 +1,44 @@
+<?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
+ */
+
+/**
+ * Class to perform replacement based on a simple hashtable lookup
+ */
+class HashtableReplacer extends Replacer {
+       private $table, $index;
+
+       /**
+        * @param array $table
+        * @param int $index
+        */
+       public function __construct( $table, $index = 0 ) {
+               $this->table = $table;
+               $this->index = $index;
+       }
+
+       /**
+        * @param array $matches
+        * @return mixed
+        */
+       public function replace( array $matches ) {
+               return $this->table[$matches[$this->index]];
+       }
+}
+
diff --git a/includes/libs/replacers/RegexlikeReplacer.php b/includes/libs/replacers/RegexlikeReplacer.php
new file mode 100644 (file)
index 0000000..2b1fa74
--- /dev/null
@@ -0,0 +1,46 @@
+<?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
+ */
+
+/**
+ * Class to replace regex matches with a string similar to that used in preg_replace()
+ */
+class RegexlikeReplacer extends Replacer {
+       private $r;
+
+       /**
+        * @param string $r
+        */
+       public function __construct( $r ) {
+               $this->r = $r;
+       }
+
+       /**
+        * @param array $matches
+        * @return string
+        */
+       public function replace( array $matches ) {
+               $pairs = array();
+               foreach ( $matches as $i => $match ) {
+                       $pairs["\$$i"] = $match;
+               }
+
+               return strtr( $this->r, $pairs );
+       }
+}
diff --git a/includes/libs/replacers/Replacer.php b/includes/libs/replacers/Replacer.php
new file mode 100644 (file)
index 0000000..f4850bf
--- /dev/null
@@ -0,0 +1,38 @@
+<?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
+ */
+
+/**
+ * Base class for "replacers", objects used in preg_replace_callback() and
+ * StringUtils::delimiterReplaceCallback()
+ */
+abstract class Replacer {
+       /**
+        * @return array
+        */
+       public function cb() {
+               return array( &$this, 'replace' );
+       }
+
+       /**
+        * @param array $matches
+        * @return string
+        */
+       abstract public function replace( array $matches );
+}
index 34e43f9..03bdf0d 100644 (file)
@@ -88,8 +88,8 @@ class ParsoidVirtualRESTService extends VirtualRESTService {
                                        if ( !isset( $req['body']['html'] ) ) {
                                                throw new Exception( "You must set an 'html' body key for this request" );
                                        }
-                                       if ( isset( $parts[6] ) ) {
-                                               $req['body']['oldid'] = $parts[6];
+                                       if ( isset( $parts[7] ) ) {
+                                               $req['body']['oldid'] = $parts[7];
                                        }
                                } elseif ( $parts[3] == 'wikitext' && $parts[5] == 'html' ) {
                                        if ( !isset( $req['body']['wikitext'] ) ) {
index 46c5515..85a3052 100644 (file)
@@ -385,13 +385,14 @@ class ManualLogEntry extends LogEntryBase {
 
        /**
         * Set extra log parameters.
-        * You can pass params to the log action message
-        * by prefixing the keys with a number and colon.
-        * The numbering should start with number 4, the
-        * first three parameters are hardcoded for every
-        * message. Example:
+        *
+        * You can pass params to the log action message by prefixing the keys with
+        * a number and optional type, using colons to separate the fields. The
+        * numbering should start with number 4, the first three parameters are
+        * hardcoded for every message. Example:
         * $entry->setParameters(
-        *   '4:color' => 'blue',
+        *   '4::color' => 'blue',
+        *   '5:number:count' => 3000,
         *   'animal' => 'dog'
         * );
         *
diff --git a/includes/normal/.gitignore b/includes/normal/.gitignore
deleted file mode 100644 (file)
index 0dea457..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-/CompositionExclusions.txt
-/DerivedNormalizationProps.txt
-/NormalizationCorrections.txt
-/NormalizationTest.txt
-/UTF-8-test.txt
-/UnicodeData.txt
-/testdata
diff --git a/includes/normal/Makefile b/includes/normal/Makefile
deleted file mode 100644 (file)
index 76cb68b..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-.PHONY : all test testutf8 testclean icutest bench icubench clean distclean
-
-## Latest greatest version of Unicode
-## May cause confusion if running test suite from these files
-## when the data was generated from a previous version.
-#BASE=http://www.unicode.org/Public/UNIDATA
-
-# Explicitly using Unicode 6.0
-BASE=http://www.unicode.org/Public/6.0.0/ucd
-
-# Can override to php-cli or php5 or whatever
-PHP=php
-#PHP=php-cli
-
-# Some nice tool to grab URLs with
-FETCH=wget
-#FETCH=fetch
-
-all : UtfNormalData.inc
-
-UtfNormalData.inc : UtfNormalGenerate.php UtfNormalUtil.php UnicodeData.txt CompositionExclusions.txt NormalizationCorrections.txt DerivedNormalizationProps.txt
-       $(PHP) UtfNormalGenerate.php
-
-test : testutf8 UtfNormalTest.php UtfNormalData.inc NormalizationTest.txt
-       $(PHP) UtfNormalTest.php
-
-testutf8 : Utf8Test.php UTF-8-test.txt
-       $(PHP) Utf8Test.php
-
-bench : UtfNormalData.inc testdata/washington.txt testdata/berlin.txt testdata/tokyo.txt testdata/young.txt testdata/bulgakov.txt
-       $(PHP) UtfNormalBench.php
-
-icutest : UtfNormalData.inc NormalizationTest.txt
-       $(PHP) Utf8Test.php --icu
-       $(PHP) UtfNormalTest.php --icu
-
-icubench : UtfNormalData.inc testdata/washington.txt testdata/berlin.txt testdata/tokyo.txt testdata/young.txt testdata/bulgakov.txt
-       $(PHP) UtfNormalBench.php --icu
-
-clean :
-       rm -f UtfNormalData.inc UtfNormalDataK.inc
-
-distclean : clean
-       rm -f CompositionExclusions.txt NormalizationTest.txt NormalizationCorrections.txt UnicodeData.txt DerivedNormalizationProps.txt UTF-8-test.txt
-
-# The Unicode data files...
-CompositionExclusions.txt :
-       $(FETCH) $(BASE)/CompositionExclusions.txt
-
-NormalizationTest.txt :
-       $(FETCH) $(BASE)/NormalizationTest.txt
-
-NormalizationCorrections.txt :
-       $(FETCH) $(BASE)/NormalizationCorrections.txt
-
-DerivedNormalizationProps.txt :
-       $(FETCH) $(BASE)/DerivedNormalizationProps.txt
-
-UnicodeData.txt :
-       $(FETCH) $(BASE)/UnicodeData.txt
-
-UTF-8-test.txt :
-       $(FETCH) http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt
-
-testdata/berlin.txt :
-       mkdir -p testdata && wget -U MediaWiki/test -O testdata/berlin.txt "http://de.wikipedia.org/w/index.php?title=Berlin&oldid=2775712&action=raw"
-
-testdata/washington.txt :
-       mkdir -p testdata && wget -U MediaWiki/test -O testdata/washington.txt "http://en.wikipedia.org/w/index.php?title=Washington%2C_D.C.&oldid=6370218&action=raw"
-
-testdata/tokyo.txt :
-       mkdir -p testdata && wget -U MediaWiki/test -O testdata/tokyo.txt "http://ja.wikipedia.org/w/index.php?title=%E6%9D%B1%E4%BA%AC%E9%83%BD&oldid=940880&action=raw"
-
-testdata/young.txt :
-       mkdir -p testdata && wget -U MediaWiki/test -O testdata/young.txt "http://ko.wikipedia.org/w/index.php?title=%EC%9D%B4%EC%88%98%EC%98%81&oldid=627688&action=raw"
-
-testdata/bulgakov.txt :
-       mkdir -p testdata && wget -U MediaWiki/test -O testdata/bulgakov.txt "http://ru.wikipedia.org/w/index.php?title=%D0%91%D1%83%D0%BB%D0%B3%D0%B0%D0%BA%D0%BE%D0%B2%2C_%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B9_%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B5%D0%B2%D0%B8%D1%87&oldid=17704&action=raw"
diff --git a/includes/normal/README b/includes/normal/README
deleted file mode 100644 (file)
index fa70c63..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-This directory contains some Unicode normalization routines. These routines
-are meant to be reusable in other projects, so I'm not tying them to the
-MediaWiki utility functions.
-
-The main function to care about is UtfNormal::toNFC(); this will convert
-a given UTF-8 string to Normalization Form C if it's not already such.
-The function assumes that the input string is already valid UTF-8; if there
-are corrupt characters this may produce erroneous results.
-
-To also check for illegal characters, use UtfNormal::cleanUp(). This will
-strip illegal UTF-8 sequences and characters that are illegal in XML, and
-if necessary convert to normalization form C.
-
-Performance is kind of stinky in absolute terms, though it should be speedy
-on pure ASCII text. ;) On text that can be determined quickly to already be
-in NFC it's not too awful but it can quickly get uncomfortably slow,
-particularly for Korean text (the hangul decomposition/composition code is
-extra slow).
-
-
-== Regenerating data tables ==
-
-UtfNormalData.inc and UtfNormalDataK.inc are generated from the Unicode
-Character Database by the script UtfNormalGenerate.php. On a *nix system
-'make' should fetch the necessary files and regenerate it if the scripts
-have been changed or you remove it.
-
-
-== Testing ==
-
-'make test' will run the conformance test (UtfNormalTest.php), fetching the
-data from the net if necessary. If it reports failure, something is
-going wrong!
-
-You may have to set up PHPUnit first.
-
-$ pear channel-discover pear.phpunit.de
-$ pear install phpunit/PHPUnit
-
-== Benchmarks ==
-
-Run 'make bench' to download some sample texts from Wikipedia and run some
-cheap benchmarks of some of the functions. Take all numbers with large
-grains of salt.
-
-
-== PHP module extension ==
-
-There's an experimental PHP extension module which wraps the ICU library's
-normalization functions. This is *MUCH* faster than doing this work in pure
-PHP code. This is at https://git.wikimedia.org/summary/mediawiki%2Fextensions%2Fnormal.git.
-It is used by the WMF, which currently runs PHP 5.3.10 on Linux.  It hasn't been
-thoroughly tested on other configurations, but may work.
-
-If the php_normal.so module is loaded in php.ini, the normalization functions
-will automatically use it. If you can't (or don't want to) load it in php.ini,
-you may be able to load it using the dl() function before the inclusion of
-UtfNormal.php, and it will be picked up.
-
diff --git a/includes/normal/RandomTest.php b/includes/normal/RandomTest.php
deleted file mode 100644 (file)
index 0604d7b..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-/**
- * Test feeds random 16-byte strings to both the pure PHP and ICU-based
- * UtfNormal::cleanUp() code paths, and checks to see if there's a
- * difference. Will run forever until it finds one or you kill it.
- *
- * Copyright (C) 2004 Brion Vibber <brion@pobox.com>
- * https://www.mediawiki.org/
- *
- * 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 UtfNormal
- */
-
-if ( PHP_SAPI != 'cli' ) {
-       die( "Run me from the command line please.\n" );
-}
-
-/** */
-require_once 'UtfNormal.php';
-require_once '../diff/DifferenceEngine.php';
-
-dl( 'php_utfnormal.so' );
-
-# mt_srand( 99999 );
-
-function randomString( $length, $nullOk, $ascii = false ) {
-       $out = '';
-       for ( $i = 0; $i < $length; $i++ )
-               $out .= chr( mt_rand( $nullOk ? 0 : 1, $ascii ? 127 : 255 ) );
-
-       return $out;
-}
-
-/* Duplicate of the cleanUp() path for ICU usage */
-function donorm( $str ) {
-       # We exclude a few chars that ICU would not.
-       $str = preg_replace( '/[\x00-\x08\x0b\x0c\x0e-\x1f]/', UTF8_REPLACEMENT, $str );
-       $str = str_replace( UTF8_FFFE, UTF8_REPLACEMENT, $str );
-       $str = str_replace( UTF8_FFFF, UTF8_REPLACEMENT, $str );
-
-       # UnicodeString constructor fails if the string ends with a head byte.
-       # Add a junk char at the end, we'll strip it off
-       return rtrim( utf8_normalize( $str . "\x01", UtfNormal::UNORM_NFC ), "\x01" );
-}
-
-function showDiffs( $a, $b ) {
-       $ota = explode( "\n", str_replace( "\r\n", "\n", $a ) );
-       $nta = explode( "\n", str_replace( "\r\n", "\n", $b ) );
-
-       $diffs = new Diff( $ota, $nta );
-       $formatter = new TableDiffFormatter();
-       $funky = $formatter->format( $diffs );
-       $matches = array();
-       preg_match_all( '/<(?:ins|del) class="diffchange">(.*?)<\/(?:ins|del)>/', $funky, $matches );
-       foreach ( $matches[1] as $bit ) {
-               $hex = bin2hex( $bit );
-               echo "\t$hex\n";
-       }
-}
-
-$size = 16;
-$n = 0;
-while ( true ) {
-       $n++;
-       echo "$n\n";
-
-       $str = randomString( $size, true );
-       $clean = UtfNormal::cleanUp( $str );
-       $norm = donorm( $str );
-
-       echo strlen( $clean ) . ", " . strlen( $norm );
-       if ( $clean == $norm ) {
-               echo " (match)\n";
-       } else {
-               echo " (FAIL)\n";
-               echo "\traw: " . bin2hex( $str ) . "\n" .
-                       "\tphp: " . bin2hex( $clean ) . "\n" .
-                       "\ticu: " . bin2hex( $norm ) . "\n";
-               echo "\n\tdiffs:\n";
-               showDiffs( $clean, $norm );
-               die();
-       }
-
-       $str = '';
-       $clean = '';
-       $norm = '';
-}
diff --git a/includes/normal/Utf8Test.php b/includes/normal/Utf8Test.php
deleted file mode 100644 (file)
index f4acc1e..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-/**
- * Runs the UTF-8 decoder test at:
- * http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt
- *
- * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * https://www.mediawiki.org/
- *
- * 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 UtfNormal
- */
-
-/** */
-
-if ( PHP_SAPI != 'cli' ) {
-       die( "Run me from the command line please.\n" );
-}
-
-require_once 'UtfNormalDefines.php';
-require_once 'UtfNormalUtil.php';
-require_once 'UtfNormal.php';
-mb_internal_encoding( "utf-8" );
-
-$verbose = false;
-#$verbose = true;
-
-$in = fopen( "UTF-8-test.txt", "rt" );
-if ( !$in ) {
-       print "Couldn't open UTF-8-test.txt -- can't run tests.\n";
-       print "If necessary, manually download this file. It can be obtained at\n";
-       print "http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt\n";
-       exit( -1 );
-}
-
-$columns = 0;
-while ( false !== ( $line = fgets( $in ) ) ) {
-       $matches = array();
-       if ( preg_match( '/^(Here come the tests:\s*)\|$/', $line, $matches ) ) {
-               $columns = strpos( $line, '|' );
-               break;
-       }
-}
-
-if ( !$columns ) {
-       print "Something seems to be wrong; couldn't extract line length.\n";
-       print "Check that UTF-8-test.txt was downloaded correctly from\n";
-       print "http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt\n";
-       exit( -1 );
-}
-
-# print "$columns\n";
-
-$ignore = array(
-       # These two lines actually seem to be corrupt
-       '2.1.1', '2.2.1' );
-
-$exceptions = array(
-       # Tests that should mark invalid characters due to using long
-       # sequences beyond what is now considered legal.
-       '2.1.5', '2.1.6', '2.2.4', '2.2.5', '2.2.6', '2.3.5',
-
-       # Literal 0xffff, which is illegal
-       '2.2.3' );
-
-$longTests = array(
-       # These tests span multiple lines
-       '3.1.9', '3.2.1', '3.2.2', '3.2.3', '3.2.4', '3.2.5',
-       '3.4' );
-
-# These tests are not in proper subsections
-$sectionTests = array( '3.4' );
-
-$section = null;
-$test = '';
-$failed = 0;
-$success = 0;
-$total = 0;
-while ( false !== ( $line = fgets( $in ) ) ) {
-       $matches = array();
-       if ( preg_match( '/^(\d+)\s+(.*?)\s*\|/', $line, $matches ) ) {
-               $section = $matches[1];
-               print $line;
-               continue;
-       }
-       if ( preg_match( '/^(\d+\.\d+\.\d+)\s*/', $line, $matches ) ) {
-               $test = $matches[1];
-
-               if ( in_array( $test, $ignore ) ) {
-                       continue;
-               }
-               if ( in_array( $test, $longTests ) ) {
-                       $line = fgets( $in );
-
-                       // @codingStandardsIgnoreStart Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
-                       for ( $line = fgets( $in ); !preg_match( '/^\s+\|/', $line ); $line = fgets( $in ) ) {
-                               // @codingStandardsIgnoreEnd
-
-                               testLine( $test, $line, $total, $success, $failed, $columns, $exceptions, $verbose );
-                       }
-               } else {
-                       testLine( $test, $line, $total, $success, $failed, $columns, $exceptions, $verbose );
-               }
-       }
-}
-
-if ( $failed ) {
-       echo "\nFailed $failed tests.\n";
-       echo "UTF-8 DECODER TEST FAILED\n";
-       exit ( -1 );
-}
-
-echo "UTF-8 DECODER TEST SUCCESS!\n";
-exit ( 0 );
-
-function testLine( $test, $line, &$total, &$success, &$failed, $columns, $exceptions, $verbose ) {
-       $stripped = $line;
-       UtfNormal::quickisNFCVerify( $stripped );
-
-       $same = ( $line == $stripped );
-       $len = mb_strlen( substr( $stripped, 0, strpos( $stripped, '|' ) ) );
-       if ( $len == 0 ) {
-               $len = strlen( substr( $stripped, 0, strpos( $stripped, '|' ) ) );
-       }
-
-       $ok = $same ^ ( $test >= 3 );
-
-       $ok ^= in_array( $test, $exceptions );
-
-       $ok &= ( $columns == $len );
-
-       $total++;
-       if ( $ok ) {
-               $success++;
-       } else {
-               $failed++;
-       }
-
-       if ( $verbose || !$ok ) {
-               print str_replace( "\n", "$len\n", $stripped );
-       }
-}
diff --git a/includes/normal/UtfNormal.php b/includes/normal/UtfNormal.php
deleted file mode 100644 (file)
index 8204f97..0000000
+++ /dev/null
@@ -1,790 +0,0 @@
-<?php
-/**
- * Unicode normalization routines
- *
- * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * https://www.mediawiki.org/
- *
- * 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 UtfNormal
- */
-
-/**
- * @defgroup UtfNormal UtfNormal
- */
-
-define( 'NORMALIZE_ICU', function_exists( 'utf8_normalize' ) );
-define( 'NORMALIZE_INTL', function_exists( 'normalizer_normalize' ) );
-
-/**
- * Unicode normalization routines for working with UTF-8 strings.
- * Currently assumes that input strings are valid UTF-8!
- *
- * Not as fast as I'd like, but should be usable for most purposes.
- * UtfNormal::toNFC() will bail early if given ASCII text or text
- * it can quickly determine is already normalized.
- *
- * All functions can be called static.
- *
- * See description of forms at http://www.unicode.org/reports/tr15/
- *
- * @ingroup UtfNormal
- */
-class UtfNormal {
-       /**
-        * For using the ICU wrapper
-        */
-       const UNORM_NONE = 1;
-       const UNORM_NFD = 2;
-       const UNORM_NFKD = 3;
-       const UNORM_NFC = 4;
-       const UNORM_NFKC = 5;
-       const UNORM_FCD = 6;
-       const UNORM_DEFAULT = self::UNORM_NFC;
-
-       public static $utfCombiningClass = null;
-       public static $utfCanonicalComp = null;
-       public static $utfCanonicalDecomp = null;
-
-       # Load compatibility decompositions on demand if they are needed.
-       public static $utfCompatibilityDecomp = null;
-       public static $utfCheckNFC;
-
-       /**
-        * The ultimate convenience function! Clean up invalid UTF-8 sequences,
-        * and convert to normal form C, canonical composition.
-        *
-        * Fast return for pure ASCII strings; some lesser optimizations for
-        * strings containing only known-good characters. Not as fast as toNFC().
-        *
-        * @param string $string a UTF-8 string
-        * @return string a clean, shiny, normalized UTF-8 string
-        */
-       static function cleanUp( $string ) {
-               if ( NORMALIZE_ICU ) {
-                       $string = self::replaceForNativeNormalize( $string );
-
-                       # UnicodeString constructor fails if the string ends with a
-                       # head byte. Add a junk char at the end, we'll strip it off.
-                       return rtrim( utf8_normalize( $string . "\x01", self::UNORM_NFC ), "\x01" );
-               } elseif ( NORMALIZE_INTL ) {
-                       $string = self::replaceForNativeNormalize( $string );
-                       $norm = normalizer_normalize( $string, Normalizer::FORM_C );
-                       if ( $norm === null || $norm === false ) {
-                               # normalizer_normalize will either return false or null
-                               # (depending on which doc you read) if invalid utf8 string.
-                               # quickIsNFCVerify cleans up invalid sequences.
-
-                               if ( UtfNormal::quickIsNFCVerify( $string ) ) {
-                                       # if that's true, the string is actually already normal.
-                                       return $string;
-                               } else {
-                                       # Now we are valid but non-normal
-                                       return normalizer_normalize( $string, Normalizer::FORM_C );
-                               }
-                       } else {
-                               return $norm;
-                       }
-               } elseif ( UtfNormal::quickIsNFCVerify( $string ) ) {
-                       # Side effect -- $string has had UTF-8 errors cleaned up.
-                       return $string;
-               } else {
-                       return UtfNormal::NFC( $string );
-               }
-       }
-
-       /**
-        * Convert a UTF-8 string to normal form C, canonical composition.
-        * Fast return for pure ASCII strings; some lesser optimizations for
-        * strings containing only known-good characters.
-        *
-        * @param string $string a valid UTF-8 string. Input is not validated.
-        * @return string a UTF-8 string in normal form C
-        */
-       static function toNFC( $string ) {
-               if ( NORMALIZE_INTL )
-                       return normalizer_normalize( $string, Normalizer::FORM_C );
-               elseif ( NORMALIZE_ICU )
-                       return utf8_normalize( $string, self::UNORM_NFC );
-               elseif ( UtfNormal::quickIsNFC( $string ) )
-                       return $string;
-               else
-                       return UtfNormal::NFC( $string );
-       }
-
-       /**
-        * Convert a UTF-8 string to normal form D, canonical decomposition.
-        * Fast return for pure ASCII strings.
-        *
-        * @param string $string a valid UTF-8 string. Input is not validated.
-        * @return string a UTF-8 string in normal form D
-        */
-       static function toNFD( $string ) {
-               if ( NORMALIZE_INTL )
-                       return normalizer_normalize( $string, Normalizer::FORM_D );
-               elseif ( NORMALIZE_ICU )
-                       return utf8_normalize( $string, self::UNORM_NFD );
-               elseif ( preg_match( '/[\x80-\xff]/', $string ) )
-                       return UtfNormal::NFD( $string );
-               else
-                       return $string;
-       }
-
-       /**
-        * Convert a UTF-8 string to normal form KC, compatibility composition.
-        * This may cause irreversible information loss, use judiciously.
-        * Fast return for pure ASCII strings.
-        *
-        * @param string $string a valid UTF-8 string. Input is not validated.
-        * @return string a UTF-8 string in normal form KC
-        */
-       static function toNFKC( $string ) {
-               if ( NORMALIZE_INTL )
-                       return normalizer_normalize( $string, Normalizer::FORM_KC );
-               elseif ( NORMALIZE_ICU )
-                       return utf8_normalize( $string, self::UNORM_NFKC );
-               elseif ( preg_match( '/[\x80-\xff]/', $string ) )
-                       return UtfNormal::NFKC( $string );
-               else
-                       return $string;
-       }
-
-       /**
-        * Convert a UTF-8 string to normal form KD, compatibility decomposition.
-        * This may cause irreversible information loss, use judiciously.
-        * Fast return for pure ASCII strings.
-        *
-        * @param string $string a valid UTF-8 string. Input is not validated.
-        * @return string a UTF-8 string in normal form KD
-        */
-       static function toNFKD( $string ) {
-               if ( NORMALIZE_INTL )
-                       return normalizer_normalize( $string, Normalizer::FORM_KD );
-               elseif ( NORMALIZE_ICU )
-                       return utf8_normalize( $string, self::UNORM_NFKD );
-               elseif ( preg_match( '/[\x80-\xff]/', $string ) )
-                       return UtfNormal::NFKD( $string );
-               else
-                       return $string;
-       }
-
-       /**
-        * Load the basic composition data if necessary
-        * @private
-        */
-       static function loadData() {
-               if ( !isset( self::$utfCombiningClass ) ) {
-                       require_once __DIR__ . '/UtfNormalData.inc';
-               }
-       }
-
-       /**
-        * Returns true if the string is _definitely_ in NFC.
-        * Returns false if not or uncertain.
-        * @param string $string a valid UTF-8 string. Input is not validated.
-        * @return bool
-        */
-       static function quickIsNFC( $string ) {
-               # ASCII is always valid NFC!
-               # If it's pure ASCII, let it through.
-               if ( !preg_match( '/[\x80-\xff]/', $string ) ) return true;
-
-               UtfNormal::loadData();
-               $len = strlen( $string );
-               for ( $i = 0; $i < $len; $i++ ) {
-                       $c = $string[$i];
-                       $n = ord( $c );
-                       if ( $n < 0x80 ) {
-                               continue;
-                       } elseif ( $n >= 0xf0 ) {
-                               $c = substr( $string, $i, 4 );
-                               $i += 3;
-                       } elseif ( $n >= 0xe0 ) {
-                               $c = substr( $string, $i, 3 );
-                               $i += 2;
-                       } elseif ( $n >= 0xc0 ) {
-                               $c = substr( $string, $i, 2 );
-                               $i++;
-                       }
-                       if ( isset( self::$utfCheckNFC[$c] ) ) {
-                               # If it's NO or MAYBE, bail and do the slow check.
-                               return false;
-                       }
-                       if ( isset( self::$utfCombiningClass[$c] ) ) {
-                               # Combining character? We might have to do sorting, at least.
-                               return false;
-                       }
-               }
-
-               return true;
-       }
-
-       /**
-        * Returns true if the string is _definitely_ in NFC.
-        * Returns false if not or uncertain.
-        * @param string $string a UTF-8 string, altered on output to be valid UTF-8 safe for XML.
-        * @return bool
-        */
-       static function quickIsNFCVerify( &$string ) {
-               # Screen out some characters that eg won't be allowed in XML
-               $string = preg_replace( '/[\x00-\x08\x0b\x0c\x0e-\x1f]/', UTF8_REPLACEMENT, $string );
-
-               # ASCII is always valid NFC!
-               # If we're only ever given plain ASCII, we can avoid the overhead
-               # of initializing the decomposition tables by skipping out early.
-               if ( !preg_match( '/[\x80-\xff]/', $string ) ) return true;
-
-               static $checkit = null, $tailBytes = null, $utfCheckOrCombining = null;
-               if ( !isset( $checkit ) ) {
-                       # Load/build some scary lookup tables...
-                       UtfNormal::loadData();
-
-                       $utfCheckOrCombining = array_merge( self::$utfCheckNFC, self::$utfCombiningClass );
-
-                       # Head bytes for sequences which we should do further validity checks
-                       $checkit = array_flip( array_map( 'chr',
-                               array( 0xc0, 0xc1, 0xe0, 0xed, 0xef,
-                                       0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
-                                       0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff ) ) );
-
-                       # Each UTF-8 head byte is followed by a certain
-                       # number of tail bytes.
-                       $tailBytes = array();
-                       for ( $n = 0; $n < 256; $n++ ) {
-                               if ( $n < 0xc0 ) {
-                                       $remaining = 0;
-                               } elseif ( $n < 0xe0 ) {
-                                       $remaining = 1;
-                               } elseif ( $n < 0xf0 ) {
-                                       $remaining = 2;
-                               } elseif ( $n < 0xf8 ) {
-                                       $remaining = 3;
-                               } elseif ( $n < 0xfc ) {
-                                       $remaining = 4;
-                               } elseif ( $n < 0xfe ) {
-                                       $remaining = 5;
-                               } else {
-                                       $remaining = 0;
-                               }
-                               $tailBytes[chr( $n )] = $remaining;
-                       }
-               }
-
-               # Chop the text into pure-ASCII and non-ASCII areas;
-               # large ASCII parts can be handled much more quickly.
-               # Don't chop up Unicode areas for punctuation, though,
-               # that wastes energy.
-               $matches = array();
-               preg_match_all(
-                       '/([\x00-\x7f]+|[\x80-\xff][\x00-\x40\x5b-\x5f\x7b-\xff]*)/',
-                       $string, $matches );
-
-               $looksNormal = true;
-               $base = 0;
-               $replace = array();
-               foreach ( $matches[1] as $str ) {
-                       $chunk = strlen( $str );
-
-                       if ( $str[0] < "\x80" ) {
-                               # ASCII chunk: guaranteed to be valid UTF-8
-                               # and in normal form C, so skip over it.
-                               $base += $chunk;
-                               continue;
-                       }
-
-                       # We'll have to examine the chunk byte by byte to ensure
-                       # that it consists of valid UTF-8 sequences, and to see
-                       # if any of them might not be normalized.
-                       #
-                       # Since PHP is not the fastest language on earth, some of
-                       # this code is a little ugly with inner loop optimizations.
-
-                       $head = '';
-                       $len = $chunk + 1; # Counting down is faster. I'm *so* sorry.
-
-                       for ( $i = -1; --$len; ) {
-                               $remaining = $tailBytes[$c = $str[++$i]];
-                               if ( $remaining ) {
-                                       # UTF-8 head byte!
-                                       $sequence = $head = $c;
-                                       do {
-                                               # Look for the defined number of tail bytes...
-                                               if ( --$len && ( $c = $str[++$i] ) >= "\x80" && $c < "\xc0" ) {
-                                                       # Legal tail bytes are nice.
-                                                       $sequence .= $c;
-                                               } else {
-                                                       if ( 0 == $len ) {
-                                                               # Premature end of string!
-                                                               # Drop a replacement character into output to
-                                                               # represent the invalid UTF-8 sequence.
-                                                               $replace[] = array( UTF8_REPLACEMENT,
-                                                                       $base + $i + 1 - strlen( $sequence ),
-                                                                       strlen( $sequence ) );
-                                                               break 2;
-                                                       } else {
-                                                               # Illegal tail byte; abandon the sequence.
-                                                               $replace[] = array( UTF8_REPLACEMENT,
-                                                                       $base + $i - strlen( $sequence ),
-                                                                       strlen( $sequence ) );
-                                                               # Back up and reprocess this byte; it may itself
-                                                               # be a legal ASCII or UTF-8 sequence head.
-                                                               --$i;
-                                                               ++$len;
-                                                               continue 2;
-                                                       }
-                                               }
-                                       } while ( --$remaining );
-
-                                       if ( isset( $checkit[$head] ) ) {
-                                               # Do some more detailed validity checks, for
-                                               # invalid characters and illegal sequences.
-                                               if ( $head == "\xed" ) {
-                                                       # 0xed is relatively frequent in Korean, which
-                                                       # abuts the surrogate area, so we're doing
-                                                       # this check separately to speed things up.
-
-                                                       if ( $sequence >= UTF8_SURROGATE_FIRST ) {
-                                                               # Surrogates are legal only in UTF-16 code.
-                                                               # They are totally forbidden here in UTF-8
-                                                               # utopia.
-                                                               $replace[] = array( UTF8_REPLACEMENT,
-                                                                       $base + $i + 1 - strlen( $sequence ),
-                                                                       strlen( $sequence ) );
-                                                               $head = '';
-                                                               continue;
-                                                       }
-                                               } else {
-                                                       # Slower, but rarer checks...
-                                                       $n = ord( $head );
-                                                       if (
-                                                               # "Overlong sequences" are those that are syntactically
-                                                               # correct but use more UTF-8 bytes than are necessary to
-                                                               # encode a character. Naïve string comparisons can be
-                                                               # tricked into failing to see a match for an ASCII
-                                                               # character, for instance, which can be a security hole
-                                                               # if blacklist checks are being used.
-                                                               ( $n < 0xc2 && $sequence <= UTF8_OVERLONG_A )
-                                                               || ( $n == 0xe0 && $sequence <= UTF8_OVERLONG_B )
-                                                               || ( $n == 0xf0 && $sequence <= UTF8_OVERLONG_C )
-
-                                                               # U+FFFE and U+FFFF are explicitly forbidden in Unicode.
-                                                               || ( $n == 0xef &&
-                                                                       ( $sequence == UTF8_FFFE )
-                                                                       || ( $sequence == UTF8_FFFF ) )
-
-                                                               # Unicode has been limited to 21 bits; longer
-                                                               # sequences are not allowed.
-                                                               || ( $n >= 0xf0 && $sequence > UTF8_MAX )
-                                                       ) {
-
-                                                               $replace[] = array( UTF8_REPLACEMENT,
-                                                                       $base + $i + 1 - strlen( $sequence ),
-                                                                       strlen( $sequence ) );
-                                                               $head = '';
-                                                               continue;
-                                                       }
-                                               }
-                                       }
-
-                                       if ( isset( $utfCheckOrCombining[$sequence] ) ) {
-                                               # If it's NO or MAYBE, we'll have to rip
-                                               # the string apart and put it back together.
-                                               # That's going to be mighty slow.
-                                               $looksNormal = false;
-                                       }
-
-                                       # The sequence is legal!
-                                       $head = '';
-                               } elseif ( $c < "\x80" ) {
-                                       # ASCII byte.
-                                       $head = '';
-                               } elseif ( $c < "\xc0" ) {
-                                       # Illegal tail bytes
-                                       if ( $head == '' ) {
-                                               # Out of the blue!
-                                               $replace[] = array( UTF8_REPLACEMENT, $base + $i, 1 );
-                                       } else {
-                                               # Don't add if we're continuing a broken sequence;
-                                               # we already put a replacement character when we looked
-                                               # at the broken sequence.
-                                               $replace[] = array( '', $base + $i, 1 );
-                                       }
-                               } else {
-                                       # Miscellaneous freaks.
-                                       $replace[] = array( UTF8_REPLACEMENT, $base + $i, 1 );
-                                       $head = '';
-                               }
-                       }
-                       $base += $chunk;
-               }
-               if ( count( $replace ) ) {
-                       # There were illegal UTF-8 sequences we need to fix up.
-                       $out = '';
-                       $last = 0;
-                       foreach ( $replace as $rep ) {
-                               list( $replacement, $start, $length ) = $rep;
-                               if ( $last < $start ) {
-                                       $out .= substr( $string, $last, $start - $last );
-                               }
-                               $out .= $replacement;
-                               $last = $start + $length;
-                       }
-                       if ( $last < strlen( $string ) ) {
-                               $out .= substr( $string, $last );
-                       }
-                       $string = $out;
-               }
-
-               return $looksNormal;
-       }
-
-       # These take a string and run the normalization on them, without
-       # checking for validity or any optimization etc. Input must be
-       # VALID UTF-8!
-       /**
-        * @param $string string
-        * @return string
-        * @private
-        */
-       static function NFC( $string ) {
-               return UtfNormal::fastCompose( UtfNormal::NFD( $string ) );
-       }
-
-       /**
-        * @param $string string
-        * @return string
-        * @private
-        */
-       static function NFD( $string ) {
-               UtfNormal::loadData();
-
-               return UtfNormal::fastCombiningSort(
-                       UtfNormal::fastDecompose( $string, self::$utfCanonicalDecomp ) );
-       }
-
-       /**
-        * @param $string string
-        * @return string
-        * @private
-        */
-       static function NFKC( $string ) {
-               return UtfNormal::fastCompose( UtfNormal::NFKD( $string ) );
-       }
-
-       /**
-        * @param $string string
-        * @return string
-        * @private
-        */
-       static function NFKD( $string ) {
-               if ( !isset( self::$utfCompatibilityDecomp ) ) {
-                       require_once 'UtfNormalDataK.inc';
-               }
-
-               return self::fastCombiningSort(
-                       self::fastDecompose( $string, self::$utfCompatibilityDecomp ) );
-       }
-
-       /**
-        * Perform decomposition of a UTF-8 string into either D or KD form
-        * (depending on which decomposition map is passed to us).
-        * Input is assumed to be *valid* UTF-8. Invalid code will break.
-        * @private
-        * @param string $string valid UTF-8 string
-        * @param array $map hash of expanded decomposition map
-        * @return string a UTF-8 string decomposed, not yet normalized (needs sorting)
-        */
-       static function fastDecompose( $string, $map ) {
-               UtfNormal::loadData();
-               $len = strlen( $string );
-               $out = '';
-               for ( $i = 0; $i < $len; $i++ ) {
-                       $c = $string[$i];
-                       $n = ord( $c );
-                       if ( $n < 0x80 ) {
-                               # ASCII chars never decompose
-                               # THEY ARE IMMORTAL
-                               $out .= $c;
-                               continue;
-                       } elseif ( $n >= 0xf0 ) {
-                               $c = substr( $string, $i, 4 );
-                               $i += 3;
-                       } elseif ( $n >= 0xe0 ) {
-                               $c = substr( $string, $i, 3 );
-                               $i += 2;
-                       } elseif ( $n >= 0xc0 ) {
-                               $c = substr( $string, $i, 2 );
-                               $i++;
-                       }
-                       if ( isset( $map[$c] ) ) {
-                               $out .= $map[$c];
-                               continue;
-                       } else {
-                               if ( $c >= UTF8_HANGUL_FIRST && $c <= UTF8_HANGUL_LAST ) {
-                                       # Decompose a hangul syllable into jamo;
-                                       # hardcoded for three-byte UTF-8 sequence.
-                                       # A lookup table would be slightly faster,
-                                       # but adds a lot of memory & disk needs.
-                                       #
-                                       $index = ( ( ord( $c[0] ) & 0x0f ) << 12
-                                                       | ( ord( $c[1] ) & 0x3f ) << 6
-                                                       | ( ord( $c[2] ) & 0x3f ) )
-                                               - UNICODE_HANGUL_FIRST;
-                                       $l = intval( $index / UNICODE_HANGUL_NCOUNT );
-                                       $v = intval( ( $index % UNICODE_HANGUL_NCOUNT ) / UNICODE_HANGUL_TCOUNT );
-                                       $t = $index % UNICODE_HANGUL_TCOUNT;
-                                       $out .= "\xe1\x84" . chr( 0x80 + $l ) . "\xe1\x85" . chr( 0xa1 + $v );
-                                       if ( $t >= 25 ) {
-                                               $out .= "\xe1\x87" . chr( 0x80 + $t - 25 );
-                                       } elseif ( $t ) {
-                                               $out .= "\xe1\x86" . chr( 0xa7 + $t );
-                                       }
-                                       continue;
-                               }
-                       }
-                       $out .= $c;
-               }
-
-               return $out;
-       }
-
-       /**
-        * Sorts combining characters into canonical order. This is the
-        * final step in creating decomposed normal forms D and KD.
-        * @private
-        * @param string $string a valid, decomposed UTF-8 string. Input is not validated.
-        * @return string a UTF-8 string with combining characters sorted in canonical order
-        */
-       static function fastCombiningSort( $string ) {
-               UtfNormal::loadData();
-               $len = strlen( $string );
-               $out = '';
-               $combiners = array();
-               $lastClass = -1;
-               for ( $i = 0; $i < $len; $i++ ) {
-                       $c = $string[$i];
-                       $n = ord( $c );
-                       if ( $n >= 0x80 ) {
-                               if ( $n >= 0xf0 ) {
-                                       $c = substr( $string, $i, 4 );
-                                       $i += 3;
-                               } elseif ( $n >= 0xe0 ) {
-                                       $c = substr( $string, $i, 3 );
-                                       $i += 2;
-                               } elseif ( $n >= 0xc0 ) {
-                                       $c = substr( $string, $i, 2 );
-                                       $i++;
-                               }
-                               if ( isset( self::$utfCombiningClass[$c] ) ) {
-                                       $lastClass = self::$utfCombiningClass[$c];
-                                       if ( isset( $combiners[$lastClass] ) ) {
-                                               $combiners[$lastClass] .= $c;
-                                       } else {
-                                               $combiners[$lastClass] = $c;
-                                       }
-                                       continue;
-                               }
-                       }
-                       if ( $lastClass ) {
-                               ksort( $combiners );
-                               $out .= implode( '', $combiners );
-                               $combiners = array();
-                       }
-                       $out .= $c;
-                       $lastClass = 0;
-               }
-               if ( $lastClass ) {
-                       ksort( $combiners );
-                       $out .= implode( '', $combiners );
-               }
-
-               return $out;
-       }
-
-       /**
-        * Produces canonically composed sequences, i.e. normal form C or KC.
-        *
-        * @private
-        * @param string $string a valid UTF-8 string in sorted normal form D or KD.
-        *   Input is not validated.
-        * @return string a UTF-8 string with canonical precomposed characters used
-        *   where possible.
-        */
-       static function fastCompose( $string ) {
-               UtfNormal::loadData();
-               $len = strlen( $string );
-               $out = '';
-               $lastClass = -1;
-               $lastHangul = 0;
-               $startChar = '';
-               $combining = '';
-               $x1 = ord( substr( UTF8_HANGUL_VBASE, 0, 1 ) );
-               $x2 = ord( substr( UTF8_HANGUL_TEND, 0, 1 ) );
-               for ( $i = 0; $i < $len; $i++ ) {
-                       $c = $string[$i];
-                       $n = ord( $c );
-                       if ( $n < 0x80 ) {
-                               # No combining characters here...
-                               $out .= $startChar;
-                               $out .= $combining;
-                               $startChar = $c;
-                               $combining = '';
-                               $lastClass = 0;
-                               continue;
-                       } elseif ( $n >= 0xf0 ) {
-                               $c = substr( $string, $i, 4 );
-                               $i += 3;
-                       } elseif ( $n >= 0xe0 ) {
-                               $c = substr( $string, $i, 3 );
-                               $i += 2;
-                       } elseif ( $n >= 0xc0 ) {
-                               $c = substr( $string, $i, 2 );
-                               $i++;
-                       }
-                       $pair = $startChar . $c;
-                       if ( $n > 0x80 ) {
-                               if ( isset( self::$utfCombiningClass[$c] ) ) {
-                                       # A combining char; see what we can do with it
-                                       $class = self::$utfCombiningClass[$c];
-                                       if ( !empty( $startChar ) &&
-                                               $lastClass < $class &&
-                                               $class > 0 &&
-                                               isset( self::$utfCanonicalComp[$pair] )
-                                       ) {
-                                               $startChar = self::$utfCanonicalComp[$pair];
-                                               $class = 0;
-                                       } else {
-                                               $combining .= $c;
-                                       }
-                                       $lastClass = $class;
-                                       $lastHangul = 0;
-                                       continue;
-                               }
-                       }
-                       # New start char
-                       if ( $lastClass == 0 ) {
-                               if ( isset( self::$utfCanonicalComp[$pair] ) ) {
-                                       $startChar = self::$utfCanonicalComp[$pair];
-                                       $lastHangul = 0;
-                                       continue;
-                               }
-                               if ( $n >= $x1 && $n <= $x2 ) {
-                                       # WARNING: Hangul code is painfully slow.
-                                       # I apologize for this ugly, ugly code; however
-                                       # performance is even more teh suck if we call
-                                       # out to nice clean functions. Lookup tables are
-                                       # marginally faster, but require a lot of space.
-                                       #
-                                       if ( $c >= UTF8_HANGUL_VBASE &&
-                                               $c <= UTF8_HANGUL_VEND &&
-                                               $startChar >= UTF8_HANGUL_LBASE &&
-                                               $startChar <= UTF8_HANGUL_LEND
-                                       ) {
-                                               #
-                                               #$lIndex = utf8ToCodepoint( $startChar ) - UNICODE_HANGUL_LBASE;
-                                               #$vIndex = utf8ToCodepoint( $c ) - UNICODE_HANGUL_VBASE;
-                                               $lIndex = ord( $startChar[2] ) - 0x80;
-                                               $vIndex = ord( $c[2] ) - 0xa1;
-
-                                               $hangulPoint = UNICODE_HANGUL_FIRST +
-                                                       UNICODE_HANGUL_TCOUNT *
-                                                       ( UNICODE_HANGUL_VCOUNT * $lIndex + $vIndex );
-
-                                               # Hardcode the limited-range UTF-8 conversion:
-                                               $startChar = chr( $hangulPoint >> 12 & 0x0f | 0xe0 ) .
-                                                       chr( $hangulPoint >> 6 & 0x3f | 0x80 ) .
-                                                       chr( $hangulPoint & 0x3f | 0x80 );
-                                               $lastHangul = 0;
-                                               continue;
-                                       } elseif ( $c >= UTF8_HANGUL_TBASE &&
-                                               $c <= UTF8_HANGUL_TEND &&
-                                               $startChar >= UTF8_HANGUL_FIRST &&
-                                               $startChar <= UTF8_HANGUL_LAST &&
-                                               !$lastHangul
-                                       ) {
-                                               # $tIndex = utf8ToCodepoint( $c ) - UNICODE_HANGUL_TBASE;
-                                               $tIndex = ord( $c[2] ) - 0xa7;
-                                               if ( $tIndex < 0 ) $tIndex = ord( $c[2] ) - 0x80 + ( 0x11c0 - 0x11a7 );
-
-                                               # Increment the code point by $tIndex, without
-                                               # the function overhead of decoding and recoding UTF-8
-                                               #
-                                               $tail = ord( $startChar[2] ) + $tIndex;
-                                               if ( $tail > 0xbf ) {
-                                                       $tail -= 0x40;
-                                                       $mid = ord( $startChar[1] ) + 1;
-                                                       if ( $mid > 0xbf ) {
-                                                               $startChar[0] = chr( ord( $startChar[0] ) + 1 );
-                                                               $mid -= 0x40;
-                                                       }
-                                                       $startChar[1] = chr( $mid );
-                                               }
-                                               $startChar[2] = chr( $tail );
-
-                                               # If there's another jamo char after this, *don't* try to merge it.
-                                               $lastHangul = 1;
-                                               continue;
-                                       }
-                               }
-                       }
-                       $out .= $startChar;
-                       $out .= $combining;
-                       $startChar = $c;
-                       $combining = '';
-                       $lastClass = 0;
-                       $lastHangul = 0;
-               }
-               $out .= $startChar . $combining;
-
-               return $out;
-       }
-
-       /**
-        * This is just used for the benchmark, comparing how long it takes to
-        * interate through a string without really doing anything of substance.
-        * @param $string string
-        * @return string
-        */
-       static function placebo( $string ) {
-               $len = strlen( $string );
-               $out = '';
-               for ( $i = 0; $i < $len; $i++ ) {
-                       $out .= $string[$i];
-               }
-
-               return $out;
-       }
-
-       /**
-        * Function to replace some characters that we don't want
-        * but most of the native normalize functions keep.
-        *
-        * @param string $string The string
-        * @return String String with the character codes replaced.
-        */
-       private static function replaceForNativeNormalize( $string ) {
-               $string = preg_replace(
-                       '/[\x00-\x08\x0b\x0c\x0e-\x1f]/',
-                       UTF8_REPLACEMENT,
-                       $string );
-               $string = str_replace( UTF8_FFFE, UTF8_REPLACEMENT, $string );
-               $string = str_replace( UTF8_FFFF, UTF8_REPLACEMENT, $string );
-
-               return $string;
-       }
-}
diff --git a/includes/normal/UtfNormalBench.php b/includes/normal/UtfNormalBench.php
deleted file mode 100644 (file)
index bd2bc4e..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-/**
- * Approximate benchmark for some basic operations.
- *
- * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * https://www.mediawiki.org/
- *
- * 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 UtfNormal
- */
-
-if ( PHP_SAPI != 'cli' ) {
-       die( "Run me from the command line please.\n" );
-}
-
-if ( isset( $_SERVER['argv'] ) && in_array( '--icu', $_SERVER['argv'] ) ) {
-       dl( 'php_utfnormal.so' );
-}
-
-require_once 'UtfNormalDefines.php';
-require_once 'UtfNormalUtil.php';
-require_once 'UtfNormal.php';
-
-define( 'BENCH_CYCLES', 5 );
-
-$testfiles = array(
-       'testdata/washington.txt' => 'English text',
-       'testdata/berlin.txt' => 'German text',
-       'testdata/bulgakov.txt' => 'Russian text',
-       'testdata/tokyo.txt' => 'Japanese text',
-       'testdata/young.txt' => 'Korean text'
-);
-$normalizer = new UtfNormal;
-UtfNormal::loadData();
-foreach ( $testfiles as $file => $desc ) {
-       benchmarkTest( $normalizer, $file, $desc );
-}
-
-# -------
-
-function benchmarkTest( &$u, $filename, $desc ) {
-       print "Testing $filename ($desc)...\n";
-       $data = file_get_contents( $filename );
-       $forms = array(
-#              'placebo',
-               'cleanUp',
-               'toNFC',
-#              'toNFKC',
-#              'toNFD', 'toNFKD',
-               'NFC',
-#              'NFKC',
-#              'NFD', 'NFKD',
-               array( 'fastDecompose', 'fastCombiningSort', 'fastCompose' ),
-#              'quickIsNFC', 'quickIsNFCVerify',
-       );
-
-       foreach ( $forms as $form ) {
-               if ( is_array( $form ) ) {
-                       $str = $data;
-                       foreach ( $form as $step ) {
-                               $str = benchmarkForm( $u, $str, $step );
-                       }
-               } else {
-                       benchmarkForm( $u, $data, $form );
-               }
-       }
-}
-
-function benchmarkForm( &$u, &$data, $form ) {
-       #$start = microtime( true );
-       for ( $i = 0; $i < BENCH_CYCLES; $i++ ) {
-               $start = microtime( true );
-               $out = $u->$form( $data, UtfNormal::$utfCanonicalDecomp );
-               $deltas[] = ( microtime( true ) - $start );
-       }
-       #$delta = (microtime( true ) - $start) / BENCH_CYCLES;
-       sort( $deltas );
-       $delta = $deltas[0]; # Take shortest time
-
-       $rate = intval( strlen( $data ) / $delta );
-       $same = ( 0 == strcmp( $data, $out ) );
-
-       printf( " %20s %6.1fms %12s bytes/s (%s)\n",
-               $form,
-               $delta * 1000.0,
-               number_format( $rate ),
-               ( $same ? 'no change' : 'changed' ) );
-
-       return $out;
-}
diff --git a/includes/normal/UtfNormalData.inc b/includes/normal/UtfNormalData.inc
deleted file mode 100644 (file)
index 5755f6b..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * This file was automatically generated -- do not edit!
- * Run UtfNormalGenerate.php to create this file again (make clean && make)
- *
- * @file
- */
-// @codingStandardsIgnoreFile
-
-UtfNormal::$utfCombiningClass = unserialize( 'a:606:{s:2:"̀";i:230;s:2:"́";i:230;s:2:"̂";i:230;s:2:"̃";i:230;s:2:"̄";i:230;s:2:"̅";i:230;s:2:"̆";i:230;s:2:"̇";i:230;s:2:"̈";i:230;s:2:"̉";i:230;s:2:"̊";i:230;s:2:"̋";i:230;s:2:"̌";i:230;s:2:"̍";i:230;s:2:"̎";i:230;s:2:"̏";i:230;s:2:"̐";i:230;s:2:"̑";i:230;s:2:"̒";i:230;s:2:"̓";i:230;s:2:"̔";i:230;s:2:"̕";i:232;s:2:"̖";i:220;s:2:"̗";i:220;s:2:"̘";i:220;s:2:"̙";i:220;s:2:"̚";i:232;s:2:"̛";i:216;s:2:"̜";i:220;s:2:"̝";i:220;s:2:"̞";i:220;s:2:"̟";i:220;s:2:"̠";i:220;s:2:"̡";i:202;s:2:"̢";i:202;s:2:"̣";i:220;s:2:"̤";i:220;s:2:"̥";i:220;s:2:"̦";i:220;s:2:"̧";i:202;s:2:"̨";i:202;s:2:"̩";i:220;s:2:"̪";i:220;s:2:"̫";i:220;s:2:"̬";i:220;s:2:"̭";i:220;s:2:"̮";i:220;s:2:"̯";i:220;s:2:"̰";i:220;s:2:"̱";i:220;s:2:"̲";i:220;s:2:"̳";i:220;s:2:"̴";i:1;s:2:"̵";i:1;s:2:"̶";i:1;s:2:"̷";i:1;s:2:"̸";i:1;s:2:"̹";i:220;s:2:"̺";i:220;s:2:"̻";i:220;s:2:"̼";i:220;s:2:"̽";i:230;s:2:"̾";i:230;s:2:"̿";i:230;s:2:"̀";i:230;s:2:"́";i:230;s:2:"͂";i:230;s:2:"̓";i:230;s:2:"̈́";i:230;s:2:"ͅ";i:240;s:2:"͆";i:230;s:2:"͇";i:220;s:2:"͈";i:220;s:2:"͉";i:220;s:2:"͊";i:230;s:2:"͋";i:230;s:2:"͌";i:230;s:2:"͍";i:220;s:2:"͎";i:220;s:2:"͐";i:230;s:2:"͑";i:230;s:2:"͒";i:230;s:2:"͓";i:220;s:2:"͔";i:220;s:2:"͕";i:220;s:2:"͖";i:220;s:2:"͗";i:230;s:2:"͘";i:232;s:2:"͙";i:220;s:2:"͚";i:220;s:2:"͛";i:230;s:2:"͜";i:233;s:2:"͝";i:234;s:2:"͞";i:234;s:2:"͟";i:233;s:2:"͠";i:234;s:2:"͡";i:234;s:2:"͢";i:233;s:2:"ͣ";i:230;s:2:"ͤ";i:230;s:2:"ͥ";i:230;s:2:"ͦ";i:230;s:2:"ͧ";i:230;s:2:"ͨ";i:230;s:2:"ͩ";i:230;s:2:"ͪ";i:230;s:2:"ͫ";i:230;s:2:"ͬ";i:230;s:2:"ͭ";i:230;s:2:"ͮ";i:230;s:2:"ͯ";i:230;s:2:"҃";i:230;s:2:"҄";i:230;s:2:"҅";i:230;s:2:"҆";i:230;s:2:"҇";i:230;s:2:"֑";i:220;s:2:"֒";i:230;s:2:"֓";i:230;s:2:"֔";i:230;s:2:"֕";i:230;s:2:"֖";i:220;s:2:"֗";i:230;s:2:"֘";i:230;s:2:"֙";i:230;s:2:"֚";i:222;s:2:"֛";i:220;s:2:"֜";i:230;s:2:"֝";i:230;s:2:"֞";i:230;s:2:"֟";i:230;s:2:"֠";i:230;s:2:"֡";i:230;s:2:"֢";i:220;s:2:"֣";i:220;s:2:"֤";i:220;s:2:"֥";i:220;s:2:"֦";i:220;s:2:"֧";i:220;s:2:"֨";i:230;s:2:"֩";i:230;s:2:"֪";i:220;s:2:"֫";i:230;s:2:"֬";i:230;s:2:"֭";i:222;s:2:"֮";i:228;s:2:"֯";i:230;s:2:"ְ";i:10;s:2:"ֱ";i:11;s:2:"ֲ";i:12;s:2:"ֳ";i:13;s:2:"ִ";i:14;s:2:"ֵ";i:15;s:2:"ֶ";i:16;s:2:"ַ";i:17;s:2:"ָ";i:18;s:2:"ֹ";i:19;s:2:"ֺ";i:19;s:2:"ֻ";i:20;s:2:"ּ";i:21;s:2:"ֽ";i:22;s:2:"ֿ";i:23;s:2:"ׁ";i:24;s:2:"ׂ";i:25;s:2:"ׄ";i:230;s:2:"ׅ";i:220;s:2:"ׇ";i:18;s:2:"ؐ";i:230;s:2:"ؑ";i:230;s:2:"ؒ";i:230;s:2:"ؓ";i:230;s:2:"ؔ";i:230;s:2:"ؕ";i:230;s:2:"ؖ";i:230;s:2:"ؗ";i:230;s:2:"ؘ";i:30;s:2:"ؙ";i:31;s:2:"ؚ";i:32;s:2:"ً";i:27;s:2:"ٌ";i:28;s:2:"ٍ";i:29;s:2:"َ";i:30;s:2:"ُ";i:31;s:2:"ِ";i:32;s:2:"ّ";i:33;s:2:"ْ";i:34;s:2:"ٓ";i:230;s:2:"ٔ";i:230;s:2:"ٕ";i:220;s:2:"ٖ";i:220;s:2:"ٗ";i:230;s:2:"٘";i:230;s:2:"ٙ";i:230;s:2:"ٚ";i:230;s:2:"ٛ";i:230;s:2:"ٜ";i:220;s:2:"ٝ";i:230;s:2:"ٞ";i:230;s:2:"ٟ";i:220;s:2:"ٰ";i:35;s:2:"ۖ";i:230;s:2:"ۗ";i:230;s:2:"ۘ";i:230;s:2:"ۙ";i:230;s:2:"ۚ";i:230;s:2:"ۛ";i:230;s:2:"ۜ";i:230;s:2:"۟";i:230;s:2:"۠";i:230;s:2:"ۡ";i:230;s:2:"ۢ";i:230;s:2:"ۣ";i:220;s:2:"ۤ";i:230;s:2:"ۧ";i:230;s:2:"ۨ";i:230;s:2:"۪";i:220;s:2:"۫";i:230;s:2:"۬";i:230;s:2:"ۭ";i:220;s:2:"ܑ";i:36;s:2:"ܰ";i:230;s:2:"ܱ";i:220;s:2:"ܲ";i:230;s:2:"ܳ";i:230;s:2:"ܴ";i:220;s:2:"ܵ";i:230;s:2:"ܶ";i:230;s:2:"ܷ";i:220;s:2:"ܸ";i:220;s:2:"ܹ";i:220;s:2:"ܺ";i:230;s:2:"ܻ";i:220;s:2:"ܼ";i:220;s:2:"ܽ";i:230;s:2:"ܾ";i:220;s:2:"ܿ";i:230;s:2:"݀";i:230;s:2:"݁";i:230;s:2:"݂";i:220;s:2:"݃";i:230;s:2:"݄";i:220;s:2:"݅";i:230;s:2:"݆";i:220;s:2:"݇";i:230;s:2:"݈";i:220;s:2:"݉";i:230;s:2:"݊";i:230;s:2:"߫";i:230;s:2:"߬";i:230;s:2:"߭";i:230;s:2:"߮";i:230;s:2:"߯";i:230;s:2:"߰";i:230;s:2:"߱";i:230;s:2:"߲";i:220;s:2:"߳";i:230;s:3:"ࠖ";i:230;s:3:"ࠗ";i:230;s:3:"࠘";i:230;s:3:"࠙";i:230;s:3:"ࠛ";i:230;s:3:"ࠜ";i:230;s:3:"ࠝ";i:230;s:3:"ࠞ";i:230;s:3:"ࠟ";i:230;s:3:"ࠠ";i:230;s:3:"ࠡ";i:230;s:3:"ࠢ";i:230;s:3:"ࠣ";i:230;s:3:"ࠥ";i:230;s:3:"ࠦ";i:230;s:3:"ࠧ";i:230;s:3:"ࠩ";i:230;s:3:"ࠪ";i:230;s:3:"ࠫ";i:230;s:3:"ࠬ";i:230;s:3:"࠭";i:230;s:3:"࡙";i:220;s:3:"࡚";i:220;s:3:"࡛";i:220;s:3:"़";i:7;s:3:"्";i:9;s:3:"॑";i:230;s:3:"॒";i:220;s:3:"॓";i:230;s:3:"॔";i:230;s:3:"়";i:7;s:3:"্";i:9;s:3:"਼";i:7;s:3:"੍";i:9;s:3:"઼";i:7;s:3:"્";i:9;s:3:"଼";i:7;s:3:"୍";i:9;s:3:"்";i:9;s:3:"్";i:9;s:3:"ౕ";i:84;s:3:"ౖ";i:91;s:3:"಼";i:7;s:3:"್";i:9;s:3:"്";i:9;s:3:"්";i:9;s:3:"ุ";i:103;s:3:"ู";i:103;s:3:"ฺ";i:9;s:3:"่";i:107;s:3:"้";i:107;s:3:"๊";i:107;s:3:"๋";i:107;s:3:"ຸ";i:118;s:3:"ູ";i:118;s:3:"່";i:122;s:3:"້";i:122;s:3:"໊";i:122;s:3:"໋";i:122;s:3:"༘";i:220;s:3:"༙";i:220;s:3:"༵";i:220;s:3:"༷";i:220;s:3:"༹";i:216;s:3:"ཱ";i:129;s:3:"ི";i:130;s:3:"ུ";i:132;s:3:"ེ";i:130;s:3:"ཻ";i:130;s:3:"ོ";i:130;s:3:"ཽ";i:130;s:3:"ྀ";i:130;s:3:"ྂ";i:230;s:3:"ྃ";i:230;s:3:"྄";i:9;s:3:"྆";i:230;s:3:"྇";i:230;s:3:"࿆";i:220;s:3:"့";i:7;s:3:"္";i:9;s:3:"်";i:9;s:3:"ႍ";i:220;s:3:"፝";i:230;s:3:"፞";i:230;s:3:"፟";i:230;s:3:"᜔";i:9;s:3:"᜴";i:9;s:3:"្";i:9;s:3:"៝";i:230;s:3:"ᢩ";i:228;s:3:"᤹";i:222;s:3:"᤺";i:230;s:3:"᤻";i:220;s:3:"ᨗ";i:230;s:3:"ᨘ";i:220;s:3:"᩠";i:9;s:3:"᩵";i:230;s:3:"᩶";i:230;s:3:"᩷";i:230;s:3:"᩸";i:230;s:3:"᩹";i:230;s:3:"᩺";i:230;s:3:"᩻";i:230;s:3:"᩼";i:230;s:3:"᩿";i:220;s:3:"᬴";i:7;s:3:"᭄";i:9;s:3:"᭫";i:230;s:3:"᭬";i:220;s:3:"᭭";i:230;s:3:"᭮";i:230;s:3:"᭯";i:230;s:3:"᭰";i:230;s:3:"᭱";i:230;s:3:"᭲";i:230;s:3:"᭳";i:230;s:3:"᮪";i:9;s:3:"᯦";i:7;s:3:"᯲";i:9;s:3:"᯳";i:9;s:3:"᰷";i:7;s:3:"᳐";i:230;s:3:"᳑";i:230;s:3:"᳒";i:230;s:3:"᳔";i:1;s:3:"᳕";i:220;s:3:"᳖";i:220;s:3:"᳗";i:220;s:3:"᳘";i:220;s:3:"᳙";i:220;s:3:"᳚";i:230;s:3:"᳛";i:230;s:3:"᳜";i:220;s:3:"᳝";i:220;s:3:"᳞";i:220;s:3:"᳟";i:220;s:3:"᳠";i:230;s:3:"᳢";i:1;s:3:"᳣";i:1;s:3:"᳤";i:1;s:3:"᳥";i:1;s:3:"᳦";i:1;s:3:"᳧";i:1;s:3:"᳨";i:1;s:3:"᳭";i:220;s:3:"᷀";i:230;s:3:"᷁";i:230;s:3:"᷂";i:220;s:3:"᷃";i:230;s:3:"᷄";i:230;s:3:"᷅";i:230;s:3:"᷆";i:230;s:3:"᷇";i:230;s:3:"᷈";i:230;s:3:"᷉";i:230;s:3:"᷊";i:220;s:3:"᷋";i:230;s:3:"᷌";i:230;s:3:"᷍";i:234;s:3:"᷎";i:214;s:3:"᷏";i:220;s:3:"᷐";i:202;s:3:"᷑";i:230;s:3:"᷒";i:230;s:3:"ᷓ";i:230;s:3:"ᷔ";i:230;s:3:"ᷕ";i:230;s:3:"ᷖ";i:230;s:3:"ᷗ";i:230;s:3:"ᷘ";i:230;s:3:"ᷙ";i:230;s:3:"ᷚ";i:230;s:3:"ᷛ";i:230;s:3:"ᷜ";i:230;s:3:"ᷝ";i:230;s:3:"ᷞ";i:230;s:3:"ᷟ";i:230;s:3:"ᷠ";i:230;s:3:"ᷡ";i:230;s:3:"ᷢ";i:230;s:3:"ᷣ";i:230;s:3:"ᷤ";i:230;s:3:"ᷥ";i:230;s:3:"ᷦ";i:230;s:3:"᷼";i:233;s:3:"᷽";i:220;s:3:"᷾";i:230;s:3:"᷿";i:220;s:3:"⃐";i:230;s:3:"⃑";i:230;s:3:"⃒";i:1;s:3:"⃓";i:1;s:3:"⃔";i:230;s:3:"⃕";i:230;s:3:"⃖";i:230;s:3:"⃗";i:230;s:3:"⃘";i:1;s:3:"⃙";i:1;s:3:"⃚";i:1;s:3:"⃛";i:230;s:3:"⃜";i:230;s:3:"⃡";i:230;s:3:"⃥";i:1;s:3:"⃦";i:1;s:3:"⃧";i:230;s:3:"⃨";i:220;s:3:"⃩";i:230;s:3:"⃪";i:1;s:3:"⃫";i:1;s:3:"⃬";i:220;s:3:"⃭";i:220;s:3:"⃮";i:220;s:3:"⃯";i:220;s:3:"⃰";i:230;s:3:"⳯";i:230;s:3:"⳰";i:230;s:3:"⳱";i:230;s:3:"⵿";i:9;s:3:"ⷠ";i:230;s:3:"ⷡ";i:230;s:3:"ⷢ";i:230;s:3:"ⷣ";i:230;s:3:"ⷤ";i:230;s:3:"ⷥ";i:230;s:3:"ⷦ";i:230;s:3:"ⷧ";i:230;s:3:"ⷨ";i:230;s:3:"ⷩ";i:230;s:3:"ⷪ";i:230;s:3:"ⷫ";i:230;s:3:"ⷬ";i:230;s:3:"ⷭ";i:230;s:3:"ⷮ";i:230;s:3:"ⷯ";i:230;s:3:"ⷰ";i:230;s:3:"ⷱ";i:230;s:3:"ⷲ";i:230;s:3:"ⷳ";i:230;s:3:"ⷴ";i:230;s:3:"ⷵ";i:230;s:3:"ⷶ";i:230;s:3:"ⷷ";i:230;s:3:"ⷸ";i:230;s:3:"ⷹ";i:230;s:3:"ⷺ";i:230;s:3:"ⷻ";i:230;s:3:"ⷼ";i:230;s:3:"ⷽ";i:230;s:3:"ⷾ";i:230;s:3:"ⷿ";i:230;s:3:"〪";i:218;s:3:"〫";i:228;s:3:"〬";i:232;s:3:"〭";i:222;s:3:"〮";i:224;s:3:"〯";i:224;s:3:"゙";i:8;s:3:"゚";i:8;s:3:"꙯";i:230;s:3:"꙼";i:230;s:3:"꙽";i:230;s:3:"꛰";i:230;s:3:"꛱";i:230;s:3:"꠆";i:9;s:3:"꣄";i:9;s:3:"꣠";i:230;s:3:"꣡";i:230;s:3:"꣢";i:230;s:3:"꣣";i:230;s:3:"꣤";i:230;s:3:"꣥";i:230;s:3:"꣦";i:230;s:3:"꣧";i:230;s:3:"꣨";i:230;s:3:"꣩";i:230;s:3:"꣪";i:230;s:3:"꣫";i:230;s:3:"꣬";i:230;s:3:"꣭";i:230;s:3:"꣮";i:230;s:3:"꣯";i:230;s:3:"꣰";i:230;s:3:"꣱";i:230;s:3:"꤫";i:220;s:3:"꤬";i:220;s:3:"꤭";i:220;s:3:"꥓";i:9;s:3:"꦳";i:7;s:3:"꧀";i:9;s:3:"ꪰ";i:230;s:3:"ꪲ";i:230;s:3:"ꪳ";i:230;s:3:"ꪴ";i:220;s:3:"ꪷ";i:230;s:3:"ꪸ";i:230;s:3:"ꪾ";i:230;s:3:"꪿";i:230;s:3:"꫁";i:230;s:3:"꯭";i:9;s:3:"ﬞ";i:26;s:3:"︠";i:230;s:3:"︡";i:230;s:3:"︢";i:230;s:3:"︣";i:230;s:3:"︤";i:230;s:3:"︥";i:230;s:3:"︦";i:230;s:4:"𐇽";i:220;s:4:"𐨍";i:220;s:4:"𐨏";i:230;s:4:"𐨸";i:230;s:4:"𐨹";i:1;s:4:"𐨺";i:220;s:4:"𐨿";i:9;s:4:"𑁆";i:9;s:4:"𑂹";i:9;s:4:"𑂺";i:7;s:4:"𝅥";i:216;s:4:"𝅦";i:216;s:4:"𝅧";i:1;s:4:"𝅨";i:1;s:4:"𝅩";i:1;s:4:"𝅭";i:226;s:4:"𝅮";i:216;s:4:"𝅯";i:216;s:4:"𝅰";i:216;s:4:"𝅱";i:216;s:4:"𝅲";i:216;s:4:"𝅻";i:220;s:4:"𝅼";i:220;s:4:"𝅽";i:220;s:4:"𝅾";i:220;s:4:"𝅿";i:220;s:4:"𝆀";i:220;s:4:"𝆁";i:220;s:4:"𝆂";i:220;s:4:"𝆅";i:230;s:4:"𝆆";i:230;s:4:"𝆇";i:230;s:4:"𝆈";i:230;s:4:"𝆉";i:230;s:4:"𝆊";i:220;s:4:"𝆋";i:220;s:4:"𝆪";i:230;s:4:"𝆫";i:230;s:4:"𝆬";i:230;s:4:"𝆭";i:230;s:4:"𝉂";i:230;s:4:"𝉃";i:230;s:4:"𝉄";i:230;}' );
-UtfNormal::$utfCanonicalComp = unserialize( 'a:1868:{s:3:"À";s:2:"À";s:3:"Á";s:2:"Á";s:3:"Â";s:2:"Â";s:3:"Ã";s:2:"Ã";s:3:"Ä";s:2:"Ä";s:3:"Å";s:2:"Å";s:3:"Ç";s:2:"Ç";s:3:"È";s:2:"È";s:3:"É";s:2:"É";s:3:"Ê";s:2:"Ê";s:3:"Ë";s:2:"Ë";s:3:"Ì";s:2:"Ì";s:3:"Í";s:2:"Í";s:3:"Î";s:2:"Î";s:3:"Ï";s:2:"Ï";s:3:"Ñ";s:2:"Ñ";s:3:"Ò";s:2:"Ò";s:3:"Ó";s:2:"Ó";s:3:"Ô";s:2:"Ô";s:3:"Õ";s:2:"Õ";s:3:"Ö";s:2:"Ö";s:3:"Ù";s:2:"Ù";s:3:"Ú";s:2:"Ú";s:3:"Û";s:2:"Û";s:3:"Ü";s:2:"Ü";s:3:"Ý";s:2:"Ý";s:3:"à";s:2:"à";s:3:"á";s:2:"á";s:3:"â";s:2:"â";s:3:"ã";s:2:"ã";s:3:"ä";s:2:"ä";s:3:"å";s:2:"å";s:3:"ç";s:2:"ç";s:3:"è";s:2:"è";s:3:"é";s:2:"é";s:3:"ê";s:2:"ê";s:3:"ë";s:2:"ë";s:3:"ì";s:2:"ì";s:3:"í";s:2:"í";s:3:"î";s:2:"î";s:3:"ï";s:2:"ï";s:3:"ñ";s:2:"ñ";s:3:"ò";s:2:"ò";s:3:"ó";s:2:"ó";s:3:"ô";s:2:"ô";s:3:"õ";s:2:"õ";s:3:"ö";s:2:"ö";s:3:"ù";s:2:"ù";s:3:"ú";s:2:"ú";s:3:"û";s:2:"û";s:3:"ü";s:2:"ü";s:3:"ý";s:2:"ý";s:3:"ÿ";s:2:"ÿ";s:3:"Ā";s:2:"Ā";s:3:"ā";s:2:"ā";s:3:"Ă";s:2:"Ă";s:3:"ă";s:2:"ă";s:3:"Ą";s:2:"Ą";s:3:"ą";s:2:"ą";s:3:"Ć";s:2:"Ć";s:3:"ć";s:2:"ć";s:3:"Ĉ";s:2:"Ĉ";s:3:"ĉ";s:2:"ĉ";s:3:"Ċ";s:2:"Ċ";s:3:"ċ";s:2:"ċ";s:3:"Č";s:2:"Č";s:3:"č";s:2:"č";s:3:"Ď";s:2:"Ď";s:3:"ď";s:2:"ď";s:3:"Ē";s:2:"Ē";s:3:"ē";s:2:"ē";s:3:"Ĕ";s:2:"Ĕ";s:3:"ĕ";s:2:"ĕ";s:3:"Ė";s:2:"Ė";s:3:"ė";s:2:"ė";s:3:"Ę";s:2:"Ę";s:3:"ę";s:2:"ę";s:3:"Ě";s:2:"Ě";s:3:"ě";s:2:"ě";s:3:"Ĝ";s:2:"Ĝ";s:3:"ĝ";s:2:"ĝ";s:3:"Ğ";s:2:"Ğ";s:3:"ğ";s:2:"ğ";s:3:"Ġ";s:2:"Ġ";s:3:"ġ";s:2:"ġ";s:3:"Ģ";s:2:"Ģ";s:3:"ģ";s:2:"ģ";s:3:"Ĥ";s:2:"Ĥ";s:3:"ĥ";s:2:"ĥ";s:3:"Ĩ";s:2:"Ĩ";s:3:"ĩ";s:2:"ĩ";s:3:"Ī";s:2:"Ī";s:3:"ī";s:2:"ī";s:3:"Ĭ";s:2:"Ĭ";s:3:"ĭ";s:2:"ĭ";s:3:"Į";s:2:"Į";s:3:"į";s:2:"į";s:3:"İ";s:2:"İ";s:3:"Ĵ";s:2:"Ĵ";s:3:"ĵ";s:2:"ĵ";s:3:"Ķ";s:2:"Ķ";s:3:"ķ";s:2:"ķ";s:3:"Ĺ";s:2:"Ĺ";s:3:"ĺ";s:2:"ĺ";s:3:"Ļ";s:2:"Ļ";s:3:"ļ";s:2:"ļ";s:3:"Ľ";s:2:"Ľ";s:3:"ľ";s:2:"ľ";s:3:"Ń";s:2:"Ń";s:3:"ń";s:2:"ń";s:3:"Ņ";s:2:"Ņ";s:3:"ņ";s:2:"ņ";s:3:"Ň";s:2:"Ň";s:3:"ň";s:2:"ň";s:3:"Ō";s:2:"Ō";s:3:"ō";s:2:"ō";s:3:"Ŏ";s:2:"Ŏ";s:3:"ŏ";s:2:"ŏ";s:3:"Ő";s:2:"Ő";s:3:"ő";s:2:"ő";s:3:"Ŕ";s:2:"Ŕ";s:3:"ŕ";s:2:"ŕ";s:3:"Ŗ";s:2:"Ŗ";s:3:"ŗ";s:2:"ŗ";s:3:"Ř";s:2:"Ř";s:3:"ř";s:2:"ř";s:3:"Ś";s:2:"Ś";s:3:"ś";s:2:"ś";s:3:"Ŝ";s:2:"Ŝ";s:3:"ŝ";s:2:"ŝ";s:3:"Ş";s:2:"Ş";s:3:"ş";s:2:"ş";s:3:"Š";s:2:"Š";s:3:"š";s:2:"š";s:3:"Ţ";s:2:"Ţ";s:3:"ţ";s:2:"ţ";s:3:"Ť";s:2:"Ť";s:3:"ť";s:2:"ť";s:3:"Ũ";s:2:"Ũ";s:3:"ũ";s:2:"ũ";s:3:"Ū";s:2:"Ū";s:3:"ū";s:2:"ū";s:3:"Ŭ";s:2:"Ŭ";s:3:"ŭ";s:2:"ŭ";s:3:"Ů";s:2:"Ů";s:3:"ů";s:2:"ů";s:3:"Ű";s:2:"Ű";s:3:"ű";s:2:"ű";s:3:"Ų";s:2:"Ų";s:3:"ų";s:2:"ų";s:3:"Ŵ";s:2:"Ŵ";s:3:"ŵ";s:2:"ŵ";s:3:"Ŷ";s:2:"Ŷ";s:3:"ŷ";s:2:"ŷ";s:3:"Ÿ";s:2:"Ÿ";s:3:"Ź";s:2:"Ź";s:3:"ź";s:2:"ź";s:3:"Ż";s:2:"Ż";s:3:"ż";s:2:"ż";s:3:"Ž";s:2:"Ž";s:3:"ž";s:2:"ž";s:3:"Ơ";s:2:"Ơ";s:3:"ơ";s:2:"ơ";s:3:"Ư";s:2:"Ư";s:3:"ư";s:2:"ư";s:3:"Ǎ";s:2:"Ǎ";s:3:"ǎ";s:2:"ǎ";s:3:"Ǐ";s:2:"Ǐ";s:3:"ǐ";s:2:"ǐ";s:3:"Ǒ";s:2:"Ǒ";s:3:"ǒ";s:2:"ǒ";s:3:"Ǔ";s:2:"Ǔ";s:3:"ǔ";s:2:"ǔ";s:4:"Ǖ";s:2:"Ǖ";s:4:"ǖ";s:2:"ǖ";s:4:"Ǘ";s:2:"Ǘ";s:4:"ǘ";s:2:"ǘ";s:4:"Ǚ";s:2:"Ǚ";s:4:"ǚ";s:2:"ǚ";s:4:"Ǜ";s:2:"Ǜ";s:4:"ǜ";s:2:"ǜ";s:4:"Ǟ";s:2:"Ǟ";s:4:"ǟ";s:2:"ǟ";s:4:"Ǡ";s:2:"Ǡ";s:4:"ǡ";s:2:"ǡ";s:4:"Ǣ";s:2:"Ǣ";s:4:"ǣ";s:2:"ǣ";s:3:"Ǧ";s:2:"Ǧ";s:3:"ǧ";s:2:"ǧ";s:3:"Ǩ";s:2:"Ǩ";s:3:"ǩ";s:2:"ǩ";s:3:"Ǫ";s:2:"Ǫ";s:3:"ǫ";s:2:"ǫ";s:4:"Ǭ";s:2:"Ǭ";s:4:"ǭ";s:2:"ǭ";s:4:"Ǯ";s:2:"Ǯ";s:4:"ǯ";s:2:"ǯ";s:3:"ǰ";s:2:"ǰ";s:3:"Ǵ";s:2:"Ǵ";s:3:"ǵ";s:2:"ǵ";s:3:"Ǹ";s:2:"Ǹ";s:3:"ǹ";s:2:"ǹ";s:4:"Ǻ";s:2:"Ǻ";s:4:"ǻ";s:2:"ǻ";s:4:"Ǽ";s:2:"Ǽ";s:4:"ǽ";s:2:"ǽ";s:4:"Ǿ";s:2:"Ǿ";s:4:"ǿ";s:2:"ǿ";s:3:"Ȁ";s:2:"Ȁ";s:3:"ȁ";s:2:"ȁ";s:3:"Ȃ";s:2:"Ȃ";s:3:"ȃ";s:2:"ȃ";s:3:"Ȅ";s:2:"Ȅ";s:3:"ȅ";s:2:"ȅ";s:3:"Ȇ";s:2:"Ȇ";s:3:"ȇ";s:2:"ȇ";s:3:"Ȉ";s:2:"Ȉ";s:3:"ȉ";s:2:"ȉ";s:3:"Ȋ";s:2:"Ȋ";s:3:"ȋ";s:2:"ȋ";s:3:"Ȍ";s:2:"Ȍ";s:3:"ȍ";s:2:"ȍ";s:3:"Ȏ";s:2:"Ȏ";s:3:"ȏ";s:2:"ȏ";s:3:"Ȑ";s:2:"Ȑ";s:3:"ȑ";s:2:"ȑ";s:3:"Ȓ";s:2:"Ȓ";s:3:"ȓ";s:2:"ȓ";s:3:"Ȕ";s:2:"Ȕ";s:3:"ȕ";s:2:"ȕ";s:3:"Ȗ";s:2:"Ȗ";s:3:"ȗ";s:2:"ȗ";s:3:"Ș";s:2:"Ș";s:3:"ș";s:2:"ș";s:3:"Ț";s:2:"Ț";s:3:"ț";s:2:"ț";s:3:"Ȟ";s:2:"Ȟ";s:3:"ȟ";s:2:"ȟ";s:3:"Ȧ";s:2:"Ȧ";s:3:"ȧ";s:2:"ȧ";s:3:"Ȩ";s:2:"Ȩ";s:3:"ȩ";s:2:"ȩ";s:4:"Ȫ";s:2:"Ȫ";s:4:"ȫ";s:2:"ȫ";s:4:"Ȭ";s:2:"Ȭ";s:4:"ȭ";s:2:"ȭ";s:3:"Ȯ";s:2:"Ȯ";s:3:"ȯ";s:2:"ȯ";s:4:"Ȱ";s:2:"Ȱ";s:4:"ȱ";s:2:"ȱ";s:3:"Ȳ";s:2:"Ȳ";s:3:"ȳ";s:2:"ȳ";s:2:"̀";s:2:"̀";s:2:"́";s:2:"́";s:2:"̓";s:2:"̓";s:4:"̈́";s:2:"̈́";s:2:"ʹ";s:2:"ʹ";s:1:";";s:2:";";s:4:"΅";s:2:"΅";s:4:"Ά";s:2:"Ά";s:2:"·";s:2:"·";s:4:"Έ";s:2:"Έ";s:4:"Ή";s:2:"Ή";s:4:"Ί";s:2:"Ί";s:4:"Ό";s:2:"Ό";s:4:"Ύ";s:2:"Ύ";s:4:"Ώ";s:2:"Ώ";s:4:"ΐ";s:2:"ΐ";s:4:"Ϊ";s:2:"Ϊ";s:4:"Ϋ";s:2:"Ϋ";s:4:"ά";s:2:"ά";s:4:"έ";s:2:"έ";s:4:"ή";s:2:"ή";s:4:"ί";s:2:"ί";s:4:"ΰ";s:2:"ΰ";s:4:"ϊ";s:2:"ϊ";s:4:"ϋ";s:2:"ϋ";s:4:"ό";s:2:"ό";s:4:"ύ";s:2:"ύ";s:4:"ώ";s:2:"ώ";s:4:"ϓ";s:2:"ϓ";s:4:"ϔ";s:2:"ϔ";s:4:"Ѐ";s:2:"Ѐ";s:4:"Ё";s:2:"Ё";s:4:"Ѓ";s:2:"Ѓ";s:4:"Ї";s:2:"Ї";s:4:"Ќ";s:2:"Ќ";s:4:"Ѝ";s:2:"Ѝ";s:4:"Ў";s:2:"Ў";s:4:"Й";s:2:"Й";s:4:"й";s:2:"й";s:4:"ѐ";s:2:"ѐ";s:4:"ё";s:2:"ё";s:4:"ѓ";s:2:"ѓ";s:4:"ї";s:2:"ї";s:4:"ќ";s:2:"ќ";s:4:"ѝ";s:2:"ѝ";s:4:"ў";s:2:"ў";s:4:"Ѷ";s:2:"Ѷ";s:4:"ѷ";s:2:"ѷ";s:4:"Ӂ";s:2:"Ӂ";s:4:"ӂ";s:2:"ӂ";s:4:"Ӑ";s:2:"Ӑ";s:4:"ӑ";s:2:"ӑ";s:4:"Ӓ";s:2:"Ӓ";s:4:"ӓ";s:2:"ӓ";s:4:"Ӗ";s:2:"Ӗ";s:4:"ӗ";s:2:"ӗ";s:4:"Ӛ";s:2:"Ӛ";s:4:"ӛ";s:2:"ӛ";s:4:"Ӝ";s:2:"Ӝ";s:4:"ӝ";s:2:"ӝ";s:4:"Ӟ";s:2:"Ӟ";s:4:"ӟ";s:2:"ӟ";s:4:"Ӣ";s:2:"Ӣ";s:4:"ӣ";s:2:"ӣ";s:4:"Ӥ";s:2:"Ӥ";s:4:"ӥ";s:2:"ӥ";s:4:"Ӧ";s:2:"Ӧ";s:4:"ӧ";s:2:"ӧ";s:4:"Ӫ";s:2:"Ӫ";s:4:"ӫ";s:2:"ӫ";s:4:"Ӭ";s:2:"Ӭ";s:4:"ӭ";s:2:"ӭ";s:4:"Ӯ";s:2:"Ӯ";s:4:"ӯ";s:2:"ӯ";s:4:"Ӱ";s:2:"Ӱ";s:4:"ӱ";s:2:"ӱ";s:4:"Ӳ";s:2:"Ӳ";s:4:"ӳ";s:2:"ӳ";s:4:"Ӵ";s:2:"Ӵ";s:4:"ӵ";s:2:"ӵ";s:4:"Ӹ";s:2:"Ӹ";s:4:"ӹ";s:2:"ӹ";s:4:"آ";s:2:"آ";s:4:"أ";s:2:"أ";s:4:"ؤ";s:2:"ؤ";s:4:"إ";s:2:"إ";s:4:"ئ";s:2:"ئ";s:4:"ۀ";s:2:"ۀ";s:4:"ۂ";s:2:"ۂ";s:4:"ۓ";s:2:"ۓ";s:6:"ऩ";s:3:"ऩ";s:6:"ऱ";s:3:"ऱ";s:6:"ऴ";s:3:"ऴ";s:6:"ো";s:3:"ো";s:6:"ৌ";s:3:"ৌ";s:6:"ୈ";s:3:"ୈ";s:6:"ୋ";s:3:"ୋ";s:6:"ୌ";s:3:"ୌ";s:6:"ஔ";s:3:"ஔ";s:6:"ொ";s:3:"ொ";s:6:"ோ";s:3:"ோ";s:6:"ௌ";s:3:"ௌ";s:6:"ై";s:3:"ై";s:6:"ೀ";s:3:"ೀ";s:6:"ೇ";s:3:"ೇ";s:6:"ೈ";s:3:"ೈ";s:6:"ೊ";s:3:"ೊ";s:6:"ೋ";s:3:"ೋ";s:6:"ൊ";s:3:"ൊ";s:6:"ോ";s:3:"ോ";s:6:"ൌ";s:3:"ൌ";s:6:"ේ";s:3:"ේ";s:6:"ො";s:3:"ො";s:6:"ෝ";s:3:"ෝ";s:6:"ෞ";s:3:"ෞ";s:6:"ཱི";s:3:"ཱི";s:6:"ཱུ";s:3:"ཱུ";s:6:"ཱྀ";s:3:"ཱྀ";s:6:"ဦ";s:3:"ဦ";s:6:"ᬆ";s:3:"ᬆ";s:6:"ᬈ";s:3:"ᬈ";s:6:"ᬊ";s:3:"ᬊ";s:6:"ᬌ";s:3:"ᬌ";s:6:"ᬎ";s:3:"ᬎ";s:6:"ᬒ";s:3:"ᬒ";s:6:"ᬻ";s:3:"ᬻ";s:6:"ᬽ";s:3:"ᬽ";s:6:"ᭀ";s:3:"ᭀ";s:6:"ᭁ";s:3:"ᭁ";s:6:"ᭃ";s:3:"ᭃ";s:3:"Ḁ";s:3:"Ḁ";s:3:"ḁ";s:3:"ḁ";s:3:"Ḃ";s:3:"Ḃ";s:3:"ḃ";s:3:"ḃ";s:3:"Ḅ";s:3:"Ḅ";s:3:"ḅ";s:3:"ḅ";s:3:"Ḇ";s:3:"Ḇ";s:3:"ḇ";s:3:"ḇ";s:4:"Ḉ";s:3:"Ḉ";s:4:"ḉ";s:3:"ḉ";s:3:"Ḋ";s:3:"Ḋ";s:3:"ḋ";s:3:"ḋ";s:3:"Ḍ";s:3:"Ḍ";s:3:"ḍ";s:3:"ḍ";s:3:"Ḏ";s:3:"Ḏ";s:3:"ḏ";s:3:"ḏ";s:3:"Ḑ";s:3:"Ḑ";s:3:"ḑ";s:3:"ḑ";s:3:"Ḓ";s:3:"Ḓ";s:3:"ḓ";s:3:"ḓ";s:4:"Ḕ";s:3:"Ḕ";s:4:"ḕ";s:3:"ḕ";s:4:"Ḗ";s:3:"Ḗ";s:4:"ḗ";s:3:"ḗ";s:3:"Ḙ";s:3:"Ḙ";s:3:"ḙ";s:3:"ḙ";s:3:"Ḛ";s:3:"Ḛ";s:3:"ḛ";s:3:"ḛ";s:4:"Ḝ";s:3:"Ḝ";s:4:"ḝ";s:3:"ḝ";s:3:"Ḟ";s:3:"Ḟ";s:3:"ḟ";s:3:"ḟ";s:3:"Ḡ";s:3:"Ḡ";s:3:"ḡ";s:3:"ḡ";s:3:"Ḣ";s:3:"Ḣ";s:3:"ḣ";s:3:"ḣ";s:3:"Ḥ";s:3:"Ḥ";s:3:"ḥ";s:3:"ḥ";s:3:"Ḧ";s:3:"Ḧ";s:3:"ḧ";s:3:"ḧ";s:3:"Ḩ";s:3:"Ḩ";s:3:"ḩ";s:3:"ḩ";s:3:"Ḫ";s:3:"Ḫ";s:3:"ḫ";s:3:"ḫ";s:3:"Ḭ";s:3:"Ḭ";s:3:"ḭ";s:3:"ḭ";s:4:"Ḯ";s:3:"Ḯ";s:4:"ḯ";s:3:"ḯ";s:3:"Ḱ";s:3:"Ḱ";s:3:"ḱ";s:3:"ḱ";s:3:"Ḳ";s:3:"Ḳ";s:3:"ḳ";s:3:"ḳ";s:3:"Ḵ";s:3:"Ḵ";s:3:"ḵ";s:3:"ḵ";s:3:"Ḷ";s:3:"Ḷ";s:3:"ḷ";s:3:"ḷ";s:5:"Ḹ";s:3:"Ḹ";s:5:"ḹ";s:3:"ḹ";s:3:"Ḻ";s:3:"Ḻ";s:3:"ḻ";s:3:"ḻ";s:3:"Ḽ";s:3:"Ḽ";s:3:"ḽ";s:3:"ḽ";s:3:"Ḿ";s:3:"Ḿ";s:3:"ḿ";s:3:"ḿ";s:3:"Ṁ";s:3:"Ṁ";s:3:"ṁ";s:3:"ṁ";s:3:"Ṃ";s:3:"Ṃ";s:3:"ṃ";s:3:"ṃ";s:3:"Ṅ";s:3:"Ṅ";s:3:"ṅ";s:3:"ṅ";s:3:"Ṇ";s:3:"Ṇ";s:3:"ṇ";s:3:"ṇ";s:3:"Ṉ";s:3:"Ṉ";s:3:"ṉ";s:3:"ṉ";s:3:"Ṋ";s:3:"Ṋ";s:3:"ṋ";s:3:"ṋ";s:4:"Ṍ";s:3:"Ṍ";s:4:"ṍ";s:3:"ṍ";s:4:"Ṏ";s:3:"Ṏ";s:4:"ṏ";s:3:"ṏ";s:4:"Ṑ";s:3:"Ṑ";s:4:"ṑ";s:3:"ṑ";s:4:"Ṓ";s:3:"Ṓ";s:4:"ṓ";s:3:"ṓ";s:3:"Ṕ";s:3:"Ṕ";s:3:"ṕ";s:3:"ṕ";s:3:"Ṗ";s:3:"Ṗ";s:3:"ṗ";s:3:"ṗ";s:3:"Ṙ";s:3:"Ṙ";s:3:"ṙ";s:3:"ṙ";s:3:"Ṛ";s:3:"Ṛ";s:3:"ṛ";s:3:"ṛ";s:5:"Ṝ";s:3:"Ṝ";s:5:"ṝ";s:3:"ṝ";s:3:"Ṟ";s:3:"Ṟ";s:3:"ṟ";s:3:"ṟ";s:3:"Ṡ";s:3:"Ṡ";s:3:"ṡ";s:3:"ṡ";s:3:"Ṣ";s:3:"Ṣ";s:3:"ṣ";s:3:"ṣ";s:4:"Ṥ";s:3:"Ṥ";s:4:"ṥ";s:3:"ṥ";s:4:"Ṧ";s:3:"Ṧ";s:4:"ṧ";s:3:"ṧ";s:5:"Ṩ";s:3:"Ṩ";s:5:"ṩ";s:3:"ṩ";s:3:"Ṫ";s:3:"Ṫ";s:3:"ṫ";s:3:"ṫ";s:3:"Ṭ";s:3:"Ṭ";s:3:"ṭ";s:3:"ṭ";s:3:"Ṯ";s:3:"Ṯ";s:3:"ṯ";s:3:"ṯ";s:3:"Ṱ";s:3:"Ṱ";s:3:"ṱ";s:3:"ṱ";s:3:"Ṳ";s:3:"Ṳ";s:3:"ṳ";s:3:"ṳ";s:3:"Ṵ";s:3:"Ṵ";s:3:"ṵ";s:3:"ṵ";s:3:"Ṷ";s:3:"Ṷ";s:3:"ṷ";s:3:"ṷ";s:4:"Ṹ";s:3:"Ṹ";s:4:"ṹ";s:3:"ṹ";s:4:"Ṻ";s:3:"Ṻ";s:4:"ṻ";s:3:"ṻ";s:3:"Ṽ";s:3:"Ṽ";s:3:"ṽ";s:3:"ṽ";s:3:"Ṿ";s:3:"Ṿ";s:3:"ṿ";s:3:"ṿ";s:3:"Ẁ";s:3:"Ẁ";s:3:"ẁ";s:3:"ẁ";s:3:"Ẃ";s:3:"Ẃ";s:3:"ẃ";s:3:"ẃ";s:3:"Ẅ";s:3:"Ẅ";s:3:"ẅ";s:3:"ẅ";s:3:"Ẇ";s:3:"Ẇ";s:3:"ẇ";s:3:"ẇ";s:3:"Ẉ";s:3:"Ẉ";s:3:"ẉ";s:3:"ẉ";s:3:"Ẋ";s:3:"Ẋ";s:3:"ẋ";s:3:"ẋ";s:3:"Ẍ";s:3:"Ẍ";s:3:"ẍ";s:3:"ẍ";s:3:"Ẏ";s:3:"Ẏ";s:3:"ẏ";s:3:"ẏ";s:3:"Ẑ";s:3:"Ẑ";s:3:"ẑ";s:3:"ẑ";s:3:"Ẓ";s:3:"Ẓ";s:3:"ẓ";s:3:"ẓ";s:3:"Ẕ";s:3:"Ẕ";s:3:"ẕ";s:3:"ẕ";s:3:"ẖ";s:3:"ẖ";s:3:"ẗ";s:3:"ẗ";s:3:"ẘ";s:3:"ẘ";s:3:"ẙ";s:3:"ẙ";s:4:"ẛ";s:3:"ẛ";s:3:"Ạ";s:3:"Ạ";s:3:"ạ";s:3:"ạ";s:3:"Ả";s:3:"Ả";s:3:"ả";s:3:"ả";s:4:"Ấ";s:3:"Ấ";s:4:"ấ";s:3:"ấ";s:4:"Ầ";s:3:"Ầ";s:4:"ầ";s:3:"ầ";s:4:"Ẩ";s:3:"Ẩ";s:4:"ẩ";s:3:"ẩ";s:4:"Ẫ";s:3:"Ẫ";s:4:"ẫ";s:3:"ẫ";s:5:"Ậ";s:3:"Ậ";s:5:"ậ";s:3:"ậ";s:4:"Ắ";s:3:"Ắ";s:4:"ắ";s:3:"ắ";s:4:"Ằ";s:3:"Ằ";s:4:"ằ";s:3:"ằ";s:4:"Ẳ";s:3:"Ẳ";s:4:"ẳ";s:3:"ẳ";s:4:"Ẵ";s:3:"Ẵ";s:4:"ẵ";s:3:"ẵ";s:5:"Ặ";s:3:"Ặ";s:5:"ặ";s:3:"ặ";s:3:"Ẹ";s:3:"Ẹ";s:3:"ẹ";s:3:"ẹ";s:3:"Ẻ";s:3:"Ẻ";s:3:"ẻ";s:3:"ẻ";s:3:"Ẽ";s:3:"Ẽ";s:3:"ẽ";s:3:"ẽ";s:4:"Ế";s:3:"Ế";s:4:"ế";s:3:"ế";s:4:"Ề";s:3:"Ề";s:4:"ề";s:3:"ề";s:4:"Ể";s:3:"Ể";s:4:"ể";s:3:"ể";s:4:"Ễ";s:3:"Ễ";s:4:"ễ";s:3:"ễ";s:5:"Ệ";s:3:"Ệ";s:5:"ệ";s:3:"ệ";s:3:"Ỉ";s:3:"Ỉ";s:3:"ỉ";s:3:"ỉ";s:3:"Ị";s:3:"Ị";s:3:"ị";s:3:"ị";s:3:"Ọ";s:3:"Ọ";s:3:"ọ";s:3:"ọ";s:3:"Ỏ";s:3:"Ỏ";s:3:"ỏ";s:3:"ỏ";s:4:"Ố";s:3:"Ố";s:4:"ố";s:3:"ố";s:4:"Ồ";s:3:"Ồ";s:4:"ồ";s:3:"ồ";s:4:"Ổ";s:3:"Ổ";s:4:"ổ";s:3:"ổ";s:4:"Ỗ";s:3:"Ỗ";s:4:"ỗ";s:3:"ỗ";s:5:"Ộ";s:3:"Ộ";s:5:"ộ";s:3:"ộ";s:4:"Ớ";s:3:"Ớ";s:4:"ớ";s:3:"ớ";s:4:"Ờ";s:3:"Ờ";s:4:"ờ";s:3:"ờ";s:4:"Ở";s:3:"Ở";s:4:"ở";s:3:"ở";s:4:"Ỡ";s:3:"Ỡ";s:4:"ỡ";s:3:"ỡ";s:4:"Ợ";s:3:"Ợ";s:4:"ợ";s:3:"ợ";s:3:"Ụ";s:3:"Ụ";s:3:"ụ";s:3:"ụ";s:3:"Ủ";s:3:"Ủ";s:3:"ủ";s:3:"ủ";s:4:"Ứ";s:3:"Ứ";s:4:"ứ";s:3:"ứ";s:4:"Ừ";s:3:"Ừ";s:4:"ừ";s:3:"ừ";s:4:"Ử";s:3:"Ử";s:4:"ử";s:3:"ử";s:4:"Ữ";s:3:"Ữ";s:4:"ữ";s:3:"ữ";s:4:"Ự";s:3:"Ự";s:4:"ự";s:3:"ự";s:3:"Ỳ";s:3:"Ỳ";s:3:"ỳ";s:3:"ỳ";s:3:"Ỵ";s:3:"Ỵ";s:3:"ỵ";s:3:"ỵ";s:3:"Ỷ";s:3:"Ỷ";s:3:"ỷ";s:3:"ỷ";s:3:"Ỹ";s:3:"Ỹ";s:3:"ỹ";s:3:"ỹ";s:4:"ἀ";s:3:"ἀ";s:4:"ἁ";s:3:"ἁ";s:5:"ἂ";s:3:"ἂ";s:5:"ἃ";s:3:"ἃ";s:5:"ἄ";s:3:"ἄ";s:5:"ἅ";s:3:"ἅ";s:5:"ἆ";s:3:"ἆ";s:5:"ἇ";s:3:"ἇ";s:4:"Ἀ";s:3:"Ἀ";s:4:"Ἁ";s:3:"Ἁ";s:5:"Ἂ";s:3:"Ἂ";s:5:"Ἃ";s:3:"Ἃ";s:5:"Ἄ";s:3:"Ἄ";s:5:"Ἅ";s:3:"Ἅ";s:5:"Ἆ";s:3:"Ἆ";s:5:"Ἇ";s:3:"Ἇ";s:4:"ἐ";s:3:"ἐ";s:4:"ἑ";s:3:"ἑ";s:5:"ἒ";s:3:"ἒ";s:5:"ἓ";s:3:"ἓ";s:5:"ἔ";s:3:"ἔ";s:5:"ἕ";s:3:"ἕ";s:4:"Ἐ";s:3:"Ἐ";s:4:"Ἑ";s:3:"Ἑ";s:5:"Ἒ";s:3:"Ἒ";s:5:"Ἓ";s:3:"Ἓ";s:5:"Ἔ";s:3:"Ἔ";s:5:"Ἕ";s:3:"Ἕ";s:4:"ἠ";s:3:"ἠ";s:4:"ἡ";s:3:"ἡ";s:5:"ἢ";s:3:"ἢ";s:5:"ἣ";s:3:"ἣ";s:5:"ἤ";s:3:"ἤ";s:5:"ἥ";s:3:"ἥ";s:5:"ἦ";s:3:"ἦ";s:5:"ἧ";s:3:"ἧ";s:4:"Ἠ";s:3:"Ἠ";s:4:"Ἡ";s:3:"Ἡ";s:5:"Ἢ";s:3:"Ἢ";s:5:"Ἣ";s:3:"Ἣ";s:5:"Ἤ";s:3:"Ἤ";s:5:"Ἥ";s:3:"Ἥ";s:5:"Ἦ";s:3:"Ἦ";s:5:"Ἧ";s:3:"Ἧ";s:4:"ἰ";s:3:"ἰ";s:4:"ἱ";s:3:"ἱ";s:5:"ἲ";s:3:"ἲ";s:5:"ἳ";s:3:"ἳ";s:5:"ἴ";s:3:"ἴ";s:5:"ἵ";s:3:"ἵ";s:5:"ἶ";s:3:"ἶ";s:5:"ἷ";s:3:"ἷ";s:4:"Ἰ";s:3:"Ἰ";s:4:"Ἱ";s:3:"Ἱ";s:5:"Ἲ";s:3:"Ἲ";s:5:"Ἳ";s:3:"Ἳ";s:5:"Ἴ";s:3:"Ἴ";s:5:"Ἵ";s:3:"Ἵ";s:5:"Ἶ";s:3:"Ἶ";s:5:"Ἷ";s:3:"Ἷ";s:4:"ὀ";s:3:"ὀ";s:4:"ὁ";s:3:"ὁ";s:5:"ὂ";s:3:"ὂ";s:5:"ὃ";s:3:"ὃ";s:5:"ὄ";s:3:"ὄ";s:5:"ὅ";s:3:"ὅ";s:4:"Ὀ";s:3:"Ὀ";s:4:"Ὁ";s:3:"Ὁ";s:5:"Ὂ";s:3:"Ὂ";s:5:"Ὃ";s:3:"Ὃ";s:5:"Ὄ";s:3:"Ὄ";s:5:"Ὅ";s:3:"Ὅ";s:4:"ὐ";s:3:"ὐ";s:4:"ὑ";s:3:"ὑ";s:5:"ὒ";s:3:"ὒ";s:5:"ὓ";s:3:"ὓ";s:5:"ὔ";s:3:"ὔ";s:5:"ὕ";s:3:"ὕ";s:5:"ὖ";s:3:"ὖ";s:5:"ὗ";s:3:"ὗ";s:4:"Ὑ";s:3:"Ὑ";s:5:"Ὓ";s:3:"Ὓ";s:5:"Ὕ";s:3:"Ὕ";s:5:"Ὗ";s:3:"Ὗ";s:4:"ὠ";s:3:"ὠ";s:4:"ὡ";s:3:"ὡ";s:5:"ὢ";s:3:"ὢ";s:5:"ὣ";s:3:"ὣ";s:5:"ὤ";s:3:"ὤ";s:5:"ὥ";s:3:"ὥ";s:5:"ὦ";s:3:"ὦ";s:5:"ὧ";s:3:"ὧ";s:4:"Ὠ";s:3:"Ὠ";s:4:"Ὡ";s:3:"Ὡ";s:5:"Ὢ";s:3:"Ὢ";s:5:"Ὣ";s:3:"Ὣ";s:5:"Ὤ";s:3:"Ὤ";s:5:"Ὥ";s:3:"Ὥ";s:5:"Ὦ";s:3:"Ὦ";s:5:"Ὧ";s:3:"Ὧ";s:4:"ὰ";s:3:"ὰ";s:2:"ά";s:3:"ά";s:4:"ὲ";s:3:"ὲ";s:2:"έ";s:3:"έ";s:4:"ὴ";s:3:"ὴ";s:2:"ή";s:3:"ή";s:4:"ὶ";s:3:"ὶ";s:2:"ί";s:3:"ί";s:4:"ὸ";s:3:"ὸ";s:2:"ό";s:3:"ό";s:4:"ὺ";s:3:"ὺ";s:2:"ύ";s:3:"ύ";s:4:"ὼ";s:3:"ὼ";s:2:"ώ";s:3:"ώ";s:5:"ᾀ";s:3:"ᾀ";s:5:"ᾁ";s:3:"ᾁ";s:5:"ᾂ";s:3:"ᾂ";s:5:"ᾃ";s:3:"ᾃ";s:5:"ᾄ";s:3:"ᾄ";s:5:"ᾅ";s:3:"ᾅ";s:5:"ᾆ";s:3:"ᾆ";s:5:"ᾇ";s:3:"ᾇ";s:5:"ᾈ";s:3:"ᾈ";s:5:"ᾉ";s:3:"ᾉ";s:5:"ᾊ";s:3:"ᾊ";s:5:"ᾋ";s:3:"ᾋ";s:5:"ᾌ";s:3:"ᾌ";s:5:"ᾍ";s:3:"ᾍ";s:5:"ᾎ";s:3:"ᾎ";s:5:"ᾏ";s:3:"ᾏ";s:5:"ᾐ";s:3:"ᾐ";s:5:"ᾑ";s:3:"ᾑ";s:5:"ᾒ";s:3:"ᾒ";s:5:"ᾓ";s:3:"ᾓ";s:5:"ᾔ";s:3:"ᾔ";s:5:"ᾕ";s:3:"ᾕ";s:5:"ᾖ";s:3:"ᾖ";s:5:"ᾗ";s:3:"ᾗ";s:5:"ᾘ";s:3:"ᾘ";s:5:"ᾙ";s:3:"ᾙ";s:5:"ᾚ";s:3:"ᾚ";s:5:"ᾛ";s:3:"ᾛ";s:5:"ᾜ";s:3:"ᾜ";s:5:"ᾝ";s:3:"ᾝ";s:5:"ᾞ";s:3:"ᾞ";s:5:"ᾟ";s:3:"ᾟ";s:5:"ᾠ";s:3:"ᾠ";s:5:"ᾡ";s:3:"ᾡ";s:5:"ᾢ";s:3:"ᾢ";s:5:"ᾣ";s:3:"ᾣ";s:5:"ᾤ";s:3:"ᾤ";s:5:"ᾥ";s:3:"ᾥ";s:5:"ᾦ";s:3:"ᾦ";s:5:"ᾧ";s:3:"ᾧ";s:5:"ᾨ";s:3:"ᾨ";s:5:"ᾩ";s:3:"ᾩ";s:5:"ᾪ";s:3:"ᾪ";s:5:"ᾫ";s:3:"ᾫ";s:5:"ᾬ";s:3:"ᾬ";s:5:"ᾭ";s:3:"ᾭ";s:5:"ᾮ";s:3:"ᾮ";s:5:"ᾯ";s:3:"ᾯ";s:4:"ᾰ";s:3:"ᾰ";s:4:"ᾱ";s:3:"ᾱ";s:5:"ᾲ";s:3:"ᾲ";s:4:"ᾳ";s:3:"ᾳ";s:4:"ᾴ";s:3:"ᾴ";s:4:"ᾶ";s:3:"ᾶ";s:5:"ᾷ";s:3:"ᾷ";s:4:"Ᾰ";s:3:"Ᾰ";s:4:"Ᾱ";s:3:"Ᾱ";s:4:"Ὰ";s:3:"Ὰ";s:2:"Ά";s:3:"Ά";s:4:"ᾼ";s:3:"ᾼ";s:2:"ι";s:3:"ι";s:4:"῁";s:3:"῁";s:5:"ῂ";s:3:"ῂ";s:4:"ῃ";s:3:"ῃ";s:4:"ῄ";s:3:"ῄ";s:4:"ῆ";s:3:"ῆ";s:5:"ῇ";s:3:"ῇ";s:4:"Ὲ";s:3:"Ὲ";s:2:"Έ";s:3:"Έ";s:4:"Ὴ";s:3:"Ὴ";s:2:"Ή";s:3:"Ή";s:4:"ῌ";s:3:"ῌ";s:5:"῍";s:3:"῍";s:5:"῎";s:3:"῎";s:5:"῏";s:3:"῏";s:4:"ῐ";s:3:"ῐ";s:4:"ῑ";s:3:"ῑ";s:4:"ῒ";s:3:"ῒ";s:2:"ΐ";s:3:"ΐ";s:4:"ῖ";s:3:"ῖ";s:4:"ῗ";s:3:"ῗ";s:4:"Ῐ";s:3:"Ῐ";s:4:"Ῑ";s:3:"Ῑ";s:4:"Ὶ";s:3:"Ὶ";s:2:"Ί";s:3:"Ί";s:5:"῝";s:3:"῝";s:5:"῞";s:3:"῞";s:5:"῟";s:3:"῟";s:4:"ῠ";s:3:"ῠ";s:4:"ῡ";s:3:"ῡ";s:4:"ῢ";s:3:"ῢ";s:2:"ΰ";s:3:"ΰ";s:4:"ῤ";s:3:"ῤ";s:4:"ῥ";s:3:"ῥ";s:4:"ῦ";s:3:"ῦ";s:4:"ῧ";s:3:"ῧ";s:4:"Ῠ";s:3:"Ῠ";s:4:"Ῡ";s:3:"Ῡ";s:4:"Ὺ";s:3:"Ὺ";s:2:"Ύ";s:3:"Ύ";s:4:"Ῥ";s:3:"Ῥ";s:4:"῭";s:3:"῭";s:2:"΅";s:3:"΅";s:1:"`";s:3:"`";s:5:"ῲ";s:3:"ῲ";s:4:"ῳ";s:3:"ῳ";s:4:"ῴ";s:3:"ῴ";s:4:"ῶ";s:3:"ῶ";s:5:"ῷ";s:3:"ῷ";s:4:"Ὸ";s:3:"Ὸ";s:2:"Ό";s:3:"Ό";s:4:"Ὼ";s:3:"Ὼ";s:2:"Ώ";s:3:"Ώ";s:4:"ῼ";s:3:"ῼ";s:2:"´";s:3:"´";s:3:" ";s:3:" ";s:3:" ";s:3:" ";s:2:"Ω";s:3:"Ω";s:1:"K";s:3:"K";s:2:"Å";s:3:"Å";s:5:"↚";s:3:"↚";s:5:"↛";s:3:"↛";s:5:"↮";s:3:"↮";s:5:"⇍";s:3:"⇍";s:5:"⇎";s:3:"⇎";s:5:"⇏";s:3:"⇏";s:5:"∄";s:3:"∄";s:5:"∉";s:3:"∉";s:5:"∌";s:3:"∌";s:5:"∤";s:3:"∤";s:5:"∦";s:3:"∦";s:5:"≁";s:3:"≁";s:5:"≄";s:3:"≄";s:5:"≇";s:3:"≇";s:5:"≉";s:3:"≉";s:3:"≠";s:3:"≠";s:5:"≢";s:3:"≢";s:5:"≭";s:3:"≭";s:3:"≮";s:3:"≮";s:3:"≯";s:3:"≯";s:5:"≰";s:3:"≰";s:5:"≱";s:3:"≱";s:5:"≴";s:3:"≴";s:5:"≵";s:3:"≵";s:5:"≸";s:3:"≸";s:5:"≹";s:3:"≹";s:5:"⊀";s:3:"⊀";s:5:"⊁";s:3:"⊁";s:5:"⊄";s:3:"⊄";s:5:"⊅";s:3:"⊅";s:5:"⊈";s:3:"⊈";s:5:"⊉";s:3:"⊉";s:5:"⊬";s:3:"⊬";s:5:"⊭";s:3:"⊭";s:5:"⊮";s:3:"⊮";s:5:"⊯";s:3:"⊯";s:5:"⋠";s:3:"⋠";s:5:"⋡";s:3:"⋡";s:5:"⋢";s:3:"⋢";s:5:"⋣";s:3:"⋣";s:5:"⋪";s:3:"⋪";s:5:"⋫";s:3:"⋫";s:5:"⋬";s:3:"⋬";s:5:"⋭";s:3:"⋭";s:3:"〈";s:3:"〈";s:3:"〉";s:3:"〉";s:6:"が";s:3:"が";s:6:"ぎ";s:3:"ぎ";s:6:"ぐ";s:3:"ぐ";s:6:"げ";s:3:"げ";s:6:"ご";s:3:"ご";s:6:"ざ";s:3:"ざ";s:6:"じ";s:3:"じ";s:6:"ず";s:3:"ず";s:6:"ぜ";s:3:"ぜ";s:6:"ぞ";s:3:"ぞ";s:6:"だ";s:3:"だ";s:6:"ぢ";s:3:"ぢ";s:6:"づ";s:3:"づ";s:6:"で";s:3:"で";s:6:"ど";s:3:"ど";s:6:"ば";s:3:"ば";s:6:"ぱ";s:3:"ぱ";s:6:"び";s:3:"び";s:6:"ぴ";s:3:"ぴ";s:6:"ぶ";s:3:"ぶ";s:6:"ぷ";s:3:"ぷ";s:6:"べ";s:3:"べ";s:6:"ぺ";s:3:"ぺ";s:6:"ぼ";s:3:"ぼ";s:6:"ぽ";s:3:"ぽ";s:6:"ゔ";s:3:"ゔ";s:6:"ゞ";s:3:"ゞ";s:6:"ガ";s:3:"ガ";s:6:"ギ";s:3:"ギ";s:6:"グ";s:3:"グ";s:6:"ゲ";s:3:"ゲ";s:6:"ゴ";s:3:"ゴ";s:6:"ザ";s:3:"ザ";s:6:"ジ";s:3:"ジ";s:6:"ズ";s:3:"ズ";s:6:"ゼ";s:3:"ゼ";s:6:"ゾ";s:3:"ゾ";s:6:"ダ";s:3:"ダ";s:6:"ヂ";s:3:"ヂ";s:6:"ヅ";s:3:"ヅ";s:6:"デ";s:3:"デ";s:6:"ド";s:3:"ド";s:6:"バ";s:3:"バ";s:6:"パ";s:3:"パ";s:6:"ビ";s:3:"ビ";s:6:"ピ";s:3:"ピ";s:6:"ブ";s:3:"ブ";s:6:"プ";s:3:"プ";s:6:"ベ";s:3:"ベ";s:6:"ペ";s:3:"ペ";s:6:"ボ";s:3:"ボ";s:6:"ポ";s:3:"ポ";s:6:"ヴ";s:3:"ヴ";s:6:"ヷ";s:3:"ヷ";s:6:"ヸ";s:3:"ヸ";s:6:"ヹ";s:3:"ヹ";s:6:"ヺ";s:3:"ヺ";s:6:"ヾ";s:3:"ヾ";s:3:"豈";s:3:"豈";s:3:"更";s:3:"更";s:3:"車";s:3:"車";s:3:"賈";s:3:"賈";s:3:"滑";s:3:"滑";s:3:"串";s:3:"串";s:3:"句";s:3:"句";s:3:"龜";s:3:"龜";s:3:"契";s:3:"契";s:3:"金";s:3:"金";s:3:"喇";s:3:"喇";s:3:"奈";s:3:"奈";s:3:"懶";s:4:"懶";s:3:"癩";s:3:"癩";s:3:"羅";s:3:"羅";s:3:"蘿";s:3:"蘿";s:3:"螺";s:3:"螺";s:3:"裸";s:3:"裸";s:3:"邏";s:3:"邏";s:3:"樂";s:3:"樂";s:3:"洛";s:3:"洛";s:3:"烙";s:3:"烙";s:3:"珞";s:3:"珞";s:3:"落";s:3:"落";s:3:"酪";s:3:"酪";s:3:"駱";s:3:"駱";s:3:"亂";s:3:"亂";s:3:"卵";s:3:"卵";s:3:"欄";s:3:"欄";s:3:"爛";s:3:"爛";s:3:"蘭";s:3:"蘭";s:3:"鸞";s:3:"鸞";s:3:"嵐";s:3:"嵐";s:3:"濫";s:3:"濫";s:3:"藍";s:3:"藍";s:3:"襤";s:3:"襤";s:3:"拉";s:3:"拉";s:3:"臘";s:3:"臘";s:3:"蠟";s:3:"蠟";s:3:"廊";s:4:"廊";s:3:"朗";s:4:"朗";s:3:"浪";s:3:"浪";s:3:"狼";s:3:"狼";s:3:"郎";s:3:"郎";s:3:"來";s:3:"來";s:3:"冷";s:3:"冷";s:3:"勞";s:3:"勞";s:3:"擄";s:3:"擄";s:3:"櫓";s:3:"櫓";s:3:"爐";s:3:"爐";s:3:"盧";s:3:"盧";s:3:"老";s:3:"老";s:3:"蘆";s:3:"蘆";s:3:"虜";s:4:"虜";s:3:"路";s:3:"路";s:3:"露";s:3:"露";s:3:"魯";s:3:"魯";s:3:"鷺";s:3:"鷺";s:3:"碌";s:4:"碌";s:3:"祿";s:3:"祿";s:3:"綠";s:3:"綠";s:3:"菉";s:3:"菉";s:3:"錄";s:3:"錄";s:3:"鹿";s:3:"鹿";s:3:"論";s:3:"論";s:3:"壟";s:3:"壟";s:3:"弄";s:3:"弄";s:3:"籠";s:3:"籠";s:3:"聾";s:3:"聾";s:3:"牢";s:3:"牢";s:3:"磊";s:3:"磊";s:3:"賂";s:3:"賂";s:3:"雷";s:3:"雷";s:3:"壘";s:3:"壘";s:3:"屢";s:3:"屢";s:3:"樓";s:3:"樓";s:3:"淚";s:3:"淚";s:3:"漏";s:3:"漏";s:3:"累";s:3:"累";s:3:"縷";s:3:"縷";s:3:"陋";s:3:"陋";s:3:"勒";s:3:"勒";s:3:"肋";s:3:"肋";s:3:"凜";s:3:"凜";s:3:"凌";s:3:"凌";s:3:"稜";s:3:"稜";s:3:"綾";s:3:"綾";s:3:"菱";s:3:"菱";s:3:"陵";s:3:"陵";s:3:"讀";s:3:"讀";s:3:"拏";s:3:"拏";s:3:"諾";s:3:"諾";s:3:"丹";s:3:"丹";s:3:"寧";s:4:"寧";s:3:"怒";s:3:"怒";s:3:"率";s:3:"率";s:3:"異";s:4:"異";s:3:"北";s:4:"北";s:3:"磻";s:3:"磻";s:3:"便";s:3:"便";s:3:"復";s:3:"復";s:3:"不";s:3:"不";s:3:"泌";s:3:"泌";s:3:"數";s:3:"數";s:3:"索";s:3:"索";s:3:"參";s:3:"參";s:3:"塞";s:3:"塞";s:3:"省";s:3:"省";s:3:"葉";s:3:"葉";s:3:"說";s:3:"說";s:3:"殺";s:4:"殺";s:3:"辰";s:3:"辰";s:3:"沈";s:3:"沈";s:3:"拾";s:3:"拾";s:3:"若";s:4:"若";s:3:"掠";s:3:"掠";s:3:"略";s:3:"略";s:3:"亮";s:3:"亮";s:3:"兩";s:3:"兩";s:3:"凉";s:3:"凉";s:3:"梁";s:3:"梁";s:3:"糧";s:3:"糧";s:3:"良";s:3:"良";s:3:"諒";s:3:"諒";s:3:"量";s:3:"量";s:3:"勵";s:3:"勵";s:3:"呂";s:3:"呂";s:3:"女";s:3:"女";s:3:"廬";s:3:"廬";s:3:"旅";s:3:"旅";s:3:"濾";s:3:"濾";s:3:"礪";s:3:"礪";s:3:"閭";s:3:"閭";s:3:"驪";s:3:"驪";s:3:"麗";s:3:"麗";s:3:"黎";s:3:"黎";s:3:"力";s:3:"力";s:3:"曆";s:3:"曆";s:3:"歷";s:3:"歷";s:3:"轢";s:3:"轢";s:3:"年";s:3:"年";s:3:"憐";s:3:"憐";s:3:"戀";s:3:"戀";s:3:"撚";s:3:"撚";s:3:"漣";s:3:"漣";s:3:"煉";s:3:"煉";s:3:"璉";s:3:"璉";s:3:"秊";s:3:"秊";s:3:"練";s:3:"練";s:3:"聯";s:3:"聯";s:3:"輦";s:3:"輦";s:3:"蓮";s:3:"蓮";s:3:"連";s:3:"連";s:3:"鍊";s:3:"鍊";s:3:"列";s:3:"列";s:3:"劣";s:3:"劣";s:3:"咽";s:3:"咽";s:3:"烈";s:3:"烈";s:3:"裂";s:3:"裂";s:3:"廉";s:3:"廉";s:3:"念";s:3:"念";s:3:"捻";s:3:"捻";s:3:"殮";s:3:"殮";s:3:"簾";s:3:"簾";s:3:"獵";s:3:"獵";s:3:"令";s:3:"令";s:3:"囹";s:3:"囹";s:3:"嶺";s:3:"嶺";s:3:"怜";s:3:"怜";s:3:"玲";s:3:"玲";s:3:"瑩";s:3:"瑩";s:3:"羚";s:3:"羚";s:3:"聆";s:3:"聆";s:3:"鈴";s:3:"鈴";s:3:"零";s:3:"零";s:3:"靈";s:3:"靈";s:3:"領";s:3:"領";s:3:"例";s:3:"例";s:3:"禮";s:3:"禮";s:3:"醴";s:3:"醴";s:3:"隸";s:3:"隸";s:3:"惡";s:3:"惡";s:3:"了";s:3:"了";s:3:"僚";s:3:"僚";s:3:"寮";s:3:"寮";s:3:"尿";s:3:"尿";s:3:"料";s:3:"料";s:3:"燎";s:3:"燎";s:3:"療";s:3:"療";s:3:"蓼";s:3:"蓼";s:3:"遼";s:3:"遼";s:3:"龍";s:3:"龍";s:3:"暈";s:3:"暈";s:3:"阮";s:3:"阮";s:3:"劉";s:3:"劉";s:3:"杻";s:3:"杻";s:3:"柳";s:3:"柳";s:3:"流";s:4:"流";s:3:"溜";s:3:"溜";s:3:"琉";s:3:"琉";s:3:"留";s:3:"留";s:3:"硫";s:3:"硫";s:3:"紐";s:3:"紐";s:3:"類";s:3:"類";s:3:"六";s:3:"六";s:3:"戮";s:3:"戮";s:3:"陸";s:3:"陸";s:3:"倫";s:3:"倫";s:3:"崙";s:3:"崙";s:3:"淪";s:3:"淪";s:3:"輪";s:3:"輪";s:3:"律";s:3:"律";s:3:"慄";s:3:"慄";s:3:"栗";s:3:"栗";s:3:"隆";s:3:"隆";s:3:"利";s:3:"利";s:3:"吏";s:3:"吏";s:3:"履";s:3:"履";s:3:"易";s:3:"易";s:3:"李";s:3:"李";s:3:"梨";s:3:"梨";s:3:"泥";s:3:"泥";s:3:"理";s:3:"理";s:3:"痢";s:3:"痢";s:3:"罹";s:3:"罹";s:3:"裏";s:3:"裏";s:3:"裡";s:3:"裡";s:3:"里";s:3:"里";s:3:"離";s:3:"離";s:3:"匿";s:3:"匿";s:3:"溺";s:3:"溺";s:3:"吝";s:3:"吝";s:3:"燐";s:3:"燐";s:3:"璘";s:3:"璘";s:3:"藺";s:3:"藺";s:3:"隣";s:3:"隣";s:3:"鱗";s:3:"鱗";s:3:"麟";s:3:"麟";s:3:"林";s:3:"林";s:3:"淋";s:3:"淋";s:3:"臨";s:3:"臨";s:3:"立";s:3:"立";s:3:"笠";s:3:"笠";s:3:"粒";s:3:"粒";s:3:"狀";s:3:"狀";s:3:"炙";s:3:"炙";s:3:"識";s:3:"識";s:3:"什";s:3:"什";s:3:"茶";s:3:"茶";s:3:"刺";s:3:"刺";s:3:"切";s:4:"切";s:3:"度";s:3:"度";s:3:"拓";s:3:"拓";s:3:"糖";s:3:"糖";s:3:"宅";s:3:"宅";s:3:"洞";s:3:"洞";s:3:"暴";s:3:"暴";s:3:"輻";s:3:"輻";s:3:"行";s:3:"行";s:3:"降";s:3:"降";s:3:"見";s:3:"見";s:3:"廓";s:3:"廓";s:3:"兀";s:3:"兀";s:3:"嗀";s:3:"嗀";s:3:"塚";s:3:"塚";s:3:"晴";s:3:"晴";s:3:"凞";s:3:"凞";s:3:"猪";s:3:"猪";s:3:"益";s:3:"益";s:3:"礼";s:3:"礼";s:3:"神";s:3:"神";s:3:"祥";s:3:"祥";s:3:"福";s:4:"福";s:3:"靖";s:3:"靖";s:3:"精";s:3:"精";s:3:"羽";s:3:"羽";s:3:"蘒";s:3:"蘒";s:3:"諸";s:3:"諸";s:3:"逸";s:3:"逸";s:3:"都";s:3:"都";s:3:"飯";s:3:"飯";s:3:"飼";s:3:"飼";s:3:"館";s:3:"館";s:3:"鶴";s:3:"鶴";s:3:"侮";s:4:"侮";s:3:"僧";s:4:"僧";s:3:"免";s:4:"免";s:3:"勉";s:4:"勉";s:3:"勤";s:4:"勤";s:3:"卑";s:4:"卑";s:3:"喝";s:3:"喝";s:3:"嘆";s:4:"嘆";s:3:"器";s:3:"器";s:3:"塀";s:3:"塀";s:3:"墨";s:3:"墨";s:3:"層";s:3:"層";s:3:"屮";s:4:"屮";s:3:"悔";s:4:"悔";s:3:"慨";s:3:"慨";s:3:"憎";s:4:"憎";s:3:"懲";s:4:"懲";s:3:"敏";s:4:"敏";s:3:"既";s:3:"既";s:3:"暑";s:4:"暑";s:3:"梅";s:4:"梅";s:3:"海";s:4:"海";s:3:"渚";s:3:"渚";s:3:"漢";s:3:"漢";s:3:"煮";s:3:"煮";s:3:"爫";s:3:"爫";s:3:"琢";s:3:"琢";s:3:"碑";s:3:"碑";s:3:"社";s:3:"社";s:3:"祉";s:3:"祉";s:3:"祈";s:3:"祈";s:3:"祐";s:3:"祐";s:3:"祖";s:4:"祖";s:3:"祝";s:3:"祝";s:3:"禍";s:3:"禍";s:3:"禎";s:3:"禎";s:3:"穀";s:4:"穀";s:3:"突";s:3:"突";s:3:"節";s:3:"節";s:3:"縉";s:3:"縉";s:3:"繁";s:3:"繁";s:3:"署";s:3:"署";s:3:"者";s:4:"者";s:3:"臭";s:3:"臭";s:3:"艹";s:3:"艹";s:3:"著";s:4:"著";s:3:"褐";s:3:"褐";s:3:"視";s:3:"視";s:3:"謁";s:3:"謁";s:3:"謹";s:3:"謹";s:3:"賓";s:3:"賓";s:3:"贈";s:3:"贈";s:3:"辶";s:3:"辶";s:3:"難";s:3:"難";s:3:"響";s:3:"響";s:3:"頻";s:3:"頻";s:3:"恵";s:3:"恵";s:4:"𤋮";s:3:"𤋮";s:3:"舘";s:3:"舘";s:3:"並";s:3:"並";s:3:"况";s:4:"况";s:3:"全";s:3:"全";s:3:"侀";s:3:"侀";s:3:"充";s:3:"充";s:3:"冀";s:3:"冀";s:3:"勇";s:4:"勇";s:3:"勺";s:4:"勺";s:3:"啕";s:3:"啕";s:3:"喙";s:4:"喙";s:3:"嗢";s:3:"嗢";s:3:"墳";s:3:"墳";s:3:"奄";s:3:"奄";s:3:"奔";s:3:"奔";s:3:"婢";s:3:"婢";s:3:"嬨";s:3:"嬨";s:3:"廒";s:3:"廒";s:3:"廙";s:3:"廙";s:3:"彩";s:3:"彩";s:3:"徭";s:3:"徭";s:3:"惘";s:3:"惘";s:3:"慎";s:4:"慎";s:3:"愈";s:3:"愈";s:3:"慠";s:3:"慠";s:3:"戴";s:3:"戴";s:3:"揄";s:3:"揄";s:3:"搜";s:3:"搜";s:3:"摒";s:3:"摒";s:3:"敖";s:3:"敖";s:3:"望";s:4:"望";s:3:"杖";s:3:"杖";s:3:"歹";s:3:"歹";s:3:"滛";s:3:"滛";s:3:"滋";s:4:"滋";s:3:"瀞";s:4:"瀞";s:3:"瞧";s:3:"瞧";s:3:"爵";s:4:"爵";s:3:"犯";s:3:"犯";s:3:"瑱";s:4:"瑱";s:3:"甆";s:3:"甆";s:3:"画";s:3:"画";s:3:"瘝";s:3:"瘝";s:3:"瘟";s:3:"瘟";s:3:"盛";s:3:"盛";s:3:"直";s:4:"直";s:3:"睊";s:4:"睊";s:3:"着";s:3:"着";s:3:"磌";s:4:"磌";s:3:"窱";s:3:"窱";s:3:"类";s:3:"类";s:3:"絛";s:3:"絛";s:3:"缾";s:3:"缾";s:3:"荒";s:3:"荒";s:3:"華";s:3:"華";s:3:"蝹";s:4:"蝹";s:3:"襁";s:3:"襁";s:3:"覆";s:3:"覆";s:3:"調";s:3:"調";s:3:"請";s:3:"請";s:3:"諭";s:4:"諭";s:3:"變";s:4:"變";s:3:"輸";s:4:"輸";s:3:"遲";s:3:"遲";s:3:"醙";s:3:"醙";s:3:"鉶";s:3:"鉶";s:3:"陼";s:3:"陼";s:3:"韛";s:3:"韛";s:3:"頋";s:4:"頋";s:3:"鬒";s:4:"鬒";s:4:"𢡊";s:3:"𢡊";s:4:"𢡄";s:3:"𢡄";s:4:"𣏕";s:3:"𣏕";s:3:"㮝";s:4:"㮝";s:3:"䀘";s:3:"䀘";s:3:"䀹";s:4:"䀹";s:4:"𥉉";s:3:"𥉉";s:4:"𥳐";s:3:"𥳐";s:4:"𧻓";s:3:"𧻓";s:3:"齃";s:3:"齃";s:3:"龎";s:3:"龎";s:8:"𑂚";s:4:"𑂚";s:8:"𑂜";s:4:"𑂜";s:8:"𑂫";s:4:"𑂫";s:3:"丽";s:4:"丽";s:3:"丸";s:4:"丸";s:3:"乁";s:4:"乁";s:4:"𠄢";s:4:"𠄢";s:3:"你";s:4:"你";s:3:"侻";s:4:"侻";s:3:"倂";s:4:"倂";s:3:"偺";s:4:"偺";s:3:"備";s:4:"備";s:3:"像";s:4:"像";s:3:"㒞";s:4:"㒞";s:4:"𠘺";s:4:"𠘺";s:3:"兔";s:4:"兔";s:3:"兤";s:4:"兤";s:3:"具";s:4:"具";s:4:"𠔜";s:4:"𠔜";s:3:"㒹";s:4:"㒹";s:3:"內";s:4:"內";s:3:"再";s:4:"再";s:4:"𠕋";s:4:"𠕋";s:3:"冗";s:4:"冗";s:3:"冤";s:4:"冤";s:3:"仌";s:4:"仌";s:3:"冬";s:4:"冬";s:4:"𩇟";s:4:"𩇟";s:3:"凵";s:4:"凵";s:3:"刃";s:4:"刃";s:3:"㓟";s:4:"㓟";s:3:"刻";s:4:"刻";s:3:"剆";s:4:"剆";s:3:"割";s:4:"割";s:3:"剷";s:4:"剷";s:3:"㔕";s:4:"㔕";s:3:"包";s:4:"包";s:3:"匆";s:4:"匆";s:3:"卉";s:4:"卉";s:3:"博";s:4:"博";s:3:"即";s:4:"即";s:3:"卽";s:4:"卽";s:3:"卿";s:4:"卿";s:4:"𠨬";s:4:"𠨬";s:3:"灰";s:4:"灰";s:3:"及";s:4:"及";s:3:"叟";s:4:"叟";s:4:"𠭣";s:4:"𠭣";s:3:"叫";s:4:"叫";s:3:"叱";s:4:"叱";s:3:"吆";s:4:"吆";s:3:"咞";s:4:"咞";s:3:"吸";s:4:"吸";s:3:"呈";s:4:"呈";s:3:"周";s:4:"周";s:3:"咢";s:4:"咢";s:3:"哶";s:4:"哶";s:3:"唐";s:4:"唐";s:3:"啓";s:4:"啓";s:3:"啣";s:4:"啣";s:3:"善";s:4:"善";s:3:"喫";s:4:"喫";s:3:"喳";s:4:"喳";s:3:"嗂";s:4:"嗂";s:3:"圖";s:4:"圖";s:3:"圗";s:4:"圗";s:3:"噑";s:4:"噑";s:3:"噴";s:4:"噴";s:3:"壮";s:4:"壮";s:3:"城";s:4:"城";s:3:"埴";s:4:"埴";s:3:"堍";s:4:"堍";s:3:"型";s:4:"型";s:3:"堲";s:4:"堲";s:3:"報";s:4:"報";s:3:"墬";s:4:"墬";s:4:"𡓤";s:4:"𡓤";s:3:"売";s:4:"売";s:3:"壷";s:4:"壷";s:3:"夆";s:4:"夆";s:3:"多";s:4:"多";s:3:"夢";s:4:"夢";s:3:"奢";s:4:"奢";s:4:"𡚨";s:4:"𡚨";s:4:"𡛪";s:4:"𡛪";s:3:"姬";s:4:"姬";s:3:"娛";s:4:"娛";s:3:"娧";s:4:"娧";s:3:"姘";s:4:"姘";s:3:"婦";s:4:"婦";s:3:"㛮";s:4:"㛮";s:3:"㛼";s:4:"㛼";s:3:"嬈";s:4:"嬈";s:3:"嬾";s:4:"嬾";s:4:"𡧈";s:4:"𡧈";s:3:"寃";s:4:"寃";s:3:"寘";s:4:"寘";s:3:"寳";s:4:"寳";s:4:"𡬘";s:4:"𡬘";s:3:"寿";s:4:"寿";s:3:"将";s:4:"将";s:3:"当";s:4:"当";s:3:"尢";s:4:"尢";s:3:"㞁";s:4:"㞁";s:3:"屠";s:4:"屠";s:3:"峀";s:4:"峀";s:3:"岍";s:4:"岍";s:4:"𡷤";s:4:"𡷤";s:3:"嵃";s:4:"嵃";s:4:"𡷦";s:4:"𡷦";s:3:"嵮";s:4:"嵮";s:3:"嵫";s:4:"嵫";s:3:"嵼";s:4:"嵼";s:3:"巡";s:4:"巡";s:3:"巢";s:4:"巢";s:3:"㠯";s:4:"㠯";s:3:"巽";s:4:"巽";s:3:"帨";s:4:"帨";s:3:"帽";s:4:"帽";s:3:"幩";s:4:"幩";s:3:"㡢";s:4:"㡢";s:4:"𢆃";s:4:"𢆃";s:3:"㡼";s:4:"㡼";s:3:"庰";s:4:"庰";s:3:"庳";s:4:"庳";s:3:"庶";s:4:"庶";s:4:"𪎒";s:4:"𪎒";s:3:"廾";s:4:"廾";s:4:"𢌱";s:4:"𢌱";s:3:"舁";s:4:"舁";s:3:"弢";s:4:"弢";s:3:"㣇";s:4:"㣇";s:4:"𣊸";s:4:"𣊸";s:4:"𦇚";s:4:"𦇚";s:3:"形";s:4:"形";s:3:"彫";s:4:"彫";s:3:"㣣";s:4:"㣣";s:3:"徚";s:4:"徚";s:3:"忍";s:4:"忍";s:3:"志";s:4:"志";s:3:"忹";s:4:"忹";s:3:"悁";s:4:"悁";s:3:"㤺";s:4:"㤺";s:3:"㤜";s:4:"㤜";s:4:"𢛔";s:4:"𢛔";s:3:"惇";s:4:"惇";s:3:"慈";s:4:"慈";s:3:"慌";s:4:"慌";s:3:"慺";s:4:"慺";s:3:"憲";s:4:"憲";s:3:"憤";s:4:"憤";s:3:"憯";s:4:"憯";s:3:"懞";s:4:"懞";s:3:"成";s:4:"成";s:3:"戛";s:4:"戛";s:3:"扝";s:4:"扝";s:3:"抱";s:4:"抱";s:3:"拔";s:4:"拔";s:3:"捐";s:4:"捐";s:4:"𢬌";s:4:"𢬌";s:3:"挽";s:4:"挽";s:3:"拼";s:4:"拼";s:3:"捨";s:4:"捨";s:3:"掃";s:4:"掃";s:3:"揤";s:4:"揤";s:4:"𢯱";s:4:"𢯱";s:3:"搢";s:4:"搢";s:3:"揅";s:4:"揅";s:3:"掩";s:4:"掩";s:3:"㨮";s:4:"㨮";s:3:"摩";s:4:"摩";s:3:"摾";s:4:"摾";s:3:"撝";s:4:"撝";s:3:"摷";s:4:"摷";s:3:"㩬";s:4:"㩬";s:3:"敬";s:4:"敬";s:4:"𣀊";s:4:"𣀊";s:3:"旣";s:4:"旣";s:3:"書";s:4:"書";s:3:"晉";s:4:"晉";s:3:"㬙";s:4:"㬙";s:3:"㬈";s:4:"㬈";s:3:"㫤";s:4:"㫤";s:3:"冒";s:4:"冒";s:3:"冕";s:4:"冕";s:3:"最";s:4:"最";s:3:"暜";s:4:"暜";s:3:"肭";s:4:"肭";s:3:"䏙";s:4:"䏙";s:3:"朡";s:4:"朡";s:3:"杞";s:4:"杞";s:3:"杓";s:4:"杓";s:4:"𣏃";s:4:"𣏃";s:3:"㭉";s:4:"㭉";s:3:"柺";s:4:"柺";s:3:"枅";s:4:"枅";s:3:"桒";s:4:"桒";s:4:"𣑭";s:4:"𣑭";s:3:"梎";s:4:"梎";s:3:"栟";s:4:"栟";s:3:"椔";s:4:"椔";s:3:"楂";s:4:"楂";s:3:"榣";s:4:"榣";s:3:"槪";s:4:"槪";s:3:"檨";s:4:"檨";s:4:"𣚣";s:4:"𣚣";s:3:"櫛";s:4:"櫛";s:3:"㰘";s:4:"㰘";s:3:"次";s:4:"次";s:4:"𣢧";s:4:"𣢧";s:3:"歔";s:4:"歔";s:3:"㱎";s:4:"㱎";s:3:"歲";s:4:"歲";s:3:"殟";s:4:"殟";s:3:"殻";s:4:"殻";s:4:"𣪍";s:4:"𣪍";s:4:"𡴋";s:4:"𡴋";s:4:"𣫺";s:4:"𣫺";s:3:"汎";s:4:"汎";s:4:"𣲼";s:4:"𣲼";s:3:"沿";s:4:"沿";s:3:"泍";s:4:"泍";s:3:"汧";s:4:"汧";s:3:"洖";s:4:"洖";s:3:"派";s:4:"派";s:3:"浩";s:4:"浩";s:3:"浸";s:4:"浸";s:3:"涅";s:4:"涅";s:4:"𣴞";s:4:"𣴞";s:3:"洴";s:4:"洴";s:3:"港";s:4:"港";s:3:"湮";s:4:"湮";s:3:"㴳";s:4:"㴳";s:3:"滇";s:4:"滇";s:4:"𣻑";s:4:"𣻑";s:3:"淹";s:4:"淹";s:3:"潮";s:4:"潮";s:4:"𣽞";s:4:"𣽞";s:4:"𣾎";s:4:"𣾎";s:3:"濆";s:4:"濆";s:3:"瀹";s:4:"瀹";s:3:"瀛";s:4:"瀛";s:3:"㶖";s:4:"㶖";s:3:"灊";s:4:"灊";s:3:"災";s:4:"災";s:3:"灷";s:4:"灷";s:3:"炭";s:4:"炭";s:4:"𠔥";s:4:"𠔥";s:3:"煅";s:4:"煅";s:4:"𤉣";s:4:"𤉣";s:3:"熜";s:4:"熜";s:4:"𤎫";s:4:"𤎫";s:3:"爨";s:4:"爨";s:3:"牐";s:4:"牐";s:4:"𤘈";s:4:"𤘈";s:3:"犀";s:4:"犀";s:3:"犕";s:4:"犕";s:4:"𤜵";s:4:"𤜵";s:4:"𤠔";s:4:"𤠔";s:3:"獺";s:4:"獺";s:3:"王";s:4:"王";s:3:"㺬";s:4:"㺬";s:3:"玥";s:4:"玥";s:3:"㺸";s:4:"㺸";s:3:"瑇";s:4:"瑇";s:3:"瑜";s:4:"瑜";s:3:"璅";s:4:"璅";s:3:"瓊";s:4:"瓊";s:3:"㼛";s:4:"㼛";s:3:"甤";s:4:"甤";s:4:"𤰶";s:4:"𤰶";s:3:"甾";s:4:"甾";s:4:"𤲒";s:4:"𤲒";s:4:"𢆟";s:4:"𢆟";s:3:"瘐";s:4:"瘐";s:4:"𤾡";s:4:"𤾡";s:4:"𤾸";s:4:"𤾸";s:4:"𥁄";s:4:"𥁄";s:3:"㿼";s:4:"㿼";s:3:"䀈";s:4:"䀈";s:4:"𥃳";s:4:"𥃳";s:4:"𥃲";s:4:"𥃲";s:4:"𥄙";s:4:"𥄙";s:4:"𥄳";s:4:"𥄳";s:3:"眞";s:4:"眞";s:3:"真";s:4:"真";s:3:"瞋";s:4:"瞋";s:3:"䁆";s:4:"䁆";s:3:"䂖";s:4:"䂖";s:4:"𥐝";s:4:"𥐝";s:3:"硎";s:4:"硎";s:3:"䃣";s:4:"䃣";s:4:"𥘦";s:4:"𥘦";s:4:"𥚚";s:4:"𥚚";s:4:"𥛅";s:4:"𥛅";s:3:"秫";s:4:"秫";s:3:"䄯";s:4:"䄯";s:3:"穊";s:4:"穊";s:3:"穏";s:4:"穏";s:4:"𥥼";s:4:"𥥼";s:4:"𥪧";s:4:"𥪧";s:3:"竮";s:4:"竮";s:3:"䈂";s:4:"䈂";s:4:"𥮫";s:4:"𥮫";s:3:"篆";s:4:"篆";s:3:"築";s:4:"築";s:3:"䈧";s:4:"䈧";s:4:"𥲀";s:4:"𥲀";s:3:"糒";s:4:"糒";s:3:"䊠";s:4:"䊠";s:3:"糨";s:4:"糨";s:3:"糣";s:4:"糣";s:3:"紀";s:4:"紀";s:4:"𥾆";s:4:"𥾆";s:3:"絣";s:4:"絣";s:3:"䌁";s:4:"䌁";s:3:"緇";s:4:"緇";s:3:"縂";s:4:"縂";s:3:"繅";s:4:"繅";s:3:"䌴";s:4:"䌴";s:4:"𦈨";s:4:"𦈨";s:4:"𦉇";s:4:"𦉇";s:3:"䍙";s:4:"䍙";s:4:"𦋙";s:4:"𦋙";s:3:"罺";s:4:"罺";s:4:"𦌾";s:4:"𦌾";s:3:"羕";s:4:"羕";s:3:"翺";s:4:"翺";s:4:"𦓚";s:4:"𦓚";s:4:"𦔣";s:4:"𦔣";s:3:"聠";s:4:"聠";s:4:"𦖨";s:4:"𦖨";s:3:"聰";s:4:"聰";s:4:"𣍟";s:4:"𣍟";s:3:"䏕";s:4:"䏕";s:3:"育";s:4:"育";s:3:"脃";s:4:"脃";s:3:"䐋";s:4:"䐋";s:3:"脾";s:4:"脾";s:3:"媵";s:4:"媵";s:4:"𦞧";s:4:"𦞧";s:4:"𦞵";s:4:"𦞵";s:4:"𣎓";s:4:"𣎓";s:4:"𣎜";s:4:"𣎜";s:3:"舄";s:4:"舄";s:3:"辞";s:4:"辞";s:3:"䑫";s:4:"䑫";s:3:"芑";s:4:"芑";s:3:"芋";s:4:"芋";s:3:"芝";s:4:"芝";s:3:"劳";s:4:"劳";s:3:"花";s:4:"花";s:3:"芳";s:4:"芳";s:3:"芽";s:4:"芽";s:3:"苦";s:4:"苦";s:4:"𦬼";s:4:"𦬼";s:3:"茝";s:4:"茝";s:3:"荣";s:4:"荣";s:3:"莭";s:4:"莭";s:3:"茣";s:4:"茣";s:3:"莽";s:4:"莽";s:3:"菧";s:4:"菧";s:3:"荓";s:4:"荓";s:3:"菊";s:4:"菊";s:3:"菌";s:4:"菌";s:3:"菜";s:4:"菜";s:4:"𦰶";s:4:"𦰶";s:4:"𦵫";s:4:"𦵫";s:4:"𦳕";s:4:"𦳕";s:3:"䔫";s:4:"䔫";s:3:"蓱";s:4:"蓱";s:3:"蓳";s:4:"蓳";s:3:"蔖";s:4:"蔖";s:4:"𧏊";s:4:"𧏊";s:3:"蕤";s:4:"蕤";s:4:"𦼬";s:4:"𦼬";s:3:"䕝";s:4:"䕝";s:3:"䕡";s:4:"䕡";s:4:"𦾱";s:4:"𦾱";s:4:"𧃒";s:4:"𧃒";s:3:"䕫";s:4:"䕫";s:3:"虐";s:4:"虐";s:3:"虧";s:4:"虧";s:3:"虩";s:4:"虩";s:3:"蚩";s:4:"蚩";s:3:"蚈";s:4:"蚈";s:3:"蜎";s:4:"蜎";s:3:"蛢";s:4:"蛢";s:3:"蜨";s:4:"蜨";s:3:"蝫";s:4:"蝫";s:3:"螆";s:4:"螆";s:3:"䗗";s:4:"䗗";s:3:"蟡";s:4:"蟡";s:3:"蠁";s:4:"蠁";s:3:"䗹";s:4:"䗹";s:3:"衠";s:4:"衠";s:3:"衣";s:4:"衣";s:4:"𧙧";s:4:"𧙧";s:3:"裗";s:4:"裗";s:3:"裞";s:4:"裞";s:3:"䘵";s:4:"䘵";s:3:"裺";s:4:"裺";s:3:"㒻";s:4:"㒻";s:4:"𧢮";s:4:"𧢮";s:4:"𧥦";s:4:"𧥦";s:3:"䚾";s:4:"䚾";s:3:"䛇";s:4:"䛇";s:3:"誠";s:4:"誠";s:3:"豕";s:4:"豕";s:4:"𧲨";s:4:"𧲨";s:3:"貫";s:4:"貫";s:3:"賁";s:4:"賁";s:3:"贛";s:4:"贛";s:3:"起";s:4:"起";s:4:"𧼯";s:4:"𧼯";s:4:"𠠄";s:4:"𠠄";s:3:"跋";s:4:"跋";s:3:"趼";s:4:"趼";s:3:"跰";s:4:"跰";s:4:"𠣞";s:4:"𠣞";s:3:"軔";s:4:"軔";s:4:"𨗒";s:4:"𨗒";s:4:"𨗭";s:4:"𨗭";s:3:"邔";s:4:"邔";s:3:"郱";s:4:"郱";s:3:"鄑";s:4:"鄑";s:4:"𨜮";s:4:"𨜮";s:3:"鄛";s:4:"鄛";s:3:"鈸";s:4:"鈸";s:3:"鋗";s:4:"鋗";s:3:"鋘";s:4:"鋘";s:3:"鉼";s:4:"鉼";s:3:"鏹";s:4:"鏹";s:3:"鐕";s:4:"鐕";s:4:"𨯺";s:4:"𨯺";s:3:"開";s:4:"開";s:3:"䦕";s:4:"䦕";s:3:"閷";s:4:"閷";s:4:"𨵷";s:4:"𨵷";s:3:"䧦";s:4:"䧦";s:3:"雃";s:4:"雃";s:3:"嶲";s:4:"嶲";s:3:"霣";s:4:"霣";s:4:"𩅅";s:4:"𩅅";s:4:"𩈚";s:4:"𩈚";s:3:"䩮";s:4:"䩮";s:3:"䩶";s:4:"䩶";s:3:"韠";s:4:"韠";s:4:"𩐊";s:4:"𩐊";s:3:"䪲";s:4:"䪲";s:4:"𩒖";s:4:"𩒖";s:3:"頩";s:4:"頩";s:4:"𩖶";s:4:"𩖶";s:3:"飢";s:4:"飢";s:3:"䬳";s:4:"䬳";s:3:"餩";s:4:"餩";s:3:"馧";s:4:"馧";s:3:"駂";s:4:"駂";s:3:"駾";s:4:"駾";s:3:"䯎";s:4:"䯎";s:4:"𩬰";s:4:"𩬰";s:3:"鱀";s:4:"鱀";s:3:"鳽";s:4:"鳽";s:3:"䳎";s:4:"䳎";s:3:"䳭";s:4:"䳭";s:3:"鵧";s:4:"鵧";s:4:"𪃎";s:4:"𪃎";s:3:"䳸";s:4:"䳸";s:4:"𪄅";s:4:"𪄅";s:4:"𪈎";s:4:"𪈎";s:4:"𪊑";s:4:"𪊑";s:3:"麻";s:4:"麻";s:3:"䵖";s:4:"䵖";s:3:"黹";s:4:"黹";s:3:"黾";s:4:"黾";s:3:"鼅";s:4:"鼅";s:3:"鼏";s:4:"鼏";s:3:"鼖";s:4:"鼖";s:3:"鼻";s:4:"鼻";s:4:"𪘀";s:4:"𪘀";}' );
-UtfNormal::$utfCanonicalDecomp = unserialize( 'a:2049:{s:2:"À";s:3:"À";s:2:"Á";s:3:"Á";s:2:"Â";s:3:"Â";s:2:"Ã";s:3:"Ã";s:2:"Ä";s:3:"Ä";s:2:"Å";s:3:"Å";s:2:"Ç";s:3:"Ç";s:2:"È";s:3:"È";s:2:"É";s:3:"É";s:2:"Ê";s:3:"Ê";s:2:"Ë";s:3:"Ë";s:2:"Ì";s:3:"Ì";s:2:"Í";s:3:"Í";s:2:"Î";s:3:"Î";s:2:"Ï";s:3:"Ï";s:2:"Ñ";s:3:"Ñ";s:2:"Ò";s:3:"Ò";s:2:"Ó";s:3:"Ó";s:2:"Ô";s:3:"Ô";s:2:"Õ";s:3:"Õ";s:2:"Ö";s:3:"Ö";s:2:"Ù";s:3:"Ù";s:2:"Ú";s:3:"Ú";s:2:"Û";s:3:"Û";s:2:"Ü";s:3:"Ü";s:2:"Ý";s:3:"Ý";s:2:"à";s:3:"à";s:2:"á";s:3:"á";s:2:"â";s:3:"â";s:2:"ã";s:3:"ã";s:2:"ä";s:3:"ä";s:2:"å";s:3:"å";s:2:"ç";s:3:"ç";s:2:"è";s:3:"è";s:2:"é";s:3:"é";s:2:"ê";s:3:"ê";s:2:"ë";s:3:"ë";s:2:"ì";s:3:"ì";s:2:"í";s:3:"í";s:2:"î";s:3:"î";s:2:"ï";s:3:"ï";s:2:"ñ";s:3:"ñ";s:2:"ò";s:3:"ò";s:2:"ó";s:3:"ó";s:2:"ô";s:3:"ô";s:2:"õ";s:3:"õ";s:2:"ö";s:3:"ö";s:2:"ù";s:3:"ù";s:2:"ú";s:3:"ú";s:2:"û";s:3:"û";s:2:"ü";s:3:"ü";s:2:"ý";s:3:"ý";s:2:"ÿ";s:3:"ÿ";s:2:"Ā";s:3:"Ā";s:2:"ā";s:3:"ā";s:2:"Ă";s:3:"Ă";s:2:"ă";s:3:"ă";s:2:"Ą";s:3:"Ą";s:2:"ą";s:3:"ą";s:2:"Ć";s:3:"Ć";s:2:"ć";s:3:"ć";s:2:"Ĉ";s:3:"Ĉ";s:2:"ĉ";s:3:"ĉ";s:2:"Ċ";s:3:"Ċ";s:2:"ċ";s:3:"ċ";s:2:"Č";s:3:"Č";s:2:"č";s:3:"č";s:2:"Ď";s:3:"Ď";s:2:"ď";s:3:"ď";s:2:"Ē";s:3:"Ē";s:2:"ē";s:3:"ē";s:2:"Ĕ";s:3:"Ĕ";s:2:"ĕ";s:3:"ĕ";s:2:"Ė";s:3:"Ė";s:2:"ė";s:3:"ė";s:2:"Ę";s:3:"Ę";s:2:"ę";s:3:"ę";s:2:"Ě";s:3:"Ě";s:2:"ě";s:3:"ě";s:2:"Ĝ";s:3:"Ĝ";s:2:"ĝ";s:3:"ĝ";s:2:"Ğ";s:3:"Ğ";s:2:"ğ";s:3:"ğ";s:2:"Ġ";s:3:"Ġ";s:2:"ġ";s:3:"ġ";s:2:"Ģ";s:3:"Ģ";s:2:"ģ";s:3:"ģ";s:2:"Ĥ";s:3:"Ĥ";s:2:"ĥ";s:3:"ĥ";s:2:"Ĩ";s:3:"Ĩ";s:2:"ĩ";s:3:"ĩ";s:2:"Ī";s:3:"Ī";s:2:"ī";s:3:"ī";s:2:"Ĭ";s:3:"Ĭ";s:2:"ĭ";s:3:"ĭ";s:2:"Į";s:3:"Į";s:2:"į";s:3:"į";s:2:"İ";s:3:"İ";s:2:"Ĵ";s:3:"Ĵ";s:2:"ĵ";s:3:"ĵ";s:2:"Ķ";s:3:"Ķ";s:2:"ķ";s:3:"ķ";s:2:"Ĺ";s:3:"Ĺ";s:2:"ĺ";s:3:"ĺ";s:2:"Ļ";s:3:"Ļ";s:2:"ļ";s:3:"ļ";s:2:"Ľ";s:3:"Ľ";s:2:"ľ";s:3:"ľ";s:2:"Ń";s:3:"Ń";s:2:"ń";s:3:"ń";s:2:"Ņ";s:3:"Ņ";s:2:"ņ";s:3:"ņ";s:2:"Ň";s:3:"Ň";s:2:"ň";s:3:"ň";s:2:"Ō";s:3:"Ō";s:2:"ō";s:3:"ō";s:2:"Ŏ";s:3:"Ŏ";s:2:"ŏ";s:3:"ŏ";s:2:"Ő";s:3:"Ő";s:2:"ő";s:3:"ő";s:2:"Ŕ";s:3:"Ŕ";s:2:"ŕ";s:3:"ŕ";s:2:"Ŗ";s:3:"Ŗ";s:2:"ŗ";s:3:"ŗ";s:2:"Ř";s:3:"Ř";s:2:"ř";s:3:"ř";s:2:"Ś";s:3:"Ś";s:2:"ś";s:3:"ś";s:2:"Ŝ";s:3:"Ŝ";s:2:"ŝ";s:3:"ŝ";s:2:"Ş";s:3:"Ş";s:2:"ş";s:3:"ş";s:2:"Š";s:3:"Š";s:2:"š";s:3:"š";s:2:"Ţ";s:3:"Ţ";s:2:"ţ";s:3:"ţ";s:2:"Ť";s:3:"Ť";s:2:"ť";s:3:"ť";s:2:"Ũ";s:3:"Ũ";s:2:"ũ";s:3:"ũ";s:2:"Ū";s:3:"Ū";s:2:"ū";s:3:"ū";s:2:"Ŭ";s:3:"Ŭ";s:2:"ŭ";s:3:"ŭ";s:2:"Ů";s:3:"Ů";s:2:"ů";s:3:"ů";s:2:"Ű";s:3:"Ű";s:2:"ű";s:3:"ű";s:2:"Ų";s:3:"Ų";s:2:"ų";s:3:"ų";s:2:"Ŵ";s:3:"Ŵ";s:2:"ŵ";s:3:"ŵ";s:2:"Ŷ";s:3:"Ŷ";s:2:"ŷ";s:3:"ŷ";s:2:"Ÿ";s:3:"Ÿ";s:2:"Ź";s:3:"Ź";s:2:"ź";s:3:"ź";s:2:"Ż";s:3:"Ż";s:2:"ż";s:3:"ż";s:2:"Ž";s:3:"Ž";s:2:"ž";s:3:"ž";s:2:"Ơ";s:3:"Ơ";s:2:"ơ";s:3:"ơ";s:2:"Ư";s:3:"Ư";s:2:"ư";s:3:"ư";s:2:"Ǎ";s:3:"Ǎ";s:2:"ǎ";s:3:"ǎ";s:2:"Ǐ";s:3:"Ǐ";s:2:"ǐ";s:3:"ǐ";s:2:"Ǒ";s:3:"Ǒ";s:2:"ǒ";s:3:"ǒ";s:2:"Ǔ";s:3:"Ǔ";s:2:"ǔ";s:3:"ǔ";s:2:"Ǖ";s:5:"Ǖ";s:2:"ǖ";s:5:"ǖ";s:2:"Ǘ";s:5:"Ǘ";s:2:"ǘ";s:5:"ǘ";s:2:"Ǚ";s:5:"Ǚ";s:2:"ǚ";s:5:"ǚ";s:2:"Ǜ";s:5:"Ǜ";s:2:"ǜ";s:5:"ǜ";s:2:"Ǟ";s:5:"Ǟ";s:2:"ǟ";s:5:"ǟ";s:2:"Ǡ";s:5:"Ǡ";s:2:"ǡ";s:5:"ǡ";s:2:"Ǣ";s:4:"Ǣ";s:2:"ǣ";s:4:"ǣ";s:2:"Ǧ";s:3:"Ǧ";s:2:"ǧ";s:3:"ǧ";s:2:"Ǩ";s:3:"Ǩ";s:2:"ǩ";s:3:"ǩ";s:2:"Ǫ";s:3:"Ǫ";s:2:"ǫ";s:3:"ǫ";s:2:"Ǭ";s:5:"Ǭ";s:2:"ǭ";s:5:"ǭ";s:2:"Ǯ";s:4:"Ǯ";s:2:"ǯ";s:4:"ǯ";s:2:"ǰ";s:3:"ǰ";s:2:"Ǵ";s:3:"Ǵ";s:2:"ǵ";s:3:"ǵ";s:2:"Ǹ";s:3:"Ǹ";s:2:"ǹ";s:3:"ǹ";s:2:"Ǻ";s:5:"Ǻ";s:2:"ǻ";s:5:"ǻ";s:2:"Ǽ";s:4:"Ǽ";s:2:"ǽ";s:4:"ǽ";s:2:"Ǿ";s:4:"Ǿ";s:2:"ǿ";s:4:"ǿ";s:2:"Ȁ";s:3:"Ȁ";s:2:"ȁ";s:3:"ȁ";s:2:"Ȃ";s:3:"Ȃ";s:2:"ȃ";s:3:"ȃ";s:2:"Ȅ";s:3:"Ȅ";s:2:"ȅ";s:3:"ȅ";s:2:"Ȇ";s:3:"Ȇ";s:2:"ȇ";s:3:"ȇ";s:2:"Ȉ";s:3:"Ȉ";s:2:"ȉ";s:3:"ȉ";s:2:"Ȋ";s:3:"Ȋ";s:2:"ȋ";s:3:"ȋ";s:2:"Ȍ";s:3:"Ȍ";s:2:"ȍ";s:3:"ȍ";s:2:"Ȏ";s:3:"Ȏ";s:2:"ȏ";s:3:"ȏ";s:2:"Ȑ";s:3:"Ȑ";s:2:"ȑ";s:3:"ȑ";s:2:"Ȓ";s:3:"Ȓ";s:2:"ȓ";s:3:"ȓ";s:2:"Ȕ";s:3:"Ȕ";s:2:"ȕ";s:3:"ȕ";s:2:"Ȗ";s:3:"Ȗ";s:2:"ȗ";s:3:"ȗ";s:2:"Ș";s:3:"Ș";s:2:"ș";s:3:"ș";s:2:"Ț";s:3:"Ț";s:2:"ț";s:3:"ț";s:2:"Ȟ";s:3:"Ȟ";s:2:"ȟ";s:3:"ȟ";s:2:"Ȧ";s:3:"Ȧ";s:2:"ȧ";s:3:"ȧ";s:2:"Ȩ";s:3:"Ȩ";s:2:"ȩ";s:3:"ȩ";s:2:"Ȫ";s:5:"Ȫ";s:2:"ȫ";s:5:"ȫ";s:2:"Ȭ";s:5:"Ȭ";s:2:"ȭ";s:5:"ȭ";s:2:"Ȯ";s:3:"Ȯ";s:2:"ȯ";s:3:"ȯ";s:2:"Ȱ";s:5:"Ȱ";s:2:"ȱ";s:5:"ȱ";s:2:"Ȳ";s:3:"Ȳ";s:2:"ȳ";s:3:"ȳ";s:2:"̀";s:2:"̀";s:2:"́";s:2:"́";s:2:"̓";s:2:"̓";s:2:"̈́";s:4:"̈́";s:2:"ʹ";s:2:"ʹ";s:2:";";s:1:";";s:2:"΅";s:4:"΅";s:2:"Ά";s:4:"Ά";s:2:"·";s:2:"·";s:2:"Έ";s:4:"Έ";s:2:"Ή";s:4:"Ή";s:2:"Ί";s:4:"Ί";s:2:"Ό";s:4:"Ό";s:2:"Ύ";s:4:"Ύ";s:2:"Ώ";s:4:"Ώ";s:2:"ΐ";s:6:"ΐ";s:2:"Ϊ";s:4:"Ϊ";s:2:"Ϋ";s:4:"Ϋ";s:2:"ά";s:4:"ά";s:2:"έ";s:4:"έ";s:2:"ή";s:4:"ή";s:2:"ί";s:4:"ί";s:2:"ΰ";s:6:"ΰ";s:2:"ϊ";s:4:"ϊ";s:2:"ϋ";s:4:"ϋ";s:2:"ό";s:4:"ό";s:2:"ύ";s:4:"ύ";s:2:"ώ";s:4:"ώ";s:2:"ϓ";s:4:"ϓ";s:2:"ϔ";s:4:"ϔ";s:2:"Ѐ";s:4:"Ѐ";s:2:"Ё";s:4:"Ё";s:2:"Ѓ";s:4:"Ѓ";s:2:"Ї";s:4:"Ї";s:2:"Ќ";s:4:"Ќ";s:2:"Ѝ";s:4:"Ѝ";s:2:"Ў";s:4:"Ў";s:2:"Й";s:4:"Й";s:2:"й";s:4:"й";s:2:"ѐ";s:4:"ѐ";s:2:"ё";s:4:"ё";s:2:"ѓ";s:4:"ѓ";s:2:"ї";s:4:"ї";s:2:"ќ";s:4:"ќ";s:2:"ѝ";s:4:"ѝ";s:2:"ў";s:4:"ў";s:2:"Ѷ";s:4:"Ѷ";s:2:"ѷ";s:4:"ѷ";s:2:"Ӂ";s:4:"Ӂ";s:2:"ӂ";s:4:"ӂ";s:2:"Ӑ";s:4:"Ӑ";s:2:"ӑ";s:4:"ӑ";s:2:"Ӓ";s:4:"Ӓ";s:2:"ӓ";s:4:"ӓ";s:2:"Ӗ";s:4:"Ӗ";s:2:"ӗ";s:4:"ӗ";s:2:"Ӛ";s:4:"Ӛ";s:2:"ӛ";s:4:"ӛ";s:2:"Ӝ";s:4:"Ӝ";s:2:"ӝ";s:4:"ӝ";s:2:"Ӟ";s:4:"Ӟ";s:2:"ӟ";s:4:"ӟ";s:2:"Ӣ";s:4:"Ӣ";s:2:"ӣ";s:4:"ӣ";s:2:"Ӥ";s:4:"Ӥ";s:2:"ӥ";s:4:"ӥ";s:2:"Ӧ";s:4:"Ӧ";s:2:"ӧ";s:4:"ӧ";s:2:"Ӫ";s:4:"Ӫ";s:2:"ӫ";s:4:"ӫ";s:2:"Ӭ";s:4:"Ӭ";s:2:"ӭ";s:4:"ӭ";s:2:"Ӯ";s:4:"Ӯ";s:2:"ӯ";s:4:"ӯ";s:2:"Ӱ";s:4:"Ӱ";s:2:"ӱ";s:4:"ӱ";s:2:"Ӳ";s:4:"Ӳ";s:2:"ӳ";s:4:"ӳ";s:2:"Ӵ";s:4:"Ӵ";s:2:"ӵ";s:4:"ӵ";s:2:"Ӹ";s:4:"Ӹ";s:2:"ӹ";s:4:"ӹ";s:2:"آ";s:4:"آ";s:2:"أ";s:4:"أ";s:2:"ؤ";s:4:"ؤ";s:2:"إ";s:4:"إ";s:2:"ئ";s:4:"ئ";s:2:"ۀ";s:4:"ۀ";s:2:"ۂ";s:4:"ۂ";s:2:"ۓ";s:4:"ۓ";s:3:"ऩ";s:6:"ऩ";s:3:"ऱ";s:6:"ऱ";s:3:"ऴ";s:6:"ऴ";s:3:"क़";s:6:"क़";s:3:"ख़";s:6:"ख़";s:3:"ग़";s:6:"ग़";s:3:"ज़";s:6:"ज़";s:3:"ड़";s:6:"ड़";s:3:"ढ़";s:6:"ढ़";s:3:"फ़";s:6:"फ़";s:3:"य़";s:6:"य़";s:3:"ো";s:6:"ো";s:3:"ৌ";s:6:"ৌ";s:3:"ড়";s:6:"ড়";s:3:"ঢ়";s:6:"ঢ়";s:3:"য়";s:6:"য়";s:3:"ਲ਼";s:6:"ਲ਼";s:3:"ਸ਼";s:6:"ਸ਼";s:3:"ਖ਼";s:6:"ਖ਼";s:3:"ਗ਼";s:6:"ਗ਼";s:3:"ਜ਼";s:6:"ਜ਼";s:3:"ਫ਼";s:6:"ਫ਼";s:3:"ୈ";s:6:"ୈ";s:3:"ୋ";s:6:"ୋ";s:3:"ୌ";s:6:"ୌ";s:3:"ଡ଼";s:6:"ଡ଼";s:3:"ଢ଼";s:6:"ଢ଼";s:3:"ஔ";s:6:"ஔ";s:3:"ொ";s:6:"ொ";s:3:"ோ";s:6:"ோ";s:3:"ௌ";s:6:"ௌ";s:3:"ై";s:6:"ై";s:3:"ೀ";s:6:"ೀ";s:3:"ೇ";s:6:"ೇ";s:3:"ೈ";s:6:"ೈ";s:3:"ೊ";s:6:"ೊ";s:3:"ೋ";s:9:"ೋ";s:3:"ൊ";s:6:"ൊ";s:3:"ോ";s:6:"ോ";s:3:"ൌ";s:6:"ൌ";s:3:"ේ";s:6:"ේ";s:3:"ො";s:6:"ො";s:3:"ෝ";s:9:"ෝ";s:3:"ෞ";s:6:"ෞ";s:3:"གྷ";s:6:"གྷ";s:3:"ཌྷ";s:6:"ཌྷ";s:3:"དྷ";s:6:"དྷ";s:3:"བྷ";s:6:"བྷ";s:3:"ཛྷ";s:6:"ཛྷ";s:3:"ཀྵ";s:6:"ཀྵ";s:3:"ཱི";s:6:"ཱི";s:3:"ཱུ";s:6:"ཱུ";s:3:"ྲྀ";s:6:"ྲྀ";s:3:"ླྀ";s:6:"ླྀ";s:3:"ཱྀ";s:6:"ཱྀ";s:3:"ྒྷ";s:6:"ྒྷ";s:3:"ྜྷ";s:6:"ྜྷ";s:3:"ྡྷ";s:6:"ྡྷ";s:3:"ྦྷ";s:6:"ྦྷ";s:3:"ྫྷ";s:6:"ྫྷ";s:3:"ྐྵ";s:6:"ྐྵ";s:3:"ဦ";s:6:"ဦ";s:3:"ᬆ";s:6:"ᬆ";s:3:"ᬈ";s:6:"ᬈ";s:3:"ᬊ";s:6:"ᬊ";s:3:"ᬌ";s:6:"ᬌ";s:3:"ᬎ";s:6:"ᬎ";s:3:"ᬒ";s:6:"ᬒ";s:3:"ᬻ";s:6:"ᬻ";s:3:"ᬽ";s:6:"ᬽ";s:3:"ᭀ";s:6:"ᭀ";s:3:"ᭁ";s:6:"ᭁ";s:3:"ᭃ";s:6:"ᭃ";s:3:"Ḁ";s:3:"Ḁ";s:3:"ḁ";s:3:"ḁ";s:3:"Ḃ";s:3:"Ḃ";s:3:"ḃ";s:3:"ḃ";s:3:"Ḅ";s:3:"Ḅ";s:3:"ḅ";s:3:"ḅ";s:3:"Ḇ";s:3:"Ḇ";s:3:"ḇ";s:3:"ḇ";s:3:"Ḉ";s:5:"Ḉ";s:3:"ḉ";s:5:"ḉ";s:3:"Ḋ";s:3:"Ḋ";s:3:"ḋ";s:3:"ḋ";s:3:"Ḍ";s:3:"Ḍ";s:3:"ḍ";s:3:"ḍ";s:3:"Ḏ";s:3:"Ḏ";s:3:"ḏ";s:3:"ḏ";s:3:"Ḑ";s:3:"Ḑ";s:3:"ḑ";s:3:"ḑ";s:3:"Ḓ";s:3:"Ḓ";s:3:"ḓ";s:3:"ḓ";s:3:"Ḕ";s:5:"Ḕ";s:3:"ḕ";s:5:"ḕ";s:3:"Ḗ";s:5:"Ḗ";s:3:"ḗ";s:5:"ḗ";s:3:"Ḙ";s:3:"Ḙ";s:3:"ḙ";s:3:"ḙ";s:3:"Ḛ";s:3:"Ḛ";s:3:"ḛ";s:3:"ḛ";s:3:"Ḝ";s:5:"Ḝ";s:3:"ḝ";s:5:"ḝ";s:3:"Ḟ";s:3:"Ḟ";s:3:"ḟ";s:3:"ḟ";s:3:"Ḡ";s:3:"Ḡ";s:3:"ḡ";s:3:"ḡ";s:3:"Ḣ";s:3:"Ḣ";s:3:"ḣ";s:3:"ḣ";s:3:"Ḥ";s:3:"Ḥ";s:3:"ḥ";s:3:"ḥ";s:3:"Ḧ";s:3:"Ḧ";s:3:"ḧ";s:3:"ḧ";s:3:"Ḩ";s:3:"Ḩ";s:3:"ḩ";s:3:"ḩ";s:3:"Ḫ";s:3:"Ḫ";s:3:"ḫ";s:3:"ḫ";s:3:"Ḭ";s:3:"Ḭ";s:3:"ḭ";s:3:"ḭ";s:3:"Ḯ";s:5:"Ḯ";s:3:"ḯ";s:5:"ḯ";s:3:"Ḱ";s:3:"Ḱ";s:3:"ḱ";s:3:"ḱ";s:3:"Ḳ";s:3:"Ḳ";s:3:"ḳ";s:3:"ḳ";s:3:"Ḵ";s:3:"Ḵ";s:3:"ḵ";s:3:"ḵ";s:3:"Ḷ";s:3:"Ḷ";s:3:"ḷ";s:3:"ḷ";s:3:"Ḹ";s:5:"Ḹ";s:3:"ḹ";s:5:"ḹ";s:3:"Ḻ";s:3:"Ḻ";s:3:"ḻ";s:3:"ḻ";s:3:"Ḽ";s:3:"Ḽ";s:3:"ḽ";s:3:"ḽ";s:3:"Ḿ";s:3:"Ḿ";s:3:"ḿ";s:3:"ḿ";s:3:"Ṁ";s:3:"Ṁ";s:3:"ṁ";s:3:"ṁ";s:3:"Ṃ";s:3:"Ṃ";s:3:"ṃ";s:3:"ṃ";s:3:"Ṅ";s:3:"Ṅ";s:3:"ṅ";s:3:"ṅ";s:3:"Ṇ";s:3:"Ṇ";s:3:"ṇ";s:3:"ṇ";s:3:"Ṉ";s:3:"Ṉ";s:3:"ṉ";s:3:"ṉ";s:3:"Ṋ";s:3:"Ṋ";s:3:"ṋ";s:3:"ṋ";s:3:"Ṍ";s:5:"Ṍ";s:3:"ṍ";s:5:"ṍ";s:3:"Ṏ";s:5:"Ṏ";s:3:"ṏ";s:5:"ṏ";s:3:"Ṑ";s:5:"Ṑ";s:3:"ṑ";s:5:"ṑ";s:3:"Ṓ";s:5:"Ṓ";s:3:"ṓ";s:5:"ṓ";s:3:"Ṕ";s:3:"Ṕ";s:3:"ṕ";s:3:"ṕ";s:3:"Ṗ";s:3:"Ṗ";s:3:"ṗ";s:3:"ṗ";s:3:"Ṙ";s:3:"Ṙ";s:3:"ṙ";s:3:"ṙ";s:3:"Ṛ";s:3:"Ṛ";s:3:"ṛ";s:3:"ṛ";s:3:"Ṝ";s:5:"Ṝ";s:3:"ṝ";s:5:"ṝ";s:3:"Ṟ";s:3:"Ṟ";s:3:"ṟ";s:3:"ṟ";s:3:"Ṡ";s:3:"Ṡ";s:3:"ṡ";s:3:"ṡ";s:3:"Ṣ";s:3:"Ṣ";s:3:"ṣ";s:3:"ṣ";s:3:"Ṥ";s:5:"Ṥ";s:3:"ṥ";s:5:"ṥ";s:3:"Ṧ";s:5:"Ṧ";s:3:"ṧ";s:5:"ṧ";s:3:"Ṩ";s:5:"Ṩ";s:3:"ṩ";s:5:"ṩ";s:3:"Ṫ";s:3:"Ṫ";s:3:"ṫ";s:3:"ṫ";s:3:"Ṭ";s:3:"Ṭ";s:3:"ṭ";s:3:"ṭ";s:3:"Ṯ";s:3:"Ṯ";s:3:"ṯ";s:3:"ṯ";s:3:"Ṱ";s:3:"Ṱ";s:3:"ṱ";s:3:"ṱ";s:3:"Ṳ";s:3:"Ṳ";s:3:"ṳ";s:3:"ṳ";s:3:"Ṵ";s:3:"Ṵ";s:3:"ṵ";s:3:"ṵ";s:3:"Ṷ";s:3:"Ṷ";s:3:"ṷ";s:3:"ṷ";s:3:"Ṹ";s:5:"Ṹ";s:3:"ṹ";s:5:"ṹ";s:3:"Ṻ";s:5:"Ṻ";s:3:"ṻ";s:5:"ṻ";s:3:"Ṽ";s:3:"Ṽ";s:3:"ṽ";s:3:"ṽ";s:3:"Ṿ";s:3:"Ṿ";s:3:"ṿ";s:3:"ṿ";s:3:"Ẁ";s:3:"Ẁ";s:3:"ẁ";s:3:"ẁ";s:3:"Ẃ";s:3:"Ẃ";s:3:"ẃ";s:3:"ẃ";s:3:"Ẅ";s:3:"Ẅ";s:3:"ẅ";s:3:"ẅ";s:3:"Ẇ";s:3:"Ẇ";s:3:"ẇ";s:3:"ẇ";s:3:"Ẉ";s:3:"Ẉ";s:3:"ẉ";s:3:"ẉ";s:3:"Ẋ";s:3:"Ẋ";s:3:"ẋ";s:3:"ẋ";s:3:"Ẍ";s:3:"Ẍ";s:3:"ẍ";s:3:"ẍ";s:3:"Ẏ";s:3:"Ẏ";s:3:"ẏ";s:3:"ẏ";s:3:"Ẑ";s:3:"Ẑ";s:3:"ẑ";s:3:"ẑ";s:3:"Ẓ";s:3:"Ẓ";s:3:"ẓ";s:3:"ẓ";s:3:"Ẕ";s:3:"Ẕ";s:3:"ẕ";s:3:"ẕ";s:3:"ẖ";s:3:"ẖ";s:3:"ẗ";s:3:"ẗ";s:3:"ẘ";s:3:"ẘ";s:3:"ẙ";s:3:"ẙ";s:3:"ẛ";s:4:"ẛ";s:3:"Ạ";s:3:"Ạ";s:3:"ạ";s:3:"ạ";s:3:"Ả";s:3:"Ả";s:3:"ả";s:3:"ả";s:3:"Ấ";s:5:"Ấ";s:3:"ấ";s:5:"ấ";s:3:"Ầ";s:5:"Ầ";s:3:"ầ";s:5:"ầ";s:3:"Ẩ";s:5:"Ẩ";s:3:"ẩ";s:5:"ẩ";s:3:"Ẫ";s:5:"Ẫ";s:3:"ẫ";s:5:"ẫ";s:3:"Ậ";s:5:"Ậ";s:3:"ậ";s:5:"ậ";s:3:"Ắ";s:5:"Ắ";s:3:"ắ";s:5:"ắ";s:3:"Ằ";s:5:"Ằ";s:3:"ằ";s:5:"ằ";s:3:"Ẳ";s:5:"Ẳ";s:3:"ẳ";s:5:"ẳ";s:3:"Ẵ";s:5:"Ẵ";s:3:"ẵ";s:5:"ẵ";s:3:"Ặ";s:5:"Ặ";s:3:"ặ";s:5:"ặ";s:3:"Ẹ";s:3:"Ẹ";s:3:"ẹ";s:3:"ẹ";s:3:"Ẻ";s:3:"Ẻ";s:3:"ẻ";s:3:"ẻ";s:3:"Ẽ";s:3:"Ẽ";s:3:"ẽ";s:3:"ẽ";s:3:"Ế";s:5:"Ế";s:3:"ế";s:5:"ế";s:3:"Ề";s:5:"Ề";s:3:"ề";s:5:"ề";s:3:"Ể";s:5:"Ể";s:3:"ể";s:5:"ể";s:3:"Ễ";s:5:"Ễ";s:3:"ễ";s:5:"ễ";s:3:"Ệ";s:5:"Ệ";s:3:"ệ";s:5:"ệ";s:3:"Ỉ";s:3:"Ỉ";s:3:"ỉ";s:3:"ỉ";s:3:"Ị";s:3:"Ị";s:3:"ị";s:3:"ị";s:3:"Ọ";s:3:"Ọ";s:3:"ọ";s:3:"ọ";s:3:"Ỏ";s:3:"Ỏ";s:3:"ỏ";s:3:"ỏ";s:3:"Ố";s:5:"Ố";s:3:"ố";s:5:"ố";s:3:"Ồ";s:5:"Ồ";s:3:"ồ";s:5:"ồ";s:3:"Ổ";s:5:"Ổ";s:3:"ổ";s:5:"ổ";s:3:"Ỗ";s:5:"Ỗ";s:3:"ỗ";s:5:"ỗ";s:3:"Ộ";s:5:"Ộ";s:3:"ộ";s:5:"ộ";s:3:"Ớ";s:5:"Ớ";s:3:"ớ";s:5:"ớ";s:3:"Ờ";s:5:"Ờ";s:3:"ờ";s:5:"ờ";s:3:"Ở";s:5:"Ở";s:3:"ở";s:5:"ở";s:3:"Ỡ";s:5:"Ỡ";s:3:"ỡ";s:5:"ỡ";s:3:"Ợ";s:5:"Ợ";s:3:"ợ";s:5:"ợ";s:3:"Ụ";s:3:"Ụ";s:3:"ụ";s:3:"ụ";s:3:"Ủ";s:3:"Ủ";s:3:"ủ";s:3:"ủ";s:3:"Ứ";s:5:"Ứ";s:3:"ứ";s:5:"ứ";s:3:"Ừ";s:5:"Ừ";s:3:"ừ";s:5:"ừ";s:3:"Ử";s:5:"Ử";s:3:"ử";s:5:"ử";s:3:"Ữ";s:5:"Ữ";s:3:"ữ";s:5:"ữ";s:3:"Ự";s:5:"Ự";s:3:"ự";s:5:"ự";s:3:"Ỳ";s:3:"Ỳ";s:3:"ỳ";s:3:"ỳ";s:3:"Ỵ";s:3:"Ỵ";s:3:"ỵ";s:3:"ỵ";s:3:"Ỷ";s:3:"Ỷ";s:3:"ỷ";s:3:"ỷ";s:3:"Ỹ";s:3:"Ỹ";s:3:"ỹ";s:3:"ỹ";s:3:"ἀ";s:4:"ἀ";s:3:"ἁ";s:4:"ἁ";s:3:"ἂ";s:6:"ἂ";s:3:"ἃ";s:6:"ἃ";s:3:"ἄ";s:6:"ἄ";s:3:"ἅ";s:6:"ἅ";s:3:"ἆ";s:6:"ἆ";s:3:"ἇ";s:6:"ἇ";s:3:"Ἀ";s:4:"Ἀ";s:3:"Ἁ";s:4:"Ἁ";s:3:"Ἂ";s:6:"Ἂ";s:3:"Ἃ";s:6:"Ἃ";s:3:"Ἄ";s:6:"Ἄ";s:3:"Ἅ";s:6:"Ἅ";s:3:"Ἆ";s:6:"Ἆ";s:3:"Ἇ";s:6:"Ἇ";s:3:"ἐ";s:4:"ἐ";s:3:"ἑ";s:4:"ἑ";s:3:"ἒ";s:6:"ἒ";s:3:"ἓ";s:6:"ἓ";s:3:"ἔ";s:6:"ἔ";s:3:"ἕ";s:6:"ἕ";s:3:"Ἐ";s:4:"Ἐ";s:3:"Ἑ";s:4:"Ἑ";s:3:"Ἒ";s:6:"Ἒ";s:3:"Ἓ";s:6:"Ἓ";s:3:"Ἔ";s:6:"Ἔ";s:3:"Ἕ";s:6:"Ἕ";s:3:"ἠ";s:4:"ἠ";s:3:"ἡ";s:4:"ἡ";s:3:"ἢ";s:6:"ἢ";s:3:"ἣ";s:6:"ἣ";s:3:"ἤ";s:6:"ἤ";s:3:"ἥ";s:6:"ἥ";s:3:"ἦ";s:6:"ἦ";s:3:"ἧ";s:6:"ἧ";s:3:"Ἠ";s:4:"Ἠ";s:3:"Ἡ";s:4:"Ἡ";s:3:"Ἢ";s:6:"Ἢ";s:3:"Ἣ";s:6:"Ἣ";s:3:"Ἤ";s:6:"Ἤ";s:3:"Ἥ";s:6:"Ἥ";s:3:"Ἦ";s:6:"Ἦ";s:3:"Ἧ";s:6:"Ἧ";s:3:"ἰ";s:4:"ἰ";s:3:"ἱ";s:4:"ἱ";s:3:"ἲ";s:6:"ἲ";s:3:"ἳ";s:6:"ἳ";s:3:"ἴ";s:6:"ἴ";s:3:"ἵ";s:6:"ἵ";s:3:"ἶ";s:6:"ἶ";s:3:"ἷ";s:6:"ἷ";s:3:"Ἰ";s:4:"Ἰ";s:3:"Ἱ";s:4:"Ἱ";s:3:"Ἲ";s:6:"Ἲ";s:3:"Ἳ";s:6:"Ἳ";s:3:"Ἴ";s:6:"Ἴ";s:3:"Ἵ";s:6:"Ἵ";s:3:"Ἶ";s:6:"Ἶ";s:3:"Ἷ";s:6:"Ἷ";s:3:"ὀ";s:4:"ὀ";s:3:"ὁ";s:4:"ὁ";s:3:"ὂ";s:6:"ὂ";s:3:"ὃ";s:6:"ὃ";s:3:"ὄ";s:6:"ὄ";s:3:"ὅ";s:6:"ὅ";s:3:"Ὀ";s:4:"Ὀ";s:3:"Ὁ";s:4:"Ὁ";s:3:"Ὂ";s:6:"Ὂ";s:3:"Ὃ";s:6:"Ὃ";s:3:"Ὄ";s:6:"Ὄ";s:3:"Ὅ";s:6:"Ὅ";s:3:"ὐ";s:4:"ὐ";s:3:"ὑ";s:4:"ὑ";s:3:"ὒ";s:6:"ὒ";s:3:"ὓ";s:6:"ὓ";s:3:"ὔ";s:6:"ὔ";s:3:"ὕ";s:6:"ὕ";s:3:"ὖ";s:6:"ὖ";s:3:"ὗ";s:6:"ὗ";s:3:"Ὑ";s:4:"Ὑ";s:3:"Ὓ";s:6:"Ὓ";s:3:"Ὕ";s:6:"Ὕ";s:3:"Ὗ";s:6:"Ὗ";s:3:"ὠ";s:4:"ὠ";s:3:"ὡ";s:4:"ὡ";s:3:"ὢ";s:6:"ὢ";s:3:"ὣ";s:6:"ὣ";s:3:"ὤ";s:6:"ὤ";s:3:"ὥ";s:6:"ὥ";s:3:"ὦ";s:6:"ὦ";s:3:"ὧ";s:6:"ὧ";s:3:"Ὠ";s:4:"Ὠ";s:3:"Ὡ";s:4:"Ὡ";s:3:"Ὢ";s:6:"Ὢ";s:3:"Ὣ";s:6:"Ὣ";s:3:"Ὤ";s:6:"Ὤ";s:3:"Ὥ";s:6:"Ὥ";s:3:"Ὦ";s:6:"Ὦ";s:3:"Ὧ";s:6:"Ὧ";s:3:"ὰ";s:4:"ὰ";s:3:"ά";s:4:"ά";s:3:"ὲ";s:4:"ὲ";s:3:"έ";s:4:"έ";s:3:"ὴ";s:4:"ὴ";s:3:"ή";s:4:"ή";s:3:"ὶ";s:4:"ὶ";s:3:"ί";s:4:"ί";s:3:"ὸ";s:4:"ὸ";s:3:"ό";s:4:"ό";s:3:"ὺ";s:4:"ὺ";s:3:"ύ";s:4:"ύ";s:3:"ὼ";s:4:"ὼ";s:3:"ώ";s:4:"ώ";s:3:"ᾀ";s:6:"ᾀ";s:3:"ᾁ";s:6:"ᾁ";s:3:"ᾂ";s:8:"ᾂ";s:3:"ᾃ";s:8:"ᾃ";s:3:"ᾄ";s:8:"ᾄ";s:3:"ᾅ";s:8:"ᾅ";s:3:"ᾆ";s:8:"ᾆ";s:3:"ᾇ";s:8:"ᾇ";s:3:"ᾈ";s:6:"ᾈ";s:3:"ᾉ";s:6:"ᾉ";s:3:"ᾊ";s:8:"ᾊ";s:3:"ᾋ";s:8:"ᾋ";s:3:"ᾌ";s:8:"ᾌ";s:3:"ᾍ";s:8:"ᾍ";s:3:"ᾎ";s:8:"ᾎ";s:3:"ᾏ";s:8:"ᾏ";s:3:"ᾐ";s:6:"ᾐ";s:3:"ᾑ";s:6:"ᾑ";s:3:"ᾒ";s:8:"ᾒ";s:3:"ᾓ";s:8:"ᾓ";s:3:"ᾔ";s:8:"ᾔ";s:3:"ᾕ";s:8:"ᾕ";s:3:"ᾖ";s:8:"ᾖ";s:3:"ᾗ";s:8:"ᾗ";s:3:"ᾘ";s:6:"ᾘ";s:3:"ᾙ";s:6:"ᾙ";s:3:"ᾚ";s:8:"ᾚ";s:3:"ᾛ";s:8:"ᾛ";s:3:"ᾜ";s:8:"ᾜ";s:3:"ᾝ";s:8:"ᾝ";s:3:"ᾞ";s:8:"ᾞ";s:3:"ᾟ";s:8:"ᾟ";s:3:"ᾠ";s:6:"ᾠ";s:3:"ᾡ";s:6:"ᾡ";s:3:"ᾢ";s:8:"ᾢ";s:3:"ᾣ";s:8:"ᾣ";s:3:"ᾤ";s:8:"ᾤ";s:3:"ᾥ";s:8:"ᾥ";s:3:"ᾦ";s:8:"ᾦ";s:3:"ᾧ";s:8:"ᾧ";s:3:"ᾨ";s:6:"ᾨ";s:3:"ᾩ";s:6:"ᾩ";s:3:"ᾪ";s:8:"ᾪ";s:3:"ᾫ";s:8:"ᾫ";s:3:"ᾬ";s:8:"ᾬ";s:3:"ᾭ";s:8:"ᾭ";s:3:"ᾮ";s:8:"ᾮ";s:3:"ᾯ";s:8:"ᾯ";s:3:"ᾰ";s:4:"ᾰ";s:3:"ᾱ";s:4:"ᾱ";s:3:"ᾲ";s:6:"ᾲ";s:3:"ᾳ";s:4:"ᾳ";s:3:"ᾴ";s:6:"ᾴ";s:3:"ᾶ";s:4:"ᾶ";s:3:"ᾷ";s:6:"ᾷ";s:3:"Ᾰ";s:4:"Ᾰ";s:3:"Ᾱ";s:4:"Ᾱ";s:3:"Ὰ";s:4:"Ὰ";s:3:"Ά";s:4:"Ά";s:3:"ᾼ";s:4:"ᾼ";s:3:"ι";s:2:"ι";s:3:"῁";s:4:"῁";s:3:"ῂ";s:6:"ῂ";s:3:"ῃ";s:4:"ῃ";s:3:"ῄ";s:6:"ῄ";s:3:"ῆ";s:4:"ῆ";s:3:"ῇ";s:6:"ῇ";s:3:"Ὲ";s:4:"Ὲ";s:3:"Έ";s:4:"Έ";s:3:"Ὴ";s:4:"Ὴ";s:3:"Ή";s:4:"Ή";s:3:"ῌ";s:4:"ῌ";s:3:"῍";s:5:"῍";s:3:"῎";s:5:"῎";s:3:"῏";s:5:"῏";s:3:"ῐ";s:4:"ῐ";s:3:"ῑ";s:4:"ῑ";s:3:"ῒ";s:6:"ῒ";s:3:"ΐ";s:6:"ΐ";s:3:"ῖ";s:4:"ῖ";s:3:"ῗ";s:6:"ῗ";s:3:"Ῐ";s:4:"Ῐ";s:3:"Ῑ";s:4:"Ῑ";s:3:"Ὶ";s:4:"Ὶ";s:3:"Ί";s:4:"Ί";s:3:"῝";s:5:"῝";s:3:"῞";s:5:"῞";s:3:"῟";s:5:"῟";s:3:"ῠ";s:4:"ῠ";s:3:"ῡ";s:4:"ῡ";s:3:"ῢ";s:6:"ῢ";s:3:"ΰ";s:6:"ΰ";s:3:"ῤ";s:4:"ῤ";s:3:"ῥ";s:4:"ῥ";s:3:"ῦ";s:4:"ῦ";s:3:"ῧ";s:6:"ῧ";s:3:"Ῠ";s:4:"Ῠ";s:3:"Ῡ";s:4:"Ῡ";s:3:"Ὺ";s:4:"Ὺ";s:3:"Ύ";s:4:"Ύ";s:3:"Ῥ";s:4:"Ῥ";s:3:"῭";s:4:"῭";s:3:"΅";s:4:"΅";s:3:"`";s:1:"`";s:3:"ῲ";s:6:"ῲ";s:3:"ῳ";s:4:"ῳ";s:3:"ῴ";s:6:"ῴ";s:3:"ῶ";s:4:"ῶ";s:3:"ῷ";s:6:"ῷ";s:3:"Ὸ";s:4:"Ὸ";s:3:"Ό";s:4:"Ό";s:3:"Ὼ";s:4:"Ὼ";s:3:"Ώ";s:4:"Ώ";s:3:"ῼ";s:4:"ῼ";s:3:"´";s:2:"´";s:3:" ";s:3:" ";s:3:" ";s:3:" ";s:3:"Ω";s:2:"Ω";s:3:"K";s:1:"K";s:3:"Å";s:3:"Å";s:3:"↚";s:5:"↚";s:3:"↛";s:5:"↛";s:3:"↮";s:5:"↮";s:3:"⇍";s:5:"⇍";s:3:"⇎";s:5:"⇎";s:3:"⇏";s:5:"⇏";s:3:"∄";s:5:"∄";s:3:"∉";s:5:"∉";s:3:"∌";s:5:"∌";s:3:"∤";s:5:"∤";s:3:"∦";s:5:"∦";s:3:"≁";s:5:"≁";s:3:"≄";s:5:"≄";s:3:"≇";s:5:"≇";s:3:"≉";s:5:"≉";s:3:"≠";s:3:"≠";s:3:"≢";s:5:"≢";s:3:"≭";s:5:"≭";s:3:"≮";s:3:"≮";s:3:"≯";s:3:"≯";s:3:"≰";s:5:"≰";s:3:"≱";s:5:"≱";s:3:"≴";s:5:"≴";s:3:"≵";s:5:"≵";s:3:"≸";s:5:"≸";s:3:"≹";s:5:"≹";s:3:"⊀";s:5:"⊀";s:3:"⊁";s:5:"⊁";s:3:"⊄";s:5:"⊄";s:3:"⊅";s:5:"⊅";s:3:"⊈";s:5:"⊈";s:3:"⊉";s:5:"⊉";s:3:"⊬";s:5:"⊬";s:3:"⊭";s:5:"⊭";s:3:"⊮";s:5:"⊮";s:3:"⊯";s:5:"⊯";s:3:"⋠";s:5:"⋠";s:3:"⋡";s:5:"⋡";s:3:"⋢";s:5:"⋢";s:3:"⋣";s:5:"⋣";s:3:"⋪";s:5:"⋪";s:3:"⋫";s:5:"⋫";s:3:"⋬";s:5:"⋬";s:3:"⋭";s:5:"⋭";s:3:"〈";s:3:"〈";s:3:"〉";s:3:"〉";s:3:"⫝̸";s:5:"⫝̸";s:3:"が";s:6:"が";s:3:"ぎ";s:6:"ぎ";s:3:"ぐ";s:6:"ぐ";s:3:"げ";s:6:"げ";s:3:"ご";s:6:"ご";s:3:"ざ";s:6:"ざ";s:3:"じ";s:6:"じ";s:3:"ず";s:6:"ず";s:3:"ぜ";s:6:"ぜ";s:3:"ぞ";s:6:"ぞ";s:3:"だ";s:6:"だ";s:3:"ぢ";s:6:"ぢ";s:3:"づ";s:6:"づ";s:3:"で";s:6:"で";s:3:"ど";s:6:"ど";s:3:"ば";s:6:"ば";s:3:"ぱ";s:6:"ぱ";s:3:"び";s:6:"び";s:3:"ぴ";s:6:"ぴ";s:3:"ぶ";s:6:"ぶ";s:3:"ぷ";s:6:"ぷ";s:3:"べ";s:6:"べ";s:3:"ぺ";s:6:"ぺ";s:3:"ぼ";s:6:"ぼ";s:3:"ぽ";s:6:"ぽ";s:3:"ゔ";s:6:"ゔ";s:3:"ゞ";s:6:"ゞ";s:3:"ガ";s:6:"ガ";s:3:"ギ";s:6:"ギ";s:3:"グ";s:6:"グ";s:3:"ゲ";s:6:"ゲ";s:3:"ゴ";s:6:"ゴ";s:3:"ザ";s:6:"ザ";s:3:"ジ";s:6:"ジ";s:3:"ズ";s:6:"ズ";s:3:"ゼ";s:6:"ゼ";s:3:"ゾ";s:6:"ゾ";s:3:"ダ";s:6:"ダ";s:3:"ヂ";s:6:"ヂ";s:3:"ヅ";s:6:"ヅ";s:3:"デ";s:6:"デ";s:3:"ド";s:6:"ド";s:3:"バ";s:6:"バ";s:3:"パ";s:6:"パ";s:3:"ビ";s:6:"ビ";s:3:"ピ";s:6:"ピ";s:3:"ブ";s:6:"ブ";s:3:"プ";s:6:"プ";s:3:"ベ";s:6:"ベ";s:3:"ペ";s:6:"ペ";s:3:"ボ";s:6:"ボ";s:3:"ポ";s:6:"ポ";s:3:"ヴ";s:6:"ヴ";s:3:"ヷ";s:6:"ヷ";s:3:"ヸ";s:6:"ヸ";s:3:"ヹ";s:6:"ヹ";s:3:"ヺ";s:6:"ヺ";s:3:"ヾ";s:6:"ヾ";s:3:"豈";s:3:"豈";s:3:"更";s:3:"更";s:3:"車";s:3:"車";s:3:"賈";s:3:"賈";s:3:"滑";s:3:"滑";s:3:"串";s:3:"串";s:3:"句";s:3:"句";s:3:"龜";s:3:"龜";s:3:"龜";s:3:"龜";s:3:"契";s:3:"契";s:3:"金";s:3:"金";s:3:"喇";s:3:"喇";s:3:"奈";s:3:"奈";s:3:"懶";s:3:"懶";s:3:"癩";s:3:"癩";s:3:"羅";s:3:"羅";s:3:"蘿";s:3:"蘿";s:3:"螺";s:3:"螺";s:3:"裸";s:3:"裸";s:3:"邏";s:3:"邏";s:3:"樂";s:3:"樂";s:3:"洛";s:3:"洛";s:3:"烙";s:3:"烙";s:3:"珞";s:3:"珞";s:3:"落";s:3:"落";s:3:"酪";s:3:"酪";s:3:"駱";s:3:"駱";s:3:"亂";s:3:"亂";s:3:"卵";s:3:"卵";s:3:"欄";s:3:"欄";s:3:"爛";s:3:"爛";s:3:"蘭";s:3:"蘭";s:3:"鸞";s:3:"鸞";s:3:"嵐";s:3:"嵐";s:3:"濫";s:3:"濫";s:3:"藍";s:3:"藍";s:3:"襤";s:3:"襤";s:3:"拉";s:3:"拉";s:3:"臘";s:3:"臘";s:3:"蠟";s:3:"蠟";s:3:"廊";s:3:"廊";s:3:"朗";s:3:"朗";s:3:"浪";s:3:"浪";s:3:"狼";s:3:"狼";s:3:"郎";s:3:"郎";s:3:"來";s:3:"來";s:3:"冷";s:3:"冷";s:3:"勞";s:3:"勞";s:3:"擄";s:3:"擄";s:3:"櫓";s:3:"櫓";s:3:"爐";s:3:"爐";s:3:"盧";s:3:"盧";s:3:"老";s:3:"老";s:3:"蘆";s:3:"蘆";s:3:"虜";s:3:"虜";s:3:"路";s:3:"路";s:3:"露";s:3:"露";s:3:"魯";s:3:"魯";s:3:"鷺";s:3:"鷺";s:3:"碌";s:3:"碌";s:3:"祿";s:3:"祿";s:3:"綠";s:3:"綠";s:3:"菉";s:3:"菉";s:3:"錄";s:3:"錄";s:3:"鹿";s:3:"鹿";s:3:"論";s:3:"論";s:3:"壟";s:3:"壟";s:3:"弄";s:3:"弄";s:3:"籠";s:3:"籠";s:3:"聾";s:3:"聾";s:3:"牢";s:3:"牢";s:3:"磊";s:3:"磊";s:3:"賂";s:3:"賂";s:3:"雷";s:3:"雷";s:3:"壘";s:3:"壘";s:3:"屢";s:3:"屢";s:3:"樓";s:3:"樓";s:3:"淚";s:3:"淚";s:3:"漏";s:3:"漏";s:3:"累";s:3:"累";s:3:"縷";s:3:"縷";s:3:"陋";s:3:"陋";s:3:"勒";s:3:"勒";s:3:"肋";s:3:"肋";s:3:"凜";s:3:"凜";s:3:"凌";s:3:"凌";s:3:"稜";s:3:"稜";s:3:"綾";s:3:"綾";s:3:"菱";s:3:"菱";s:3:"陵";s:3:"陵";s:3:"讀";s:3:"讀";s:3:"拏";s:3:"拏";s:3:"樂";s:3:"樂";s:3:"諾";s:3:"諾";s:3:"丹";s:3:"丹";s:3:"寧";s:3:"寧";s:3:"怒";s:3:"怒";s:3:"率";s:3:"率";s:3:"異";s:3:"異";s:3:"北";s:3:"北";s:3:"磻";s:3:"磻";s:3:"便";s:3:"便";s:3:"復";s:3:"復";s:3:"不";s:3:"不";s:3:"泌";s:3:"泌";s:3:"數";s:3:"數";s:3:"索";s:3:"索";s:3:"參";s:3:"參";s:3:"塞";s:3:"塞";s:3:"省";s:3:"省";s:3:"葉";s:3:"葉";s:3:"說";s:3:"說";s:3:"殺";s:3:"殺";s:3:"辰";s:3:"辰";s:3:"沈";s:3:"沈";s:3:"拾";s:3:"拾";s:3:"若";s:3:"若";s:3:"掠";s:3:"掠";s:3:"略";s:3:"略";s:3:"亮";s:3:"亮";s:3:"兩";s:3:"兩";s:3:"凉";s:3:"凉";s:3:"梁";s:3:"梁";s:3:"糧";s:3:"糧";s:3:"良";s:3:"良";s:3:"諒";s:3:"諒";s:3:"量";s:3:"量";s:3:"勵";s:3:"勵";s:3:"呂";s:3:"呂";s:3:"女";s:3:"女";s:3:"廬";s:3:"廬";s:3:"旅";s:3:"旅";s:3:"濾";s:3:"濾";s:3:"礪";s:3:"礪";s:3:"閭";s:3:"閭";s:3:"驪";s:3:"驪";s:3:"麗";s:3:"麗";s:3:"黎";s:3:"黎";s:3:"力";s:3:"力";s:3:"曆";s:3:"曆";s:3:"歷";s:3:"歷";s:3:"轢";s:3:"轢";s:3:"年";s:3:"年";s:3:"憐";s:3:"憐";s:3:"戀";s:3:"戀";s:3:"撚";s:3:"撚";s:3:"漣";s:3:"漣";s:3:"煉";s:3:"煉";s:3:"璉";s:3:"璉";s:3:"秊";s:3:"秊";s:3:"練";s:3:"練";s:3:"聯";s:3:"聯";s:3:"輦";s:3:"輦";s:3:"蓮";s:3:"蓮";s:3:"連";s:3:"連";s:3:"鍊";s:3:"鍊";s:3:"列";s:3:"列";s:3:"劣";s:3:"劣";s:3:"咽";s:3:"咽";s:3:"烈";s:3:"烈";s:3:"裂";s:3:"裂";s:3:"說";s:3:"說";s:3:"廉";s:3:"廉";s:3:"念";s:3:"念";s:3:"捻";s:3:"捻";s:3:"殮";s:3:"殮";s:3:"簾";s:3:"簾";s:3:"獵";s:3:"獵";s:3:"令";s:3:"令";s:3:"囹";s:3:"囹";s:3:"寧";s:3:"寧";s:3:"嶺";s:3:"嶺";s:3:"怜";s:3:"怜";s:3:"玲";s:3:"玲";s:3:"瑩";s:3:"瑩";s:3:"羚";s:3:"羚";s:3:"聆";s:3:"聆";s:3:"鈴";s:3:"鈴";s:3:"零";s:3:"零";s:3:"靈";s:3:"靈";s:3:"領";s:3:"領";s:3:"例";s:3:"例";s:3:"禮";s:3:"禮";s:3:"醴";s:3:"醴";s:3:"隸";s:3:"隸";s:3:"惡";s:3:"惡";s:3:"了";s:3:"了";s:3:"僚";s:3:"僚";s:3:"寮";s:3:"寮";s:3:"尿";s:3:"尿";s:3:"料";s:3:"料";s:3:"樂";s:3:"樂";s:3:"燎";s:3:"燎";s:3:"療";s:3:"療";s:3:"蓼";s:3:"蓼";s:3:"遼";s:3:"遼";s:3:"龍";s:3:"龍";s:3:"暈";s:3:"暈";s:3:"阮";s:3:"阮";s:3:"劉";s:3:"劉";s:3:"杻";s:3:"杻";s:3:"柳";s:3:"柳";s:3:"流";s:3:"流";s:3:"溜";s:3:"溜";s:3:"琉";s:3:"琉";s:3:"留";s:3:"留";s:3:"硫";s:3:"硫";s:3:"紐";s:3:"紐";s:3:"類";s:3:"類";s:3:"六";s:3:"六";s:3:"戮";s:3:"戮";s:3:"陸";s:3:"陸";s:3:"倫";s:3:"倫";s:3:"崙";s:3:"崙";s:3:"淪";s:3:"淪";s:3:"輪";s:3:"輪";s:3:"律";s:3:"律";s:3:"慄";s:3:"慄";s:3:"栗";s:3:"栗";s:3:"率";s:3:"率";s:3:"隆";s:3:"隆";s:3:"利";s:3:"利";s:3:"吏";s:3:"吏";s:3:"履";s:3:"履";s:3:"易";s:3:"易";s:3:"李";s:3:"李";s:3:"梨";s:3:"梨";s:3:"泥";s:3:"泥";s:3:"理";s:3:"理";s:3:"痢";s:3:"痢";s:3:"罹";s:3:"罹";s:3:"裏";s:3:"裏";s:3:"裡";s:3:"裡";s:3:"里";s:3:"里";s:3:"離";s:3:"離";s:3:"匿";s:3:"匿";s:3:"溺";s:3:"溺";s:3:"吝";s:3:"吝";s:3:"燐";s:3:"燐";s:3:"璘";s:3:"璘";s:3:"藺";s:3:"藺";s:3:"隣";s:3:"隣";s:3:"鱗";s:3:"鱗";s:3:"麟";s:3:"麟";s:3:"林";s:3:"林";s:3:"淋";s:3:"淋";s:3:"臨";s:3:"臨";s:3:"立";s:3:"立";s:3:"笠";s:3:"笠";s:3:"粒";s:3:"粒";s:3:"狀";s:3:"狀";s:3:"炙";s:3:"炙";s:3:"識";s:3:"識";s:3:"什";s:3:"什";s:3:"茶";s:3:"茶";s:3:"刺";s:3:"刺";s:3:"切";s:3:"切";s:3:"度";s:3:"度";s:3:"拓";s:3:"拓";s:3:"糖";s:3:"糖";s:3:"宅";s:3:"宅";s:3:"洞";s:3:"洞";s:3:"暴";s:3:"暴";s:3:"輻";s:3:"輻";s:3:"行";s:3:"行";s:3:"降";s:3:"降";s:3:"見";s:3:"見";s:3:"廓";s:3:"廓";s:3:"兀";s:3:"兀";s:3:"嗀";s:3:"嗀";s:3:"塚";s:3:"塚";s:3:"晴";s:3:"晴";s:3:"凞";s:3:"凞";s:3:"猪";s:3:"猪";s:3:"益";s:3:"益";s:3:"礼";s:3:"礼";s:3:"神";s:3:"神";s:3:"祥";s:3:"祥";s:3:"福";s:3:"福";s:3:"靖";s:3:"靖";s:3:"精";s:3:"精";s:3:"羽";s:3:"羽";s:3:"蘒";s:3:"蘒";s:3:"諸";s:3:"諸";s:3:"逸";s:3:"逸";s:3:"都";s:3:"都";s:3:"飯";s:3:"飯";s:3:"飼";s:3:"飼";s:3:"館";s:3:"館";s:3:"鶴";s:3:"鶴";s:3:"侮";s:3:"侮";s:3:"僧";s:3:"僧";s:3:"免";s:3:"免";s:3:"勉";s:3:"勉";s:3:"勤";s:3:"勤";s:3:"卑";s:3:"卑";s:3:"喝";s:3:"喝";s:3:"嘆";s:3:"嘆";s:3:"器";s:3:"器";s:3:"塀";s:3:"塀";s:3:"墨";s:3:"墨";s:3:"層";s:3:"層";s:3:"屮";s:3:"屮";s:3:"悔";s:3:"悔";s:3:"慨";s:3:"慨";s:3:"憎";s:3:"憎";s:3:"懲";s:3:"懲";s:3:"敏";s:3:"敏";s:3:"既";s:3:"既";s:3:"暑";s:3:"暑";s:3:"梅";s:3:"梅";s:3:"海";s:3:"海";s:3:"渚";s:3:"渚";s:3:"漢";s:3:"漢";s:3:"煮";s:3:"煮";s:3:"爫";s:3:"爫";s:3:"琢";s:3:"琢";s:3:"碑";s:3:"碑";s:3:"社";s:3:"社";s:3:"祉";s:3:"祉";s:3:"祈";s:3:"祈";s:3:"祐";s:3:"祐";s:3:"祖";s:3:"祖";s:3:"祝";s:3:"祝";s:3:"禍";s:3:"禍";s:3:"禎";s:3:"禎";s:3:"穀";s:3:"穀";s:3:"突";s:3:"突";s:3:"節";s:3:"節";s:3:"練";s:3:"練";s:3:"縉";s:3:"縉";s:3:"繁";s:3:"繁";s:3:"署";s:3:"署";s:3:"者";s:3:"者";s:3:"臭";s:3:"臭";s:3:"艹";s:3:"艹";s:3:"艹";s:3:"艹";s:3:"著";s:3:"著";s:3:"褐";s:3:"褐";s:3:"視";s:3:"視";s:3:"謁";s:3:"謁";s:3:"謹";s:3:"謹";s:3:"賓";s:3:"賓";s:3:"贈";s:3:"贈";s:3:"辶";s:3:"辶";s:3:"逸";s:3:"逸";s:3:"難";s:3:"難";s:3:"響";s:3:"響";s:3:"頻";s:3:"頻";s:3:"恵";s:3:"恵";s:3:"𤋮";s:4:"𤋮";s:3:"舘";s:3:"舘";s:3:"並";s:3:"並";s:3:"况";s:3:"况";s:3:"全";s:3:"全";s:3:"侀";s:3:"侀";s:3:"充";s:3:"充";s:3:"冀";s:3:"冀";s:3:"勇";s:3:"勇";s:3:"勺";s:3:"勺";s:3:"喝";s:3:"喝";s:3:"啕";s:3:"啕";s:3:"喙";s:3:"喙";s:3:"嗢";s:3:"嗢";s:3:"塚";s:3:"塚";s:3:"墳";s:3:"墳";s:3:"奄";s:3:"奄";s:3:"奔";s:3:"奔";s:3:"婢";s:3:"婢";s:3:"嬨";s:3:"嬨";s:3:"廒";s:3:"廒";s:3:"廙";s:3:"廙";s:3:"彩";s:3:"彩";s:3:"徭";s:3:"徭";s:3:"惘";s:3:"惘";s:3:"慎";s:3:"慎";s:3:"愈";s:3:"愈";s:3:"憎";s:3:"憎";s:3:"慠";s:3:"慠";s:3:"懲";s:3:"懲";s:3:"戴";s:3:"戴";s:3:"揄";s:3:"揄";s:3:"搜";s:3:"搜";s:3:"摒";s:3:"摒";s:3:"敖";s:3:"敖";s:3:"晴";s:3:"晴";s:3:"朗";s:3:"朗";s:3:"望";s:3:"望";s:3:"杖";s:3:"杖";s:3:"歹";s:3:"歹";s:3:"殺";s:3:"殺";s:3:"流";s:3:"流";s:3:"滛";s:3:"滛";s:3:"滋";s:3:"滋";s:3:"漢";s:3:"漢";s:3:"瀞";s:3:"瀞";s:3:"煮";s:3:"煮";s:3:"瞧";s:3:"瞧";s:3:"爵";s:3:"爵";s:3:"犯";s:3:"犯";s:3:"猪";s:3:"猪";s:3:"瑱";s:3:"瑱";s:3:"甆";s:3:"甆";s:3:"画";s:3:"画";s:3:"瘝";s:3:"瘝";s:3:"瘟";s:3:"瘟";s:3:"益";s:3:"益";s:3:"盛";s:3:"盛";s:3:"直";s:3:"直";s:3:"睊";s:3:"睊";s:3:"着";s:3:"着";s:3:"磌";s:3:"磌";s:3:"窱";s:3:"窱";s:3:"節";s:3:"節";s:3:"类";s:3:"类";s:3:"絛";s:3:"絛";s:3:"練";s:3:"練";s:3:"缾";s:3:"缾";s:3:"者";s:3:"者";s:3:"荒";s:3:"荒";s:3:"華";s:3:"華";s:3:"蝹";s:3:"蝹";s:3:"襁";s:3:"襁";s:3:"覆";s:3:"覆";s:3:"視";s:3:"視";s:3:"調";s:3:"調";s:3:"諸";s:3:"諸";s:3:"請";s:3:"請";s:3:"謁";s:3:"謁";s:3:"諾";s:3:"諾";s:3:"諭";s:3:"諭";s:3:"謹";s:3:"謹";s:3:"變";s:3:"變";s:3:"贈";s:3:"贈";s:3:"輸";s:3:"輸";s:3:"遲";s:3:"遲";s:3:"醙";s:3:"醙";s:3:"鉶";s:3:"鉶";s:3:"陼";s:3:"陼";s:3:"難";s:3:"難";s:3:"靖";s:3:"靖";s:3:"韛";s:3:"韛";s:3:"響";s:3:"響";s:3:"頋";s:3:"頋";s:3:"頻";s:3:"頻";s:3:"鬒";s:3:"鬒";s:3:"龜";s:3:"龜";s:3:"𢡊";s:4:"𢡊";s:3:"𢡄";s:4:"𢡄";s:3:"𣏕";s:4:"𣏕";s:3:"㮝";s:3:"㮝";s:3:"䀘";s:3:"䀘";s:3:"䀹";s:3:"䀹";s:3:"𥉉";s:4:"𥉉";s:3:"𥳐";s:4:"𥳐";s:3:"𧻓";s:4:"𧻓";s:3:"齃";s:3:"齃";s:3:"龎";s:3:"龎";s:3:"יִ";s:4:"יִ";s:3:"ײַ";s:4:"ײַ";s:3:"שׁ";s:4:"שׁ";s:3:"שׂ";s:4:"שׂ";s:3:"שּׁ";s:6:"שּׁ";s:3:"שּׂ";s:6:"שּׂ";s:3:"אַ";s:4:"אַ";s:3:"אָ";s:4:"אָ";s:3:"אּ";s:4:"אּ";s:3:"בּ";s:4:"בּ";s:3:"גּ";s:4:"גּ";s:3:"דּ";s:4:"דּ";s:3:"הּ";s:4:"הּ";s:3:"וּ";s:4:"וּ";s:3:"זּ";s:4:"זּ";s:3:"טּ";s:4:"טּ";s:3:"יּ";s:4:"יּ";s:3:"ךּ";s:4:"ךּ";s:3:"כּ";s:4:"כּ";s:3:"לּ";s:4:"לּ";s:3:"מּ";s:4:"מּ";s:3:"נּ";s:4:"נּ";s:3:"סּ";s:4:"סּ";s:3:"ףּ";s:4:"ףּ";s:3:"פּ";s:4:"פּ";s:3:"צּ";s:4:"צּ";s:3:"קּ";s:4:"קּ";s:3:"רּ";s:4:"רּ";s:3:"שּ";s:4:"שּ";s:3:"תּ";s:4:"תּ";s:3:"וֹ";s:4:"וֹ";s:3:"בֿ";s:4:"בֿ";s:3:"כֿ";s:4:"כֿ";s:3:"פֿ";s:4:"פֿ";s:4:"𑂚";s:8:"𑂚";s:4:"𑂜";s:8:"𑂜";s:4:"𑂫";s:8:"𑂫";s:4:"𝅗𝅥";s:8:"𝅗𝅥";s:4:"𝅘𝅥";s:8:"𝅘𝅥";s:4:"𝅘𝅥𝅮";s:12:"𝅘𝅥𝅮";s:4:"𝅘𝅥𝅯";s:12:"𝅘𝅥𝅯";s:4:"𝅘𝅥𝅰";s:12:"𝅘𝅥𝅰";s:4:"𝅘𝅥𝅱";s:12:"𝅘𝅥𝅱";s:4:"𝅘𝅥𝅲";s:12:"𝅘𝅥𝅲";s:4:"𝆹𝅥";s:8:"𝆹𝅥";s:4:"𝆺𝅥";s:8:"𝆺𝅥";s:4:"𝆹𝅥𝅮";s:12:"𝆹𝅥𝅮";s:4:"𝆺𝅥𝅮";s:12:"𝆺𝅥𝅮";s:4:"𝆹𝅥𝅯";s:12:"𝆹𝅥𝅯";s:4:"𝆺𝅥𝅯";s:12:"𝆺𝅥𝅯";s:4:"丽";s:3:"丽";s:4:"丸";s:3:"丸";s:4:"乁";s:3:"乁";s:4:"𠄢";s:4:"𠄢";s:4:"你";s:3:"你";s:4:"侮";s:3:"侮";s:4:"侻";s:3:"侻";s:4:"倂";s:3:"倂";s:4:"偺";s:3:"偺";s:4:"備";s:3:"備";s:4:"僧";s:3:"僧";s:4:"像";s:3:"像";s:4:"㒞";s:3:"㒞";s:4:"𠘺";s:4:"𠘺";s:4:"免";s:3:"免";s:4:"兔";s:3:"兔";s:4:"兤";s:3:"兤";s:4:"具";s:3:"具";s:4:"𠔜";s:4:"𠔜";s:4:"㒹";s:3:"㒹";s:4:"內";s:3:"內";s:4:"再";s:3:"再";s:4:"𠕋";s:4:"𠕋";s:4:"冗";s:3:"冗";s:4:"冤";s:3:"冤";s:4:"仌";s:3:"仌";s:4:"冬";s:3:"冬";s:4:"况";s:3:"况";s:4:"𩇟";s:4:"𩇟";s:4:"凵";s:3:"凵";s:4:"刃";s:3:"刃";s:4:"㓟";s:3:"㓟";s:4:"刻";s:3:"刻";s:4:"剆";s:3:"剆";s:4:"割";s:3:"割";s:4:"剷";s:3:"剷";s:4:"㔕";s:3:"㔕";s:4:"勇";s:3:"勇";s:4:"勉";s:3:"勉";s:4:"勤";s:3:"勤";s:4:"勺";s:3:"勺";s:4:"包";s:3:"包";s:4:"匆";s:3:"匆";s:4:"北";s:3:"北";s:4:"卉";s:3:"卉";s:4:"卑";s:3:"卑";s:4:"博";s:3:"博";s:4:"即";s:3:"即";s:4:"卽";s:3:"卽";s:4:"卿";s:3:"卿";s:4:"卿";s:3:"卿";s:4:"卿";s:3:"卿";s:4:"𠨬";s:4:"𠨬";s:4:"灰";s:3:"灰";s:4:"及";s:3:"及";s:4:"叟";s:3:"叟";s:4:"𠭣";s:4:"𠭣";s:4:"叫";s:3:"叫";s:4:"叱";s:3:"叱";s:4:"吆";s:3:"吆";s:4:"咞";s:3:"咞";s:4:"吸";s:3:"吸";s:4:"呈";s:3:"呈";s:4:"周";s:3:"周";s:4:"咢";s:3:"咢";s:4:"哶";s:3:"哶";s:4:"唐";s:3:"唐";s:4:"啓";s:3:"啓";s:4:"啣";s:3:"啣";s:4:"善";s:3:"善";s:4:"善";s:3:"善";s:4:"喙";s:3:"喙";s:4:"喫";s:3:"喫";s:4:"喳";s:3:"喳";s:4:"嗂";s:3:"嗂";s:4:"圖";s:3:"圖";s:4:"嘆";s:3:"嘆";s:4:"圗";s:3:"圗";s:4:"噑";s:3:"噑";s:4:"噴";s:3:"噴";s:4:"切";s:3:"切";s:4:"壮";s:3:"壮";s:4:"城";s:3:"城";s:4:"埴";s:3:"埴";s:4:"堍";s:3:"堍";s:4:"型";s:3:"型";s:4:"堲";s:3:"堲";s:4:"報";s:3:"報";s:4:"墬";s:3:"墬";s:4:"𡓤";s:4:"𡓤";s:4:"売";s:3:"売";s:4:"壷";s:3:"壷";s:4:"夆";s:3:"夆";s:4:"多";s:3:"多";s:4:"夢";s:3:"夢";s:4:"奢";s:3:"奢";s:4:"𡚨";s:4:"𡚨";s:4:"𡛪";s:4:"𡛪";s:4:"姬";s:3:"姬";s:4:"娛";s:3:"娛";s:4:"娧";s:3:"娧";s:4:"姘";s:3:"姘";s:4:"婦";s:3:"婦";s:4:"㛮";s:3:"㛮";s:4:"㛼";s:3:"㛼";s:4:"嬈";s:3:"嬈";s:4:"嬾";s:3:"嬾";s:4:"嬾";s:3:"嬾";s:4:"𡧈";s:4:"𡧈";s:4:"寃";s:3:"寃";s:4:"寘";s:3:"寘";s:4:"寧";s:3:"寧";s:4:"寳";s:3:"寳";s:4:"𡬘";s:4:"𡬘";s:4:"寿";s:3:"寿";s:4:"将";s:3:"将";s:4:"当";s:3:"当";s:4:"尢";s:3:"尢";s:4:"㞁";s:3:"㞁";s:4:"屠";s:3:"屠";s:4:"屮";s:3:"屮";s:4:"峀";s:3:"峀";s:4:"岍";s:3:"岍";s:4:"𡷤";s:4:"𡷤";s:4:"嵃";s:3:"嵃";s:4:"𡷦";s:4:"𡷦";s:4:"嵮";s:3:"嵮";s:4:"嵫";s:3:"嵫";s:4:"嵼";s:3:"嵼";s:4:"巡";s:3:"巡";s:4:"巢";s:3:"巢";s:4:"㠯";s:3:"㠯";s:4:"巽";s:3:"巽";s:4:"帨";s:3:"帨";s:4:"帽";s:3:"帽";s:4:"幩";s:3:"幩";s:4:"㡢";s:3:"㡢";s:4:"𢆃";s:4:"𢆃";s:4:"㡼";s:3:"㡼";s:4:"庰";s:3:"庰";s:4:"庳";s:3:"庳";s:4:"庶";s:3:"庶";s:4:"廊";s:3:"廊";s:4:"𪎒";s:4:"𪎒";s:4:"廾";s:3:"廾";s:4:"𢌱";s:4:"𢌱";s:4:"𢌱";s:4:"𢌱";s:4:"舁";s:3:"舁";s:4:"弢";s:3:"弢";s:4:"弢";s:3:"弢";s:4:"㣇";s:3:"㣇";s:4:"𣊸";s:4:"𣊸";s:4:"𦇚";s:4:"𦇚";s:4:"形";s:3:"形";s:4:"彫";s:3:"彫";s:4:"㣣";s:3:"㣣";s:4:"徚";s:3:"徚";s:4:"忍";s:3:"忍";s:4:"志";s:3:"志";s:4:"忹";s:3:"忹";s:4:"悁";s:3:"悁";s:4:"㤺";s:3:"㤺";s:4:"㤜";s:3:"㤜";s:4:"悔";s:3:"悔";s:4:"𢛔";s:4:"𢛔";s:4:"惇";s:3:"惇";s:4:"慈";s:3:"慈";s:4:"慌";s:3:"慌";s:4:"慎";s:3:"慎";s:4:"慌";s:3:"慌";s:4:"慺";s:3:"慺";s:4:"憎";s:3:"憎";s:4:"憲";s:3:"憲";s:4:"憤";s:3:"憤";s:4:"憯";s:3:"憯";s:4:"懞";s:3:"懞";s:4:"懲";s:3:"懲";s:4:"懶";s:3:"懶";s:4:"成";s:3:"成";s:4:"戛";s:3:"戛";s:4:"扝";s:3:"扝";s:4:"抱";s:3:"抱";s:4:"拔";s:3:"拔";s:4:"捐";s:3:"捐";s:4:"𢬌";s:4:"𢬌";s:4:"挽";s:3:"挽";s:4:"拼";s:3:"拼";s:4:"捨";s:3:"捨";s:4:"掃";s:3:"掃";s:4:"揤";s:3:"揤";s:4:"𢯱";s:4:"𢯱";s:4:"搢";s:3:"搢";s:4:"揅";s:3:"揅";s:4:"掩";s:3:"掩";s:4:"㨮";s:3:"㨮";s:4:"摩";s:3:"摩";s:4:"摾";s:3:"摾";s:4:"撝";s:3:"撝";s:4:"摷";s:3:"摷";s:4:"㩬";s:3:"㩬";s:4:"敏";s:3:"敏";s:4:"敬";s:3:"敬";s:4:"𣀊";s:4:"𣀊";s:4:"旣";s:3:"旣";s:4:"書";s:3:"書";s:4:"晉";s:3:"晉";s:4:"㬙";s:3:"㬙";s:4:"暑";s:3:"暑";s:4:"㬈";s:3:"㬈";s:4:"㫤";s:3:"㫤";s:4:"冒";s:3:"冒";s:4:"冕";s:3:"冕";s:4:"最";s:3:"最";s:4:"暜";s:3:"暜";s:4:"肭";s:3:"肭";s:4:"䏙";s:3:"䏙";s:4:"朗";s:3:"朗";s:4:"望";s:3:"望";s:4:"朡";s:3:"朡";s:4:"杞";s:3:"杞";s:4:"杓";s:3:"杓";s:4:"𣏃";s:4:"𣏃";s:4:"㭉";s:3:"㭉";s:4:"柺";s:3:"柺";s:4:"枅";s:3:"枅";s:4:"桒";s:3:"桒";s:4:"梅";s:3:"梅";s:4:"𣑭";s:4:"𣑭";s:4:"梎";s:3:"梎";s:4:"栟";s:3:"栟";s:4:"椔";s:3:"椔";s:4:"㮝";s:3:"㮝";s:4:"楂";s:3:"楂";s:4:"榣";s:3:"榣";s:4:"槪";s:3:"槪";s:4:"檨";s:3:"檨";s:4:"𣚣";s:4:"𣚣";s:4:"櫛";s:3:"櫛";s:4:"㰘";s:3:"㰘";s:4:"次";s:3:"次";s:4:"𣢧";s:4:"𣢧";s:4:"歔";s:3:"歔";s:4:"㱎";s:3:"㱎";s:4:"歲";s:3:"歲";s:4:"殟";s:3:"殟";s:4:"殺";s:3:"殺";s:4:"殻";s:3:"殻";s:4:"𣪍";s:4:"𣪍";s:4:"𡴋";s:4:"𡴋";s:4:"𣫺";s:4:"𣫺";s:4:"汎";s:3:"汎";s:4:"𣲼";s:4:"𣲼";s:4:"沿";s:3:"沿";s:4:"泍";s:3:"泍";s:4:"汧";s:3:"汧";s:4:"洖";s:3:"洖";s:4:"派";s:3:"派";s:4:"海";s:3:"海";s:4:"流";s:3:"流";s:4:"浩";s:3:"浩";s:4:"浸";s:3:"浸";s:4:"涅";s:3:"涅";s:4:"𣴞";s:4:"𣴞";s:4:"洴";s:3:"洴";s:4:"港";s:3:"港";s:4:"湮";s:3:"湮";s:4:"㴳";s:3:"㴳";s:4:"滋";s:3:"滋";s:4:"滇";s:3:"滇";s:4:"𣻑";s:4:"𣻑";s:4:"淹";s:3:"淹";s:4:"潮";s:3:"潮";s:4:"𣽞";s:4:"𣽞";s:4:"𣾎";s:4:"𣾎";s:4:"濆";s:3:"濆";s:4:"瀹";s:3:"瀹";s:4:"瀞";s:3:"瀞";s:4:"瀛";s:3:"瀛";s:4:"㶖";s:3:"㶖";s:4:"灊";s:3:"灊";s:4:"災";s:3:"災";s:4:"灷";s:3:"灷";s:4:"炭";s:3:"炭";s:4:"𠔥";s:4:"𠔥";s:4:"煅";s:3:"煅";s:4:"𤉣";s:4:"𤉣";s:4:"熜";s:3:"熜";s:4:"𤎫";s:4:"𤎫";s:4:"爨";s:3:"爨";s:4:"爵";s:3:"爵";s:4:"牐";s:3:"牐";s:4:"𤘈";s:4:"𤘈";s:4:"犀";s:3:"犀";s:4:"犕";s:3:"犕";s:4:"𤜵";s:4:"𤜵";s:4:"𤠔";s:4:"𤠔";s:4:"獺";s:3:"獺";s:4:"王";s:3:"王";s:4:"㺬";s:3:"㺬";s:4:"玥";s:3:"玥";s:4:"㺸";s:3:"㺸";s:4:"㺸";s:3:"㺸";s:4:"瑇";s:3:"瑇";s:4:"瑜";s:3:"瑜";s:4:"瑱";s:3:"瑱";s:4:"璅";s:3:"璅";s:4:"瓊";s:3:"瓊";s:4:"㼛";s:3:"㼛";s:4:"甤";s:3:"甤";s:4:"𤰶";s:4:"𤰶";s:4:"甾";s:3:"甾";s:4:"𤲒";s:4:"𤲒";s:4:"異";s:3:"異";s:4:"𢆟";s:4:"𢆟";s:4:"瘐";s:3:"瘐";s:4:"𤾡";s:4:"𤾡";s:4:"𤾸";s:4:"𤾸";s:4:"𥁄";s:4:"𥁄";s:4:"㿼";s:3:"㿼";s:4:"䀈";s:3:"䀈";s:4:"直";s:3:"直";s:4:"𥃳";s:4:"𥃳";s:4:"𥃲";s:4:"𥃲";s:4:"𥄙";s:4:"𥄙";s:4:"𥄳";s:4:"𥄳";s:4:"眞";s:3:"眞";s:4:"真";s:3:"真";s:4:"真";s:3:"真";s:4:"睊";s:3:"睊";s:4:"䀹";s:3:"䀹";s:4:"瞋";s:3:"瞋";s:4:"䁆";s:3:"䁆";s:4:"䂖";s:3:"䂖";s:4:"𥐝";s:4:"𥐝";s:4:"硎";s:3:"硎";s:4:"碌";s:3:"碌";s:4:"磌";s:3:"磌";s:4:"䃣";s:3:"䃣";s:4:"𥘦";s:4:"𥘦";s:4:"祖";s:3:"祖";s:4:"𥚚";s:4:"𥚚";s:4:"𥛅";s:4:"𥛅";s:4:"福";s:3:"福";s:4:"秫";s:3:"秫";s:4:"䄯";s:3:"䄯";s:4:"穀";s:3:"穀";s:4:"穊";s:3:"穊";s:4:"穏";s:3:"穏";s:4:"𥥼";s:4:"𥥼";s:4:"𥪧";s:4:"𥪧";s:4:"𥪧";s:4:"𥪧";s:4:"竮";s:3:"竮";s:4:"䈂";s:3:"䈂";s:4:"𥮫";s:4:"𥮫";s:4:"篆";s:3:"篆";s:4:"築";s:3:"築";s:4:"䈧";s:3:"䈧";s:4:"𥲀";s:4:"𥲀";s:4:"糒";s:3:"糒";s:4:"䊠";s:3:"䊠";s:4:"糨";s:3:"糨";s:4:"糣";s:3:"糣";s:4:"紀";s:3:"紀";s:4:"𥾆";s:4:"𥾆";s:4:"絣";s:3:"絣";s:4:"䌁";s:3:"䌁";s:4:"緇";s:3:"緇";s:4:"縂";s:3:"縂";s:4:"繅";s:3:"繅";s:4:"䌴";s:3:"䌴";s:4:"𦈨";s:4:"𦈨";s:4:"𦉇";s:4:"𦉇";s:4:"䍙";s:3:"䍙";s:4:"𦋙";s:4:"𦋙";s:4:"罺";s:3:"罺";s:4:"𦌾";s:4:"𦌾";s:4:"羕";s:3:"羕";s:4:"翺";s:3:"翺";s:4:"者";s:3:"者";s:4:"𦓚";s:4:"𦓚";s:4:"𦔣";s:4:"𦔣";s:4:"聠";s:3:"聠";s:4:"𦖨";s:4:"𦖨";s:4:"聰";s:3:"聰";s:4:"𣍟";s:4:"𣍟";s:4:"䏕";s:3:"䏕";s:4:"育";s:3:"育";s:4:"脃";s:3:"脃";s:4:"䐋";s:3:"䐋";s:4:"脾";s:3:"脾";s:4:"媵";s:3:"媵";s:4:"𦞧";s:4:"𦞧";s:4:"𦞵";s:4:"𦞵";s:4:"𣎓";s:4:"𣎓";s:4:"𣎜";s:4:"𣎜";s:4:"舁";s:3:"舁";s:4:"舄";s:3:"舄";s:4:"辞";s:3:"辞";s:4:"䑫";s:3:"䑫";s:4:"芑";s:3:"芑";s:4:"芋";s:3:"芋";s:4:"芝";s:3:"芝";s:4:"劳";s:3:"劳";s:4:"花";s:3:"花";s:4:"芳";s:3:"芳";s:4:"芽";s:3:"芽";s:4:"苦";s:3:"苦";s:4:"𦬼";s:4:"𦬼";s:4:"若";s:3:"若";s:4:"茝";s:3:"茝";s:4:"荣";s:3:"荣";s:4:"莭";s:3:"莭";s:4:"茣";s:3:"茣";s:4:"莽";s:3:"莽";s:4:"菧";s:3:"菧";s:4:"著";s:3:"著";s:4:"荓";s:3:"荓";s:4:"菊";s:3:"菊";s:4:"菌";s:3:"菌";s:4:"菜";s:3:"菜";s:4:"𦰶";s:4:"𦰶";s:4:"𦵫";s:4:"𦵫";s:4:"𦳕";s:4:"𦳕";s:4:"䔫";s:3:"䔫";s:4:"蓱";s:3:"蓱";s:4:"蓳";s:3:"蓳";s:4:"蔖";s:3:"蔖";s:4:"𧏊";s:4:"𧏊";s:4:"蕤";s:3:"蕤";s:4:"𦼬";s:4:"𦼬";s:4:"䕝";s:3:"䕝";s:4:"䕡";s:3:"䕡";s:4:"𦾱";s:4:"𦾱";s:4:"𧃒";s:4:"𧃒";s:4:"䕫";s:3:"䕫";s:4:"虐";s:3:"虐";s:4:"虜";s:3:"虜";s:4:"虧";s:3:"虧";s:4:"虩";s:3:"虩";s:4:"蚩";s:3:"蚩";s:4:"蚈";s:3:"蚈";s:4:"蜎";s:3:"蜎";s:4:"蛢";s:3:"蛢";s:4:"蝹";s:3:"蝹";s:4:"蜨";s:3:"蜨";s:4:"蝫";s:3:"蝫";s:4:"螆";s:3:"螆";s:4:"䗗";s:3:"䗗";s:4:"蟡";s:3:"蟡";s:4:"蠁";s:3:"蠁";s:4:"䗹";s:3:"䗹";s:4:"衠";s:3:"衠";s:4:"衣";s:3:"衣";s:4:"𧙧";s:4:"𧙧";s:4:"裗";s:3:"裗";s:4:"裞";s:3:"裞";s:4:"䘵";s:3:"䘵";s:4:"裺";s:3:"裺";s:4:"㒻";s:3:"㒻";s:4:"𧢮";s:4:"𧢮";s:4:"𧥦";s:4:"𧥦";s:4:"䚾";s:3:"䚾";s:4:"䛇";s:3:"䛇";s:4:"誠";s:3:"誠";s:4:"諭";s:3:"諭";s:4:"變";s:3:"變";s:4:"豕";s:3:"豕";s:4:"𧲨";s:4:"𧲨";s:4:"貫";s:3:"貫";s:4:"賁";s:3:"賁";s:4:"贛";s:3:"贛";s:4:"起";s:3:"起";s:4:"𧼯";s:4:"𧼯";s:4:"𠠄";s:4:"𠠄";s:4:"跋";s:3:"跋";s:4:"趼";s:3:"趼";s:4:"跰";s:3:"跰";s:4:"𠣞";s:4:"𠣞";s:4:"軔";s:3:"軔";s:4:"輸";s:3:"輸";s:4:"𨗒";s:4:"𨗒";s:4:"𨗭";s:4:"𨗭";s:4:"邔";s:3:"邔";s:4:"郱";s:3:"郱";s:4:"鄑";s:3:"鄑";s:4:"𨜮";s:4:"𨜮";s:4:"鄛";s:3:"鄛";s:4:"鈸";s:3:"鈸";s:4:"鋗";s:3:"鋗";s:4:"鋘";s:3:"鋘";s:4:"鉼";s:3:"鉼";s:4:"鏹";s:3:"鏹";s:4:"鐕";s:3:"鐕";s:4:"𨯺";s:4:"𨯺";s:4:"開";s:3:"開";s:4:"䦕";s:3:"䦕";s:4:"閷";s:3:"閷";s:4:"𨵷";s:4:"𨵷";s:4:"䧦";s:3:"䧦";s:4:"雃";s:3:"雃";s:4:"嶲";s:3:"嶲";s:4:"霣";s:3:"霣";s:4:"𩅅";s:4:"𩅅";s:4:"𩈚";s:4:"𩈚";s:4:"䩮";s:3:"䩮";s:4:"䩶";s:3:"䩶";s:4:"韠";s:3:"韠";s:4:"𩐊";s:4:"𩐊";s:4:"䪲";s:3:"䪲";s:4:"𩒖";s:4:"𩒖";s:4:"頋";s:3:"頋";s:4:"頋";s:3:"頋";s:4:"頩";s:3:"頩";s:4:"𩖶";s:4:"𩖶";s:4:"飢";s:3:"飢";s:4:"䬳";s:3:"䬳";s:4:"餩";s:3:"餩";s:4:"馧";s:3:"馧";s:4:"駂";s:3:"駂";s:4:"駾";s:3:"駾";s:4:"䯎";s:3:"䯎";s:4:"𩬰";s:4:"𩬰";s:4:"鬒";s:3:"鬒";s:4:"鱀";s:3:"鱀";s:4:"鳽";s:3:"鳽";s:4:"䳎";s:3:"䳎";s:4:"䳭";s:3:"䳭";s:4:"鵧";s:3:"鵧";s:4:"𪃎";s:4:"𪃎";s:4:"䳸";s:3:"䳸";s:4:"𪄅";s:4:"𪄅";s:4:"𪈎";s:4:"𪈎";s:4:"𪊑";s:4:"𪊑";s:4:"麻";s:3:"麻";s:4:"䵖";s:3:"䵖";s:4:"黹";s:3:"黹";s:4:"黾";s:3:"黾";s:4:"鼅";s:3:"鼅";s:4:"鼏";s:3:"鼏";s:4:"鼖";s:3:"鼖";s:4:"鼻";s:3:"鼻";s:4:"𪘀";s:4:"𪘀";}' );
-UtfNormal::$utfCheckNFC = unserialize( 'a:1221:{s:2:"̀";s:1:"N";s:2:"́";s:1:"N";s:2:"̓";s:1:"N";s:2:"̈́";s:1:"N";s:2:"ʹ";s:1:"N";s:2:";";s:1:"N";s:2:"·";s:1:"N";s:3:"क़";s:1:"N";s:3:"ख़";s:1:"N";s:3:"ग़";s:1:"N";s:3:"ज़";s:1:"N";s:3:"ड़";s:1:"N";s:3:"ढ़";s:1:"N";s:3:"फ़";s:1:"N";s:3:"य़";s:1:"N";s:3:"ড়";s:1:"N";s:3:"ঢ়";s:1:"N";s:3:"য়";s:1:"N";s:3:"ਲ਼";s:1:"N";s:3:"ਸ਼";s:1:"N";s:3:"ਖ਼";s:1:"N";s:3:"ਗ਼";s:1:"N";s:3:"ਜ਼";s:1:"N";s:3:"ਫ਼";s:1:"N";s:3:"ଡ଼";s:1:"N";s:3:"ଢ଼";s:1:"N";s:3:"གྷ";s:1:"N";s:3:"ཌྷ";s:1:"N";s:3:"དྷ";s:1:"N";s:3:"བྷ";s:1:"N";s:3:"ཛྷ";s:1:"N";s:3:"ཀྵ";s:1:"N";s:3:"ཱི";s:1:"N";s:3:"ཱུ";s:1:"N";s:3:"ྲྀ";s:1:"N";s:3:"ླྀ";s:1:"N";s:3:"ཱྀ";s:1:"N";s:3:"ྒྷ";s:1:"N";s:3:"ྜྷ";s:1:"N";s:3:"ྡྷ";s:1:"N";s:3:"ྦྷ";s:1:"N";s:3:"ྫྷ";s:1:"N";s:3:"ྐྵ";s:1:"N";s:3:"ά";s:1:"N";s:3:"έ";s:1:"N";s:3:"ή";s:1:"N";s:3:"ί";s:1:"N";s:3:"ό";s:1:"N";s:3:"ύ";s:1:"N";s:3:"ώ";s:1:"N";s:3:"Ά";s:1:"N";s:3:"ι";s:1:"N";s:3:"Έ";s:1:"N";s:3:"Ή";s:1:"N";s:3:"ΐ";s:1:"N";s:3:"Ί";s:1:"N";s:3:"ΰ";s:1:"N";s:3:"Ύ";s:1:"N";s:3:"΅";s:1:"N";s:3:"`";s:1:"N";s:3:"Ό";s:1:"N";s:3:"Ώ";s:1:"N";s:3:"´";s:1:"N";s:3:" ";s:1:"N";s:3:" ";s:1:"N";s:3:"Ω";s:1:"N";s:3:"K";s:1:"N";s:3:"Å";s:1:"N";s:3:"〈";s:1:"N";s:3:"〉";s:1:"N";s:3:"⫝̸";s:1:"N";s:3:"豈";s:1:"N";s:3:"更";s:1:"N";s:3:"車";s:1:"N";s:3:"賈";s:1:"N";s:3:"滑";s:1:"N";s:3:"串";s:1:"N";s:3:"句";s:1:"N";s:3:"龜";s:1:"N";s:3:"龜";s:1:"N";s:3:"契";s:1:"N";s:3:"金";s:1:"N";s:3:"喇";s:1:"N";s:3:"奈";s:1:"N";s:3:"懶";s:1:"N";s:3:"癩";s:1:"N";s:3:"羅";s:1:"N";s:3:"蘿";s:1:"N";s:3:"螺";s:1:"N";s:3:"裸";s:1:"N";s:3:"邏";s:1:"N";s:3:"樂";s:1:"N";s:3:"洛";s:1:"N";s:3:"烙";s:1:"N";s:3:"珞";s:1:"N";s:3:"落";s:1:"N";s:3:"酪";s:1:"N";s:3:"駱";s:1:"N";s:3:"亂";s:1:"N";s:3:"卵";s:1:"N";s:3:"欄";s:1:"N";s:3:"爛";s:1:"N";s:3:"蘭";s:1:"N";s:3:"鸞";s:1:"N";s:3:"嵐";s:1:"N";s:3:"濫";s:1:"N";s:3:"藍";s:1:"N";s:3:"襤";s:1:"N";s:3:"拉";s:1:"N";s:3:"臘";s:1:"N";s:3:"蠟";s:1:"N";s:3:"廊";s:1:"N";s:3:"朗";s:1:"N";s:3:"浪";s:1:"N";s:3:"狼";s:1:"N";s:3:"郎";s:1:"N";s:3:"來";s:1:"N";s:3:"冷";s:1:"N";s:3:"勞";s:1:"N";s:3:"擄";s:1:"N";s:3:"櫓";s:1:"N";s:3:"爐";s:1:"N";s:3:"盧";s:1:"N";s:3:"老";s:1:"N";s:3:"蘆";s:1:"N";s:3:"虜";s:1:"N";s:3:"路";s:1:"N";s:3:"露";s:1:"N";s:3:"魯";s:1:"N";s:3:"鷺";s:1:"N";s:3:"碌";s:1:"N";s:3:"祿";s:1:"N";s:3:"綠";s:1:"N";s:3:"菉";s:1:"N";s:3:"錄";s:1:"N";s:3:"鹿";s:1:"N";s:3:"論";s:1:"N";s:3:"壟";s:1:"N";s:3:"弄";s:1:"N";s:3:"籠";s:1:"N";s:3:"聾";s:1:"N";s:3:"牢";s:1:"N";s:3:"磊";s:1:"N";s:3:"賂";s:1:"N";s:3:"雷";s:1:"N";s:3:"壘";s:1:"N";s:3:"屢";s:1:"N";s:3:"樓";s:1:"N";s:3:"淚";s:1:"N";s:3:"漏";s:1:"N";s:3:"累";s:1:"N";s:3:"縷";s:1:"N";s:3:"陋";s:1:"N";s:3:"勒";s:1:"N";s:3:"肋";s:1:"N";s:3:"凜";s:1:"N";s:3:"凌";s:1:"N";s:3:"稜";s:1:"N";s:3:"綾";s:1:"N";s:3:"菱";s:1:"N";s:3:"陵";s:1:"N";s:3:"讀";s:1:"N";s:3:"拏";s:1:"N";s:3:"樂";s:1:"N";s:3:"諾";s:1:"N";s:3:"丹";s:1:"N";s:3:"寧";s:1:"N";s:3:"怒";s:1:"N";s:3:"率";s:1:"N";s:3:"異";s:1:"N";s:3:"北";s:1:"N";s:3:"磻";s:1:"N";s:3:"便";s:1:"N";s:3:"復";s:1:"N";s:3:"不";s:1:"N";s:3:"泌";s:1:"N";s:3:"數";s:1:"N";s:3:"索";s:1:"N";s:3:"參";s:1:"N";s:3:"塞";s:1:"N";s:3:"省";s:1:"N";s:3:"葉";s:1:"N";s:3:"說";s:1:"N";s:3:"殺";s:1:"N";s:3:"辰";s:1:"N";s:3:"沈";s:1:"N";s:3:"拾";s:1:"N";s:3:"若";s:1:"N";s:3:"掠";s:1:"N";s:3:"略";s:1:"N";s:3:"亮";s:1:"N";s:3:"兩";s:1:"N";s:3:"凉";s:1:"N";s:3:"梁";s:1:"N";s:3:"糧";s:1:"N";s:3:"良";s:1:"N";s:3:"諒";s:1:"N";s:3:"量";s:1:"N";s:3:"勵";s:1:"N";s:3:"呂";s:1:"N";s:3:"女";s:1:"N";s:3:"廬";s:1:"N";s:3:"旅";s:1:"N";s:3:"濾";s:1:"N";s:3:"礪";s:1:"N";s:3:"閭";s:1:"N";s:3:"驪";s:1:"N";s:3:"麗";s:1:"N";s:3:"黎";s:1:"N";s:3:"力";s:1:"N";s:3:"曆";s:1:"N";s:3:"歷";s:1:"N";s:3:"轢";s:1:"N";s:3:"年";s:1:"N";s:3:"憐";s:1:"N";s:3:"戀";s:1:"N";s:3:"撚";s:1:"N";s:3:"漣";s:1:"N";s:3:"煉";s:1:"N";s:3:"璉";s:1:"N";s:3:"秊";s:1:"N";s:3:"練";s:1:"N";s:3:"聯";s:1:"N";s:3:"輦";s:1:"N";s:3:"蓮";s:1:"N";s:3:"連";s:1:"N";s:3:"鍊";s:1:"N";s:3:"列";s:1:"N";s:3:"劣";s:1:"N";s:3:"咽";s:1:"N";s:3:"烈";s:1:"N";s:3:"裂";s:1:"N";s:3:"說";s:1:"N";s:3:"廉";s:1:"N";s:3:"念";s:1:"N";s:3:"捻";s:1:"N";s:3:"殮";s:1:"N";s:3:"簾";s:1:"N";s:3:"獵";s:1:"N";s:3:"令";s:1:"N";s:3:"囹";s:1:"N";s:3:"寧";s:1:"N";s:3:"嶺";s:1:"N";s:3:"怜";s:1:"N";s:3:"玲";s:1:"N";s:3:"瑩";s:1:"N";s:3:"羚";s:1:"N";s:3:"聆";s:1:"N";s:3:"鈴";s:1:"N";s:3:"零";s:1:"N";s:3:"靈";s:1:"N";s:3:"領";s:1:"N";s:3:"例";s:1:"N";s:3:"禮";s:1:"N";s:3:"醴";s:1:"N";s:3:"隸";s:1:"N";s:3:"惡";s:1:"N";s:3:"了";s:1:"N";s:3:"僚";s:1:"N";s:3:"寮";s:1:"N";s:3:"尿";s:1:"N";s:3:"料";s:1:"N";s:3:"樂";s:1:"N";s:3:"燎";s:1:"N";s:3:"療";s:1:"N";s:3:"蓼";s:1:"N";s:3:"遼";s:1:"N";s:3:"龍";s:1:"N";s:3:"暈";s:1:"N";s:3:"阮";s:1:"N";s:3:"劉";s:1:"N";s:3:"杻";s:1:"N";s:3:"柳";s:1:"N";s:3:"流";s:1:"N";s:3:"溜";s:1:"N";s:3:"琉";s:1:"N";s:3:"留";s:1:"N";s:3:"硫";s:1:"N";s:3:"紐";s:1:"N";s:3:"類";s:1:"N";s:3:"六";s:1:"N";s:3:"戮";s:1:"N";s:3:"陸";s:1:"N";s:3:"倫";s:1:"N";s:3:"崙";s:1:"N";s:3:"淪";s:1:"N";s:3:"輪";s:1:"N";s:3:"律";s:1:"N";s:3:"慄";s:1:"N";s:3:"栗";s:1:"N";s:3:"率";s:1:"N";s:3:"隆";s:1:"N";s:3:"利";s:1:"N";s:3:"吏";s:1:"N";s:3:"履";s:1:"N";s:3:"易";s:1:"N";s:3:"李";s:1:"N";s:3:"梨";s:1:"N";s:3:"泥";s:1:"N";s:3:"理";s:1:"N";s:3:"痢";s:1:"N";s:3:"罹";s:1:"N";s:3:"裏";s:1:"N";s:3:"裡";s:1:"N";s:3:"里";s:1:"N";s:3:"離";s:1:"N";s:3:"匿";s:1:"N";s:3:"溺";s:1:"N";s:3:"吝";s:1:"N";s:3:"燐";s:1:"N";s:3:"璘";s:1:"N";s:3:"藺";s:1:"N";s:3:"隣";s:1:"N";s:3:"鱗";s:1:"N";s:3:"麟";s:1:"N";s:3:"林";s:1:"N";s:3:"淋";s:1:"N";s:3:"臨";s:1:"N";s:3:"立";s:1:"N";s:3:"笠";s:1:"N";s:3:"粒";s:1:"N";s:3:"狀";s:1:"N";s:3:"炙";s:1:"N";s:3:"識";s:1:"N";s:3:"什";s:1:"N";s:3:"茶";s:1:"N";s:3:"刺";s:1:"N";s:3:"切";s:1:"N";s:3:"度";s:1:"N";s:3:"拓";s:1:"N";s:3:"糖";s:1:"N";s:3:"宅";s:1:"N";s:3:"洞";s:1:"N";s:3:"暴";s:1:"N";s:3:"輻";s:1:"N";s:3:"行";s:1:"N";s:3:"降";s:1:"N";s:3:"見";s:1:"N";s:3:"廓";s:1:"N";s:3:"兀";s:1:"N";s:3:"嗀";s:1:"N";s:3:"塚";s:1:"N";s:3:"晴";s:1:"N";s:3:"凞";s:1:"N";s:3:"猪";s:1:"N";s:3:"益";s:1:"N";s:3:"礼";s:1:"N";s:3:"神";s:1:"N";s:3:"祥";s:1:"N";s:3:"福";s:1:"N";s:3:"靖";s:1:"N";s:3:"精";s:1:"N";s:3:"羽";s:1:"N";s:3:"蘒";s:1:"N";s:3:"諸";s:1:"N";s:3:"逸";s:1:"N";s:3:"都";s:1:"N";s:3:"飯";s:1:"N";s:3:"飼";s:1:"N";s:3:"館";s:1:"N";s:3:"鶴";s:1:"N";s:3:"侮";s:1:"N";s:3:"僧";s:1:"N";s:3:"免";s:1:"N";s:3:"勉";s:1:"N";s:3:"勤";s:1:"N";s:3:"卑";s:1:"N";s:3:"喝";s:1:"N";s:3:"嘆";s:1:"N";s:3:"器";s:1:"N";s:3:"塀";s:1:"N";s:3:"墨";s:1:"N";s:3:"層";s:1:"N";s:3:"屮";s:1:"N";s:3:"悔";s:1:"N";s:3:"慨";s:1:"N";s:3:"憎";s:1:"N";s:3:"懲";s:1:"N";s:3:"敏";s:1:"N";s:3:"既";s:1:"N";s:3:"暑";s:1:"N";s:3:"梅";s:1:"N";s:3:"海";s:1:"N";s:3:"渚";s:1:"N";s:3:"漢";s:1:"N";s:3:"煮";s:1:"N";s:3:"爫";s:1:"N";s:3:"琢";s:1:"N";s:3:"碑";s:1:"N";s:3:"社";s:1:"N";s:3:"祉";s:1:"N";s:3:"祈";s:1:"N";s:3:"祐";s:1:"N";s:3:"祖";s:1:"N";s:3:"祝";s:1:"N";s:3:"禍";s:1:"N";s:3:"禎";s:1:"N";s:3:"穀";s:1:"N";s:3:"突";s:1:"N";s:3:"節";s:1:"N";s:3:"練";s:1:"N";s:3:"縉";s:1:"N";s:3:"繁";s:1:"N";s:3:"署";s:1:"N";s:3:"者";s:1:"N";s:3:"臭";s:1:"N";s:3:"艹";s:1:"N";s:3:"艹";s:1:"N";s:3:"著";s:1:"N";s:3:"褐";s:1:"N";s:3:"視";s:1:"N";s:3:"謁";s:1:"N";s:3:"謹";s:1:"N";s:3:"賓";s:1:"N";s:3:"贈";s:1:"N";s:3:"辶";s:1:"N";s:3:"逸";s:1:"N";s:3:"難";s:1:"N";s:3:"響";s:1:"N";s:3:"頻";s:1:"N";s:3:"恵";s:1:"N";s:3:"𤋮";s:1:"N";s:3:"舘";s:1:"N";s:3:"並";s:1:"N";s:3:"况";s:1:"N";s:3:"全";s:1:"N";s:3:"侀";s:1:"N";s:3:"充";s:1:"N";s:3:"冀";s:1:"N";s:3:"勇";s:1:"N";s:3:"勺";s:1:"N";s:3:"喝";s:1:"N";s:3:"啕";s:1:"N";s:3:"喙";s:1:"N";s:3:"嗢";s:1:"N";s:3:"塚";s:1:"N";s:3:"墳";s:1:"N";s:3:"奄";s:1:"N";s:3:"奔";s:1:"N";s:3:"婢";s:1:"N";s:3:"嬨";s:1:"N";s:3:"廒";s:1:"N";s:3:"廙";s:1:"N";s:3:"彩";s:1:"N";s:3:"徭";s:1:"N";s:3:"惘";s:1:"N";s:3:"慎";s:1:"N";s:3:"愈";s:1:"N";s:3:"憎";s:1:"N";s:3:"慠";s:1:"N";s:3:"懲";s:1:"N";s:3:"戴";s:1:"N";s:3:"揄";s:1:"N";s:3:"搜";s:1:"N";s:3:"摒";s:1:"N";s:3:"敖";s:1:"N";s:3:"晴";s:1:"N";s:3:"朗";s:1:"N";s:3:"望";s:1:"N";s:3:"杖";s:1:"N";s:3:"歹";s:1:"N";s:3:"殺";s:1:"N";s:3:"流";s:1:"N";s:3:"滛";s:1:"N";s:3:"滋";s:1:"N";s:3:"漢";s:1:"N";s:3:"瀞";s:1:"N";s:3:"煮";s:1:"N";s:3:"瞧";s:1:"N";s:3:"爵";s:1:"N";s:3:"犯";s:1:"N";s:3:"猪";s:1:"N";s:3:"瑱";s:1:"N";s:3:"甆";s:1:"N";s:3:"画";s:1:"N";s:3:"瘝";s:1:"N";s:3:"瘟";s:1:"N";s:3:"益";s:1:"N";s:3:"盛";s:1:"N";s:3:"直";s:1:"N";s:3:"睊";s:1:"N";s:3:"着";s:1:"N";s:3:"磌";s:1:"N";s:3:"窱";s:1:"N";s:3:"節";s:1:"N";s:3:"类";s:1:"N";s:3:"絛";s:1:"N";s:3:"練";s:1:"N";s:3:"缾";s:1:"N";s:3:"者";s:1:"N";s:3:"荒";s:1:"N";s:3:"華";s:1:"N";s:3:"蝹";s:1:"N";s:3:"襁";s:1:"N";s:3:"覆";s:1:"N";s:3:"視";s:1:"N";s:3:"調";s:1:"N";s:3:"諸";s:1:"N";s:3:"請";s:1:"N";s:3:"謁";s:1:"N";s:3:"諾";s:1:"N";s:3:"諭";s:1:"N";s:3:"謹";s:1:"N";s:3:"變";s:1:"N";s:3:"贈";s:1:"N";s:3:"輸";s:1:"N";s:3:"遲";s:1:"N";s:3:"醙";s:1:"N";s:3:"鉶";s:1:"N";s:3:"陼";s:1:"N";s:3:"難";s:1:"N";s:3:"靖";s:1:"N";s:3:"韛";s:1:"N";s:3:"響";s:1:"N";s:3:"頋";s:1:"N";s:3:"頻";s:1:"N";s:3:"鬒";s:1:"N";s:3:"龜";s:1:"N";s:3:"𢡊";s:1:"N";s:3:"𢡄";s:1:"N";s:3:"𣏕";s:1:"N";s:3:"㮝";s:1:"N";s:3:"䀘";s:1:"N";s:3:"䀹";s:1:"N";s:3:"𥉉";s:1:"N";s:3:"𥳐";s:1:"N";s:3:"𧻓";s:1:"N";s:3:"齃";s:1:"N";s:3:"龎";s:1:"N";s:3:"יִ";s:1:"N";s:3:"ײַ";s:1:"N";s:3:"שׁ";s:1:"N";s:3:"שׂ";s:1:"N";s:3:"שּׁ";s:1:"N";s:3:"שּׂ";s:1:"N";s:3:"אַ";s:1:"N";s:3:"אָ";s:1:"N";s:3:"אּ";s:1:"N";s:3:"בּ";s:1:"N";s:3:"גּ";s:1:"N";s:3:"דּ";s:1:"N";s:3:"הּ";s:1:"N";s:3:"וּ";s:1:"N";s:3:"זּ";s:1:"N";s:3:"טּ";s:1:"N";s:3:"יּ";s:1:"N";s:3:"ךּ";s:1:"N";s:3:"כּ";s:1:"N";s:3:"לּ";s:1:"N";s:3:"מּ";s:1:"N";s:3:"נּ";s:1:"N";s:3:"סּ";s:1:"N";s:3:"ףּ";s:1:"N";s:3:"פּ";s:1:"N";s:3:"צּ";s:1:"N";s:3:"קּ";s:1:"N";s:3:"רּ";s:1:"N";s:3:"שּ";s:1:"N";s:3:"תּ";s:1:"N";s:3:"וֹ";s:1:"N";s:3:"בֿ";s:1:"N";s:3:"כֿ";s:1:"N";s:3:"פֿ";s:1:"N";s:4:"𝅗𝅥";s:1:"N";s:4:"𝅘𝅥";s:1:"N";s:4:"𝅘𝅥𝅮";s:1:"N";s:4:"𝅘𝅥𝅯";s:1:"N";s:4:"𝅘𝅥𝅰";s:1:"N";s:4:"𝅘𝅥𝅱";s:1:"N";s:4:"𝅘𝅥𝅲";s:1:"N";s:4:"𝆹𝅥";s:1:"N";s:4:"𝆺𝅥";s:1:"N";s:4:"𝆹𝅥𝅮";s:1:"N";s:4:"𝆺𝅥𝅮";s:1:"N";s:4:"𝆹𝅥𝅯";s:1:"N";s:4:"𝆺𝅥𝅯";s:1:"N";s:4:"丽";s:1:"N";s:4:"丸";s:1:"N";s:4:"乁";s:1:"N";s:4:"𠄢";s:1:"N";s:4:"你";s:1:"N";s:4:"侮";s:1:"N";s:4:"侻";s:1:"N";s:4:"倂";s:1:"N";s:4:"偺";s:1:"N";s:4:"備";s:1:"N";s:4:"僧";s:1:"N";s:4:"像";s:1:"N";s:4:"㒞";s:1:"N";s:4:"𠘺";s:1:"N";s:4:"免";s:1:"N";s:4:"兔";s:1:"N";s:4:"兤";s:1:"N";s:4:"具";s:1:"N";s:4:"𠔜";s:1:"N";s:4:"㒹";s:1:"N";s:4:"內";s:1:"N";s:4:"再";s:1:"N";s:4:"𠕋";s:1:"N";s:4:"冗";s:1:"N";s:4:"冤";s:1:"N";s:4:"仌";s:1:"N";s:4:"冬";s:1:"N";s:4:"况";s:1:"N";s:4:"𩇟";s:1:"N";s:4:"凵";s:1:"N";s:4:"刃";s:1:"N";s:4:"㓟";s:1:"N";s:4:"刻";s:1:"N";s:4:"剆";s:1:"N";s:4:"割";s:1:"N";s:4:"剷";s:1:"N";s:4:"㔕";s:1:"N";s:4:"勇";s:1:"N";s:4:"勉";s:1:"N";s:4:"勤";s:1:"N";s:4:"勺";s:1:"N";s:4:"包";s:1:"N";s:4:"匆";s:1:"N";s:4:"北";s:1:"N";s:4:"卉";s:1:"N";s:4:"卑";s:1:"N";s:4:"博";s:1:"N";s:4:"即";s:1:"N";s:4:"卽";s:1:"N";s:4:"卿";s:1:"N";s:4:"卿";s:1:"N";s:4:"卿";s:1:"N";s:4:"𠨬";s:1:"N";s:4:"灰";s:1:"N";s:4:"及";s:1:"N";s:4:"叟";s:1:"N";s:4:"𠭣";s:1:"N";s:4:"叫";s:1:"N";s:4:"叱";s:1:"N";s:4:"吆";s:1:"N";s:4:"咞";s:1:"N";s:4:"吸";s:1:"N";s:4:"呈";s:1:"N";s:4:"周";s:1:"N";s:4:"咢";s:1:"N";s:4:"哶";s:1:"N";s:4:"唐";s:1:"N";s:4:"啓";s:1:"N";s:4:"啣";s:1:"N";s:4:"善";s:1:"N";s:4:"善";s:1:"N";s:4:"喙";s:1:"N";s:4:"喫";s:1:"N";s:4:"喳";s:1:"N";s:4:"嗂";s:1:"N";s:4:"圖";s:1:"N";s:4:"嘆";s:1:"N";s:4:"圗";s:1:"N";s:4:"噑";s:1:"N";s:4:"噴";s:1:"N";s:4:"切";s:1:"N";s:4:"壮";s:1:"N";s:4:"城";s:1:"N";s:4:"埴";s:1:"N";s:4:"堍";s:1:"N";s:4:"型";s:1:"N";s:4:"堲";s:1:"N";s:4:"報";s:1:"N";s:4:"墬";s:1:"N";s:4:"𡓤";s:1:"N";s:4:"売";s:1:"N";s:4:"壷";s:1:"N";s:4:"夆";s:1:"N";s:4:"多";s:1:"N";s:4:"夢";s:1:"N";s:4:"奢";s:1:"N";s:4:"𡚨";s:1:"N";s:4:"𡛪";s:1:"N";s:4:"姬";s:1:"N";s:4:"娛";s:1:"N";s:4:"娧";s:1:"N";s:4:"姘";s:1:"N";s:4:"婦";s:1:"N";s:4:"㛮";s:1:"N";s:4:"㛼";s:1:"N";s:4:"嬈";s:1:"N";s:4:"嬾";s:1:"N";s:4:"嬾";s:1:"N";s:4:"𡧈";s:1:"N";s:4:"寃";s:1:"N";s:4:"寘";s:1:"N";s:4:"寧";s:1:"N";s:4:"寳";s:1:"N";s:4:"𡬘";s:1:"N";s:4:"寿";s:1:"N";s:4:"将";s:1:"N";s:4:"当";s:1:"N";s:4:"尢";s:1:"N";s:4:"㞁";s:1:"N";s:4:"屠";s:1:"N";s:4:"屮";s:1:"N";s:4:"峀";s:1:"N";s:4:"岍";s:1:"N";s:4:"𡷤";s:1:"N";s:4:"嵃";s:1:"N";s:4:"𡷦";s:1:"N";s:4:"嵮";s:1:"N";s:4:"嵫";s:1:"N";s:4:"嵼";s:1:"N";s:4:"巡";s:1:"N";s:4:"巢";s:1:"N";s:4:"㠯";s:1:"N";s:4:"巽";s:1:"N";s:4:"帨";s:1:"N";s:4:"帽";s:1:"N";s:4:"幩";s:1:"N";s:4:"㡢";s:1:"N";s:4:"𢆃";s:1:"N";s:4:"㡼";s:1:"N";s:4:"庰";s:1:"N";s:4:"庳";s:1:"N";s:4:"庶";s:1:"N";s:4:"廊";s:1:"N";s:4:"𪎒";s:1:"N";s:4:"廾";s:1:"N";s:4:"𢌱";s:1:"N";s:4:"𢌱";s:1:"N";s:4:"舁";s:1:"N";s:4:"弢";s:1:"N";s:4:"弢";s:1:"N";s:4:"㣇";s:1:"N";s:4:"𣊸";s:1:"N";s:4:"𦇚";s:1:"N";s:4:"形";s:1:"N";s:4:"彫";s:1:"N";s:4:"㣣";s:1:"N";s:4:"徚";s:1:"N";s:4:"忍";s:1:"N";s:4:"志";s:1:"N";s:4:"忹";s:1:"N";s:4:"悁";s:1:"N";s:4:"㤺";s:1:"N";s:4:"㤜";s:1:"N";s:4:"悔";s:1:"N";s:4:"𢛔";s:1:"N";s:4:"惇";s:1:"N";s:4:"慈";s:1:"N";s:4:"慌";s:1:"N";s:4:"慎";s:1:"N";s:4:"慌";s:1:"N";s:4:"慺";s:1:"N";s:4:"憎";s:1:"N";s:4:"憲";s:1:"N";s:4:"憤";s:1:"N";s:4:"憯";s:1:"N";s:4:"懞";s:1:"N";s:4:"懲";s:1:"N";s:4:"懶";s:1:"N";s:4:"成";s:1:"N";s:4:"戛";s:1:"N";s:4:"扝";s:1:"N";s:4:"抱";s:1:"N";s:4:"拔";s:1:"N";s:4:"捐";s:1:"N";s:4:"𢬌";s:1:"N";s:4:"挽";s:1:"N";s:4:"拼";s:1:"N";s:4:"捨";s:1:"N";s:4:"掃";s:1:"N";s:4:"揤";s:1:"N";s:4:"𢯱";s:1:"N";s:4:"搢";s:1:"N";s:4:"揅";s:1:"N";s:4:"掩";s:1:"N";s:4:"㨮";s:1:"N";s:4:"摩";s:1:"N";s:4:"摾";s:1:"N";s:4:"撝";s:1:"N";s:4:"摷";s:1:"N";s:4:"㩬";s:1:"N";s:4:"敏";s:1:"N";s:4:"敬";s:1:"N";s:4:"𣀊";s:1:"N";s:4:"旣";s:1:"N";s:4:"書";s:1:"N";s:4:"晉";s:1:"N";s:4:"㬙";s:1:"N";s:4:"暑";s:1:"N";s:4:"㬈";s:1:"N";s:4:"㫤";s:1:"N";s:4:"冒";s:1:"N";s:4:"冕";s:1:"N";s:4:"最";s:1:"N";s:4:"暜";s:1:"N";s:4:"肭";s:1:"N";s:4:"䏙";s:1:"N";s:4:"朗";s:1:"N";s:4:"望";s:1:"N";s:4:"朡";s:1:"N";s:4:"杞";s:1:"N";s:4:"杓";s:1:"N";s:4:"𣏃";s:1:"N";s:4:"㭉";s:1:"N";s:4:"柺";s:1:"N";s:4:"枅";s:1:"N";s:4:"桒";s:1:"N";s:4:"梅";s:1:"N";s:4:"𣑭";s:1:"N";s:4:"梎";s:1:"N";s:4:"栟";s:1:"N";s:4:"椔";s:1:"N";s:4:"㮝";s:1:"N";s:4:"楂";s:1:"N";s:4:"榣";s:1:"N";s:4:"槪";s:1:"N";s:4:"檨";s:1:"N";s:4:"𣚣";s:1:"N";s:4:"櫛";s:1:"N";s:4:"㰘";s:1:"N";s:4:"次";s:1:"N";s:4:"𣢧";s:1:"N";s:4:"歔";s:1:"N";s:4:"㱎";s:1:"N";s:4:"歲";s:1:"N";s:4:"殟";s:1:"N";s:4:"殺";s:1:"N";s:4:"殻";s:1:"N";s:4:"𣪍";s:1:"N";s:4:"𡴋";s:1:"N";s:4:"𣫺";s:1:"N";s:4:"汎";s:1:"N";s:4:"𣲼";s:1:"N";s:4:"沿";s:1:"N";s:4:"泍";s:1:"N";s:4:"汧";s:1:"N";s:4:"洖";s:1:"N";s:4:"派";s:1:"N";s:4:"海";s:1:"N";s:4:"流";s:1:"N";s:4:"浩";s:1:"N";s:4:"浸";s:1:"N";s:4:"涅";s:1:"N";s:4:"𣴞";s:1:"N";s:4:"洴";s:1:"N";s:4:"港";s:1:"N";s:4:"湮";s:1:"N";s:4:"㴳";s:1:"N";s:4:"滋";s:1:"N";s:4:"滇";s:1:"N";s:4:"𣻑";s:1:"N";s:4:"淹";s:1:"N";s:4:"潮";s:1:"N";s:4:"𣽞";s:1:"N";s:4:"𣾎";s:1:"N";s:4:"濆";s:1:"N";s:4:"瀹";s:1:"N";s:4:"瀞";s:1:"N";s:4:"瀛";s:1:"N";s:4:"㶖";s:1:"N";s:4:"灊";s:1:"N";s:4:"災";s:1:"N";s:4:"灷";s:1:"N";s:4:"炭";s:1:"N";s:4:"𠔥";s:1:"N";s:4:"煅";s:1:"N";s:4:"𤉣";s:1:"N";s:4:"熜";s:1:"N";s:4:"𤎫";s:1:"N";s:4:"爨";s:1:"N";s:4:"爵";s:1:"N";s:4:"牐";s:1:"N";s:4:"𤘈";s:1:"N";s:4:"犀";s:1:"N";s:4:"犕";s:1:"N";s:4:"𤜵";s:1:"N";s:4:"𤠔";s:1:"N";s:4:"獺";s:1:"N";s:4:"王";s:1:"N";s:4:"㺬";s:1:"N";s:4:"玥";s:1:"N";s:4:"㺸";s:1:"N";s:4:"㺸";s:1:"N";s:4:"瑇";s:1:"N";s:4:"瑜";s:1:"N";s:4:"瑱";s:1:"N";s:4:"璅";s:1:"N";s:4:"瓊";s:1:"N";s:4:"㼛";s:1:"N";s:4:"甤";s:1:"N";s:4:"𤰶";s:1:"N";s:4:"甾";s:1:"N";s:4:"𤲒";s:1:"N";s:4:"異";s:1:"N";s:4:"𢆟";s:1:"N";s:4:"瘐";s:1:"N";s:4:"𤾡";s:1:"N";s:4:"𤾸";s:1:"N";s:4:"𥁄";s:1:"N";s:4:"㿼";s:1:"N";s:4:"䀈";s:1:"N";s:4:"直";s:1:"N";s:4:"𥃳";s:1:"N";s:4:"𥃲";s:1:"N";s:4:"𥄙";s:1:"N";s:4:"𥄳";s:1:"N";s:4:"眞";s:1:"N";s:4:"真";s:1:"N";s:4:"真";s:1:"N";s:4:"睊";s:1:"N";s:4:"䀹";s:1:"N";s:4:"瞋";s:1:"N";s:4:"䁆";s:1:"N";s:4:"䂖";s:1:"N";s:4:"𥐝";s:1:"N";s:4:"硎";s:1:"N";s:4:"碌";s:1:"N";s:4:"磌";s:1:"N";s:4:"䃣";s:1:"N";s:4:"𥘦";s:1:"N";s:4:"祖";s:1:"N";s:4:"𥚚";s:1:"N";s:4:"𥛅";s:1:"N";s:4:"福";s:1:"N";s:4:"秫";s:1:"N";s:4:"䄯";s:1:"N";s:4:"穀";s:1:"N";s:4:"穊";s:1:"N";s:4:"穏";s:1:"N";s:4:"𥥼";s:1:"N";s:4:"𥪧";s:1:"N";s:4:"𥪧";s:1:"N";s:4:"竮";s:1:"N";s:4:"䈂";s:1:"N";s:4:"𥮫";s:1:"N";s:4:"篆";s:1:"N";s:4:"築";s:1:"N";s:4:"䈧";s:1:"N";s:4:"𥲀";s:1:"N";s:4:"糒";s:1:"N";s:4:"䊠";s:1:"N";s:4:"糨";s:1:"N";s:4:"糣";s:1:"N";s:4:"紀";s:1:"N";s:4:"𥾆";s:1:"N";s:4:"絣";s:1:"N";s:4:"䌁";s:1:"N";s:4:"緇";s:1:"N";s:4:"縂";s:1:"N";s:4:"繅";s:1:"N";s:4:"䌴";s:1:"N";s:4:"𦈨";s:1:"N";s:4:"𦉇";s:1:"N";s:4:"䍙";s:1:"N";s:4:"𦋙";s:1:"N";s:4:"罺";s:1:"N";s:4:"𦌾";s:1:"N";s:4:"羕";s:1:"N";s:4:"翺";s:1:"N";s:4:"者";s:1:"N";s:4:"𦓚";s:1:"N";s:4:"𦔣";s:1:"N";s:4:"聠";s:1:"N";s:4:"𦖨";s:1:"N";s:4:"聰";s:1:"N";s:4:"𣍟";s:1:"N";s:4:"䏕";s:1:"N";s:4:"育";s:1:"N";s:4:"脃";s:1:"N";s:4:"䐋";s:1:"N";s:4:"脾";s:1:"N";s:4:"媵";s:1:"N";s:4:"𦞧";s:1:"N";s:4:"𦞵";s:1:"N";s:4:"𣎓";s:1:"N";s:4:"𣎜";s:1:"N";s:4:"舁";s:1:"N";s:4:"舄";s:1:"N";s:4:"辞";s:1:"N";s:4:"䑫";s:1:"N";s:4:"芑";s:1:"N";s:4:"芋";s:1:"N";s:4:"芝";s:1:"N";s:4:"劳";s:1:"N";s:4:"花";s:1:"N";s:4:"芳";s:1:"N";s:4:"芽";s:1:"N";s:4:"苦";s:1:"N";s:4:"𦬼";s:1:"N";s:4:"若";s:1:"N";s:4:"茝";s:1:"N";s:4:"荣";s:1:"N";s:4:"莭";s:1:"N";s:4:"茣";s:1:"N";s:4:"莽";s:1:"N";s:4:"菧";s:1:"N";s:4:"著";s:1:"N";s:4:"荓";s:1:"N";s:4:"菊";s:1:"N";s:4:"菌";s:1:"N";s:4:"菜";s:1:"N";s:4:"𦰶";s:1:"N";s:4:"𦵫";s:1:"N";s:4:"𦳕";s:1:"N";s:4:"䔫";s:1:"N";s:4:"蓱";s:1:"N";s:4:"蓳";s:1:"N";s:4:"蔖";s:1:"N";s:4:"𧏊";s:1:"N";s:4:"蕤";s:1:"N";s:4:"𦼬";s:1:"N";s:4:"䕝";s:1:"N";s:4:"䕡";s:1:"N";s:4:"𦾱";s:1:"N";s:4:"𧃒";s:1:"N";s:4:"䕫";s:1:"N";s:4:"虐";s:1:"N";s:4:"虜";s:1:"N";s:4:"虧";s:1:"N";s:4:"虩";s:1:"N";s:4:"蚩";s:1:"N";s:4:"蚈";s:1:"N";s:4:"蜎";s:1:"N";s:4:"蛢";s:1:"N";s:4:"蝹";s:1:"N";s:4:"蜨";s:1:"N";s:4:"蝫";s:1:"N";s:4:"螆";s:1:"N";s:4:"䗗";s:1:"N";s:4:"蟡";s:1:"N";s:4:"蠁";s:1:"N";s:4:"䗹";s:1:"N";s:4:"衠";s:1:"N";s:4:"衣";s:1:"N";s:4:"𧙧";s:1:"N";s:4:"裗";s:1:"N";s:4:"裞";s:1:"N";s:4:"䘵";s:1:"N";s:4:"裺";s:1:"N";s:4:"㒻";s:1:"N";s:4:"𧢮";s:1:"N";s:4:"𧥦";s:1:"N";s:4:"䚾";s:1:"N";s:4:"䛇";s:1:"N";s:4:"誠";s:1:"N";s:4:"諭";s:1:"N";s:4:"變";s:1:"N";s:4:"豕";s:1:"N";s:4:"𧲨";s:1:"N";s:4:"貫";s:1:"N";s:4:"賁";s:1:"N";s:4:"贛";s:1:"N";s:4:"起";s:1:"N";s:4:"𧼯";s:1:"N";s:4:"𠠄";s:1:"N";s:4:"跋";s:1:"N";s:4:"趼";s:1:"N";s:4:"跰";s:1:"N";s:4:"𠣞";s:1:"N";s:4:"軔";s:1:"N";s:4:"輸";s:1:"N";s:4:"𨗒";s:1:"N";s:4:"𨗭";s:1:"N";s:4:"邔";s:1:"N";s:4:"郱";s:1:"N";s:4:"鄑";s:1:"N";s:4:"𨜮";s:1:"N";s:4:"鄛";s:1:"N";s:4:"鈸";s:1:"N";s:4:"鋗";s:1:"N";s:4:"鋘";s:1:"N";s:4:"鉼";s:1:"N";s:4:"鏹";s:1:"N";s:4:"鐕";s:1:"N";s:4:"𨯺";s:1:"N";s:4:"開";s:1:"N";s:4:"䦕";s:1:"N";s:4:"閷";s:1:"N";s:4:"𨵷";s:1:"N";s:4:"䧦";s:1:"N";s:4:"雃";s:1:"N";s:4:"嶲";s:1:"N";s:4:"霣";s:1:"N";s:4:"𩅅";s:1:"N";s:4:"𩈚";s:1:"N";s:4:"䩮";s:1:"N";s:4:"䩶";s:1:"N";s:4:"韠";s:1:"N";s:4:"𩐊";s:1:"N";s:4:"䪲";s:1:"N";s:4:"𩒖";s:1:"N";s:4:"頋";s:1:"N";s:4:"頋";s:1:"N";s:4:"頩";s:1:"N";s:4:"𩖶";s:1:"N";s:4:"飢";s:1:"N";s:4:"䬳";s:1:"N";s:4:"餩";s:1:"N";s:4:"馧";s:1:"N";s:4:"駂";s:1:"N";s:4:"駾";s:1:"N";s:4:"䯎";s:1:"N";s:4:"𩬰";s:1:"N";s:4:"鬒";s:1:"N";s:4:"鱀";s:1:"N";s:4:"鳽";s:1:"N";s:4:"䳎";s:1:"N";s:4:"䳭";s:1:"N";s:4:"鵧";s:1:"N";s:4:"𪃎";s:1:"N";s:4:"䳸";s:1:"N";s:4:"𪄅";s:1:"N";s:4:"𪈎";s:1:"N";s:4:"𪊑";s:1:"N";s:4:"麻";s:1:"N";s:4:"䵖";s:1:"N";s:4:"黹";s:1:"N";s:4:"黾";s:1:"N";s:4:"鼅";s:1:"N";s:4:"鼏";s:1:"N";s:4:"鼖";s:1:"N";s:4:"鼻";s:1:"N";s:4:"𪘀";s:1:"N";s:2:"̀";s:1:"M";s:2:"́";s:1:"M";s:2:"̂";s:1:"M";s:2:"̃";s:1:"M";s:2:"̄";s:1:"M";s:2:"̆";s:1:"M";s:2:"̇";s:1:"M";s:2:"̈";s:1:"M";s:2:"̉";s:1:"M";s:2:"̊";s:1:"M";s:2:"̋";s:1:"M";s:2:"̌";s:1:"M";s:2:"̏";s:1:"M";s:2:"̑";s:1:"M";s:2:"̓";s:1:"M";s:2:"̔";s:1:"M";s:2:"̛";s:1:"M";s:2:"̣";s:1:"M";s:2:"̤";s:1:"M";s:2:"̥";s:1:"M";s:2:"̦";s:1:"M";s:2:"̧";s:1:"M";s:2:"̨";s:1:"M";s:2:"̭";s:1:"M";s:2:"̮";s:1:"M";s:2:"̰";s:1:"M";s:2:"̱";s:1:"M";s:2:"̸";s:1:"M";s:2:"͂";s:1:"M";s:2:"ͅ";s:1:"M";s:2:"ٓ";s:1:"M";s:2:"ٔ";s:1:"M";s:2:"ٕ";s:1:"M";s:3:"़";s:1:"M";s:3:"া";s:1:"M";s:3:"ৗ";s:1:"M";s:3:"ା";s:1:"M";s:3:"ୖ";s:1:"M";s:3:"ୗ";s:1:"M";s:3:"ா";s:1:"M";s:3:"ௗ";s:1:"M";s:3:"ౖ";s:1:"M";s:3:"ೂ";s:1:"M";s:3:"ೕ";s:1:"M";s:3:"ೖ";s:1:"M";s:3:"ാ";s:1:"M";s:3:"ൗ";s:1:"M";s:3:"්";s:1:"M";s:3:"ා";s:1:"M";s:3:"ෟ";s:1:"M";s:3:"ီ";s:1:"M";s:3:"ᅡ";s:1:"M";s:3:"ᅢ";s:1:"M";s:3:"ᅣ";s:1:"M";s:3:"ᅤ";s:1:"M";s:3:"ᅥ";s:1:"M";s:3:"ᅦ";s:1:"M";s:3:"ᅧ";s:1:"M";s:3:"ᅨ";s:1:"M";s:3:"ᅩ";s:1:"M";s:3:"ᅪ";s:1:"M";s:3:"ᅫ";s:1:"M";s:3:"ᅬ";s:1:"M";s:3:"ᅭ";s:1:"M";s:3:"ᅮ";s:1:"M";s:3:"ᅯ";s:1:"M";s:3:"ᅰ";s:1:"M";s:3:"ᅱ";s:1:"M";s:3:"ᅲ";s:1:"M";s:3:"ᅳ";s:1:"M";s:3:"ᅴ";s:1:"M";s:3:"ᅵ";s:1:"M";s:3:"ᆨ";s:1:"M";s:3:"ᆩ";s:1:"M";s:3:"ᆪ";s:1:"M";s:3:"ᆫ";s:1:"M";s:3:"ᆬ";s:1:"M";s:3:"ᆭ";s:1:"M";s:3:"ᆮ";s:1:"M";s:3:"ᆯ";s:1:"M";s:3:"ᆰ";s:1:"M";s:3:"ᆱ";s:1:"M";s:3:"ᆲ";s:1:"M";s:3:"ᆳ";s:1:"M";s:3:"ᆴ";s:1:"M";s:3:"ᆵ";s:1:"M";s:3:"ᆶ";s:1:"M";s:3:"ᆷ";s:1:"M";s:3:"ᆸ";s:1:"M";s:3:"ᆹ";s:1:"M";s:3:"ᆺ";s:1:"M";s:3:"ᆻ";s:1:"M";s:3:"ᆼ";s:1:"M";s:3:"ᆽ";s:1:"M";s:3:"ᆾ";s:1:"M";s:3:"ᆿ";s:1:"M";s:3:"ᇀ";s:1:"M";s:3:"ᇁ";s:1:"M";s:3:"ᇂ";s:1:"M";s:3:"ᬵ";s:1:"M";s:3:"゙";s:1:"M";s:3:"゚";s:1:"M";s:4:"𑂺";s:1:"M";}' );
-
diff --git a/includes/normal/UtfNormalDataK.inc b/includes/normal/UtfNormalDataK.inc
deleted file mode 100644 (file)
index dde3eff..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-/**
- * This file was automatically generated -- do not edit!
- * Run UtfNormalGenerate.php to create this file again (make clean && make)
- *
- * @file
- */
-// @codingStandardsIgnoreFile
-
-UtfNormal::$utfCompatibilityDecomp = unserialize( 'a:5559:{s:2:" ";s:1:" ";s:2:"¨";s:3:" ̈";s:2:"ª";s:1:"a";s:2:"¯";s:3:" ̄";s:2:"²";s:1:"2";s:2:"³";s:1:"3";s:2:"´";s:3:" ́";s:2:"µ";s:2:"μ";s:2:"¸";s:3:" ̧";s:2:"¹";s:1:"1";s:2:"º";s:1:"o";s:2:"¼";s:5:"1⁄4";s:2:"½";s:5:"1⁄2";s:2:"¾";s:5:"3⁄4";s:2:"À";s:3:"À";s:2:"Á";s:3:"Á";s:2:"Â";s:3:"Â";s:2:"Ã";s:3:"Ã";s:2:"Ä";s:3:"Ä";s:2:"Å";s:3:"Å";s:2:"Ç";s:3:"Ç";s:2:"È";s:3:"È";s:2:"É";s:3:"É";s:2:"Ê";s:3:"Ê";s:2:"Ë";s:3:"Ë";s:2:"Ì";s:3:"Ì";s:2:"Í";s:3:"Í";s:2:"Î";s:3:"Î";s:2:"Ï";s:3:"Ï";s:2:"Ñ";s:3:"Ñ";s:2:"Ò";s:3:"Ò";s:2:"Ó";s:3:"Ó";s:2:"Ô";s:3:"Ô";s:2:"Õ";s:3:"Õ";s:2:"Ö";s:3:"Ö";s:2:"Ù";s:3:"Ù";s:2:"Ú";s:3:"Ú";s:2:"Û";s:3:"Û";s:2:"Ü";s:3:"Ü";s:2:"Ý";s:3:"Ý";s:2:"à";s:3:"à";s:2:"á";s:3:"á";s:2:"â";s:3:"â";s:2:"ã";s:3:"ã";s:2:"ä";s:3:"ä";s:2:"å";s:3:"å";s:2:"ç";s:3:"ç";s:2:"è";s:3:"è";s:2:"é";s:3:"é";s:2:"ê";s:3:"ê";s:2:"ë";s:3:"ë";s:2:"ì";s:3:"ì";s:2:"í";s:3:"í";s:2:"î";s:3:"î";s:2:"ï";s:3:"ï";s:2:"ñ";s:3:"ñ";s:2:"ò";s:3:"ò";s:2:"ó";s:3:"ó";s:2:"ô";s:3:"ô";s:2:"õ";s:3:"õ";s:2:"ö";s:3:"ö";s:2:"ù";s:3:"ù";s:2:"ú";s:3:"ú";s:2:"û";s:3:"û";s:2:"ü";s:3:"ü";s:2:"ý";s:3:"ý";s:2:"ÿ";s:3:"ÿ";s:2:"Ā";s:3:"Ā";s:2:"ā";s:3:"ā";s:2:"Ă";s:3:"Ă";s:2:"ă";s:3:"ă";s:2:"Ą";s:3:"Ą";s:2:"ą";s:3:"ą";s:2:"Ć";s:3:"Ć";s:2:"ć";s:3:"ć";s:2:"Ĉ";s:3:"Ĉ";s:2:"ĉ";s:3:"ĉ";s:2:"Ċ";s:3:"Ċ";s:2:"ċ";s:3:"ċ";s:2:"Č";s:3:"Č";s:2:"č";s:3:"č";s:2:"Ď";s:3:"Ď";s:2:"ď";s:3:"ď";s:2:"Ē";s:3:"Ē";s:2:"ē";s:3:"ē";s:2:"Ĕ";s:3:"Ĕ";s:2:"ĕ";s:3:"ĕ";s:2:"Ė";s:3:"Ė";s:2:"ė";s:3:"ė";s:2:"Ę";s:3:"Ę";s:2:"ę";s:3:"ę";s:2:"Ě";s:3:"Ě";s:2:"ě";s:3:"ě";s:2:"Ĝ";s:3:"Ĝ";s:2:"ĝ";s:3:"ĝ";s:2:"Ğ";s:3:"Ğ";s:2:"ğ";s:3:"ğ";s:2:"Ġ";s:3:"Ġ";s:2:"ġ";s:3:"ġ";s:2:"Ģ";s:3:"Ģ";s:2:"ģ";s:3:"ģ";s:2:"Ĥ";s:3:"Ĥ";s:2:"ĥ";s:3:"ĥ";s:2:"Ĩ";s:3:"Ĩ";s:2:"ĩ";s:3:"ĩ";s:2:"Ī";s:3:"Ī";s:2:"ī";s:3:"ī";s:2:"Ĭ";s:3:"Ĭ";s:2:"ĭ";s:3:"ĭ";s:2:"Į";s:3:"Į";s:2:"į";s:3:"į";s:2:"İ";s:3:"İ";s:2:"IJ";s:2:"IJ";s:2:"ij";s:2:"ij";s:2:"Ĵ";s:3:"Ĵ";s:2:"ĵ";s:3:"ĵ";s:2:"Ķ";s:3:"Ķ";s:2:"ķ";s:3:"ķ";s:2:"Ĺ";s:3:"Ĺ";s:2:"ĺ";s:3:"ĺ";s:2:"Ļ";s:3:"Ļ";s:2:"ļ";s:3:"ļ";s:2:"Ľ";s:3:"Ľ";s:2:"ľ";s:3:"ľ";s:2:"Ŀ";s:3:"L·";s:2:"ŀ";s:3:"l·";s:2:"Ń";s:3:"Ń";s:2:"ń";s:3:"ń";s:2:"Ņ";s:3:"Ņ";s:2:"ņ";s:3:"ņ";s:2:"Ň";s:3:"Ň";s:2:"ň";s:3:"ň";s:2:"ʼn";s:3:"ʼn";s:2:"Ō";s:3:"Ō";s:2:"ō";s:3:"ō";s:2:"Ŏ";s:3:"Ŏ";s:2:"ŏ";s:3:"ŏ";s:2:"Ő";s:3:"Ő";s:2:"ő";s:3:"ő";s:2:"Ŕ";s:3:"Ŕ";s:2:"ŕ";s:3:"ŕ";s:2:"Ŗ";s:3:"Ŗ";s:2:"ŗ";s:3:"ŗ";s:2:"Ř";s:3:"Ř";s:2:"ř";s:3:"ř";s:2:"Ś";s:3:"Ś";s:2:"ś";s:3:"ś";s:2:"Ŝ";s:3:"Ŝ";s:2:"ŝ";s:3:"ŝ";s:2:"Ş";s:3:"Ş";s:2:"ş";s:3:"ş";s:2:"Š";s:3:"Š";s:2:"š";s:3:"š";s:2:"Ţ";s:3:"Ţ";s:2:"ţ";s:3:"ţ";s:2:"Ť";s:3:"Ť";s:2:"ť";s:3:"ť";s:2:"Ũ";s:3:"Ũ";s:2:"ũ";s:3:"ũ";s:2:"Ū";s:3:"Ū";s:2:"ū";s:3:"ū";s:2:"Ŭ";s:3:"Ŭ";s:2:"ŭ";s:3:"ŭ";s:2:"Ů";s:3:"Ů";s:2:"ů";s:3:"ů";s:2:"Ű";s:3:"Ű";s:2:"ű";s:3:"ű";s:2:"Ų";s:3:"Ų";s:2:"ų";s:3:"ų";s:2:"Ŵ";s:3:"Ŵ";s:2:"ŵ";s:3:"ŵ";s:2:"Ŷ";s:3:"Ŷ";s:2:"ŷ";s:3:"ŷ";s:2:"Ÿ";s:3:"Ÿ";s:2:"Ź";s:3:"Ź";s:2:"ź";s:3:"ź";s:2:"Ż";s:3:"Ż";s:2:"ż";s:3:"ż";s:2:"Ž";s:3:"Ž";s:2:"ž";s:3:"ž";s:2:"ſ";s:1:"s";s:2:"Ơ";s:3:"Ơ";s:2:"ơ";s:3:"ơ";s:2:"Ư";s:3:"Ư";s:2:"ư";s:3:"ư";s:2:"DŽ";s:4:"DŽ";s:2:"Dž";s:4:"Dž";s:2:"dž";s:4:"dž";s:2:"LJ";s:2:"LJ";s:2:"Lj";s:2:"Lj";s:2:"lj";s:2:"lj";s:2:"NJ";s:2:"NJ";s:2:"Nj";s:2:"Nj";s:2:"nj";s:2:"nj";s:2:"Ǎ";s:3:"Ǎ";s:2:"ǎ";s:3:"ǎ";s:2:"Ǐ";s:3:"Ǐ";s:2:"ǐ";s:3:"ǐ";s:2:"Ǒ";s:3:"Ǒ";s:2:"ǒ";s:3:"ǒ";s:2:"Ǔ";s:3:"Ǔ";s:2:"ǔ";s:3:"ǔ";s:2:"Ǖ";s:5:"Ǖ";s:2:"ǖ";s:5:"ǖ";s:2:"Ǘ";s:5:"Ǘ";s:2:"ǘ";s:5:"ǘ";s:2:"Ǚ";s:5:"Ǚ";s:2:"ǚ";s:5:"ǚ";s:2:"Ǜ";s:5:"Ǜ";s:2:"ǜ";s:5:"ǜ";s:2:"Ǟ";s:5:"Ǟ";s:2:"ǟ";s:5:"ǟ";s:2:"Ǡ";s:5:"Ǡ";s:2:"ǡ";s:5:"ǡ";s:2:"Ǣ";s:4:"Ǣ";s:2:"ǣ";s:4:"ǣ";s:2:"Ǧ";s:3:"Ǧ";s:2:"ǧ";s:3:"ǧ";s:2:"Ǩ";s:3:"Ǩ";s:2:"ǩ";s:3:"ǩ";s:2:"Ǫ";s:3:"Ǫ";s:2:"ǫ";s:3:"ǫ";s:2:"Ǭ";s:5:"Ǭ";s:2:"ǭ";s:5:"ǭ";s:2:"Ǯ";s:4:"Ǯ";s:2:"ǯ";s:4:"ǯ";s:2:"ǰ";s:3:"ǰ";s:2:"DZ";s:2:"DZ";s:2:"Dz";s:2:"Dz";s:2:"dz";s:2:"dz";s:2:"Ǵ";s:3:"Ǵ";s:2:"ǵ";s:3:"ǵ";s:2:"Ǹ";s:3:"Ǹ";s:2:"ǹ";s:3:"ǹ";s:2:"Ǻ";s:5:"Ǻ";s:2:"ǻ";s:5:"ǻ";s:2:"Ǽ";s:4:"Ǽ";s:2:"ǽ";s:4:"ǽ";s:2:"Ǿ";s:4:"Ǿ";s:2:"ǿ";s:4:"ǿ";s:2:"Ȁ";s:3:"Ȁ";s:2:"ȁ";s:3:"ȁ";s:2:"Ȃ";s:3:"Ȃ";s:2:"ȃ";s:3:"ȃ";s:2:"Ȅ";s:3:"Ȅ";s:2:"ȅ";s:3:"ȅ";s:2:"Ȇ";s:3:"Ȇ";s:2:"ȇ";s:3:"ȇ";s:2:"Ȉ";s:3:"Ȉ";s:2:"ȉ";s:3:"ȉ";s:2:"Ȋ";s:3:"Ȋ";s:2:"ȋ";s:3:"ȋ";s:2:"Ȍ";s:3:"Ȍ";s:2:"ȍ";s:3:"ȍ";s:2:"Ȏ";s:3:"Ȏ";s:2:"ȏ";s:3:"ȏ";s:2:"Ȑ";s:3:"Ȑ";s:2:"ȑ";s:3:"ȑ";s:2:"Ȓ";s:3:"Ȓ";s:2:"ȓ";s:3:"ȓ";s:2:"Ȕ";s:3:"Ȕ";s:2:"ȕ";s:3:"ȕ";s:2:"Ȗ";s:3:"Ȗ";s:2:"ȗ";s:3:"ȗ";s:2:"Ș";s:3:"Ș";s:2:"ș";s:3:"ș";s:2:"Ț";s:3:"Ț";s:2:"ț";s:3:"ț";s:2:"Ȟ";s:3:"Ȟ";s:2:"ȟ";s:3:"ȟ";s:2:"Ȧ";s:3:"Ȧ";s:2:"ȧ";s:3:"ȧ";s:2:"Ȩ";s:3:"Ȩ";s:2:"ȩ";s:3:"ȩ";s:2:"Ȫ";s:5:"Ȫ";s:2:"ȫ";s:5:"ȫ";s:2:"Ȭ";s:5:"Ȭ";s:2:"ȭ";s:5:"ȭ";s:2:"Ȯ";s:3:"Ȯ";s:2:"ȯ";s:3:"ȯ";s:2:"Ȱ";s:5:"Ȱ";s:2:"ȱ";s:5:"ȱ";s:2:"Ȳ";s:3:"Ȳ";s:2:"ȳ";s:3:"ȳ";s:2:"ʰ";s:1:"h";s:2:"ʱ";s:2:"ɦ";s:2:"ʲ";s:1:"j";s:2:"ʳ";s:1:"r";s:2:"ʴ";s:2:"ɹ";s:2:"ʵ";s:2:"ɻ";s:2:"ʶ";s:2:"ʁ";s:2:"ʷ";s:1:"w";s:2:"ʸ";s:1:"y";s:2:"˘";s:3:" ̆";s:2:"˙";s:3:" ̇";s:2:"˚";s:3:" ̊";s:2:"˛";s:3:" ̨";s:2:"˜";s:3:" ̃";s:2:"˝";s:3:" ̋";s:2:"ˠ";s:2:"ɣ";s:2:"ˡ";s:1:"l";s:2:"ˢ";s:1:"s";s:2:"ˣ";s:1:"x";s:2:"ˤ";s:2:"ʕ";s:2:"̀";s:2:"̀";s:2:"́";s:2:"́";s:2:"̓";s:2:"̓";s:2:"̈́";s:4:"̈́";s:2:"ʹ";s:2:"ʹ";s:2:"ͺ";s:3:" ͅ";s:2:";";s:1:";";s:2:"΄";s:3:" ́";s:2:"΅";s:5:" ̈́";s:2:"Ά";s:4:"Ά";s:2:"·";s:2:"·";s:2:"Έ";s:4:"Έ";s:2:"Ή";s:4:"Ή";s:2:"Ί";s:4:"Ί";s:2:"Ό";s:4:"Ό";s:2:"Ύ";s:4:"Ύ";s:2:"Ώ";s:4:"Ώ";s:2:"ΐ";s:6:"ΐ";s:2:"Ϊ";s:4:"Ϊ";s:2:"Ϋ";s:4:"Ϋ";s:2:"ά";s:4:"ά";s:2:"έ";s:4:"έ";s:2:"ή";s:4:"ή";s:2:"ί";s:4:"ί";s:2:"ΰ";s:6:"ΰ";s:2:"ϊ";s:4:"ϊ";s:2:"ϋ";s:4:"ϋ";s:2:"ό";s:4:"ό";s:2:"ύ";s:4:"ύ";s:2:"ώ";s:4:"ώ";s:2:"ϐ";s:2:"β";s:2:"ϑ";s:2:"θ";s:2:"ϒ";s:2:"Υ";s:2:"ϓ";s:4:"Ύ";s:2:"ϔ";s:4:"Ϋ";s:2:"ϕ";s:2:"φ";s:2:"ϖ";s:2:"π";s:2:"ϰ";s:2:"κ";s:2:"ϱ";s:2:"ρ";s:2:"ϲ";s:2:"ς";s:2:"ϴ";s:2:"Θ";s:2:"ϵ";s:2:"ε";s:2:"Ϲ";s:2:"Σ";s:2:"Ѐ";s:4:"Ѐ";s:2:"Ё";s:4:"Ё";s:2:"Ѓ";s:4:"Ѓ";s:2:"Ї";s:4:"Ї";s:2:"Ќ";s:4:"Ќ";s:2:"Ѝ";s:4:"Ѝ";s:2:"Ў";s:4:"Ў";s:2:"Й";s:4:"Й";s:2:"й";s:4:"й";s:2:"ѐ";s:4:"ѐ";s:2:"ё";s:4:"ё";s:2:"ѓ";s:4:"ѓ";s:2:"ї";s:4:"ї";s:2:"ќ";s:4:"ќ";s:2:"ѝ";s:4:"ѝ";s:2:"ў";s:4:"ў";s:2:"Ѷ";s:4:"Ѷ";s:2:"ѷ";s:4:"ѷ";s:2:"Ӂ";s:4:"Ӂ";s:2:"ӂ";s:4:"ӂ";s:2:"Ӑ";s:4:"Ӑ";s:2:"ӑ";s:4:"ӑ";s:2:"Ӓ";s:4:"Ӓ";s:2:"ӓ";s:4:"ӓ";s:2:"Ӗ";s:4:"Ӗ";s:2:"ӗ";s:4:"ӗ";s:2:"Ӛ";s:4:"Ӛ";s:2:"ӛ";s:4:"ӛ";s:2:"Ӝ";s:4:"Ӝ";s:2:"ӝ";s:4:"ӝ";s:2:"Ӟ";s:4:"Ӟ";s:2:"ӟ";s:4:"ӟ";s:2:"Ӣ";s:4:"Ӣ";s:2:"ӣ";s:4:"ӣ";s:2:"Ӥ";s:4:"Ӥ";s:2:"ӥ";s:4:"ӥ";s:2:"Ӧ";s:4:"Ӧ";s:2:"ӧ";s:4:"ӧ";s:2:"Ӫ";s:4:"Ӫ";s:2:"ӫ";s:4:"ӫ";s:2:"Ӭ";s:4:"Ӭ";s:2:"ӭ";s:4:"ӭ";s:2:"Ӯ";s:4:"Ӯ";s:2:"ӯ";s:4:"ӯ";s:2:"Ӱ";s:4:"Ӱ";s:2:"ӱ";s:4:"ӱ";s:2:"Ӳ";s:4:"Ӳ";s:2:"ӳ";s:4:"ӳ";s:2:"Ӵ";s:4:"Ӵ";s:2:"ӵ";s:4:"ӵ";s:2:"Ӹ";s:4:"Ӹ";s:2:"ӹ";s:4:"ӹ";s:2:"և";s:4:"եւ";s:2:"آ";s:4:"آ";s:2:"أ";s:4:"أ";s:2:"ؤ";s:4:"ؤ";s:2:"إ";s:4:"إ";s:2:"ئ";s:4:"ئ";s:2:"ٵ";s:4:"اٴ";s:2:"ٶ";s:4:"وٴ";s:2:"ٷ";s:4:"ۇٴ";s:2:"ٸ";s:4:"يٴ";s:2:"ۀ";s:4:"ۀ";s:2:"ۂ";s:4:"ۂ";s:2:"ۓ";s:4:"ۓ";s:3:"ऩ";s:6:"ऩ";s:3:"ऱ";s:6:"ऱ";s:3:"ऴ";s:6:"ऴ";s:3:"क़";s:6:"क़";s:3:"ख़";s:6:"ख़";s:3:"ग़";s:6:"ग़";s:3:"ज़";s:6:"ज़";s:3:"ड़";s:6:"ड़";s:3:"ढ़";s:6:"ढ़";s:3:"फ़";s:6:"फ़";s:3:"य़";s:6:"य़";s:3:"ো";s:6:"ো";s:3:"ৌ";s:6:"ৌ";s:3:"ড়";s:6:"ড়";s:3:"ঢ়";s:6:"ঢ়";s:3:"য়";s:6:"য়";s:3:"ਲ਼";s:6:"ਲ਼";s:3:"ਸ਼";s:6:"ਸ਼";s:3:"ਖ਼";s:6:"ਖ਼";s:3:"ਗ਼";s:6:"ਗ਼";s:3:"ਜ਼";s:6:"ਜ਼";s:3:"ਫ਼";s:6:"ਫ਼";s:3:"ୈ";s:6:"ୈ";s:3:"ୋ";s:6:"ୋ";s:3:"ୌ";s:6:"ୌ";s:3:"ଡ଼";s:6:"ଡ଼";s:3:"ଢ଼";s:6:"ଢ଼";s:3:"ஔ";s:6:"ஔ";s:3:"ொ";s:6:"ொ";s:3:"ோ";s:6:"ோ";s:3:"ௌ";s:6:"ௌ";s:3:"ై";s:6:"ై";s:3:"ೀ";s:6:"ೀ";s:3:"ೇ";s:6:"ೇ";s:3:"ೈ";s:6:"ೈ";s:3:"ೊ";s:6:"ೊ";s:3:"ೋ";s:9:"ೋ";s:3:"ൊ";s:6:"ൊ";s:3:"ോ";s:6:"ോ";s:3:"ൌ";s:6:"ൌ";s:3:"ේ";s:6:"ේ";s:3:"ො";s:6:"ො";s:3:"ෝ";s:9:"ෝ";s:3:"ෞ";s:6:"ෞ";s:3:"ำ";s:6:"ํา";s:3:"ຳ";s:6:"ໍາ";s:3:"ໜ";s:6:"ຫນ";s:3:"ໝ";s:6:"ຫມ";s:3:"༌";s:3:"་";s:3:"གྷ";s:6:"གྷ";s:3:"ཌྷ";s:6:"ཌྷ";s:3:"དྷ";s:6:"དྷ";s:3:"བྷ";s:6:"བྷ";s:3:"ཛྷ";s:6:"ཛྷ";s:3:"ཀྵ";s:6:"ཀྵ";s:3:"ཱི";s:6:"ཱི";s:3:"ཱུ";s:6:"ཱུ";s:3:"ྲྀ";s:6:"ྲྀ";s:3:"ཷ";s:9:"ྲཱྀ";s:3:"ླྀ";s:6:"ླྀ";s:3:"ཹ";s:9:"ླཱྀ";s:3:"ཱྀ";s:6:"ཱྀ";s:3:"ྒྷ";s:6:"ྒྷ";s:3:"ྜྷ";s:6:"ྜྷ";s:3:"ྡྷ";s:6:"ྡྷ";s:3:"ྦྷ";s:6:"ྦྷ";s:3:"ྫྷ";s:6:"ྫྷ";s:3:"ྐྵ";s:6:"ྐྵ";s:3:"ဦ";s:6:"ဦ";s:3:"ჼ";s:3:"ნ";s:3:"ᬆ";s:6:"ᬆ";s:3:"ᬈ";s:6:"ᬈ";s:3:"ᬊ";s:6:"ᬊ";s:3:"ᬌ";s:6:"ᬌ";s:3:"ᬎ";s:6:"ᬎ";s:3:"ᬒ";s:6:"ᬒ";s:3:"ᬻ";s:6:"ᬻ";s:3:"ᬽ";s:6:"ᬽ";s:3:"ᭀ";s:6:"ᭀ";s:3:"ᭁ";s:6:"ᭁ";s:3:"ᭃ";s:6:"ᭃ";s:3:"ᴬ";s:1:"A";s:3:"ᴭ";s:2:"Æ";s:3:"ᴮ";s:1:"B";s:3:"ᴰ";s:1:"D";s:3:"ᴱ";s:1:"E";s:3:"ᴲ";s:2:"Ǝ";s:3:"ᴳ";s:1:"G";s:3:"ᴴ";s:1:"H";s:3:"ᴵ";s:1:"I";s:3:"ᴶ";s:1:"J";s:3:"ᴷ";s:1:"K";s:3:"ᴸ";s:1:"L";s:3:"ᴹ";s:1:"M";s:3:"ᴺ";s:1:"N";s:3:"ᴼ";s:1:"O";s:3:"ᴽ";s:2:"Ȣ";s:3:"ᴾ";s:1:"P";s:3:"ᴿ";s:1:"R";s:3:"ᵀ";s:1:"T";s:3:"ᵁ";s:1:"U";s:3:"ᵂ";s:1:"W";s:3:"ᵃ";s:1:"a";s:3:"ᵄ";s:2:"ɐ";s:3:"ᵅ";s:2:"ɑ";s:3:"ᵆ";s:3:"ᴂ";s:3:"ᵇ";s:1:"b";s:3:"ᵈ";s:1:"d";s:3:"ᵉ";s:1:"e";s:3:"ᵊ";s:2:"ə";s:3:"ᵋ";s:2:"ɛ";s:3:"ᵌ";s:2:"ɜ";s:3:"ᵍ";s:1:"g";s:3:"ᵏ";s:1:"k";s:3:"ᵐ";s:1:"m";s:3:"ᵑ";s:2:"ŋ";s:3:"ᵒ";s:1:"o";s:3:"ᵓ";s:2:"ɔ";s:3:"ᵔ";s:3:"ᴖ";s:3:"ᵕ";s:3:"ᴗ";s:3:"ᵖ";s:1:"p";s:3:"ᵗ";s:1:"t";s:3:"ᵘ";s:1:"u";s:3:"ᵙ";s:3:"ᴝ";s:3:"ᵚ";s:2:"ɯ";s:3:"ᵛ";s:1:"v";s:3:"ᵜ";s:3:"ᴥ";s:3:"ᵝ";s:2:"β";s:3:"ᵞ";s:2:"γ";s:3:"ᵟ";s:2:"δ";s:3:"ᵠ";s:2:"φ";s:3:"ᵡ";s:2:"χ";s:3:"ᵢ";s:1:"i";s:3:"ᵣ";s:1:"r";s:3:"ᵤ";s:1:"u";s:3:"ᵥ";s:1:"v";s:3:"ᵦ";s:2:"β";s:3:"ᵧ";s:2:"γ";s:3:"ᵨ";s:2:"ρ";s:3:"ᵩ";s:2:"φ";s:3:"ᵪ";s:2:"χ";s:3:"ᵸ";s:2:"н";s:3:"ᶛ";s:2:"ɒ";s:3:"ᶜ";s:1:"c";s:3:"ᶝ";s:2:"ɕ";s:3:"ᶞ";s:2:"ð";s:3:"ᶟ";s:2:"ɜ";s:3:"ᶠ";s:1:"f";s:3:"ᶡ";s:2:"ɟ";s:3:"ᶢ";s:2:"ɡ";s:3:"ᶣ";s:2:"ɥ";s:3:"ᶤ";s:2:"ɨ";s:3:"ᶥ";s:2:"ɩ";s:3:"ᶦ";s:2:"ɪ";s:3:"ᶧ";s:3:"ᵻ";s:3:"ᶨ";s:2:"ʝ";s:3:"ᶩ";s:2:"ɭ";s:3:"ᶪ";s:3:"ᶅ";s:3:"ᶫ";s:2:"ʟ";s:3:"ᶬ";s:2:"ɱ";s:3:"ᶭ";s:2:"ɰ";s:3:"ᶮ";s:2:"ɲ";s:3:"ᶯ";s:2:"ɳ";s:3:"ᶰ";s:2:"ɴ";s:3:"ᶱ";s:2:"ɵ";s:3:"ᶲ";s:2:"ɸ";s:3:"ᶳ";s:2:"ʂ";s:3:"ᶴ";s:2:"ʃ";s:3:"ᶵ";s:2:"ƫ";s:3:"ᶶ";s:2:"ʉ";s:3:"ᶷ";s:2:"ʊ";s:3:"ᶸ";s:3:"ᴜ";s:3:"ᶹ";s:2:"ʋ";s:3:"ᶺ";s:2:"ʌ";s:3:"ᶻ";s:1:"z";s:3:"ᶼ";s:2:"ʐ";s:3:"ᶽ";s:2:"ʑ";s:3:"ᶾ";s:2:"ʒ";s:3:"ᶿ";s:2:"θ";s:3:"Ḁ";s:3:"Ḁ";s:3:"ḁ";s:3:"ḁ";s:3:"Ḃ";s:3:"Ḃ";s:3:"ḃ";s:3:"ḃ";s:3:"Ḅ";s:3:"Ḅ";s:3:"ḅ";s:3:"ḅ";s:3:"Ḇ";s:3:"Ḇ";s:3:"ḇ";s:3:"ḇ";s:3:"Ḉ";s:5:"Ḉ";s:3:"ḉ";s:5:"ḉ";s:3:"Ḋ";s:3:"Ḋ";s:3:"ḋ";s:3:"ḋ";s:3:"Ḍ";s:3:"Ḍ";s:3:"ḍ";s:3:"ḍ";s:3:"Ḏ";s:3:"Ḏ";s:3:"ḏ";s:3:"ḏ";s:3:"Ḑ";s:3:"Ḑ";s:3:"ḑ";s:3:"ḑ";s:3:"Ḓ";s:3:"Ḓ";s:3:"ḓ";s:3:"ḓ";s:3:"Ḕ";s:5:"Ḕ";s:3:"ḕ";s:5:"ḕ";s:3:"Ḗ";s:5:"Ḗ";s:3:"ḗ";s:5:"ḗ";s:3:"Ḙ";s:3:"Ḙ";s:3:"ḙ";s:3:"ḙ";s:3:"Ḛ";s:3:"Ḛ";s:3:"ḛ";s:3:"ḛ";s:3:"Ḝ";s:5:"Ḝ";s:3:"ḝ";s:5:"ḝ";s:3:"Ḟ";s:3:"Ḟ";s:3:"ḟ";s:3:"ḟ";s:3:"Ḡ";s:3:"Ḡ";s:3:"ḡ";s:3:"ḡ";s:3:"Ḣ";s:3:"Ḣ";s:3:"ḣ";s:3:"ḣ";s:3:"Ḥ";s:3:"Ḥ";s:3:"ḥ";s:3:"ḥ";s:3:"Ḧ";s:3:"Ḧ";s:3:"ḧ";s:3:"ḧ";s:3:"Ḩ";s:3:"Ḩ";s:3:"ḩ";s:3:"ḩ";s:3:"Ḫ";s:3:"Ḫ";s:3:"ḫ";s:3:"ḫ";s:3:"Ḭ";s:3:"Ḭ";s:3:"ḭ";s:3:"ḭ";s:3:"Ḯ";s:5:"Ḯ";s:3:"ḯ";s:5:"ḯ";s:3:"Ḱ";s:3:"Ḱ";s:3:"ḱ";s:3:"ḱ";s:3:"Ḳ";s:3:"Ḳ";s:3:"ḳ";s:3:"ḳ";s:3:"Ḵ";s:3:"Ḵ";s:3:"ḵ";s:3:"ḵ";s:3:"Ḷ";s:3:"Ḷ";s:3:"ḷ";s:3:"ḷ";s:3:"Ḹ";s:5:"Ḹ";s:3:"ḹ";s:5:"ḹ";s:3:"Ḻ";s:3:"Ḻ";s:3:"ḻ";s:3:"ḻ";s:3:"Ḽ";s:3:"Ḽ";s:3:"ḽ";s:3:"ḽ";s:3:"Ḿ";s:3:"Ḿ";s:3:"ḿ";s:3:"ḿ";s:3:"Ṁ";s:3:"Ṁ";s:3:"ṁ";s:3:"ṁ";s:3:"Ṃ";s:3:"Ṃ";s:3:"ṃ";s:3:"ṃ";s:3:"Ṅ";s:3:"Ṅ";s:3:"ṅ";s:3:"ṅ";s:3:"Ṇ";s:3:"Ṇ";s:3:"ṇ";s:3:"ṇ";s:3:"Ṉ";s:3:"Ṉ";s:3:"ṉ";s:3:"ṉ";s:3:"Ṋ";s:3:"Ṋ";s:3:"ṋ";s:3:"ṋ";s:3:"Ṍ";s:5:"Ṍ";s:3:"ṍ";s:5:"ṍ";s:3:"Ṏ";s:5:"Ṏ";s:3:"ṏ";s:5:"ṏ";s:3:"Ṑ";s:5:"Ṑ";s:3:"ṑ";s:5:"ṑ";s:3:"Ṓ";s:5:"Ṓ";s:3:"ṓ";s:5:"ṓ";s:3:"Ṕ";s:3:"Ṕ";s:3:"ṕ";s:3:"ṕ";s:3:"Ṗ";s:3:"Ṗ";s:3:"ṗ";s:3:"ṗ";s:3:"Ṙ";s:3:"Ṙ";s:3:"ṙ";s:3:"ṙ";s:3:"Ṛ";s:3:"Ṛ";s:3:"ṛ";s:3:"ṛ";s:3:"Ṝ";s:5:"Ṝ";s:3:"ṝ";s:5:"ṝ";s:3:"Ṟ";s:3:"Ṟ";s:3:"ṟ";s:3:"ṟ";s:3:"Ṡ";s:3:"Ṡ";s:3:"ṡ";s:3:"ṡ";s:3:"Ṣ";s:3:"Ṣ";s:3:"ṣ";s:3:"ṣ";s:3:"Ṥ";s:5:"Ṥ";s:3:"ṥ";s:5:"ṥ";s:3:"Ṧ";s:5:"Ṧ";s:3:"ṧ";s:5:"ṧ";s:3:"Ṩ";s:5:"Ṩ";s:3:"ṩ";s:5:"ṩ";s:3:"Ṫ";s:3:"Ṫ";s:3:"ṫ";s:3:"ṫ";s:3:"Ṭ";s:3:"Ṭ";s:3:"ṭ";s:3:"ṭ";s:3:"Ṯ";s:3:"Ṯ";s:3:"ṯ";s:3:"ṯ";s:3:"Ṱ";s:3:"Ṱ";s:3:"ṱ";s:3:"ṱ";s:3:"Ṳ";s:3:"Ṳ";s:3:"ṳ";s:3:"ṳ";s:3:"Ṵ";s:3:"Ṵ";s:3:"ṵ";s:3:"ṵ";s:3:"Ṷ";s:3:"Ṷ";s:3:"ṷ";s:3:"ṷ";s:3:"Ṹ";s:5:"Ṹ";s:3:"ṹ";s:5:"ṹ";s:3:"Ṻ";s:5:"Ṻ";s:3:"ṻ";s:5:"ṻ";s:3:"Ṽ";s:3:"Ṽ";s:3:"ṽ";s:3:"ṽ";s:3:"Ṿ";s:3:"Ṿ";s:3:"ṿ";s:3:"ṿ";s:3:"Ẁ";s:3:"Ẁ";s:3:"ẁ";s:3:"ẁ";s:3:"Ẃ";s:3:"Ẃ";s:3:"ẃ";s:3:"ẃ";s:3:"Ẅ";s:3:"Ẅ";s:3:"ẅ";s:3:"ẅ";s:3:"Ẇ";s:3:"Ẇ";s:3:"ẇ";s:3:"ẇ";s:3:"Ẉ";s:3:"Ẉ";s:3:"ẉ";s:3:"ẉ";s:3:"Ẋ";s:3:"Ẋ";s:3:"ẋ";s:3:"ẋ";s:3:"Ẍ";s:3:"Ẍ";s:3:"ẍ";s:3:"ẍ";s:3:"Ẏ";s:3:"Ẏ";s:3:"ẏ";s:3:"ẏ";s:3:"Ẑ";s:3:"Ẑ";s:3:"ẑ";s:3:"ẑ";s:3:"Ẓ";s:3:"Ẓ";s:3:"ẓ";s:3:"ẓ";s:3:"Ẕ";s:3:"Ẕ";s:3:"ẕ";s:3:"ẕ";s:3:"ẖ";s:3:"ẖ";s:3:"ẗ";s:3:"ẗ";s:3:"ẘ";s:3:"ẘ";s:3:"ẙ";s:3:"ẙ";s:3:"ẚ";s:3:"aʾ";s:3:"ẛ";s:3:"ṡ";s:3:"Ạ";s:3:"Ạ";s:3:"ạ";s:3:"ạ";s:3:"Ả";s:3:"Ả";s:3:"ả";s:3:"ả";s:3:"Ấ";s:5:"Ấ";s:3:"ấ";s:5:"ấ";s:3:"Ầ";s:5:"Ầ";s:3:"ầ";s:5:"ầ";s:3:"Ẩ";s:5:"Ẩ";s:3:"ẩ";s:5:"ẩ";s:3:"Ẫ";s:5:"Ẫ";s:3:"ẫ";s:5:"ẫ";s:3:"Ậ";s:5:"Ậ";s:3:"ậ";s:5:"ậ";s:3:"Ắ";s:5:"Ắ";s:3:"ắ";s:5:"ắ";s:3:"Ằ";s:5:"Ằ";s:3:"ằ";s:5:"ằ";s:3:"Ẳ";s:5:"Ẳ";s:3:"ẳ";s:5:"ẳ";s:3:"Ẵ";s:5:"Ẵ";s:3:"ẵ";s:5:"ẵ";s:3:"Ặ";s:5:"Ặ";s:3:"ặ";s:5:"ặ";s:3:"Ẹ";s:3:"Ẹ";s:3:"ẹ";s:3:"ẹ";s:3:"Ẻ";s:3:"Ẻ";s:3:"ẻ";s:3:"ẻ";s:3:"Ẽ";s:3:"Ẽ";s:3:"ẽ";s:3:"ẽ";s:3:"Ế";s:5:"Ế";s:3:"ế";s:5:"ế";s:3:"Ề";s:5:"Ề";s:3:"ề";s:5:"ề";s:3:"Ể";s:5:"Ể";s:3:"ể";s:5:"ể";s:3:"Ễ";s:5:"Ễ";s:3:"ễ";s:5:"ễ";s:3:"Ệ";s:5:"Ệ";s:3:"ệ";s:5:"ệ";s:3:"Ỉ";s:3:"Ỉ";s:3:"ỉ";s:3:"ỉ";s:3:"Ị";s:3:"Ị";s:3:"ị";s:3:"ị";s:3:"Ọ";s:3:"Ọ";s:3:"ọ";s:3:"ọ";s:3:"Ỏ";s:3:"Ỏ";s:3:"ỏ";s:3:"ỏ";s:3:"Ố";s:5:"Ố";s:3:"ố";s:5:"ố";s:3:"Ồ";s:5:"Ồ";s:3:"ồ";s:5:"ồ";s:3:"Ổ";s:5:"Ổ";s:3:"ổ";s:5:"ổ";s:3:"Ỗ";s:5:"Ỗ";s:3:"ỗ";s:5:"ỗ";s:3:"Ộ";s:5:"Ộ";s:3:"ộ";s:5:"ộ";s:3:"Ớ";s:5:"Ớ";s:3:"ớ";s:5:"ớ";s:3:"Ờ";s:5:"Ờ";s:3:"ờ";s:5:"ờ";s:3:"Ở";s:5:"Ở";s:3:"ở";s:5:"ở";s:3:"Ỡ";s:5:"Ỡ";s:3:"ỡ";s:5:"ỡ";s:3:"Ợ";s:5:"Ợ";s:3:"ợ";s:5:"ợ";s:3:"Ụ";s:3:"Ụ";s:3:"ụ";s:3:"ụ";s:3:"Ủ";s:3:"Ủ";s:3:"ủ";s:3:"ủ";s:3:"Ứ";s:5:"Ứ";s:3:"ứ";s:5:"ứ";s:3:"Ừ";s:5:"Ừ";s:3:"ừ";s:5:"ừ";s:3:"Ử";s:5:"Ử";s:3:"ử";s:5:"ử";s:3:"Ữ";s:5:"Ữ";s:3:"ữ";s:5:"ữ";s:3:"Ự";s:5:"Ự";s:3:"ự";s:5:"ự";s:3:"Ỳ";s:3:"Ỳ";s:3:"ỳ";s:3:"ỳ";s:3:"Ỵ";s:3:"Ỵ";s:3:"ỵ";s:3:"ỵ";s:3:"Ỷ";s:3:"Ỷ";s:3:"ỷ";s:3:"ỷ";s:3:"Ỹ";s:3:"Ỹ";s:3:"ỹ";s:3:"ỹ";s:3:"ἀ";s:4:"ἀ";s:3:"ἁ";s:4:"ἁ";s:3:"ἂ";s:6:"ἂ";s:3:"ἃ";s:6:"ἃ";s:3:"ἄ";s:6:"ἄ";s:3:"ἅ";s:6:"ἅ";s:3:"ἆ";s:6:"ἆ";s:3:"ἇ";s:6:"ἇ";s:3:"Ἀ";s:4:"Ἀ";s:3:"Ἁ";s:4:"Ἁ";s:3:"Ἂ";s:6:"Ἂ";s:3:"Ἃ";s:6:"Ἃ";s:3:"Ἄ";s:6:"Ἄ";s:3:"Ἅ";s:6:"Ἅ";s:3:"Ἆ";s:6:"Ἆ";s:3:"Ἇ";s:6:"Ἇ";s:3:"ἐ";s:4:"ἐ";s:3:"ἑ";s:4:"ἑ";s:3:"ἒ";s:6:"ἒ";s:3:"ἓ";s:6:"ἓ";s:3:"ἔ";s:6:"ἔ";s:3:"ἕ";s:6:"ἕ";s:3:"Ἐ";s:4:"Ἐ";s:3:"Ἑ";s:4:"Ἑ";s:3:"Ἒ";s:6:"Ἒ";s:3:"Ἓ";s:6:"Ἓ";s:3:"Ἔ";s:6:"Ἔ";s:3:"Ἕ";s:6:"Ἕ";s:3:"ἠ";s:4:"ἠ";s:3:"ἡ";s:4:"ἡ";s:3:"ἢ";s:6:"ἢ";s:3:"ἣ";s:6:"ἣ";s:3:"ἤ";s:6:"ἤ";s:3:"ἥ";s:6:"ἥ";s:3:"ἦ";s:6:"ἦ";s:3:"ἧ";s:6:"ἧ";s:3:"Ἠ";s:4:"Ἠ";s:3:"Ἡ";s:4:"Ἡ";s:3:"Ἢ";s:6:"Ἢ";s:3:"Ἣ";s:6:"Ἣ";s:3:"Ἤ";s:6:"Ἤ";s:3:"Ἥ";s:6:"Ἥ";s:3:"Ἦ";s:6:"Ἦ";s:3:"Ἧ";s:6:"Ἧ";s:3:"ἰ";s:4:"ἰ";s:3:"ἱ";s:4:"ἱ";s:3:"ἲ";s:6:"ἲ";s:3:"ἳ";s:6:"ἳ";s:3:"ἴ";s:6:"ἴ";s:3:"ἵ";s:6:"ἵ";s:3:"ἶ";s:6:"ἶ";s:3:"ἷ";s:6:"ἷ";s:3:"Ἰ";s:4:"Ἰ";s:3:"Ἱ";s:4:"Ἱ";s:3:"Ἲ";s:6:"Ἲ";s:3:"Ἳ";s:6:"Ἳ";s:3:"Ἴ";s:6:"Ἴ";s:3:"Ἵ";s:6:"Ἵ";s:3:"Ἶ";s:6:"Ἶ";s:3:"Ἷ";s:6:"Ἷ";s:3:"ὀ";s:4:"ὀ";s:3:"ὁ";s:4:"ὁ";s:3:"ὂ";s:6:"ὂ";s:3:"ὃ";s:6:"ὃ";s:3:"ὄ";s:6:"ὄ";s:3:"ὅ";s:6:"ὅ";s:3:"Ὀ";s:4:"Ὀ";s:3:"Ὁ";s:4:"Ὁ";s:3:"Ὂ";s:6:"Ὂ";s:3:"Ὃ";s:6:"Ὃ";s:3:"Ὄ";s:6:"Ὄ";s:3:"Ὅ";s:6:"Ὅ";s:3:"ὐ";s:4:"ὐ";s:3:"ὑ";s:4:"ὑ";s:3:"ὒ";s:6:"ὒ";s:3:"ὓ";s:6:"ὓ";s:3:"ὔ";s:6:"ὔ";s:3:"ὕ";s:6:"ὕ";s:3:"ὖ";s:6:"ὖ";s:3:"ὗ";s:6:"ὗ";s:3:"Ὑ";s:4:"Ὑ";s:3:"Ὓ";s:6:"Ὓ";s:3:"Ὕ";s:6:"Ὕ";s:3:"Ὗ";s:6:"Ὗ";s:3:"ὠ";s:4:"ὠ";s:3:"ὡ";s:4:"ὡ";s:3:"ὢ";s:6:"ὢ";s:3:"ὣ";s:6:"ὣ";s:3:"ὤ";s:6:"ὤ";s:3:"ὥ";s:6:"ὥ";s:3:"ὦ";s:6:"ὦ";s:3:"ὧ";s:6:"ὧ";s:3:"Ὠ";s:4:"Ὠ";s:3:"Ὡ";s:4:"Ὡ";s:3:"Ὢ";s:6:"Ὢ";s:3:"Ὣ";s:6:"Ὣ";s:3:"Ὤ";s:6:"Ὤ";s:3:"Ὥ";s:6:"Ὥ";s:3:"Ὦ";s:6:"Ὦ";s:3:"Ὧ";s:6:"Ὧ";s:3:"ὰ";s:4:"ὰ";s:3:"ά";s:4:"ά";s:3:"ὲ";s:4:"ὲ";s:3:"έ";s:4:"έ";s:3:"ὴ";s:4:"ὴ";s:3:"ή";s:4:"ή";s:3:"ὶ";s:4:"ὶ";s:3:"ί";s:4:"ί";s:3:"ὸ";s:4:"ὸ";s:3:"ό";s:4:"ό";s:3:"ὺ";s:4:"ὺ";s:3:"ύ";s:4:"ύ";s:3:"ὼ";s:4:"ὼ";s:3:"ώ";s:4:"ώ";s:3:"ᾀ";s:6:"ᾀ";s:3:"ᾁ";s:6:"ᾁ";s:3:"ᾂ";s:8:"ᾂ";s:3:"ᾃ";s:8:"ᾃ";s:3:"ᾄ";s:8:"ᾄ";s:3:"ᾅ";s:8:"ᾅ";s:3:"ᾆ";s:8:"ᾆ";s:3:"ᾇ";s:8:"ᾇ";s:3:"ᾈ";s:6:"ᾈ";s:3:"ᾉ";s:6:"ᾉ";s:3:"ᾊ";s:8:"ᾊ";s:3:"ᾋ";s:8:"ᾋ";s:3:"ᾌ";s:8:"ᾌ";s:3:"ᾍ";s:8:"ᾍ";s:3:"ᾎ";s:8:"ᾎ";s:3:"ᾏ";s:8:"ᾏ";s:3:"ᾐ";s:6:"ᾐ";s:3:"ᾑ";s:6:"ᾑ";s:3:"ᾒ";s:8:"ᾒ";s:3:"ᾓ";s:8:"ᾓ";s:3:"ᾔ";s:8:"ᾔ";s:3:"ᾕ";s:8:"ᾕ";s:3:"ᾖ";s:8:"ᾖ";s:3:"ᾗ";s:8:"ᾗ";s:3:"ᾘ";s:6:"ᾘ";s:3:"ᾙ";s:6:"ᾙ";s:3:"ᾚ";s:8:"ᾚ";s:3:"ᾛ";s:8:"ᾛ";s:3:"ᾜ";s:8:"ᾜ";s:3:"ᾝ";s:8:"ᾝ";s:3:"ᾞ";s:8:"ᾞ";s:3:"ᾟ";s:8:"ᾟ";s:3:"ᾠ";s:6:"ᾠ";s:3:"ᾡ";s:6:"ᾡ";s:3:"ᾢ";s:8:"ᾢ";s:3:"ᾣ";s:8:"ᾣ";s:3:"ᾤ";s:8:"ᾤ";s:3:"ᾥ";s:8:"ᾥ";s:3:"ᾦ";s:8:"ᾦ";s:3:"ᾧ";s:8:"ᾧ";s:3:"ᾨ";s:6:"ᾨ";s:3:"ᾩ";s:6:"ᾩ";s:3:"ᾪ";s:8:"ᾪ";s:3:"ᾫ";s:8:"ᾫ";s:3:"ᾬ";s:8:"ᾬ";s:3:"ᾭ";s:8:"ᾭ";s:3:"ᾮ";s:8:"ᾮ";s:3:"ᾯ";s:8:"ᾯ";s:3:"ᾰ";s:4:"ᾰ";s:3:"ᾱ";s:4:"ᾱ";s:3:"ᾲ";s:6:"ᾲ";s:3:"ᾳ";s:4:"ᾳ";s:3:"ᾴ";s:6:"ᾴ";s:3:"ᾶ";s:4:"ᾶ";s:3:"ᾷ";s:6:"ᾷ";s:3:"Ᾰ";s:4:"Ᾰ";s:3:"Ᾱ";s:4:"Ᾱ";s:3:"Ὰ";s:4:"Ὰ";s:3:"Ά";s:4:"Ά";s:3:"ᾼ";s:4:"ᾼ";s:3:"᾽";s:3:" ̓";s:3:"ι";s:2:"ι";s:3:"᾿";s:3:" ̓";s:3:"῀";s:3:" ͂";s:3:"῁";s:5:" ̈͂";s:3:"ῂ";s:6:"ῂ";s:3:"ῃ";s:4:"ῃ";s:3:"ῄ";s:6:"ῄ";s:3:"ῆ";s:4:"ῆ";s:3:"ῇ";s:6:"ῇ";s:3:"Ὲ";s:4:"Ὲ";s:3:"Έ";s:4:"Έ";s:3:"Ὴ";s:4:"Ὴ";s:3:"Ή";s:4:"Ή";s:3:"ῌ";s:4:"ῌ";s:3:"῍";s:5:" ̓̀";s:3:"῎";s:5:" ̓́";s:3:"῏";s:5:" ̓͂";s:3:"ῐ";s:4:"ῐ";s:3:"ῑ";s:4:"ῑ";s:3:"ῒ";s:6:"ῒ";s:3:"ΐ";s:6:"ΐ";s:3:"ῖ";s:4:"ῖ";s:3:"ῗ";s:6:"ῗ";s:3:"Ῐ";s:4:"Ῐ";s:3:"Ῑ";s:4:"Ῑ";s:3:"Ὶ";s:4:"Ὶ";s:3:"Ί";s:4:"Ί";s:3:"῝";s:5:" ̔̀";s:3:"῞";s:5:" ̔́";s:3:"῟";s:5:" ̔͂";s:3:"ῠ";s:4:"ῠ";s:3:"ῡ";s:4:"ῡ";s:3:"ῢ";s:6:"ῢ";s:3:"ΰ";s:6:"ΰ";s:3:"ῤ";s:4:"ῤ";s:3:"ῥ";s:4:"ῥ";s:3:"ῦ";s:4:"ῦ";s:3:"ῧ";s:6:"ῧ";s:3:"Ῠ";s:4:"Ῠ";s:3:"Ῡ";s:4:"Ῡ";s:3:"Ὺ";s:4:"Ὺ";s:3:"Ύ";s:4:"Ύ";s:3:"Ῥ";s:4:"Ῥ";s:3:"῭";s:5:" ̈̀";s:3:"΅";s:5:" ̈́";s:3:"`";s:1:"`";s:3:"ῲ";s:6:"ῲ";s:3:"ῳ";s:4:"ῳ";s:3:"ῴ";s:6:"ῴ";s:3:"ῶ";s:4:"ῶ";s:3:"ῷ";s:6:"ῷ";s:3:"Ὸ";s:4:"Ὸ";s:3:"Ό";s:4:"Ό";s:3:"Ὼ";s:4:"Ὼ";s:3:"Ώ";s:4:"Ώ";s:3:"ῼ";s:4:"ῼ";s:3:"´";s:3:" ́";s:3:"῾";s:3:" ̔";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:" ";s:1:" ";s:3:"‑";s:3:"‐";s:3:"‗";s:3:" ̳";s:3:"․";s:1:".";s:3:"‥";s:2:"..";s:3:"…";s:3:"...";s:3:" ";s:1:" ";s:3:"″";s:6:"′′";s:3:"‴";s:9:"′′′";s:3:"‶";s:6:"‵‵";s:3:"‷";s:9:"‵‵‵";s:3:"‼";s:2:"!!";s:3:"‾";s:3:" ̅";s:3:"⁇";s:2:"??";s:3:"⁈";s:2:"?!";s:3:"⁉";s:2:"!?";s:3:"⁗";s:12:"′′′′";s:3:" ";s:1:" ";s:3:"⁰";s:1:"0";s:3:"ⁱ";s:1:"i";s:3:"⁴";s:1:"4";s:3:"⁵";s:1:"5";s:3:"⁶";s:1:"6";s:3:"⁷";s:1:"7";s:3:"⁸";s:1:"8";s:3:"⁹";s:1:"9";s:3:"⁺";s:1:"+";s:3:"⁻";s:3:"−";s:3:"⁼";s:1:"=";s:3:"⁽";s:1:"(";s:3:"⁾";s:1:")";s:3:"ⁿ";s:1:"n";s:3:"₀";s:1:"0";s:3:"₁";s:1:"1";s:3:"₂";s:1:"2";s:3:"₃";s:1:"3";s:3:"₄";s:1:"4";s:3:"₅";s:1:"5";s:3:"₆";s:1:"6";s:3:"₇";s:1:"7";s:3:"₈";s:1:"8";s:3:"₉";s:1:"9";s:3:"₊";s:1:"+";s:3:"₋";s:3:"−";s:3:"₌";s:1:"=";s:3:"₍";s:1:"(";s:3:"₎";s:1:")";s:3:"ₐ";s:1:"a";s:3:"ₑ";s:1:"e";s:3:"ₒ";s:1:"o";s:3:"ₓ";s:1:"x";s:3:"ₔ";s:2:"ə";s:3:"ₕ";s:1:"h";s:3:"ₖ";s:1:"k";s:3:"ₗ";s:1:"l";s:3:"ₘ";s:1:"m";s:3:"ₙ";s:1:"n";s:3:"ₚ";s:1:"p";s:3:"ₛ";s:1:"s";s:3:"ₜ";s:1:"t";s:3:"₨";s:2:"Rs";s:3:"℀";s:3:"a/c";s:3:"℁";s:3:"a/s";s:3:"ℂ";s:1:"C";s:3:"℃";s:3:"°C";s:3:"℅";s:3:"c/o";s:3:"℆";s:3:"c/u";s:3:"ℇ";s:2:"Ɛ";s:3:"℉";s:3:"°F";s:3:"ℊ";s:1:"g";s:3:"ℋ";s:1:"H";s:3:"ℌ";s:1:"H";s:3:"ℍ";s:1:"H";s:3:"ℎ";s:1:"h";s:3:"ℏ";s:2:"ħ";s:3:"ℐ";s:1:"I";s:3:"ℑ";s:1:"I";s:3:"ℒ";s:1:"L";s:3:"ℓ";s:1:"l";s:3:"ℕ";s:1:"N";s:3:"№";s:2:"No";s:3:"ℙ";s:1:"P";s:3:"ℚ";s:1:"Q";s:3:"ℛ";s:1:"R";s:3:"ℜ";s:1:"R";s:3:"ℝ";s:1:"R";s:3:"℠";s:2:"SM";s:3:"℡";s:3:"TEL";s:3:"™";s:2:"TM";s:3:"ℤ";s:1:"Z";s:3:"Ω";s:2:"Ω";s:3:"ℨ";s:1:"Z";s:3:"K";s:1:"K";s:3:"Å";s:3:"Å";s:3:"ℬ";s:1:"B";s:3:"ℭ";s:1:"C";s:3:"ℯ";s:1:"e";s:3:"ℰ";s:1:"E";s:3:"ℱ";s:1:"F";s:3:"ℳ";s:1:"M";s:3:"ℴ";s:1:"o";s:3:"ℵ";s:2:"א";s:3:"ℶ";s:2:"ב";s:3:"ℷ";s:2:"ג";s:3:"ℸ";s:2:"ד";s:3:"ℹ";s:1:"i";s:3:"℻";s:3:"FAX";s:3:"ℼ";s:2:"π";s:3:"ℽ";s:2:"γ";s:3:"ℾ";s:2:"Γ";s:3:"ℿ";s:2:"Π";s:3:"⅀";s:3:"∑";s:3:"ⅅ";s:1:"D";s:3:"ⅆ";s:1:"d";s:3:"ⅇ";s:1:"e";s:3:"ⅈ";s:1:"i";s:3:"ⅉ";s:1:"j";s:3:"⅐";s:5:"1⁄7";s:3:"⅑";s:5:"1⁄9";s:3:"⅒";s:6:"1⁄10";s:3:"⅓";s:5:"1⁄3";s:3:"⅔";s:5:"2⁄3";s:3:"⅕";s:5:"1⁄5";s:3:"⅖";s:5:"2⁄5";s:3:"⅗";s:5:"3⁄5";s:3:"⅘";s:5:"4⁄5";s:3:"⅙";s:5:"1⁄6";s:3:"⅚";s:5:"5⁄6";s:3:"⅛";s:5:"1⁄8";s:3:"⅜";s:5:"3⁄8";s:3:"⅝";s:5:"5⁄8";s:3:"⅞";s:5:"7⁄8";s:3:"⅟";s:4:"1⁄";s:3:"Ⅰ";s:1:"I";s:3:"Ⅱ";s:2:"II";s:3:"Ⅲ";s:3:"III";s:3:"Ⅳ";s:2:"IV";s:3:"Ⅴ";s:1:"V";s:3:"Ⅵ";s:2:"VI";s:3:"Ⅶ";s:3:"VII";s:3:"Ⅷ";s:4:"VIII";s:3:"Ⅸ";s:2:"IX";s:3:"Ⅹ";s:1:"X";s:3:"Ⅺ";s:2:"XI";s:3:"Ⅻ";s:3:"XII";s:3:"Ⅼ";s:1:"L";s:3:"Ⅽ";s:1:"C";s:3:"Ⅾ";s:1:"D";s:3:"Ⅿ";s:1:"M";s:3:"ⅰ";s:1:"i";s:3:"ⅱ";s:2:"ii";s:3:"ⅲ";s:3:"iii";s:3:"ⅳ";s:2:"iv";s:3:"ⅴ";s:1:"v";s:3:"ⅵ";s:2:"vi";s:3:"ⅶ";s:3:"vii";s:3:"ⅷ";s:4:"viii";s:3:"ⅸ";s:2:"ix";s:3:"ⅹ";s:1:"x";s:3:"ⅺ";s:2:"xi";s:3:"ⅻ";s:3:"xii";s:3:"ⅼ";s:1:"l";s:3:"ⅽ";s:1:"c";s:3:"ⅾ";s:1:"d";s:3:"ⅿ";s:1:"m";s:3:"↉";s:5:"0⁄3";s:3:"↚";s:5:"↚";s:3:"↛";s:5:"↛";s:3:"↮";s:5:"↮";s:3:"⇍";s:5:"⇍";s:3:"⇎";s:5:"⇎";s:3:"⇏";s:5:"⇏";s:3:"∄";s:5:"∄";s:3:"∉";s:5:"∉";s:3:"∌";s:5:"∌";s:3:"∤";s:5:"∤";s:3:"∦";s:5:"∦";s:3:"∬";s:6:"∫∫";s:3:"∭";s:9:"∫∫∫";s:3:"∯";s:6:"∮∮";s:3:"∰";s:9:"∮∮∮";s:3:"≁";s:5:"≁";s:3:"≄";s:5:"≄";s:3:"≇";s:5:"≇";s:3:"≉";s:5:"≉";s:3:"≠";s:3:"≠";s:3:"≢";s:5:"≢";s:3:"≭";s:5:"≭";s:3:"≮";s:3:"≮";s:3:"≯";s:3:"≯";s:3:"≰";s:5:"≰";s:3:"≱";s:5:"≱";s:3:"≴";s:5:"≴";s:3:"≵";s:5:"≵";s:3:"≸";s:5:"≸";s:3:"≹";s:5:"≹";s:3:"⊀";s:5:"⊀";s:3:"⊁";s:5:"⊁";s:3:"⊄";s:5:"⊄";s:3:"⊅";s:5:"⊅";s:3:"⊈";s:5:"⊈";s:3:"⊉";s:5:"⊉";s:3:"⊬";s:5:"⊬";s:3:"⊭";s:5:"⊭";s:3:"⊮";s:5:"⊮";s:3:"⊯";s:5:"⊯";s:3:"⋠";s:5:"⋠";s:3:"⋡";s:5:"⋡";s:3:"⋢";s:5:"⋢";s:3:"⋣";s:5:"⋣";s:3:"⋪";s:5:"⋪";s:3:"⋫";s:5:"⋫";s:3:"⋬";s:5:"⋬";s:3:"⋭";s:5:"⋭";s:3:"〈";s:3:"〈";s:3:"〉";s:3:"〉";s:3:"①";s:1:"1";s:3:"②";s:1:"2";s:3:"③";s:1:"3";s:3:"④";s:1:"4";s:3:"⑤";s:1:"5";s:3:"⑥";s:1:"6";s:3:"⑦";s:1:"7";s:3:"⑧";s:1:"8";s:3:"⑨";s:1:"9";s:3:"⑩";s:2:"10";s:3:"⑪";s:2:"11";s:3:"⑫";s:2:"12";s:3:"⑬";s:2:"13";s:3:"⑭";s:2:"14";s:3:"⑮";s:2:"15";s:3:"⑯";s:2:"16";s:3:"⑰";s:2:"17";s:3:"⑱";s:2:"18";s:3:"⑲";s:2:"19";s:3:"⑳";s:2:"20";s:3:"⑴";s:3:"(1)";s:3:"⑵";s:3:"(2)";s:3:"⑶";s:3:"(3)";s:3:"⑷";s:3:"(4)";s:3:"⑸";s:3:"(5)";s:3:"⑹";s:3:"(6)";s:3:"⑺";s:3:"(7)";s:3:"⑻";s:3:"(8)";s:3:"⑼";s:3:"(9)";s:3:"⑽";s:4:"(10)";s:3:"⑾";s:4:"(11)";s:3:"⑿";s:4:"(12)";s:3:"⒀";s:4:"(13)";s:3:"⒁";s:4:"(14)";s:3:"⒂";s:4:"(15)";s:3:"⒃";s:4:"(16)";s:3:"⒄";s:4:"(17)";s:3:"⒅";s:4:"(18)";s:3:"⒆";s:4:"(19)";s:3:"⒇";s:4:"(20)";s:3:"⒈";s:2:"1.";s:3:"⒉";s:2:"2.";s:3:"⒊";s:2:"3.";s:3:"⒋";s:2:"4.";s:3:"⒌";s:2:"5.";s:3:"⒍";s:2:"6.";s:3:"⒎";s:2:"7.";s:3:"⒏";s:2:"8.";s:3:"⒐";s:2:"9.";s:3:"⒑";s:3:"10.";s:3:"⒒";s:3:"11.";s:3:"⒓";s:3:"12.";s:3:"⒔";s:3:"13.";s:3:"⒕";s:3:"14.";s:3:"⒖";s:3:"15.";s:3:"⒗";s:3:"16.";s:3:"⒘";s:3:"17.";s:3:"⒙";s:3:"18.";s:3:"⒚";s:3:"19.";s:3:"⒛";s:3:"20.";s:3:"⒜";s:3:"(a)";s:3:"⒝";s:3:"(b)";s:3:"⒞";s:3:"(c)";s:3:"⒟";s:3:"(d)";s:3:"⒠";s:3:"(e)";s:3:"⒡";s:3:"(f)";s:3:"⒢";s:3:"(g)";s:3:"⒣";s:3:"(h)";s:3:"⒤";s:3:"(i)";s:3:"⒥";s:3:"(j)";s:3:"⒦";s:3:"(k)";s:3:"⒧";s:3:"(l)";s:3:"⒨";s:3:"(m)";s:3:"⒩";s:3:"(n)";s:3:"⒪";s:3:"(o)";s:3:"⒫";s:3:"(p)";s:3:"⒬";s:3:"(q)";s:3:"⒭";s:3:"(r)";s:3:"⒮";s:3:"(s)";s:3:"⒯";s:3:"(t)";s:3:"⒰";s:3:"(u)";s:3:"⒱";s:3:"(v)";s:3:"⒲";s:3:"(w)";s:3:"⒳";s:3:"(x)";s:3:"⒴";s:3:"(y)";s:3:"⒵";s:3:"(z)";s:3:"Ⓐ";s:1:"A";s:3:"Ⓑ";s:1:"B";s:3:"Ⓒ";s:1:"C";s:3:"Ⓓ";s:1:"D";s:3:"Ⓔ";s:1:"E";s:3:"Ⓕ";s:1:"F";s:3:"Ⓖ";s:1:"G";s:3:"Ⓗ";s:1:"H";s:3:"Ⓘ";s:1:"I";s:3:"Ⓙ";s:1:"J";s:3:"Ⓚ";s:1:"K";s:3:"Ⓛ";s:1:"L";s:3:"Ⓜ";s:1:"M";s:3:"Ⓝ";s:1:"N";s:3:"Ⓞ";s:1:"O";s:3:"Ⓟ";s:1:"P";s:3:"Ⓠ";s:1:"Q";s:3:"Ⓡ";s:1:"R";s:3:"Ⓢ";s:1:"S";s:3:"Ⓣ";s:1:"T";s:3:"Ⓤ";s:1:"U";s:3:"Ⓥ";s:1:"V";s:3:"Ⓦ";s:1:"W";s:3:"Ⓧ";s:1:"X";s:3:"Ⓨ";s:1:"Y";s:3:"Ⓩ";s:1:"Z";s:3:"ⓐ";s:1:"a";s:3:"ⓑ";s:1:"b";s:3:"ⓒ";s:1:"c";s:3:"ⓓ";s:1:"d";s:3:"ⓔ";s:1:"e";s:3:"ⓕ";s:1:"f";s:3:"ⓖ";s:1:"g";s:3:"ⓗ";s:1:"h";s:3:"ⓘ";s:1:"i";s:3:"ⓙ";s:1:"j";s:3:"ⓚ";s:1:"k";s:3:"ⓛ";s:1:"l";s:3:"ⓜ";s:1:"m";s:3:"ⓝ";s:1:"n";s:3:"ⓞ";s:1:"o";s:3:"ⓟ";s:1:"p";s:3:"ⓠ";s:1:"q";s:3:"ⓡ";s:1:"r";s:3:"ⓢ";s:1:"s";s:3:"ⓣ";s:1:"t";s:3:"ⓤ";s:1:"u";s:3:"ⓥ";s:1:"v";s:3:"ⓦ";s:1:"w";s:3:"ⓧ";s:1:"x";s:3:"ⓨ";s:1:"y";s:3:"ⓩ";s:1:"z";s:3:"⓪";s:1:"0";s:3:"⨌";s:12:"∫∫∫∫";s:3:"⩴";s:3:"::=";s:3:"⩵";s:2:"==";s:3:"⩶";s:3:"===";s:3:"⫝̸";s:5:"⫝̸";s:3:"ⱼ";s:1:"j";s:3:"ⱽ";s:1:"V";s:3:"ⵯ";s:3:"ⵡ";s:3:"⺟";s:3:"母";s:3:"⻳";s:3:"龟";s:3:"⼀";s:3:"一";s:3:"⼁";s:3:"丨";s:3:"⼂";s:3:"丶";s:3:"⼃";s:3:"丿";s:3:"⼄";s:3:"乙";s:3:"⼅";s:3:"亅";s:3:"⼆";s:3:"二";s:3:"⼇";s:3:"亠";s:3:"⼈";s:3:"人";s:3:"⼉";s:3:"儿";s:3:"⼊";s:3:"入";s:3:"⼋";s:3:"八";s:3:"⼌";s:3:"冂";s:3:"⼍";s:3:"冖";s:3:"⼎";s:3:"冫";s:3:"⼏";s:3:"几";s:3:"⼐";s:3:"凵";s:3:"⼑";s:3:"刀";s:3:"⼒";s:3:"力";s:3:"⼓";s:3:"勹";s:3:"⼔";s:3:"匕";s:3:"⼕";s:3:"匚";s:3:"⼖";s:3:"匸";s:3:"⼗";s:3:"十";s:3:"⼘";s:3:"卜";s:3:"⼙";s:3:"卩";s:3:"⼚";s:3:"厂";s:3:"⼛";s:3:"厶";s:3:"⼜";s:3:"又";s:3:"⼝";s:3:"口";s:3:"⼞";s:3:"囗";s:3:"⼟";s:3:"土";s:3:"⼠";s:3:"士";s:3:"⼡";s:3:"夂";s:3:"⼢";s:3:"夊";s:3:"⼣";s:3:"夕";s:3:"⼤";s:3:"大";s:3:"⼥";s:3:"女";s:3:"⼦";s:3:"子";s:3:"⼧";s:3:"宀";s:3:"⼨";s:3:"寸";s:3:"⼩";s:3:"小";s:3:"⼪";s:3:"尢";s:3:"⼫";s:3:"尸";s:3:"⼬";s:3:"屮";s:3:"⼭";s:3:"山";s:3:"⼮";s:3:"巛";s:3:"⼯";s:3:"工";s:3:"⼰";s:3:"己";s:3:"⼱";s:3:"巾";s:3:"⼲";s:3:"干";s:3:"⼳";s:3:"幺";s:3:"⼴";s:3:"广";s:3:"⼵";s:3:"廴";s:3:"⼶";s:3:"廾";s:3:"⼷";s:3:"弋";s:3:"⼸";s:3:"弓";s:3:"⼹";s:3:"彐";s:3:"⼺";s:3:"彡";s:3:"⼻";s:3:"彳";s:3:"⼼";s:3:"心";s:3:"⼽";s:3:"戈";s:3:"⼾";s:3:"戶";s:3:"⼿";s:3:"手";s:3:"⽀";s:3:"支";s:3:"⽁";s:3:"攴";s:3:"⽂";s:3:"文";s:3:"⽃";s:3:"斗";s:3:"⽄";s:3:"斤";s:3:"⽅";s:3:"方";s:3:"⽆";s:3:"无";s:3:"⽇";s:3:"日";s:3:"⽈";s:3:"曰";s:3:"⽉";s:3:"月";s:3:"⽊";s:3:"木";s:3:"⽋";s:3:"欠";s:3:"⽌";s:3:"止";s:3:"⽍";s:3:"歹";s:3:"⽎";s:3:"殳";s:3:"⽏";s:3:"毋";s:3:"⽐";s:3:"比";s:3:"⽑";s:3:"毛";s:3:"⽒";s:3:"氏";s:3:"⽓";s:3:"气";s:3:"⽔";s:3:"水";s:3:"⽕";s:3:"火";s:3:"⽖";s:3:"爪";s:3:"⽗";s:3:"父";s:3:"⽘";s:3:"爻";s:3:"⽙";s:3:"爿";s:3:"⽚";s:3:"片";s:3:"⽛";s:3:"牙";s:3:"⽜";s:3:"牛";s:3:"⽝";s:3:"犬";s:3:"⽞";s:3:"玄";s:3:"⽟";s:3:"玉";s:3:"⽠";s:3:"瓜";s:3:"⽡";s:3:"瓦";s:3:"⽢";s:3:"甘";s:3:"⽣";s:3:"生";s:3:"⽤";s:3:"用";s:3:"⽥";s:3:"田";s:3:"⽦";s:3:"疋";s:3:"⽧";s:3:"疒";s:3:"⽨";s:3:"癶";s:3:"⽩";s:3:"白";s:3:"⽪";s:3:"皮";s:3:"⽫";s:3:"皿";s:3:"⽬";s:3:"目";s:3:"⽭";s:3:"矛";s:3:"⽮";s:3:"矢";s:3:"⽯";s:3:"石";s:3:"⽰";s:3:"示";s:3:"⽱";s:3:"禸";s:3:"⽲";s:3:"禾";s:3:"⽳";s:3:"穴";s:3:"⽴";s:3:"立";s:3:"⽵";s:3:"竹";s:3:"⽶";s:3:"米";s:3:"⽷";s:3:"糸";s:3:"⽸";s:3:"缶";s:3:"⽹";s:3:"网";s:3:"⽺";s:3:"羊";s:3:"⽻";s:3:"羽";s:3:"⽼";s:3:"老";s:3:"⽽";s:3:"而";s:3:"⽾";s:3:"耒";s:3:"⽿";s:3:"耳";s:3:"⾀";s:3:"聿";s:3:"⾁";s:3:"肉";s:3:"⾂";s:3:"臣";s:3:"⾃";s:3:"自";s:3:"⾄";s:3:"至";s:3:"⾅";s:3:"臼";s:3:"⾆";s:3:"舌";s:3:"⾇";s:3:"舛";s:3:"⾈";s:3:"舟";s:3:"⾉";s:3:"艮";s:3:"⾊";s:3:"色";s:3:"⾋";s:3:"艸";s:3:"⾌";s:3:"虍";s:3:"⾍";s:3:"虫";s:3:"⾎";s:3:"血";s:3:"⾏";s:3:"行";s:3:"⾐";s:3:"衣";s:3:"⾑";s:3:"襾";s:3:"⾒";s:3:"見";s:3:"⾓";s:3:"角";s:3:"⾔";s:3:"言";s:3:"⾕";s:3:"谷";s:3:"⾖";s:3:"豆";s:3:"⾗";s:3:"豕";s:3:"⾘";s:3:"豸";s:3:"⾙";s:3:"貝";s:3:"⾚";s:3:"赤";s:3:"⾛";s:3:"走";s:3:"⾜";s:3:"足";s:3:"⾝";s:3:"身";s:3:"⾞";s:3:"車";s:3:"⾟";s:3:"辛";s:3:"⾠";s:3:"辰";s:3:"⾡";s:3:"辵";s:3:"⾢";s:3:"邑";s:3:"⾣";s:3:"酉";s:3:"⾤";s:3:"釆";s:3:"⾥";s:3:"里";s:3:"⾦";s:3:"金";s:3:"⾧";s:3:"長";s:3:"⾨";s:3:"門";s:3:"⾩";s:3:"阜";s:3:"⾪";s:3:"隶";s:3:"⾫";s:3:"隹";s:3:"⾬";s:3:"雨";s:3:"⾭";s:3:"靑";s:3:"⾮";s:3:"非";s:3:"⾯";s:3:"面";s:3:"⾰";s:3:"革";s:3:"⾱";s:3:"韋";s:3:"⾲";s:3:"韭";s:3:"⾳";s:3:"音";s:3:"⾴";s:3:"頁";s:3:"⾵";s:3:"風";s:3:"⾶";s:3:"飛";s:3:"⾷";s:3:"食";s:3:"⾸";s:3:"首";s:3:"⾹";s:3:"香";s:3:"⾺";s:3:"馬";s:3:"⾻";s:3:"骨";s:3:"⾼";s:3:"高";s:3:"⾽";s:3:"髟";s:3:"⾾";s:3:"鬥";s:3:"⾿";s:3:"鬯";s:3:"⿀";s:3:"鬲";s:3:"⿁";s:3:"鬼";s:3:"⿂";s:3:"魚";s:3:"⿃";s:3:"鳥";s:3:"⿄";s:3:"鹵";s:3:"⿅";s:3:"鹿";s:3:"⿆";s:3:"麥";s:3:"⿇";s:3:"麻";s:3:"⿈";s:3:"黃";s:3:"⿉";s:3:"黍";s:3:"⿊";s:3:"黑";s:3:"⿋";s:3:"黹";s:3:"⿌";s:3:"黽";s:3:"⿍";s:3:"鼎";s:3:"⿎";s:3:"鼓";s:3:"⿏";s:3:"鼠";s:3:"⿐";s:3:"鼻";s:3:"⿑";s:3:"齊";s:3:"⿒";s:3:"齒";s:3:"⿓";s:3:"龍";s:3:"⿔";s:3:"龜";s:3:"⿕";s:3:"龠";s:3:" ";s:1:" ";s:3:"〶";s:3:"〒";s:3:"〸";s:3:"十";s:3:"〹";s:3:"卄";s:3:"〺";s:3:"卅";s:3:"が";s:6:"が";s:3:"ぎ";s:6:"ぎ";s:3:"ぐ";s:6:"ぐ";s:3:"げ";s:6:"げ";s:3:"ご";s:6:"ご";s:3:"ざ";s:6:"ざ";s:3:"じ";s:6:"じ";s:3:"ず";s:6:"ず";s:3:"ぜ";s:6:"ぜ";s:3:"ぞ";s:6:"ぞ";s:3:"だ";s:6:"だ";s:3:"ぢ";s:6:"ぢ";s:3:"づ";s:6:"づ";s:3:"で";s:6:"で";s:3:"ど";s:6:"ど";s:3:"ば";s:6:"ば";s:3:"ぱ";s:6:"ぱ";s:3:"び";s:6:"び";s:3:"ぴ";s:6:"ぴ";s:3:"ぶ";s:6:"ぶ";s:3:"ぷ";s:6:"ぷ";s:3:"べ";s:6:"べ";s:3:"ぺ";s:6:"ぺ";s:3:"ぼ";s:6:"ぼ";s:3:"ぽ";s:6:"ぽ";s:3:"ゔ";s:6:"ゔ";s:3:"゛";s:4:" ゙";s:3:"゜";s:4:" ゚";s:3:"ゞ";s:6:"ゞ";s:3:"ゟ";s:6:"より";s:3:"ガ";s:6:"ガ";s:3:"ギ";s:6:"ギ";s:3:"グ";s:6:"グ";s:3:"ゲ";s:6:"ゲ";s:3:"ゴ";s:6:"ゴ";s:3:"ザ";s:6:"ザ";s:3:"ジ";s:6:"ジ";s:3:"ズ";s:6:"ズ";s:3:"ゼ";s:6:"ゼ";s:3:"ゾ";s:6:"ゾ";s:3:"ダ";s:6:"ダ";s:3:"ヂ";s:6:"ヂ";s:3:"ヅ";s:6:"ヅ";s:3:"デ";s:6:"デ";s:3:"ド";s:6:"ド";s:3:"バ";s:6:"バ";s:3:"パ";s:6:"パ";s:3:"ビ";s:6:"ビ";s:3:"ピ";s:6:"ピ";s:3:"ブ";s:6:"ブ";s:3:"プ";s:6:"プ";s:3:"ベ";s:6:"ベ";s:3:"ペ";s:6:"ペ";s:3:"ボ";s:6:"ボ";s:3:"ポ";s:6:"ポ";s:3:"ヴ";s:6:"ヴ";s:3:"ヷ";s:6:"ヷ";s:3:"ヸ";s:6:"ヸ";s:3:"ヹ";s:6:"ヹ";s:3:"ヺ";s:6:"ヺ";s:3:"ヾ";s:6:"ヾ";s:3:"ヿ";s:6:"コト";s:3:"ㄱ";s:3:"ᄀ";s:3:"ㄲ";s:3:"ᄁ";s:3:"ㄳ";s:3:"ᆪ";s:3:"ㄴ";s:3:"ᄂ";s:3:"ㄵ";s:3:"ᆬ";s:3:"ㄶ";s:3:"ᆭ";s:3:"ㄷ";s:3:"ᄃ";s:3:"ㄸ";s:3:"ᄄ";s:3:"ㄹ";s:3:"ᄅ";s:3:"ㄺ";s:3:"ᆰ";s:3:"ㄻ";s:3:"ᆱ";s:3:"ㄼ";s:3:"ᆲ";s:3:"ㄽ";s:3:"ᆳ";s:3:"ㄾ";s:3:"ᆴ";s:3:"ㄿ";s:3:"ᆵ";s:3:"ㅀ";s:3:"ᄚ";s:3:"ㅁ";s:3:"ᄆ";s:3:"ㅂ";s:3:"ᄇ";s:3:"ㅃ";s:3:"ᄈ";s:3:"ㅄ";s:3:"ᄡ";s:3:"ㅅ";s:3:"ᄉ";s:3:"ㅆ";s:3:"ᄊ";s:3:"ㅇ";s:3:"ᄋ";s:3:"ㅈ";s:3:"ᄌ";s:3:"ㅉ";s:3:"ᄍ";s:3:"ㅊ";s:3:"ᄎ";s:3:"ㅋ";s:3:"ᄏ";s:3:"ㅌ";s:3:"ᄐ";s:3:"ㅍ";s:3:"ᄑ";s:3:"ㅎ";s:3:"ᄒ";s:3:"ㅏ";s:3:"ᅡ";s:3:"ㅐ";s:3:"ᅢ";s:3:"ㅑ";s:3:"ᅣ";s:3:"ㅒ";s:3:"ᅤ";s:3:"ㅓ";s:3:"ᅥ";s:3:"ㅔ";s:3:"ᅦ";s:3:"ㅕ";s:3:"ᅧ";s:3:"ㅖ";s:3:"ᅨ";s:3:"ㅗ";s:3:"ᅩ";s:3:"ㅘ";s:3:"ᅪ";s:3:"ㅙ";s:3:"ᅫ";s:3:"ㅚ";s:3:"ᅬ";s:3:"ㅛ";s:3:"ᅭ";s:3:"ㅜ";s:3:"ᅮ";s:3:"ㅝ";s:3:"ᅯ";s:3:"ㅞ";s:3:"ᅰ";s:3:"ㅟ";s:3:"ᅱ";s:3:"ㅠ";s:3:"ᅲ";s:3:"ㅡ";s:3:"ᅳ";s:3:"ㅢ";s:3:"ᅴ";s:3:"ㅣ";s:3:"ᅵ";s:3:"ㅤ";s:3:"ᅠ";s:3:"ㅥ";s:3:"ᄔ";s:3:"ㅦ";s:3:"ᄕ";s:3:"ㅧ";s:3:"ᇇ";s:3:"ㅨ";s:3:"ᇈ";s:3:"ㅩ";s:3:"ᇌ";s:3:"ㅪ";s:3:"ᇎ";s:3:"ㅫ";s:3:"ᇓ";s:3:"ㅬ";s:3:"ᇗ";s:3:"ㅭ";s:3:"ᇙ";s:3:"ㅮ";s:3:"ᄜ";s:3:"ㅯ";s:3:"ᇝ";s:3:"ㅰ";s:3:"ᇟ";s:3:"ㅱ";s:3:"ᄝ";s:3:"ㅲ";s:3:"ᄞ";s:3:"ㅳ";s:3:"ᄠ";s:3:"ㅴ";s:3:"ᄢ";s:3:"ㅵ";s:3:"ᄣ";s:3:"ㅶ";s:3:"ᄧ";s:3:"ㅷ";s:3:"ᄩ";s:3:"ㅸ";s:3:"ᄫ";s:3:"ㅹ";s:3:"ᄬ";s:3:"ㅺ";s:3:"ᄭ";s:3:"ㅻ";s:3:"ᄮ";s:3:"ㅼ";s:3:"ᄯ";s:3:"ㅽ";s:3:"ᄲ";s:3:"ㅾ";s:3:"ᄶ";s:3:"ㅿ";s:3:"ᅀ";s:3:"ㆀ";s:3:"ᅇ";s:3:"ㆁ";s:3:"ᅌ";s:3:"ㆂ";s:3:"ᇱ";s:3:"ㆃ";s:3:"ᇲ";s:3:"ㆄ";s:3:"ᅗ";s:3:"ㆅ";s:3:"ᅘ";s:3:"ㆆ";s:3:"ᅙ";s:3:"ㆇ";s:3:"ᆄ";s:3:"ㆈ";s:3:"ᆅ";s:3:"ㆉ";s:3:"ᆈ";s:3:"ㆊ";s:3:"ᆑ";s:3:"ㆋ";s:3:"ᆒ";s:3:"ㆌ";s:3:"ᆔ";s:3:"ㆍ";s:3:"ᆞ";s:3:"ㆎ";s:3:"ᆡ";s:3:"㆒";s:3:"一";s:3:"㆓";s:3:"二";s:3:"㆔";s:3:"三";s:3:"㆕";s:3:"四";s:3:"㆖";s:3:"上";s:3:"㆗";s:3:"中";s:3:"㆘";s:3:"下";s:3:"㆙";s:3:"甲";s:3:"㆚";s:3:"乙";s:3:"㆛";s:3:"丙";s:3:"㆜";s:3:"丁";s:3:"㆝";s:3:"天";s:3:"㆞";s:3:"地";s:3:"㆟";s:3:"人";s:3:"㈀";s:5:"(ᄀ)";s:3:"㈁";s:5:"(ᄂ)";s:3:"㈂";s:5:"(ᄃ)";s:3:"㈃";s:5:"(ᄅ)";s:3:"㈄";s:5:"(ᄆ)";s:3:"㈅";s:5:"(ᄇ)";s:3:"㈆";s:5:"(ᄉ)";s:3:"㈇";s:5:"(ᄋ)";s:3:"㈈";s:5:"(ᄌ)";s:3:"㈉";s:5:"(ᄎ)";s:3:"㈊";s:5:"(ᄏ)";s:3:"㈋";s:5:"(ᄐ)";s:3:"㈌";s:5:"(ᄑ)";s:3:"㈍";s:5:"(ᄒ)";s:3:"㈎";s:8:"(가)";s:3:"㈏";s:8:"(나)";s:3:"㈐";s:8:"(다)";s:3:"㈑";s:8:"(라)";s:3:"㈒";s:8:"(마)";s:3:"㈓";s:8:"(바)";s:3:"㈔";s:8:"(사)";s:3:"㈕";s:8:"(아)";s:3:"㈖";s:8:"(자)";s:3:"㈗";s:8:"(차)";s:3:"㈘";s:8:"(카)";s:3:"㈙";s:8:"(타)";s:3:"㈚";s:8:"(파)";s:3:"㈛";s:8:"(하)";s:3:"㈜";s:8:"(주)";s:3:"㈝";s:17:"(오전)";s:3:"㈞";s:14:"(오후)";s:3:"㈠";s:5:"(一)";s:3:"㈡";s:5:"(二)";s:3:"㈢";s:5:"(三)";s:3:"㈣";s:5:"(四)";s:3:"㈤";s:5:"(五)";s:3:"㈥";s:5:"(六)";s:3:"㈦";s:5:"(七)";s:3:"㈧";s:5:"(八)";s:3:"㈨";s:5:"(九)";s:3:"㈩";s:5:"(十)";s:3:"㈪";s:5:"(月)";s:3:"㈫";s:5:"(火)";s:3:"㈬";s:5:"(水)";s:3:"㈭";s:5:"(木)";s:3:"㈮";s:5:"(金)";s:3:"㈯";s:5:"(土)";s:3:"㈰";s:5:"(日)";s:3:"㈱";s:5:"(株)";s:3:"㈲";s:5:"(有)";s:3:"㈳";s:5:"(社)";s:3:"㈴";s:5:"(名)";s:3:"㈵";s:5:"(特)";s:3:"㈶";s:5:"(財)";s:3:"㈷";s:5:"(祝)";s:3:"㈸";s:5:"(労)";s:3:"㈹";s:5:"(代)";s:3:"㈺";s:5:"(呼)";s:3:"㈻";s:5:"(学)";s:3:"㈼";s:5:"(監)";s:3:"㈽";s:5:"(企)";s:3:"㈾";s:5:"(資)";s:3:"㈿";s:5:"(協)";s:3:"㉀";s:5:"(祭)";s:3:"㉁";s:5:"(休)";s:3:"㉂";s:5:"(自)";s:3:"㉃";s:5:"(至)";s:3:"㉄";s:3:"問";s:3:"㉅";s:3:"幼";s:3:"㉆";s:3:"文";s:3:"㉇";s:3:"箏";s:3:"㉐";s:3:"PTE";s:3:"㉑";s:2:"21";s:3:"㉒";s:2:"22";s:3:"㉓";s:2:"23";s:3:"㉔";s:2:"24";s:3:"㉕";s:2:"25";s:3:"㉖";s:2:"26";s:3:"㉗";s:2:"27";s:3:"㉘";s:2:"28";s:3:"㉙";s:2:"29";s:3:"㉚";s:2:"30";s:3:"㉛";s:2:"31";s:3:"㉜";s:2:"32";s:3:"㉝";s:2:"33";s:3:"㉞";s:2:"34";s:3:"㉟";s:2:"35";s:3:"㉠";s:3:"ᄀ";s:3:"㉡";s:3:"ᄂ";s:3:"㉢";s:3:"ᄃ";s:3:"㉣";s:3:"ᄅ";s:3:"㉤";s:3:"ᄆ";s:3:"㉥";s:3:"ᄇ";s:3:"㉦";s:3:"ᄉ";s:3:"㉧";s:3:"ᄋ";s:3:"㉨";s:3:"ᄌ";s:3:"㉩";s:3:"ᄎ";s:3:"㉪";s:3:"ᄏ";s:3:"㉫";s:3:"ᄐ";s:3:"㉬";s:3:"ᄑ";s:3:"㉭";s:3:"ᄒ";s:3:"㉮";s:6:"가";s:3:"㉯";s:6:"나";s:3:"㉰";s:6:"다";s:3:"㉱";s:6:"라";s:3:"㉲";s:6:"마";s:3:"㉳";s:6:"바";s:3:"㉴";s:6:"사";s:3:"㉵";s:6:"아";s:3:"㉶";s:6:"자";s:3:"㉷";s:6:"차";s:3:"㉸";s:6:"카";s:3:"㉹";s:6:"타";s:3:"㉺";s:6:"파";s:3:"㉻";s:6:"하";s:3:"㉼";s:15:"참고";s:3:"㉽";s:12:"주의";s:3:"㉾";s:6:"우";s:3:"㊀";s:3:"一";s:3:"㊁";s:3:"二";s:3:"㊂";s:3:"三";s:3:"㊃";s:3:"四";s:3:"㊄";s:3:"五";s:3:"㊅";s:3:"六";s:3:"㊆";s:3:"七";s:3:"㊇";s:3:"八";s:3:"㊈";s:3:"九";s:3:"㊉";s:3:"十";s:3:"㊊";s:3:"月";s:3:"㊋";s:3:"火";s:3:"㊌";s:3:"水";s:3:"㊍";s:3:"木";s:3:"㊎";s:3:"金";s:3:"㊏";s:3:"土";s:3:"㊐";s:3:"日";s:3:"㊑";s:3:"株";s:3:"㊒";s:3:"有";s:3:"㊓";s:3:"社";s:3:"㊔";s:3:"名";s:3:"㊕";s:3:"特";s:3:"㊖";s:3:"財";s:3:"㊗";s:3:"祝";s:3:"㊘";s:3:"労";s:3:"㊙";s:3:"秘";s:3:"㊚";s:3:"男";s:3:"㊛";s:3:"女";s:3:"㊜";s:3:"適";s:3:"㊝";s:3:"優";s:3:"㊞";s:3:"印";s:3:"㊟";s:3:"注";s:3:"㊠";s:3:"項";s:3:"㊡";s:3:"休";s:3:"㊢";s:3:"写";s:3:"㊣";s:3:"正";s:3:"㊤";s:3:"上";s:3:"㊥";s:3:"中";s:3:"㊦";s:3:"下";s:3:"㊧";s:3:"左";s:3:"㊨";s:3:"右";s:3:"㊩";s:3:"医";s:3:"㊪";s:3:"宗";s:3:"㊫";s:3:"学";s:3:"㊬";s:3:"監";s:3:"㊭";s:3:"企";s:3:"㊮";s:3:"資";s:3:"㊯";s:3:"協";s:3:"㊰";s:3:"夜";s:3:"㊱";s:2:"36";s:3:"㊲";s:2:"37";s:3:"㊳";s:2:"38";s:3:"㊴";s:2:"39";s:3:"㊵";s:2:"40";s:3:"㊶";s:2:"41";s:3:"㊷";s:2:"42";s:3:"㊸";s:2:"43";s:3:"㊹";s:2:"44";s:3:"㊺";s:2:"45";s:3:"㊻";s:2:"46";s:3:"㊼";s:2:"47";s:3:"㊽";s:2:"48";s:3:"㊾";s:2:"49";s:3:"㊿";s:2:"50";s:3:"㋀";s:4:"1月";s:3:"㋁";s:4:"2月";s:3:"㋂";s:4:"3月";s:3:"㋃";s:4:"4月";s:3:"㋄";s:4:"5月";s:3:"㋅";s:4:"6月";s:3:"㋆";s:4:"7月";s:3:"㋇";s:4:"8月";s:3:"㋈";s:4:"9月";s:3:"㋉";s:5:"10月";s:3:"㋊";s:5:"11月";s:3:"㋋";s:5:"12月";s:3:"㋌";s:2:"Hg";s:3:"㋍";s:3:"erg";s:3:"㋎";s:2:"eV";s:3:"㋏";s:3:"LTD";s:3:"㋐";s:3:"ア";s:3:"㋑";s:3:"イ";s:3:"㋒";s:3:"ウ";s:3:"㋓";s:3:"エ";s:3:"㋔";s:3:"オ";s:3:"㋕";s:3:"カ";s:3:"㋖";s:3:"キ";s:3:"㋗";s:3:"ク";s:3:"㋘";s:3:"ケ";s:3:"㋙";s:3:"コ";s:3:"㋚";s:3:"サ";s:3:"㋛";s:3:"シ";s:3:"㋜";s:3:"ス";s:3:"㋝";s:3:"セ";s:3:"㋞";s:3:"ソ";s:3:"㋟";s:3:"タ";s:3:"㋠";s:3:"チ";s:3:"㋡";s:3:"ツ";s:3:"㋢";s:3:"テ";s:3:"㋣";s:3:"ト";s:3:"㋤";s:3:"ナ";s:3:"㋥";s:3:"ニ";s:3:"㋦";s:3:"ヌ";s:3:"㋧";s:3:"ネ";s:3:"㋨";s:3:"ノ";s:3:"㋩";s:3:"ハ";s:3:"㋪";s:3:"ヒ";s:3:"㋫";s:3:"フ";s:3:"㋬";s:3:"ヘ";s:3:"㋭";s:3:"ホ";s:3:"㋮";s:3:"マ";s:3:"㋯";s:3:"ミ";s:3:"㋰";s:3:"ム";s:3:"㋱";s:3:"メ";s:3:"㋲";s:3:"モ";s:3:"㋳";s:3:"ヤ";s:3:"㋴";s:3:"ユ";s:3:"㋵";s:3:"ヨ";s:3:"㋶";s:3:"ラ";s:3:"㋷";s:3:"リ";s:3:"㋸";s:3:"ル";s:3:"㋹";s:3:"レ";s:3:"㋺";s:3:"ロ";s:3:"㋻";s:3:"ワ";s:3:"㋼";s:3:"ヰ";s:3:"㋽";s:3:"ヱ";s:3:"㋾";s:3:"ヲ";s:3:"㌀";s:15:"アパート";s:3:"㌁";s:12:"アルファ";s:3:"㌂";s:15:"アンペア";s:3:"㌃";s:9:"アール";s:3:"㌄";s:15:"イニング";s:3:"㌅";s:9:"インチ";s:3:"㌆";s:9:"ウォン";s:3:"㌇";s:18:"エスクード";s:3:"㌈";s:12:"エーカー";s:3:"㌉";s:9:"オンス";s:3:"㌊";s:9:"オーム";s:3:"㌋";s:9:"カイリ";s:3:"㌌";s:12:"カラット";s:3:"㌍";s:12:"カロリー";s:3:"㌎";s:12:"ガロン";s:3:"㌏";s:12:"ガンマ";s:3:"㌐";s:12:"ギガ";s:3:"㌑";s:12:"ギニー";s:3:"㌒";s:12:"キュリー";s:3:"㌓";s:18:"ギルダー";s:3:"㌔";s:6:"キロ";s:3:"㌕";s:18:"キログラム";s:3:"㌖";s:18:"キロメートル";s:3:"㌗";s:15:"キロワット";s:3:"㌘";s:12:"グラム";s:3:"㌙";s:18:"グラムトン";s:3:"㌚";s:18:"クルゼイロ";s:3:"㌛";s:12:"クローネ";s:3:"㌜";s:9:"ケース";s:3:"㌝";s:9:"コルナ";s:3:"㌞";s:12:"コーポ";s:3:"㌟";s:12:"サイクル";s:3:"㌠";s:15:"サンチーム";s:3:"㌡";s:15:"シリング";s:3:"㌢";s:9:"センチ";s:3:"㌣";s:9:"セント";s:3:"㌤";s:12:"ダース";s:3:"㌥";s:9:"デシ";s:3:"㌦";s:9:"ドル";s:3:"㌧";s:6:"トン";s:3:"㌨";s:6:"ナノ";s:3:"㌩";s:9:"ノット";s:3:"㌪";s:9:"ハイツ";s:3:"㌫";s:18:"パーセント";s:3:"㌬";s:12:"パーツ";s:3:"㌭";s:15:"バーレル";s:3:"㌮";s:18:"ピアストル";s:3:"㌯";s:12:"ピクル";s:3:"㌰";s:9:"ピコ";s:3:"㌱";s:9:"ビル";s:3:"㌲";s:18:"ファラッド";s:3:"㌳";s:12:"フィート";s:3:"㌴";s:18:"ブッシェル";s:3:"㌵";s:9:"フラン";s:3:"㌶";s:15:"ヘクタール";s:3:"㌷";s:9:"ペソ";s:3:"㌸";s:12:"ペニヒ";s:3:"㌹";s:9:"ヘルツ";s:3:"㌺";s:12:"ペンス";s:3:"㌻";s:15:"ページ";s:3:"㌼";s:12:"ベータ";s:3:"㌽";s:15:"ポイント";s:3:"㌾";s:12:"ボルト";s:3:"㌿";s:6:"ホン";s:3:"㍀";s:15:"ポンド";s:3:"㍁";s:9:"ホール";s:3:"㍂";s:9:"ホーン";s:3:"㍃";s:12:"マイクロ";s:3:"㍄";s:9:"マイル";s:3:"㍅";s:9:"マッハ";s:3:"㍆";s:9:"マルク";s:3:"㍇";s:15:"マンション";s:3:"㍈";s:12:"ミクロン";s:3:"㍉";s:6:"ミリ";s:3:"㍊";s:18:"ミリバール";s:3:"㍋";s:9:"メガ";s:3:"㍌";s:15:"メガトン";s:3:"㍍";s:12:"メートル";s:3:"㍎";s:12:"ヤード";s:3:"㍏";s:9:"ヤール";s:3:"㍐";s:9:"ユアン";s:3:"㍑";s:12:"リットル";s:3:"㍒";s:6:"リラ";s:3:"㍓";s:12:"ルピー";s:3:"㍔";s:15:"ルーブル";s:3:"㍕";s:6:"レム";s:3:"㍖";s:18:"レントゲン";s:3:"㍗";s:9:"ワット";s:3:"㍘";s:4:"0点";s:3:"㍙";s:4:"1点";s:3:"㍚";s:4:"2点";s:3:"㍛";s:4:"3点";s:3:"㍜";s:4:"4点";s:3:"㍝";s:4:"5点";s:3:"㍞";s:4:"6点";s:3:"㍟";s:4:"7点";s:3:"㍠";s:4:"8点";s:3:"㍡";s:4:"9点";s:3:"㍢";s:5:"10点";s:3:"㍣";s:5:"11点";s:3:"㍤";s:5:"12点";s:3:"㍥";s:5:"13点";s:3:"㍦";s:5:"14点";s:3:"㍧";s:5:"15点";s:3:"㍨";s:5:"16点";s:3:"㍩";s:5:"17点";s:3:"㍪";s:5:"18点";s:3:"㍫";s:5:"19点";s:3:"㍬";s:5:"20点";s:3:"㍭";s:5:"21点";s:3:"㍮";s:5:"22点";s:3:"㍯";s:5:"23点";s:3:"㍰";s:5:"24点";s:3:"㍱";s:3:"hPa";s:3:"㍲";s:2:"da";s:3:"㍳";s:2:"AU";s:3:"㍴";s:3:"bar";s:3:"㍵";s:2:"oV";s:3:"㍶";s:2:"pc";s:3:"㍷";s:2:"dm";s:3:"㍸";s:3:"dm2";s:3:"㍹";s:3:"dm3";s:3:"㍺";s:2:"IU";s:3:"㍻";s:6:"平成";s:3:"㍼";s:6:"昭和";s:3:"㍽";s:6:"大正";s:3:"㍾";s:6:"明治";s:3:"㍿";s:12:"株式会社";s:3:"㎀";s:2:"pA";s:3:"㎁";s:2:"nA";s:3:"㎂";s:3:"μA";s:3:"㎃";s:2:"mA";s:3:"㎄";s:2:"kA";s:3:"㎅";s:2:"KB";s:3:"㎆";s:2:"MB";s:3:"㎇";s:2:"GB";s:3:"㎈";s:3:"cal";s:3:"㎉";s:4:"kcal";s:3:"㎊";s:2:"pF";s:3:"㎋";s:2:"nF";s:3:"㎌";s:3:"μF";s:3:"㎍";s:3:"μg";s:3:"㎎";s:2:"mg";s:3:"㎏";s:2:"kg";s:3:"㎐";s:2:"Hz";s:3:"㎑";s:3:"kHz";s:3:"㎒";s:3:"MHz";s:3:"㎓";s:3:"GHz";s:3:"㎔";s:3:"THz";s:3:"㎕";s:3:"μl";s:3:"㎖";s:2:"ml";s:3:"㎗";s:2:"dl";s:3:"㎘";s:2:"kl";s:3:"㎙";s:2:"fm";s:3:"㎚";s:2:"nm";s:3:"㎛";s:3:"μm";s:3:"㎜";s:2:"mm";s:3:"㎝";s:2:"cm";s:3:"㎞";s:2:"km";s:3:"㎟";s:3:"mm2";s:3:"㎠";s:3:"cm2";s:3:"㎡";s:2:"m2";s:3:"㎢";s:3:"km2";s:3:"㎣";s:3:"mm3";s:3:"㎤";s:3:"cm3";s:3:"㎥";s:2:"m3";s:3:"㎦";s:3:"km3";s:3:"㎧";s:5:"m∕s";s:3:"㎨";s:6:"m∕s2";s:3:"㎩";s:2:"Pa";s:3:"㎪";s:3:"kPa";s:3:"㎫";s:3:"MPa";s:3:"㎬";s:3:"GPa";s:3:"㎭";s:3:"rad";s:3:"㎮";s:7:"rad∕s";s:3:"㎯";s:8:"rad∕s2";s:3:"㎰";s:2:"ps";s:3:"㎱";s:2:"ns";s:3:"㎲";s:3:"μs";s:3:"㎳";s:2:"ms";s:3:"㎴";s:2:"pV";s:3:"㎵";s:2:"nV";s:3:"㎶";s:3:"μV";s:3:"㎷";s:2:"mV";s:3:"㎸";s:2:"kV";s:3:"㎹";s:2:"MV";s:3:"㎺";s:2:"pW";s:3:"㎻";s:2:"nW";s:3:"㎼";s:3:"μW";s:3:"㎽";s:2:"mW";s:3:"㎾";s:2:"kW";s:3:"㎿";s:2:"MW";s:3:"㏀";s:3:"kΩ";s:3:"㏁";s:3:"MΩ";s:3:"㏂";s:4:"a.m.";s:3:"㏃";s:2:"Bq";s:3:"㏄";s:2:"cc";s:3:"㏅";s:2:"cd";s:3:"㏆";s:6:"C∕kg";s:3:"㏇";s:3:"Co.";s:3:"㏈";s:2:"dB";s:3:"㏉";s:2:"Gy";s:3:"㏊";s:2:"ha";s:3:"㏋";s:2:"HP";s:3:"㏌";s:2:"in";s:3:"㏍";s:2:"KK";s:3:"㏎";s:2:"KM";s:3:"㏏";s:2:"kt";s:3:"㏐";s:2:"lm";s:3:"㏑";s:2:"ln";s:3:"㏒";s:3:"log";s:3:"㏓";s:2:"lx";s:3:"㏔";s:2:"mb";s:3:"㏕";s:3:"mil";s:3:"㏖";s:3:"mol";s:3:"㏗";s:2:"PH";s:3:"㏘";s:4:"p.m.";s:3:"㏙";s:3:"PPM";s:3:"㏚";s:2:"PR";s:3:"㏛";s:2:"sr";s:3:"㏜";s:2:"Sv";s:3:"㏝";s:2:"Wb";s:3:"㏞";s:5:"V∕m";s:3:"㏟";s:5:"A∕m";s:3:"㏠";s:4:"1日";s:3:"㏡";s:4:"2日";s:3:"㏢";s:4:"3日";s:3:"㏣";s:4:"4日";s:3:"㏤";s:4:"5日";s:3:"㏥";s:4:"6日";s:3:"㏦";s:4:"7日";s:3:"㏧";s:4:"8日";s:3:"㏨";s:4:"9日";s:3:"㏩";s:5:"10日";s:3:"㏪";s:5:"11日";s:3:"㏫";s:5:"12日";s:3:"㏬";s:5:"13日";s:3:"㏭";s:5:"14日";s:3:"㏮";s:5:"15日";s:3:"㏯";s:5:"16日";s:3:"㏰";s:5:"17日";s:3:"㏱";s:5:"18日";s:3:"㏲";s:5:"19日";s:3:"㏳";s:5:"20日";s:3:"㏴";s:5:"21日";s:3:"㏵";s:5:"22日";s:3:"㏶";s:5:"23日";s:3:"㏷";s:5:"24日";s:3:"㏸";s:5:"25日";s:3:"㏹";s:5:"26日";s:3:"㏺";s:5:"27日";s:3:"㏻";s:5:"28日";s:3:"㏼";s:5:"29日";s:3:"㏽";s:5:"30日";s:3:"㏾";s:5:"31日";s:3:"㏿";s:3:"gal";s:3:"ꝰ";s:3:"ꝯ";s:3:"豈";s:3:"豈";s:3:"更";s:3:"更";s:3:"車";s:3:"車";s:3:"賈";s:3:"賈";s:3:"滑";s:3:"滑";s:3:"串";s:3:"串";s:3:"句";s:3:"句";s:3:"龜";s:3:"龜";s:3:"龜";s:3:"龜";s:3:"契";s:3:"契";s:3:"金";s:3:"金";s:3:"喇";s:3:"喇";s:3:"奈";s:3:"奈";s:3:"懶";s:3:"懶";s:3:"癩";s:3:"癩";s:3:"羅";s:3:"羅";s:3:"蘿";s:3:"蘿";s:3:"螺";s:3:"螺";s:3:"裸";s:3:"裸";s:3:"邏";s:3:"邏";s:3:"樂";s:3:"樂";s:3:"洛";s:3:"洛";s:3:"烙";s:3:"烙";s:3:"珞";s:3:"珞";s:3:"落";s:3:"落";s:3:"酪";s:3:"酪";s:3:"駱";s:3:"駱";s:3:"亂";s:3:"亂";s:3:"卵";s:3:"卵";s:3:"欄";s:3:"欄";s:3:"爛";s:3:"爛";s:3:"蘭";s:3:"蘭";s:3:"鸞";s:3:"鸞";s:3:"嵐";s:3:"嵐";s:3:"濫";s:3:"濫";s:3:"藍";s:3:"藍";s:3:"襤";s:3:"襤";s:3:"拉";s:3:"拉";s:3:"臘";s:3:"臘";s:3:"蠟";s:3:"蠟";s:3:"廊";s:3:"廊";s:3:"朗";s:3:"朗";s:3:"浪";s:3:"浪";s:3:"狼";s:3:"狼";s:3:"郎";s:3:"郎";s:3:"來";s:3:"來";s:3:"冷";s:3:"冷";s:3:"勞";s:3:"勞";s:3:"擄";s:3:"擄";s:3:"櫓";s:3:"櫓";s:3:"爐";s:3:"爐";s:3:"盧";s:3:"盧";s:3:"老";s:3:"老";s:3:"蘆";s:3:"蘆";s:3:"虜";s:3:"虜";s:3:"路";s:3:"路";s:3:"露";s:3:"露";s:3:"魯";s:3:"魯";s:3:"鷺";s:3:"鷺";s:3:"碌";s:3:"碌";s:3:"祿";s:3:"祿";s:3:"綠";s:3:"綠";s:3:"菉";s:3:"菉";s:3:"錄";s:3:"錄";s:3:"鹿";s:3:"鹿";s:3:"論";s:3:"論";s:3:"壟";s:3:"壟";s:3:"弄";s:3:"弄";s:3:"籠";s:3:"籠";s:3:"聾";s:3:"聾";s:3:"牢";s:3:"牢";s:3:"磊";s:3:"磊";s:3:"賂";s:3:"賂";s:3:"雷";s:3:"雷";s:3:"壘";s:3:"壘";s:3:"屢";s:3:"屢";s:3:"樓";s:3:"樓";s:3:"淚";s:3:"淚";s:3:"漏";s:3:"漏";s:3:"累";s:3:"累";s:3:"縷";s:3:"縷";s:3:"陋";s:3:"陋";s:3:"勒";s:3:"勒";s:3:"肋";s:3:"肋";s:3:"凜";s:3:"凜";s:3:"凌";s:3:"凌";s:3:"稜";s:3:"稜";s:3:"綾";s:3:"綾";s:3:"菱";s:3:"菱";s:3:"陵";s:3:"陵";s:3:"讀";s:3:"讀";s:3:"拏";s:3:"拏";s:3:"樂";s:3:"樂";s:3:"諾";s:3:"諾";s:3:"丹";s:3:"丹";s:3:"寧";s:3:"寧";s:3:"怒";s:3:"怒";s:3:"率";s:3:"率";s:3:"異";s:3:"異";s:3:"北";s:3:"北";s:3:"磻";s:3:"磻";s:3:"便";s:3:"便";s:3:"復";s:3:"復";s:3:"不";s:3:"不";s:3:"泌";s:3:"泌";s:3:"數";s:3:"數";s:3:"索";s:3:"索";s:3:"參";s:3:"參";s:3:"塞";s:3:"塞";s:3:"省";s:3:"省";s:3:"葉";s:3:"葉";s:3:"說";s:3:"說";s:3:"殺";s:3:"殺";s:3:"辰";s:3:"辰";s:3:"沈";s:3:"沈";s:3:"拾";s:3:"拾";s:3:"若";s:3:"若";s:3:"掠";s:3:"掠";s:3:"略";s:3:"略";s:3:"亮";s:3:"亮";s:3:"兩";s:3:"兩";s:3:"凉";s:3:"凉";s:3:"梁";s:3:"梁";s:3:"糧";s:3:"糧";s:3:"良";s:3:"良";s:3:"諒";s:3:"諒";s:3:"量";s:3:"量";s:3:"勵";s:3:"勵";s:3:"呂";s:3:"呂";s:3:"女";s:3:"女";s:3:"廬";s:3:"廬";s:3:"旅";s:3:"旅";s:3:"濾";s:3:"濾";s:3:"礪";s:3:"礪";s:3:"閭";s:3:"閭";s:3:"驪";s:3:"驪";s:3:"麗";s:3:"麗";s:3:"黎";s:3:"黎";s:3:"力";s:3:"力";s:3:"曆";s:3:"曆";s:3:"歷";s:3:"歷";s:3:"轢";s:3:"轢";s:3:"年";s:3:"年";s:3:"憐";s:3:"憐";s:3:"戀";s:3:"戀";s:3:"撚";s:3:"撚";s:3:"漣";s:3:"漣";s:3:"煉";s:3:"煉";s:3:"璉";s:3:"璉";s:3:"秊";s:3:"秊";s:3:"練";s:3:"練";s:3:"聯";s:3:"聯";s:3:"輦";s:3:"輦";s:3:"蓮";s:3:"蓮";s:3:"連";s:3:"連";s:3:"鍊";s:3:"鍊";s:3:"列";s:3:"列";s:3:"劣";s:3:"劣";s:3:"咽";s:3:"咽";s:3:"烈";s:3:"烈";s:3:"裂";s:3:"裂";s:3:"說";s:3:"說";s:3:"廉";s:3:"廉";s:3:"念";s:3:"念";s:3:"捻";s:3:"捻";s:3:"殮";s:3:"殮";s:3:"簾";s:3:"簾";s:3:"獵";s:3:"獵";s:3:"令";s:3:"令";s:3:"囹";s:3:"囹";s:3:"寧";s:3:"寧";s:3:"嶺";s:3:"嶺";s:3:"怜";s:3:"怜";s:3:"玲";s:3:"玲";s:3:"瑩";s:3:"瑩";s:3:"羚";s:3:"羚";s:3:"聆";s:3:"聆";s:3:"鈴";s:3:"鈴";s:3:"零";s:3:"零";s:3:"靈";s:3:"靈";s:3:"領";s:3:"領";s:3:"例";s:3:"例";s:3:"禮";s:3:"禮";s:3:"醴";s:3:"醴";s:3:"隸";s:3:"隸";s:3:"惡";s:3:"惡";s:3:"了";s:3:"了";s:3:"僚";s:3:"僚";s:3:"寮";s:3:"寮";s:3:"尿";s:3:"尿";s:3:"料";s:3:"料";s:3:"樂";s:3:"樂";s:3:"燎";s:3:"燎";s:3:"療";s:3:"療";s:3:"蓼";s:3:"蓼";s:3:"遼";s:3:"遼";s:3:"龍";s:3:"龍";s:3:"暈";s:3:"暈";s:3:"阮";s:3:"阮";s:3:"劉";s:3:"劉";s:3:"杻";s:3:"杻";s:3:"柳";s:3:"柳";s:3:"流";s:3:"流";s:3:"溜";s:3:"溜";s:3:"琉";s:3:"琉";s:3:"留";s:3:"留";s:3:"硫";s:3:"硫";s:3:"紐";s:3:"紐";s:3:"類";s:3:"類";s:3:"六";s:3:"六";s:3:"戮";s:3:"戮";s:3:"陸";s:3:"陸";s:3:"倫";s:3:"倫";s:3:"崙";s:3:"崙";s:3:"淪";s:3:"淪";s:3:"輪";s:3:"輪";s:3:"律";s:3:"律";s:3:"慄";s:3:"慄";s:3:"栗";s:3:"栗";s:3:"率";s:3:"率";s:3:"隆";s:3:"隆";s:3:"利";s:3:"利";s:3:"吏";s:3:"吏";s:3:"履";s:3:"履";s:3:"易";s:3:"易";s:3:"李";s:3:"李";s:3:"梨";s:3:"梨";s:3:"泥";s:3:"泥";s:3:"理";s:3:"理";s:3:"痢";s:3:"痢";s:3:"罹";s:3:"罹";s:3:"裏";s:3:"裏";s:3:"裡";s:3:"裡";s:3:"里";s:3:"里";s:3:"離";s:3:"離";s:3:"匿";s:3:"匿";s:3:"溺";s:3:"溺";s:3:"吝";s:3:"吝";s:3:"燐";s:3:"燐";s:3:"璘";s:3:"璘";s:3:"藺";s:3:"藺";s:3:"隣";s:3:"隣";s:3:"鱗";s:3:"鱗";s:3:"麟";s:3:"麟";s:3:"林";s:3:"林";s:3:"淋";s:3:"淋";s:3:"臨";s:3:"臨";s:3:"立";s:3:"立";s:3:"笠";s:3:"笠";s:3:"粒";s:3:"粒";s:3:"狀";s:3:"狀";s:3:"炙";s:3:"炙";s:3:"識";s:3:"識";s:3:"什";s:3:"什";s:3:"茶";s:3:"茶";s:3:"刺";s:3:"刺";s:3:"切";s:3:"切";s:3:"度";s:3:"度";s:3:"拓";s:3:"拓";s:3:"糖";s:3:"糖";s:3:"宅";s:3:"宅";s:3:"洞";s:3:"洞";s:3:"暴";s:3:"暴";s:3:"輻";s:3:"輻";s:3:"行";s:3:"行";s:3:"降";s:3:"降";s:3:"見";s:3:"見";s:3:"廓";s:3:"廓";s:3:"兀";s:3:"兀";s:3:"嗀";s:3:"嗀";s:3:"塚";s:3:"塚";s:3:"晴";s:3:"晴";s:3:"凞";s:3:"凞";s:3:"猪";s:3:"猪";s:3:"益";s:3:"益";s:3:"礼";s:3:"礼";s:3:"神";s:3:"神";s:3:"祥";s:3:"祥";s:3:"福";s:3:"福";s:3:"靖";s:3:"靖";s:3:"精";s:3:"精";s:3:"羽";s:3:"羽";s:3:"蘒";s:3:"蘒";s:3:"諸";s:3:"諸";s:3:"逸";s:3:"逸";s:3:"都";s:3:"都";s:3:"飯";s:3:"飯";s:3:"飼";s:3:"飼";s:3:"館";s:3:"館";s:3:"鶴";s:3:"鶴";s:3:"侮";s:3:"侮";s:3:"僧";s:3:"僧";s:3:"免";s:3:"免";s:3:"勉";s:3:"勉";s:3:"勤";s:3:"勤";s:3:"卑";s:3:"卑";s:3:"喝";s:3:"喝";s:3:"嘆";s:3:"嘆";s:3:"器";s:3:"器";s:3:"塀";s:3:"塀";s:3:"墨";s:3:"墨";s:3:"層";s:3:"層";s:3:"屮";s:3:"屮";s:3:"悔";s:3:"悔";s:3:"慨";s:3:"慨";s:3:"憎";s:3:"憎";s:3:"懲";s:3:"懲";s:3:"敏";s:3:"敏";s:3:"既";s:3:"既";s:3:"暑";s:3:"暑";s:3:"梅";s:3:"梅";s:3:"海";s:3:"海";s:3:"渚";s:3:"渚";s:3:"漢";s:3:"漢";s:3:"煮";s:3:"煮";s:3:"爫";s:3:"爫";s:3:"琢";s:3:"琢";s:3:"碑";s:3:"碑";s:3:"社";s:3:"社";s:3:"祉";s:3:"祉";s:3:"祈";s:3:"祈";s:3:"祐";s:3:"祐";s:3:"祖";s:3:"祖";s:3:"祝";s:3:"祝";s:3:"禍";s:3:"禍";s:3:"禎";s:3:"禎";s:3:"穀";s:3:"穀";s:3:"突";s:3:"突";s:3:"節";s:3:"節";s:3:"練";s:3:"練";s:3:"縉";s:3:"縉";s:3:"繁";s:3:"繁";s:3:"署";s:3:"署";s:3:"者";s:3:"者";s:3:"臭";s:3:"臭";s:3:"艹";s:3:"艹";s:3:"艹";s:3:"艹";s:3:"著";s:3:"著";s:3:"褐";s:3:"褐";s:3:"視";s:3:"視";s:3:"謁";s:3:"謁";s:3:"謹";s:3:"謹";s:3:"賓";s:3:"賓";s:3:"贈";s:3:"贈";s:3:"辶";s:3:"辶";s:3:"逸";s:3:"逸";s:3:"難";s:3:"難";s:3:"響";s:3:"響";s:3:"頻";s:3:"頻";s:3:"恵";s:3:"恵";s:3:"𤋮";s:4:"𤋮";s:3:"舘";s:3:"舘";s:3:"並";s:3:"並";s:3:"况";s:3:"况";s:3:"全";s:3:"全";s:3:"侀";s:3:"侀";s:3:"充";s:3:"充";s:3:"冀";s:3:"冀";s:3:"勇";s:3:"勇";s:3:"勺";s:3:"勺";s:3:"喝";s:3:"喝";s:3:"啕";s:3:"啕";s:3:"喙";s:3:"喙";s:3:"嗢";s:3:"嗢";s:3:"塚";s:3:"塚";s:3:"墳";s:3:"墳";s:3:"奄";s:3:"奄";s:3:"奔";s:3:"奔";s:3:"婢";s:3:"婢";s:3:"嬨";s:3:"嬨";s:3:"廒";s:3:"廒";s:3:"廙";s:3:"廙";s:3:"彩";s:3:"彩";s:3:"徭";s:3:"徭";s:3:"惘";s:3:"惘";s:3:"慎";s:3:"慎";s:3:"愈";s:3:"愈";s:3:"憎";s:3:"憎";s:3:"慠";s:3:"慠";s:3:"懲";s:3:"懲";s:3:"戴";s:3:"戴";s:3:"揄";s:3:"揄";s:3:"搜";s:3:"搜";s:3:"摒";s:3:"摒";s:3:"敖";s:3:"敖";s:3:"晴";s:3:"晴";s:3:"朗";s:3:"朗";s:3:"望";s:3:"望";s:3:"杖";s:3:"杖";s:3:"歹";s:3:"歹";s:3:"殺";s:3:"殺";s:3:"流";s:3:"流";s:3:"滛";s:3:"滛";s:3:"滋";s:3:"滋";s:3:"漢";s:3:"漢";s:3:"瀞";s:3:"瀞";s:3:"煮";s:3:"煮";s:3:"瞧";s:3:"瞧";s:3:"爵";s:3:"爵";s:3:"犯";s:3:"犯";s:3:"猪";s:3:"猪";s:3:"瑱";s:3:"瑱";s:3:"甆";s:3:"甆";s:3:"画";s:3:"画";s:3:"瘝";s:3:"瘝";s:3:"瘟";s:3:"瘟";s:3:"益";s:3:"益";s:3:"盛";s:3:"盛";s:3:"直";s:3:"直";s:3:"睊";s:3:"睊";s:3:"着";s:3:"着";s:3:"磌";s:3:"磌";s:3:"窱";s:3:"窱";s:3:"節";s:3:"節";s:3:"类";s:3:"类";s:3:"絛";s:3:"絛";s:3:"練";s:3:"練";s:3:"缾";s:3:"缾";s:3:"者";s:3:"者";s:3:"荒";s:3:"荒";s:3:"華";s:3:"華";s:3:"蝹";s:3:"蝹";s:3:"襁";s:3:"襁";s:3:"覆";s:3:"覆";s:3:"視";s:3:"視";s:3:"調";s:3:"調";s:3:"諸";s:3:"諸";s:3:"請";s:3:"請";s:3:"謁";s:3:"謁";s:3:"諾";s:3:"諾";s:3:"諭";s:3:"諭";s:3:"謹";s:3:"謹";s:3:"變";s:3:"變";s:3:"贈";s:3:"贈";s:3:"輸";s:3:"輸";s:3:"遲";s:3:"遲";s:3:"醙";s:3:"醙";s:3:"鉶";s:3:"鉶";s:3:"陼";s:3:"陼";s:3:"難";s:3:"難";s:3:"靖";s:3:"靖";s:3:"韛";s:3:"韛";s:3:"響";s:3:"響";s:3:"頋";s:3:"頋";s:3:"頻";s:3:"頻";s:3:"鬒";s:3:"鬒";s:3:"龜";s:3:"龜";s:3:"𢡊";s:4:"𢡊";s:3:"𢡄";s:4:"𢡄";s:3:"𣏕";s:4:"𣏕";s:3:"㮝";s:3:"㮝";s:3:"䀘";s:3:"䀘";s:3:"䀹";s:3:"䀹";s:3:"𥉉";s:4:"𥉉";s:3:"𥳐";s:4:"𥳐";s:3:"𧻓";s:4:"𧻓";s:3:"齃";s:3:"齃";s:3:"龎";s:3:"龎";s:3:"ff";s:2:"ff";s:3:"fi";s:2:"fi";s:3:"fl";s:2:"fl";s:3:"ffi";s:3:"ffi";s:3:"ffl";s:3:"ffl";s:3:"ſt";s:2:"st";s:3:"st";s:2:"st";s:3:"ﬓ";s:4:"մն";s:3:"ﬔ";s:4:"մե";s:3:"ﬕ";s:4:"մի";s:3:"ﬖ";s:4:"վն";s:3:"ﬗ";s:4:"մխ";s:3:"יִ";s:4:"יִ";s:3:"ײַ";s:4:"ײַ";s:3:"ﬠ";s:2:"ע";s:3:"ﬡ";s:2:"א";s:3:"ﬢ";s:2:"ד";s:3:"ﬣ";s:2:"ה";s:3:"ﬤ";s:2:"כ";s:3:"ﬥ";s:2:"ל";s:3:"ﬦ";s:2:"ם";s:3:"ﬧ";s:2:"ר";s:3:"ﬨ";s:2:"ת";s:3:"﬩";s:1:"+";s:3:"שׁ";s:4:"שׁ";s:3:"שׂ";s:4:"שׂ";s:3:"שּׁ";s:6:"שּׁ";s:3:"שּׂ";s:6:"שּׂ";s:3:"אַ";s:4:"אַ";s:3:"אָ";s:4:"אָ";s:3:"אּ";s:4:"אּ";s:3:"בּ";s:4:"בּ";s:3:"גּ";s:4:"גּ";s:3:"דּ";s:4:"דּ";s:3:"הּ";s:4:"הּ";s:3:"וּ";s:4:"וּ";s:3:"זּ";s:4:"זּ";s:3:"טּ";s:4:"טּ";s:3:"יּ";s:4:"יּ";s:3:"ךּ";s:4:"ךּ";s:3:"כּ";s:4:"כּ";s:3:"לּ";s:4:"לּ";s:3:"מּ";s:4:"מּ";s:3:"נּ";s:4:"נּ";s:3:"סּ";s:4:"סּ";s:3:"ףּ";s:4:"ףּ";s:3:"פּ";s:4:"פּ";s:3:"צּ";s:4:"צּ";s:3:"קּ";s:4:"קּ";s:3:"רּ";s:4:"רּ";s:3:"שּ";s:4:"שּ";s:3:"תּ";s:4:"תּ";s:3:"וֹ";s:4:"וֹ";s:3:"בֿ";s:4:"בֿ";s:3:"כֿ";s:4:"כֿ";s:3:"פֿ";s:4:"פֿ";s:3:"ﭏ";s:4:"אל";s:3:"ﭐ";s:2:"ٱ";s:3:"ﭑ";s:2:"ٱ";s:3:"ﭒ";s:2:"ٻ";s:3:"ﭓ";s:2:"ٻ";s:3:"ﭔ";s:2:"ٻ";s:3:"ﭕ";s:2:"ٻ";s:3:"ﭖ";s:2:"پ";s:3:"ﭗ";s:2:"پ";s:3:"ﭘ";s:2:"پ";s:3:"ﭙ";s:2:"پ";s:3:"ﭚ";s:2:"ڀ";s:3:"ﭛ";s:2:"ڀ";s:3:"ﭜ";s:2:"ڀ";s:3:"ﭝ";s:2:"ڀ";s:3:"ﭞ";s:2:"ٺ";s:3:"ﭟ";s:2:"ٺ";s:3:"ﭠ";s:2:"ٺ";s:3:"ﭡ";s:2:"ٺ";s:3:"ﭢ";s:2:"ٿ";s:3:"ﭣ";s:2:"ٿ";s:3:"ﭤ";s:2:"ٿ";s:3:"ﭥ";s:2:"ٿ";s:3:"ﭦ";s:2:"ٹ";s:3:"ﭧ";s:2:"ٹ";s:3:"ﭨ";s:2:"ٹ";s:3:"ﭩ";s:2:"ٹ";s:3:"ﭪ";s:2:"ڤ";s:3:"ﭫ";s:2:"ڤ";s:3:"ﭬ";s:2:"ڤ";s:3:"ﭭ";s:2:"ڤ";s:3:"ﭮ";s:2:"ڦ";s:3:"ﭯ";s:2:"ڦ";s:3:"ﭰ";s:2:"ڦ";s:3:"ﭱ";s:2:"ڦ";s:3:"ﭲ";s:2:"ڄ";s:3:"ﭳ";s:2:"ڄ";s:3:"ﭴ";s:2:"ڄ";s:3:"ﭵ";s:2:"ڄ";s:3:"ﭶ";s:2:"ڃ";s:3:"ﭷ";s:2:"ڃ";s:3:"ﭸ";s:2:"ڃ";s:3:"ﭹ";s:2:"ڃ";s:3:"ﭺ";s:2:"چ";s:3:"ﭻ";s:2:"چ";s:3:"ﭼ";s:2:"چ";s:3:"ﭽ";s:2:"چ";s:3:"ﭾ";s:2:"ڇ";s:3:"ﭿ";s:2:"ڇ";s:3:"ﮀ";s:2:"ڇ";s:3:"ﮁ";s:2:"ڇ";s:3:"ﮂ";s:2:"ڍ";s:3:"ﮃ";s:2:"ڍ";s:3:"ﮄ";s:2:"ڌ";s:3:"ﮅ";s:2:"ڌ";s:3:"ﮆ";s:2:"ڎ";s:3:"ﮇ";s:2:"ڎ";s:3:"ﮈ";s:2:"ڈ";s:3:"ﮉ";s:2:"ڈ";s:3:"ﮊ";s:2:"ژ";s:3:"ﮋ";s:2:"ژ";s:3:"ﮌ";s:2:"ڑ";s:3:"ﮍ";s:2:"ڑ";s:3:"ﮎ";s:2:"ک";s:3:"ﮏ";s:2:"ک";s:3:"ﮐ";s:2:"ک";s:3:"ﮑ";s:2:"ک";s:3:"ﮒ";s:2:"گ";s:3:"ﮓ";s:2:"گ";s:3:"ﮔ";s:2:"گ";s:3:"ﮕ";s:2:"گ";s:3:"ﮖ";s:2:"ڳ";s:3:"ﮗ";s:2:"ڳ";s:3:"ﮘ";s:2:"ڳ";s:3:"ﮙ";s:2:"ڳ";s:3:"ﮚ";s:2:"ڱ";s:3:"ﮛ";s:2:"ڱ";s:3:"ﮜ";s:2:"ڱ";s:3:"ﮝ";s:2:"ڱ";s:3:"ﮞ";s:2:"ں";s:3:"ﮟ";s:2:"ں";s:3:"ﮠ";s:2:"ڻ";s:3:"ﮡ";s:2:"ڻ";s:3:"ﮢ";s:2:"ڻ";s:3:"ﮣ";s:2:"ڻ";s:3:"ﮤ";s:4:"ۀ";s:3:"ﮥ";s:4:"ۀ";s:3:"ﮦ";s:2:"ہ";s:3:"ﮧ";s:2:"ہ";s:3:"ﮨ";s:2:"ہ";s:3:"ﮩ";s:2:"ہ";s:3:"ﮪ";s:2:"ھ";s:3:"ﮫ";s:2:"ھ";s:3:"ﮬ";s:2:"ھ";s:3:"ﮭ";s:2:"ھ";s:3:"ﮮ";s:2:"ے";s:3:"ﮯ";s:2:"ے";s:3:"ﮰ";s:4:"ۓ";s:3:"ﮱ";s:4:"ۓ";s:3:"ﯓ";s:2:"ڭ";s:3:"ﯔ";s:2:"ڭ";s:3:"ﯕ";s:2:"ڭ";s:3:"ﯖ";s:2:"ڭ";s:3:"ﯗ";s:2:"ۇ";s:3:"ﯘ";s:2:"ۇ";s:3:"ﯙ";s:2:"ۆ";s:3:"ﯚ";s:2:"ۆ";s:3:"ﯛ";s:2:"ۈ";s:3:"ﯜ";s:2:"ۈ";s:3:"ﯝ";s:4:"ۇٴ";s:3:"ﯞ";s:2:"ۋ";s:3:"ﯟ";s:2:"ۋ";s:3:"ﯠ";s:2:"ۅ";s:3:"ﯡ";s:2:"ۅ";s:3:"ﯢ";s:2:"ۉ";s:3:"ﯣ";s:2:"ۉ";s:3:"ﯤ";s:2:"ې";s:3:"ﯥ";s:2:"ې";s:3:"ﯦ";s:2:"ې";s:3:"ﯧ";s:2:"ې";s:3:"ﯨ";s:2:"ى";s:3:"ﯩ";s:2:"ى";s:3:"ﯪ";s:6:"ئا";s:3:"ﯫ";s:6:"ئا";s:3:"ﯬ";s:6:"ئە";s:3:"ﯭ";s:6:"ئە";s:3:"ﯮ";s:6:"ئو";s:3:"ﯯ";s:6:"ئو";s:3:"ﯰ";s:6:"ئۇ";s:3:"ﯱ";s:6:"ئۇ";s:3:"ﯲ";s:6:"ئۆ";s:3:"ﯳ";s:6:"ئۆ";s:3:"ﯴ";s:6:"ئۈ";s:3:"ﯵ";s:6:"ئۈ";s:3:"ﯶ";s:6:"ئې";s:3:"ﯷ";s:6:"ئې";s:3:"ﯸ";s:6:"ئې";s:3:"ﯹ";s:6:"ئى";s:3:"ﯺ";s:6:"ئى";s:3:"ﯻ";s:6:"ئى";s:3:"ﯼ";s:2:"ی";s:3:"ﯽ";s:2:"ی";s:3:"ﯾ";s:2:"ی";s:3:"ﯿ";s:2:"ی";s:3:"ﰀ";s:6:"ئج";s:3:"ﰁ";s:6:"ئح";s:3:"ﰂ";s:6:"ئم";s:3:"ﰃ";s:6:"ئى";s:3:"ﰄ";s:6:"ئي";s:3:"ﰅ";s:4:"بج";s:3:"ﰆ";s:4:"بح";s:3:"ﰇ";s:4:"بخ";s:3:"ﰈ";s:4:"بم";s:3:"ﰉ";s:4:"بى";s:3:"ﰊ";s:4:"بي";s:3:"ﰋ";s:4:"تج";s:3:"ﰌ";s:4:"تح";s:3:"ﰍ";s:4:"تخ";s:3:"ﰎ";s:4:"تم";s:3:"ﰏ";s:4:"تى";s:3:"ﰐ";s:4:"تي";s:3:"ﰑ";s:4:"ثج";s:3:"ﰒ";s:4:"ثم";s:3:"ﰓ";s:4:"ثى";s:3:"ﰔ";s:4:"ثي";s:3:"ﰕ";s:4:"جح";s:3:"ﰖ";s:4:"جم";s:3:"ﰗ";s:4:"حج";s:3:"ﰘ";s:4:"حم";s:3:"ﰙ";s:4:"خج";s:3:"ﰚ";s:4:"خح";s:3:"ﰛ";s:4:"خم";s:3:"ﰜ";s:4:"سج";s:3:"ﰝ";s:4:"سح";s:3:"ﰞ";s:4:"سخ";s:3:"ﰟ";s:4:"سم";s:3:"ﰠ";s:4:"صح";s:3:"ﰡ";s:4:"صم";s:3:"ﰢ";s:4:"ضج";s:3:"ﰣ";s:4:"ضح";s:3:"ﰤ";s:4:"ضخ";s:3:"ﰥ";s:4:"ضم";s:3:"ﰦ";s:4:"طح";s:3:"ﰧ";s:4:"طم";s:3:"ﰨ";s:4:"ظم";s:3:"ﰩ";s:4:"عج";s:3:"ﰪ";s:4:"عم";s:3:"ﰫ";s:4:"غج";s:3:"ﰬ";s:4:"غم";s:3:"ﰭ";s:4:"فج";s:3:"ﰮ";s:4:"فح";s:3:"ﰯ";s:4:"فخ";s:3:"ﰰ";s:4:"فم";s:3:"ﰱ";s:4:"فى";s:3:"ﰲ";s:4:"في";s:3:"ﰳ";s:4:"قح";s:3:"ﰴ";s:4:"قم";s:3:"ﰵ";s:4:"قى";s:3:"ﰶ";s:4:"قي";s:3:"ﰷ";s:4:"كا";s:3:"ﰸ";s:4:"كج";s:3:"ﰹ";s:4:"كح";s:3:"ﰺ";s:4:"كخ";s:3:"ﰻ";s:4:"كل";s:3:"ﰼ";s:4:"كم";s:3:"ﰽ";s:4:"كى";s:3:"ﰾ";s:4:"كي";s:3:"ﰿ";s:4:"لج";s:3:"ﱀ";s:4:"لح";s:3:"ﱁ";s:4:"لخ";s:3:"ﱂ";s:4:"لم";s:3:"ﱃ";s:4:"لى";s:3:"ﱄ";s:4:"لي";s:3:"ﱅ";s:4:"مج";s:3:"ﱆ";s:4:"مح";s:3:"ﱇ";s:4:"مخ";s:3:"ﱈ";s:4:"مم";s:3:"ﱉ";s:4:"مى";s:3:"ﱊ";s:4:"مي";s:3:"ﱋ";s:4:"نج";s:3:"ﱌ";s:4:"نح";s:3:"ﱍ";s:4:"نخ";s:3:"ﱎ";s:4:"نم";s:3:"ﱏ";s:4:"نى";s:3:"ﱐ";s:4:"ني";s:3:"ﱑ";s:4:"هج";s:3:"ﱒ";s:4:"هم";s:3:"ﱓ";s:4:"هى";s:3:"ﱔ";s:4:"هي";s:3:"ﱕ";s:4:"يج";s:3:"ﱖ";s:4:"يح";s:3:"ﱗ";s:4:"يخ";s:3:"ﱘ";s:4:"يم";s:3:"ﱙ";s:4:"يى";s:3:"ﱚ";s:4:"يي";s:3:"ﱛ";s:4:"ذٰ";s:3:"ﱜ";s:4:"رٰ";s:3:"ﱝ";s:4:"ىٰ";s:3:"ﱞ";s:5:" ٌّ";s:3:"ﱟ";s:5:" ٍّ";s:3:"ﱠ";s:5:" َّ";s:3:"ﱡ";s:5:" ُّ";s:3:"ﱢ";s:5:" ِّ";s:3:"ﱣ";s:5:" ّٰ";s:3:"ﱤ";s:6:"ئر";s:3:"ﱥ";s:6:"ئز";s:3:"ﱦ";s:6:"ئم";s:3:"ﱧ";s:6:"ئن";s:3:"ﱨ";s:6:"ئى";s:3:"ﱩ";s:6:"ئي";s:3:"ﱪ";s:4:"بر";s:3:"ﱫ";s:4:"بز";s:3:"ﱬ";s:4:"بم";s:3:"ﱭ";s:4:"بن";s:3:"ﱮ";s:4:"بى";s:3:"ﱯ";s:4:"بي";s:3:"ﱰ";s:4:"تر";s:3:"ﱱ";s:4:"تز";s:3:"ﱲ";s:4:"تم";s:3:"ﱳ";s:4:"تن";s:3:"ﱴ";s:4:"تى";s:3:"ﱵ";s:4:"تي";s:3:"ﱶ";s:4:"ثر";s:3:"ﱷ";s:4:"ثز";s:3:"ﱸ";s:4:"ثم";s:3:"ﱹ";s:4:"ثن";s:3:"ﱺ";s:4:"ثى";s:3:"ﱻ";s:4:"ثي";s:3:"ﱼ";s:4:"فى";s:3:"ﱽ";s:4:"في";s:3:"ﱾ";s:4:"قى";s:3:"ﱿ";s:4:"قي";s:3:"ﲀ";s:4:"كا";s:3:"ﲁ";s:4:"كل";s:3:"ﲂ";s:4:"كم";s:3:"ﲃ";s:4:"كى";s:3:"ﲄ";s:4:"كي";s:3:"ﲅ";s:4:"لم";s:3:"ﲆ";s:4:"لى";s:3:"ﲇ";s:4:"لي";s:3:"ﲈ";s:4:"ما";s:3:"ﲉ";s:4:"مم";s:3:"ﲊ";s:4:"نر";s:3:"ﲋ";s:4:"نز";s:3:"ﲌ";s:4:"نم";s:3:"ﲍ";s:4:"نن";s:3:"ﲎ";s:4:"نى";s:3:"ﲏ";s:4:"ني";s:3:"ﲐ";s:4:"ىٰ";s:3:"ﲑ";s:4:"ير";s:3:"ﲒ";s:4:"يز";s:3:"ﲓ";s:4:"يم";s:3:"ﲔ";s:4:"ين";s:3:"ﲕ";s:4:"يى";s:3:"ﲖ";s:4:"يي";s:3:"ﲗ";s:6:"ئج";s:3:"ﲘ";s:6:"ئح";s:3:"ﲙ";s:6:"ئخ";s:3:"ﲚ";s:6:"ئم";s:3:"ﲛ";s:6:"ئه";s:3:"ﲜ";s:4:"بج";s:3:"ﲝ";s:4:"بح";s:3:"ﲞ";s:4:"بخ";s:3:"ﲟ";s:4:"بم";s:3:"ﲠ";s:4:"به";s:3:"ﲡ";s:4:"تج";s:3:"ﲢ";s:4:"تح";s:3:"ﲣ";s:4:"تخ";s:3:"ﲤ";s:4:"تم";s:3:"ﲥ";s:4:"ته";s:3:"ﲦ";s:4:"ثم";s:3:"ﲧ";s:4:"جح";s:3:"ﲨ";s:4:"جم";s:3:"ﲩ";s:4:"حج";s:3:"ﲪ";s:4:"حم";s:3:"ﲫ";s:4:"خج";s:3:"ﲬ";s:4:"خم";s:3:"ﲭ";s:4:"سج";s:3:"ﲮ";s:4:"سح";s:3:"ﲯ";s:4:"سخ";s:3:"ﲰ";s:4:"سم";s:3:"ﲱ";s:4:"صح";s:3:"ﲲ";s:4:"صخ";s:3:"ﲳ";s:4:"صم";s:3:"ﲴ";s:4:"ضج";s:3:"ﲵ";s:4:"ضح";s:3:"ﲶ";s:4:"ضخ";s:3:"ﲷ";s:4:"ضم";s:3:"ﲸ";s:4:"طح";s:3:"ﲹ";s:4:"ظم";s:3:"ﲺ";s:4:"عج";s:3:"ﲻ";s:4:"عم";s:3:"ﲼ";s:4:"غج";s:3:"ﲽ";s:4:"غم";s:3:"ﲾ";s:4:"فج";s:3:"ﲿ";s:4:"فح";s:3:"ﳀ";s:4:"فخ";s:3:"ﳁ";s:4:"فم";s:3:"ﳂ";s:4:"قح";s:3:"ﳃ";s:4:"قم";s:3:"ﳄ";s:4:"كج";s:3:"ﳅ";s:4:"كح";s:3:"ﳆ";s:4:"كخ";s:3:"ﳇ";s:4:"كل";s:3:"ﳈ";s:4:"كم";s:3:"ﳉ";s:4:"لج";s:3:"ﳊ";s:4:"لح";s:3:"ﳋ";s:4:"لخ";s:3:"ﳌ";s:4:"لم";s:3:"ﳍ";s:4:"له";s:3:"ﳎ";s:4:"مج";s:3:"ﳏ";s:4:"مح";s:3:"ﳐ";s:4:"مخ";s:3:"ﳑ";s:4:"مم";s:3:"ﳒ";s:4:"نج";s:3:"ﳓ";s:4:"نح";s:3:"ﳔ";s:4:"نخ";s:3:"ﳕ";s:4:"نم";s:3:"ﳖ";s:4:"نه";s:3:"ﳗ";s:4:"هج";s:3:"ﳘ";s:4:"هم";s:3:"ﳙ";s:4:"هٰ";s:3:"ﳚ";s:4:"يج";s:3:"ﳛ";s:4:"يح";s:3:"ﳜ";s:4:"يخ";s:3:"ﳝ";s:4:"يم";s:3:"ﳞ";s:4:"يه";s:3:"ﳟ";s:6:"ئم";s:3:"ﳠ";s:6:"ئه";s:3:"ﳡ";s:4:"بم";s:3:"ﳢ";s:4:"به";s:3:"ﳣ";s:4:"تم";s:3:"ﳤ";s:4:"ته";s:3:"ﳥ";s:4:"ثم";s:3:"ﳦ";s:4:"ثه";s:3:"ﳧ";s:4:"سم";s:3:"ﳨ";s:4:"سه";s:3:"ﳩ";s:4:"شم";s:3:"ﳪ";s:4:"شه";s:3:"ﳫ";s:4:"كل";s:3:"ﳬ";s:4:"كم";s:3:"ﳭ";s:4:"لم";s:3:"ﳮ";s:4:"نم";s:3:"ﳯ";s:4:"نه";s:3:"ﳰ";s:4:"يم";s:3:"ﳱ";s:4:"يه";s:3:"ﳲ";s:6:"ـَّ";s:3:"ﳳ";s:6:"ـُّ";s:3:"ﳴ";s:6:"ـِّ";s:3:"ﳵ";s:4:"طى";s:3:"ﳶ";s:4:"طي";s:3:"ﳷ";s:4:"عى";s:3:"ﳸ";s:4:"عي";s:3:"ﳹ";s:4:"غى";s:3:"ﳺ";s:4:"غي";s:3:"ﳻ";s:4:"سى";s:3:"ﳼ";s:4:"سي";s:3:"ﳽ";s:4:"شى";s:3:"ﳾ";s:4:"شي";s:3:"ﳿ";s:4:"حى";s:3:"ﴀ";s:4:"حي";s:3:"ﴁ";s:4:"جى";s:3:"ﴂ";s:4:"جي";s:3:"ﴃ";s:4:"خى";s:3:"ﴄ";s:4:"خي";s:3:"ﴅ";s:4:"صى";s:3:"ﴆ";s:4:"صي";s:3:"ﴇ";s:4:"ضى";s:3:"ﴈ";s:4:"ضي";s:3:"ﴉ";s:4:"شج";s:3:"ﴊ";s:4:"شح";s:3:"ﴋ";s:4:"شخ";s:3:"ﴌ";s:4:"شم";s:3:"ﴍ";s:4:"شر";s:3:"ﴎ";s:4:"سر";s:3:"ﴏ";s:4:"صر";s:3:"ﴐ";s:4:"ضر";s:3:"ﴑ";s:4:"طى";s:3:"ﴒ";s:4:"طي";s:3:"ﴓ";s:4:"عى";s:3:"ﴔ";s:4:"عي";s:3:"ﴕ";s:4:"غى";s:3:"ﴖ";s:4:"غي";s:3:"ﴗ";s:4:"سى";s:3:"ﴘ";s:4:"سي";s:3:"ﴙ";s:4:"شى";s:3:"ﴚ";s:4:"شي";s:3:"ﴛ";s:4:"حى";s:3:"ﴜ";s:4:"حي";s:3:"ﴝ";s:4:"جى";s:3:"ﴞ";s:4:"جي";s:3:"ﴟ";s:4:"خى";s:3:"ﴠ";s:4:"خي";s:3:"ﴡ";s:4:"صى";s:3:"ﴢ";s:4:"صي";s:3:"ﴣ";s:4:"ضى";s:3:"ﴤ";s:4:"ضي";s:3:"ﴥ";s:4:"شج";s:3:"ﴦ";s:4:"شح";s:3:"ﴧ";s:4:"شخ";s:3:"ﴨ";s:4:"شم";s:3:"ﴩ";s:4:"شر";s:3:"ﴪ";s:4:"سر";s:3:"ﴫ";s:4:"صر";s:3:"ﴬ";s:4:"ضر";s:3:"ﴭ";s:4:"شج";s:3:"ﴮ";s:4:"شح";s:3:"ﴯ";s:4:"شخ";s:3:"ﴰ";s:4:"شم";s:3:"ﴱ";s:4:"سه";s:3:"ﴲ";s:4:"شه";s:3:"ﴳ";s:4:"طم";s:3:"ﴴ";s:4:"سج";s:3:"ﴵ";s:4:"سح";s:3:"ﴶ";s:4:"سخ";s:3:"ﴷ";s:4:"شج";s:3:"ﴸ";s:4:"شح";s:3:"ﴹ";s:4:"شخ";s:3:"ﴺ";s:4:"طم";s:3:"ﴻ";s:4:"ظم";s:3:"ﴼ";s:4:"اً";s:3:"ﴽ";s:4:"اً";s:3:"ﵐ";s:6:"تجم";s:3:"ﵑ";s:6:"تحج";s:3:"ﵒ";s:6:"تحج";s:3:"ﵓ";s:6:"تحم";s:3:"ﵔ";s:6:"تخم";s:3:"ﵕ";s:6:"تمج";s:3:"ﵖ";s:6:"تمح";s:3:"ﵗ";s:6:"تمخ";s:3:"ﵘ";s:6:"جمح";s:3:"ﵙ";s:6:"جمح";s:3:"ﵚ";s:6:"حمي";s:3:"ﵛ";s:6:"حمى";s:3:"ﵜ";s:6:"سحج";s:3:"ﵝ";s:6:"سجح";s:3:"ﵞ";s:6:"سجى";s:3:"ﵟ";s:6:"سمح";s:3:"ﵠ";s:6:"سمح";s:3:"ﵡ";s:6:"سمج";s:3:"ﵢ";s:6:"سمم";s:3:"ﵣ";s:6:"سمم";s:3:"ﵤ";s:6:"صحح";s:3:"ﵥ";s:6:"صحح";s:3:"ﵦ";s:6:"صمم";s:3:"ﵧ";s:6:"شحم";s:3:"ﵨ";s:6:"شحم";s:3:"ﵩ";s:6:"شجي";s:3:"ﵪ";s:6:"شمخ";s:3:"ﵫ";s:6:"شمخ";s:3:"ﵬ";s:6:"شمم";s:3:"ﵭ";s:6:"شمم";s:3:"ﵮ";s:6:"ضحى";s:3:"ﵯ";s:6:"ضخم";s:3:"ﵰ";s:6:"ضخم";s:3:"ﵱ";s:6:"طمح";s:3:"ﵲ";s:6:"طمح";s:3:"ﵳ";s:6:"طمم";s:3:"ﵴ";s:6:"طمي";s:3:"ﵵ";s:6:"عجم";s:3:"ﵶ";s:6:"عمم";s:3:"ﵷ";s:6:"عمم";s:3:"ﵸ";s:6:"عمى";s:3:"ﵹ";s:6:"غمم";s:3:"ﵺ";s:6:"غمي";s:3:"ﵻ";s:6:"غمى";s:3:"ﵼ";s:6:"فخم";s:3:"ﵽ";s:6:"فخم";s:3:"ﵾ";s:6:"قمح";s:3:"ﵿ";s:6:"قمم";s:3:"ﶀ";s:6:"لحم";s:3:"ﶁ";s:6:"لحي";s:3:"ﶂ";s:6:"لحى";s:3:"ﶃ";s:6:"لجج";s:3:"ﶄ";s:6:"لجج";s:3:"ﶅ";s:6:"لخم";s:3:"ﶆ";s:6:"لخم";s:3:"ﶇ";s:6:"لمح";s:3:"ﶈ";s:6:"لمح";s:3:"ﶉ";s:6:"محج";s:3:"ﶊ";s:6:"محم";s:3:"ﶋ";s:6:"محي";s:3:"ﶌ";s:6:"مجح";s:3:"ﶍ";s:6:"مجم";s:3:"ﶎ";s:6:"مخج";s:3:"ﶏ";s:6:"مخم";s:3:"ﶒ";s:6:"مجخ";s:3:"ﶓ";s:6:"همج";s:3:"ﶔ";s:6:"همم";s:3:"ﶕ";s:6:"نحم";s:3:"ﶖ";s:6:"نحى";s:3:"ﶗ";s:6:"نجم";s:3:"ﶘ";s:6:"نجم";s:3:"ﶙ";s:6:"نجى";s:3:"ﶚ";s:6:"نمي";s:3:"ﶛ";s:6:"نمى";s:3:"ﶜ";s:6:"يمم";s:3:"ﶝ";s:6:"يمم";s:3:"ﶞ";s:6:"بخي";s:3:"ﶟ";s:6:"تجي";s:3:"ﶠ";s:6:"تجى";s:3:"ﶡ";s:6:"تخي";s:3:"ﶢ";s:6:"تخى";s:3:"ﶣ";s:6:"تمي";s:3:"ﶤ";s:6:"تمى";s:3:"ﶥ";s:6:"جمي";s:3:"ﶦ";s:6:"جحى";s:3:"ﶧ";s:6:"جمى";s:3:"ﶨ";s:6:"سخى";s:3:"ﶩ";s:6:"صحي";s:3:"ﶪ";s:6:"شحي";s:3:"ﶫ";s:6:"ضحي";s:3:"ﶬ";s:6:"لجي";s:3:"ﶭ";s:6:"لمي";s:3:"ﶮ";s:6:"يحي";s:3:"ﶯ";s:6:"يجي";s:3:"ﶰ";s:6:"يمي";s:3:"ﶱ";s:6:"ممي";s:3:"ﶲ";s:6:"قمي";s:3:"ﶳ";s:6:"نحي";s:3:"ﶴ";s:6:"قمح";s:3:"ﶵ";s:6:"لحم";s:3:"ﶶ";s:6:"عمي";s:3:"ﶷ";s:6:"كمي";s:3:"ﶸ";s:6:"نجح";s:3:"ﶹ";s:6:"مخي";s:3:"ﶺ";s:6:"لجم";s:3:"ﶻ";s:6:"كمم";s:3:"ﶼ";s:6:"لجم";s:3:"ﶽ";s:6:"نجح";s:3:"ﶾ";s:6:"جحي";s:3:"ﶿ";s:6:"حجي";s:3:"ﷀ";s:6:"مجي";s:3:"ﷁ";s:6:"فمي";s:3:"ﷂ";s:6:"بحي";s:3:"ﷃ";s:6:"كمم";s:3:"ﷄ";s:6:"عجم";s:3:"ﷅ";s:6:"صمم";s:3:"ﷆ";s:6:"سخي";s:3:"ﷇ";s:6:"نجي";s:3:"ﷰ";s:6:"صلے";s:3:"ﷱ";s:6:"قلے";s:3:"ﷲ";s:8:"الله";s:3:"ﷳ";s:8:"اكبر";s:3:"ﷴ";s:8:"محمد";s:3:"ﷵ";s:8:"صلعم";s:3:"ﷶ";s:8:"رسول";s:3:"ﷷ";s:8:"عليه";s:3:"ﷸ";s:8:"وسلم";s:3:"ﷹ";s:6:"صلى";s:3:"ﷺ";s:33:"صلى الله عليه وسلم";s:3:"ﷻ";s:15:"جل جلاله";s:3:"﷼";s:8:"ریال";s:3:"︐";s:1:",";s:3:"︑";s:3:"、";s:3:"︒";s:3:"。";s:3:"︓";s:1:":";s:3:"︔";s:1:";";s:3:"︕";s:1:"!";s:3:"︖";s:1:"?";s:3:"︗";s:3:"〖";s:3:"︘";s:3:"〗";s:3:"︙";s:3:"...";s:3:"︰";s:2:"..";s:3:"︱";s:3:"—";s:3:"︲";s:3:"–";s:3:"︳";s:1:"_";s:3:"︴";s:1:"_";s:3:"︵";s:1:"(";s:3:"︶";s:1:")";s:3:"︷";s:1:"{";s:3:"︸";s:1:"}";s:3:"︹";s:3:"〔";s:3:"︺";s:3:"〕";s:3:"︻";s:3:"【";s:3:"︼";s:3:"】";s:3:"︽";s:3:"《";s:3:"︾";s:3:"》";s:3:"︿";s:3:"〈";s:3:"﹀";s:3:"〉";s:3:"﹁";s:3:"「";s:3:"﹂";s:3:"」";s:3:"﹃";s:3:"『";s:3:"﹄";s:3:"』";s:3:"﹇";s:1:"[";s:3:"﹈";s:1:"]";s:3:"﹉";s:3:" ̅";s:3:"﹊";s:3:" ̅";s:3:"﹋";s:3:" ̅";s:3:"﹌";s:3:" ̅";s:3:"﹍";s:1:"_";s:3:"﹎";s:1:"_";s:3:"﹏";s:1:"_";s:3:"﹐";s:1:",";s:3:"﹑";s:3:"、";s:3:"﹒";s:1:".";s:3:"﹔";s:1:";";s:3:"﹕";s:1:":";s:3:"﹖";s:1:"?";s:3:"﹗";s:1:"!";s:3:"﹘";s:3:"—";s:3:"﹙";s:1:"(";s:3:"﹚";s:1:")";s:3:"﹛";s:1:"{";s:3:"﹜";s:1:"}";s:3:"﹝";s:3:"〔";s:3:"﹞";s:3:"〕";s:3:"﹟";s:1:"#";s:3:"﹠";s:1:"&";s:3:"﹡";s:1:"*";s:3:"﹢";s:1:"+";s:3:"﹣";s:1:"-";s:3:"﹤";s:1:"<";s:3:"﹥";s:1:">";s:3:"﹦";s:1:"=";s:3:"﹨";s:1:"\\";s:3:"﹩";s:1:"$";s:3:"﹪";s:1:"%";s:3:"﹫";s:1:"@";s:3:"ﹰ";s:3:" ً";s:3:"ﹱ";s:4:"ـً";s:3:"ﹲ";s:3:" ٌ";s:3:"ﹴ";s:3:" ٍ";s:3:"ﹶ";s:3:" َ";s:3:"ﹷ";s:4:"ـَ";s:3:"ﹸ";s:3:" ُ";s:3:"ﹹ";s:4:"ـُ";s:3:"ﹺ";s:3:" ِ";s:3:"ﹻ";s:4:"ـِ";s:3:"ﹼ";s:3:" ّ";s:3:"ﹽ";s:4:"ـّ";s:3:"ﹾ";s:3:" ْ";s:3:"ﹿ";s:4:"ـْ";s:3:"ﺀ";s:2:"ء";s:3:"ﺁ";s:4:"آ";s:3:"ﺂ";s:4:"آ";s:3:"ﺃ";s:4:"أ";s:3:"ﺄ";s:4:"أ";s:3:"ﺅ";s:4:"ؤ";s:3:"ﺆ";s:4:"ؤ";s:3:"ﺇ";s:4:"إ";s:3:"ﺈ";s:4:"إ";s:3:"ﺉ";s:4:"ئ";s:3:"ﺊ";s:4:"ئ";s:3:"ﺋ";s:4:"ئ";s:3:"ﺌ";s:4:"ئ";s:3:"ﺍ";s:2:"ا";s:3:"ﺎ";s:2:"ا";s:3:"ﺏ";s:2:"ب";s:3:"ﺐ";s:2:"ب";s:3:"ﺑ";s:2:"ب";s:3:"ﺒ";s:2:"ب";s:3:"ﺓ";s:2:"ة";s:3:"ﺔ";s:2:"ة";s:3:"ﺕ";s:2:"ت";s:3:"ﺖ";s:2:"ت";s:3:"ﺗ";s:2:"ت";s:3:"ﺘ";s:2:"ت";s:3:"ﺙ";s:2:"ث";s:3:"ﺚ";s:2:"ث";s:3:"ﺛ";s:2:"ث";s:3:"ﺜ";s:2:"ث";s:3:"ﺝ";s:2:"ج";s:3:"ﺞ";s:2:"ج";s:3:"ﺟ";s:2:"ج";s:3:"ﺠ";s:2:"ج";s:3:"ﺡ";s:2:"ح";s:3:"ﺢ";s:2:"ح";s:3:"ﺣ";s:2:"ح";s:3:"ﺤ";s:2:"ح";s:3:"ﺥ";s:2:"خ";s:3:"ﺦ";s:2:"خ";s:3:"ﺧ";s:2:"خ";s:3:"ﺨ";s:2:"خ";s:3:"ﺩ";s:2:"د";s:3:"ﺪ";s:2:"د";s:3:"ﺫ";s:2:"ذ";s:3:"ﺬ";s:2:"ذ";s:3:"ﺭ";s:2:"ر";s:3:"ﺮ";s:2:"ر";s:3:"ﺯ";s:2:"ز";s:3:"ﺰ";s:2:"ز";s:3:"ﺱ";s:2:"س";s:3:"ﺲ";s:2:"س";s:3:"ﺳ";s:2:"س";s:3:"ﺴ";s:2:"س";s:3:"ﺵ";s:2:"ش";s:3:"ﺶ";s:2:"ش";s:3:"ﺷ";s:2:"ش";s:3:"ﺸ";s:2:"ش";s:3:"ﺹ";s:2:"ص";s:3:"ﺺ";s:2:"ص";s:3:"ﺻ";s:2:"ص";s:3:"ﺼ";s:2:"ص";s:3:"ﺽ";s:2:"ض";s:3:"ﺾ";s:2:"ض";s:3:"ﺿ";s:2:"ض";s:3:"ﻀ";s:2:"ض";s:3:"ﻁ";s:2:"ط";s:3:"ﻂ";s:2:"ط";s:3:"ﻃ";s:2:"ط";s:3:"ﻄ";s:2:"ط";s:3:"ﻅ";s:2:"ظ";s:3:"ﻆ";s:2:"ظ";s:3:"ﻇ";s:2:"ظ";s:3:"ﻈ";s:2:"ظ";s:3:"ﻉ";s:2:"ع";s:3:"ﻊ";s:2:"ع";s:3:"ﻋ";s:2:"ع";s:3:"ﻌ";s:2:"ع";s:3:"ﻍ";s:2:"غ";s:3:"ﻎ";s:2:"غ";s:3:"ﻏ";s:2:"غ";s:3:"ﻐ";s:2:"غ";s:3:"ﻑ";s:2:"ف";s:3:"ﻒ";s:2:"ف";s:3:"ﻓ";s:2:"ف";s:3:"ﻔ";s:2:"ف";s:3:"ﻕ";s:2:"ق";s:3:"ﻖ";s:2:"ق";s:3:"ﻗ";s:2:"ق";s:3:"ﻘ";s:2:"ق";s:3:"ﻙ";s:2:"ك";s:3:"ﻚ";s:2:"ك";s:3:"ﻛ";s:2:"ك";s:3:"ﻜ";s:2:"ك";s:3:"ﻝ";s:2:"ل";s:3:"ﻞ";s:2:"ل";s:3:"ﻟ";s:2:"ل";s:3:"ﻠ";s:2:"ل";s:3:"ﻡ";s:2:"م";s:3:"ﻢ";s:2:"م";s:3:"ﻣ";s:2:"م";s:3:"ﻤ";s:2:"م";s:3:"ﻥ";s:2:"ن";s:3:"ﻦ";s:2:"ن";s:3:"ﻧ";s:2:"ن";s:3:"ﻨ";s:2:"ن";s:3:"ﻩ";s:2:"ه";s:3:"ﻪ";s:2:"ه";s:3:"ﻫ";s:2:"ه";s:3:"ﻬ";s:2:"ه";s:3:"ﻭ";s:2:"و";s:3:"ﻮ";s:2:"و";s:3:"ﻯ";s:2:"ى";s:3:"ﻰ";s:2:"ى";s:3:"ﻱ";s:2:"ي";s:3:"ﻲ";s:2:"ي";s:3:"ﻳ";s:2:"ي";s:3:"ﻴ";s:2:"ي";s:3:"ﻵ";s:6:"لآ";s:3:"ﻶ";s:6:"لآ";s:3:"ﻷ";s:6:"لأ";s:3:"ﻸ";s:6:"لأ";s:3:"ﻹ";s:6:"لإ";s:3:"ﻺ";s:6:"لإ";s:3:"ﻻ";s:4:"لا";s:3:"ﻼ";s:4:"لا";s:3:"!";s:1:"!";s:3:""";s:1:""";s:3:"#";s:1:"#";s:3:"$";s:1:"$";s:3:"%";s:1:"%";s:3:"&";s:1:"&";s:3:"'";s:1:"\'";s:3:"(";s:1:"(";s:3:")";s:1:")";s:3:"*";s:1:"*";s:3:"+";s:1:"+";s:3:",";s:1:",";s:3:"-";s:1:"-";s:3:".";s:1:".";s:3:"/";s:1:"/";s:3:"0";s:1:"0";s:3:"1";s:1:"1";s:3:"2";s:1:"2";s:3:"3";s:1:"3";s:3:"4";s:1:"4";s:3:"5";s:1:"5";s:3:"6";s:1:"6";s:3:"7";s:1:"7";s:3:"8";s:1:"8";s:3:"9";s:1:"9";s:3:":";s:1:":";s:3:";";s:1:";";s:3:"<";s:1:"<";s:3:"=";s:1:"=";s:3:">";s:1:">";s:3:"?";s:1:"?";s:3:"@";s:1:"@";s:3:"A";s:1:"A";s:3:"B";s:1:"B";s:3:"C";s:1:"C";s:3:"D";s:1:"D";s:3:"E";s:1:"E";s:3:"F";s:1:"F";s:3:"G";s:1:"G";s:3:"H";s:1:"H";s:3:"I";s:1:"I";s:3:"J";s:1:"J";s:3:"K";s:1:"K";s:3:"L";s:1:"L";s:3:"M";s:1:"M";s:3:"N";s:1:"N";s:3:"O";s:1:"O";s:3:"P";s:1:"P";s:3:"Q";s:1:"Q";s:3:"R";s:1:"R";s:3:"S";s:1:"S";s:3:"T";s:1:"T";s:3:"U";s:1:"U";s:3:"V";s:1:"V";s:3:"W";s:1:"W";s:3:"X";s:1:"X";s:3:"Y";s:1:"Y";s:3:"Z";s:1:"Z";s:3:"[";s:1:"[";s:3:"\";s:1:"\\";s:3:"]";s:1:"]";s:3:"^";s:1:"^";s:3:"_";s:1:"_";s:3:"`";s:1:"`";s:3:"a";s:1:"a";s:3:"b";s:1:"b";s:3:"c";s:1:"c";s:3:"d";s:1:"d";s:3:"e";s:1:"e";s:3:"f";s:1:"f";s:3:"g";s:1:"g";s:3:"h";s:1:"h";s:3:"i";s:1:"i";s:3:"j";s:1:"j";s:3:"k";s:1:"k";s:3:"l";s:1:"l";s:3:"m";s:1:"m";s:3:"n";s:1:"n";s:3:"o";s:1:"o";s:3:"p";s:1:"p";s:3:"q";s:1:"q";s:3:"r";s:1:"r";s:3:"s";s:1:"s";s:3:"t";s:1:"t";s:3:"u";s:1:"u";s:3:"v";s:1:"v";s:3:"w";s:1:"w";s:3:"x";s:1:"x";s:3:"y";s:1:"y";s:3:"z";s:1:"z";s:3:"{";s:1:"{";s:3:"|";s:1:"|";s:3:"}";s:1:"}";s:3:"~";s:1:"~";s:3:"⦅";s:3:"⦅";s:3:"⦆";s:3:"⦆";s:3:"。";s:3:"。";s:3:"「";s:3:"「";s:3:"」";s:3:"」";s:3:"、";s:3:"、";s:3:"・";s:3:"・";s:3:"ヲ";s:3:"ヲ";s:3:"ァ";s:3:"ァ";s:3:"ィ";s:3:"ィ";s:3:"ゥ";s:3:"ゥ";s:3:"ェ";s:3:"ェ";s:3:"ォ";s:3:"ォ";s:3:"ャ";s:3:"ャ";s:3:"ュ";s:3:"ュ";s:3:"ョ";s:3:"ョ";s:3:"ッ";s:3:"ッ";s:3:"ー";s:3:"ー";s:3:"ア";s:3:"ア";s:3:"イ";s:3:"イ";s:3:"ウ";s:3:"ウ";s:3:"エ";s:3:"エ";s:3:"オ";s:3:"オ";s:3:"カ";s:3:"カ";s:3:"キ";s:3:"キ";s:3:"ク";s:3:"ク";s:3:"ケ";s:3:"ケ";s:3:"コ";s:3:"コ";s:3:"サ";s:3:"サ";s:3:"シ";s:3:"シ";s:3:"ス";s:3:"ス";s:3:"セ";s:3:"セ";s:3:"ソ";s:3:"ソ";s:3:"タ";s:3:"タ";s:3:"チ";s:3:"チ";s:3:"ツ";s:3:"ツ";s:3:"テ";s:3:"テ";s:3:"ト";s:3:"ト";s:3:"ナ";s:3:"ナ";s:3:"ニ";s:3:"ニ";s:3:"ヌ";s:3:"ヌ";s:3:"ネ";s:3:"ネ";s:3:"ノ";s:3:"ノ";s:3:"ハ";s:3:"ハ";s:3:"ヒ";s:3:"ヒ";s:3:"フ";s:3:"フ";s:3:"ヘ";s:3:"ヘ";s:3:"ホ";s:3:"ホ";s:3:"マ";s:3:"マ";s:3:"ミ";s:3:"ミ";s:3:"ム";s:3:"ム";s:3:"メ";s:3:"メ";s:3:"モ";s:3:"モ";s:3:"ヤ";s:3:"ヤ";s:3:"ユ";s:3:"ユ";s:3:"ヨ";s:3:"ヨ";s:3:"ラ";s:3:"ラ";s:3:"リ";s:3:"リ";s:3:"ル";s:3:"ル";s:3:"レ";s:3:"レ";s:3:"ロ";s:3:"ロ";s:3:"ワ";s:3:"ワ";s:3:"ン";s:3:"ン";s:3:"゙";s:3:"゙";s:3:"゚";s:3:"゚";s:3:"ᅠ";s:3:"ᅠ";s:3:"ᄀ";s:3:"ᄀ";s:3:"ᄁ";s:3:"ᄁ";s:3:"ᆪ";s:3:"ᆪ";s:3:"ᄂ";s:3:"ᄂ";s:3:"ᆬ";s:3:"ᆬ";s:3:"ᆭ";s:3:"ᆭ";s:3:"ᄃ";s:3:"ᄃ";s:3:"ᄄ";s:3:"ᄄ";s:3:"ᄅ";s:3:"ᄅ";s:3:"ᆰ";s:3:"ᆰ";s:3:"ᆱ";s:3:"ᆱ";s:3:"ᆲ";s:3:"ᆲ";s:3:"ᆳ";s:3:"ᆳ";s:3:"ᆴ";s:3:"ᆴ";s:3:"ᆵ";s:3:"ᆵ";s:3:"ᄚ";s:3:"ᄚ";s:3:"ᄆ";s:3:"ᄆ";s:3:"ᄇ";s:3:"ᄇ";s:3:"ᄈ";s:3:"ᄈ";s:3:"ᄡ";s:3:"ᄡ";s:3:"ᄉ";s:3:"ᄉ";s:3:"ᄊ";s:3:"ᄊ";s:3:"ᄋ";s:3:"ᄋ";s:3:"ᄌ";s:3:"ᄌ";s:3:"ᄍ";s:3:"ᄍ";s:3:"ᄎ";s:3:"ᄎ";s:3:"ᄏ";s:3:"ᄏ";s:3:"ᄐ";s:3:"ᄐ";s:3:"ᄑ";s:3:"ᄑ";s:3:"ᄒ";s:3:"ᄒ";s:3:"ᅡ";s:3:"ᅡ";s:3:"ᅢ";s:3:"ᅢ";s:3:"ᅣ";s:3:"ᅣ";s:3:"ᅤ";s:3:"ᅤ";s:3:"ᅥ";s:3:"ᅥ";s:3:"ᅦ";s:3:"ᅦ";s:3:"ᅧ";s:3:"ᅧ";s:3:"ᅨ";s:3:"ᅨ";s:3:"ᅩ";s:3:"ᅩ";s:3:"ᅪ";s:3:"ᅪ";s:3:"ᅫ";s:3:"ᅫ";s:3:"ᅬ";s:3:"ᅬ";s:3:"ᅭ";s:3:"ᅭ";s:3:"ᅮ";s:3:"ᅮ";s:3:"ᅯ";s:3:"ᅯ";s:3:"ᅰ";s:3:"ᅰ";s:3:"ᅱ";s:3:"ᅱ";s:3:"ᅲ";s:3:"ᅲ";s:3:"ᅳ";s:3:"ᅳ";s:3:"ᅴ";s:3:"ᅴ";s:3:"ᅵ";s:3:"ᅵ";s:3:"¢";s:2:"¢";s:3:"£";s:2:"£";s:3:"¬";s:2:"¬";s:3:" ̄";s:3:" ̄";s:3:"¦";s:2:"¦";s:3:"¥";s:2:"¥";s:3:"₩";s:3:"₩";s:3:"│";s:3:"│";s:3:"←";s:3:"←";s:3:"↑";s:3:"↑";s:3:"→";s:3:"→";s:3:"↓";s:3:"↓";s:3:"■";s:3:"■";s:3:"○";s:3:"○";s:4:"𑂚";s:8:"𑂚";s:4:"𑂜";s:8:"𑂜";s:4:"𑂫";s:8:"𑂫";s:4:"𝅗𝅥";s:8:"𝅗𝅥";s:4:"𝅘𝅥";s:8:"𝅘𝅥";s:4:"𝅘𝅥𝅮";s:12:"𝅘𝅥𝅮";s:4:"𝅘𝅥𝅯";s:12:"𝅘𝅥𝅯";s:4:"𝅘𝅥𝅰";s:12:"𝅘𝅥𝅰";s:4:"𝅘𝅥𝅱";s:12:"𝅘𝅥𝅱";s:4:"𝅘𝅥𝅲";s:12:"𝅘𝅥𝅲";s:4:"𝆹𝅥";s:8:"𝆹𝅥";s:4:"𝆺𝅥";s:8:"𝆺𝅥";s:4:"𝆹𝅥𝅮";s:12:"𝆹𝅥𝅮";s:4:"𝆺𝅥𝅮";s:12:"𝆺𝅥𝅮";s:4:"𝆹𝅥𝅯";s:12:"𝆹𝅥𝅯";s:4:"𝆺𝅥𝅯";s:12:"𝆺𝅥𝅯";s:4:"𝐀";s:1:"A";s:4:"𝐁";s:1:"B";s:4:"𝐂";s:1:"C";s:4:"𝐃";s:1:"D";s:4:"𝐄";s:1:"E";s:4:"𝐅";s:1:"F";s:4:"𝐆";s:1:"G";s:4:"𝐇";s:1:"H";s:4:"𝐈";s:1:"I";s:4:"𝐉";s:1:"J";s:4:"𝐊";s:1:"K";s:4:"𝐋";s:1:"L";s:4:"𝐌";s:1:"M";s:4:"𝐍";s:1:"N";s:4:"𝐎";s:1:"O";s:4:"𝐏";s:1:"P";s:4:"𝐐";s:1:"Q";s:4:"𝐑";s:1:"R";s:4:"𝐒";s:1:"S";s:4:"𝐓";s:1:"T";s:4:"𝐔";s:1:"U";s:4:"𝐕";s:1:"V";s:4:"𝐖";s:1:"W";s:4:"𝐗";s:1:"X";s:4:"𝐘";s:1:"Y";s:4:"𝐙";s:1:"Z";s:4:"𝐚";s:1:"a";s:4:"𝐛";s:1:"b";s:4:"𝐜";s:1:"c";s:4:"𝐝";s:1:"d";s:4:"𝐞";s:1:"e";s:4:"𝐟";s:1:"f";s:4:"𝐠";s:1:"g";s:4:"𝐡";s:1:"h";s:4:"𝐢";s:1:"i";s:4:"𝐣";s:1:"j";s:4:"𝐤";s:1:"k";s:4:"𝐥";s:1:"l";s:4:"𝐦";s:1:"m";s:4:"𝐧";s:1:"n";s:4:"𝐨";s:1:"o";s:4:"𝐩";s:1:"p";s:4:"𝐪";s:1:"q";s:4:"𝐫";s:1:"r";s:4:"𝐬";s:1:"s";s:4:"𝐭";s:1:"t";s:4:"𝐮";s:1:"u";s:4:"𝐯";s:1:"v";s:4:"𝐰";s:1:"w";s:4:"𝐱";s:1:"x";s:4:"𝐲";s:1:"y";s:4:"𝐳";s:1:"z";s:4:"𝐴";s:1:"A";s:4:"𝐵";s:1:"B";s:4:"𝐶";s:1:"C";s:4:"𝐷";s:1:"D";s:4:"𝐸";s:1:"E";s:4:"𝐹";s:1:"F";s:4:"𝐺";s:1:"G";s:4:"𝐻";s:1:"H";s:4:"𝐼";s:1:"I";s:4:"𝐽";s:1:"J";s:4:"𝐾";s:1:"K";s:4:"𝐿";s:1:"L";s:4:"𝑀";s:1:"M";s:4:"𝑁";s:1:"N";s:4:"𝑂";s:1:"O";s:4:"𝑃";s:1:"P";s:4:"𝑄";s:1:"Q";s:4:"𝑅";s:1:"R";s:4:"𝑆";s:1:"S";s:4:"𝑇";s:1:"T";s:4:"𝑈";s:1:"U";s:4:"𝑉";s:1:"V";s:4:"𝑊";s:1:"W";s:4:"𝑋";s:1:"X";s:4:"𝑌";s:1:"Y";s:4:"𝑍";s:1:"Z";s:4:"𝑎";s:1:"a";s:4:"𝑏";s:1:"b";s:4:"𝑐";s:1:"c";s:4:"𝑑";s:1:"d";s:4:"𝑒";s:1:"e";s:4:"𝑓";s:1:"f";s:4:"𝑔";s:1:"g";s:4:"𝑖";s:1:"i";s:4:"𝑗";s:1:"j";s:4:"𝑘";s:1:"k";s:4:"𝑙";s:1:"l";s:4:"𝑚";s:1:"m";s:4:"𝑛";s:1:"n";s:4:"𝑜";s:1:"o";s:4:"𝑝";s:1:"p";s:4:"𝑞";s:1:"q";s:4:"𝑟";s:1:"r";s:4:"𝑠";s:1:"s";s:4:"𝑡";s:1:"t";s:4:"𝑢";s:1:"u";s:4:"𝑣";s:1:"v";s:4:"𝑤";s:1:"w";s:4:"𝑥";s:1:"x";s:4:"𝑦";s:1:"y";s:4:"𝑧";s:1:"z";s:4:"𝑨";s:1:"A";s:4:"𝑩";s:1:"B";s:4:"𝑪";s:1:"C";s:4:"𝑫";s:1:"D";s:4:"𝑬";s:1:"E";s:4:"𝑭";s:1:"F";s:4:"𝑮";s:1:"G";s:4:"𝑯";s:1:"H";s:4:"𝑰";s:1:"I";s:4:"𝑱";s:1:"J";s:4:"𝑲";s:1:"K";s:4:"𝑳";s:1:"L";s:4:"𝑴";s:1:"M";s:4:"𝑵";s:1:"N";s:4:"𝑶";s:1:"O";s:4:"𝑷";s:1:"P";s:4:"𝑸";s:1:"Q";s:4:"𝑹";s:1:"R";s:4:"𝑺";s:1:"S";s:4:"𝑻";s:1:"T";s:4:"𝑼";s:1:"U";s:4:"𝑽";s:1:"V";s:4:"𝑾";s:1:"W";s:4:"𝑿";s:1:"X";s:4:"𝒀";s:1:"Y";s:4:"𝒁";s:1:"Z";s:4:"𝒂";s:1:"a";s:4:"𝒃";s:1:"b";s:4:"𝒄";s:1:"c";s:4:"𝒅";s:1:"d";s:4:"𝒆";s:1:"e";s:4:"𝒇";s:1:"f";s:4:"𝒈";s:1:"g";s:4:"𝒉";s:1:"h";s:4:"𝒊";s:1:"i";s:4:"𝒋";s:1:"j";s:4:"𝒌";s:1:"k";s:4:"𝒍";s:1:"l";s:4:"𝒎";s:1:"m";s:4:"𝒏";s:1:"n";s:4:"𝒐";s:1:"o";s:4:"𝒑";s:1:"p";s:4:"𝒒";s:1:"q";s:4:"𝒓";s:1:"r";s:4:"𝒔";s:1:"s";s:4:"𝒕";s:1:"t";s:4:"𝒖";s:1:"u";s:4:"𝒗";s:1:"v";s:4:"𝒘";s:1:"w";s:4:"𝒙";s:1:"x";s:4:"𝒚";s:1:"y";s:4:"𝒛";s:1:"z";s:4:"𝒜";s:1:"A";s:4:"𝒞";s:1:"C";s:4:"𝒟";s:1:"D";s:4:"𝒢";s:1:"G";s:4:"𝒥";s:1:"J";s:4:"𝒦";s:1:"K";s:4:"𝒩";s:1:"N";s:4:"𝒪";s:1:"O";s:4:"𝒫";s:1:"P";s:4:"𝒬";s:1:"Q";s:4:"𝒮";s:1:"S";s:4:"𝒯";s:1:"T";s:4:"𝒰";s:1:"U";s:4:"𝒱";s:1:"V";s:4:"𝒲";s:1:"W";s:4:"𝒳";s:1:"X";s:4:"𝒴";s:1:"Y";s:4:"𝒵";s:1:"Z";s:4:"𝒶";s:1:"a";s:4:"𝒷";s:1:"b";s:4:"𝒸";s:1:"c";s:4:"𝒹";s:1:"d";s:4:"𝒻";s:1:"f";s:4:"𝒽";s:1:"h";s:4:"𝒾";s:1:"i";s:4:"𝒿";s:1:"j";s:4:"𝓀";s:1:"k";s:4:"𝓁";s:1:"l";s:4:"𝓂";s:1:"m";s:4:"𝓃";s:1:"n";s:4:"𝓅";s:1:"p";s:4:"𝓆";s:1:"q";s:4:"𝓇";s:1:"r";s:4:"𝓈";s:1:"s";s:4:"𝓉";s:1:"t";s:4:"𝓊";s:1:"u";s:4:"𝓋";s:1:"v";s:4:"𝓌";s:1:"w";s:4:"𝓍";s:1:"x";s:4:"𝓎";s:1:"y";s:4:"𝓏";s:1:"z";s:4:"𝓐";s:1:"A";s:4:"𝓑";s:1:"B";s:4:"𝓒";s:1:"C";s:4:"𝓓";s:1:"D";s:4:"𝓔";s:1:"E";s:4:"𝓕";s:1:"F";s:4:"𝓖";s:1:"G";s:4:"𝓗";s:1:"H";s:4:"𝓘";s:1:"I";s:4:"𝓙";s:1:"J";s:4:"𝓚";s:1:"K";s:4:"𝓛";s:1:"L";s:4:"𝓜";s:1:"M";s:4:"𝓝";s:1:"N";s:4:"𝓞";s:1:"O";s:4:"𝓟";s:1:"P";s:4:"𝓠";s:1:"Q";s:4:"𝓡";s:1:"R";s:4:"𝓢";s:1:"S";s:4:"𝓣";s:1:"T";s:4:"𝓤";s:1:"U";s:4:"𝓥";s:1:"V";s:4:"𝓦";s:1:"W";s:4:"𝓧";s:1:"X";s:4:"𝓨";s:1:"Y";s:4:"𝓩";s:1:"Z";s:4:"𝓪";s:1:"a";s:4:"𝓫";s:1:"b";s:4:"𝓬";s:1:"c";s:4:"𝓭";s:1:"d";s:4:"𝓮";s:1:"e";s:4:"𝓯";s:1:"f";s:4:"𝓰";s:1:"g";s:4:"𝓱";s:1:"h";s:4:"𝓲";s:1:"i";s:4:"𝓳";s:1:"j";s:4:"𝓴";s:1:"k";s:4:"𝓵";s:1:"l";s:4:"𝓶";s:1:"m";s:4:"𝓷";s:1:"n";s:4:"𝓸";s:1:"o";s:4:"𝓹";s:1:"p";s:4:"𝓺";s:1:"q";s:4:"𝓻";s:1:"r";s:4:"𝓼";s:1:"s";s:4:"𝓽";s:1:"t";s:4:"𝓾";s:1:"u";s:4:"𝓿";s:1:"v";s:4:"𝔀";s:1:"w";s:4:"𝔁";s:1:"x";s:4:"𝔂";s:1:"y";s:4:"𝔃";s:1:"z";s:4:"𝔄";s:1:"A";s:4:"𝔅";s:1:"B";s:4:"𝔇";s:1:"D";s:4:"𝔈";s:1:"E";s:4:"𝔉";s:1:"F";s:4:"𝔊";s:1:"G";s:4:"𝔍";s:1:"J";s:4:"𝔎";s:1:"K";s:4:"𝔏";s:1:"L";s:4:"𝔐";s:1:"M";s:4:"𝔑";s:1:"N";s:4:"𝔒";s:1:"O";s:4:"𝔓";s:1:"P";s:4:"𝔔";s:1:"Q";s:4:"𝔖";s:1:"S";s:4:"𝔗";s:1:"T";s:4:"𝔘";s:1:"U";s:4:"𝔙";s:1:"V";s:4:"𝔚";s:1:"W";s:4:"𝔛";s:1:"X";s:4:"𝔜";s:1:"Y";s:4:"𝔞";s:1:"a";s:4:"𝔟";s:1:"b";s:4:"𝔠";s:1:"c";s:4:"𝔡";s:1:"d";s:4:"𝔢";s:1:"e";s:4:"𝔣";s:1:"f";s:4:"𝔤";s:1:"g";s:4:"𝔥";s:1:"h";s:4:"𝔦";s:1:"i";s:4:"𝔧";s:1:"j";s:4:"𝔨";s:1:"k";s:4:"𝔩";s:1:"l";s:4:"𝔪";s:1:"m";s:4:"𝔫";s:1:"n";s:4:"𝔬";s:1:"o";s:4:"𝔭";s:1:"p";s:4:"𝔮";s:1:"q";s:4:"𝔯";s:1:"r";s:4:"𝔰";s:1:"s";s:4:"𝔱";s:1:"t";s:4:"𝔲";s:1:"u";s:4:"𝔳";s:1:"v";s:4:"𝔴";s:1:"w";s:4:"𝔵";s:1:"x";s:4:"𝔶";s:1:"y";s:4:"𝔷";s:1:"z";s:4:"𝔸";s:1:"A";s:4:"𝔹";s:1:"B";s:4:"𝔻";s:1:"D";s:4:"𝔼";s:1:"E";s:4:"𝔽";s:1:"F";s:4:"𝔾";s:1:"G";s:4:"𝕀";s:1:"I";s:4:"𝕁";s:1:"J";s:4:"𝕂";s:1:"K";s:4:"𝕃";s:1:"L";s:4:"𝕄";s:1:"M";s:4:"𝕆";s:1:"O";s:4:"𝕊";s:1:"S";s:4:"𝕋";s:1:"T";s:4:"𝕌";s:1:"U";s:4:"𝕍";s:1:"V";s:4:"𝕎";s:1:"W";s:4:"𝕏";s:1:"X";s:4:"𝕐";s:1:"Y";s:4:"𝕒";s:1:"a";s:4:"𝕓";s:1:"b";s:4:"𝕔";s:1:"c";s:4:"𝕕";s:1:"d";s:4:"𝕖";s:1:"e";s:4:"𝕗";s:1:"f";s:4:"𝕘";s:1:"g";s:4:"𝕙";s:1:"h";s:4:"𝕚";s:1:"i";s:4:"𝕛";s:1:"j";s:4:"𝕜";s:1:"k";s:4:"𝕝";s:1:"l";s:4:"𝕞";s:1:"m";s:4:"𝕟";s:1:"n";s:4:"𝕠";s:1:"o";s:4:"𝕡";s:1:"p";s:4:"𝕢";s:1:"q";s:4:"𝕣";s:1:"r";s:4:"𝕤";s:1:"s";s:4:"𝕥";s:1:"t";s:4:"𝕦";s:1:"u";s:4:"𝕧";s:1:"v";s:4:"𝕨";s:1:"w";s:4:"𝕩";s:1:"x";s:4:"𝕪";s:1:"y";s:4:"𝕫";s:1:"z";s:4:"𝕬";s:1:"A";s:4:"𝕭";s:1:"B";s:4:"𝕮";s:1:"C";s:4:"𝕯";s:1:"D";s:4:"𝕰";s:1:"E";s:4:"𝕱";s:1:"F";s:4:"𝕲";s:1:"G";s:4:"𝕳";s:1:"H";s:4:"𝕴";s:1:"I";s:4:"𝕵";s:1:"J";s:4:"𝕶";s:1:"K";s:4:"𝕷";s:1:"L";s:4:"𝕸";s:1:"M";s:4:"𝕹";s:1:"N";s:4:"𝕺";s:1:"O";s:4:"𝕻";s:1:"P";s:4:"𝕼";s:1:"Q";s:4:"𝕽";s:1:"R";s:4:"𝕾";s:1:"S";s:4:"𝕿";s:1:"T";s:4:"𝖀";s:1:"U";s:4:"𝖁";s:1:"V";s:4:"𝖂";s:1:"W";s:4:"𝖃";s:1:"X";s:4:"𝖄";s:1:"Y";s:4:"𝖅";s:1:"Z";s:4:"𝖆";s:1:"a";s:4:"𝖇";s:1:"b";s:4:"𝖈";s:1:"c";s:4:"𝖉";s:1:"d";s:4:"𝖊";s:1:"e";s:4:"𝖋";s:1:"f";s:4:"𝖌";s:1:"g";s:4:"𝖍";s:1:"h";s:4:"𝖎";s:1:"i";s:4:"𝖏";s:1:"j";s:4:"𝖐";s:1:"k";s:4:"𝖑";s:1:"l";s:4:"𝖒";s:1:"m";s:4:"𝖓";s:1:"n";s:4:"𝖔";s:1:"o";s:4:"𝖕";s:1:"p";s:4:"𝖖";s:1:"q";s:4:"𝖗";s:1:"r";s:4:"𝖘";s:1:"s";s:4:"𝖙";s:1:"t";s:4:"𝖚";s:1:"u";s:4:"𝖛";s:1:"v";s:4:"𝖜";s:1:"w";s:4:"𝖝";s:1:"x";s:4:"𝖞";s:1:"y";s:4:"𝖟";s:1:"z";s:4:"𝖠";s:1:"A";s:4:"𝖡";s:1:"B";s:4:"𝖢";s:1:"C";s:4:"𝖣";s:1:"D";s:4:"𝖤";s:1:"E";s:4:"𝖥";s:1:"F";s:4:"𝖦";s:1:"G";s:4:"𝖧";s:1:"H";s:4:"𝖨";s:1:"I";s:4:"𝖩";s:1:"J";s:4:"𝖪";s:1:"K";s:4:"𝖫";s:1:"L";s:4:"𝖬";s:1:"M";s:4:"𝖭";s:1:"N";s:4:"𝖮";s:1:"O";s:4:"𝖯";s:1:"P";s:4:"𝖰";s:1:"Q";s:4:"𝖱";s:1:"R";s:4:"𝖲";s:1:"S";s:4:"𝖳";s:1:"T";s:4:"𝖴";s:1:"U";s:4:"𝖵";s:1:"V";s:4:"𝖶";s:1:"W";s:4:"𝖷";s:1:"X";s:4:"𝖸";s:1:"Y";s:4:"𝖹";s:1:"Z";s:4:"𝖺";s:1:"a";s:4:"𝖻";s:1:"b";s:4:"𝖼";s:1:"c";s:4:"𝖽";s:1:"d";s:4:"𝖾";s:1:"e";s:4:"𝖿";s:1:"f";s:4:"𝗀";s:1:"g";s:4:"𝗁";s:1:"h";s:4:"𝗂";s:1:"i";s:4:"𝗃";s:1:"j";s:4:"𝗄";s:1:"k";s:4:"𝗅";s:1:"l";s:4:"𝗆";s:1:"m";s:4:"𝗇";s:1:"n";s:4:"𝗈";s:1:"o";s:4:"𝗉";s:1:"p";s:4:"𝗊";s:1:"q";s:4:"𝗋";s:1:"r";s:4:"𝗌";s:1:"s";s:4:"𝗍";s:1:"t";s:4:"𝗎";s:1:"u";s:4:"𝗏";s:1:"v";s:4:"𝗐";s:1:"w";s:4:"𝗑";s:1:"x";s:4:"𝗒";s:1:"y";s:4:"𝗓";s:1:"z";s:4:"𝗔";s:1:"A";s:4:"𝗕";s:1:"B";s:4:"𝗖";s:1:"C";s:4:"𝗗";s:1:"D";s:4:"𝗘";s:1:"E";s:4:"𝗙";s:1:"F";s:4:"𝗚";s:1:"G";s:4:"𝗛";s:1:"H";s:4:"𝗜";s:1:"I";s:4:"𝗝";s:1:"J";s:4:"𝗞";s:1:"K";s:4:"𝗟";s:1:"L";s:4:"𝗠";s:1:"M";s:4:"𝗡";s:1:"N";s:4:"𝗢";s:1:"O";s:4:"𝗣";s:1:"P";s:4:"𝗤";s:1:"Q";s:4:"𝗥";s:1:"R";s:4:"𝗦";s:1:"S";s:4:"𝗧";s:1:"T";s:4:"𝗨";s:1:"U";s:4:"𝗩";s:1:"V";s:4:"𝗪";s:1:"W";s:4:"𝗫";s:1:"X";s:4:"𝗬";s:1:"Y";s:4:"𝗭";s:1:"Z";s:4:"𝗮";s:1:"a";s:4:"𝗯";s:1:"b";s:4:"𝗰";s:1:"c";s:4:"𝗱";s:1:"d";s:4:"𝗲";s:1:"e";s:4:"𝗳";s:1:"f";s:4:"𝗴";s:1:"g";s:4:"𝗵";s:1:"h";s:4:"𝗶";s:1:"i";s:4:"𝗷";s:1:"j";s:4:"𝗸";s:1:"k";s:4:"𝗹";s:1:"l";s:4:"𝗺";s:1:"m";s:4:"𝗻";s:1:"n";s:4:"𝗼";s:1:"o";s:4:"𝗽";s:1:"p";s:4:"𝗾";s:1:"q";s:4:"𝗿";s:1:"r";s:4:"𝘀";s:1:"s";s:4:"𝘁";s:1:"t";s:4:"𝘂";s:1:"u";s:4:"𝘃";s:1:"v";s:4:"𝘄";s:1:"w";s:4:"𝘅";s:1:"x";s:4:"𝘆";s:1:"y";s:4:"𝘇";s:1:"z";s:4:"𝘈";s:1:"A";s:4:"𝘉";s:1:"B";s:4:"𝘊";s:1:"C";s:4:"𝘋";s:1:"D";s:4:"𝘌";s:1:"E";s:4:"𝘍";s:1:"F";s:4:"𝘎";s:1:"G";s:4:"𝘏";s:1:"H";s:4:"𝘐";s:1:"I";s:4:"𝘑";s:1:"J";s:4:"𝘒";s:1:"K";s:4:"𝘓";s:1:"L";s:4:"𝘔";s:1:"M";s:4:"𝘕";s:1:"N";s:4:"𝘖";s:1:"O";s:4:"𝘗";s:1:"P";s:4:"𝘘";s:1:"Q";s:4:"𝘙";s:1:"R";s:4:"𝘚";s:1:"S";s:4:"𝘛";s:1:"T";s:4:"𝘜";s:1:"U";s:4:"𝘝";s:1:"V";s:4:"𝘞";s:1:"W";s:4:"𝘟";s:1:"X";s:4:"𝘠";s:1:"Y";s:4:"𝘡";s:1:"Z";s:4:"𝘢";s:1:"a";s:4:"𝘣";s:1:"b";s:4:"𝘤";s:1:"c";s:4:"𝘥";s:1:"d";s:4:"𝘦";s:1:"e";s:4:"𝘧";s:1:"f";s:4:"𝘨";s:1:"g";s:4:"𝘩";s:1:"h";s:4:"𝘪";s:1:"i";s:4:"𝘫";s:1:"j";s:4:"𝘬";s:1:"k";s:4:"𝘭";s:1:"l";s:4:"𝘮";s:1:"m";s:4:"𝘯";s:1:"n";s:4:"𝘰";s:1:"o";s:4:"𝘱";s:1:"p";s:4:"𝘲";s:1:"q";s:4:"𝘳";s:1:"r";s:4:"𝘴";s:1:"s";s:4:"𝘵";s:1:"t";s:4:"𝘶";s:1:"u";s:4:"𝘷";s:1:"v";s:4:"𝘸";s:1:"w";s:4:"𝘹";s:1:"x";s:4:"𝘺";s:1:"y";s:4:"𝘻";s:1:"z";s:4:"𝘼";s:1:"A";s:4:"𝘽";s:1:"B";s:4:"𝘾";s:1:"C";s:4:"𝘿";s:1:"D";s:4:"𝙀";s:1:"E";s:4:"𝙁";s:1:"F";s:4:"𝙂";s:1:"G";s:4:"𝙃";s:1:"H";s:4:"𝙄";s:1:"I";s:4:"𝙅";s:1:"J";s:4:"𝙆";s:1:"K";s:4:"𝙇";s:1:"L";s:4:"𝙈";s:1:"M";s:4:"𝙉";s:1:"N";s:4:"𝙊";s:1:"O";s:4:"𝙋";s:1:"P";s:4:"𝙌";s:1:"Q";s:4:"𝙍";s:1:"R";s:4:"𝙎";s:1:"S";s:4:"𝙏";s:1:"T";s:4:"𝙐";s:1:"U";s:4:"𝙑";s:1:"V";s:4:"𝙒";s:1:"W";s:4:"𝙓";s:1:"X";s:4:"𝙔";s:1:"Y";s:4:"𝙕";s:1:"Z";s:4:"𝙖";s:1:"a";s:4:"𝙗";s:1:"b";s:4:"𝙘";s:1:"c";s:4:"𝙙";s:1:"d";s:4:"𝙚";s:1:"e";s:4:"𝙛";s:1:"f";s:4:"𝙜";s:1:"g";s:4:"𝙝";s:1:"h";s:4:"𝙞";s:1:"i";s:4:"𝙟";s:1:"j";s:4:"𝙠";s:1:"k";s:4:"𝙡";s:1:"l";s:4:"𝙢";s:1:"m";s:4:"𝙣";s:1:"n";s:4:"𝙤";s:1:"o";s:4:"𝙥";s:1:"p";s:4:"𝙦";s:1:"q";s:4:"𝙧";s:1:"r";s:4:"𝙨";s:1:"s";s:4:"𝙩";s:1:"t";s:4:"𝙪";s:1:"u";s:4:"𝙫";s:1:"v";s:4:"𝙬";s:1:"w";s:4:"𝙭";s:1:"x";s:4:"𝙮";s:1:"y";s:4:"𝙯";s:1:"z";s:4:"𝙰";s:1:"A";s:4:"𝙱";s:1:"B";s:4:"𝙲";s:1:"C";s:4:"𝙳";s:1:"D";s:4:"𝙴";s:1:"E";s:4:"𝙵";s:1:"F";s:4:"𝙶";s:1:"G";s:4:"𝙷";s:1:"H";s:4:"𝙸";s:1:"I";s:4:"𝙹";s:1:"J";s:4:"𝙺";s:1:"K";s:4:"𝙻";s:1:"L";s:4:"𝙼";s:1:"M";s:4:"𝙽";s:1:"N";s:4:"𝙾";s:1:"O";s:4:"𝙿";s:1:"P";s:4:"𝚀";s:1:"Q";s:4:"𝚁";s:1:"R";s:4:"𝚂";s:1:"S";s:4:"𝚃";s:1:"T";s:4:"𝚄";s:1:"U";s:4:"𝚅";s:1:"V";s:4:"𝚆";s:1:"W";s:4:"𝚇";s:1:"X";s:4:"𝚈";s:1:"Y";s:4:"𝚉";s:1:"Z";s:4:"𝚊";s:1:"a";s:4:"𝚋";s:1:"b";s:4:"𝚌";s:1:"c";s:4:"𝚍";s:1:"d";s:4:"𝚎";s:1:"e";s:4:"𝚏";s:1:"f";s:4:"𝚐";s:1:"g";s:4:"𝚑";s:1:"h";s:4:"𝚒";s:1:"i";s:4:"𝚓";s:1:"j";s:4:"𝚔";s:1:"k";s:4:"𝚕";s:1:"l";s:4:"𝚖";s:1:"m";s:4:"𝚗";s:1:"n";s:4:"𝚘";s:1:"o";s:4:"𝚙";s:1:"p";s:4:"𝚚";s:1:"q";s:4:"𝚛";s:1:"r";s:4:"𝚜";s:1:"s";s:4:"𝚝";s:1:"t";s:4:"𝚞";s:1:"u";s:4:"𝚟";s:1:"v";s:4:"𝚠";s:1:"w";s:4:"𝚡";s:1:"x";s:4:"𝚢";s:1:"y";s:4:"𝚣";s:1:"z";s:4:"𝚤";s:2:"ı";s:4:"𝚥";s:2:"ȷ";s:4:"𝚨";s:2:"Α";s:4:"𝚩";s:2:"Β";s:4:"𝚪";s:2:"Γ";s:4:"𝚫";s:2:"Δ";s:4:"𝚬";s:2:"Ε";s:4:"𝚭";s:2:"Ζ";s:4:"𝚮";s:2:"Η";s:4:"𝚯";s:2:"Θ";s:4:"𝚰";s:2:"Ι";s:4:"𝚱";s:2:"Κ";s:4:"𝚲";s:2:"Λ";s:4:"𝚳";s:2:"Μ";s:4:"𝚴";s:2:"Ν";s:4:"𝚵";s:2:"Ξ";s:4:"𝚶";s:2:"Ο";s:4:"𝚷";s:2:"Π";s:4:"𝚸";s:2:"Ρ";s:4:"𝚹";s:2:"Θ";s:4:"𝚺";s:2:"Σ";s:4:"𝚻";s:2:"Τ";s:4:"𝚼";s:2:"Υ";s:4:"𝚽";s:2:"Φ";s:4:"𝚾";s:2:"Χ";s:4:"𝚿";s:2:"Ψ";s:4:"𝛀";s:2:"Ω";s:4:"𝛁";s:3:"∇";s:4:"𝛂";s:2:"α";s:4:"𝛃";s:2:"β";s:4:"𝛄";s:2:"γ";s:4:"𝛅";s:2:"δ";s:4:"𝛆";s:2:"ε";s:4:"𝛇";s:2:"ζ";s:4:"𝛈";s:2:"η";s:4:"𝛉";s:2:"θ";s:4:"𝛊";s:2:"ι";s:4:"𝛋";s:2:"κ";s:4:"𝛌";s:2:"λ";s:4:"𝛍";s:2:"μ";s:4:"𝛎";s:2:"ν";s:4:"𝛏";s:2:"ξ";s:4:"𝛐";s:2:"ο";s:4:"𝛑";s:2:"π";s:4:"𝛒";s:2:"ρ";s:4:"𝛓";s:2:"ς";s:4:"𝛔";s:2:"σ";s:4:"𝛕";s:2:"τ";s:4:"𝛖";s:2:"υ";s:4:"𝛗";s:2:"φ";s:4:"𝛘";s:2:"χ";s:4:"𝛙";s:2:"ψ";s:4:"𝛚";s:2:"ω";s:4:"𝛛";s:3:"∂";s:4:"𝛜";s:2:"ε";s:4:"𝛝";s:2:"θ";s:4:"𝛞";s:2:"κ";s:4:"𝛟";s:2:"φ";s:4:"𝛠";s:2:"ρ";s:4:"𝛡";s:2:"π";s:4:"𝛢";s:2:"Α";s:4:"𝛣";s:2:"Β";s:4:"𝛤";s:2:"Γ";s:4:"𝛥";s:2:"Δ";s:4:"𝛦";s:2:"Ε";s:4:"𝛧";s:2:"Ζ";s:4:"𝛨";s:2:"Η";s:4:"𝛩";s:2:"Θ";s:4:"𝛪";s:2:"Ι";s:4:"𝛫";s:2:"Κ";s:4:"𝛬";s:2:"Λ";s:4:"𝛭";s:2:"Μ";s:4:"𝛮";s:2:"Ν";s:4:"𝛯";s:2:"Ξ";s:4:"𝛰";s:2:"Ο";s:4:"𝛱";s:2:"Π";s:4:"𝛲";s:2:"Ρ";s:4:"𝛳";s:2:"Θ";s:4:"𝛴";s:2:"Σ";s:4:"𝛵";s:2:"Τ";s:4:"𝛶";s:2:"Υ";s:4:"𝛷";s:2:"Φ";s:4:"𝛸";s:2:"Χ";s:4:"𝛹";s:2:"Ψ";s:4:"𝛺";s:2:"Ω";s:4:"𝛻";s:3:"∇";s:4:"𝛼";s:2:"α";s:4:"𝛽";s:2:"β";s:4:"𝛾";s:2:"γ";s:4:"𝛿";s:2:"δ";s:4:"𝜀";s:2:"ε";s:4:"𝜁";s:2:"ζ";s:4:"𝜂";s:2:"η";s:4:"𝜃";s:2:"θ";s:4:"𝜄";s:2:"ι";s:4:"𝜅";s:2:"κ";s:4:"𝜆";s:2:"λ";s:4:"𝜇";s:2:"μ";s:4:"𝜈";s:2:"ν";s:4:"𝜉";s:2:"ξ";s:4:"𝜊";s:2:"ο";s:4:"𝜋";s:2:"π";s:4:"𝜌";s:2:"ρ";s:4:"𝜍";s:2:"ς";s:4:"𝜎";s:2:"σ";s:4:"𝜏";s:2:"τ";s:4:"𝜐";s:2:"υ";s:4:"𝜑";s:2:"φ";s:4:"𝜒";s:2:"χ";s:4:"𝜓";s:2:"ψ";s:4:"𝜔";s:2:"ω";s:4:"𝜕";s:3:"∂";s:4:"𝜖";s:2:"ε";s:4:"𝜗";s:2:"θ";s:4:"𝜘";s:2:"κ";s:4:"𝜙";s:2:"φ";s:4:"𝜚";s:2:"ρ";s:4:"𝜛";s:2:"π";s:4:"𝜜";s:2:"Α";s:4:"𝜝";s:2:"Β";s:4:"𝜞";s:2:"Γ";s:4:"𝜟";s:2:"Δ";s:4:"𝜠";s:2:"Ε";s:4:"𝜡";s:2:"Ζ";s:4:"𝜢";s:2:"Η";s:4:"𝜣";s:2:"Θ";s:4:"𝜤";s:2:"Ι";s:4:"𝜥";s:2:"Κ";s:4:"𝜦";s:2:"Λ";s:4:"𝜧";s:2:"Μ";s:4:"𝜨";s:2:"Ν";s:4:"𝜩";s:2:"Ξ";s:4:"𝜪";s:2:"Ο";s:4:"𝜫";s:2:"Π";s:4:"𝜬";s:2:"Ρ";s:4:"𝜭";s:2:"Θ";s:4:"𝜮";s:2:"Σ";s:4:"𝜯";s:2:"Τ";s:4:"𝜰";s:2:"Υ";s:4:"𝜱";s:2:"Φ";s:4:"𝜲";s:2:"Χ";s:4:"𝜳";s:2:"Ψ";s:4:"𝜴";s:2:"Ω";s:4:"𝜵";s:3:"∇";s:4:"𝜶";s:2:"α";s:4:"𝜷";s:2:"β";s:4:"𝜸";s:2:"γ";s:4:"𝜹";s:2:"δ";s:4:"𝜺";s:2:"ε";s:4:"𝜻";s:2:"ζ";s:4:"𝜼";s:2:"η";s:4:"𝜽";s:2:"θ";s:4:"𝜾";s:2:"ι";s:4:"𝜿";s:2:"κ";s:4:"𝝀";s:2:"λ";s:4:"𝝁";s:2:"μ";s:4:"𝝂";s:2:"ν";s:4:"𝝃";s:2:"ξ";s:4:"𝝄";s:2:"ο";s:4:"𝝅";s:2:"π";s:4:"𝝆";s:2:"ρ";s:4:"𝝇";s:2:"ς";s:4:"𝝈";s:2:"σ";s:4:"𝝉";s:2:"τ";s:4:"𝝊";s:2:"υ";s:4:"𝝋";s:2:"φ";s:4:"𝝌";s:2:"χ";s:4:"𝝍";s:2:"ψ";s:4:"𝝎";s:2:"ω";s:4:"𝝏";s:3:"∂";s:4:"𝝐";s:2:"ε";s:4:"𝝑";s:2:"θ";s:4:"𝝒";s:2:"κ";s:4:"𝝓";s:2:"φ";s:4:"𝝔";s:2:"ρ";s:4:"𝝕";s:2:"π";s:4:"𝝖";s:2:"Α";s:4:"𝝗";s:2:"Β";s:4:"𝝘";s:2:"Γ";s:4:"𝝙";s:2:"Δ";s:4:"𝝚";s:2:"Ε";s:4:"𝝛";s:2:"Ζ";s:4:"𝝜";s:2:"Η";s:4:"𝝝";s:2:"Θ";s:4:"𝝞";s:2:"Ι";s:4:"𝝟";s:2:"Κ";s:4:"𝝠";s:2:"Λ";s:4:"𝝡";s:2:"Μ";s:4:"𝝢";s:2:"Ν";s:4:"𝝣";s:2:"Ξ";s:4:"𝝤";s:2:"Ο";s:4:"𝝥";s:2:"Π";s:4:"𝝦";s:2:"Ρ";s:4:"𝝧";s:2:"Θ";s:4:"𝝨";s:2:"Σ";s:4:"𝝩";s:2:"Τ";s:4:"𝝪";s:2:"Υ";s:4:"𝝫";s:2:"Φ";s:4:"𝝬";s:2:"Χ";s:4:"𝝭";s:2:"Ψ";s:4:"𝝮";s:2:"Ω";s:4:"𝝯";s:3:"∇";s:4:"𝝰";s:2:"α";s:4:"𝝱";s:2:"β";s:4:"𝝲";s:2:"γ";s:4:"𝝳";s:2:"δ";s:4:"𝝴";s:2:"ε";s:4:"𝝵";s:2:"ζ";s:4:"𝝶";s:2:"η";s:4:"𝝷";s:2:"θ";s:4:"𝝸";s:2:"ι";s:4:"𝝹";s:2:"κ";s:4:"𝝺";s:2:"λ";s:4:"𝝻";s:2:"μ";s:4:"𝝼";s:2:"ν";s:4:"𝝽";s:2:"ξ";s:4:"𝝾";s:2:"ο";s:4:"𝝿";s:2:"π";s:4:"𝞀";s:2:"ρ";s:4:"𝞁";s:2:"ς";s:4:"𝞂";s:2:"σ";s:4:"𝞃";s:2:"τ";s:4:"𝞄";s:2:"υ";s:4:"𝞅";s:2:"φ";s:4:"𝞆";s:2:"χ";s:4:"𝞇";s:2:"ψ";s:4:"𝞈";s:2:"ω";s:4:"𝞉";s:3:"∂";s:4:"𝞊";s:2:"ε";s:4:"𝞋";s:2:"θ";s:4:"𝞌";s:2:"κ";s:4:"𝞍";s:2:"φ";s:4:"𝞎";s:2:"ρ";s:4:"𝞏";s:2:"π";s:4:"𝞐";s:2:"Α";s:4:"𝞑";s:2:"Β";s:4:"𝞒";s:2:"Γ";s:4:"𝞓";s:2:"Δ";s:4:"𝞔";s:2:"Ε";s:4:"𝞕";s:2:"Ζ";s:4:"𝞖";s:2:"Η";s:4:"𝞗";s:2:"Θ";s:4:"𝞘";s:2:"Ι";s:4:"𝞙";s:2:"Κ";s:4:"𝞚";s:2:"Λ";s:4:"𝞛";s:2:"Μ";s:4:"𝞜";s:2:"Ν";s:4:"𝞝";s:2:"Ξ";s:4:"𝞞";s:2:"Ο";s:4:"𝞟";s:2:"Π";s:4:"𝞠";s:2:"Ρ";s:4:"𝞡";s:2:"Θ";s:4:"𝞢";s:2:"Σ";s:4:"𝞣";s:2:"Τ";s:4:"𝞤";s:2:"Υ";s:4:"𝞥";s:2:"Φ";s:4:"𝞦";s:2:"Χ";s:4:"𝞧";s:2:"Ψ";s:4:"𝞨";s:2:"Ω";s:4:"𝞩";s:3:"∇";s:4:"𝞪";s:2:"α";s:4:"𝞫";s:2:"β";s:4:"𝞬";s:2:"γ";s:4:"𝞭";s:2:"δ";s:4:"𝞮";s:2:"ε";s:4:"𝞯";s:2:"ζ";s:4:"𝞰";s:2:"η";s:4:"𝞱";s:2:"θ";s:4:"𝞲";s:2:"ι";s:4:"𝞳";s:2:"κ";s:4:"𝞴";s:2:"λ";s:4:"𝞵";s:2:"μ";s:4:"𝞶";s:2:"ν";s:4:"𝞷";s:2:"ξ";s:4:"𝞸";s:2:"ο";s:4:"𝞹";s:2:"π";s:4:"𝞺";s:2:"ρ";s:4:"𝞻";s:2:"ς";s:4:"𝞼";s:2:"σ";s:4:"𝞽";s:2:"τ";s:4:"𝞾";s:2:"υ";s:4:"𝞿";s:2:"φ";s:4:"𝟀";s:2:"χ";s:4:"𝟁";s:2:"ψ";s:4:"𝟂";s:2:"ω";s:4:"𝟃";s:3:"∂";s:4:"𝟄";s:2:"ε";s:4:"𝟅";s:2:"θ";s:4:"𝟆";s:2:"κ";s:4:"𝟇";s:2:"φ";s:4:"𝟈";s:2:"ρ";s:4:"𝟉";s:2:"π";s:4:"𝟊";s:2:"Ϝ";s:4:"𝟋";s:2:"ϝ";s:4:"𝟎";s:1:"0";s:4:"𝟏";s:1:"1";s:4:"𝟐";s:1:"2";s:4:"𝟑";s:1:"3";s:4:"𝟒";s:1:"4";s:4:"𝟓";s:1:"5";s:4:"𝟔";s:1:"6";s:4:"𝟕";s:1:"7";s:4:"𝟖";s:1:"8";s:4:"𝟗";s:1:"9";s:4:"𝟘";s:1:"0";s:4:"𝟙";s:1:"1";s:4:"𝟚";s:1:"2";s:4:"𝟛";s:1:"3";s:4:"𝟜";s:1:"4";s:4:"𝟝";s:1:"5";s:4:"𝟞";s:1:"6";s:4:"𝟟";s:1:"7";s:4:"𝟠";s:1:"8";s:4:"𝟡";s:1:"9";s:4:"𝟢";s:1:"0";s:4:"𝟣";s:1:"1";s:4:"𝟤";s:1:"2";s:4:"𝟥";s:1:"3";s:4:"𝟦";s:1:"4";s:4:"𝟧";s:1:"5";s:4:"𝟨";s:1:"6";s:4:"𝟩";s:1:"7";s:4:"𝟪";s:1:"8";s:4:"𝟫";s:1:"9";s:4:"𝟬";s:1:"0";s:4:"𝟭";s:1:"1";s:4:"𝟮";s:1:"2";s:4:"𝟯";s:1:"3";s:4:"𝟰";s:1:"4";s:4:"𝟱";s:1:"5";s:4:"𝟲";s:1:"6";s:4:"𝟳";s:1:"7";s:4:"𝟴";s:1:"8";s:4:"𝟵";s:1:"9";s:4:"𝟶";s:1:"0";s:4:"𝟷";s:1:"1";s:4:"𝟸";s:1:"2";s:4:"𝟹";s:1:"3";s:4:"𝟺";s:1:"4";s:4:"𝟻";s:1:"5";s:4:"𝟼";s:1:"6";s:4:"𝟽";s:1:"7";s:4:"𝟾";s:1:"8";s:4:"𝟿";s:1:"9";s:4:"🄀";s:2:"0.";s:4:"🄁";s:2:"0,";s:4:"🄂";s:2:"1,";s:4:"🄃";s:2:"2,";s:4:"🄄";s:2:"3,";s:4:"🄅";s:2:"4,";s:4:"🄆";s:2:"5,";s:4:"🄇";s:2:"6,";s:4:"🄈";s:2:"7,";s:4:"🄉";s:2:"8,";s:4:"🄊";s:2:"9,";s:4:"🄐";s:3:"(A)";s:4:"🄑";s:3:"(B)";s:4:"🄒";s:3:"(C)";s:4:"🄓";s:3:"(D)";s:4:"🄔";s:3:"(E)";s:4:"🄕";s:3:"(F)";s:4:"🄖";s:3:"(G)";s:4:"🄗";s:3:"(H)";s:4:"🄘";s:3:"(I)";s:4:"🄙";s:3:"(J)";s:4:"🄚";s:3:"(K)";s:4:"🄛";s:3:"(L)";s:4:"🄜";s:3:"(M)";s:4:"🄝";s:3:"(N)";s:4:"🄞";s:3:"(O)";s:4:"🄟";s:3:"(P)";s:4:"🄠";s:3:"(Q)";s:4:"🄡";s:3:"(R)";s:4:"🄢";s:3:"(S)";s:4:"🄣";s:3:"(T)";s:4:"🄤";s:3:"(U)";s:4:"🄥";s:3:"(V)";s:4:"🄦";s:3:"(W)";s:4:"🄧";s:3:"(X)";s:4:"🄨";s:3:"(Y)";s:4:"🄩";s:3:"(Z)";s:4:"🄪";s:7:"〔S〕";s:4:"🄫";s:1:"C";s:4:"🄬";s:1:"R";s:4:"🄭";s:2:"CD";s:4:"🄮";s:2:"WZ";s:4:"🄰";s:1:"A";s:4:"🄱";s:1:"B";s:4:"🄲";s:1:"C";s:4:"🄳";s:1:"D";s:4:"🄴";s:1:"E";s:4:"🄵";s:1:"F";s:4:"🄶";s:1:"G";s:4:"🄷";s:1:"H";s:4:"🄸";s:1:"I";s:4:"🄹";s:1:"J";s:4:"🄺";s:1:"K";s:4:"🄻";s:1:"L";s:4:"🄼";s:1:"M";s:4:"🄽";s:1:"N";s:4:"🄾";s:1:"O";s:4:"🄿";s:1:"P";s:4:"🅀";s:1:"Q";s:4:"🅁";s:1:"R";s:4:"🅂";s:1:"S";s:4:"🅃";s:1:"T";s:4:"🅄";s:1:"U";s:4:"🅅";s:1:"V";s:4:"🅆";s:1:"W";s:4:"🅇";s:1:"X";s:4:"🅈";s:1:"Y";s:4:"🅉";s:1:"Z";s:4:"🅊";s:2:"HV";s:4:"🅋";s:2:"MV";s:4:"🅌";s:2:"SD";s:4:"🅍";s:2:"SS";s:4:"🅎";s:3:"PPV";s:4:"🅏";s:2:"WC";s:4:"🆐";s:2:"DJ";s:4:"🈀";s:6:"ほか";s:4:"🈁";s:6:"ココ";s:4:"🈂";s:3:"サ";s:4:"🈐";s:3:"手";s:4:"🈑";s:3:"字";s:4:"🈒";s:3:"双";s:4:"🈓";s:6:"デ";s:4:"🈔";s:3:"二";s:4:"🈕";s:3:"多";s:4:"🈖";s:3:"解";s:4:"🈗";s:3:"天";s:4:"🈘";s:3:"交";s:4:"🈙";s:3:"映";s:4:"🈚";s:3:"無";s:4:"🈛";s:3:"料";s:4:"🈜";s:3:"前";s:4:"🈝";s:3:"後";s:4:"🈞";s:3:"再";s:4:"🈟";s:3:"新";s:4:"🈠";s:3:"初";s:4:"🈡";s:3:"終";s:4:"🈢";s:3:"生";s:4:"🈣";s:3:"販";s:4:"🈤";s:3:"声";s:4:"🈥";s:3:"吹";s:4:"🈦";s:3:"演";s:4:"🈧";s:3:"投";s:4:"🈨";s:3:"捕";s:4:"🈩";s:3:"一";s:4:"🈪";s:3:"三";s:4:"🈫";s:3:"遊";s:4:"🈬";s:3:"左";s:4:"🈭";s:3:"中";s:4:"🈮";s:3:"右";s:4:"🈯";s:3:"指";s:4:"🈰";s:3:"走";s:4:"🈱";s:3:"打";s:4:"🈲";s:3:"禁";s:4:"🈳";s:3:"空";s:4:"🈴";s:3:"合";s:4:"🈵";s:3:"満";s:4:"🈶";s:3:"有";s:4:"🈷";s:3:"月";s:4:"🈸";s:3:"申";s:4:"🈹";s:3:"割";s:4:"🈺";s:3:"営";s:4:"🉀";s:9:"〔本〕";s:4:"🉁";s:9:"〔三〕";s:4:"🉂";s:9:"〔二〕";s:4:"🉃";s:9:"〔安〕";s:4:"🉄";s:9:"〔点〕";s:4:"🉅";s:9:"〔打〕";s:4:"🉆";s:9:"〔盗〕";s:4:"🉇";s:9:"〔勝〕";s:4:"🉈";s:9:"〔敗〕";s:4:"🉐";s:3:"得";s:4:"🉑";s:3:"可";s:4:"丽";s:3:"丽";s:4:"丸";s:3:"丸";s:4:"乁";s:3:"乁";s:4:"𠄢";s:4:"𠄢";s:4:"你";s:3:"你";s:4:"侮";s:3:"侮";s:4:"侻";s:3:"侻";s:4:"倂";s:3:"倂";s:4:"偺";s:3:"偺";s:4:"備";s:3:"備";s:4:"僧";s:3:"僧";s:4:"像";s:3:"像";s:4:"㒞";s:3:"㒞";s:4:"𠘺";s:4:"𠘺";s:4:"免";s:3:"免";s:4:"兔";s:3:"兔";s:4:"兤";s:3:"兤";s:4:"具";s:3:"具";s:4:"𠔜";s:4:"𠔜";s:4:"㒹";s:3:"㒹";s:4:"內";s:3:"內";s:4:"再";s:3:"再";s:4:"𠕋";s:4:"𠕋";s:4:"冗";s:3:"冗";s:4:"冤";s:3:"冤";s:4:"仌";s:3:"仌";s:4:"冬";s:3:"冬";s:4:"况";s:3:"况";s:4:"𩇟";s:4:"𩇟";s:4:"凵";s:3:"凵";s:4:"刃";s:3:"刃";s:4:"㓟";s:3:"㓟";s:4:"刻";s:3:"刻";s:4:"剆";s:3:"剆";s:4:"割";s:3:"割";s:4:"剷";s:3:"剷";s:4:"㔕";s:3:"㔕";s:4:"勇";s:3:"勇";s:4:"勉";s:3:"勉";s:4:"勤";s:3:"勤";s:4:"勺";s:3:"勺";s:4:"包";s:3:"包";s:4:"匆";s:3:"匆";s:4:"北";s:3:"北";s:4:"卉";s:3:"卉";s:4:"卑";s:3:"卑";s:4:"博";s:3:"博";s:4:"即";s:3:"即";s:4:"卽";s:3:"卽";s:4:"卿";s:3:"卿";s:4:"卿";s:3:"卿";s:4:"卿";s:3:"卿";s:4:"𠨬";s:4:"𠨬";s:4:"灰";s:3:"灰";s:4:"及";s:3:"及";s:4:"叟";s:3:"叟";s:4:"𠭣";s:4:"𠭣";s:4:"叫";s:3:"叫";s:4:"叱";s:3:"叱";s:4:"吆";s:3:"吆";s:4:"咞";s:3:"咞";s:4:"吸";s:3:"吸";s:4:"呈";s:3:"呈";s:4:"周";s:3:"周";s:4:"咢";s:3:"咢";s:4:"哶";s:3:"哶";s:4:"唐";s:3:"唐";s:4:"啓";s:3:"啓";s:4:"啣";s:3:"啣";s:4:"善";s:3:"善";s:4:"善";s:3:"善";s:4:"喙";s:3:"喙";s:4:"喫";s:3:"喫";s:4:"喳";s:3:"喳";s:4:"嗂";s:3:"嗂";s:4:"圖";s:3:"圖";s:4:"嘆";s:3:"嘆";s:4:"圗";s:3:"圗";s:4:"噑";s:3:"噑";s:4:"噴";s:3:"噴";s:4:"切";s:3:"切";s:4:"壮";s:3:"壮";s:4:"城";s:3:"城";s:4:"埴";s:3:"埴";s:4:"堍";s:3:"堍";s:4:"型";s:3:"型";s:4:"堲";s:3:"堲";s:4:"報";s:3:"報";s:4:"墬";s:3:"墬";s:4:"𡓤";s:4:"𡓤";s:4:"売";s:3:"売";s:4:"壷";s:3:"壷";s:4:"夆";s:3:"夆";s:4:"多";s:3:"多";s:4:"夢";s:3:"夢";s:4:"奢";s:3:"奢";s:4:"𡚨";s:4:"𡚨";s:4:"𡛪";s:4:"𡛪";s:4:"姬";s:3:"姬";s:4:"娛";s:3:"娛";s:4:"娧";s:3:"娧";s:4:"姘";s:3:"姘";s:4:"婦";s:3:"婦";s:4:"㛮";s:3:"㛮";s:4:"㛼";s:3:"㛼";s:4:"嬈";s:3:"嬈";s:4:"嬾";s:3:"嬾";s:4:"嬾";s:3:"嬾";s:4:"𡧈";s:4:"𡧈";s:4:"寃";s:3:"寃";s:4:"寘";s:3:"寘";s:4:"寧";s:3:"寧";s:4:"寳";s:3:"寳";s:4:"𡬘";s:4:"𡬘";s:4:"寿";s:3:"寿";s:4:"将";s:3:"将";s:4:"当";s:3:"当";s:4:"尢";s:3:"尢";s:4:"㞁";s:3:"㞁";s:4:"屠";s:3:"屠";s:4:"屮";s:3:"屮";s:4:"峀";s:3:"峀";s:4:"岍";s:3:"岍";s:4:"𡷤";s:4:"𡷤";s:4:"嵃";s:3:"嵃";s:4:"𡷦";s:4:"𡷦";s:4:"嵮";s:3:"嵮";s:4:"嵫";s:3:"嵫";s:4:"嵼";s:3:"嵼";s:4:"巡";s:3:"巡";s:4:"巢";s:3:"巢";s:4:"㠯";s:3:"㠯";s:4:"巽";s:3:"巽";s:4:"帨";s:3:"帨";s:4:"帽";s:3:"帽";s:4:"幩";s:3:"幩";s:4:"㡢";s:3:"㡢";s:4:"𢆃";s:4:"𢆃";s:4:"㡼";s:3:"㡼";s:4:"庰";s:3:"庰";s:4:"庳";s:3:"庳";s:4:"庶";s:3:"庶";s:4:"廊";s:3:"廊";s:4:"𪎒";s:4:"𪎒";s:4:"廾";s:3:"廾";s:4:"𢌱";s:4:"𢌱";s:4:"𢌱";s:4:"𢌱";s:4:"舁";s:3:"舁";s:4:"弢";s:3:"弢";s:4:"弢";s:3:"弢";s:4:"㣇";s:3:"㣇";s:4:"𣊸";s:4:"𣊸";s:4:"𦇚";s:4:"𦇚";s:4:"形";s:3:"形";s:4:"彫";s:3:"彫";s:4:"㣣";s:3:"㣣";s:4:"徚";s:3:"徚";s:4:"忍";s:3:"忍";s:4:"志";s:3:"志";s:4:"忹";s:3:"忹";s:4:"悁";s:3:"悁";s:4:"㤺";s:3:"㤺";s:4:"㤜";s:3:"㤜";s:4:"悔";s:3:"悔";s:4:"𢛔";s:4:"𢛔";s:4:"惇";s:3:"惇";s:4:"慈";s:3:"慈";s:4:"慌";s:3:"慌";s:4:"慎";s:3:"慎";s:4:"慌";s:3:"慌";s:4:"慺";s:3:"慺";s:4:"憎";s:3:"憎";s:4:"憲";s:3:"憲";s:4:"憤";s:3:"憤";s:4:"憯";s:3:"憯";s:4:"懞";s:3:"懞";s:4:"懲";s:3:"懲";s:4:"懶";s:3:"懶";s:4:"成";s:3:"成";s:4:"戛";s:3:"戛";s:4:"扝";s:3:"扝";s:4:"抱";s:3:"抱";s:4:"拔";s:3:"拔";s:4:"捐";s:3:"捐";s:4:"𢬌";s:4:"𢬌";s:4:"挽";s:3:"挽";s:4:"拼";s:3:"拼";s:4:"捨";s:3:"捨";s:4:"掃";s:3:"掃";s:4:"揤";s:3:"揤";s:4:"𢯱";s:4:"𢯱";s:4:"搢";s:3:"搢";s:4:"揅";s:3:"揅";s:4:"掩";s:3:"掩";s:4:"㨮";s:3:"㨮";s:4:"摩";s:3:"摩";s:4:"摾";s:3:"摾";s:4:"撝";s:3:"撝";s:4:"摷";s:3:"摷";s:4:"㩬";s:3:"㩬";s:4:"敏";s:3:"敏";s:4:"敬";s:3:"敬";s:4:"𣀊";s:4:"𣀊";s:4:"旣";s:3:"旣";s:4:"書";s:3:"書";s:4:"晉";s:3:"晉";s:4:"㬙";s:3:"㬙";s:4:"暑";s:3:"暑";s:4:"㬈";s:3:"㬈";s:4:"㫤";s:3:"㫤";s:4:"冒";s:3:"冒";s:4:"冕";s:3:"冕";s:4:"最";s:3:"最";s:4:"暜";s:3:"暜";s:4:"肭";s:3:"肭";s:4:"䏙";s:3:"䏙";s:4:"朗";s:3:"朗";s:4:"望";s:3:"望";s:4:"朡";s:3:"朡";s:4:"杞";s:3:"杞";s:4:"杓";s:3:"杓";s:4:"𣏃";s:4:"𣏃";s:4:"㭉";s:3:"㭉";s:4:"柺";s:3:"柺";s:4:"枅";s:3:"枅";s:4:"桒";s:3:"桒";s:4:"梅";s:3:"梅";s:4:"𣑭";s:4:"𣑭";s:4:"梎";s:3:"梎";s:4:"栟";s:3:"栟";s:4:"椔";s:3:"椔";s:4:"㮝";s:3:"㮝";s:4:"楂";s:3:"楂";s:4:"榣";s:3:"榣";s:4:"槪";s:3:"槪";s:4:"檨";s:3:"檨";s:4:"𣚣";s:4:"𣚣";s:4:"櫛";s:3:"櫛";s:4:"㰘";s:3:"㰘";s:4:"次";s:3:"次";s:4:"𣢧";s:4:"𣢧";s:4:"歔";s:3:"歔";s:4:"㱎";s:3:"㱎";s:4:"歲";s:3:"歲";s:4:"殟";s:3:"殟";s:4:"殺";s:3:"殺";s:4:"殻";s:3:"殻";s:4:"𣪍";s:4:"𣪍";s:4:"𡴋";s:4:"𡴋";s:4:"𣫺";s:4:"𣫺";s:4:"汎";s:3:"汎";s:4:"𣲼";s:4:"𣲼";s:4:"沿";s:3:"沿";s:4:"泍";s:3:"泍";s:4:"汧";s:3:"汧";s:4:"洖";s:3:"洖";s:4:"派";s:3:"派";s:4:"海";s:3:"海";s:4:"流";s:3:"流";s:4:"浩";s:3:"浩";s:4:"浸";s:3:"浸";s:4:"涅";s:3:"涅";s:4:"𣴞";s:4:"𣴞";s:4:"洴";s:3:"洴";s:4:"港";s:3:"港";s:4:"湮";s:3:"湮";s:4:"㴳";s:3:"㴳";s:4:"滋";s:3:"滋";s:4:"滇";s:3:"滇";s:4:"𣻑";s:4:"𣻑";s:4:"淹";s:3:"淹";s:4:"潮";s:3:"潮";s:4:"𣽞";s:4:"𣽞";s:4:"𣾎";s:4:"𣾎";s:4:"濆";s:3:"濆";s:4:"瀹";s:3:"瀹";s:4:"瀞";s:3:"瀞";s:4:"瀛";s:3:"瀛";s:4:"㶖";s:3:"㶖";s:4:"灊";s:3:"灊";s:4:"災";s:3:"災";s:4:"灷";s:3:"灷";s:4:"炭";s:3:"炭";s:4:"𠔥";s:4:"𠔥";s:4:"煅";s:3:"煅";s:4:"𤉣";s:4:"𤉣";s:4:"熜";s:3:"熜";s:4:"𤎫";s:4:"𤎫";s:4:"爨";s:3:"爨";s:4:"爵";s:3:"爵";s:4:"牐";s:3:"牐";s:4:"𤘈";s:4:"𤘈";s:4:"犀";s:3:"犀";s:4:"犕";s:3:"犕";s:4:"𤜵";s:4:"𤜵";s:4:"𤠔";s:4:"𤠔";s:4:"獺";s:3:"獺";s:4:"王";s:3:"王";s:4:"㺬";s:3:"㺬";s:4:"玥";s:3:"玥";s:4:"㺸";s:3:"㺸";s:4:"㺸";s:3:"㺸";s:4:"瑇";s:3:"瑇";s:4:"瑜";s:3:"瑜";s:4:"瑱";s:3:"瑱";s:4:"璅";s:3:"璅";s:4:"瓊";s:3:"瓊";s:4:"㼛";s:3:"㼛";s:4:"甤";s:3:"甤";s:4:"𤰶";s:4:"𤰶";s:4:"甾";s:3:"甾";s:4:"𤲒";s:4:"𤲒";s:4:"異";s:3:"異";s:4:"𢆟";s:4:"𢆟";s:4:"瘐";s:3:"瘐";s:4:"𤾡";s:4:"𤾡";s:4:"𤾸";s:4:"𤾸";s:4:"𥁄";s:4:"𥁄";s:4:"㿼";s:3:"㿼";s:4:"䀈";s:3:"䀈";s:4:"直";s:3:"直";s:4:"𥃳";s:4:"𥃳";s:4:"𥃲";s:4:"𥃲";s:4:"𥄙";s:4:"𥄙";s:4:"𥄳";s:4:"𥄳";s:4:"眞";s:3:"眞";s:4:"真";s:3:"真";s:4:"真";s:3:"真";s:4:"睊";s:3:"睊";s:4:"䀹";s:3:"䀹";s:4:"瞋";s:3:"瞋";s:4:"䁆";s:3:"䁆";s:4:"䂖";s:3:"䂖";s:4:"𥐝";s:4:"𥐝";s:4:"硎";s:3:"硎";s:4:"碌";s:3:"碌";s:4:"磌";s:3:"磌";s:4:"䃣";s:3:"䃣";s:4:"𥘦";s:4:"𥘦";s:4:"祖";s:3:"祖";s:4:"𥚚";s:4:"𥚚";s:4:"𥛅";s:4:"𥛅";s:4:"福";s:3:"福";s:4:"秫";s:3:"秫";s:4:"䄯";s:3:"䄯";s:4:"穀";s:3:"穀";s:4:"穊";s:3:"穊";s:4:"穏";s:3:"穏";s:4:"𥥼";s:4:"𥥼";s:4:"𥪧";s:4:"𥪧";s:4:"𥪧";s:4:"𥪧";s:4:"竮";s:3:"竮";s:4:"䈂";s:3:"䈂";s:4:"𥮫";s:4:"𥮫";s:4:"篆";s:3:"篆";s:4:"築";s:3:"築";s:4:"䈧";s:3:"䈧";s:4:"𥲀";s:4:"𥲀";s:4:"糒";s:3:"糒";s:4:"䊠";s:3:"䊠";s:4:"糨";s:3:"糨";s:4:"糣";s:3:"糣";s:4:"紀";s:3:"紀";s:4:"𥾆";s:4:"𥾆";s:4:"絣";s:3:"絣";s:4:"䌁";s:3:"䌁";s:4:"緇";s:3:"緇";s:4:"縂";s:3:"縂";s:4:"繅";s:3:"繅";s:4:"䌴";s:3:"䌴";s:4:"𦈨";s:4:"𦈨";s:4:"𦉇";s:4:"𦉇";s:4:"䍙";s:3:"䍙";s:4:"𦋙";s:4:"𦋙";s:4:"罺";s:3:"罺";s:4:"𦌾";s:4:"𦌾";s:4:"羕";s:3:"羕";s:4:"翺";s:3:"翺";s:4:"者";s:3:"者";s:4:"𦓚";s:4:"𦓚";s:4:"𦔣";s:4:"𦔣";s:4:"聠";s:3:"聠";s:4:"𦖨";s:4:"𦖨";s:4:"聰";s:3:"聰";s:4:"𣍟";s:4:"𣍟";s:4:"䏕";s:3:"䏕";s:4:"育";s:3:"育";s:4:"脃";s:3:"脃";s:4:"䐋";s:3:"䐋";s:4:"脾";s:3:"脾";s:4:"媵";s:3:"媵";s:4:"𦞧";s:4:"𦞧";s:4:"𦞵";s:4:"𦞵";s:4:"𣎓";s:4:"𣎓";s:4:"𣎜";s:4:"𣎜";s:4:"舁";s:3:"舁";s:4:"舄";s:3:"舄";s:4:"辞";s:3:"辞";s:4:"䑫";s:3:"䑫";s:4:"芑";s:3:"芑";s:4:"芋";s:3:"芋";s:4:"芝";s:3:"芝";s:4:"劳";s:3:"劳";s:4:"花";s:3:"花";s:4:"芳";s:3:"芳";s:4:"芽";s:3:"芽";s:4:"苦";s:3:"苦";s:4:"𦬼";s:4:"𦬼";s:4:"若";s:3:"若";s:4:"茝";s:3:"茝";s:4:"荣";s:3:"荣";s:4:"莭";s:3:"莭";s:4:"茣";s:3:"茣";s:4:"莽";s:3:"莽";s:4:"菧";s:3:"菧";s:4:"著";s:3:"著";s:4:"荓";s:3:"荓";s:4:"菊";s:3:"菊";s:4:"菌";s:3:"菌";s:4:"菜";s:3:"菜";s:4:"𦰶";s:4:"𦰶";s:4:"𦵫";s:4:"𦵫";s:4:"𦳕";s:4:"𦳕";s:4:"䔫";s:3:"䔫";s:4:"蓱";s:3:"蓱";s:4:"蓳";s:3:"蓳";s:4:"蔖";s:3:"蔖";s:4:"𧏊";s:4:"𧏊";s:4:"蕤";s:3:"蕤";s:4:"𦼬";s:4:"𦼬";s:4:"䕝";s:3:"䕝";s:4:"䕡";s:3:"䕡";s:4:"𦾱";s:4:"𦾱";s:4:"𧃒";s:4:"𧃒";s:4:"䕫";s:3:"䕫";s:4:"虐";s:3:"虐";s:4:"虜";s:3:"虜";s:4:"虧";s:3:"虧";s:4:"虩";s:3:"虩";s:4:"蚩";s:3:"蚩";s:4:"蚈";s:3:"蚈";s:4:"蜎";s:3:"蜎";s:4:"蛢";s:3:"蛢";s:4:"蝹";s:3:"蝹";s:4:"蜨";s:3:"蜨";s:4:"蝫";s:3:"蝫";s:4:"螆";s:3:"螆";s:4:"䗗";s:3:"䗗";s:4:"蟡";s:3:"蟡";s:4:"蠁";s:3:"蠁";s:4:"䗹";s:3:"䗹";s:4:"衠";s:3:"衠";s:4:"衣";s:3:"衣";s:4:"𧙧";s:4:"𧙧";s:4:"裗";s:3:"裗";s:4:"裞";s:3:"裞";s:4:"䘵";s:3:"䘵";s:4:"裺";s:3:"裺";s:4:"㒻";s:3:"㒻";s:4:"𧢮";s:4:"𧢮";s:4:"𧥦";s:4:"𧥦";s:4:"䚾";s:3:"䚾";s:4:"䛇";s:3:"䛇";s:4:"誠";s:3:"誠";s:4:"諭";s:3:"諭";s:4:"變";s:3:"變";s:4:"豕";s:3:"豕";s:4:"𧲨";s:4:"𧲨";s:4:"貫";s:3:"貫";s:4:"賁";s:3:"賁";s:4:"贛";s:3:"贛";s:4:"起";s:3:"起";s:4:"𧼯";s:4:"𧼯";s:4:"𠠄";s:4:"𠠄";s:4:"跋";s:3:"跋";s:4:"趼";s:3:"趼";s:4:"跰";s:3:"跰";s:4:"𠣞";s:4:"𠣞";s:4:"軔";s:3:"軔";s:4:"輸";s:3:"輸";s:4:"𨗒";s:4:"𨗒";s:4:"𨗭";s:4:"𨗭";s:4:"邔";s:3:"邔";s:4:"郱";s:3:"郱";s:4:"鄑";s:3:"鄑";s:4:"𨜮";s:4:"𨜮";s:4:"鄛";s:3:"鄛";s:4:"鈸";s:3:"鈸";s:4:"鋗";s:3:"鋗";s:4:"鋘";s:3:"鋘";s:4:"鉼";s:3:"鉼";s:4:"鏹";s:3:"鏹";s:4:"鐕";s:3:"鐕";s:4:"𨯺";s:4:"𨯺";s:4:"開";s:3:"開";s:4:"䦕";s:3:"䦕";s:4:"閷";s:3:"閷";s:4:"𨵷";s:4:"𨵷";s:4:"䧦";s:3:"䧦";s:4:"雃";s:3:"雃";s:4:"嶲";s:3:"嶲";s:4:"霣";s:3:"霣";s:4:"𩅅";s:4:"𩅅";s:4:"𩈚";s:4:"𩈚";s:4:"䩮";s:3:"䩮";s:4:"䩶";s:3:"䩶";s:4:"韠";s:3:"韠";s:4:"𩐊";s:4:"𩐊";s:4:"䪲";s:3:"䪲";s:4:"𩒖";s:4:"𩒖";s:4:"頋";s:3:"頋";s:4:"頋";s:3:"頋";s:4:"頩";s:3:"頩";s:4:"𩖶";s:4:"𩖶";s:4:"飢";s:3:"飢";s:4:"䬳";s:3:"䬳";s:4:"餩";s:3:"餩";s:4:"馧";s:3:"馧";s:4:"駂";s:3:"駂";s:4:"駾";s:3:"駾";s:4:"䯎";s:3:"䯎";s:4:"𩬰";s:4:"𩬰";s:4:"鬒";s:3:"鬒";s:4:"鱀";s:3:"鱀";s:4:"鳽";s:3:"鳽";s:4:"䳎";s:3:"䳎";s:4:"䳭";s:3:"䳭";s:4:"鵧";s:3:"鵧";s:4:"𪃎";s:4:"𪃎";s:4:"䳸";s:3:"䳸";s:4:"𪄅";s:4:"𪄅";s:4:"𪈎";s:4:"𪈎";s:4:"𪊑";s:4:"𪊑";s:4:"麻";s:3:"麻";s:4:"䵖";s:3:"䵖";s:4:"黹";s:3:"黹";s:4:"黾";s:3:"黾";s:4:"鼅";s:3:"鼅";s:4:"鼏";s:3:"鼏";s:4:"鼖";s:3:"鼖";s:4:"鼻";s:3:"鼻";s:4:"𪘀";s:4:"𪘀";}' );
-
diff --git a/includes/normal/UtfNormalDefines.php b/includes/normal/UtfNormalDefines.php
deleted file mode 100644 (file)
index 18d89f6..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-/**
- * Some constant definitions for the unicode normalization module.
- *
- * Note: these constants must all be resolvable at compile time by HipHop,
- * since this file will not be executed during request startup for a compiled
- * MediaWiki.
- *
- * 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 UtfNormal
- */
-
-define( 'UNICODE_HANGUL_FIRST', 0xac00 );
-define( 'UNICODE_HANGUL_LAST', 0xd7a3 );
-
-define( 'UNICODE_HANGUL_LBASE', 0x1100 );
-define( 'UNICODE_HANGUL_VBASE', 0x1161 );
-define( 'UNICODE_HANGUL_TBASE', 0x11a7 );
-
-define( 'UNICODE_HANGUL_LCOUNT', 19 );
-define( 'UNICODE_HANGUL_VCOUNT', 21 );
-define( 'UNICODE_HANGUL_TCOUNT', 28 );
-define( 'UNICODE_HANGUL_NCOUNT', UNICODE_HANGUL_VCOUNT * UNICODE_HANGUL_TCOUNT );
-
-define( 'UNICODE_HANGUL_LEND', UNICODE_HANGUL_LBASE + UNICODE_HANGUL_LCOUNT - 1 );
-define( 'UNICODE_HANGUL_VEND', UNICODE_HANGUL_VBASE + UNICODE_HANGUL_VCOUNT - 1 );
-define( 'UNICODE_HANGUL_TEND', UNICODE_HANGUL_TBASE + UNICODE_HANGUL_TCOUNT - 1 );
-
-define( 'UNICODE_SURROGATE_FIRST', 0xd800 );
-define( 'UNICODE_SURROGATE_LAST', 0xdfff );
-define( 'UNICODE_MAX', 0x10ffff );
-define( 'UNICODE_REPLACEMENT', 0xfffd );
-
-define( 'UTF8_HANGUL_FIRST', "\xea\xb0\x80" /*codepointToUtf8( UNICODE_HANGUL_FIRST )*/ );
-define( 'UTF8_HANGUL_LAST', "\xed\x9e\xa3" /*codepointToUtf8( UNICODE_HANGUL_LAST )*/ );
-
-define( 'UTF8_HANGUL_LBASE', "\xe1\x84\x80" /*codepointToUtf8( UNICODE_HANGUL_LBASE )*/ );
-define( 'UTF8_HANGUL_VBASE', "\xe1\x85\xa1" /*codepointToUtf8( UNICODE_HANGUL_VBASE )*/ );
-define( 'UTF8_HANGUL_TBASE', "\xe1\x86\xa7" /*codepointToUtf8( UNICODE_HANGUL_TBASE )*/ );
-
-define( 'UTF8_HANGUL_LEND', "\xe1\x84\x92" /*codepointToUtf8( UNICODE_HANGUL_LEND )*/ );
-define( 'UTF8_HANGUL_VEND', "\xe1\x85\xb5" /*codepointToUtf8( UNICODE_HANGUL_VEND )*/ );
-define( 'UTF8_HANGUL_TEND', "\xe1\x87\x82" /*codepointToUtf8( UNICODE_HANGUL_TEND )*/ );
-
-define( 'UTF8_SURROGATE_FIRST', "\xed\xa0\x80" /*codepointToUtf8( UNICODE_SURROGATE_FIRST )*/ );
-define( 'UTF8_SURROGATE_LAST', "\xed\xbf\xbf" /*codepointToUtf8( UNICODE_SURROGATE_LAST )*/ );
-define( 'UTF8_MAX', "\xf4\x8f\xbf\xbf" /*codepointToUtf8( UNICODE_MAX )*/ );
-define( 'UTF8_REPLACEMENT', "\xef\xbf\xbd" /*codepointToUtf8( UNICODE_REPLACEMENT )*/ );
-#define( 'UTF8_REPLACEMENT', '!' );
-
-define( 'UTF8_OVERLONG_A', "\xc1\xbf" );
-define( 'UTF8_OVERLONG_B', "\xe0\x9f\xbf" );
-define( 'UTF8_OVERLONG_C', "\xf0\x8f\xbf\xbf" );
-
-# These two ranges are illegal
-define( 'UTF8_FDD0', "\xef\xb7\x90" /*codepointToUtf8( 0xfdd0 )*/ );
-define( 'UTF8_FDEF', "\xef\xb7\xaf" /*codepointToUtf8( 0xfdef )*/ );
-define( 'UTF8_FFFE', "\xef\xbf\xbe" /*codepointToUtf8( 0xfffe )*/ );
-define( 'UTF8_FFFF', "\xef\xbf\xbf" /*codepointToUtf8( 0xffff )*/ );
-
-define( 'UTF8_HEAD', false );
-define( 'UTF8_TAIL', true );
diff --git a/includes/normal/UtfNormalGenerate.php b/includes/normal/UtfNormalGenerate.php
deleted file mode 100644 (file)
index f57aa6c..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-<?php
-/**
- * This script generates UniNormalData.inc from the Unicode Character Database
- * and supplementary files.
- *
- * Copyright (C) 2004 Brion Vibber <brion@pobox.com>
- * https://www.mediawiki.org/
- *
- * 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 UtfNormal
- */
-
-if ( PHP_SAPI != 'cli' ) {
-       die( "Run me from the command line please.\n" );
-}
-
-require_once 'UtfNormalDefines.php';
-require_once 'UtfNormalUtil.php';
-
-$in = fopen( "DerivedNormalizationProps.txt", "rt" );
-if ( !$in ) {
-       print "Can't open DerivedNormalizationProps.txt for reading.\n";
-       print "If necessary, fetch this file from the internet:\n";
-       print "http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt\n";
-       exit( -1 );
-}
-print "Initializing normalization quick check tables...\n";
-$checkNFC = array();
-while ( false !== ( $line = fgets( $in ) ) ) {
-       $matches = array();
-       if ( preg_match(
-               '/^([0-9A-F]+)(?:..([0-9A-F]+))?\s*;\s*(NFC_QC)\s*;\s*([MN])/',
-               $line,
-               $matches )
-       ) {
-               list( $junk, $first, $last, $prop, $value ) = $matches;
-               #print "$first $last $prop $value\n";
-               if ( !$last ) {
-                       $last = $first;
-               }
-
-               $lastInDecimal = hexdec( $last );
-               for ( $i = hexdec( $first ); $i <= $lastInDecimal; $i++ ) {
-                       $char = codepointToUtf8( $i );
-                       $checkNFC[$char] = $value;
-               }
-       }
-}
-fclose( $in );
-
-$in = fopen( "CompositionExclusions.txt", "rt" );
-if ( !$in ) {
-       print "Can't open CompositionExclusions.txt for reading.\n";
-       print "If necessary, fetch this file from the internet:\n";
-       print "http://www.unicode.org/Public/UNIDATA/CompositionExclusions.txt\n";
-       exit( -1 );
-}
-$exclude = array();
-while ( false !== ( $line = fgets( $in ) ) ) {
-       if ( preg_match( '/^([0-9A-F]+)/i', $line, $matches ) ) {
-               $codepoint = $matches[1];
-               $source = codepointToUtf8( hexdec( $codepoint ) );
-               $exclude[$source] = true;
-       }
-}
-fclose( $in );
-
-$in = fopen( "UnicodeData.txt", "rt" );
-if ( !$in ) {
-       print "Can't open UnicodeData.txt for reading.\n";
-       print "If necessary, fetch this file from the internet:\n";
-       print "http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\n";
-       exit( -1 );
-}
-
-$compatibilityDecomp = array();
-$canonicalDecomp = array();
-$canonicalComp = array();
-$combiningClass = array();
-$total = 0;
-$compat = 0;
-$canon = 0;
-
-print "Reading character definitions...\n";
-while ( false !== ( $line = fgets( $in ) ) ) {
-       $columns = explode( ';', $line );
-       $codepoint = $columns[0];
-       $name = $columns[1];
-       $canonicalCombiningClass = $columns[3];
-       $decompositionMapping = $columns[5];
-
-       $source = codepointToUtf8( hexdec( $codepoint ) );
-
-       if ( $canonicalCombiningClass != 0 ) {
-               $combiningClass[$source] = intval( $canonicalCombiningClass );
-       }
-
-       if ( $decompositionMapping === '' ) continue;
-       if ( preg_match( '/^<(.+)> (.*)$/', $decompositionMapping, $matches ) ) {
-               # Compatibility decomposition
-               $canonical = false;
-               $decompositionMapping = $matches[2];
-               $compat++;
-       } else {
-               $canonical = true;
-               $canon++;
-       }
-       $total++;
-       $dest = hexSequenceToUtf8( $decompositionMapping );
-
-       $compatibilityDecomp[$source] = $dest;
-       if ( $canonical ) {
-               $canonicalDecomp[$source] = $dest;
-               if ( empty( $exclude[$source] ) ) {
-                       $canonicalComp[$dest] = $source;
-               }
-       }
-       #print "$codepoint | $canonicalCombiningClasses | $decompositionMapping\n";
-}
-fclose( $in );
-
-print "Recursively expanding canonical mappings...\n";
-$changed = 42;
-$pass = 1;
-while ( $changed > 0 ) {
-       print "pass $pass\n";
-       $changed = 0;
-       foreach ( $canonicalDecomp as $source => $dest ) {
-               $newDest = preg_replace_callback(
-                       '/([\xc0-\xff][\x80-\xbf]+)/',
-                       'callbackCanonical',
-                       $dest );
-               if ( $newDest === $dest ) continue;
-               $changed++;
-               $canonicalDecomp[$source] = $newDest;
-       }
-       $pass++;
-}
-
-print "Recursively expanding compatibility mappings...\n";
-$changed = 42;
-$pass = 1;
-while ( $changed > 0 ) {
-       print "pass $pass\n";
-       $changed = 0;
-       foreach ( $compatibilityDecomp as $source => $dest ) {
-               $newDest = preg_replace_callback(
-                       '/([\xc0-\xff][\x80-\xbf]+)/',
-                       'callbackCompat',
-                       $dest );
-               if ( $newDest === $dest ) continue;
-               $changed++;
-               $compatibilityDecomp[$source] = $newDest;
-       }
-       $pass++;
-}
-
-print "$total decomposition mappings ($canon canonical, $compat compatibility)\n";
-
-$out = fopen( "UtfNormalData.inc", "wt" );
-if ( $out ) {
-       $serCombining = escapeSingleString( serialize( $combiningClass ) );
-       $serComp = escapeSingleString( serialize( $canonicalComp ) );
-       $serCanon = escapeSingleString( serialize( $canonicalDecomp ) );
-       $serCheckNFC = escapeSingleString( serialize( $checkNFC ) );
-       $outdata = "<" . "?php
-/**
- * This file was automatically generated -- do not edit!
- * Run UtfNormalGenerate.php to create this file again (make clean && make)
- *
- * @file
- */
-// @codingStandardsIgnoreFile
-
-UtfNormal::\$utfCombiningClass = unserialize( '$serCombining' );
-UtfNormal::\$utfCanonicalComp = unserialize( '$serComp' );
-UtfNormal::\$utfCanonicalDecomp = unserialize( '$serCanon' );
-UtfNormal::\$utfCheckNFC = unserialize( '$serCheckNFC' );
-\n";
-       fputs( $out, $outdata );
-       fclose( $out );
-       print "Wrote out UtfNormalData.inc\n";
-} else {
-       print "Can't create file UtfNormalData.inc\n";
-       exit( -1 );
-}
-
-$out = fopen( "UtfNormalDataK.inc", "wt" );
-if ( $out ) {
-       $serCompat = escapeSingleString( serialize( $compatibilityDecomp ) );
-       $outdata = "<" . "?php
-/**
- * This file was automatically generated -- do not edit!
- * Run UtfNormalGenerate.php to create this file again (make clean && make)
- *
- * @file
- */
-// @codingStandardsIgnoreFile
-
-UtfNormal::\$utfCompatibilityDecomp = unserialize( '$serCompat' );
-\n";
-       fputs( $out, $outdata );
-       fclose( $out );
-       print "Wrote out UtfNormalDataK.inc\n";
-       exit( 0 );
-} else {
-       print "Can't create file UtfNormalDataK.inc\n";
-       exit( -1 );
-}
-
-# ---------------
-
-function callbackCanonical( $matches ) {
-       // @codingStandardsIgnoreStart MediaWiki.NamingConventions.ValidGlobalName.wgPrefix
-       global $canonicalDecomp;
-       // @codingStandardsIgnoreEnd
-
-       if ( isset( $canonicalDecomp[$matches[1]] ) ) {
-               return $canonicalDecomp[$matches[1]];
-       }
-
-       return $matches[1];
-}
-
-function callbackCompat( $matches ) {
-       // @codingStandardsIgnoreStart MediaWiki.NamingConventions.ValidGlobalName.wgPrefix
-       global $compatibilityDecomp;
-       // @codingStandardsIgnoreEnd
-
-       if ( isset( $compatibilityDecomp[$matches[1]] ) ) {
-               return $compatibilityDecomp[$matches[1]];
-       }
-
-       return $matches[1];
-}
diff --git a/includes/normal/UtfNormalMemStress.php b/includes/normal/UtfNormalMemStress.php
deleted file mode 100644 (file)
index f133e4d..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-/**
- * Approximate benchmark for some basic operations.
- * Runs large chunks of text through cleanup with a lowish memory limit,
- * to test regression on mem usage (bug 28146)
- *
- * Copyright © 2004-2011 Brion Vibber <brion@wikimedia.org>
- * https://www.mediawiki.org/
- *
- * 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 UtfNormal
- */
-
-if ( PHP_SAPI != 'cli' ) {
-       die( "Run me from the command line please.\n" );
-}
-
-if ( isset( $_SERVER['argv'] ) && in_array( '--icu', $_SERVER['argv'] ) ) {
-       dl( 'php_utfnormal.so' );
-}
-
-require_once 'UtfNormalDefines.php';
-require_once 'UtfNormalUtil.php';
-require_once 'UtfNormal.php';
-
-define( 'BENCH_CYCLES', 1 );
-define( 'BIGSIZE', 1024 * 1024 * 10 ); // 10m
-ini_set( 'memory_limit', BIGSIZE + 120 * 1024 * 1024 );
-
-$testfiles = array(
-       'testdata/washington.txt' => 'English text',
-       'testdata/berlin.txt' => 'German text',
-       'testdata/bulgakov.txt' => 'Russian text',
-       'testdata/tokyo.txt' => 'Japanese text',
-       'testdata/young.txt' => 'Korean text'
-);
-$normalizer = new UtfNormal;
-UtfNormal::loadData();
-foreach ( $testfiles as $file => $desc ) {
-       benchmarkTest( $normalizer, $file, $desc );
-}
-
-# -------
-
-function benchmarkTest( &$u, $filename, $desc ) {
-       print "Testing $filename ($desc)...\n";
-       $data = file_get_contents( $filename );
-       $all = $data;
-       while ( strlen( $all ) < BIGSIZE ) {
-               $all .= $all;
-       }
-       $data = $all;
-       echo "Data is " . strlen( $data ) . " bytes.\n";
-       $forms = array(
-               'quickIsNFCVerify',
-               'cleanUp',
-       );
-
-       foreach ( $forms as $form ) {
-               if ( is_array( $form ) ) {
-                       $str = $data;
-                       foreach ( $form as $step ) {
-                               $str = benchmarkForm( $u, $str, $step );
-                       }
-               } else {
-                       benchmarkForm( $u, $data, $form );
-               }
-       }
-}
-
-function benchmarkForm( &$u, &$data, $form ) {
-       #$start = microtime( true );
-       for ( $i = 0; $i < BENCH_CYCLES; $i++ ) {
-               $start = microtime( true );
-               $out = $u->$form( $data, UtfNormal::$utfCanonicalDecomp );
-               $deltas[] = ( microtime( true ) - $start );
-       }
-       #$delta = (microtime( true ) - $start) / BENCH_CYCLES;
-       sort( $deltas );
-       $delta = $deltas[0]; # Take shortest time
-
-       $rate = intval( strlen( $data ) / $delta );
-       $same = ( 0 == strcmp( $data, $out ) );
-
-       printf( " %20s %6.1fms %12s bytes/s (%s)\n",
-               $form,
-               $delta * 1000.0,
-               number_format( $rate ),
-               ( $same ? 'no change' : 'changed' ) );
-
-       return $out;
-}
diff --git a/includes/normal/UtfNormalTest.php b/includes/normal/UtfNormalTest.php
deleted file mode 100644 (file)
index 10cd0f0..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-<?php
-/**
- * Implements the conformance test at:
- * http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
- *
- * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * https://www.mediawiki.org/
- *
- * 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 UtfNormal
- */
-
-if ( PHP_SAPI != 'cli' ) {
-       die( "Run me from the command line please.\n" );
-}
-
-$verbose = true;
-#define( 'PRETTY_UTF8', true );
-
-if ( defined( 'PRETTY_UTF8' ) ) {
-       function pretty( $string ) {
-               return strtoupper( bin2hex( $string ) );
-       }
-} else {
-       /**
-        * @ignore
-        * @param string $string
-        * @return string
-        */
-       function pretty( $string ) {
-               return strtoupper( utf8ToHexSequence( $string ) );
-       }
-}
-
-if ( isset( $_SERVER['argv'] ) && in_array( '--icu', $_SERVER['argv'] ) ) {
-       dl( 'php_utfnormal.so' );
-}
-
-require_once 'UtfNormalDefines.php';
-require_once 'UtfNormalUtil.php';
-require_once 'UtfNormal.php';
-
-$in = fopen( "NormalizationTest.txt", "rt" );
-if ( !$in ) {
-       print "Couldn't open NormalizationTest.txt -- can't run tests.\n";
-       print "If necessary, manually download this file. It can be obtained at\n";
-       print "http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt";
-       exit( -1 );
-}
-
-$normalizer = new UtfNormal;
-
-$total = 0;
-$success = 0;
-$failure = 0;
-$ok = true;
-$testedChars = array();
-
-while ( false !== ( $line = fgets( $in ) ) ) {
-       list( $data, $comment ) = explode( '#', $line );
-       if ( $data === '' ) continue;
-       $matches = array();
-       if ( preg_match( '/@Part([\d])/', $data, $matches ) ) {
-               if ( $matches[1] > 0 ) {
-                       $ok = reportResults( $total, $success, $failure ) && $ok;
-               }
-               print "Part {$matches[1]}: $comment";
-               continue;
-       }
-
-       $columns = array_map( "hexSequenceToUtf8", explode( ";", $data ) );
-       array_unshift( $columns, '' );
-
-       $testedChars[$columns[1]] = true;
-       $total++;
-       if ( testNormals( $normalizer, $columns, $comment, $verbose ) ) {
-               $success++;
-       } else {
-               $failure++;
-               # print "FAILED: $comment";
-       }
-       if ( $total % 100 == 0 ) print "$total ";
-}
-fclose( $in );
-
-$ok = reportResults( $total, $success, $failure ) && $ok;
-
-$in = fopen( "UnicodeData.txt", "rt" );
-if ( !$in ) {
-       print "Can't open UnicodeData.txt for reading.\n";
-       print "If necessary, fetch this file from the internet:\n";
-       print "http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\n";
-       exit( -1 );
-}
-print "Now testing invariants...\n";
-
-while ( false !== ( $line = fgets( $in ) ) ) {
-       $cols = explode( ';', $line );
-       $char = codepointToUtf8( hexdec( $cols[0] ) );
-       $desc = $cols[0] . ": " . $cols[1];
-       if ( $char < "\x20" || $char >= UTF8_SURROGATE_FIRST && $char <= UTF8_SURROGATE_LAST ) {
-               # Can't check NULL with the ICU plugin, as null bytes fail in C land.
-               # Skip other control characters, as we strip them for XML safety.
-               # Surrogates are illegal on their own or in UTF-8, ignore.
-               continue;
-       }
-       if ( empty( $testedChars[$char] ) ) {
-               $total++;
-               if ( testInvariant( $normalizer, $char, $desc, $verbose ) ) {
-                       $success++;
-               } else {
-                       $failure++;
-               }
-               if ( $total % 100 == 0 ) print "$total ";
-       }
-}
-fclose( $in );
-
-$ok = reportResults( $total, $success, $failure ) && $ok;
-
-if ( $ok ) {
-       print "TEST SUCCEEDED!\n";
-       exit( 0 );
-} else {
-       print "TEST FAILED!\n";
-       exit( -1 );
-}
-
-## ------
-
-function reportResults( &$total, &$success, &$failure ) {
-       $percSucc = intval( $success * 100 / $total );
-       $percFail = intval( $failure * 100 / $total );
-       print "\n";
-       print "$success tests successful ($percSucc%)\n";
-       print "$failure tests failed ($percFail%)\n\n";
-       $ok = ( $success > 0 && $failure == 0 );
-       $total = 0;
-       $success = 0;
-       $failure = 0;
-
-       return $ok;
-}
-
-function testNormals( &$u, $c, $comment, $verbose, $reportFailure = false ) {
-       $result = testNFC( $u, $c, $comment, $reportFailure );
-       $result = testNFD( $u, $c, $comment, $reportFailure ) && $result;
-       $result = testNFKC( $u, $c, $comment, $reportFailure ) && $result;
-       $result = testNFKD( $u, $c, $comment, $reportFailure ) && $result;
-       $result = testCleanUp( $u, $c, $comment, $reportFailure ) && $result;
-
-       if ( $verbose && !$result && !$reportFailure ) {
-               print $comment;
-               testNormals( $u, $c, $comment, $verbose, true );
-       }
-
-       return $result;
-}
-
-function verbosify( $a, $b, $col, $form, $verbose ) {
-       #$result = ($a === $b);
-       $result = ( strcmp( $a, $b ) == 0 );
-       if ( $verbose ) {
-               $aa = pretty( $a );
-               $bb = pretty( $b );
-               $ok = $result ? "succeed" : " failed";
-               $eq = $result ? "==" : "!=";
-               print "  $ok $form c$col '$aa' $eq '$bb'\n";
-       }
-
-       return $result;
-}
-
-function testNFC( &$u, $c, $comment, $verbose ) {
-       $result = verbosify( $c[2], $u->toNFC( $c[1] ), 1, 'NFC', $verbose );
-       $result = verbosify( $c[2], $u->toNFC( $c[2] ), 2, 'NFC', $verbose ) && $result;
-       $result = verbosify( $c[2], $u->toNFC( $c[3] ), 3, 'NFC', $verbose ) && $result;
-       $result = verbosify( $c[4], $u->toNFC( $c[4] ), 4, 'NFC', $verbose ) && $result;
-       $result = verbosify( $c[4], $u->toNFC( $c[5] ), 5, 'NFC', $verbose ) && $result;
-
-       return $result;
-}
-
-function testCleanUp( &$u, $c, $comment, $verbose ) {
-       $x = $c[1];
-       $result = verbosify( $c[2], $u->cleanUp( $x ), 1, 'cleanUp', $verbose );
-       $x = $c[2];
-       $result = verbosify( $c[2], $u->cleanUp( $x ), 2, 'cleanUp', $verbose ) && $result;
-       $x = $c[3];
-       $result = verbosify( $c[2], $u->cleanUp( $x ), 3, 'cleanUp', $verbose ) && $result;
-       $x = $c[4];
-       $result = verbosify( $c[4], $u->cleanUp( $x ), 4, 'cleanUp', $verbose ) && $result;
-       $x = $c[5];
-       $result = verbosify( $c[4], $u->cleanUp( $x ), 5, 'cleanUp', $verbose ) && $result;
-
-       return $result;
-}
-
-function testNFD( &$u, $c, $comment, $verbose ) {
-       $result = verbosify( $c[3], $u->toNFD( $c[1] ), 1, 'NFD', $verbose );
-       $result = verbosify( $c[3], $u->toNFD( $c[2] ), 2, 'NFD', $verbose ) && $result;
-       $result = verbosify( $c[3], $u->toNFD( $c[3] ), 3, 'NFD', $verbose ) && $result;
-       $result = verbosify( $c[5], $u->toNFD( $c[4] ), 4, 'NFD', $verbose ) && $result;
-       $result = verbosify( $c[5], $u->toNFD( $c[5] ), 5, 'NFD', $verbose ) && $result;
-
-       return $result;
-}
-
-function testNFKC( &$u, $c, $comment, $verbose ) {
-       $result = verbosify( $c[4], $u->toNFKC( $c[1] ), 1, 'NFKC', $verbose );
-       $result = verbosify( $c[4], $u->toNFKC( $c[2] ), 2, 'NFKC', $verbose ) && $result;
-       $result = verbosify( $c[4], $u->toNFKC( $c[3] ), 3, 'NFKC', $verbose ) && $result;
-       $result = verbosify( $c[4], $u->toNFKC( $c[4] ), 4, 'NFKC', $verbose ) && $result;
-       $result = verbosify( $c[4], $u->toNFKC( $c[5] ), 5, 'NFKC', $verbose ) && $result;
-
-       return $result;
-}
-
-function testNFKD( &$u, $c, $comment, $verbose ) {
-       $result = verbosify( $c[5], $u->toNFKD( $c[1] ), 1, 'NFKD', $verbose );
-       $result = verbosify( $c[5], $u->toNFKD( $c[2] ), 2, 'NFKD', $verbose ) && $result;
-       $result = verbosify( $c[5], $u->toNFKD( $c[3] ), 3, 'NFKD', $verbose ) && $result;
-       $result = verbosify( $c[5], $u->toNFKD( $c[4] ), 4, 'NFKD', $verbose ) && $result;
-       $result = verbosify( $c[5], $u->toNFKD( $c[5] ), 5, 'NFKD', $verbose ) && $result;
-
-       return $result;
-}
-
-function testInvariant( &$u, $char, $desc, $verbose, $reportFailure = false ) {
-       $result = verbosify( $char, $u->toNFC( $char ), 1, 'NFC', $reportFailure );
-       $result = verbosify( $char, $u->toNFD( $char ), 1, 'NFD', $reportFailure ) && $result;
-       $result = verbosify( $char, $u->toNFKC( $char ), 1, 'NFKC', $reportFailure ) && $result;
-       $result = verbosify( $char, $u->toNFKD( $char ), 1, 'NFKD', $reportFailure ) && $result;
-       $result = verbosify( $char, $u->cleanUp( $char ), 1, 'cleanUp', $reportFailure ) && $result;
-
-       if ( $verbose && !$result && !$reportFailure ) {
-               print $desc;
-               testInvariant( $u, $char, $desc, $verbose, true );
-       }
-
-       return $result;
-}
diff --git a/includes/normal/UtfNormalTest2.php b/includes/normal/UtfNormalTest2.php
deleted file mode 100644 (file)
index 53e68c2..0000000
+++ /dev/null
@@ -1,275 +0,0 @@
-#!/usr/bin/env php
-<?php
-/**
- * Other tests for the unicode normalization module.
- *
- * 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 UtfNormal
- */
-
-if ( PHP_SAPI != 'cli' ) {
-       die( "Run me from the command line please.\n" );
-}
-
-// From http://unicode.org/Public/UNIDATA/NormalizationTest.txt
-$file = "NormalizationTest.txt";
-
-// Anything after this character is a comment
-define ( 'COMMENT', '#' );
-
-// Semicolons are used to separate the columns
-define ( 'SEPARATOR', ';' );
-
-$f = fopen( $file, "r" );
-
-/**
- * The following section will be used for testing different normalization methods.
- * - Pure PHP
- * ~ no assertion errors
- * ~ 6.25 minutes
- * - php_utfnormal.so or intl extension: both are wrappers around
- * libicu so we list the version of libicu when making the
- * comparison
- * - libicu Ubuntu 3.8.1-3ubuntu1.1 php 5.2.6-3ubuntu4.5
- * ~ 2200 assertion errors
- * ~ 5 seconds
- * ~ output: http://paste2.org/p/921566
- * - libicu Ubuntu 4.2.1-3 php 5.3.2-1ubuntu4.2
- * ~ 1384 assertion errors
- * ~ 15 seconds
- * ~ output: http://paste2.org/p/921435
- * - libicu Debian 4.4.1-5 php 5.3.2-1ubuntu4.2
- * ~ no assertion errors
- * ~ 13 seconds
- * - Tests comparing pure PHP output with libicu output were added
- * later and slow down the runtime.
- */
-
-require_once './UtfNormal.php';
-function normalize_form_c( $c ) {
-       return UtfNormal::toNFC( $c );
-}
-
-function normalize_form_d( $c ) {
-       return UtfNormal::toNFD( $c );
-}
-
-function normalize_form_kc( $c ) {
-       return UtfNormal::toNFKC( $c );
-}
-
-function normalize_form_kd( $c ) {
-       return UtfNormal::toNFKD( $c );
-}
-
-/**
- * This set of functions is only useful if youve added a param to the
- * following functions to force pure PHP usage.  I decided not to
- * commit that code since might produce a slowdown in the UTF
- * normalization code just for the sake of these tests. -- hexmode
- * @return string
- */
-function normalize_form_c_php( $c ) {
-       return UtfNormal::toNFC( $c, "php" );
-}
-
-function normalize_form_d_php( $c ) {
-       return UtfNormal::toNFD( $c, "php" );
-}
-
-function normalize_form_kc_php( $c ) {
-       return UtfNormal::toNFKC( $c, "php" );
-}
-
-function normalize_form_kd_php( $c ) {
-       return UtfNormal::toNFKD( $c, "php" );
-}
-
-assert_options( ASSERT_ACTIVE, 1 );
-assert_options( ASSERT_WARNING, 0 );
-assert_options( ASSERT_QUIET_EVAL, 1 );
-assert_options( ASSERT_CALLBACK, 'my_assert' );
-
-function my_assert( $file, $line, $code ) {
-       // @codingStandardsIgnoreStart MediaWiki.NamingConventions.ValidGlobalName.wgPrefix
-       global $col, $lineNo;
-       // @codingStandardsIgnoreEnd
-
-       echo "Assertion that '$code' failed on line $lineNo ($col[5])\n";
-}
-
-$count = 0;
-$lineNo = 0;
-if ( $f !== false ) {
-       while ( ( $col = getRow( $f ) ) !== false ) {
-               $lineNo++;
-
-               if ( count( $col ) == 6 ) {
-                       $count++;
-                       if ( $count % 100 === 0 ) echo "Count: $count\n";
-               } else {
-                       continue;
-               }
-
-               # verify that the pure PHP version is correct
-               $NFCc1 = normalize_form_c( $col[0] );
-               $NFCc1p = normalize_form_c_php( $col[0] );
-               assert( '$NFCc1 === $NFCc1p' );
-               $NFCc2 = normalize_form_c( $col[1] );
-               $NFCc2p = normalize_form_c_php( $col[1] );
-               assert( '$NFCc2 === $NFCc2p' );
-               $NFCc3 = normalize_form_c( $col[2] );
-               $NFCc3p = normalize_form_c_php( $col[2] );
-               assert( '$NFCc3 === $NFCc3p' );
-               $NFCc4 = normalize_form_c( $col[3] );
-               $NFCc4p = normalize_form_c_php( $col[3] );
-               assert( '$NFCc4 === $NFCc4p' );
-               $NFCc5 = normalize_form_c( $col[4] );
-               $NFCc5p = normalize_form_c_php( $col[4] );
-               assert( '$NFCc5 === $NFCc5p' );
-
-               $NFDc1 = normalize_form_d( $col[0] );
-               $NFDc1p = normalize_form_d_php( $col[0] );
-               assert( '$NFDc1 === $NFDc1p' );
-               $NFDc2 = normalize_form_d( $col[1] );
-               $NFDc2p = normalize_form_d_php( $col[1] );
-               assert( '$NFDc2 === $NFDc2p' );
-               $NFDc3 = normalize_form_d( $col[2] );
-               $NFDc3p = normalize_form_d_php( $col[2] );
-               assert( '$NFDc3 === $NFDc3p' );
-               $NFDc4 = normalize_form_d( $col[3] );
-               $NFDc4p = normalize_form_d_php( $col[3] );
-               assert( '$NFDc4 === $NFDc4p' );
-               $NFDc5 = normalize_form_d( $col[4] );
-               $NFDc5p = normalize_form_d_php( $col[4] );
-               assert( '$NFDc5 === $NFDc5p' );
-
-               $NFKDc1 = normalize_form_kd( $col[0] );
-               $NFKDc1p = normalize_form_kd_php( $col[0] );
-               assert( '$NFKDc1 === $NFKDc1p' );
-               $NFKDc2 = normalize_form_kd( $col[1] );
-               $NFKDc2p = normalize_form_kd_php( $col[1] );
-               assert( '$NFKDc2 === $NFKDc2p' );
-               $NFKDc3 = normalize_form_kd( $col[2] );
-               $NFKDc3p = normalize_form_kd_php( $col[2] );
-               assert( '$NFKDc3 === $NFKDc3p' );
-               $NFKDc4 = normalize_form_kd( $col[3] );
-               $NFKDc4p = normalize_form_kd_php( $col[3] );
-               assert( '$NFKDc4 === $NFKDc4p' );
-               $NFKDc5 = normalize_form_kd( $col[4] );
-               $NFKDc5p = normalize_form_kd_php( $col[4] );
-               assert( '$NFKDc5 === $NFKDc5p' );
-
-               $NFKCc1 = normalize_form_kc( $col[0] );
-               $NFKCc1p = normalize_form_kc_php( $col[0] );
-               assert( '$NFKCc1 === $NFKCc1p' );
-               $NFKCc2 = normalize_form_kc( $col[1] );
-               $NFKCc2p = normalize_form_kc_php( $col[1] );
-               assert( '$NFKCc2 === $NFKCc2p' );
-               $NFKCc3 = normalize_form_kc( $col[2] );
-               $NFKCc3p = normalize_form_kc_php( $col[2] );
-               assert( '$NFKCc3 === $NFKCc3p' );
-               $NFKCc4 = normalize_form_kc( $col[3] );
-               $NFKCc4p = normalize_form_kc_php( $col[3] );
-               assert( '$NFKCc4 === $NFKCc4p' );
-               $NFKCc5 = normalize_form_kc( $col[4] );
-               $NFKCc5p = normalize_form_kc_php( $col[4] );
-               assert( '$NFKCc5 === $NFKCc5p' );
-
-               # c2 ==  NFC(c1) ==      NFC(c2) ==      NFC(c3)
-               assert( '$col[1] === $NFCc1' );
-               assert( '$col[1] === $NFCc2' );
-               assert( '$col[1] === $NFCc3' );
-
-               # c4 ==  NFC(c4) ==      NFC(c5)
-               assert( '$col[3] === $NFCc4' );
-               assert( '$col[3] === $NFCc5' );
-
-               # c3 ==  NFD(c1) ==      NFD(c2) ==      NFD(c3)
-               assert( '$col[2] === $NFDc1' );
-               assert( '$col[2] === $NFDc2' );
-               assert( '$col[2] === $NFDc3' );
-
-               # c5 ==  NFD(c4) ==      NFD(c5)
-               assert( '$col[4] === $NFDc4' );
-               assert( '$col[4] === $NFDc5' );
-
-               # c4 == NFKC(c1) == NFKC(c2) == NFKC(c3) == NFKC(c4) == NFKC(c5)
-               assert( '$col[3] === $NFKCc1' );
-               assert( '$col[3] === $NFKCc2' );
-               assert( '$col[3] === $NFKCc3' );
-               assert( '$col[3] === $NFKCc4' );
-               assert( '$col[3] === $NFKCc5' );
-
-               # c5 == NFKD(c1) == NFKD(c2) == NFKD(c3) == NFKD(c4) == NFKD(c5)
-               assert( '$col[4] === $NFKDc1' );
-               assert( '$col[4] === $NFKDc2' );
-               assert( '$col[4] === $NFKDc3' );
-               assert( '$col[4] === $NFKDc4' );
-               assert( '$col[4] === $NFKDc5' );
-       }
-}
-echo "done.\n";
-
-// Compare against http://en.wikipedia.org/wiki/UTF-8#Description
-function unichr( $c ) {
-       if ( $c <= 0x7F ) {
-               return chr( $c );
-       } elseif ( $c <= 0x7FF ) {
-               return chr( 0xC0 | $c >> 6 ) . chr( 0x80 | $c & 0x3F );
-       } elseif ( $c <= 0xFFFF ) {
-               return chr( 0xE0 | $c >> 12 ) . chr( 0x80 | $c >> 6 & 0x3F )
-               . chr( 0x80 | $c & 0x3F );
-       } elseif ( $c <= 0x10FFFF ) {
-               return chr( 0xF0 | $c >> 18 ) . chr( 0x80 | $c >> 12 & 0x3F )
-               . chr( 0x80 | $c >> 6 & 0x3F )
-               . chr( 0x80 | $c & 0x3F );
-       } else {
-               return false;
-       }
-}
-
-function unistr( $c ) {
-       return implode( "", array_map( "unichr", array_map( "hexdec", explode( " ", $c ) ) ) );
-}
-
-function getRow( $f ) {
-       $row = fgets( $f );
-       if ( $row === false ) return false;
-       $row = rtrim( $row );
-       $pos = strpos( $row, COMMENT );
-       $pos2 = strpos( $row, ")" );
-       if ( $pos === 0 ) return array( $row );
-       $c = "";
-
-       if ( $pos ) {
-               if ( $pos2 ) $c = substr( $row, $pos2 + 2 );
-               else      $c = substr( $row, $pos );
-               $row = substr( $row, 0, $pos );
-       }
-
-       $ret = array();
-       foreach ( explode( SEPARATOR, $row ) as $ent ) {
-               if ( trim( $ent ) !== "" ) {
-                       $ret[] = unistr( $ent );
-               }
-       }
-       $ret[] = $c;
-
-       return $ret;
-}
diff --git a/includes/normal/UtfNormalUtil.php b/includes/normal/UtfNormalUtil.php
deleted file mode 100644 (file)
index 6c925df..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-/**
- * Some of these functions are adapted from places in MediaWiki.
- * Should probably merge them for consistency.
- *
- * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * https://www.mediawiki.org/
- *
- * 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 UtfNormal
- */
-
-/**
- * Return UTF-8 sequence for a given Unicode code point.
- * May die if fed out of range data.
- *
- * @param $codepoint Integer:
- * @return String
- * @public
- */
-function codepointToUtf8( $codepoint ) {
-       if ( $codepoint < 0x80 ) {
-               return chr( $codepoint );
-       }
-
-       if ( $codepoint < 0x800 ) {
-               return chr( $codepoint >> 6 & 0x3f | 0xc0 ) .
-                       chr( $codepoint & 0x3f | 0x80 );
-       }
-
-       if ( $codepoint < 0x10000 ) {
-               return chr( $codepoint >> 12 & 0x0f | 0xe0 ) .
-                       chr( $codepoint >> 6 & 0x3f | 0x80 ) .
-                       chr( $codepoint & 0x3f | 0x80 );
-       }
-
-       if ( $codepoint < 0x110000 ) {
-               return chr( $codepoint >> 18 & 0x07 | 0xf0 ) .
-                       chr( $codepoint >> 12 & 0x3f | 0x80 ) .
-                       chr( $codepoint >> 6 & 0x3f | 0x80 ) .
-                       chr( $codepoint & 0x3f | 0x80 );
-       }
-
-       echo "Asked for code outside of range ($codepoint)\n";
-       die( -1 );
-}
-
-/**
- * Take a series of space-separated hexadecimal numbers representing
- * Unicode code points and return a UTF-8 string composed of those
- * characters. Used by UTF-8 data generation and testing routines.
- *
- * @param $sequence String
- * @return String
- * @private
- */
-function hexSequenceToUtf8( $sequence ) {
-       $utf = '';
-       foreach ( explode( ' ', $sequence ) as $hex ) {
-               $n = hexdec( $hex );
-               $utf .= codepointToUtf8( $n );
-       }
-
-       return $utf;
-}
-
-/**
- * Take a UTF-8 string and return a space-separated series of hex
- * numbers representing Unicode code points. For debugging.
- *
- * @param string $str UTF-8 string.
- * @return string
- * @private
- */
-function utf8ToHexSequence( $str ) {
-       $buf = '';
-       foreach ( preg_split( '//u', $str, -1, PREG_SPLIT_NO_EMPTY ) as $cp ) {
-               $buf .= sprintf( '%04x ', utf8ToCodepoint( $cp ) );
-       }
-
-       return rtrim( $buf );
-}
-
-/**
- * Determine the Unicode codepoint of a single-character UTF-8 sequence.
- * Does not check for invalid input data.
- *
- * @param $char String
- * @return Integer
- * @public
- */
-function utf8ToCodepoint( $char ) {
-       # Find the length
-       $z = ord( $char[0] );
-       if ( $z & 0x80 ) {
-               $length = 0;
-               while ( $z & 0x80 ) {
-                       $length++;
-                       $z <<= 1;
-               }
-       } else {
-               $length = 1;
-       }
-
-       if ( $length != strlen( $char ) ) {
-               return false;
-       }
-
-       if ( $length == 1 ) {
-               return ord( $char );
-       }
-
-       # Mask off the length-determining bits and shift back to the original location
-       $z &= 0xff;
-       $z >>= $length;
-
-       # Add in the free bits from subsequent bytes
-       for ( $i = 1; $i < $length; $i++ ) {
-               $z <<= 6;
-               $z |= ord( $char[$i] ) & 0x3f;
-       }
-
-       return $z;
-}
-
-/**
- * Escape a string for inclusion in a PHP single-quoted string literal.
- *
- * @param string $string string to be escaped.
- * @return String: escaped string.
- * @public
- */
-function escapeSingleString( $string ) {
-       return strtr( $string,
-               array(
-                       '\\' => '\\\\',
-                       '\'' => '\\\''
-               ) );
-}
index 9ce3854..f04201c 100644 (file)
@@ -410,10 +410,18 @@ class Article implements Page {
                // @todo FIXME: Horrible, horrible! This content-loading interface just plain sucks.
                // We should instead work with the Revision object when we need it...
                // Loads if user is allowed
-               $this->mContentObject = $this->mRevision->getContent(
+               $content = $this->mRevision->getContent(
                        Revision::FOR_THIS_USER,
                        $this->getContext()->getUser()
                );
+
+               if ( !$content ) {
+                       wfDebug( __METHOD__ . " failed to retrieve content of revision " .
+                               $this->mRevision->getId() . "\n" );
+                       return false;
+               }
+
+               $this->mContentObject = $content;
                $this->mRevIdFetched = $this->mRevision->getId();
 
                Hooks::run( 'ArticleAfterFetchContentObject', array( &$this, &$this->mContentObject ) );
@@ -679,9 +687,8 @@ class Article implements Page {
                                        $this->mParserOutput = $poolArticleView->getParserOutput();
                                        $outputPage->addParserOutput( $this->mParserOutput );
                                        if ( $content->getRedirectTarget() ) {
-                                               $outputPage->addSubtitle(
-                                                       "<span id=\"redirectsub\">" . wfMessage( 'redirectpagesub' )->parse() . "</span>"
-                                               );
+                                               $outputPage->addSubtitle( "<span id=\"redirectsub\">" .
+                                                       $this->getContext()->msg( 'redirectpagesub' )->parse() . "</span>" );
                                        }
 
                                        # Don't cache a dirty ParserOutput object
@@ -1318,7 +1325,8 @@ class Article implements Page {
                        return;
                }
 
-               $unhide = $this->getContext()->getRequest()->getInt( 'unhide' ) == 1;
+               $context = $this->getContext();
+               $unhide = $context->getRequest()->getInt( 'unhide' ) == 1;
 
                # Cascade unhide param in links for easy deletion browsing
                $extraParams = array();
@@ -1335,8 +1343,8 @@ class Article implements Page {
                $timestamp = $revision->getTimestamp();
 
                $current = ( $oldid == $this->mPage->getLatest() );
-               $language = $this->getContext()->getLanguage();
-               $user = $this->getContext()->getUser();
+               $language = $context->getLanguage();
+               $user = $context->getUser();
 
                $td = $language->userTimeAndDate( $timestamp, $user );
                $tddate = $language->userDate( $timestamp, $user );
@@ -1345,13 +1353,13 @@ class Article implements Page {
                # Show user links if allowed to see them. If hidden, then show them only if requested...
                $userlinks = Linker::revUserTools( $revision, !$unhide );
 
-               $infomsg = $current && !wfMessage( 'revision-info-current' )->isDisabled()
+               $infomsg = $current && !$context->msg( 'revision-info-current' )->isDisabled()
                        ? 'revision-info-current'
                        : 'revision-info';
 
-               $outputPage = $this->getContext()->getOutput();
+               $outputPage = $context->getOutput();
                $outputPage->addSubtitle( "<div id=\"mw-{$infomsg}\">" .
-                       wfMessage( $infomsg, $td )
+                       $context->msg( $infomsg, $td )
                                ->rawParams( $userlinks )
                                ->params( $revision->getID(), $tddate, $tdtime, $revision->getUserText() )
                                ->rawParams( Linker::revComment( $revision, true, true ) )
@@ -1360,18 +1368,18 @@ class Article implements Page {
                );
 
                $lnk = $current
-                       ? wfMessage( 'currentrevisionlink' )->escaped()
+                       ? $context->msg( 'currentrevisionlink' )->escaped()
                        : Linker::linkKnown(
                                $this->getTitle(),
-                               wfMessage( 'currentrevisionlink' )->escaped(),
+                               $context->msg( 'currentrevisionlink' )->escaped(),
                                array(),
                                $extraParams
                        );
                $curdiff = $current
-                       ? wfMessage( 'diff' )->escaped()
+                       ? $context->msg( 'diff' )->escaped()
                        : Linker::linkKnown(
                                $this->getTitle(),
-                               wfMessage( 'diff' )->escaped(),
+                               $context->msg( 'diff' )->escaped(),
                                array(),
                                array(
                                        'diff' => 'cur',
@@ -1382,30 +1390,30 @@ class Article implements Page {
                $prevlink = $prev
                        ? Linker::linkKnown(
                                $this->getTitle(),
-                               wfMessage( 'previousrevision' )->escaped(),
+                               $context->msg( 'previousrevision' )->escaped(),
                                array(),
                                array(
                                        'direction' => 'prev',
                                        'oldid' => $oldid
                                ) + $extraParams
                        )
-                       : wfMessage( 'previousrevision' )->escaped();
+                       : $context->msg( 'previousrevision' )->escaped();
                $prevdiff = $prev
                        ? Linker::linkKnown(
                                $this->getTitle(),
-                               wfMessage( 'diff' )->escaped(),
+                               $context->msg( 'diff' )->escaped(),
                                array(),
                                array(
                                        'diff' => 'prev',
                                        'oldid' => $oldid
                                ) + $extraParams
                        )
-                       : wfMessage( 'diff' )->escaped();
+                       : $context->msg( 'diff' )->escaped();
                $nextlink = $current
-                       ? wfMessage( 'nextrevision' )->escaped()
+                       ? $context->msg( 'nextrevision' )->escaped()
                        : Linker::linkKnown(
                                $this->getTitle(),
-                               wfMessage( 'nextrevision' )->escaped(),
+                               $context->msg( 'nextrevision' )->escaped(),
                                array(),
                                array(
                                        'direction' => 'next',
@@ -1413,10 +1421,10 @@ class Article implements Page {
                                ) + $extraParams
                        );
                $nextdiff = $current
-                       ? wfMessage( 'diff' )->escaped()
+                       ? $context->msg( 'diff' )->escaped()
                        : Linker::linkKnown(
                                $this->getTitle(),
-                               wfMessage( 'diff' )->escaped(),
+                               $context->msg( 'diff' )->escaped(),
                                array(),
                                array(
                                        'diff' => 'next',
@@ -1430,7 +1438,7 @@ class Article implements Page {
                }
 
                $outputPage->addSubtitle( "<div id=\"mw-revision-nav\">" . $cdel .
-                       wfMessage( 'revision-nav' )->rawParams(
+                       $context->msg( 'revision-nav' )->rawParams(
                                $prevdiff, $prevlink, $lnk, $curdiff, $nextlink, $nextdiff
                        )->escaped() . "</div>" );
        }
@@ -1450,7 +1458,7 @@ class Article implements Page {
                $lang = $this->getTitle()->getPageLanguage();
                $out = $this->getContext()->getOutput();
                if ( $appendSubtitle ) {
-                       $out->addSubtitle( wfMessage( 'redirectpagesub' )->parse() );
+                       $out->addSubtitle( wfMessage( 'redirectpagesub' ) );
                }
                $out->addModuleStyles( 'mediawiki.action.view.redirectPage' );
                return static::getRedirectHeaderHtml( $lang, $target, $forceKnown );
@@ -1486,6 +1494,7 @@ class Article implements Page {
                                ( $forceKnown ? array( 'known', 'noclasses' ) : array() )
                        ) . '</li>';
                }
+               $html .= '</ul>';
 
                $redirectToText = wfMessage( 'redirectto' )->inLanguage( $lang )->text();
 
index 8373dc0..a0a3c69 100644 (file)
@@ -2029,7 +2029,8 @@ class WikiPage implements Page, IDBAccessObject {
         * Returns a stdClass with source, pst and output members
         *
         * @param Content $content
-        * @param int|null $revid
+        * @param Revision|int|null $revision Revision object. For backwards compatibility, a
+        *        revision ID is also accepted, but this is deprecated.
         * @param User|null $user
         * @param string|null $serialFormat
         * @param bool $useCache Check shared prepared edit cache
@@ -2039,10 +2040,23 @@ class WikiPage implements Page, IDBAccessObject {
         * @since 1.21
         */
        public function prepareContentForEdit(
-               Content $content, $revid = null, User $user = null, $serialFormat = null, $useCache = true
+               Content $content, $revision = null, User $user = null, $serialFormat = null, $useCache = true
        ) {
                global $wgContLang, $wgUser, $wgAjaxEditStash;
 
+               if ( is_object( $revision ) ) {
+                       $revid = $revision->getId();
+               } else {
+                       $revid = $revision;
+                       // This code path is deprecated, and nothing is known to
+                       // use it, so performance here shouldn't be a worry.
+                       if ( $revid !== null ) {
+                               $revision = Revision::newFromId( $revid, Revision::READ_LATEST );
+                       } else {
+                               $revision = null;
+                       }
+               }
+
                $user = is_null( $user ) ? $wgUser : $user;
                //XXX: check $user->getId() here???
 
@@ -2092,6 +2106,25 @@ class WikiPage implements Page, IDBAccessObject {
                if ( $cachedEdit ) {
                        $edit->output = $cachedEdit->output;
                } else {
+                       if ( $revision ) {
+                               // We get here if vary-revision is set. This means that this page references
+                               // itself (such as via self-transclusion). In this case, we need to make sure
+                               // that any such self-references refer to the newly-saved revision, and not
+                               // to the previous one, which could otherwise happen due to slave lag.
+                               $oldCallback = $edit->popts->setCurrentRevisionCallback(
+                                       function ( $title, $parser = false ) use ( $revision, &$oldCallback ) {
+                                               if ( $title->equals( $revision->getTitle() ) ) {
+                                                       return $revision;
+                                               } else {
+                                                       return call_user_func(
+                                                               $oldCallback,
+                                                               $title,
+                                                               $parser
+                                                       );
+                                               }
+                                       }
+                               );
+                       }
                        $edit->output = $edit->pstContent
                                ? $edit->pstContent->getParserOutput( $this->mTitle, $revid, $edit->popts )
                                : null;
@@ -2142,7 +2175,7 @@ class WikiPage implements Page, IDBAccessObject {
                // already pre-save transformed once.
                if ( !$this->mPreparedEdit || $this->mPreparedEdit->output->getFlag( 'vary-revision' ) ) {
                        wfDebug( __METHOD__ . ": No prepared edit or vary-revision is set...\n" );
-                       $editInfo = $this->prepareContentForEdit( $content, $revision->getId(), $user );
+                       $editInfo = $this->prepareContentForEdit( $content, $revision, $user );
                } else {
                        wfDebug( __METHOD__ . ": No vary-revision, using prepared edit...\n" );
                        $editInfo = $this->mPreparedEdit;
@@ -2983,8 +3016,8 @@ class WikiPage implements Page, IDBAccessObject {
 
                // Get the last edit not by this guy...
                // Note: these may not be public values
-               $user = intval( $current->getRawUser() );
-               $user_text = $dbw->addQuotes( $current->getRawUserText() );
+               $user = intval( $current->getUser( Revision::RAW ) );
+               $user_text = $dbw->addQuotes( $current->getUserText( Revision::RAW ) );
                $s = $dbw->selectRow( 'revision',
                        array( 'rev_id', 'rev_timestamp', 'rev_deleted' ),
                        array( 'rev_page' => $current->getPage(),
index 82f0e9d..3db8d1e 100644 (file)
@@ -315,8 +315,8 @@ class DateFormatter {
        }
 
        /**
-        * @todo document
-        * @return string
+        * Return a regex that can be used to find month names in string
+        * @return string regex to find the months with
         */
        public function getMonthRegex() {
                $names = array();
@@ -338,7 +338,7 @@ class DateFormatter {
        }
 
        /**
-        * @todo document
+        * Make an ISO year from a year name, for instance: '-1199' from '1200 BC'
         * @param string $year Year name
         * @return string ISO year name
         */
@@ -356,9 +356,10 @@ class DateFormatter {
        }
 
        /**
-        * @todo document
-        * @param string $iso
-        * @return int|string
+        * Make a year one from an ISO year, for instance: '400 BC' from '-0399'.
+        * @param string $iso ISO year
+        * @return int|string int representing year number in case of AD dates, or string containing
+        *   year number and 'BC' at the end otherwise.
         */
        public function makeNormalYear( $iso ) {
                if ( $iso[0] == '-' ) {
index fc7040a..46ba4b4 100644 (file)
@@ -4384,7 +4384,7 @@ class Parser {
                # links - this is for later, but we need the number of headlines right now
                $matches = array();
                $numMatches = preg_match_all(
-                       '/<H(?P<level>[1-6])(?P<attrib>.*?' . '>)\s*(?P<header>[\s\S]*?)\s*<\/H[1-6] *>/i',
+                       '/<H(?P<level>[1-6])(?P<attrib>.*?>)\s*(?P<header>[\s\S]*?)\s*<\/H[1-6] *>/i',
                        $text,
                        $matches
                );
@@ -4538,8 +4538,8 @@ class Parser {
                        # to allow setting directionality in toc items.
                        $tocline = preg_replace(
                                array(
-                                       '#<(?!/?(span|sup|sub|bdi|i|b)(?: [^>]*)?>).*?' . '>#',
-                                       '#<(/?(?:span(?: dir="(?:rtl|ltr)")?|sup|sub|bdi|i|b))(?: .*?)?' . '>#'
+                                       '#<(?!/?(span|sup|sub|bdi|i|b)(?: [^>]*)?>).*?>#',
+                                       '#<(/?(?:span(?: dir="(?:rtl|ltr)")?|sup|sub|bdi|i|b))(?: .*?)?>#'
                                ),
                                array( '', '<$1>' ),
                                $safeHeadline
@@ -4547,7 +4547,7 @@ class Parser {
                        $tocline = trim( $tocline );
 
                        # For the anchor, strip out HTML-y stuff period
-                       $safeHeadline = preg_replace( '/<.*?' . '>/', '', $safeHeadline );
+                       $safeHeadline = preg_replace( '/<.*?>/', '', $safeHeadline );
                        $safeHeadline = Sanitizer::normalizeSectionNameWhitespace( $safeHeadline );
 
                        # Save headline for section edit hint before it's escaped
@@ -4715,7 +4715,7 @@ class Parser {
                }
 
                # split up and insert constructed headlines
-               $blocks = preg_split( '/<H[1-6].*?' . '>[\s\S]*?<\/H[1-6]>/i', $text );
+               $blocks = preg_split( '/<H[1-6].*?>[\s\S]*?<\/H[1-6]>/i', $text );
                $i = 0;
 
                // build an array of document sections
index 117e04a..e9e72be 100644 (file)
@@ -489,9 +489,10 @@ class ParserOutput extends CacheTime {
         * Add a tracking category, getting the title from a system message,
         * or print a debug message if the title is invalid.
         *
-        * Please add any message that you use with this function to
-        * $wgTrackingCategories. That way they will be listed on
-        * Special:TrackingCategories.
+        * Any message used with this function should be registered so it will
+        * show up on Special:TrackingCategories. Core messages should be added
+        * to SpecialTrackingCategories::$coreTrackingCategories, and extensions
+        * should add to "TrackingCategories" in their extension.json.
         *
         * @param string $msg Message key
         * @param Title $title title of the page which is being tracked
index 45bea64..25222f6 100644 (file)
@@ -11,7 +11,6 @@ class ExtensionProcessor implements Processor {
                'ResourceLoaderSources',
                'ResourceLoaderLESSVars',
                'ResourceLoaderLESSImportPaths',
-               'TrackingCategories',
                'DefaultUserOptions',
                'HiddenPrefs',
                'GroupPermissions',
@@ -129,7 +128,8 @@ class ExtensionProcessor implements Processor {
                foreach ( $info as $key => $val ) {
                        if ( in_array( $key, self::$globalSettings ) ) {
                                $this->storeToArray( "wg$key", $val, $this->globals );
-                       } elseif ( !in_array( $key, $this->processed ) ) {
+                       // Ignore anything that starts with a @
+                       } elseif ( $key[0] !== '@' && !in_array( $key, $this->processed ) ) {
                                $this->storeToArray( $key, $val, $this->attributes );
                        }
                }
@@ -237,7 +237,9 @@ class ExtensionProcessor implements Processor {
        protected function extractConfig( array $info ) {
                if ( isset( $info['config'] ) ) {
                        foreach ( $info['config'] as $key => $val ) {
-                               $this->globals["wg$key"] = $val;
+                               if ( $key[0] !== '@' ) {
+                                       $this->globals["wg$key"] = $val;
+                               }
                        }
                        $this->processed[] = 'config';
                }
index 255d005..223a2fe 100644 (file)
@@ -45,8 +45,6 @@ class SearchHighlighter {
        public function highlightText( $text, $terms, $contextlines, $contextchars ) {
                global $wgContLang, $wgSearchHighlightBoundaries;
 
-               $fname = __METHOD__;
-
                if ( $text == '' ) {
                        return '';
                }
@@ -444,14 +442,6 @@ class SearchHighlighter {
         * @return mixed
         */
        function removeWiki( $text ) {
-               $fname = __METHOD__;
-
-               // $text = preg_replace( "/'{2,5}/", "", $text );
-               // $text = preg_replace( "/\[[a-z]+:\/\/[^ ]+ ([^]]+)\]/", "\\2", $text );
-               // $text = preg_replace( "/\[\[([^]|]+)\]\]/", "\\1", $text );
-               // $text = preg_replace( "/\[\[([^]]+\|)?([^|]]+)\]\]/", "\\2", $text );
-               // $text = preg_replace( "/\\{\\|(.*?)\\|\\}/", "", $text );
-               // $text = preg_replace( "/\\[\\[[A-Za-z_-]+:([^|]+?)\\]\\]/", "", $text );
                $text = preg_replace( "/\\{\\{([^|]+?)\\}\\}/", "", $text );
                $text = preg_replace( "/\\{\\{([^|]+\\|)(.*?)\\}\\}/", "\\2", $text );
                $text = preg_replace( "/\\[\\[([^|]+?)\\]\\]/", "\\1", $text );
@@ -460,7 +450,6 @@ class SearchHighlighter {
                        array( $this, 'linkReplace' ),
                        $text
                );
-               // $text = preg_replace("/\\[\\[([^|]+\\|)(.*?)\\]\\]/", "\\2", $text);
                $text = preg_replace( "/<\/?[^>]+>/", "", $text );
                $text = preg_replace( "/'''''/", "", $text );
                $text = preg_replace( "/('''|<\/?[iIuUbB]>)/", "", $text );
@@ -503,7 +492,6 @@ class SearchHighlighter {
         */
        public function highlightSimple( $text, $terms, $contextlines, $contextchars ) {
                global $wgContLang;
-               $fname = __METHOD__;
 
                $lines = explode( "\n", $text );
 
index b28dc51..905e537 100644 (file)
@@ -50,6 +50,20 @@ abstract class QuickTemplate {
                $this->data[$name] = $value;
        }
 
+       /**
+       * extends the value of data with name $name with the value $value
+       * @since 1.25
+       * @param string $name
+       * @param mixed $value
+       */
+       public function extend( $name, $value ) {
+               if ( $this->haveData( $name ) ) {
+                       $this->data[$name] = $this->data[$name] . $value;
+               } else {
+                       $this->data[$name] = $value;
+               }
+       }
+
        /**
         * Gets the template data requested
         * @since 1.22
index 999dda8..6cc139b 100644 (file)
@@ -650,7 +650,7 @@ abstract class Skin extends ContextSource {
        }
 
        /**
-        * @return string
+        * @return string HTML
         */
        function getUndeleteLink() {
                $action = $this->getRequest()->getVal( 'action', 'view' );
@@ -670,7 +670,7 @@ abstract class Skin extends ContextSource {
                                        Linker::linkKnown(
                                                SpecialPage::getTitleFor( 'Undelete', $this->getTitle()->getPrefixedDBkey() ),
                                                $this->msg( 'restorelink' )->numParams( $n )->escaped() )
-                                       )->text();
+                                       )->escaped();
                        }
                }
 
@@ -837,9 +837,12 @@ abstract class Skin extends ContextSource {
        function getPoweredBy() {
                global $wgResourceBasePath;
 
-               $url = htmlspecialchars( "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png" );
-               $text = '<a href="//www.mediawiki.org/"><img src="' . $url
-                       . '" height="31" width="88" alt="Powered by MediaWiki" /></a>';
+               $url1 = htmlspecialchars( "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png" );
+               $url1_5 = htmlspecialchars( "$wgResourceBasePath/resources/assets/poweredby_mediawiki_132x47.png" );
+               $url2 = htmlspecialchars( "$wgResourceBasePath/resources/assets/poweredby_mediawiki_176x62.png" );
+               $text = '<a href="//www.mediawiki.org/"><img src="' . $url1
+                       . '" srcset="' . $url1_5 . ' 1.5x, ' . $url2 . ' 2x" '
+                       . 'height="31" width="88" alt="Powered by MediaWiki" /></a>';
                Hooks::run( 'SkinGetPoweredBy', array( &$text, $this ) );
                return $text;
        }
index fd3bc7b..f727c05 100644 (file)
@@ -74,6 +74,16 @@ abstract class FormSpecialPage extends SpecialPage {
                return strtolower( $this->getName() );
        }
 
+       /**
+        * Get display format for the form. See HTMLForm documentation for available values.
+        *
+        * @since 1.25
+        * @return string
+        */
+       protected function getDisplayFormat() {
+               return 'table';
+       }
+
        /**
         * Get the HTMLForm to control behavior
         * @return HTMLForm|null
@@ -81,15 +91,9 @@ abstract class FormSpecialPage extends SpecialPage {
        protected function getForm() {
                $this->fields = $this->getFormFields();
 
-               $form = new HTMLForm( $this->fields, $this->getContext(), $this->getMessagePrefix() );
+               $form = HTMLForm::factory( $this->getDisplayFormat(), $this->fields, $this->getContext(), $this->getMessagePrefix() );
                $form->setSubmitCallback( array( $this, 'onSubmit' ) );
-               // If the form is a compact vertical form, then don't output this ugly
-               // fieldset surrounding it.
-               // XXX Special pages can setDisplayFormat to 'vform' in alterForm(), but that
-               // is called after this.
-               if ( !$form->isVForm() ) {
-                       $form->setWrapperLegendMsg( $this->getMessagePrefix() . '-legend' );
-               }
+               $form->setWrapperLegendMsg( $this->getMessagePrefix() . '-legend' );
 
                $headerMsg = $this->msg( $this->getMessagePrefix() . '-text' );
                if ( !$headerMsg->isDisabled() ) {
index 7cf94cc..0008b10 100644 (file)
@@ -224,15 +224,16 @@ class AllMessagesTablePager extends TablePager {
 
        function getAllMessages( $descending ) {
                $messageNames = Language::getLocalisationCache()->getSubitemList( 'en', 'messages' );
+
+               // Normalise message names so they look like page titles and sort correctly - T86139
+               $messageNames = array_map( array( $this->lang, 'ucfirst' ), $messageNames );
+
                if ( $descending ) {
                        rsort( $messageNames );
                } else {
                        asort( $messageNames );
                }
 
-               // Normalise message names so they look like page titles
-               $messageNames = array_map( array( $this->lang, 'ucfirst' ), $messageNames );
-
                return $messageNames;
        }
 
index 06ede61..674cbc8 100644 (file)
@@ -106,11 +106,13 @@ class SpecialChangeEmail extends FormSpecialPage {
                return $fields;
        }
 
+       protected function getDisplayFormat() {
+               return 'vform';
+       }
+
        protected function alterForm( HTMLForm $form ) {
-               $form->setDisplayFormat( 'vform' );
                $form->setId( 'mw-changeemail-form' );
                $form->setTableId( 'mw-changeemail-table' );
-               $form->setWrapperLegend( false );
                $form->setSubmitTextMsg( 'changeemail-submit' );
                $form->addHiddenFields( $this->getRequest()->getValues( 'returnto', 'returntoquery' ) );
        }
index 0ebbbc9..607b4f6 100644 (file)
@@ -196,7 +196,7 @@ class FileDuplicateSearchPage extends QueryPage {
         *
         * @param Skin $skin
         * @param File $result
-        * @return string
+        * @return string HTML
         */
        function formatResult( $skin, $result ) {
                global $wgContLang;
@@ -204,8 +204,8 @@ class FileDuplicateSearchPage extends QueryPage {
                $nt = $result->getTitle();
                $text = $wgContLang->convert( $nt->getText() );
                $plink = Linker::link(
-                       Title::newFromText( $nt->getPrefixedText() ),
-                       $text
+                       $nt,
+                       htmlspecialchars( $text )
                );
 
                $userText = $result->getUser( 'text' );
@@ -220,7 +220,8 @@ class FileDuplicateSearchPage extends QueryPage {
                        $user = htmlspecialchars( $userText );
                }
 
-               $time = $this->getLanguage()->userTimeAndDate( $result->getTimestamp(), $this->getUser() );
+               $time = htmlspecialchars( $this->getLanguage()->userTimeAndDate(
+                       $result->getTimestamp(), $this->getUser() ) );
 
                return "$plink . . $user . . $time";
        }
index 923283e..9315eb8 100644 (file)
@@ -237,8 +237,9 @@ class SpecialLog extends SpecialPage {
         */
        protected function addHeader( $type ) {
                $page = new LogPage( $type );
-               $this->getOutput()->setPageTitle( $page->getName()->text() );
-               $this->getOutput()->addHTML( $page->getDescription()->parseAsBlock() );
+               $this->getOutput()->setPageTitle( $page->getName() );
+               $this->getOutput()->addHTML( $page->getDescription()
+                       ->setContext( $this->getContext() )->parseAsBlock() );
        }
 
        protected function getGroupName() {
index 2a7e435..cac324a 100644 (file)
@@ -165,17 +165,7 @@ class MovePageForm extends UnlistedSpecialPage {
                        $out->addWikiMsg( 'delete_and_move_text', $newTitle->getPrefixedText() );
                        $movepagebtn = $this->msg( 'delete_and_move' )->text();
                        $submitVar = 'wpDeleteAndMove';
-                       $confirm = "
-                               <tr>
-                                       <td></td>
-                                       <td class='mw-input'>" .
-                               Xml::checkLabel(
-                                       $this->msg( 'delete_and_move_confirm' )->text(),
-                                       'wpConfirm',
-                                       'wpConfirm'
-                               ) .
-                               "</td>
-                               </tr>";
+                       $confirm = true;
                        $err = array();
                } else {
                        if ( $this->oldTitle->getNamespace() == NS_USER && !$this->oldTitle->isSubpage() ) {
@@ -310,12 +300,15 @@ class MovePageForm extends UnlistedSpecialPage {
                                        'id' => 'movepage'
                                )
                        ) .
-                               Xml::openElement( 'fieldset' ) .
-                               Xml::element( 'legend', null, $this->msg( 'move-page-legend' )->text() ) .
-                               Xml::openElement( 'table', array( 'id' => 'mw-movepage-table' ) ) .
-                               "<tr>
+                       Xml::openElement( 'fieldset' ) .
+                       Xml::element( 'legend', null, $this->msg( 'move-page-legend' )->text() ) .
+                       Xml::openElement( 'table', array( 'id' => 'mw-movepage-table' ) )
+               );
+
+               $out->addHTML(
+                       "<tr>
                                <td class='mw-label'>" .
-                               $this->msg( 'movearticle' )->escaped() .
+                                       $this->msg( 'movearticle' )->escaped() .
                                "</td>
                                <td class='mw-input'>
                                        <strong>{$oldTitleLink}</strong>
@@ -323,32 +316,32 @@ class MovePageForm extends UnlistedSpecialPage {
                        </tr>
                        <tr>
                                <td class='mw-label'>" .
-                               Xml::label( $this->msg( 'newtitle' )->text(), 'wpNewTitleMain' ) .
+                                       Xml::label( $this->msg( 'newtitle' )->text(), 'wpNewTitleMain' ) .
                                "</td>
                                <td class='mw-input'>" .
-                               Html::namespaceSelector(
-                                       array(
-                                               'selected' => $newTitle->getNamespace(),
-                                               'exclude' => $immovableNamespaces
-                                       ),
-                                       array( 'name' => 'wpNewTitleNs', 'id' => 'wpNewTitleNs' )
-                               ) .
-                               Xml::input(
-                                       'wpNewTitleMain',
-                                       60,
-                                       $wgContLang->recodeForEdit( $newTitle->getText() ),
-                                       array(
-                                               'type' => 'text',
-                                               'id' => 'wpNewTitleMain',
-                                               'maxlength' => 255
-                                       )
-                               ) .
-                               Html::hidden( 'wpOldTitle', $this->oldTitle->getPrefixedText() ) .
+                                       Html::namespaceSelector(
+                                               array(
+                                                       'selected' => $newTitle->getNamespace(),
+                                                       'exclude' => $immovableNamespaces
+                                               ),
+                                               array( 'name' => 'wpNewTitleNs', 'id' => 'wpNewTitleNs' )
+                                       ) .
+                                       Xml::input(
+                                               'wpNewTitleMain',
+                                               60,
+                                               $wgContLang->recodeForEdit( $newTitle->getText() ),
+                                               array(
+                                                       'type' => 'text',
+                                                       'id' => 'wpNewTitleMain',
+                                                       'maxlength' => 255
+                                               )
+                                       ) .
+                                       Html::hidden( 'wpOldTitle', $this->oldTitle->getPrefixedText() ) .
                                "</td>
                        </tr>
                        <tr>
                                <td class='mw-label'>" .
-                               Xml::label( $this->msg( 'movereason' )->text(), 'wpReason' ) .
+                                       Xml::label( $this->msg( 'movereason' )->text(), 'wpReason' ) .
                                "</td>
                                <td class='mw-input'>" .
                                        Xml::input( 'wpReason', 60, $this->reason, array(
@@ -365,12 +358,12 @@ class MovePageForm extends UnlistedSpecialPage {
                                <tr>
                                        <td></td>
                                        <td class='mw-input'>" .
-                                       Xml::checkLabel(
-                                               $this->msg( 'movetalk' )->text(),
-                                               'wpMovetalk',
-                                               'wpMovetalk',
-                                               $this->moveTalk
-                                       ) .
+                                               Xml::checkLabel(
+                                                       $this->msg( 'movetalk' )->text(),
+                                                       'wpMovetalk',
+                                                       'wpMovetalk',
+                                                       $this->moveTalk
+                                               ) .
                                        "</td>
                                </tr>"
                        );
@@ -389,14 +382,14 @@ class MovePageForm extends UnlistedSpecialPage {
                        $out->addHTML( "
                                <tr>
                                        <td></td>
-                                       <td class='mw-input' >" .
-                                       Xml::checkLabel(
-                                               $this->msg( 'move-leave-redirect' )->text(),
-                                               'wpLeaveRedirect',
-                                               'wpLeaveRedirect',
-                                               $isChecked,
-                                               $options
-                                       ) .
+                                       <td class='mw-input'>" .
+                                               Xml::checkLabel(
+                                                       $this->msg( 'move-leave-redirect' )->text(),
+                                                       'wpLeaveRedirect',
+                                                       'wpLeaveRedirect',
+                                                       $isChecked,
+                                                       $options
+                                               ) .
                                        "</td>
                                </tr>"
                        );
@@ -406,13 +399,13 @@ class MovePageForm extends UnlistedSpecialPage {
                        $out->addHTML( "
                                <tr>
                                        <td></td>
-                                       <td class='mw-input' >" .
-                                       Xml::checkLabel(
-                                               $this->msg( 'fix-double-redirects' )->text(),
-                                               'wpFixRedirects',
-                                               'wpFixRedirects',
-                                               $this->fixRedirects
-                                       ) .
+                                       <td class='mw-input'>" .
+                                               Xml::checkLabel(
+                                                       $this->msg( 'fix-double-redirects' )->text(),
+                                                       'wpFixRedirects',
+                                                       'wpFixRedirects',
+                                                       $this->fixRedirects
+                                               ) .
                                        "</td>
                                </tr>"
                        );
@@ -423,21 +416,23 @@ class MovePageForm extends UnlistedSpecialPage {
                        $out->addHTML( "
                                <tr>
                                        <td></td>
-                                       <td class=\"mw-input\">" .
-                                       Xml::check(
-                                               'wpMovesubpages',
-                                               # Don't check the box if we only have talk subpages to
-                                               # move and we aren't moving the talk page.
-                                               $this->moveSubpages && ( $this->oldTitle->hasSubpages() || $this->moveTalk ),
-                                               array( 'id' => 'wpMovesubpages' )
-                                       ) . '&#160;' .
-                                       Xml::tags( 'label', array( 'for' => 'wpMovesubpages' ),
-                                               $this->msg(
-                                                       ( $this->oldTitle->hasSubpages()
-                                                               ? 'move-subpages'
-                                                               : 'move-talk-subpages' )
-                                               )->numParams( $maximumMovedPages )->params( $maximumMovedPages )->parse()
-                                       ) .
+                                       <td class='mw-input'>" .
+                                               Xml::check(
+                                                       'wpMovesubpages',
+                                                       # Don't check the box if we only have talk subpages to
+                                                       # move and we aren't moving the talk page.
+                                                       $this->moveSubpages && ( $this->oldTitle->hasSubpages() || $this->moveTalk ),
+                                                       array( 'id' => 'wpMovesubpages' )
+                                               ) . '&#160;' .
+                                               Xml::tags(
+                                                       'label',
+                                                       array( 'for' => 'wpMovesubpages' ),
+                                                       $this->msg(
+                                                               ( $this->oldTitle->hasSubpages()
+                                                                       ? 'move-subpages'
+                                                                       : 'move-talk-subpages' )
+                                                       )->numParams( $maximumMovedPages )->params( $maximumMovedPages )->parse()
+                                               ) .
                                        "</td>
                                </tr>"
                        );
@@ -448,32 +443,50 @@ class MovePageForm extends UnlistedSpecialPage {
                # Don't allow watching if user is not logged in
                if ( $user->isLoggedIn() ) {
                        $out->addHTML( "
-                       <tr>
-                               <td></td>
-                               <td class='mw-input'>" .
-                               Xml::checkLabel(
-                                       $this->msg( 'move-watch' )->text(),
-                                       'wpWatch',
-                                       'watch',
-                                       $watchChecked
-                               ) .
-                               "</td>
-                       </tr>" );
+                               <tr>
+                                       <td></td>
+                                       <td class='mw-input'>" .
+                                               Xml::checkLabel(
+                                                       $this->msg( 'move-watch' )->text(),
+                                                       'wpWatch',
+                                                       'watch',
+                                                       $watchChecked
+                                               ) .
+                                       "</td>
+                               </tr>"
+                       );
+               }
+
+               if ( $confirm ) {
+                       $out->addHTML( "
+                               <tr>
+                                       <td></td>
+                                       <td class='mw-input'>" .
+                                               Xml::checkLabel(
+                                                       $this->msg( 'delete_and_move_confirm' )->text(),
+                                                       'wpConfirm',
+                                                       'wpConfirm'
+                                               ) .
+                                       "</td>
+                               </tr>"
+                       );
                }
 
                $out->addHTML( "
-                               {$confirm}
                        <tr>
-                               <td>&#160;</td>
+                               <td></td>
                                <td class='mw-submit'>" .
-                               Xml::submitButton( $movepagebtn, array( 'name' => $submitVar ) ) .
+                                       Xml::submitButton( $movepagebtn, array( 'name' => $submitVar ) ) .
                                "</td>
-                       </tr>" .
-                               Xml::closeElement( 'table' ) .
-                               Html::hidden( 'wpEditToken', $user->getEditToken() ) .
-                               Xml::closeElement( 'fieldset' ) .
-                               Xml::closeElement( 'form' ) .
-                               "\n"
+                       </tr>"
+               );
+
+               $out->addHTML(
+                       Xml::closeElement( 'table' ) .
+                       Html::hidden( 'wpEditToken', $user->getEditToken() ) .
+                       Xml::closeElement( 'fieldset' ) .
+                       Xml::closeElement( 'form' ) .
+                       "\n"
                );
 
                $this->showLogFragment( $this->oldTitle );
@@ -685,7 +698,10 @@ class MovePageForm extends UnlistedSpecialPage {
                                $oldSubpage->getDBkey()
                        );
 
-                       if ( $oldSubpage->isTalkPage() ) {
+                       if ( $oldSubpage->isSubpage() && ( $ot->isTalkPage() xor $nt->isTalkPage() ) ) {
+                               // Moving a subpage from a subject namespace to a talk namespace or vice-versa
+                               $newNs = $nt->getNamespace();
+                       } elseif ( $oldSubpage->isTalkPage() ) {
                                $newNs = $nt->getTalkPage()->getNamespace();
                        } else {
                                $newNs = $nt->getSubjectPage()->getNamespace();
index 82cd0a1..994a2e5 100644 (file)
@@ -333,12 +333,12 @@ class SpecialNewpages extends IncludableSpecialPage {
                $hist = Html::rawElement( 'span', array( 'class' => 'mw-newpages-history' ),
                        $this->msg( 'parentheses' )->rawParams( $histLink )->escaped() );
 
-               $length = Html::element(
+               $length = Html::rawElement(
                        'span',
                        array( 'class' => 'mw-newpages-length' ),
-                       $this->msg( 'brackets' )->params( $this->msg( 'nbytes' )
-                               ->numParams( $result->length )->text()
-                       )
+                       $this->msg( 'brackets' )->rawParams(
+                               $this->msg( 'nbytes' )->numParams( $result->length )->escaped()
+                       )->escaped()
                );
 
                $ulink = Linker::revUserTools( $rev );
index 52c2460..79b2444 100644 (file)
@@ -90,9 +90,11 @@ class SpecialPageLanguage extends FormSpecialPage {
                return $this->showLogFragment( $this->par );
        }
 
+       protected function getDisplayFormat() {
+               return 'vform';
+       }
+
        public function alterForm( HTMLForm $form ) {
-               $form->setDisplayFormat( 'vform' );
-               $form->setWrapperLegend( false );
                Hooks::run( 'LanguageSelector', array( $this->getOutput(), 'mw-languageselector' ) );
        }
 
index 6ee3290..a2dc2ad 100644 (file)
@@ -103,16 +103,13 @@ class SpecialPasswordReset extends FormSpecialPage {
                return $a;
        }
 
+       protected function getDisplayFormat() {
+               return 'vform';
+       }
+
        public function alterForm( HTMLForm $form ) {
                $resetRoutes = $this->getConfig()->get( 'PasswordResetRoutes' );
 
-               $form->setDisplayFormat( 'vform' );
-               // Turn the old-school line around the form off.
-               // XXX This wouldn't be necessary here if we could set the format of
-               // the HTMLForm to 'vform' at its creation, but there's no way to do so
-               // from a FormSpecialPage class.
-               $form->setWrapperLegend( false );
-
                $form->addHiddenFields( $this->getRequest()->getValues( 'returnto', 'returntoquery' ) );
 
                $i = 0;
index 0ba7385..6749bb0 100644 (file)
@@ -353,7 +353,7 @@ class ProtectedPagesPager extends TablePager {
        /**
         * @param string $field
         * @param string $value
-        * @return string
+        * @return string HTML
         * @throws MWException
         */
        function formatValue( $field, $value ) {
@@ -372,7 +372,8 @@ class ProtectedPagesPager extends TablePager {
                                                $this->msg( 'protectedpages-unknown-timestamp' )->escaped()
                                        );
                                } else {
-                                       $formatted = $this->getLanguage()->userTimeAndDate( $value, $this->getUser() );
+                                       $formatted = htmlspecialchars( $this->getLanguage()->userTimeAndDate(
+                                               $value, $this->getUser() ) );
                                }
                                break;
 
@@ -402,7 +403,8 @@ class ProtectedPagesPager extends TablePager {
                                break;
 
                        case 'pr_expiry':
-                               $formatted = $this->getLanguage()->formatExpiry( $value, /* User preference timezone */true );
+                               $formatted = htmlspecialchars( $this->getLanguage()->formatExpiry(
+                                       $value, /* User preference timezone */true ) );
                                $title = Title::makeTitleSafe( $row->page_namespace, $row->page_title );
                                if ( $this->getUser()->isAllowed( 'protect' ) && $title ) {
                                        $changeProtection = Linker::linkKnown(
@@ -454,7 +456,7 @@ class ProtectedPagesPager extends TablePager {
                                // Messages: restriction-level-sysop, restriction-level-autoconfirmed
                                $params[] = $this->msg( 'restriction-level-' . $row->pr_level )->escaped();
                                if ( $row->pr_cascade ) {
-                                       $params[] = $this->msg( 'protect-summary-cascade' )->text();
+                                       $params[] = $this->msg( 'protect-summary-cascade' )->escaped();
                                }
                                $formatted = $this->getLanguage()->commaList( $params );
                                break;
index 7684c05..d219c99 100644 (file)
@@ -36,6 +36,24 @@ class SpecialTrackingCategories extends SpecialPage {
                parent::__construct( 'TrackingCategories' );
        }
 
+       /**
+        * Tracking categories that exist in core
+        *
+        * @var array
+        */
+       private static $coreTrackingCategories = array(
+               'index-category',
+               'noindex-category',
+               'duplicate-args-category',
+               'expensive-parserfunction-category',
+               'post-expand-template-argument-category',
+               'post-expand-template-inclusion-category',
+               'hidden-category-category',
+               'broken-file-category',
+               'node-count-exceeded-category',
+               'expansion-depth-exceeded-category',
+       );
+
        function execute( $par ) {
                $this->setHeaders();
                $this->outputHeader();
@@ -120,8 +138,13 @@ class SpecialTrackingCategories extends SpecialPage {
         * @return array Array( 'msg' => Title, 'cats' => Title[] )
         */
        private function prepareTrackingCategoriesData() {
+               $categories = array_merge(
+                       self::$coreTrackingCategories,
+                       ExtensionRegistry::getInstance()->getAttribute( 'TrackingCategories' ),
+                       $this->getConfig()->get( 'TrackingCategories' ) // deprecated
+               );
                $trackingCategories = array();
-               foreach ( $this->getConfig()->get( 'TrackingCategories' ) as $catMsg ) {
+               foreach ( $categories as $catMsg ) {
                        /*
                         * Check if the tracking category varies by namespace
                         * Otherwise only pages in the current namespace will be displayed
index 2ea1b12..fb2c421 100644 (file)
@@ -550,7 +550,7 @@ class PageArchive {
                                'title' => $article->getTitle(), // used to derive default content model
                        )
                );
-               $user = User::newFromName( $revision->getRawUserText(), false );
+               $user = User::newFromName( $revision->getUserText( Revision::RAW ), false );
                $content = $revision->getContent( Revision::RAW );
 
                //NOTE: article ID may not be known yet. prepareSave() should not modify the database.
@@ -623,7 +623,7 @@ class PageArchive {
                $wasnew = $article->updateIfNewerOn( $dbw, $revision, $previousRevId );
                if ( $created || $wasnew ) {
                        // Update site stats, link tables, etc
-                       $user = User::newFromName( $revision->getRawUserText(), false );
+                       $user = User::newFromName( $revision->getUserText( Revision::RAW ), false );
                        $article->doEditUpdates(
                                $revision,
                                $user,
index 8dc9bb6..1b85ff8 100644 (file)
@@ -461,7 +461,7 @@ class SpecialUpload extends SpecialPage {
                // Get the page text if this is not a reupload
                if ( !$this->mForReUpload ) {
                        $pageText = self::getInitialPageText( $this->mComment, $this->mLicense,
-                               $this->mCopyrightStatus, $this->mCopyrightSource );
+                               $this->mCopyrightStatus, $this->mCopyrightSource, $this->getConfig() );
                } else {
                        $pageText = false;
                }
@@ -491,28 +491,32 @@ class SpecialUpload extends SpecialPage {
         * @param string $license
         * @param string $copyStatus
         * @param string $source
+        * @param Config $config Configuration object to load data from
         * @return string
-        * @todo Use Config obj instead of globals
         */
        public static function getInitialPageText( $comment = '', $license = '',
-               $copyStatus = '', $source = ''
+               $copyStatus = '', $source = '', Config $config = null
        ) {
-               global $wgUseCopyrightUpload, $wgForceUIMsgAsContentMsg;
+               if ( $config === null ) {
+                       wfDebug( __METHOD__ . ' called without a Config instance passed to it' );
+                       $config = ConfigFactory::getDefaultInstance()->makeConfig( 'main' );
+               }
 
                $msg = array();
+               $forceUIMsgAsContentMsg = (array)$config->get( 'ForceUIMsgAsContentMsg' );
                /* These messages are transcluded into the actual text of the description page.
                 * Thus, forcing them as content messages makes the upload to produce an int: template
                 * instead of hardcoding it there in the uploader language.
                 */
                foreach ( array( 'license-header', 'filedesc', 'filestatus', 'filesource' ) as $msgName ) {
-                       if ( in_array( $msgName, (array)$wgForceUIMsgAsContentMsg ) ) {
+                       if ( in_array( $msgName, $forceUIMsgAsContentMsg ) ) {
                                $msg[$msgName] = "{{int:$msgName}}";
                        } else {
                                $msg[$msgName] = wfMessage( $msgName )->inContentLanguage()->text();
                        }
                }
 
-               if ( $wgUseCopyrightUpload ) {
+               if ( $config->get( 'UseCopyrightUpload' ) ) {
                        $licensetxt = '';
                        if ( $license != '' ) {
                                $licensetxt = '== ' . $msg['license-header'] . " ==\n" . '{{' . $license . '}}' . "\n";
index 36a31bd..3bf75a0 100644 (file)
@@ -244,18 +244,22 @@ class UserrightsPage extends SpecialPage {
                $oldGroups = $user->getGroups();
                $newGroups = $oldGroups;
 
-               // remove then add groups
+               // Remove then add groups
                if ( $remove ) {
-                       $newGroups = array_diff( $newGroups, $remove );
-                       foreach ( $remove as $group ) {
-                               $user->removeGroup( $group );
+                       foreach ( $remove as $index => $group ) {
+                               if ( !$user->removeGroup( $group ) ) {
+                                       unset($remove[$index]);
+                               }
                        }
+                       $newGroups = array_diff( $newGroups, $remove );
                }
                if ( $add ) {
-                       $newGroups = array_merge( $newGroups, $add );
-                       foreach ( $add as $group ) {
-                               $user->addGroup( $group );
+                       foreach ( $add as $index => $group ) {
+                               if ( !$user->addGroup( $group ) ) {
+                                       unset($add[$index]);
+                               }
                        }
+                       $newGroups = array_merge( $newGroups, $add );
                }
                $newGroups = array_unique( $newGroups );
 
index 2aa629e..a7365bb 100644 (file)
@@ -109,12 +109,7 @@ class SpecialVersion extends SpecialPage {
                                        $file = $this->getExtLicenseFileName( dirname( $extNode['path'] ) );
                                        if ( $file ) {
                                                $wikiText = file_get_contents( $file );
-                                               if ( !isset( $extNode['license-name'] ) ) {
-                                                       // If the developer did not explicitly set license-name they probably
-                                                       // are unaware that we're now sucking this file in and thus it's probably
-                                                       // not wikitext friendly.
-                                                       $wikiText = "<pre>$wikiText</pre>";
-                                               }
+                                               $wikiText = "<pre>$wikiText</pre>";
                                        }
                                }
 
@@ -555,7 +550,7 @@ class SpecialVersion extends SpecialPage {
                if ( count( $tags ) ) {
                        $out = Html::rawElement(
                                'h2',
-                               array( 'class' => 'mw-headline' ),
+                               array( 'class' => 'mw-headline plainlinks' ),
                                Linker::makeExternalLink(
                                        '//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Tag_extensions',
                                        $this->msg( 'version-parser-extensiontags' )->parse(),
@@ -593,7 +588,7 @@ class SpecialVersion extends SpecialPage {
 
                $fhooks = $wgParser->getFunctionHooks();
                if ( count( $fhooks ) ) {
-                       $out = Html::rawElement( 'h2', array( 'class' => 'mw-headline' ), Linker::makeExternalLink(
+                       $out = Html::rawElement( 'h2', array( 'class' => 'mw-headline plainlinks' ), Linker::makeExternalLink(
                                '//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Parser_functions',
                                $this->msg( 'version-parser-function-hooks' )->parse(),
                                false /* msg()->parse() already escapes */
@@ -969,10 +964,10 @@ class SpecialVersion extends SpecialPage {
                                if ( $this->getExtAuthorsFileName( $extDir ) ) {
                                        $text = Linker::link(
                                                $this->getPageTitle( "Credits/$extName" ),
-                                               $this->msg( 'version-poweredby-others' )->text()
+                                               $this->msg( 'version-poweredby-others' )->escaped()
                                        );
                                } else {
-                                       $text = $this->msg( 'version-poweredby-others' )->text();
+                                       $text = $this->msg( 'version-poweredby-others' )->escaped();
                                }
                                $list[] = $text;
                        } elseif ( substr( $item, -5 ) == ' ...]' ) {
@@ -988,7 +983,7 @@ class SpecialVersion extends SpecialPage {
                if ( !$hasOthers && $this->getExtAuthorsFileName( $extDir ) ) {
                        $list[] = $text = Linker::link(
                                $this->getPageTitle( "Credits/$extName" ),
-                               $this->msg( 'version-poweredby-others' )->text()
+                               $this->msg( 'version-poweredby-others' )->escaped()
                        );
                }
 
index 4eea01c..43bab0e 100644 (file)
@@ -53,7 +53,7 @@ class UsercreateTemplate extends BaseTemplate {
        <div id="userloginForm">
                <form name="userlogin2" id="userlogin2" class="mw-ui-vform" method="post" action="<?php $this->text( 'action' ); ?>">
                        <section class="mw-form-header">
-                               <?php $this->html( 'header' ); /* extensions such as ConfirmEdit add form HTML here */ ?>
+                               <?php $this->html( 'header' ); ?>
                        </section>
                        <!-- This element is used by the mediawiki.special.userlogin.signup.js module. -->
                        <div
@@ -217,8 +217,10 @@ class UsercreateTemplate extends BaseTemplate {
                                                                        <?php if ( !empty( $inputItem['value'] ) ) {
                                                                                echo 'checked="checked"';
                                                                        } ?>
-                                                               ><label for="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"></label>
-                                                       </div><?php $this->msgHtml( $inputItem['msg'] ); ?>
+                                                               ><label for="<?php echo htmlspecialchars( $inputItem['name'] ); ?>">
+                                                                       <?php $this->msgHtml( $inputItem['msg'] ); ?>
+                                                               </label>
+                                                       </div>
                                                <?php
                                                } else {
                                                        // Not a checkbox.
@@ -248,8 +250,11 @@ class UsercreateTemplate extends BaseTemplate {
                                }
                        }
 
-                       // JS attempts to move the image CAPTCHA below this part of the form,
-                       // so skip one index.
+                       // A separate placeholder for any inserting any extrafields, e.g used by ConfirmEdit extension
+                       if ( $this->haveData( 'extrafields' ) ) {
+                               echo $this->data['extrafields'];
+                       }
+                       // skip one index.
                        $tabIndex++;
                        ?>
                        <div class="mw-ui-vform-field mw-submit">
@@ -262,7 +267,6 @@ class UsercreateTemplate extends BaseTemplate {
                                                'tabindex' => $tabIndex++
                                        ),
                                        array(
-                                               'mw-ui-big',
                                                'mw-ui-block',
                                                'mw-ui-constructive',
                                        )
index 69266c8..345bb71 100644 (file)
@@ -70,12 +70,10 @@ class UserloginTemplate extends BaseTemplate {
                                        ?>
                                </label>
                                <?php
-                               $extraAttrs = array();
                                echo Html::input( 'wpName', $this->data['name'], 'text', array(
                                        'class' => 'loginText mw-ui-input',
                                        'id' => 'wpName1',
                                        'tabindex' => '1',
-                                       'size' => '20',
                                        // 'required' is blacklisted for now in Html.php due to browser issues.
                                        // Keeping here in case that changes.
                                        'required' => true,
@@ -97,7 +95,6 @@ class UserloginTemplate extends BaseTemplate {
                                        'class' => 'loginPassword mw-ui-input',
                                        'id' => 'wpPassword1',
                                        'tabindex' => '2',
-                                       'size' => '20',
                                        // Set focus to this field if username is filled in.
                                        'autofocus' => (bool)$this->data['name'],
                                        'placeholder' => $this->getMsg( 'userlogin-yourpassword-ph' )->text()
@@ -146,7 +143,7 @@ class UserloginTemplate extends BaseTemplate {
                                        'tabindex' => '6',
                                );
                                $modifiers = array(
-                                       'mw-ui-big', 'mw-ui-block', 'mw-ui-constructive',
+                                       'mw-ui-constructive',
                                );
                                echo Html::submitButton( $this->getMsg( 'pt-login-button' )->text(), $attrs, $modifiers );
                                ?>
@@ -166,33 +163,50 @@ class UserloginTemplate extends BaseTemplate {
                                ?>
                        </div>
                        <?php
+
+                       if ( $this->data['useemail'] && $this->data['canreset'] && $this->data['resetlink'] === true ) {
+                               echo Html::rawElement(
+                                       'div',
+                                       array(
+                                               'class' => 'mw-ui-vform-field mw-form-related-link-container',
+                                       ),
+                                       Linker::link(
+                                               SpecialPage::getTitleFor( 'PasswordReset' ),
+                                               $this->getMsg( 'userlogin-resetpassword-link' )->escaped()
+                                       )
+                               );
+                       }
+
                        if ( $this->haveData( 'createOrLoginHref' ) ) {
-                               if ( $this->data['useemail'] && $this->data['canreset'] && $this->data['resetlink'] === true ) {
-                                       echo Html::openElement( 'div',
-                                                       array(
-                                                               'class' => 'mw-ui-vform-field mw-form-related-link-container',
-                                                       )
-                                               ) .
-                                               Linker::link(
-                                                       SpecialPage::getTitleFor( 'PasswordReset' ),
-                                                       $this->getMsg( 'userlogin-resetpassword-link' )->parse()
-                                               ) .
-                                               Html::closeElement( 'div' );
-                               }
                                if ( $this->data['loggedin'] ) { ?>
-                                       <div id="mw-createaccount-another" class="mw-form-related-link-container mw-ui-vform-field">
+                                       <div class="mw-form-related-link-container mw-ui-vform-field">
                                                <a href="<?php $this->text( 'createOrLoginHref' ); ?>" id="mw-createaccount-join" tabindex="7"><?php $this->msg( 'userlogin-createanother' ); ?></a>
                                        </div>
                                <?php } else { ?>
                                        <div id="mw-createaccount-cta" class="mw-form-related-link-container mw-ui-vform-field">
-                                               <?php $this->msg( 'userlogin-noaccount' ); ?><a href="<?php $this->text( 'createOrLoginHref' ); ?>" id="mw-createaccount-join" tabindex="7"  class="mw-ui-button mw-ui-progressive"><?php $this->msg( 'userlogin-joinproject' ); ?></a>
+                                               <?php $this->msg( 'userlogin-noaccount' ); ?><a href="<?php $this->text( 'createOrLoginHref' ); ?>" id="mw-createaccount-join" tabindex="7" class="mw-ui-button mw-ui-progressive"><?php $this->msg( 'userlogin-joinproject' ); ?></a>
                                        </div>
-                               <?php } ?>
-                       <?php } ?>
-                       <?php if ( $this->haveData( 'uselang' ) ) { ?><input type="hidden" name="uselang" value="<?php $this->text( 'uselang' ); ?>" /><?php } ?>
-                       <?php if ( $this->haveData( 'token' ) ) { ?><input type="hidden" name="wpLoginToken" value="<?php $this->text( 'token' ); ?>" /><?php } ?>
-                       <?php if ( $this->data['cansecurelogin'] ) {?><input type="hidden" name="wpForceHttps" value="<?php $this->text( 'stickhttps' ); ?>" /><?php } ?>
-                       <?php if ( $this->data['cansecurelogin'] && $this->haveData( 'fromhttp' )) {?><input type="hidden" name="wpFromhttp" value="<?php $this->text( 'fromhttp' ); ?>" /><?php } ?>
+                               <?php
+                               }
+                       }
+
+                       // Hidden fields
+                       $fields = '';
+                       if ( $this->haveData( 'uselang' ) ) {
+                               $fields .= Html::hidden( 'uselang', $this->data['uselang'] );
+                       }
+                       if ( $this->haveData( 'token' ) ) {
+                               $fields .= Html::hidden( 'wpLoginToken', $this->data['token'] );
+                       }
+                       if ( $this->data['cansecurelogin'] ) {
+                               $fields .= Html::hidden( 'wpForceHttps', $this->data['stickhttps'] );
+                       }
+                       if ( $this->data['cansecurelogin'] && $this->haveData( 'fromhttp' ) ) {
+                               $fields .= Html::hidden( 'wpFromhttp', $this->data['fromhttp'] );
+                       }
+                       echo $fields;
+
+                       ?>
                </form>
        </div>
 </div>
index c71e315..77fff59 100644 (file)
@@ -315,294 +315,3 @@ class StringUtils {
                }
        }
 }
-
-/**
- * Base class for "replacers", objects used in preg_replace_callback() and
- * StringUtils::delimiterReplaceCallback()
- */
-class Replacer {
-       /**
-        * @return array
-        */
-       function cb() {
-               return array( &$this, 'replace' );
-       }
-}
-
-/**
- * Class to replace regex matches with a string similar to that used in preg_replace()
- */
-class RegexlikeReplacer extends Replacer {
-       private $r;
-
-       /**
-        * @param string $r
-        */
-       function __construct( $r ) {
-               $this->r = $r;
-       }
-
-       /**
-        * @param array $matches
-        * @return string
-        */
-       function replace( $matches ) {
-               $pairs = array();
-               foreach ( $matches as $i => $match ) {
-                       $pairs["\$$i"] = $match;
-               }
-
-               return strtr( $this->r, $pairs );
-       }
-}
-
-/**
- * Class to perform secondary replacement within each replacement string
- */
-class DoubleReplacer extends Replacer {
-       /**
-        * @param mixed $from
-        * @param mixed $to
-        * @param int $index
-        */
-       function __construct( $from, $to, $index = 0 ) {
-               $this->from = $from;
-               $this->to = $to;
-               $this->index = $index;
-       }
-
-       /**
-        * @param array $matches
-        * @return mixed
-        */
-       function replace( $matches ) {
-               return str_replace( $this->from, $this->to, $matches[$this->index] );
-       }
-}
-
-/**
- * Class to perform replacement based on a simple hashtable lookup
- */
-class HashtableReplacer extends Replacer {
-       private $table, $index;
-
-       /**
-        * @param array $table
-        * @param int $index
-        */
-       function __construct( $table, $index = 0 ) {
-               $this->table = $table;
-               $this->index = $index;
-       }
-
-       /**
-        * @param array $matches
-        * @return mixed
-        */
-       function replace( $matches ) {
-               return $this->table[$matches[$this->index]];
-       }
-}
-
-/**
- * Replacement array for FSS with fallback to strtr()
- * Supports lazy initialisation of FSS resource
- */
-class ReplacementArray {
-       private $data = false;
-       private $fss = false;
-
-       /**
-        * Create an object with the specified replacement array
-        * The array should have the same form as the replacement array for strtr()
-        * @param array $data
-        */
-       function __construct( $data = array() ) {
-               $this->data = $data;
-       }
-
-       /**
-        * @return array
-        */
-       function __sleep() {
-               return array( 'data' );
-       }
-
-       function __wakeup() {
-               $this->fss = false;
-       }
-
-       /**
-        * Set the whole replacement array at once
-        * @param array $data
-        */
-       function setArray( $data ) {
-               $this->data = $data;
-               $this->fss = false;
-       }
-
-       /**
-        * @return array|bool
-        */
-       function getArray() {
-               return $this->data;
-       }
-
-       /**
-        * Set an element of the replacement array
-        * @param string $from
-        * @param string $to
-        */
-       function setPair( $from, $to ) {
-               $this->data[$from] = $to;
-               $this->fss = false;
-       }
-
-       /**
-        * @param array $data
-        */
-       function mergeArray( $data ) {
-               $this->data = array_merge( $this->data, $data );
-               $this->fss = false;
-       }
-
-       /**
-        * @param ReplacementArray $other
-        */
-       function merge( $other ) {
-               $this->data = array_merge( $this->data, $other->data );
-               $this->fss = false;
-       }
-
-       /**
-        * @param string $from
-        */
-       function removePair( $from ) {
-               unset( $this->data[$from] );
-               $this->fss = false;
-       }
-
-       /**
-        * @param array $data
-        */
-       function removeArray( $data ) {
-               foreach ( $data as $from => $to ) {
-                       $this->removePair( $from );
-               }
-               $this->fss = false;
-       }
-
-       /**
-        * @param string $subject
-        * @return string
-        */
-       function replace( $subject ) {
-               if ( function_exists( 'fss_prep_replace' ) ) {
-                       if ( $this->fss === false ) {
-                               $this->fss = fss_prep_replace( $this->data );
-                       }
-                       $result = fss_exec_replace( $this->fss, $subject );
-               } else {
-                       $result = strtr( $subject, $this->data );
-               }
-
-               return $result;
-       }
-}
-
-/**
- * An iterator which works exactly like:
- *
- * foreach ( explode( $delim, $s ) as $element ) {
- *    ...
- * }
- *
- * Except it doesn't use 193 byte per element
- */
-class ExplodeIterator implements Iterator {
-       // The subject string
-       private $subject, $subjectLength;
-
-       // The delimiter
-       private $delim, $delimLength;
-
-       // The position of the start of the line
-       private $curPos;
-
-       // The position after the end of the next delimiter
-       private $endPos;
-
-       // The current token
-       private $current;
-
-       /**
-        * Construct a DelimIterator
-        * @param string $delim
-        * @param string $subject
-        */
-       function __construct( $delim, $subject ) {
-               $this->subject = $subject;
-               $this->delim = $delim;
-
-               // Micro-optimisation (theoretical)
-               $this->subjectLength = strlen( $subject );
-               $this->delimLength = strlen( $delim );
-
-               $this->rewind();
-       }
-
-       function rewind() {
-               $this->curPos = 0;
-               $this->endPos = strpos( $this->subject, $this->delim );
-               $this->refreshCurrent();
-       }
-
-       function refreshCurrent() {
-               if ( $this->curPos === false ) {
-                       $this->current = false;
-               } elseif ( $this->curPos >= $this->subjectLength ) {
-                       $this->current = '';
-               } elseif ( $this->endPos === false ) {
-                       $this->current = substr( $this->subject, $this->curPos );
-               } else {
-                       $this->current = substr( $this->subject, $this->curPos, $this->endPos - $this->curPos );
-               }
-       }
-
-       function current() {
-               return $this->current;
-       }
-
-       /**
-        * @return int|bool Current position or boolean false if invalid
-        */
-       function key() {
-               return $this->curPos;
-       }
-
-       /**
-        * @return string
-        */
-       function next() {
-               if ( $this->endPos === false ) {
-                       $this->curPos = false;
-               } else {
-                       $this->curPos = $this->endPos + $this->delimLength;
-                       if ( $this->curPos >= $this->subjectLength ) {
-                               $this->endPos = false;
-                       } else {
-                               $this->endPos = strpos( $this->subject, $this->delim, $this->curPos );
-                       }
-               }
-               $this->refreshCurrent();
-
-               return $this->current;
-       }
-
-       /**
-        * @return bool
-        */
-       function valid() {
-               return $this->curPos !== false;
-       }
-}
index 4e4d103..bb26d19 100644 (file)
@@ -74,6 +74,7 @@
        'be-tarask' => "беларуская (тарашкевіца)\xE2\x80\x8E",     # Belarusian in Taraskievica orthography
        'be-x-old' => "беларуская (тарашкевіца)\xE2\x80\x8E",      # (be-tarask compat)
        'bg' => 'български',   # Bulgarian
+       'bgn' => 'بلوچی رخشانی', # Western Balochi
        'bh' => 'भोजपुरी',        # Bihari macro language. Falls back to Bhojpuri (bho)
        'bho' => 'भोजपुरी',       # Bhojpuri
        'bi' => 'Bislama',              # Bislama
index 23ae380..2bb61e4 100644 (file)
        "prefs-personal": "ملف المستخدم",
        "prefs-rc": "أحدث التغييرات",
        "prefs-watchlist": "قائمة المراقبة",
+       "prefs-editwatchlist": "تعديل قائمة المراقبة",
+       "prefs-editwatchlist-label": "عدل قائمة مراقبتك:",
+       "prefs-editwatchlist-edit": "أعرض وأحذف عناوين من قائمة مراقبتك",
+       "prefs-editwatchlist-raw": "عدل قائمة المراقبة الخام",
+       "prefs-editwatchlist-clear": "امسح قائمة المراقبة",
        "prefs-watchlist-days": "عدد الأيام للعرض في قائمة المراقبة:",
        "prefs-watchlist-days-max": "الحد الأقصى {{PLURAL:$1|أقل من يوم|يوم واحد|يومان|$1 أيام|$1 يوما|$1 يوم}}",
        "prefs-watchlist-edits": "عدد التعديلات التي تعرض في قائمة المراقبة الموسعة:",
        "uploaderror": "خطأ في الرفع",
        "upload-recreate-warning": "'''تحذير: سبق حذف أو نقل ملف بهذا الاسم.'''\n\nسجلا الحذف والنقل لهذه الصفحة معروضان هنا للتيسير:",
        "uploadtext": "استخدم الاستمارة بالأسفل لرفع الملفات.\nلرؤية أو البحث في الملفات المرفوعة سابقا، راجع [[Special:FileList|قائمة الملفات المرفوعة]]، عمليات الرفع (وإعادة الرفع) مسجلة في [[Special:Log/upload|سجل الرفع]] وعمليات الحذف في [[Special:Log/delete|سجل الحذف]].\n\nلإدراج صورة في صفحة، استخدم الوصلات في الصيغ التالية:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' لاستخدام النسخة الكاملة لملف\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|نص بديل]]</nowiki></code>''' لاستخدام صورة عرضها 200 بكسل في صندوق في الجانب الأيسر مع 'نص بديل' كوصف\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' للوصل للملف مباشرة بدون عرض الملف.",
-       "upload-permitted": "أنواع الملفات المسموحة: $1.",
-       "upload-preferred": "أنواع الملفات المفضلة: $1.",
-       "upload-prohibited": "أنواع الملفات الممنوعة: $1.",
+       "upload-permitted": "أنواع الملفات المسموحة {{PLURAL:$2|type|types}}: $1.",
+       "upload-preferred": "أنواع الملفات المفضلة {{PLURAL:$2|type|types}}: $1.",
+       "upload-prohibited": "أنواع الملفات الممنوعة {{PLURAL:$2|type|types}}: $1.",
        "uploadlogpage": "سجل الرفع",
        "uploadlogpagetext": "في الأسفل قائمة بأحدث عمليات رفع الملفات.\nانظر [[Special:NewFiles|معرض الملفات الجديدة]] لعرض بصري أكثر",
        "filename": "اسم الملف",
        "namespace": "النطاق:",
        "invert": "اعكس الاختيار",
        "tooltip-invert": "علم على هذا الصندوق لإخفاء التغييرات للصفحات في النطاق المختار (والنطاق المصاحب لو معلم عليها)",
+       "tooltip-whatlinkshere-invert": "قم بتعليم هذا الخيار لإخفاء الروابط من الصفحات التي تم تعليم نطاقاتها.",
        "namespace_association": "النطاق المقترن",
        "tooltip-namespace_association": "علم على هذا الصندوق لتضمين نطاق النقاش أو الموضوع المصاحب للنطاق المختار",
        "blanknamespace": "(رئيسي)",
        "javascripttest": "اختبار جافاسكربت",
        "javascripttest-pagetext-noframework": "هذه الصفحة محجوزة لإجراء أختبارات الجافا سكريبت.",
        "javascripttest-pagetext-unknownframework": "إطار اختبار غير معروف \"$1\".",
+       "javascripttest-pagetext-unknownaction": "فعل غير معروف \"$1\".",
        "javascripttest-pagetext-frameworks": "الرجاء اختيار أحد أطر الاختبارات التالية: $1",
        "javascripttest-pagetext-skins": "قم باختيار الواجهة لإجراء الإحتبارات بها:",
        "javascripttest-qunit-intro": "راجع [$1 وثيقة الاختبار] على mediawiki.org.",
index 73d5d6f..d2802fa 100644 (file)
@@ -5,11 +5,11 @@
                ]
        },
        "tog-underline": "कड़ि अधोरेखन:",
-       "tog-hideminor": "à¤\85बहिन à¤\95य बदलावमें छोट बदलाव लुकुआवा जाय",
-       "tog-hidepatrolled": "à¤\85बहिन à¤\95य बदलावमें परीक्षित बदलाव लुकुआवा जाय",
+       "tog-hideminor": "नà¤\81वा बदलावमें छोट बदलाव लुकुआवा जाय",
+       "tog-hidepatrolled": "नà¤\81वा बदलावमें परीक्षित बदलाव लुकुआवा जाय",
        "tog-newpageshidepatrolled": "नवा पन्नन कय सूची में परीक्षित पन्ना लुकुआवा जाय",
        "tog-extendwatchlist": "खाली हालिए कय नाहीं, बल्कि कुल बदलाव कय देखावे कय लिए ध्यानसूची कय विस्तारित करा जाय",
-       "tog-usenewrc": "à¤\85भिन à¤\95य à¤¬à¤¦à¤²à¤¾à¤µ à¤®à¥\87 à¤\85à¤\89र à¤§à¥\8dयानसà¥\82à¤\9aà¥\80 à¤®à¥\87à¤\82 à¤¬à¤¦à¤²à¤¾à¤µ à¤\95य à¤ªà¤¨à¥\8dना à¤\95य अनुसार समूह में बाँटा जाय",
+       "tog-usenewrc": "नà¤\81वा à¤¬à¤¦à¤²à¤¾à¤µ à¤®à¥\87à¤\82 à¤\85à¤\89र à¤§à¥\8dयानसà¥\82à¤\9aà¥\80 à¤¬à¤¦à¤²à¤¾à¤µ à¤\95य à¤ªà¤¨à¥\8dना अनुसार समूह में बाँटा जाय",
        "tog-numberheadings": "शीर्षक स्व-क्रमांकित करा जाय",
        "tog-showtoolbar": "सम्पादन औज़ारपट्टी देखावो",
        "tog-editondblclick": "दुई क्लिक से पन्ना संपादित करा जाय",
        "tog-shownumberswatching": "ध्यान रख्खय वाले सदस्यन् कय संख्या देखावो",
        "tog-oldsig": "अभिन कय हस्ताक्षर:",
        "tog-fancysig": "हस्ताक्षर कय विकिपाठ जैसन मानों (बिना स्वचालित कड़ी कय)",
-       "tog-uselivepreview": "सà¤\9cिव à¤¦à¥\87à¤\96à¥\8b",
-       "tog-forceeditsummary": "यदि à¤¸à¤®à¥\8dपादन à¤¸à¤¾à¤°à¤¾à¤\82श à¤¨à¤¾à¤\88 à¤¦à¤¿à¤¹à¤¾ à¤¹à¥\88 à¤¤à¥\8b à¤¹à¤®à¥\8dमà¥\88 à¤¬à¤¤à¤¾à¤µà¥\8b",
+       "tog-uselivepreview": "सà¤\9cिव à¤\9dलà¤\95 à¤¦à¥\87à¤\96ा à¤\9cाय",
+       "tog-forceeditsummary": "यदि à¤¸à¤®à¥\8dपादन à¤¸à¤¾à¤°à¤¾à¤\82श à¤¨à¤¾à¤\88 à¤¦à¤¿à¤¹à¤¾ à¤¹à¥\88 à¤¤à¥\8b à¤¹à¤®à¥\8dमà¥\88 à¤¬à¤¤à¤¾à¤µà¤¾ à¤\9cाय",
        "tog-watchlisthideown": "हमरे ध्यानसूची से हमार करल बदलाव लुकुवाओ",
        "tog-watchlisthidebots": "हमरे ध्यानसूची से बॉट कय करल परिवर्तन लुकुवाओ",
        "tog-watchlisthideminor": "हमरे ध्यानसूची से छोट बदलाव लुकुवाओ",
-       "tog-watchlisthideliu": "हमरà¥\87 à¤§à¥\8dयानसà¥\82à¤\9aà¥\80 à¤®à¥\87à¤\82 à¤²à¤¼à¤¾à¤\97 à¤\87न à¤\95रल à¤¸à¤¦à¤¸à¥\8dयनà¥\8d à¤\95य à¤¸à¤®à¥\8dपादन à¤¨à¤¾ à¤¦à¥\87à¤\96ावà¥\8b",
+       "tog-watchlisthideliu": "हमरà¥\87 à¤§à¥\8dयानसà¥\82à¤\9aà¥\80 à¤®à¥\87à¤\82 à¤²à¤¼à¤¾à¤\97 à¤\87न à¤\95रल à¤¸à¤¦à¤¸à¥\8dयनà¥\8d à¤\95य à¤¸à¤®à¥\8dपादन à¤¨à¤¾ à¤¦à¥\87à¤\96ावा à¤\9cाय",
        "tog-watchlisthideanons": "आइ॰पी सदस्यन् कय करल सम्पादन हमरे ध्यानसूची में ना देखाओ",
        "tog-watchlisthidepatrolled": "परीक्षित सम्पादन हमरे ध्यानसूची में लुकुवाओ",
        "tog-ccmeonemails": "हमरे द्वारा अउर सदस्यन् कय पठावल् ई-मेल कय प्रति हमहु कय पठओ",
        "tog-diffonly": "अवतरणन् में अन्तर देखावत समय पुरान अवतरण ना देखाओ",
        "tog-showhiddencats": "लुकुवावल श्रेणि देखाओ",
        "tog-norollbackdiff": "सम्पादन वापिस लेवेक बाद अन्तर ना देखाओ",
-       "tog-useeditwarning": "जब हम कवनो सम्पादन पन्ना कय बिना सहेजे बदलाव कय साथ छोड दि तव हम्मै बतावो।",
+       "tog-useeditwarning": "जब हम कवनो सम्पादन पन्ना कय बिना सहेजे बदलाव कय साथ छोड दि तव हम्मै बतावो।",
        "tog-prefershttps": "लॉगिन करेक बाद हमेशा सुरक्षित कनेक्शन कय प्रयोग करो",
        "underline-always": "हमेशा",
        "underline-never": "कब्बो नाई",
        "about": "कय बारे में",
        "article": "लेख",
        "newwindow": "(नवा विंडो में खुलत अहै)",
-       "cancel": "रदà¥\8dद à¤\95रà¥\87",
+       "cancel": "रदà¥\8dद à¤\95रा à¤\9cाय",
        "moredotdotdot": "अउर...",
        "morenotlisted": "ई पूरा सूची नाई होय।",
        "mypage": "पन्ना",
        "updatedmarker": "हमरे अन्तिम दाँइ आवे कय बाद कय अपडेट",
        "printableversion": "छापए लायक संस्करण",
        "permalink": "स्थायी कड़ी",
-       "print": "पà¥\8dरिà¤\82à¤\9f à¤\95रà¥\8b",
-       "view": "दà¥\87à¤\96à¥\8b",
-       "view-foreign": "$1 à¤ªà¥\87 à¤¦à¥\87à¤\96à¥\8b",
+       "print": "पà¥\8dरिà¤\82à¤\9f à¤\95रा à¤\9cाय",
+       "view": "दà¥\87à¤\96ा à¤\9cाय",
+       "view-foreign": "$1 à¤ªà¥\87 à¤¦à¥\87à¤\96ा à¤\9cाय",
        "edit": "सम्पादन",
        "edit-local": "स्थानीय विवरण सम्पादन",
        "create": "बनावो",
        "talk": "चर्चा",
        "views": "दर्शाव",
        "toolbox": "साधन पेटी",
-       "userpage": "सदसà¥\8dय à¤ªà¤¨à¥\8dना à¤¦à¥\87à¤\96à¥\8b",
+       "userpage": "सदसà¥\8dय à¤ªà¤¨à¥\8dना à¤¦à¥\87à¤\96ा à¤\9cाय",
        "projectpage": "परियोजना पन्ना देखा जाय",
        "imagepage": "फ़ाइल पन्ना देखा जाय",
        "mediawikipage": "सनेशा पन्ना देखा जाय",
        "otherlanguages": "अउर भाषा सब",
        "redirectedfrom": "($1 से पुनर्निर्देशित)",
        "redirectpagesub": "पुनर्निर्देश पन्ना",
-       "redirectto": "पà¥\81नरà¥\8dनिरà¥\8dदà¥\87श à¤\95रà¥\8b:",
+       "redirectto": "पà¥\81नरà¥\8dनिरà¥\8dदà¥\87श à¤\95रा à¤\9cाय:",
        "lastmodifiedat": "इ पन्ना कय पिछला बदलाव $1 कय $2 बजे भवा रहा।",
        "viewcount": "ई पन्ना {{PLURAL:$1|एक|$1}} दाइँ देख़ गा है।",
        "protectedpage": "सुरक्षित पन्ना",
        "toc": "विषय सूची",
        "showtoc": "देखाओ",
        "hidetoc": "लुकुवाओ",
-       "collapsible-collapse": "à¤\9bà¥\8bà¤\9f à¤\95रà¥\8b",
-       "collapsible-expand": "बडा à¤\95रà¥\8b",
+       "collapsible-collapse": "à¤\9bà¥\8bà¤\9f à¤\95रा à¤\9cाय",
+       "collapsible-expand": "बडा à¤\95रा à¤\9cाय",
        "confirmable-confirm": "का {{GENDER:$1|आप}} निश्चित हव?",
        "confirmable-yes": "हाँ",
        "confirmable-no": "नाहीँ",
        "viewsourcetext": "आप इ पन्ना कय स्रोत देखी सका जात है औ ओकर नकल उतार सका जात है:",
        "viewyourtext": "आप ई पन्ना में ''आपन सम्पादन'' कय स्रोत देखी सका जात है औ ओकर नकल उतार सका जात है:",
        "protectedinterface": "इ पन्ना  विकी कय सॉफ़्टवेयर कय इंटरफ़ेस पाठ देत है,अव एकर गलत प्रयोग से बचावेक लिये सुरक्षित करा है।\nकुल विकिन् कय लिए अनुवाद जोड़य या बदलय कय लिए कृपया मीडियाविकि कय क्षेत्रीयकरण प्रकल्प [//translatewiki.net/ translatewiki.net] कय प्रयोग करा जाय।",
+       "editinginterface": "<strong>चेतावनी:</strong> आप एकठु अइसन पन्ना कय बदलय जावा जात हैं जवन सॉफ़्टवेयर कय इंटरफ़ेस पाठ देत है।\nइ पन्ना कय बदलय से अउर सदस्यन् कय देखावेवाला इंटरफ़ेस कय शकल सूरत में बदलाव आई जाइ।",
+       "translateinterface": "कुल विकिन् कय ट्रान्सलेशन करय अव बदलय खर्तिन [//translatewiki.net/ ट्रान्शलेटविकि.नेट] कय प्रयोग करा जाय ।",
+       "cascadeprotected": "ई पन्ना सुरक्षित है, काहे से इ निचे दिहा {{PLURAL:$1|पन्ना|पन्नन्}} कय सुरक्षा-सीढ़ी में है:\n$2",
        "namespaceprotected": "आप कय '''$1''' नामस्थान में रहल पन्नन कय बदलै कय अनुमति नाइ है।",
        "customcssprotected": "आप कय इ CSS पन्ना कय संपादन करेक अनुमति नाई है, काहे से एहमा अउर सदस्य कय व्यक्तिगत सेटिंग्स शामिल है।",
        "customjsprotected": "आप कय इ जावास्क्रिप्ट पन्ना कय संपादन करेक अनुमति नाई है, काहे से एहमा अउर सदस्य कय व्यक्तिगत सेटिंग्स शामिल है।",
        "nav-login-createaccount": "लाग इन / खाता खोला जाय",
        "userlogin": "लाग इन / खाता खोला जाय",
        "userloginnocreate": "लॉग इन",
-       "logout": "बहरà¥\87 à¤¨à¤¿à¤\95रà¥\8b",
-       "userlogout": "बहरà¥\87 à¤¨à¤¿à¤\95रà¥\8b",
+       "logout": "बहरà¥\87 à¤¨à¤¿à¤\95रा à¤\9cाय",
+       "userlogout": "बहरà¥\87 à¤¨à¤¿à¤\95रा à¤\9cाय",
        "notloggedin": "लॉग इन नाइ करा गा है",
        "userlogin-noaccount": "खाता नाइ है?",
        "userlogin-joinproject": "{{SITENAME}} से जुडव",
        "userlogin-resetlink": "आपन प्रवेश जानकारी भूलाई गवा गय?",
        "userlogin-resetpassword-link": "आपन गुप्त कुंजी भूलाई गवा गय?",
        "userlogin-helplink2": "लॉग इन करे में सहायता",
+       "userlogin-loggedin": "आप {{GENDER:$1|$1}} कय रूप में पहीलवे से लॉग्ड इन होवा जात है।\nकवनो अउर सदस्य कय रूप में लॉग इन करय खरतिन निचे दिहा फ़ॉर्म कय प्रयोग करा जाय।",
        "userlogin-createanother": "एकठु अउर खाता खोला जाय",
        "createacct-emailrequired": "ई-मेल ठाँव",
        "createacct-emailoptional": "ई-मेल ठाँव (वैकल्पिक)",
        "nocookieslogin": "{{SITENAME}} पे लॉग इन करेक लिये कुकीज़ कय प्रयोग होत है।\nआप कुकीज़ बन्द करा गा है।\nकृपया अपने ब्राउज़र में कुकीज़ सक्षम करा जाय, औ फिर से कोशिस करा जाय।",
        "nocookiesfornew": "स्रोत कय पुष्टि ना होइ पावे कय कारण इ खाता  नाई बनाई गा है। \nसुनिश्चित करा जाय कि आप कय कुकीज़ बन्द है कि नाईं, पन्ना कय फिरसे लोड करा जाय अव फिरसे प्रयास करा जाय।",
        "noname": "आप सही सदस्यनाम नाइ दिहा गा है।",
-       "loginsuccesstitle": "लॉग इन हो गवा",
+       "loginsuccesstitle": "लॉग इन हो गवा",
        "loginsuccess": "'''आप {{SITENAME}} में \"$1\" सदस्यनाम से लॉग इन होई {{GENDER:$1|चुके|चुकी|चुके}} हव।'''",
        "nosuchuser": "\"$1\" नावँ कय कवनो सदस्य नाइ है।\nसदस्यनावँ में लघु औ दीर्घ अक्षरन् से फ़रक परत है।\nआपन अक्षर जाँचा जाय, या [[Special:UserLogin/signup|नवाँ खाता खोला जाय]]।",
        "nosuchusershort": "\"$1\" नावँ कय कवनो सदस्य नाई है।\nकृपया आपन शब्द फिरसे जाँचा जाय।",
        "password-login-forbidden": "इ सदस्यनाँव अउर गुप्त कुंजी कय उपयोग नाई कै सका जात अहै।",
        "mailmypassword": "गुप्त कुंजी पुनःस्थापित करा जाय",
        "passwordremindertitle": "{{SITENAME}} कय लिए नवाँ अस्थाई गुप्त कुंजी",
+       "passwordremindertext": "केहु दुसर (शायद आपय, $1 आइ॰पी ठहर से) {{SITENAME}} ($4) पे इस्तेमाल कय खर्तिन नँवा गुप्त कुंजी मङावा गा है। सदस्य \"$2\" कय खर्तिन एकठु अस्थायी गुप्त कुंजी बनाइ दिहा गा है, अव इ अभीन \"$3\" होय। यदि इ आपय कय मंशा रहा, तव अब आप कय सत्रारंभ करय कय एकठु नँवा गुप्त कुंजी चुनयक् परि।\nआप कय अस्थायी गुप्त कुंजी कय समय {{PLURAL:$5 दिन}} में खतम होई जाइ।\nयदि इ चिरौरी केहु दुसर करे है, या आप आपन पुरान गुप्त कुंजी अब नाइ बदलयक् चाहा जात है काहे से आप कय आपन पुरान गुप्त कुंजी याद आई गा है, तव आप इ संदेश कय अनदेखा कई सका जात है, अव आपन पुरान गुप्त कुंजी कय पहिलेक जैसन इस्तेमाल कई सका जात है।",
        "noemail": "\"$1\" सदस्य कय लिये कवनो भी ई-मेल पता दर्ज नाइ कई गा है।",
        "noemailcreate": "आप कय असली ई-मेल ठाँव देक परि।",
        "passwordsent": "\"$1\" कय ई-मेल ठाँव पे एक नवाँ गुप्त कुंजी भेजि गा है।\nई-मेल पावेक बाद कृपया दुबारा लॉग इन करा जाई।",
        "blocked-mailpassword": "आप कय आइ॰पी ठाँव कय सम्पादन करे से अवरुद्ध कई गा है, अउर गलत इस्तेमाल रोकेक लिये गुप्त कुंजी फिरसे पावे कय सुविधा इ आइ॰पी पे बंद कई गा है।",
        "eauthentsent": "दर्ज करल ई-मेल ठहर पे एकठु फुरवासाखी ई-मेल भेज दिहा गा है।\nआप का उ ई-मेल में दिहा निर्देशन् कय अनुसार ई-मेल ठहर कय सत्यापन करेक परि,ओकरे बादय ही हिँया से कवनो दूसर ई-मेल भेज जाई।",
+       "throttled-mailpassword": "पिछला {{PLURAL:$1|एक घंटा|$1 घंटन्}} मे एकठु गुप्त कुंजी स्मरण-पत्र भेजी गा है।\nदुरुपयोग से बचाव कय लिए हर {{PLURAL:$1|एक घंटा|$1 घंटन्}} में एक्कय गुप्त कुंजी स्मरण-पत्र भेजी जात है।",
        "mailerror": "ई-मेल भेजय में त्रुटि: $1",
        "acct_creation_throttle_hit": "आप कय आइ॰पी ठहर से आवे वाले मनई लोग पिछला चौबीस घंटन् में इ विकि पे {{PLURAL:$1|एक खाता|$1 खाता}} बनाई चुका हैं, इ समयावधि में ई अधिकतम सीमा होय।\n यह समय इ आइ॰पी  कय प्रयोग करय वाले आगंतुक अउर खाता नाइ खोल सकत हैं।",
        "emailauthenticated": "आप कय ई-मेल ठहर $2 कय $3 बजे सत्यापित कै गय।",
+       "emailnotauthenticated": "आप कय ई-मेल ठहर कय यकिन नाइ भा है।\nनीचे दीहा कवनो भी सुविधा कय लिये आप कय ई-मेल नाई भेजी जाई।",
+       "noemailprefs": "इ सुविधन् कय प्रयोग करेक खर्तिन आपन पसंद में ई-मेल ठहर दिहा जाय।",
        "emailconfirmlink": "आपन ई-मेल ठहर निश्चित करा जाय",
        "invalidemailaddress": "ई-मेल ठहर नाई मानी जाई काहे से ई कवनो अवैध स्वरूप में है।\nकृपया एक सही तरीका से स्वरूपित ई-मेल ठहर दिहा जाय या उ कोष्ठक कय खालीय छोड दिहा जाय।",
        "cannotchangeemail": "इस विकी पे सदस्य खाता कय ई-मेल ठहर नाइ बदल सका जात अहै।",
        "accountcreated": "खाता बनी गवा है",
        "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|बातचीत]]) कय लिये खाता बनाइ दिहा है।",
        "createaccount-title": "{{SITENAME}} के लिये खाता बनावा जाय",
+       "createaccount-text": "आप कय ई-मेल ठहर कय खर्तीन केहु दुसर {{SITENAME}} ($4) पे \"$2\" सदस्य नाँव से \"$3\" गुप्तकुंजी (पासवर्ड) सहित खाता खोले हैं।\nआप कय लॉग इन कइकै आपन गुप्त कुंजी (पासवर्ड) तुरंतय बदल लेक चाहि।\n\nयदि इ खाता गलती से खोला गा है, तव आप इ मैसेज कय अनदेखा कै सका जात है।",
        "login-throttled": "आप अबहिनय में कयु दाँइ लॉग इन करेक प्रयास किहा गा है।\nफिरसे प्रयास करय से पहीले तनी $1 रुका जाय।",
        "login-abort-generic": "आप कय लाग-इन असफल रहा - निष्फलित",
+       "login-migrated-generic": "आप कै खाता घुस्काई गय,अब आप कय सदस्य नाँव इ विकि पे नाई अहै ।",
        "loginlanguagelabel": "भाषा: $1",
+       "suspicious-userlogout": "आप कय लॉग आउट करेक चिरौरी अस्वीकृत कई दिहा गा है काहे से अइसन लागत हय है कि ई कवनो खराब ब्राउज़र या कैश करय वाला प्रॉक्सी से भेजा ग रहा।",
        "createacct-another-realname-tip": "असली नाँव देब आवश्यक नाई है।\nयदि आप देवा जाई तव एकर प्रयोग सदस्यन् कय योगदान कय लिये श्रेय (attribution) देक लिये कई जाई।",
        "pt-login": "लॉग इन",
        "pt-login-button": "लॉग इन",
        "passwordreset-username": "सदस्यनाँव:",
        "passwordreset-domain": "डोमेन:",
        "passwordreset-capture": "परिणामस्वरूप बनावल ई-मेल देखा जाय?",
+       "passwordreset-capture-help": "अगर आप इ चेकबॉक्स कय टिक करा जाइ तव ई-मेल (अस्थायी गुप्तकुंजी कय साथे) आप कय देखाई अव सदस्य कय भी भेजी जाइ।",
        "passwordreset-email": "ई-मेल ठाँव:",
        "passwordreset-emailtitle": "{{SITENAME}} पे खाता कय विवरण",
+       "passwordreset-emailtext-ip": "केहु (शायद आप कय, $1 आइ॰पी ठहर से) {{SITENAME}} ($4) पे अपने {{PLURAL:$3|गुप्त कुंजी}} कय रीसेट करेक अनुरोध करे है। इ ई-मेल ठहर से निचे  कय{{PLURAL:$3|खाता जोड़ान् है}}:\n\n$2\n\n{{PLURAL:$3|इ}} अस्थायी गुप्त कुंजी {{PLURAL:$5|दिन}} कय बाद काम नाइ करि। आप लॉग इन कई कय एकठु नँवा गुप्त कुंजी अभीनै चुन लुहा जाए। यदि इ अनुरोध केहु अउर करे है, या फिर आप कय आपन गुप्त कुंजी याद आइ गा है, औ आप {{PLURAL:$3|आपन}} गुप्त कुंजी नाइ बदलेक चाहा जात है तव आप इ संदेश कय अनदेखा कई कय आपन पुरान गुप्तकुंजी कय प्रयोग कै सका जात है।",
+       "passwordreset-emailtext-user": "{{SITENAME}} ($4) पे सदस्य $1 आपकय {{PLURAL:$3|खाता}} कय गुप्तकुंजी कय रीसेट करेक अनुरोध करे हैं। इ ई-मेल ठहर से इ {{PLURAL:$3|खाता जोडान है}}:\n\n$2\n\n{{PLURAL:$3|ई}} अस्थायी गुप्तकुंजी {{PLURAL:$5|दिन}} कय बाद काम नाइ करि।\nआप लॉग इन कइकै एकठु नँवा गुप्त कुंजी अभीन लै लेक चाहि। यदि इ अनुरोध केहु दुसर करे है, या फिर आप कय आपन गुप्त कुंजी याद आई गा है, अव आप {{PLURAL:$3|आपन}} गुप्तकुंजी नाई बदलेक चाहा जात है, आप इ संदेश कय अनदेखा कई कय आपन पुरान गुप्तकुंजी कय प्रयोग कइ सका जात है।",
        "passwordreset-emailelement": "सदस्यनाँव: $1\nअस्थायी गुप्तकुंजी: $2",
        "passwordreset-emailsent": "एक गुप्तकुंजी रीसेट ई-मेल भेज दिहा गा है।",
+       "passwordreset-emailsent-capture": "नीचे जवन देखावा है ओकर गुप्तकुंजी रीसेट ई-मेल भेज दिहा गा है।",
+       "passwordreset-emailerror-capture": "नीचे दिहा गुप्त कुंजी रीसेट ई-मेल पैदा भा रहा, लेकिन ओका {{GENDER:$2|सदस्य}} कय भेजब असफल रहा।\nत्रुटि: $1",
        "changeemail": "ईमेल ठाँव बदला जाय",
        "changeemail-text": "अपना ई-मेल पता परिवर्तित करने के लिए इस फ़ॉर्म को पूरा करें। इस बदलाव की पुष्टि करने के लिये आपको अपना कूटशब्द पुनः लिखना पड़ेगा।",
        "changeemail-no-info": "इ पन्ना कय सीधय प्रयोग करेक लिए आप कय लॉग इन करेक परि।",
        "changeemail-submit": "ई-मेल बदला जाय",
        "changeemail-throttled": "आप अबहिनय में कयु दाँइ लॉग इन करेक प्रयास किहा गा है।\nफिरसे प्रयास करय से पहीले तनी $1 रुका जाय।",
        "resettokens": "टोकन रीसेट करा जाय",
+       "resettokens-text": "जो टोकन आपके खाते से सम्बद्ध कुछ विशिष्ट व्यक्तिगत जानकारी प्रदान करते हैं, आप उन्हें यहाँ रीसेट कर सकते हैं।\n\nयदि आपने उन्हें गलती से किसी को दिखा दिया है या फिर आपका खाता हैक हो गया है तो आपको इन्हें रीसेट कर देना चाहिए।",
        "resettokens-no-tokens": "रीसेट करेक लिए कवनो टोकन नाई है।",
        "resettokens-legend": "टोकन रीसेट करा जाय",
        "resettokens-tokens": "टोकन:",
        "anoneditwarning": "<strong>चेतावनी:</strong>आप लाग इन नाई करा गा है ।जब आप सम्पादन करा जाई तव आप कय IP address सब कय बिलगाइ। जब आप <strong>[$1 log in]</strong> या <strong>[$2 create an account]</strong> करा जाइ तब आप कय सम्पादन आप कय  सदस्यनाँव से जुडी जाई अव आप कय अउर सुविधओ मिली।",
        "anonpreviewwarning": "''आप लॉग्ड नाई होआ जात है। पन्ना सहेजे पे आप कय आइ॰पी ठाँव इ पन्ना कय इतिहास में दर्ज कइ जाई।''",
        "missingsummary": "'''ध्यान दिहा जाय:''' आप  संपादन सारांश नाइ दिहा गा है।\nअगर आप दुबारा \"{{int:savearticle}}\" पे क्लिक करा जाई तव आप कय संपादन बिना सारांश कय सहेज जाई।",
+       "selfredirect": "<strong>चेतावनी:</strong> आप इ पन्नवा कय इहि से निर्देश करय जावा जात है.\nआप या तव गलत लक्ष्य पे पुनर्निर्देश करा गा है, या तव गलत पन्ना संपादन करा जात है ।\nअगर आप \"{{int:savearticle}}\" पे फिरसे क्लिक करा जाइ तो इ पुनर्निर्देश बनि जाइ ।",
        "missingcommenttext": "कृपया नीचे टिप्पणी दिहा जाय।",
        "missingcommentheader": "'''ध्यान दिहा जाय:''' आप इ टिप्पणी कय कवनो शिर्षक नाइ दिहा गा है।\nअगर आप दुबारा \"{{int:savearticle}}\" पे क्लिक करा जाई तव आप कय बदलाव बिना शिर्षक कय सहेज जाई।",
        "summary-preview": "सारांश कय झलक:",
        "subject-preview": "विषय/शीर्षक कय झलक:",
        "blockedtitle": "सदस्य अवरुद्ध है",
+       "blockedtext": "'''आप कय सदस्यनाँव या आइ॰पी ठहर पे रोक लाग है ।'''\n\nरोक $1 लगायँ रहें।\nरोक कय कारण ''$2'' होय \n\n* रोक कय सुरुवात भय: $8\n* रोक खतम होइ: $6\n* रोक इकाई: $7\n\nइ रोक कय बारे में चर्चा करेक लिए आप $1 या कवनो दुसर [[{{MediaWiki:Grouppage-sysop}}|प्रबन्धक]] से संपर्क कै सका जात है।\nअगर आप [[Special:Preferences|आपन पसंद]] में वैध ई-मेल पता देवा गा है तब्बै आप 'ई-मेल भेजय' वाला सुविधा कय इस्तेमाल कई सका जात है औ आप कय एकर इस्तेमाल करै कय कवनो रोक नाइ लगावा है।\nआप कय अभीन कय आइ॰पी ठहर $3 होय अव रोक क्रमांक #$5 होय।\nआपन कवनो भी प्रश्न में कृपया इ कुल जानकारी शामिल करा जाइ।",
+       "autoblockedtext": "एक्ठु अउर सदस्य आपय कय आइ॰पी कय प्रयोग करत रहें औ ओन्है $1 रोक लगाए रहें। इही कय नाते आपो कय आइ॰पी ठहर स्वचालित रूप से रुक गा है।\nरोक करय कय कारण होय:\n\n:''$2''\n\n* रोक कय सुरुवात : $8\n* रोक खतम होइ: $6\n* रोकि जाय वाले सदस्य: $7\n\nरोक कय चर्चा करय कय लिए आप $1 या कवनो दुसर [[{{MediaWiki:Grouppage-sysop}}|प्रबंधक]] से संपर्क कै सका जात है।\n\nकृपया ध्यान देवा जाय कि यदि आप कय \"इ सदस्य कय ई-मेल भेजा जाय\" वाला सुविधा कय प्रयोग करय चाहा जात है तव आपकय [[Special:Preferences|पसंद]] में वैध ई-मेल ठहर होएक चाहि औ एकर प्रयोग आपकय खर्तिन खुला होएक चाही।\n\nआपकय मौजूदा आइ॰पी ठहर $3 होय औ अवरोध क्रमांक #$5 होय।\nआप कय कवनो प्रश्न में कृपया ई कुल जानकारी शामिल होएक चाही।",
        "blockednoreason": "कवनो कारण नाइ दिहा है",
        "whitelistedittext": "पन्ना संपादन करेक लिये आप कय $1 करेक परि।",
        "confirmedittext": "संपादन करय से पहिले आपन ई-मेल प्रमाणित करब आवश्यक है।\nकृपया आपन [[Special:Preferences|सदस्य वरीयता]] में जाईकय आपन ई-मेल ठाँव दिहा जाय अव ओका प्रमाणित करा जाय।",
        "accmailtext": "[[User talk:$1|$1]] कय लिए एक यंत्र जनित गुप्त कुंजी $2 कय भेज दिहा गा है। लॉगिन करेक बाद एका '''[[Special:ChangePassword|गुप्त कुंजी बदला जाय]]'' वाला पन्नन् पे बदल सका जात है।",
        "newarticle": "(नँवा)",
        "newarticletext": "आप अईसन पन्ना पे आवा गा है जवन अभीन तक नाई बनावा है।\nपन्ना बनावेक लिये नीचे कय बौक्स में पाठ लिखा जाय। ढेर जानकारी कय लिये [$1 सहायता पन्ना] देखा जाय।\nअगर आप हिँया गलती से आवा गा हैं तव आपन ब्राउज़र कय बैक ('''back''') बटन पे क्लिक करा जाय।",
+       "anontalkpagetext": "----''ई बातचीत पन्ना उ बेनामी सदस्यन् कय खर्तीन होय जे या तव खाता नाई खोलें है या खाता कय प्रयोग नाइ करत हैं।\nइहिकै नाते वय लोगन कय पहिचान कय खर्तीन हम्मन कय वय लोगन कय आइ॰पी ठहर कय प्रयोग करेक परत है।\nआइ॰पी ठहर कयु सदस्यन् कय एक्कय होइ सकत है।\nयदि आप कवनो बेनामी सदस्य होआ जाय अव आप कय लागत है कि आप कय बारे में अप्रासंगिक टीका टिप्पणी कई गा है तव कृपया [[Special:UserLogin/signup|सदस्यता लिहा जाय]] या [[Special:UserLogin|सत्रारंभ करा जाय]] ताकि अउर बेनामी सदस्यन् में से आप कय अलग से पहिचान सका जाय।''",
        "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}}|इ शीर्षक कय खोज]] कई सका जात है,\n<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-view": "सदस्य \"$1\" पंजीकृत नाइ है।",
        "blocked-notice-logextract": "ई सदस्य अभीन अवरोधित है।\nसदंर्भ कय लिए ताज़ातरीन अवरोध लॉग प्रविष्टि नीचा दीहा है:",
+       "clearyourcache": "'''ध्यान दिहा जाय:'''  सहेजय कय बाद बदलाव देखयक खर्तिन आप कय आपन ब्राउज़र कय कैश खाली करेक परी सकत है।\n* '''फ़ायरफ़ॉक्स / सफ़ारी:''' ''Reload'' (रीलोड) दबावत समय ''Shift'' (शिफ़्ट) दबावा जाय, या फिर ''Ctrl-F5'' (कंट्रोल-F5) या ''Ctrl-R'' (कंट्रोल-R) दबावा जाय (मैक पे ''⌘-R'')\n* '''गूगल क्रोम:''' ''Ctrl-Shift-R'' (कंट्रोल-शिफ़्ट-R) दबावा जाय (मैक पे ''⌘-Shift-R'')\n* '''इन्टर्नेट एक्सप्लोरर:''' ''Ctrl'' (कंट्रोल) दबाईकय ''Refresh'' (रिफ़्रेश) करा जाय या ''Ctrl-F5'' (कंट्रोल-F5) दबावा जाय\n* '''ऑपेरा:''' ''Tools → Preferences'' (उपकरण → पसंद) में कैश साफ़ करा जाय",
+       "usercssyoucanpreview": "'''टिप''': सहेजय से पहिले आपन नँवा सी॰एस॰एस जाँचय खर्तिन \"{{int:showpreview}}\" बटन कय प्रयोग करा जाय।",
+       "userjsyoucanpreview": "'''टिप''': सहेजय से पहिले आपन नँवा जावास्क्रिप्ट जाँचय खर्तिन \"{{int:showpreview}}\" बटन कय प्रयोग करा जाय।",
+       "usercsspreview": "'''ध्यान दिहा जाय कि आप आपन सी॰एस॰एस कय झलक देखा जात है।'''\n'''इ अभीन तक नाई सहेजा है!'''",
+       "userjspreview": "'''ध्यान दिहा जाय कि आप आपन जावास्क्रिप्ट  कय झलक देखा जात है।'''\n'''इ अभीन तक नाई सहेजा है!'''",
+       "sitecsspreview": "'''ध्यान दिहा जाय कि आप ई सी॰एस॰एस कय झलक देखा जात है।'''\n'''इ अभीन तक नाई सहेजा है!'''",
+       "sitejspreview": "'''ध्यान दिहा जाय कि आप ई जावास्क्रिप्ट कय झलक देखा जात है।'''\n'''इ अभीन तक नाई सहेजा है!'''",
+       "userinvalidcssjstitle": "'''चेतावनी:''' \"$1\" नाव कय कवनो त्वचा नाइ है।\nबदलल .css औ .js पन्नन कय शीर्षक नीचे स्तर कय लिपि (lowercase) कय प्रयोग करत है। उदाहरण: {{ns:user}}:Foo/vector.css नाई की {{ns:user}}:Foo/Vector.css",
        "updated": "(अपडेट करल)",
        "note": "'''सूचना:'''",
-       "previewnote": "'''याद रख्खा जाय, ई खाली एक झलक होय।'''\nआप कय बदलाव अभीन तक नाई सहेजा है!",
+       "previewnote": "'''याद रख्खा जाय, ई खाली एक झलक होय।'''\nआप कय बदलाव अभीन तक नाई सहेजा है!",
        "continue-editing": "संपादन क्षेत्र मे चला जाय",
+       "previewconflict": "ई झलक ऊपरी पाठ सम्पादन क्षेत्र में करल बदलाव देखावत है, औ यदि आप अभीन सहेजा जाई तव इहै पाठ सहेज़ जाइ।",
+       "session_fail_preview": "'''क्षमा करा जाय! सेशन डाटा कय नष्ट होएक कारण आप कय बदलाव नाई सहेज मिला।'''\nकृपया फिरेसे प्रयास करा जाय।\nअगर एकरे बाद़ोमें अइसनय होइ तव कृपया [[Special:UserLogout|लॉग आउट]] कई कय फिरसे लॉग इन करा जाय।",
+       "session_fail_preview_html": "'''क्षमा करा जाय! सेशन डाटा नष्ट होएक नाते आपकय बदलाव नाई सहेजि गय।'''\n\n''काहे से {{SITENAME}} पे raw HTML सक्षम है, जावास्क्रिप्ट हमलन् से बचाव कय खर्तिन झलक नाइ देखाई गा है।''\n\n'''अगर ई आप कय सहि संपादन प्रयास रह, तव कृपया फिरसे प्रयास करा जाय।'''\nअगर एकरे बाद़ोमें अइसनय होइ तव कृपया [[Special:UserLogout|लॉग आउट]] कैकय फिरसे लॉग इन करा जाय।",
+       "token_suffix_mismatch": "'''आप कय करल बदलाव रद्द कै गा है काह से आपकय क्लायंट आपकय संपादन टोकन में दिहा विरामचिन्हन् में बदलाव करे हैं।'''\nलेख कय पाठ में खराबी ना आवे इहि कय नाते आपकय बदलाव रद्द कै गा है।\nअइसन तब्बय होइ सकत है जब आप कवनव खराब वेब-आधारित अनामक प्रौक्सी प्रयोग करा जात होय।",
+       "edit_form_incomplete": "'''सम्पादन फ़ॉर्म कय कुछ हिस्सा सर्वर तक नाइ पहुँच पाए; जाँच लिहा जाय कि आप कय द्वारा करल बदलाव वइसय है कि नाइ, अउर सहेजय कय प्रयास करा जाय।'''",
        "editing": "$1 सम्पादन",
        "creating": "$1 बनावा जात है",
        "editingsection": "$1 सम्पादन करा जात है (अनुभाग)",
        "editingcomment": "$1 सम्पादन करा जात है (नँवा अनुभाग)",
        "editconflict": "संपादन अंतर्विरोध: $1",
+       "explainconflict": "आप कय द्वारा सम्पादन शुरू करय कय बाद से कवनो दुसर मनई इ पन्ना में बदलाव करे हैं।\nऊपरी पाठ सम्पादन क्षेत्र में अभिन कय पाठ देखाइ गा है।\nनिचला क्षेत्र में आप कय बदलाव देखाइ गा है।\nआप कय आपन बदलाव अबहिन कय पाठ में अपने से एकट्ठा करेक परि।\nआपके \"{{int:savearticle}}\" पर क्लिक करने पर '''केवल''' ऊपरी क्षेत्र में दिखने वाला पाठ संजोया जायेगा।",
        "yourtext": "आप कय पाठ",
        "storedversion": "सहेज़ल अवतरण",
+       "nonunicodebrowser": "'''सावधान: आप कय ब्राउज़र युनिकोड कय स्वीकार नाइ करत है।'''\nआप से बढिया संपादन होएक लिये: ग़ैर-ASCII कैरैक्टर षट्‍पदी कोड (hexadecimal) में देखाइ जाई।",
+       "editingold": "'''चेतावनी: आप इ पन्ना कय पुरान(Out of Date) अवतरण संपादित करा जात है।'''\nअगर आप एका सहेजा जाइ , तव इ अवतरण कय बाद करल कुल बदलाव नष्ट होइ जाइ।",
        "yourdiff": "अंतर",
+       "copyrightwarning": "कृपया ध्यान दिहा जाय कि {{SITENAME}} मे करल कुल योगदान $2 शर्त कय निचे होंइ (ढेर जानकारी कय लिये $1 देखा जाय)।\nयदि आप आपन योगदान कय लगातार बदलत अव फिर से बटत़ नाइ देखय चाहा जात है तव यँह योगदान ना करा जाय।<br />\nआप इहो भी प्रमाणित करा जात है कि इ आप अपने से लिखा गा है या सार्वजनिक क्षेत्र या कवनो समान मुक्त स्रोत से प्रतिलिपित करा गा है।\n'''कॉपीराइट सुरक्षित काम कय बिना अनुमति कय यहँ ना करा जाय!'''",
+       "copyrightwarning2": "{{SITENAME}} पे करल कवनो भी योगदान अउर सदस्य लोग बदलि या हटाइ सकत हैँ ।\nयदि आप आपन योगदान कय लगातार बदलत अव फिर से बटत़ नाइ देखय चाहा जात है तव यँह योगदान ना करा जाय।<br />\nआप इहो भी प्रमाणित करा जात है कि इ आप अपने से लिखा गा है या सार्वजनिक क्षेत्र या कवनो समान मुक्त स्रोत से प्रतिलिपित करा गा है।\n'''कॉपीराइट सुरक्षित काम कय बिना अनुमति कय यहँ ना करा जाय!'''",
+       "longpageerror": "'''त्रुटि: आप कय दिहा पाठ {{PLURAL:|$1 किलोबाइट|$1 किलोबाइट}} लंमा है, जवन {{PLURAL:|$2 किलोबाइट|$2 किलोबाइट}} कय सीमा से बहरे है।\nएका नाइ सहेज सका जात है।'''",
+       "readonlywarning": "'''सावधान: डाटाबेस कय रख-रखाव कय खत्तिर बंद कै दिहा गा है, इहि कय नाते आप कय बदलाव अभीन नाइ सहेजि सका जात है।\nअगर आप चाहा जाय तव इ चिज कय बाद कय खत्तिर कॉपी-पेस्ट कइकय कवनो टेक्स्ट फ़ाइल में रखि सका जात है।'''\n\nबंद करय वाले प्रबंधक बंद करे कय इ कारण दिहे हैं: $1",
        "protectedpagewarning": "'''चेतावनी: इ पन्ना कय सुरक्षित कई  गा है अव एका खालि प्रबंधक सम्पादित कई सकत हँय।'''\nनँवा लॉग प्रविष्टि संदर्भ कय लिये नीचे दीहा है:",
+       "semiprotectedpagewarning": "<strong>नोट:</strong> ई पन्ना बचावा है इही कय नाते खालि रजिष्टर करल सदस्य एका सम्पादन कई सकत हैं ।\nसंदर्भ कय खर्तिन अन्तिम दाइ कय लाग निचे दिहा है:",
+       "cascadeprotectedwarning": "'''सावधान:''' इ पन्ना निचे दिहा सुरक्षा-सीढ़ी {{PLURAL:$1|पन्ना से|पन्नन् से}} जोडाएक नाते सुरक्षित है, अव खाली प्रबंधक एहमा बदलाव कै सकत हैं:",
+       "titleprotectedwarning": "'''चेतावनी: इ पन्ना सुरक्षित है अव एका बनावेक खत्तिर [[Special:ListGroupRights|विशेष अधिकारन्]] कय आवश्यकता है।'''\nसंदर्भ कय खत्तिर नँवा लॉग प्रविष्टि नीचे दीहा है:",
+       "templatesused": "ई पन्ना में इस्तेमाल करल {{PLURAL:$1|साँचा}}:",
+       "templatesusedpreview": "ई झलक में इस्तेमाल करल {{PLURAL:$1|साँचा}}:",
+       "templatesusedsection": "ई अनुभागमें इस्तेमाल करल {{PLURAL:$1|साँचा}}:",
+       "template-protected": "(सुरक्षित)",
+       "template-semiprotected": "(अर्ध-सुरक्षित)",
+       "hiddencategories": "ई पन्ना निचे दिहा $1 लुकुआवल {{PLURAL:$1|श्रेणी|श्रेणिन्}} में श्रेणीबद्ध है:",
+       "nocreatetext": "{{SITENAME}} पे नँवा पन्ना बनावे कय मिनहा कई गा है।\nआप पीछे जाईकय कवनो वर्तमान पन्ना कय संपादित कई सका जात है, या [[Special:UserLogin|नँवा ख़ाता खोला जाय /अन्दर हला जाय]] ।",
+       "nocreate-loggedin": "आप कय नँवा पन्ना बनावे कय अनुमति नाई है ।",
+       "sectioneditnotsupported-title": "अनुभाग सम्पादन समर्थित नाई है",
+       "sectioneditnotsupported-text": "इ पन्ना पे अनुभाग सम्पादन समर्थित नाई है",
        "permissionserrors": "अनुमति त्रुटि",
+       "permissionserrorstext": "निचे दिहा {{PLURAL:$1|कारण|कारणन्}} कय नाते आप कय ऐसन करे कय अनुमति नाइ है:",
+       "permissionserrorstext-withaction": "आप कय $2 कय अनुमति नाई है,निचे दिहा {{PLURAL:$1|कारण|कारणन्}} कय नाते से:",
+       "recreate-moveddeleted-warn": "'''चेतावनी: आप एक्ठु अइसन पन्ना बनावे जावा जात है जवन पहिले मेटावा रहा।'''\n\nआप विचार करा जाय कि का इ पन्ना कय संपादन करब उचित रही।\nसुविधा कय लिये इ पन्ना कय हटावे या घुस्कावे कय लॉग इहै है:",
+       "moveddeleted-notice": "ई पन्ना मेटावा है।\nसंदर्भ कय खरतिन पन्ना कय मेटावे औ घुस्कावे कय लॉग नीचे दिहा है।",
+       "log-fulllog": "पूरा लॉग देखा जाय",
+       "edit-hook-aborted": "फंदा से संपादन बीचवे मे छोड दिहा है।\nउ कवनो कारण नाई बताए है।",
+       "edit-gone-missing": "पन्ना अद्यतित(अपडेट) नाई कई सका जात है।\nलागत है एका मेटाई दिहा है।",
+       "edit-conflict": "संपादन अंतर्विरोध",
+       "edit-no-change": "आप कवनो बदलाव नाई करा गा है,इहीकै नाते आप कय इ संपादन कय अनदेखा कै गा है।",
+       "postedit-confirmation-created": "पन्ना बनी गा है।",
+       "postedit-confirmation-restored": "पन्ना पुरान स्थिति पे लाई गय।",
+       "postedit-confirmation-saved": "आप कय सम्पादन सहेजी गय।",
+       "edit-already-exists": "नवा पन्ना नाई बनाई सका जात है।\nई पन्ना पहीलवे से मौजूद है।",
+       "defaultmessagetext": "सनेशा कय डिफ़ॉल्ट पाठ",
+       "content-failed-to-parse": "$1 कय लिए $2 सामग्री कय पार्स करय में विफल, त्रुटि: $3",
+       "invalid-content-data": "अवैध डाटा सामग्री",
+       "content-not-allowed-here": "[[$2]] पन्ना पे \"$1\" सामग्री मिनाही है।",
+       "editwarning-warning": "इ पन्ना से हटे कय बाद आप कय करल बदलाव गायब होइ जाइ।\nयदि आप लॉग इन करा गा है तव आप इ सूचना कय देखाब आपन पसंद कय \"{{int:prefs-editing}}\" भाग में बंद कई सका जात है।",
+       "editpage-notsupportedcontentformat-title": "सामग्री स्वरूप समर्थित नाई है",
+       "editpage-notsupportedcontentformat-text": "$1 सामग्री स्वरूप $2 सामग्री मॉडल द्वारा समर्थित नाई है।",
        "content-model-wikitext": "विकिटेक्स्ट",
        "content-model-text": "सामान्य पाठ",
        "content-model-javascript": "जावास्क्रिप्ट",
        "content-json-empty-object": "खाली चिज",
        "content-json-empty-array": "खाली एरे",
+       "expensive-parserfunction-warning": "'''चेतावनी:''' इ पन्ना पे बहुत ढेर संख्या में कीमती पार्सर फ़ंक्शनों कय प्रयोग कई गा है।\n\nएकर प्रयोग $2 से कम दाइ होएक चाहि, इ समय प्रयोग $1 दाइ कै गा {{PLURAL:$1|है}}।",
+       "expensive-parserfunction-category": "अईसन पन्ना जवन महङा पार्सर फ़ंक्शनन् कय ढेर प्रयोग करत हैं",
+       "post-expand-template-inclusion-warning": "'''चेतावनी:''' साँचा जोडे कय सीमा पार होई चुका है।\nकवनो-कवनो साँचा नाई जुड़ी।",
+       "post-expand-template-inclusion-category": "अईसन पन्ना जवने मे साँचा जोड़े कय सीमा पार होई गवा है",
+       "post-expand-template-argument-warning": "'''चेतावनी:''' इ पन्ना पे कवनो साँचा में कम-से-कम एकठु अइसन प्राचल है जवन बढ़ावे पे बहुत बड़ा होइ जाइ।\nअइसन प्राचलन् कय छोड़ दिहा गा है।",
+       "post-expand-template-argument-category": "अईसन पन्ना जवनेमें प्राचल छोड़ी दिहा है",
+       "parser-template-loop-warning": "साँचा चक्र मिला: [[$1]]",
+       "parser-template-recursion-depth-warning": "साँचा पुनरावर्ती गहराई सीमा पार ($1)",
+       "language-converter-depth-warning": "भाषा कन्वर्टर गहीराई सीमा से बहरे गय ( $1 )",
+       "node-count-exceeded-category": "पन्ना जवनन् में नोड-संख्या सीमा पार कई गा है",
+       "expansion-depth-exceeded-category": "पन्ना जवनेमें विस्तार गहिराई पार कई गा है",
+       "expansion-depth-exceeded-category-desc": "ई पन्ना विस्तार गहराई पार करत है।",
+       "expansion-depth-exceeded-warning": "पन्ना में विस्तार गहराई पार कई गा है",
+       "parser-unstrip-loop-warning": "Unstrip लूप मिला",
+       "parser-unstrip-recursion-limit": "Unstrip पुनरावर्तन सीमा पार कई गय ($1)",
+       "converter-manual-rule-error": "मैन्यूअल भाषा परिवर्तन नियम में त्रुटि",
+       "undo-success": "ई संपादन पहिले जैसन रहा वईसय कई सका जात है ।\nअईसन करेक लिये कृपया निचे लिखल पाठ कय ध्यान से दखीकय बदलाव सहेजा जाय।",
+       "undo-failure": "एकरे बीचे अउर बदलाव होएक कारण ई संपादन पहिले जैसन करब संभव नाई है।",
+       "undo-norev": "ई बदलाव वापिस नाई भय काहे से या तो एका पहीलवे से पलटाई गा है या फिर पन्ना हटाई दिहा है।",
+       "undo-nochange": "अईसन लागत है की ई सम्पादन कय पहिलवे पहिले जैसन कई दीहा है ।",
        "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|बातचीत]]) कय करल बदलाव $1 कय पहिले जईसन कई गय",
        "undo-summary-username-hidden": "लुकुआवल सदस्यन् कय करल बदलाव $1 कय पहिले जईसन कई गय",
        "cantcreateaccounttitle": "खाता नाई खोली सका जात है",
+       "cantcreateaccount-text": "इ आइ॰पी ठहर ('''$1''') कय खाता बनावे कय [[User:$3|$3]] रोक लगाए हैँ।\n\nएकरे लिये $3 ''$2'' कारण दिहे हैं।",
        "cantcreateaccount-range-text": "'''$1''' कय श्रेणी में आवे वाला आई॰पी ठहर से, जवनेमें आप कय आई॰पी ठहर ('''$4''') शामिल है, नँवा खाता बनावे कय लिए [[User:$3|$3]] अवरोधित कई गा है। \n\n$3 द्वारा दिया गया कारण है: \"$2\"",
        "viewpagelogs": "इस पन्ना कय लॉग देखा जाय",
        "nohistory": "इ पन्ना कय कवनो इतिहास नाई है।",
        "last": "पिछला",
        "page_first": "पहीला",
        "page_last": "आखिरी",
+       "histlegend": "अन्तर चयन: अन्तर देखय खत्तिर पुरान अवतरणन् कय आगे दिहा रेडियो बॉक्स पे क्लिक किन जाय अव एण्टर कीन जाय या तव नीचे दिहा बटन पे क्लिक करा जाय<br />\nलिजण्ड: (चालू) = सद्य अवतरण कय बीचे में अन्तर,\n(आखिरी) = पिछले अवतरण के बीच में अन्तर, छो = छोटा बदलाव।",
        "history-fieldset-title": "इतिहास कय विचरण करा जाय",
        "history-show-deleted": "सूची में खाली लुकुआवल अवतरण देखा जाय",
        "histfirst": "सबसे पुरान",
        "history-feed-empty": "अनुरोधित करल पन्ना  अस्तित्व में नाई है।\nई पन्ना या तो मेटावा है या फिर एकर नाँव बदल दिहा है।\n[[Special:Search|विकि पे खोजा जाय]] कय प्रयोग करा जाय।",
        "rev-deleted-comment": "(सम्पादन सारांश हटाई गय)",
        "rev-deleted-user": "(सदस्यनाँव हटाई गय)",
+       "rev-deleted-event": "(लाग जानकारी हटाइ गय)",
        "rev-deleted-user-contribs": "[सदस्यनाँव या आइ॰पी ठहर लुकुआई गय- सम्पादन योगदान में से लुकुआई गय]",
        "rev-deleted-text-permission": "ई पन्ना अवतरण हटाई गा है।\nएकर ढेर जानकारी [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटावे कय लॉग] में मिली सकत है।",
+       "rev-suppressed-text-permission": "ई पन्ना अवतरण लुकुआइ गा है।\nएकर ढेर जानकारी [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} हटावे कय लॉग] में मिली सकत है।",
        "rev-deleted-text-unhide": "ई पन्ना अवतरण हटाई गा है।\nएकर ढेर जानकारी [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटावे कय लॉग] में मिली सकत है।\nयदि आप चाहा जाय तव ई अवतरण कय [$1 देख सका जात है] ।",
        "rev-suppressed-text-unhide": "ई पन्ना अवतरण लुकुआइ गा है।\nएकर ढेर जानकारी [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} लुकुआवे कय लॉग] में मिली सकत है।\nयदि आप चाहा जाय तव ई अवतरण कय [$1 देख सका जात है] ।",
        "rev-deleted-text-view": "ई पन्ना कय अवतरण हटाई गा है।\nएकर ढेर जानकारी [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटावे कय लॉग] में मिली सकत है।",
        "revdelete-selected-text": "[[:$2]] {{PLURAL:$1|कय}} चयनित अवतरण:",
        "revdelete-selected-file": "[[:$2]] {{PLURAL:$1|कय}} चयनित फ़ाइल अवतरण:",
        "logdelete-selected": "{{PLURAL:$1|चुनल}} लॉग इवेंट:",
+       "revdelete-confirm": "यकिन करावा जाय कि आप इ काम करय चाहा जात है, आप एकर परिणाम समझा जात है, औ आप इ [[{{MediaWiki:Policy-url}}|नीति]] कय अनुसार करा जात है।",
+       "revdelete-suppress-text": "लुकुआवेक प्रयोग <strong>खाली</strong> इ परिस्थितन् में होएक चाहि:\n* संभावित अपमानजनक जानकारी\n* अनुपयुक्त निजी जानकारी\n*: <em>घर कय ठहर या दूरभाष, राष्ट्रीय पहिचान क्रमांक आदि।</em>",
        "revdelete-legend": "दृश्य प्रतिबंध निश्चित करा जाय",
        "revdelete-hide-text": "अवरतण पाठ",
        "revdelete-hide-image": "फ़ाइल कय पाठ लुकुआवा जाय",
+       "revdelete-hide-name": "टार्गेट अव पारामिटर लुकुआवा जाय",
        "revdelete-hide-comment": "संपादन सारांश",
        "revdelete-hide-user": "संपादक कय सदस्यनाँव/आइ॰पी॰ ठहर",
        "revdelete-hide-restricted": "प्रबंधक सहित कुल सदस्यन् से डाटा लुकुआवा जाय",
        "revdelete-unsuppress": "पुनर्स्थापित अवतरणन् पे से प्रतिबन्ध हटावा जाय",
        "revdelete-log": "कारण:",
        "revdelete-submit": "चयनित {{PLURAL:$1|अवतरण}} पे लागू करा जाय",
+       "revdelete-success": "'''अवतरण दृश्यता सफलतापूर्वक अपडेट कई गय।'''",
+       "revdelete-failure": "'''अवतरण दृश्यता अपडेट नाइ भय:'''\n$1",
        "logdelete-success": "'''लॉग दृष्यता बदलि गय।'''",
        "logdelete-failure": "'''लॉग दृश्यता कय जमाव नाई भय:'''\n$1",
        "revdel-restore": "देखावा जाय/लुकुआवा जाय",
        "pagehist": "पन्ना कय इतिहास",
        "deletedhist": "मेटावल इतिहास",
        "revdelete-hide-current": "$2 कय, $1 बजे वाला मद नाई लुकुवाई गय: ई सबसे ताज़ा अवतरण होय।\nई नाइ लुकुआई सका जात है।",
+       "revdelete-show-no-access": "$1, $2 वाला चिज देखावत समय त्रुटि होइ गवा: इ चिज कय \"प्रतिबंधित\" चिन्हित कई गा है।\nआप यँह तक नाइ पहुँच सका जात है।",
+       "revdelete-modify-no-access": "$1, $2 वाला चिज कय बदलत समय त्रुटि होइ गवा: इ चिज कय \"प्रतिबंधित\" चिन्हित कई गा है।\nआप यँह तक नाइ पहुँच सका जात है।",
+       "revdelete-modify-missing": "मद क्रमांक $1 कय बदलत समय त्रुटि आई गवा: इ डाटाबेस में नाइ है!",
+       "revdelete-no-change": "'''चेतावनी:''' $2, $1 वाले चिज में पहिलवे से ही इ आप कय कहल दृश्यता सेटिङ रहा।",
+       "revdelete-concurrent-change": "$2, $1 वाला चिज कय बदलत समय त्रुटि आई गय: लागत है कि आपकय बदलत समय केहु अउर एहमा बदलाव कई दिहे हैं।\nकृपया लॉग देखा जाय।",
+       "revdelete-only-restricted": "$2, $1 कय तिथि कय आइटम कय लुकुआवे में त्रुटि: आप अउर दृश्यता विकल्प कय चुना जाय बिना प्रबंधक कय नजर से आइटम कय नाइ लुकुआइ सका जात है।",
+       "revdelete-reason-dropdown": "*हटावे कय आम कारण\n** सर्वाधिकार (कॉपीराइट) उल्लंघन\n** अनुचित टिप्पणी या निजी जानकारी\n** अनुचित सदस्यनाँव\n** मानहानिकारक जानकारी",
        "revdelete-otherreason": "अउर/दुसर कारण:",
        "revdelete-reasonotherlist": "दुसर कारण",
        "revdelete-edit-reasonlist": "हटावेक कारण बदला जाय",
        "revdelete-offender": "अवतरण संपादक:",
        "suppressionlog": "लुकुआवेक लॉग",
+       "suppressionlogtext": "नीचे प्रबंधकन् से लुकुआवल ब्लॉक औ हटावल पन्नन कय सूची है।\nमौजूदा ब्लॉक अव बैन देखय खर्तीन [[Special:BlockList|ब्लॉक सूची]] देखा जाय।",
        "mergehistory": "पन्ना कय इतिहास मिलावा जाय",
+       "mergehistory-header": "इ पन्ना एकठु स्रोत पन्ना कय इतिहास कवनो अउर पन्नन में मिलावे खत्तिर होय।\nसुनिश्चित करा जाय कि इ बदलाव पन्ना इतिहास में कन्टिन्य़ुईटी बरकरार राखय।",
        "mergehistory-box": "दुई पन्नन कय इतिहास मिलावा जाय:",
        "mergehistory-from": "स्रोत पन्ना:",
        "mergehistory-into": "लक्ष्य पन्ना:",
        "mergehistory-list": "मिलावे लायक संपादन इतिहास",
+       "mergehistory-merge": "[[:$1]] कय निचे कय अवतरण [[:$2]] में एकट्ठा कै सका जात है।\nकवनो दिहल समय या ओसे पहिले कय अवतरणन् कय एकट्ठा करेक खत्तिर रेडियो बटन कय प्रयोग करा जाय।\nनैविगेशन कड़िन् कय प्रयोग कय बाद इ कॉलम अपने पुरानी स्थिति पे आइ जाइ।",
        "mergehistory-go": "मिलावे लायक संपादन देखावा जाय",
        "mergehistory-submit": "अवतरण मिलावा जाय",
        "mergehistory-empty": "कवनो भी अवतरण नाई मिलाई सका जात अहै।",
+       "mergehistory-success": "[[:$1]] {{PLURAL:$3|कय}} $3 अवतरण [[:$2]] में एकट्ठा कई {{PLURAL:$3|गय}}।",
+       "mergehistory-fail": "इतिहास एकट्ठा नाई कई सका जात है, कृपया पन्ना औ समय कय फिरसे जाँच करा जाय।",
        "mergehistory-no-source": "स्रोत पन्ना $1 मौजूद नाई है।",
        "mergehistory-no-destination": "लक्ष्य पन्ना $1 मौजूद नाई है।",
        "mergehistory-invalid-source": "स्रोत पन्ना कय शीर्षक वैध होब आवश्यक है।",
        "mergehistory-reason": "कारण:",
        "mergelog": "मिलावेक लॉग",
        "revertmerge": "अलग करा जाअ",
+       "mergelogpagetext": "नीचे उ पन्नन कय सूची है जवने कय इतिहास हालिए में दूसरे पन्ना में मिलाइ ग रहा।",
        "history-title": "\"$1\" कय अवतरण इतिहास",
        "difference-title": "\"$1\" कय अवतरण में अंतर",
        "difference-title-multipage": "\"$1\" अव \"$2\" पन्नन में अंतर",
        "searchprofile-images-tooltip": "फ़ाइल खोजा जाय",
        "searchprofile-everything-tooltip": "(बातचीत पन्नन सहित) सारा सामग्री में खोजा जाय",
        "searchprofile-advanced-tooltip": "विशेष नामस्थानन् में खोजा जाय",
+       "search-result-size": "$1 ({{PLURAL:$2|$2 शब्द}})",
+       "search-result-category-size": "{{PLURAL:$1|$1 सदस्य}} ({{PLURAL:$2|$2 उपश्रेणी}}, {{PLURAL:$3|$3 सञ्चिका}})",
+       "search-redirect": "($1 से पुनर्निर्देशित)",
+       "search-section": "(अनुभाग $1)",
+       "search-category": "(श्रेणी $1)",
+       "search-file-match": "(फ़ाइल सामग्री से मिलत है)",
+       "search-suggest": "आप कय मतलब ई तव नाई रहा:$1",
+       "search-interwiki-caption": "दुसर परियोजना",
+       "search-interwiki-default": "$1 से परिणाम:",
+       "search-interwiki-more": "(अउर)",
+       "search-relatedarticle": "सम्बंधित",
+       "searchrelated": "सम्बंधित",
+       "searchall": "कुल",
+       "showingresults": "नीचे क्रमांक '''$2''' से सुरु कै कय सबसे ढेर '''$1''' परिणाम {{PLURAL:$1|देखाइ गा है}}।",
+       "search-nonefound": "आप कय खोज से मिलत जुलत कवनो परिणाम नाई मिला।",
+       "powersearch-legend": "उन्नत खोज",
        "powersearch-ns": "नामस्थानन् में खोजा जाय:",
        "powersearch-togglelabel": "चुना जाय:",
        "powersearch-toggleall": "कुल",
        "powersearch-togglenone": "केहु नाई",
+       "powersearch-remember": "अबसे करय वाले खोजमे हमार पसंद याद रक्खा जाय",
        "search-external": "बाहरी खोज",
-       "preferences": "प्राथमिकता",
-       "mypreferences": "प्राथमिकता",
+       "searchdisabled": "{{SITENAME}} पे खोज अक्षम है।\nआप गूगल से खोज कै सका जात है।\nध्यान रक्खा जाय कि वनकय {{SITENAME}} समानन् कय सूची पुरान होइ सकत है।",
+       "search-error": "खोजत समय अईसन त्रुटि उत्पन्न होइ गय: $1",
+       "preferences": "हमार पसंद",
+       "mypreferences": "हमार पसंद",
        "prefs-edits": "सम्पादन गिन्ती",
+       "prefsnologintext2": "आपन पसंद बदलेक खत्तिर लाग इन करा जाय",
        "prefs-skin": "स्कीन",
        "skin-preview": "झलक",
        "datedefault": "खा़स प्राथमिकता नाँइ है",
        "prefs-labs": "लैब विशेषता",
        "prefs-user-pages": "सदस्य पन्ना",
        "prefs-personal": "सदस्य व्यक्तिरेखा",
-       "prefs-rc": "à¤\85बहिन à¤\95य बदलाव",
+       "prefs-rc": "नà¤\81वा बदलाव",
        "prefs-watchlist": "अवलोकन सुची",
+       "prefs-editwatchlist": "ध्यानसूची संपादन करा जाय",
+       "prefs-editwatchlist-clear": "आपन ध्यानसूची साफ करा जाय",
        "prefs-watchlist-days": "ध्यानसूची में दिखावै कय दिन:",
        "prefs-watchlist-days-max": "अधिकतम $1 {{PLURAL:$1|दिन}}",
+       "prefs-watchlist-edits": "बढ़ावल ध्यानसूची में देखावे खत्तिर अधिकतम बदलाव:",
        "prefs-watchlist-edits-max": "अधिकतम संख्या: एक हज़ार",
        "prefs-watchlist-token": "ध्यानसूची टोकन",
        "prefs-misc": "अउर",
        "prefs-email": "ई-मेल वरीयता",
        "prefs-rendering": "शकलसूरत",
        "saveprefs": "सहेजा जाय",
-       "prefs-editing": "संपादन होत है",
+       "restoreprefs": "पहिलकय सेटिङ मिलावा जाय (कुल जगही में)",
+       "prefs-editing": "संपादन",
        "rows": "कताँर:",
        "columns": "कॉलम:",
        "searchresultshead": "खोजा जाय",
+       "stub-threshold": "<a href=\"#\" class=\"stub\">आधार कड़िन्</a> कय सबसे बडा आकार (बाइट):",
        "stub-threshold-disabled": "अक्षम करा है",
+       "recentchangesdays": "नँवा बदलाव में देखावे कय दिन:",
+       "recentchangesdays-max": "सबसे ढेर $1 {{PLURAL:$1|दिन}}",
+       "recentchangescount": "मूल रूप से केतना संपादन देखावा जाय:",
+       "prefs-help-recentchangescount": "एहमा नँवा बदलाव, पन्ना इतिहास अव लॉग शामिल है।",
+       "prefs-help-watchlist-token2": "ई आपकय ध्यानसूची कय वेब फ़ीड कय गोपनीय कुंजी होय।\nइ जेकरे लगे होइ उहय आपकय ध्यानसूची पढ़ि पाइ,इहिक नाते केहुक साथे ना बांटा जाइ।\n[[Special:ResetTokens|एका रीसेट करय खत्तिर हिँया क्लिक किन जाय]]।",
+       "savedprefs": "आप कय पसंद सहेजि गय ।",
        "timezonelegend": "समयमंडल:",
        "localtime": "स्थानीय समय:",
+       "timezoneuseserverdefault": "विकी डिफ़ॉल्ट कय उपयोग कीन जाय ($1)",
+       "timezoneuseoffset": "अउर कौनो(समयांतर निर्दिष्ट करा जाय)",
        "servertime": "सर्वर कय समय:",
+       "guesstimezone": "ब्राउज़र से भरा जाय",
        "timezoneregion-africa": "अफ्रिका",
        "timezoneregion-america": "अमेरिका",
        "timezoneregion-antarctica": "अंटार्कटिका",
        "timezoneregion-europe": "यूरोप",
        "timezoneregion-indian": "हिंद महासागर",
        "timezoneregion-pacific": "प्रशांत महासागर",
+       "allowemail": "अउर सदस्यन् से ई-मेल सक्षम करा जाय",
        "prefs-searchoptions": "खोजा जाय",
        "prefs-namespaces": "नामस्थान",
        "default": "डिफ़ॉल्ट",
        "prefs-custom-css": "खासमखास सी॰एस॰एस",
        "prefs-custom-js": "खासमखास जावास्क्रिप्ट",
        "prefs-common-css-js": "कुल स्किन कय लिए साझा सी॰एस॰एस/जावास्क्रिप्ट:",
+       "prefs-reset-intro": "आप इ पन्ना से अपने पसंद कय, साइट कय मूल पसंद कय जइसन बनाय सका जात है।\nएकरे बाद आप वापिस पुरान जगहि पे नाइ आय पावा जाइ।",
+       "prefs-emailconfirm-label": "ईमेल सुनीश्चित करा जाय:",
        "youremail": "ई-मेल:",
        "username": "{{GENDER:$1|सदस्यनाँव}}:",
+       "prefs-memberingroups": "निचे दिहा {{PLURAL:$1|समूह|समूहन्}} कय {{GENDER:$2|सदस्य}}:",
        "prefs-registration": "रजिष्ट्रेसन समय:",
        "yourrealname": "वास्तविक नाँव:",
        "yourlanguage": "भाषा",
        "yourvariant": "सामग्री भाषा संस्करण:",
+       "prefs-help-variant": "आप कय पसंदीदा प्रकार या इमला इ विकि कय अंदर सामग्री पन्नन कय देखावे खत्तिर होय।",
        "yournick": "नँवा हस्ताक्षर:",
        "prefs-help-signature": "बातचीत पन्नन पे करल टिप्पणिन् पे \"<nowiki>~~~~</nowiki>\" से हस्ताक्षर करेक परि, इ आप कय हस्ताक्षर अव समय में परिवर्तित होई जाइ।",
        "badsig": "गलत कच्चा हस्ताक्षर।\nHTML टैग कय जाँच करा जाय।",
        "prefs-help-gender": "ई जानकारी देब वैकल्पिक होय।\nई सॉफ़्टवेयर में लिंग कय आधार पे आप कय लिए सही संबोधन कय नाते प्रयुक्त होत है।\nई जानकारी सार्वजनिक होइ।",
        "email": "ई-मेल",
        "prefs-help-email": "ई-मेल ठहर वैकल्पिक होय, लेकिन यदि आप आपन गुप्तकुंजी भूलाई गवा गय तव एकरे माध्यम से रीसेट कई सका जात है।",
+       "prefs-help-email-others": "आप आपन पहिचान बिना देखाए, अउर सदस्यन् कय अपने सदस्य या बातचीत पन्ना से ,अपने आप से सम्पर्क कराय सका जात है।",
        "prefs-help-email-required": "ई-मेल ठहर जरुरी है।",
        "prefs-info": "मूलभूत जानकारी",
        "prefs-i18n": "अंतर्राष्ट्रीयकरण",
        "prefs-tokenwatchlist": "टोकन",
        "prefs-diffs": "अंतर",
        "prefs-help-prefershttps": "ई प्राथमिकता आप कय अगला लॉगिन मे प्रभावी होई।",
+       "prefs-tabs-navigation-hint": "सुझाव: आप टैब्स सूची में टैब्स कय बीचे आवे-जाय खत्तीर बाँवा औ दहिना तीर कुंजिन् कय उपयोग कै सका जात है।",
+       "email-address-validity-valid": "ई-मेल ठहर वैध नाइ लागत है",
        "email-address-validity-invalid": "एकठु वैध ई-मेल ठहर दिहा जाय",
        "userrights": "सदस्य अधिकार व्यवस्थापन",
        "userrights-lookup-user": "सदस्य समूहन् कय व्यवस्थापन करा जाय",
        "saveusergroups": "सदस्य समूहन् कय व्यवस्थापन सहेजा जाय",
        "userrights-groupsmember": "निचे कय {{PLURAL:$1|समूह|समूहन्}} कय सदस्य:",
        "userrights-groupsmember-auto": "निचे कय {{PLURAL:$1|समूह|समूहन्}} कय अंतर्निहित सदस्य:",
+       "userrights-groups-help": "आप इ सदस्य कय समूह-सदस्यता बदलि सका जात है:\n* बक्सा पे सही कय निशान लागेक माने होय कि सदस्य उ समूह मा है।\n* बक्सा पे सही कय निशान ना लागेक माने होय कि सदस्य उ समूह में नाइ है।\n* एक * कय माने होय कि एक दाइ जोड़ेक बाद उ समूह कय नाइ हटाय सका जात है, औ हटावे कय बाद नाइ जोडि सका जात है।",
        "userrights-reason": "कारण:",
-       "watchlist": "अवलोकन सुची"
+       "userrights-no-interwiki": "आप कय अउर विकिन् पे सदस्य अधिकार बदले कय अनुमति नाइ है।",
+       "userrights-nodatabase": "डाटाबेस $1 या तो मौजूद नाइ है या फिर स्थानीय नाइ है।",
+       "userrights-nologin": "सदस्य अधिकार बदलेक खत्तिर  प्रबंधक खाता से [[Special:UserLogin|लॉग इन]] करेक परि।",
+       "userrights-notallowed": "आप कय लगे सदस्य अधिकार जोडेक या हटावेक अनुमति नाइ है।",
+       "userrights-changeable-col": "गोल (ग्रुप) जवन आप बदलि सका जात है ।",
+       "userrights-unchangeable-col": "गोल (ग्रुप) जवन आप नाइ बदलि सका जात है ।",
+       "userrights-conflict": "सदस्य अधिकार बदलाव में अंतर्विरोध! कृपया आपन बदलाव जाँचा जाय और फिरसे सुनिश्चित करा जाय।",
+       "userrights-removed-self": "आप सफलतापूर्वक आपन अधिकार हटाए दिहा गए। इहिक नाते अब आप इ पन्ना नाइ देख सका जात है।",
+       "group": "गोल:",
+       "group-user": "सदस्य:",
+       "group-autoconfirmed": "अपने आप बनल सदस्य",
+       "group-bot": "बॉट",
+       "group-sysop": "प्रबंधक",
+       "group-bureaucrat": "प्रशासक",
+       "group-suppress": "ओवरसाईट्स",
+       "group-all": "(कुल)",
+       "group-user-member": "{{GENDER:$1|सदस्य}}",
+       "group-autoconfirmed-member": "{{GENDER:$1|अपने आप बनल सदस्य}}",
+       "group-bot-member": "{{GENDER:$1|बॉट}}",
+       "group-sysop-member": "{{GENDER:$1|प्रबंधक}}",
+       "group-bureaucrat-member": "{{GENDER:$1|प्रशासक}}",
+       "group-suppress-member": "{{GENDER:$1|ओवरसाईट}}",
+       "grouppage-user": "{{ns:project}}:सदस्य",
+       "grouppage-autoconfirmed": "{{ns:project}}:अपने आप बनल सदस्य",
+       "grouppage-bot": "{{ns:project}}:बॉट",
+       "grouppage-sysop": "{{ns:project}}:प्रबंधक",
+       "grouppage-bureaucrat": "{{ns:project}}:प्रशासक",
+       "grouppage-suppress": "{{ns:project}}:कॉपीराइट",
+       "right-read": "पन्ना पढा जाय",
+       "right-edit": "पन्ना सम्पादन करा जाय",
+       "right-createpage": "पन्ना बनावा जाय (जवन चर्चा पन्ना नाई होय)",
+       "right-createtalk": "बातचीत पन्ना बनावा जाय",
+       "right-createaccount": "नँवा सदस्य खाता बनावा जाय",
+       "right-minoredit": "अपने बदलाव कय छोट चिन्हित करा जाय",
+       "right-move": "पन्ना घुसकावा जाय",
+       "right-move-subpages": "पन्ना उपपन्नन सहित घुस्कावा जाय",
+       "right-move-rootuserpages": "मूल सदस्य पन्नन् कय घुस्कावा जाय",
+       "right-move-categorypages": "श्रेणी पन्नन् कय घुसकावा जाय",
+       "right-movefile": "फाइल घुसकावा जाय",
+       "right-suppressredirect": "पन्ना घुस्कावत कय समय पुनर्निर्देश ना छोड़ा जाय",
+       "right-upload": "फ़ाइल अपलोड करा जाय",
+       "right-reupload": "मौजूदा फ़ाईलन् पे फिर से लिखा जाय",
+       "right-reupload-own": "आपन अपलोड करल फ़ाइल पे फिर से लिखा जाय",
+       "right-reupload-shared": "शेअर्ड इमेज भण्डार में मौजूद फ़ाइलन् पे फिर से लिखा जाय",
+       "right-upload_by_url": "यू॰आर॰एल से फ़ाइल अपलोड करा जाय",
+       "right-purge": "पन्ना कय कैश मेमोरी खाली करा जाय",
+       "right-autoconfirmed": "आई॰पी ठहर आधारित रेट लिमिट्स से बेअसर होई जाय",
+       "right-bot": "स्वचलित प्रणाली माना जाय",
+       "right-nominornewtalk": "बातचीत पन्नन पे छोट बदलाव करय पे सदस्यन् कय \"आप कय खत्तिर नँवा सनेशा है\" पट्टी ना देखावा जाय",
+       "right-apihighlimits": "API पुँचताँछ में ऊँच सीमा प्रयोग करा जाय",
+       "right-writeapi": "लेखन ए॰पी॰आई कय प्रयोग करा जाय",
+       "right-delete": "पन्ना मेटावा जाय",
+       "right-bigdelete": "ढेर इतिहास वाले पन्नन्  कय हटावा जाय",
+       "right-deletelogentry": "विशिष्ट लॉग प्रविष्टिन् कय लुकुआवा जाय अव देखावा जाय",
+       "right-deleterevision": "पन्नन कय विशिष्ट अवतरण हटावा जाय या पुनर्स्थापित करा जाय",
+       "right-deletedhistory": "हटावल इतिहास सूची, ओकरे साथे मिलय वाला पाठ कय बिना देखा जाय",
+       "right-deletedtext": "हटावल पाठ औ हटावल अवतरणन् कय बीचे अंतर देखा जाय",
+       "right-browsearchive": "हटावल पन्ना खोजा जाय",
+       "right-undelete": "ई पन्ना कय पुनर्स्थापित करा जाय।",
+       "right-suppressionlog": "खासगी लॉग देखा जाय",
+       "right-block": "अउर सदस्यन् कय सम्पादन करय से ब्लॉक करा जाय",
+       "right-blockemail": "अउर सदस्यन् कय ईमेल करै से रोका जाय",
+       "right-hideuser": "सदस्यनाँव ब्लॉक करा जाय औ ओका मनईन से लुकुआवा जाय",
+       "right-ipblock-exempt": "आइ॰पी ब्लॉक्स, ऑटो-ब्लॉक्स अव रेंज ब्लॉक्स कय अनदेखा करा जाय",
+       "right-proxyunbannable": "स्वचालित प्रौक्सी ब्लॉक्स कय अनदेखा करा जाय",
+       "right-unblockself": "अपने आप कय अनावरुद्ध करा जाय",
+       "right-protect": "सुरक्षा स्तर बदला जाय अव सीढ़ी-सुरक्षित पन्ना सम्पादन करा जाय",
+       "right-editprotected": "अइसन सुरक्षित पन्नन कय सम्पादन करा जाय जवने कय सम्पादन कय \"{{int:protect-level-sysop}}\"",
+       "right-editsemiprotected": "अइसन पन्नन् कय सम्पादन करा जाय जवने कय सुरक्षा स्तर होय \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editinterface": "सॉफ़्टवेयर इंटरफ़ेस सम्पादित करा जाय",
+       "right-editusercssjs": "अउर सदस्यन् कय सी॰एस॰एस अव जावास्क्रिप्ट पन्ना कय सम्पादन करा जाय",
+       "right-editusercss": "अउर सदस्यन् कय सी॰एस॰एस पन्ना सम्पादन करा जाय",
+       "right-edituserjs": "अउर सदस्यन् कय जावास्क्रिप्ट पन्ना कय सम्पादन करा जाय",
+       "right-editmyusercss": "आपन सदस्य स्तर कय सी॰एस॰एस फ़ाइल कय सम्पादन करा जाय",
+       "right-editmyuserjs": "आपन सदस्य स्तर कय जावास्क्रिप्ट फ़ाइल सम्पादन करा जाय",
+       "right-viewmywatchlist": "आपन ध्यानसूची देखा जाय",
+       "right-editmywatchlist": "आपन ध्यानसूची सम्पादन करा जाय। ध्यान दिहा जाय कि कुछ काम इ अधिकार कय बिनव ध्यानसूची में पन्ना जोडिहैं।",
+       "right-viewmyprivateinfo": "आपन व्यक्तिगत डाटा देखा जाय (जैसय ई-मेल ठहर, असली नाँव)",
+       "right-editmyprivateinfo": "आपन व्यक्तिगत डाटा सम्पादन करा जाय (जैसय ई-मेल ठहर, असली नाँव)",
+       "right-editmyoptions": "आपन पसंद सम्पादन करा जाय",
+       "right-rollback": "कवनो पन्ना कय अंतिम दाइ सम्पादन करय वाले सदस्य कय सम्पादन वापिस लिहा जाय",
+       "right-markbotedits": "वापिस लेवे में होए वाला संपादनन् कय बॉट सम्पादन चिन्हित करा जाय",
+       "right-noratelimit": "रेट लिमिट्स से बेअसर होइ जाय",
+       "right-import": "दुसर विकि से पन्ना लावा जाय",
+       "right-importupload": "फ़ाइल अपलोड से पन्ना लावा जाय",
+       "right-patrol": "अउर सदस्यन् कय सम्पादन परीक्षित चिन्हित करा जाय",
+       "right-autopatrol": "अपने सम्पादन कय स्वचालित रूप से परीक्षित चिन्हित करा जाय",
+       "right-patrolmarks": "नँवा बदलाव में परीक्षण चिन्ह देखा जाय",
+       "right-unwatchedpages": "अइसन पन्नन कय सूची देखा जाय जवन केहु कय ध्यानसूची में नाइ है",
+       "right-mergehistory": "पन्ना इतिहास एकट्ठय करा जाय",
+       "right-userrights": "कुल सदस्य अधिकार बदला जाय",
+       "right-userrights-interwiki": "अउर विकिन् पे सदस्य अधिकार बदला जाय",
+       "right-siteadmin": "डाटाबेस कय ताला लगावा जाय या खोला जाय",
+       "right-override-export-depth": "पन्ना निर्यात करा जाय, पाँच स्तर कय गहराई तक जुड़ल पन्ना लइकय",
+       "right-sendemail": "अउर सदस्यन् कय ई-मेल पठवा जाय",
+       "right-passwordreset": "गुप्तकुंजी रीसेट ई-मेल देखा जाय",
+       "newuserlogpage": "सदस्य खाता बनावे कय लॉग",
+       "newuserlogpagetext": "ई सदस्य खाता बनावे कय लॉग होय।",
+       "rightslog": "सदस्य अधिकार लॉग",
+       "rightslogtext": "ई सदस्य अधिकारन् में करल बदलाव कय सूची होय।",
+       "action-read": "इ पन्ना कय पढ़ा जाय",
+       "action-edit": "ई पन्ना कय सम्पादन करा जाय",
+       "action-createpage": "पन्ना बनावा जाय",
+       "action-createtalk": "बातचीत पन्ना बनावा जाय",
+       "action-createaccount": "ई सदस्य खाता बनावा जाय",
+       "action-history": "इ पन्ना कय इतिहास देखेक",
+       "action-minoredit": "ई बदलाव छोट होय",
+       "action-move": "ई पन्ना घुस्कावा जाय",
+       "action-move-subpages": "ई पन्ना अव एकरे उप-पन्ना कय घुस्कावा जाय",
+       "action-move-rootuserpages": "मूल सदस्य पन्नन् कय घुस्कावेक",
+       "action-move-categorypages": "श्रेणी पन्नन् कय घुसकावेक",
+       "action-movefile": "ई पन्ना घुस्कावेक",
+       "action-upload": "इ फ़ाइल कय अपलोड करेक",
+       "action-reupload": "मौजूदा फ़ाईलन् पे फिर से लिखे कय",
+       "action-reupload-shared": "साझा भंडार में इ फ़ाइलन् कय ऊप्पर कुछ अउर डारे कय",
+       "action-upload_by_url": "यू॰आर॰एल से इ फ़ाइल कय चढ़ावे कय",
+       "action-writeapi": "लेखन ए॰पी॰आई कय प्रयोग करे कय",
+       "action-delete": "ई पन्ना मेटावे कय",
+       "action-deleterevision": "इ अवतरण कय हटावे कय",
+       "action-deletedhistory": "इ पन्ना कय मेटावल इतिहास कय देखे कय",
+       "action-browsearchive": "हटावल पन्ना खोजे कय",
+       "action-undelete": "ई पन्ना कय पुनर्स्थापित करे कय",
+       "action-suppressrevision": "इ लुकुआवल अवतरण कय देखे कय अव पुनर्स्थापित करे कय",
+       "action-suppressionlog": "इ निजी लॉग कय देखे कय",
+       "action-block": "ई सदस्य कय सम्पादन करय से ब्लॉक करे कय",
+       "action-protect": "इ पन्ना कय सुरक्षा स्तर बदले कय",
+       "action-rollback": "कवनो पन्ना कय अंतिम सम्पादन करय वाले सदस्यन् कय सम्पादन वापिस लेवे कय",
+       "action-import": "दुसर विकि से पन्ना लावे कय",
+       "action-importupload": "फ़ाइल अपलोड से पन्ना लावे कय",
+       "action-patrol": "अउर सदस्यन् कय सम्पादन परीक्षित चिन्हित करे कय",
+       "action-autopatrol": "आपन सम्पादन स्वचालित रूप से परीक्षित करे कय",
+       "action-unwatchedpages": "अईसन पन्ना जवन केहु कय ध्यानसूची में नाई है कय सूची देखे कय",
+       "action-mergehistory": "पन्ना इतिहास एकट्ठय करे कय",
+       "action-userrights": "कुल सदस्यन कय अधीकार बदले कय",
+       "action-userrights-interwiki": "अउर विकिन् पे सदस्य अधिकार बदले कय",
+       "action-siteadmin": "डाटाबेस कय ताला लगावा जाय या खोला जाय",
+       "action-sendemail": "ईमेल पठवा जाय",
+       "action-editmywatchlist": "ध्यानसूची सम्पादन करा जाय",
+       "action-viewmywatchlist": "आपन ध्यानसूची देखा जाय",
+       "action-viewmyprivateinfo": "आपन व्यक्तिगत जानकारी देखा जाय",
+       "action-editmyprivateinfo": "आपन व्यक्तिगत जानकारी बदला जाय",
+       "nchanges": "$1 {{PLURAL:$1|बदलाव}}",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|अंतिम दाइ देखय कय बाद से}}",
+       "enhancedrc-history": "इतिहास",
+       "recentchanges": "नँवा बदलाव",
+       "recentchanges-legend": "नँवा बदलाव से सम्बंधीत विकल्प",
+       "recentchanges-summary": "इ विकि पे करल नँवा बदलाव इ पन्ना पे देख सका जात अहै।",
+       "recentchanges-noresult": "इ अवधि कय दौरान इ मापदंडन् कय पूरा कईकय कवनो बदलाव नाइ कै गा है।",
+       "recentchanges-feed-description": "इ विकि पे करल नँवा बदलाव इ फिड मे देख सका जात अहै।",
+       "recentchanges-label-newpage": "ई सम्पादन से नँवा पन्ना बना",
+       "recentchanges-label-minor": "ई छोट सम्पादन होय ।",
+       "recentchanges-label-bot": "ई सम्पादन एक्ठु ब़ा़ट करे है",
+       "recentchanges-label-unpatrolled": "ई संपादन अभीन नाइ जाँचि गा है",
+       "recentchanges-label-plusminus": "पन्ना कय आकार इ बाइट संख्या से बदला",
+       "recentchanges-legend-heading": "'''कुंजी:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|नवा पन्नन् कय सूची]] कय भी देखा जाय)",
+       "rclistfrom": "$3 $2 से नँवा बदलाव देखावा जाय",
+       "rcshowhideminor": "छोट बदलाव $1",
+       "rcshowhideminor-show": "देखावा जाय",
+       "rcshowhideminor-hide": "लुकुआवा जाय",
+       "rcshowhidebots": "बॉट $1",
+       "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": "पिछला $2 दिन में करल $1 बदलाव देखावा जाय<br />$3",
+       "diff": "अंतर",
+       "hist": "इतिहास",
+       "hide": "लुकुआवा जाय",
+       "show": "देखावा जाय",
+       "minoreditletter": "छो",
+       "newpageletter": "न",
+       "boteditletter": "बॉ",
+       "number_of_watching_users_pageview": "[$1 ध्यान राखय वाले {{PLURAL:$1|सदस्य}}]",
+       "rc_categories": "श्रेणीन् तक सीमीत रक्खा जाय (\"|\" से अलग करा जाय)",
+       "rc_categories_any": "कवनो भी",
+       "rc-change-size-new": "बदलाव कय बाद $1 {{PLURAL:$1|बाइट}}",
+       "newsectionsummary": "/* $1 */ नँवा अनुभाग",
+       "rc-enhanced-expand": "विस्तृत जानकारी देखावा जाय",
+       "rc-enhanced-hide": "विस्तृत जानकारी लुकुआवा जाय",
+       "rc-old-title": "मूल रूप से \"$1\" नाव से बनावा रहा",
+       "recentchangeslinked": "पन्ना से सम्बन्धित बदलाव",
+       "recentchangeslinked-feed": "पन्ना से सम्बन्धित बदलाव",
+       "recentchangeslinked-toolbox": "पन्ना से सम्बन्धित बदलाव",
+       "recentchangeslinked-title": "\"$1\" से जुड़ल बदलाव",
+       "recentchangeslinked-summary": "ई पन्ना कवनो विशिष्ट पन्ना से जोडान पन्नन् (या कवनो श्रेणी में श्रेणीबद्ध पन्नन्) में नँवा बदलाव कय सूची देखावत है।\n[[Special:Watchlist|आप कय ध्यानसूची]] में मौजूद पन्ना '''मोट''' अक्षर में बीलगाई।",
+       "recentchangeslinked-page": "पन्ना कय नाँव:",
+       "recentchangeslinked-to": "इसके बदले में दिये हुए पृष्ठसे जुडे पन्नोंके बदलाव दर्शायें",
+       "upload": "फ़ाइल अपलोड करा जाय",
+       "uploadbtn": "फ़ाइल अपलोड करा जाय",
+       "reuploaddesc": "अपलोड रद्द करा जाय अव फिरसे अपलोड फ़ॉर्म पे जावा जाय",
+       "upload-tryagain": "संशोधित फ़ाइल विवरण भेजा जाय",
+       "uploadnologin": "लाग इन नाई करा गा है",
+       "uploadnologintext": "फाइल अपलोड करेक लिए $1 करब आवश्यक है",
+       "upload_directory_missing": "अपलोड डाइरेक्टरी ($1) मौजूद नाई है, अउर वेबसर्वर एकर निर्माण नाई कई पाय।",
+       "upload_directory_read_only": "अपलोड डाइरेक्टरी ($1) में वेबसर्वर नाइ लिख पावत है।",
+       "uploaderror": "अपलोड त्रुटि",
+       "upload-recreate-warning": "'''चेतावनी: उ नाँव कय फ़ाइल हटाई गय या घुस्काई गा है ।'''\n\nइ पन्ना कय हटावेक औ घुस्कावेक लॉग हिँया सन्दर्भ खत्तीर दिहा है:",
+       "uploadtext": "फ़ाइल अपलोड करेक खत्तीर नीचे कय फ़ॉर्म कय प्रयोग कीन जाय।\n[[Special:FileList|अपलोड करल फ़ाइलन् कय सूची]] से आप पहिले अपलोड करल फ़ाइल कय देख सका जात है औ ओहमा खोज सका जात है। दोबारा अपलोड करल फ़ाइलन् कय [[Special:Log/upload|अपलोड सूची]] में देखा जाय, औ मिटावल फ़ाइलन् कय खत्तिर [[Special:Log/delete|हटावे कय सूची]] देखा जाय।\n\nकवनो पन्ना में फ़ाइल कय प्रयोग करेक लिए नीचे दिहा उदाहरणन् कय अनुसार कड़ि बनावा जाय।\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' फ़ाइल कय पूरा आकार प्रयोग करेक लिये\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' पन्ना में बाँवा ओर फ़ाइल कय 200 पिक्सेल चौड़ा अवतरण \"alt text\" विवरण कय साथे एकठु बक्सा में प्रयोग करेक लिये\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' बिना फ़ाइल कय प्रयोग करे खालि ओकर कड़ी जोडेक लिये",
+       "upload-permitted": "फाइल जवने कय इजाजत है कय {{PLURAL:$2|प्रकार}}: $1.",
+       "upload-prohibited": "फाइल जवने कय मिनाही है {{PLURAL:$2|प्रकार}}: $1.",
+       "uploadlogpage": "अपलोड लॉग",
+       "uploadlogpagetext": "नीचे हालिए अपलोड करल फ़ाइलन् कय सूची है।\nकृपया अउर द्रैश्यिक विवरण कय खत्तीर [[Special:NewFiles|नँवा फ़ाइलन् कय गैलरी]] देखा जाय।",
+       "filename": "फ़ाइल कय नाँव",
+       "filedesc": "सारांश:",
+       "fileuploadsummary": "सारांश:",
+       "filereuploadsummary": "फ़ाइल में बदलाव:",
+       "filestatus": "कॉपीराइट स्थिति:",
+       "filesource": "स्रोत:",
+       "ignorewarning": "चेतावनि अनदेखा करा जाय अव फ़ाइल अपलोड करा जाय",
+       "ignorewarnings": "कुल चेतावनि कय अनदेखा करा जाय",
+       "minlength1": "फ़ाइल कय नाँव कम-से-कम एक अक्षर कय होएक चाहि।",
+       "illegalfilename": "फ़ाइल कय नाँव \"$1\" में कुछ ऐसन कैरैक्टर हैं जवन पन्ना शीर्षक में प्रतिबंधित है।\nकृपया फ़ाइल कय नाँव बदलि कय अपलोड करेक कोशिश करा जाय।",
+       "filename-toolong": "फ़ाइल नाँव 240 बाइट से ढेर लम्मा नाई होई सकत है।",
+       "badfilename": "फ़ाइल कय नाँव बदल कय \"$1\" कई दिहा है।",
+       "filetype-mime-mismatch": "फाइल एक्सटेंशन \".$1\" फ़ाइल कय खोजेक MIME प्रकार ($2) से मेल नाई खात है।",
+       "filetype-badmime": "\"$1\" प्रकार कय फ़ाइल अपलोड करय कय अनुमति नाई है।",
+       "filetype-bad-ie-mime": "इ फ़ाइल कय अपलोड नाइ कै सका जात है काहे से इंटर्नेट एक्स्प्लोरर एका \"$1\" मानि जवन कि प्रतिबन्धित या संभवतः खतरनाक फ़ाइल प्रकार होय।",
+       "filetype-unwanted-type": "'''\".$1\"''' एकठु अनचाहा फ़ाइल प्रकार होय।\nचाहय वाला फ़ाइल प्रकार {{PLURAL:$3|होय}} $2।",
+       "filetype-banned-type": "'''\".$1\"''' फ़ाइल {{PLURAL:$4|प्रकार|प्रकारन्}} कय अनुमति नाइ है।\nफ़ाइल प्रकार {{PLURAL:$3|जवने कय}} अनुमति है: $2।",
+       "filetype-missing": "इ फ़ाइल कय एक्स्टेंशन नाइ है (उदाहरण \".jpg\")।",
+       "empty-file": "आप कय दीहल फ़ाइल खाली रहा।",
+       "file-too-large": "आप कय दीहल फ़ाइल बहुत बडा रहा।",
+       "filename-tooshort": "फ़ाइल कय नाँव बहुत छोट है।",
+       "filetype-banned": "अइसन फ़ाइल प्रतिबन्धित है।",
+       "verification-error": "इ फ़ाइल सत्यापन में अनुत्तीर्ण रहा।",
+       "hookaborted": "आपके द्वारा प्रयासरत संशोधन किसी एक्स्टेंशन द्वारा निरस्त किया गया।",
+       "illegal-filename": "अइसन फ़ाइल कय इजाजत नाइ है।",
+       "overwrite": "मौजुदा फाइल कय उप्पर नाइ लिखि सका जात अहै ।",
+       "unknown-error": "अज्ञात त्रुटि आइ गय।",
+       "tmp-create-error": "अस्थाई फ़ाइल नाई बनि पाय।",
+       "tmp-write-error": "अस्थायी फ़ाइल कय लिखय में त्रुटि होइ गवा।",
+       "large-file": "फ़ाइल $1 से कम आकार कय होएक चाहि;\nइ फ़ाइल $2 आकार कय है।",
+       "largefileserver": "इ फ़ाइल कय आकार निर्धारित आकार सीमा कय पार है।",
+       "emptyfile": "आप कय अपलोड करल फ़ाइल खाली है।इ फ़ाइल कय नाँव लिखय में गलती होएक कारण होइ सकत है। कृपया जाँचा जाय कि का आप इहय फ़ाइल अपलोड करय चाहा जात है।",
+       "windows-nonascii-filename": "इ विकि विशेष कैरैक्टरन् कय वाले फ़ाइलनाँव नाइ स्वीकार करि।",
+       "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": "इ फ़ाइल बड़ा चित्र कय छोटा आकार ''(अंगूठाकार)'' जैसन लागत है। [[$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]]",
+       "uploadwarning": "अपलोड चेतावनी",
+       "uploadwarning-text": "फ़ाइल विवरण कय मिलाई कय फिर कोशिश करा जाय।",
+       "savefile": "फ़ाइल सहेजा जाय",
+       "uploaddisabled": "अपलोड प्रतिबंधित हैं।",
+       "copyuploaddisabled": "यू॰आर॰एल द्वारा अपलोड अक्षम हैं।",
+       "uploaddisabledtext": "फ़ाइल अपलोड अक्षम हैं।",
+       "php-uploaddisabledtext": "पी॰एच॰पी में फ़ाइल अपलोड बंद है।\nकृपया file_uploads जमाव कय जाँच करा जाय।",
+       "uploadscripted": "इ फ़ाइल में एच॰टी॰एम॰एल या स्क्रिप्ट कोड है, जवन वेब ब्राउज़र गलत पढि सकत है।",
+       "uploadscriptednamespace": "इ एस॰वी॰जी फ़ाइल में अमान्य नामजगह \"$1\" है।",
+       "uploadinvalidxml": "अपलोड करल फ़ाइल कय XML पार्स नाइ होई।",
+       "uploadvirus": "इ फ़ाइल में भाईरस हैं!ढेर जानकारी: $1",
+       "uploadjava": "ई फ़ाइल एकठु ज़िप फ़ाइल होय जवने मे एकठु जावा .class फ़ाइल है।\nजावा फ़ाइलन् कय अपलोड नाई कै सका जात है, काहेसे एकरे कारण सुरक्षा बाधा पार होइ जाई।",
+       "upload-source": "स्रोत फ़ाइल",
+       "sourcefilename": "स्रोत फ़ाइल कय नाँव:",
+       "sourceurl": "स्रोत यू॰आर॰एल:",
+       "destfilename": "लक्ष्य फ़ाइल नाव:",
+       "upload-maxfilesize": "अधिकतम फ़ाइल आकार: $1",
+       "upload-description": "फ़ाइल विवरण",
+       "upload-options": "अपलोड विकल्प",
+       "watchthisupload": "इ फ़ाइल पे ध्यान रक्खा जाय",
+       "upload-success-subj": "अपलोड होइ गय",
+       "upload-success-msg": "आप कय [$2] से अपलोड असफल रहा। ई [[:{{ns:file}}:$1]] पे उपलब्ध है",
+       "upload-failure-subj": "अपलोड समस्या",
+       "upload-failure-msg": "[$2] से आप कय अपलोड में एकठु समस्या रहा:\n\n$1",
+       "upload-warning-subj": "अपलोड चेतावनी",
+       "upload-warning-msg": "आप कय [$2] से अपलोड कय साथे एकठु समस्या रहा। आप इ समस्या कय ठीक करेक लिए [[Special:Upload/stash/$1|अपलोड फ़ॉर्म]] पे लौट सका जात है।",
+       "upload-proto-error": "गलत प्रोटोकॉल",
+       "upload-proto-error-text": "रिमोट अपलोड कय लिये यू॰आर॰एल कय नाँव <code>http://</code> या <code>ftp://</code> से शुरू होब आवश्यक है।",
+       "upload-file-error": "आन्तरिक त्रुटि",
+       "upload-file-error-text": "सर्वर पे अस्थायी फ़ाइल बनावत समय आंतरिक त्रुटि आई गय।\nकृपया कवनो [[Special:ListUsers/sysop|प्रबंधक]] से संपर्क करा जाय।",
+       "upload-misc-error": "अज्ञात अपलोड त्रुटि",
+       "upload-too-many-redirects": "इ यू॰आर॰एल में ढेर कुल पुनर्निर्देशन हैं",
+       "upload-http-error": "एकठु एच॰टी॰टी॰पी त्रुटि आई गय: $1",
+       "upload-copy-upload-invalid-domain": "कॉपी अपलोड इ डोमेन से उपलब्ध नाई हैं।",
+       "backend-fail-stream": "फ़ाइल $1 स्ट्रीम नाई होई पाई।",
+       "backend-fail-backup": "फ़ाइल $1 बैकअप नाई होई पाई।",
+       "backend-fail-notexists": "फ़ाइल $1 मौजूद नाई है।",
+       "backend-fail-hashes": "तुलना कय लिए फ़ाइलन् कय हैश नाई मिला।",
+       "backend-fail-notsame": "एकठु ग़ैर-समान फ़ाइल $1 पे पहिलवे से मौजूद है।",
+       "backend-fail-invalidpath": "$1 मान्य भंडारण पथ नाई है।",
+       "backend-fail-delete": "\"$1\" फ़ाइल कय नाइ मेटाई  गय।",
+       "backend-fail-describe": "फ़ाइल \"$1\" कय मेटाडाटा नाई बदल मिला।",
+       "backend-fail-alreadyexists": "फ़ाइल $1 पहिलवे से मौजूद है।",
+       "backend-fail-store": "फ़ाइल $1, $2 पे संग्रहीत नाई होई पाए।",
+       "backend-fail-copy": "\"$1\" फ़ाइल कय \"$2\" पे प्रतिलिपि नाई बनी पाए।",
+       "backend-fail-move": "फ़ाइल $1, $2 पे स्थानांतरित नाई होई पाए।",
+       "backend-fail-opentemp": "अस्थाई फ़ाइल खोल नाई खुला।",
+       "backend-fail-writetemp": "अस्थायी फ़ाइल पे लिखब संभव नाई है।",
+       "backend-fail-closetemp": "अस्थाई फ़ाइल बंद नाई होई पाय।",
+       "backend-fail-read": "फ़ाइल $1 नाई पढी मिला।",
+       "backend-fail-create": "फ़ाइल $1 लिखी नाई सका जात है।",
+       "backend-fail-maxsize": "फ़ाइल $1 नाई लिखी सका जात है काहे से ई {{PLURAL:$2|$2 बाईट}} से बड़ा है।",
+       "backend-fail-readonly": "भंडारण बैकेंड \"$1\" इ समय खाली पढ़ सका जात है (रीड-ओन्ली होय)। दिहल कारण रहा: \"$2\"",
+       "backend-fail-synced": "फ़ाइल \"$1\" आतंरिक भंडारण बैकेंड में असंगत स्थिति में है।",
+       "backend-fail-connect": "\"$1\" भंडारण बैकेंड से सम्पर्क स्थापित नाई कई मिला।",
+       "backend-fail-internal": "भंडारण बैकेंड \"$1\" में कवनो अज्ञात त्रुटि पैदा होइ गय।",
+       "lockmanager-fail-closelock": "\"$1\" कय लॉक फ़ाइल बंद नाइ कै सका गय।",
+       "lockmanager-fail-deletelock": "\"$1\" कय लॉक फ़ाइल नाइ मिटाइ सका गय।",
+       "lockmanager-fail-acquirelock": "\"$1\" के लिए लॉक नाइ मिला।",
+       "lockmanager-fail-openlock": "\"$1\" के लिये लॉक फ़ाइल खोली नहीं जा सकी।",
+       "lockmanager-fail-releaselock": "\"$1\" के लिए लॉक हटाया नहीं जा सका।",
+       "lockmanager-fail-db-bucket": "बकेट $1 में आवश्यक संख्या में लॉक डाटाबेसों से सम्पर्क नहीं हो पाया।",
+       "lockmanager-fail-db-release": "डाटाबेस $1 से ताला हटाया नहीं जा सका।",
+       "lockmanager-fail-svr-acquire": "सर्वर $1 पर तालों को प्राप्त नहीं किया जा सका।",
+       "lockmanager-fail-svr-release": "सर्वर $1 से टाला हटाया नहीं जा सका।",
+       "zip-file-open-error": "ज़िप जाँच के लिए फ़ाइल खोलते समय त्रुटि आई।",
+       "zip-wrong-format": "निर्दिष्ट फ़ाइल एक ज़िप फ़ाइल नहीं थी।",
+       "zip-bad": "ज़िप फ़ाइल या तो दूषित है या किसी अन्य कारण से अपठनीय है।\nइसकी ठीक से सुरक्षा जाँच नहीं की जा सकती।",
+       "zip-unsupported": "यह फ़ाइल एक ज़िप फ़ाइल है जो ऐसी ज़िप विशेषताओं का प्रयोग करती है जो मीडियाविकि द्वारा समर्थित नहीं हैं।\nइसकी ठीक से सुरक्षा जाँच नहीं की जा सकती।",
+       "uploadstash": "स्टैश अपलोड करा जाय",
+       "uploadstash-clear": "स्टैश करल फ़ाइल साफ़ करा जाय",
+       "uploadstash-nofiles": "आप कय लगे कवनो स्टैश करल फाइल नाइ है ।",
+       "uploadstash-errclear": "फाइल कय साफ करब असफल रहा ।",
+       "uploadstash-refresh": "फाइल कय सुची रिफ्रेश करा जाय ।",
+       "invalid-chunk-offset": "अग्राह्य चंक ऑफ़सेट",
+       "img-auth-accessdenied": "पहुँच अस्वीकार",
+       "img-auth-nofile": "\"$1\" फाइल नाइ है।",
+       "img-auth-streaming": "\"$1\"  स्ट्रीम होत है।",
+       "http-invalid-url": "अमान्य यू॰आर॰एल: $1",
+       "http-invalid-scheme": "\"$1\" से शुरू होय वाले यू॰आर॰एल स्वीकार्य नाई हैं।",
+       "http-request-error": "एच॰टी॰टी॰पी अनुरोध अज्ञात त्रुटि कय नाते असफल रहा।",
+       "http-read-error": "एच॰टी॰टी॰पी पढ़य में त्रुटि।",
+       "http-timed-out": "एच॰टी॰टी॰पी अनुरोध कय समय खतम (टाइम आउट)",
+       "http-curl-error": "यू॰आर॰एल $1 पावे में त्रुटि",
+       "http-bad-status": "एच॰टी॰टी॰पी अनुरोध कय समय समस्या रहा: $1 $2",
+       "upload-curl-error6": "यू॰आर॰एल तक नाई पहुँच मिला।",
+       "upload-curl-error6-text": "दिहल यू॰आर॰एल तक नाई पहुँचि मिला।\nकृपया एक दाइ फिर से जाँच लिहा जाय कि यू॰आर॰एल सही है औ उ साइट चलत है।",
+       "upload-curl-error28": "अपलोड टाइम‍आउट",
+       "license": "लाइसेन्सिंग:",
+       "license-header": "लाइसेन्सिंग",
+       "nolicense": "कवनो नाइ चुना गय",
+       "licenses-edit": "लाइसेंस विकल्प सम्पादन",
+       "license-nopreview": "(झलक उपलब्ध नाइ है)",
+       "upload_source_file": "(आप कय कम्प्युटरसे लिहल फाइल)",
+       "listfiles-delete": "मिटावा जाय",
+       "listfiles-summary": "इ विशेष पन्ना अपलोड करल कुल फ़ाइल देखावत है।",
+       "listfiles_search_for": "मीडिया नाँव कय खर्तिन खोजा जाय:",
+       "imgfile": "फ़ाइल",
+       "listfiles": "फ़ाइल सूची",
+       "listfiles_thumb": "अंगूठाकार",
+       "listfiles_date": "मिती",
+       "listfiles_name": "नाँव",
+       "listfiles_user": "सदस्य",
+       "listfiles_size": "आकार",
+       "listfiles_description": "विवरण",
+       "listfiles_count": "अवतरण",
+       "listfiles-show-all": "एहमा चित्रन् कय पुरान अवतरण है",
+       "listfiles-latestversion": "हालिए कय अवतरण",
+       "listfiles-latestversion-yes": "हाँ",
+       "listfiles-latestversion-no": "नाही",
+       "file-anchor-link": "फाइल",
+       "filehist": "फाइल कय इतिहास",
+       "filehist-help": "मिति/समय मे क्लिक कइकै फाइल उ समय कैसन बिलगात रहा देखा जाय",
+       "filehist-deleteall": "कुल मेटावा जाय",
+       "filehist-deleteone": "मेटावा जाय",
+       "filehist-revert": "पहिले जैसन करा जाय",
+       "filehist-current": "अबहिनै कय",
+       "filehist-datetime": "मिति/समय",
+       "filehist-thumb": "अंगूठाकार प्रारूप",
+       "filehist-thumbtext": "$1 अवतरण कय अंगूठाकार प्रारूप।",
+       "filehist-nothumb": "कवनो अंगूठाकार नाइ है",
+       "filehist-user": "सदस्य",
+       "filehist-dimensions": "आकार",
+       "filehist-filesize": "फ़ाइल कय आकार",
+       "filehist-comment": "टिप्पणी",
+       "imagelinks": "फ़ाइल कय उपयोग",
+       "linkstoimage": "निचे दिहा {{PLURAL:$1|पन्ना}} में इ फ़ाइल कय कड़ि हैं:",
+       "nolinkstoimage": "इ फाइल से कवनो पन्ना नाइ जोडान है ।",
+       "morelinkstoimage": "इ फ़ाइल कय [[Special:WhatLinksHere/$1|अउर कड़ि]] देखा जाय।",
+       "linkstoimage-redirect": "$1(फ़ाइल पुनर्निर्देश) $2",
+       "filepage-nofile": "ई नाँव कय कवनो फाइल नाइ है ।",
+       "filepage-nofile-link": "ई नाँव कय कवनो फाइल नाइ है,लेकिन आप [$1 कय अपलोड कई सका जात है]।",
+       "uploadnewversion-linktext": "ई फाइल कय नँवा अवतरण अप्लोड करा जाय",
+       "shared-repo-from": "$1 से",
+       "shared-repo": "एकठु साझा भंडार",
+       "upload-disallowed-here": "आप इ फाइल कय उप्पर नाइ लिखी सका जात है",
+       "filerevert": "$1 कय पहिले जैसन करा जाय",
+       "filerevert-legend": "फ़ाइल कय पहिले जैसन करा जाय",
+       "filerevert-intro": "आप '''[[Media:$1|$1]]''' कय [$4 $2 कय $3 बजे कय अवतरण] कय पहिले जैसन करा जात है ।",
+       "filerevert-comment": "कारण:",
+       "filerevert-defaultcomment": "$1 कय $2 बजे कय अवतरण कय पहिले जैसन कै गय",
+       "filerevert-submit": "पहिले जैसन करा जाय",
+       "filerevert-success": "'''[[Media:$1|$1]]''' कय [$4 $2 कय $3 बजे कय अवतरण] कय पहिले जैसन कै गा है।",
+       "filerevert-badversion": "दिहल समय से मिलए वाला इ फ़ाइल कय कवनो पुरान अवतरण नाइ है।",
+       "filedelete": "$1 मिटावा जाय",
+       "filedelete-legend": "फ़ाइल मिटावा जाय",
+       "filedelete-intro": "आप फ़ाइल '''[[Media:$1|$1]]''' इतिहास सहित हटावे जावा जात है।",
+       "filedelete-intro-old": "आप '''[[Media:$1|$1]]''' कय [$4 $2 कय $3 बजे कय अवतरण] हटावे जावा जात हैं।",
+       "filedelete-comment": "कारण:",
+       "filedelete-submit": "मिटावा जाय",
+       "filedelete-success": "'''$1''' मेटावा है।",
+       "filedelete-success-old": "'''[[Media:$1|$1]]''' कय $2 कय $3 बजे कय अवतरण हटाई गा है।",
+       "filedelete-nofile": "<strong>$1</strong> नाई है.",
+       "filedelete-otherreason": "अउर/दुसर कारण:",
+       "filedelete-reason-otherlist": "दुसर कारण",
+       "filedelete-reason-dropdown": "*हटावे कय साधारण कारण\n** कॉपीराइट उल्लंघन\n** डुप्लिकेट फ़ाइल",
+       "filedelete-edit-reasonlist": "हटावेक कारण बदला जाय",
+       "filedelete-maintenance": "रखरखाव चलत है अव रखरखाव कय दौरान फ़ाइलन् कय हटाइब औ पुनर्स्थापित करब मिनाही है।",
+       "filedelete-maintenance-title": "फ़ाइल नाइ हटाय सका जात है",
+       "mimesearch": "MIME खोज",
+       "mimetype": "MIME प्रकार:",
+       "download": "डाउनलोड",
+       "unwatchedpages": "ध्यान ना दिहल पन्ना",
+       "listredirects": "पुनर्निर्देशन कय सूची",
+       "unusedtemplates": "अप्रयुक्त साँचा",
+       "unusedtemplateswlh": "अउर कड़ि",
+       "randompage": "कवनो एक पन्ना",
+       "randompage-nopages": "ई {{PLURAL:$2|नामस्थान|नामस्थानन्}} मा कवनो फाइल नाइ है: $1।",
+       "randomincategory": "श्रेणी में कवनो एक (रैंडम) पन्ना",
+       "randomincategory-invalidcategory": "\"$1\" एकठु मान्य श्रेणी नाँव नाइ होय।",
+       "randomincategory-nopages": "[[:Category:$1|$1]] श्रेणी में कवनो पन्ना नाई है।",
+       "randomincategory-category": "श्रेणी:",
+       "randomincategory-legend": "श्रेणी में कवनो एक (रैंडम) पन्ना",
+       "randomredirect": "कवनो एक पुनर्निर्देशन पे जावा जाय",
+       "randomredirect-nopages": "नामस्थान \"$1\" में कवनो पुनर्निर्देशन नाइ है।",
+       "statistics": "आँकड़ा:",
+       "statistics-header-pages": "पन्ना कय आँकड़ा",
+       "statistics-header-edits": "संपादन कय आँकड़ा",
+       "statistics-header-users": "सदस्य आँकड़ा",
+       "statistics-header-hooks": "अउर आँकड़ा",
+       "statistics-articles": "सामग्री पन्ना",
+       "statistics-pages": "पन्ना",
+       "statistics-pages-desc": "विकि कय कुल पन्ना,बातचीत पन्ना अव रिडाइरेक्ट लैकय।",
+       "statistics-files": "अपलोड करल फाइल",
+       "statistics-edits": "{{SITENAME}} बनै कय बाद संपादन करल पन्ना",
+       "statistics-edits-average": "प्रति पन्ना औसत संपादन",
+       "statistics-users": "पंजीकृत [[Special:ListUsers|सदस्य]]",
+       "statistics-users-active": "सक्रिय सदस्य",
+       "statistics-users-active-desc": "पिछला {{PLURAL:$1|दिन}} से जवन सदस्य सक्रिय हँय",
+       "pageswithprop": "पन्ना जवनन में पन्ना गुण है",
+       "pageswithprop-legend": "पन्ना जवनन में पन्ना गुण है",
+       "pageswithprop-prop": "गुण कय नाँव:",
+       "pageswithprop-submit": "खोजा जाय",
+       "doubleredirects": "दुईठु पुनर्निर्देश",
+       "double-redirect-fixer": "पुनर्निर्देशन मिस्त्री",
+       "brokenredirects": "टूटल पुनर्निर्देशन पन्ना",
+       "brokenredirectstext": "ई कुल पुनर्निर्देश नामौजुद पन्नन मा लैजात हैं :",
+       "brokenredirects-edit": "सम्पादन करा जाय",
+       "brokenredirects-delete": "मेटावा जाय",
+       "withoutinterwiki": "बिना अंतरविकि कड़ि वाले पन्ना",
+       "withoutinterwiki-summary": "इ कुल पन्ना कवनो दुसर अवतरण कय पन्नन् से नाइ जोड़ात हैं ।",
+       "withoutinterwiki-legend": "उपसर्ग",
+       "withoutinterwiki-submit": "देखावा जाय",
+       "fewestrevisions": "सबसे कम अवतरण वाला पन्ना",
+       "nbytes": "$1 {{PLURAL:$1|बाइट|बाइट}}",
+       "ncategories": "{{PLURAL:$1|एक श्रेणी|श्रेणिन्}}",
+       "ninterwikis": "$1 अंतरविकी {{PLURAL:$1|कड़ी}}",
+       "nlinks": "$1 {{PLURAL:$1|कड़ी}}",
+       "nmembers": "$1 {{PLURAL:$1|सदस्य}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|सदस्य}}",
+       "nrevisions": "$1 {{PLURAL:$1|अवतरण}}",
+       "nviews": "{{PLURAL:$1|एक|$1}} दाइ देखि गा है",
+       "nimagelinks": "$1 {{PLURAL:$1|पन्ना|पन्नन्}} पे प्रयुक्त",
+       "ntransclusions": "$1 {{PLURAL:$1|पन्ना|पन्नन}} पे प्रयुक्त",
+       "specialpage-empty": "इ ब्यौरा कय खर्तीन कवनो परिणाम नाई है।",
+       "lonelypages": "एकाकी पन्ना",
+       "lonelypagestext": "निचे दिहा पन्ना से ना तो {{SITENAME}} कय अउर पन्ना जोड़ात है औ ना उ कवनो अउर पन्ना कय भित्तर जोडान है।",
+       "uncategorizedpages": "अश्रेणीकृत पन्ना",
+       "uncategorizedcategories": "अश्रेणीकृत श्रेणि",
+       "uncategorizedimages": "अश्रेणीकृत फ़ाइल",
+       "uncategorizedtemplates": "अश्रेणीकृत साँचा",
+       "unusedcategories": "अप्रयुक्त श्रेणि",
+       "unusedimages": "अप्रयुक्त फ़ाइल",
+       "wantedcategories": "जवन श्रेणि चाहि",
+       "wantedpages": "जवन पन्ना चाहिँ",
+       "wantedpages-badtitle": "परिणामन् में अवैध शीर्षक: $1",
+       "wantedfiles": "जवन फाइल चाहिँ",
+       "wantedfiletext-nocat-noforeign": "इ कुल फाइल कय इस्तेमाल कै गा है लेकिन मौजुद नाइ है ।",
+       "wantedtemplates": "जवन साँचा चाहिँ",
+       "mostlinked": "सबसे ढेर जोड़ान पन्ना",
+       "mostlinkedcategories": "सबसे ढेर जोड़ान श्रेणि",
+       "mostlinkedtemplates": "सबसे ढेर ट्रांसक्लूड करल पन्ना",
+       "mostcategories": "सबसे ढेर श्रेणि वाले पन्ना",
+       "mostimages": "सबसे ढेर जोड़ान फाइल",
+       "mostinterwikis": "सबसे ढेर अंतरविकी कड़ि वाले पन्ना",
+       "mostrevisions": "सबसे ढेर अवतरण वाला पन्ना",
+       "prefixindex": "उपसर्ग अनुसार पन्ना",
+       "prefixindex-namespace": "उपसर्ग वाले कुल पन्ना ($1 नामस्थान)",
+       "prefixindex-strip": "सूची में उपसर्ग लुकुआवा जाय",
+       "shortpages": "छोट पन्ना",
+       "longpages": "लम्मा पन्ना",
+       "deadendpages": "बंद सिरा पन्ना",
+       "deadendpagestext": "नीचे दिहल पन्ना {{SITENAME}} कय अउर पन्नन् से नाइ जोडान है।",
+       "protectedpages": "सुरक्षित पन्ना",
+       "protectedpages-indef": "खालि अनिश्चितकालीन सुरक्षा",
+       "protectedpages-cascade": "कास्केडिङ सुरक्षा खालि",
+       "protectedpages-noredirect": "पुनर्निदेश लुकुआवा जाय",
+       "protectedpagesempty": "इ पारामिटर मे कवनो सुरक्षित पन्ना नाइ है ।",
+       "protectedpages-timestamp": "समय मोहर",
+       "protectedpages-page": "पन्ना",
+       "protectedpages-expiry": "खतम",
+       "protectedpages-performer": "सुरक्षित करय वाला सदस्य",
+       "protectedpages-params": "सुरक्षा प्राचल",
+       "protectedpages-reason": "कारण",
+       "protectedpages-unknown-timestamp": "अज्ञात",
+       "protectedpages-unknown-performer": "अज्ञात सदस्य",
+       "protectedtitles": "सुरक्षित शीर्षक",
+       "protectedtitles-summary": "इ पन्ना अइसन पन्ना शीर्षकन् कय सूची देत है जवने कय अभीन बनावै से सुरक्षित कई गा है। सुरक्षित पन्नन कय सूची देखेक खर्तिन [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] देखा जाय।",
+       "protectedtitlesempty": "इ नियमन् द्वारा कवनो भी शीर्षक सुरक्षित नाइ है।",
+       "listusers": "सदस्य सूची",
+       "listusers-editsonly": "अइसन सदस्य देखावा जाय जवन संपादन कै चुका हैँ ।",
+       "listusers-creationsort": "बनावै कय तिथि कय आधार पे क्रमांकन करा जाय",
+       "listusers-desc": "घटे कय क्रम मे मिलावा जाय",
+       "usereditcount": "$1 {{PLURAL:$1|सम्पादन}}",
+       "usercreated": "$1 कय $2 बजे बनाइ गय, सदस्यनाँव $3 होय",
+       "newpages": "नँवा पन्ना",
+       "newpages-username": "सदस्यनाँव:",
+       "ancientpages": "सबसे पुरान पन्ना",
+       "move": "घुस्कावा जाय",
+       "movethispage": "ई पन्ना कय नाँव बदला जाय",
+       "unusedcategoriestext": "निचे दिहा श्रेणी पन्ना मौजूद है लेकिन कवनो भी पन्ना या अउर श्रेणि एकर प्रयोग नाँइ करत हैं।",
+       "notargettitle": "लक्ष्य नाइ",
+       "notargettext": "इ काम कय करेक लिये आप लक्ष्य पन्ना या सदस्य नाइ बतावा गा है।",
+       "nopagetitle": "अइसन कवनो लक्ष्य पन्ना नाइ है",
+       "nopagetext": "आप कय द्वारा लक्षित पन्ना मौजूद नाइ है।",
+       "pager-newer-n": "{{PLURAL:$1|नँवा}} $1",
+       "pager-older-n": "{{PLURAL:$1|पुरान}} $1",
+       "suppress": "ओवरसाइट",
+       "querypage-disabled": "प्रदर्शन कारणन् से इ विशेष पन्ना अक्षम कै गा है।",
+       "apihelp": "API सहयोग",
+       "apihelp-no-such-module": "मोड्युल \"$1\" नाइ मिला ।",
+       "booksources": "किताबीन कय स्रोत",
+       "booksources-search-legend": "किताबीन कय स्रोत खोजा जाय",
+       "booksources-search": "खोजा जाय",
+       "booksources-invalid-isbn": "इ ISBN सही नाइ लागत है ,मुल स्रोत से नकल करत कय कवनो गल्ती होइ गा होइ ,जाँचा लीन जाय ।",
+       "specialloguserlabel": "करयवाला:",
+       "speciallogtitlelabel": "प्रयोजन (शीर्षक या सदस्यनाँव):",
+       "log": "लॉग",
+       "all-logs-page": "कुल सार्वजनिक लॉग",
+       "logempty": "लॉग में अइसन कवनो चिज नाइ है।",
+       "log-title-wildcard": "इ पाठ से शुरू होय वाला शीर्षक खोजा जाय",
+       "showhideselectedlogentries": "चुनल लाग प्रविष्टि देखावा जाय/लुकुआवा जाय",
+       "allpages": "कुल पन्ना",
+       "nextpage": "अगला पन्ना ($1)",
+       "prevpage": "पहिलका पन्ना ($1)",
+       "allpagesfrom": "इ अक्षर से शुरु होय वाला पन्ना देखावा जाय:",
+       "allpagesto": "इ अक्षर से खतम होय वाला पन्ना देखावा जाय:",
+       "allarticles": "कुल पन्ना",
+       "allinnamespace": "कुल पन्ना ($1 नामस्थान)",
+       "allpagessubmit": "जावा जाय",
+       "allpagesprefix": "इ उपपद से शुरू होय वाला पन्ना देखावा जाय:",
+       "allpagesbadtitle": "दिहल शीर्षक अयोग्य, ख़ाली या गलत जोड़ान अंतर-भाषीय या अंतर-विकि उपपद रहा।\nएहमा एक या एक से ढेर अईसन कॅरेक्टर होई सकत हैं जवन शीर्षक में प्रयोग नाई कई सका जात अहै।",
+       "allpages-bad-ns": "{{SITENAME}} में \"$1\" नामस्थान नाइ है।",
+       "allpages-hide-redirects": "पुनर्निर्देश लुकुआवा जाय",
+       "cachedspecial-viewing-cached-ttl": "आप इ पन्ना कय कैश करल अवतरण देखा जात है ,जवन $1 पुरान होइ सकत है ।",
+       "cachedspecial-viewing-cached-ts": "आप इ पन्ना कय कैश करल अवतरण देखा जात है ,जवन कि पुरै सही नाइ होइ सकत है ।",
+       "cachedspecial-refresh-now": "हालिए कय देखा जाय ।",
+       "categories": "श्रेणी",
+       "categoriesfrom": "इ अक्षर से शुरु होय वाला श्रेणी देखावा जाय:",
+       "special-categories-sort-count": "संख्या कय अनुसार क्रमांकित करा जाय",
+       "special-categories-sort-abc": "वर्णानुक्रम कय अनुसार देखावा जाय",
+       "deletedcontributions": "हटावल सदस्य योगदान",
+       "deletedcontributions-title": "हटावल सदस्य योगदान",
+       "sp-deletedcontributions-contribs": "योगदान",
+       "linksearch": "बाहरी कड़ी खोजा जाय",
+       "linksearch-pat": "खोजय खर्तीन पाठ:",
+       "linksearch-ns": "नामस्थान:",
+       "linksearch-ok": "खोजा जाय",
+       "linksearch-line": "$2 में से $1 जोडान है",
+       "linksearch-error": "वाईल्डकार्ड्स होस्टनाम कय खालि शुरू में आइ सकत है।",
+       "listusersfrom": "इ अक्षर से शुरु होय वाले सदस्य देखावा जाय:",
+       "listusers-submit": "देखावा जाय",
+       "listusers-noresult": "कवनो सदस्य नाइ मिला ।",
+       "listusers-blocked": "(अवरोधित)",
+       "activeusers": "सक्रिय सदस्यन् कय सूची",
+       "activeusers-intro": "इ सक्रिय सदस्यन् कय सूची होय जे पिछला $1 {{PLURAL:$1|दिन}} में कुछ काम करें है।",
+       "activeusers-count": "$1 {{PLURAL:$1|काम}} पिछला $3 {{PLURAL:$3|दिन}} में",
+       "activeusers-from": "इ अक्षर से शुरु होय वाले सदस्य देखावा जाय:",
+       "activeusers-hidebots": "बॉट लुकुआवा जाय",
+       "activeusers-hidesysops": "प्रबंधक लुकुआवा जाय",
+       "activeusers-noresult": "कवनो सदस्य नाइ मिलें ।",
+       "listgrouprights": "सदस्य समूह अधिकार",
+       "listgrouprights-summary": "नीचे इ विकि खर्तीन परिभाषित सदस्य समूहन् कय सूची होय, सथवे में हर समूह से जोड़ान अधिकारो है।\nहर अधिकार कय बारे में [[{{MediaWiki:Listgrouprights-helppage}}|ढेर जानकरीओ]] उपलब्ध है।",
+       "listgrouprights-key": "* <span class=\"listgrouprights-granted\">दिहल अधिकार</span>\n* <span class=\"listgrouprights-revoked\">हटावल अधिकार</span>",
+       "listgrouprights-group": "गोल",
+       "listgrouprights-rights": "अधिकार",
+       "listgrouprights-helppage": "Help:गोल अधिकार",
+       "listgrouprights-members": "(सदस्य सूची)",
+       "listgrouprights-addgroup": "{{PLURAL:$2|समूह}} जोड़ा जाय: $1",
+       "listgrouprights-removegroup": "समूह {{PLURAL:$2|हटावा जाय}}: $1",
+       "listgrouprights-addgroup-all": "कुल समूह जोड़ा जाय",
+       "listgrouprights-removegroup-all": "कुल समूह हटावा जाय",
+       "listgrouprights-addgroup-self": "अपने खाता में {{PLURAL:$2|समूह}} जोड़ा जाय: $1",
+       "listgrouprights-removegroup-self": " अपने  खाता से {{PLURAL:$2|समूह}} हटावा जाय: $1",
+       "listgrouprights-addgroup-self-all": "अपने खाता में कुल समूह कय शामिल करा जाय",
+       "listgrouprights-removegroup-self-all": "अपने खाता से कुल समूह हटावा जाय",
+       "listgrouprights-namespaceprotection-header": "नामस्थान पाबंदी",
+       "listgrouprights-namespaceprotection-namespace": "नामस्थान",
+       "listgrouprights-namespaceprotection-restrictedto": "अइसन अधिकार जवन संपादन करय देत हैं",
+       "trackingcategories": "ट्रैक करय वाले श्रेणी",
+       "trackingcategories-msg": "ट्रैक करय वाले श्रेणी",
+       "trackingcategories-name": "सनेशा कय नाँव",
+       "trackingcategories-nodesc": "कवनो ढेर जानकारी नाइ है ।",
+       "trackingcategories-disabled": "श्रेणी अक्षम करा है",
+       "mailnologin": "कवनो पठवे वाला ठहर नाइ है",
+       "mailnologintext": "अउर सदस्यन् कय इ-मेल पठवे खत्तिर [[Special:UserLogin|लॉग इन]] करब आवश्यक है औ आप कय [[Special:Preferences|पसंद]] में वैध ई-मेल ठहर होब जरुरी है।",
+       "emailuser": "इ सदस्य कय ई-मेल पठवा जाय",
+       "emailuser-title-target": "इ {{GENDER:$1|सदस्य|सदस्या}} कय ई-मेल करा जाय।",
+       "emailuser-title-notarget": "सदस्य कय ई-मेल करा जाय",
+       "emailpage": "सदस्य कय ई-मेल करा जाय",
+       "emailpagetext": "नीचे कय पर्चा से आप इ {{GENDER:$1|सदस्य}} कय ई-मेल भेजि सका जात है।\nआप जवन ठहर [[Special:Preferences|आप कय पसंद]] में दिहा गा है उ इ ई-मेल कय \"भेजय वाले\" कय तौर पे आइ, इही से प्राप्तकर्ता आप कय सीधय जवाब दई सकत हैं।",
+       "defemailsubject": "{{SITENAME}} ई-मेल \"$1\" सदस्य से",
+       "usermaildisabled": "सदस्य ई-मेल अक्षम कै गय",
+       "usermaildisabledtext": "आप इ विकि पे अउर सदस्यन् कय ई-मेल नाइ भेज सका जात है",
+       "noemailtitle": "कवनो ई-मेल एड्रेस नाइ है",
+       "noemailtext": "इ सदस्य वैध ई-मेल ठहर नाइ दिहे हैं।",
+       "nowikiemailtext": "इ सदस्य अउर सदस्यन से इमेल ना पावै कय फैसला करें हँय ।",
+       "emailtarget": "पावै वाले कय सदस्यनाँव भरा जाय",
+       "emailusername": "सदस्यनाँव",
+       "emailusernamesubmit": "भेजो",
+       "email-legend": "कवनो अउर {{SITENAME}} सदस्य कय ई-मेल भेजा जाय",
+       "emailfrom": "प्रेषक:",
+       "emailto": "प्राप्तकर्ता:",
+       "emailsubject": "विषय:",
+       "emailmessage": "सनेशा:",
+       "emailsend": "भेजा जाय",
+       "emailccme": "हमरे इमेल कय प्रतिलिपि(कापी) हमँहु कय भेजा जाय ।",
+       "emailccsubject": "आप कय इमेल कय प्रतिलिपि(कापि) जवन $1 कय भेजि गय:$2",
+       "emailsent": "इमेल पठै गय",
+       "emailsenttext": "आप कय इमेल सनेशा पठै गय ।",
+       "emailuserfooter": "इ ई-मेल {{SITENAME}} कय \"सदस्य ई-मेल\" सुविधा से $1 से $2 कय भेजि गा रहा।",
+       "usermessage-summary": "प्रणाली सन्देश छोडत है।",
+       "usermessage-editor": "सिस्टम दूत",
+       "watchlist": "अवलोकन सुची",
+       "mywatchlist": "अवलोकन सुची",
+       "watchlistfor2": "$1 $2 कय खत्तिर",
+       "nowatchlist": "आप कय धियान सुची मा कवनो पन्ना नाइ है ।",
+       "watchnologin": "लॉग इन नाइ करा गा है",
+       "addwatch": "ध्यानसूची में जोड़ा जाय",
+       "addedwatchtext-short": "\"$1\" कय आप कय धियान सुची मा डारी गय ।",
+       "removewatch": "ध्यानसूची से हटावा जाय",
+       "removedwatchtext": "\"[[:$1]]\" नाँव कय पन्ना कय आपकय [[Special:Watchlist|ध्यानसूची]] से हटाय दिहा गा है।",
+       "removedwatchtext-short": "\"$1\" कय आप कय धियान सुची से निकारि गय ।",
+       "watch": "ध्यान रक्खा जाय",
+       "watchthispage": "इ पन्ना पे ध्यान रक्खा जाय",
+       "unwatch": "ध्यान हटावा जाय",
+       "unwatchthispage": "ध्यानसूची से हटावा जाय",
+       "notanarticle": "सामग्री पन्ना नाइ होय",
+       "notvisiblerev": "पूर्वावलोकन हटाइ गय",
+       "watchlist-details": "बातचीत पन्ना कय अलावा {{PLURAL:$1|$1 पन्ना}} आप कय ध्यानसूची में है।",
+       "wlheader-enotif": "ई-मेल नोटिफ़िकेशन सक्षम है।",
+       "wlheader-showupdated": "पन्ना जवन आपकय द्वारा देखय जाएक बाद बदलि गा है '''बोल्ड''' मे देखाइ।",
+       "wlshowlast": "पिछला $1 घंटा $2 दिन  देखा जाय",
+       "watchlist-options": "ध्यानसूची विकल्प",
+       "watching": "ध्यान देत हँय...",
+       "unwatching": "ध्यानसूची से हटत है...",
+       "watcherrortext": "\"$1\" कय खत्तीर आप कय ध्यानसूची सेटिंग बदलत समय त्रुटि होई गवा।",
+       "enotif_reset": "कुल पन्ना कय देखल पन्ना करा जाय",
+       "enotif_impersonal_salutation": "{{SITENAME}} सदस्य",
+       "enotif_subject_deleted": "{{SITENAME}} पन्ना $1 कय {{gender:$2|$2}} हटाए दिहे हैं",
+       "enotif_subject_created": "{{SITENAME}} पन्ना $1 कय {{gender:$2|$2}} बनाए दिहें हैं",
+       "enotif_subject_moved": "{{SITENAME}} पन्ना $1 कय {{gender:$2|$2}} घुस्काय दिहे हैं",
+       "enotif_subject_restored": "{{SITENAME}} पन्ना $1 कय {{gender:$2|$2}} पुनर्स्थापित कै दिहे हैं",
+       "enotif_subject_changed": "{{SITENAME}} पन्ना $1 कय {{gender:$2|$2}} बद़ल दिहे हैं",
+       "enotif_body_intro_deleted": "{{SITENAME}} पन्ना $1 कय {{gender:$2|$2}} $PAGEEDITDATE कय हटाइ दिहें है, देखा जाय $3।",
+       "enotif_body_intro_created": "{{SITENAME}} पन्ना $1 कय {{gender:$2|$2}} $PAGEEDITDATE कय बनाए हैं, वर्तमान अवतरण कय लिए $3 देखा जाय।",
+       "enotif_body_intro_moved": "{{SITENAME}} पन्ना $1 कय {{gender:$2|$2}} $PAGEEDITDATE कय घुस्काए हैं, वर्तमान अवतरण कय लिए $3 देखा जाय।",
+       "enotif_body_intro_restored": "{{SITENAME}} पन्ना $1 कय {{gender:$2|$2}} $PAGEEDITDATE कय पुनर्स्थापित करे हैं, वर्तमान अवतरण कय लिए $3 देखा जाय।",
+       "enotif_body_intro_changed": "{{SITENAME}} पन्ना $1 कय {{gender:$2|$2}} $PAGEEDITDATE कय बदलें हैं, वर्तमान अवतरण कय लिए $3 देखा जाय।",
+       "enotif_lastvisited": "आप कय आखिरी भेंट कय बाद करल बदलाव देखय खर्तीन $1 देखा जाय।",
+       "enotif_lastdiff": "इ बदलाव देखय खत्तिर $1 देखा जाय।",
+       "enotif_anon_editor": "अज्ञात  प्रयोगकर्ता  $1",
+       "deletepage": "पन्ना मेटावा जाय",
+       "confirm": "सुनिश्चित करा जाय",
+       "excontent": "लेख रहा: '$1'",
+       "excontentauthor": "लिखा रहा: '$1' (औ खाली '[[Special:Contributions/$2|$2]]' कय योगदान रहा।)",
+       "exbeforeblank": "खाली करय से पहिले पाठ रहा: '$1'",
+       "delete-confirm": "\"$1\" मिटावा जाय",
+       "delete-legend": "मेटावा जाय",
+       "confirmdeletetext": "आप एकठु पन्ना कय अव ओकरे कुल अवतरण सहित हटावे जावा जात है।\nजाँच लीन जाय कि आप इ करय चाहा जात है, आप एकरे परिणाम कय जाना जात है, औ आप इ [[{{MediaWiki:Policy-url}}|नीति]] कय अनुसार करा जात है।",
+       "actioncomplete": "काम पुरा होइ गवा",
+       "actionfailed": "काम असफल",
+       "deletedtext": "\"$1\" कय हटाई गा है।\nहालिए में हटावल पन्नन कय सूची खत्तीर $2 देखा जाय।",
+       "dellogpage": "हटावे कय लॉग",
+       "dellogpagetext": "नीचे हालिए में हटावल पन्नन कय सूची है।",
+       "deletionlog": "हटावे कय लॉग",
+       "reverted": "पुरान अवतरण कय पहिले जैसन कै गय",
+       "deletecomment": "कारण:",
+       "deleteotherreason": "अउर/दुसर कारण:",
+       "deletereasonotherlist": "दुसर कारण",
+       "deletereason-dropdown": "*हटावे कय सामान्य कारण\n** स्पैम\n** बर्बरता\n** कॉपीराइट उल्लंघन\n** लेखक कय अनुरोध\n** टूटल अनुप्रेषण",
+       "delete-edit-reasonlist": "हटावे कय कारण संपादित करा जाय",
+       "delete-toobig": "इ पन्ना कय संपादन इतिहास $1 से ढेर {{PLURAL:$1|अवतरण}} होएक  नाते से बहुत बड़ा है।\n{{SITENAME}} कय अनपेक्षित रूप से बंद होए से रोकेक लिये ऐसन पन्नन् कय हटावे कय अनुमति नाइ है।",
+       "delete-warning-toobig": "इ पन्ना कय संपादन इतिहास $1 से ढेर {{PLURAL:$1|अवतरण}} होएक  नाते से बहुत बड़ा है।\nएका हटावे से {{SITENAME}} कय डाटाबेस कय गतिविधिन् में व्यवधान आइ सकत है;\nकृपया सोच समझ कर आगे बढ़ें।",
+       "deleteprotected": "आप इ पन्ना कय नाइ मिटाइ सका जात है काहे से इ पन्ना सुरक्षित है ।",
+       "deleting-backlinks-warning": "'''चेतावनी:''' जवन पन्ना आप हटावे जावा जात है ओसे [[Special:WhatLinksHere/{{FULLPAGENAME}}|अउर पन्ना]] जुड़त है या ओसे ट्रांसक्लूड करत है।",
+       "rollback": "संपादन वापिस लिहा जाय",
+       "rollbacklink": "वापिस लिहा जाय",
+       "rollbacklinkcount": "$1 {{PLURAL:$1|सम्पादन}} वापिस लिहा जाय",
+       "rollbacklinkcount-morethan": "$1 से ढेर {{PLURAL:$1|सम्पादन}} वापिस लिहा जाय",
+       "rollbackfailed": "वापिस लेब असफल रहा",
+       "cantrollback": "पुरान अवतरण कय पहिले जैसन नाइ कै सका जात है ; इ पन्ना कय आखिरी योगदानकर्ता खालि इ लेख कय लिखे हैं ।",
+       "editcomment": "संपादन सारांश रहा: \"''$1''\"।",
+       "revertpage": "[[Special:Contributions/$2|$2]] ([[User talk:$2|बातचीत]])से [[User:$1|$1]] कय करल पिछला संशोधन उल्टाई कय पहिले जैसन कै गय",
+       "rollback-success": "$1 कय संपादन हटाइ गय;\n$2 कय संपादित अन्तिम अवतरण कय पुनर्स्थापित कै गय।",
+       "sessionfailure-title": "सत्र विफलता",
+       "protectlogpage": "सुरक्षा लॉग",
+       "protectedarticle": "\"[[$1]]\" कय सुरक्षित कै गय",
+       "modifiedarticleprotection": "\"[[$1]]\" कय सुरक्षा-स्तर बदलि गय",
+       "unprotectedarticle": "\"[[$1]]\" से सुरक्षा हटाइ गय",
+       "movedarticleprotection": "सुरक्षा स्तर \"[[$2]]\" से बदलि कय  \"[[$1]]\" कै गय",
+       "protect-title": "\"$1\" कय सुरक्षा स्तर बदला जाय",
+       "protect-title-notallowed": "\"$1\" कय सुरक्षा स्तर देखा जाय",
+       "prot_1movedto2": "[[$1]] कय नाँव बदलि कय [[$2]] कै गय",
+       "protect-badnamespace-title": "सुरक्षाहीन नामस्थान",
+       "protect-badnamespace-text": "इ नामस्थान मा पन्ना सुरक्षित नाइ कै सका जात है।",
+       "protect-norestrictiontypes-title": "सुरक्षाहीन पन्ना",
+       "protect-legend": "सुरक्षा निर्धारित करा जाय",
+       "protectcomment": "कारण :",
+       "protectexpiry": "समाप्ति:",
+       "protect_expiry_invalid": "समाप्ती समय गलत अहै।",
+       "protect_expiry_old": "समाप्ती समय बीत चुका है।",
+       "protect-unchain-permissions": "अउर सुरक्षा विकल्प खोला जाय",
+       "protect-text": "'''$1''' पन्ना कय सुरक्षा-स्तर आप हिँया देख सका जात है औ ओका बदल सका जात है।",
+       "protect-default": "कुल सदस्यन कय अनुमति दिहा जाय",
+       "protect-fallback": "खालि \"$1\" अधिकार वाले सदस्यन् कय अनुमति दिहा जाय",
+       "protect-level-autoconfirmed": "खालि स्वतः स्थापित सदस्यन् कय अनुमति दिहा जाय",
+       "protect-level-sysop": "खाली प्रबन्धकन् कय अनुमति दिहा जाय",
+       "protect-summary-cascade": "सीढ़ी",
+       "protect-expiring": "समाप्ती $1 (UTC)",
+       "protect-expiring-local": "समाप्ती $1",
+       "protect-expiry-indefinite": "अनिश्चितकालीन",
+       "protect-cascade": "इ पन्ना से जोडान पन्नन् कय सुरक्षित करा जाय (सुरक्षा सीढी)",
+       "protect-cantedit": "आप इ पन्ना कय सुरक्षा स्तर नाई बदलि सका जात अहै काहे से आप कय एकर अनुमति नाइ है ।",
+       "protect-othertime": "कवनो अउर समय:",
+       "protect-othertime-op": "कवनो अउर समय",
+       "protect-existing-expiry": "वर्तमान समय सीमा :$3, $2",
+       "protect-otherreason": "अउर/दुसर कारण:",
+       "protect-otherreason-op": "दुसर कारण",
+       "protect-dropdown": "*सुरक्षा कय आम कारण\n**ढेर बर्बरता \n**ढेर स्पैम\n**अफलदायी सम्पादन युद्ध\n**ढेर खोल जाय वाला पृष्ठ",
+       "protect-edit-reasonlist": "सुरक्षा कय कारण बदला जाय",
+       "protect-expiry-options": "एक घंटा:1 hour,एक दिन:1 day,एक हप्ता:1 week,दुइ हप्ता:2 weeks,एक महीन्ना:1 month,तीन महीन्ना:3 months,छः महीन्ना:6 months,एक साल:1 year,हमेशा खत्तिर:infinite",
+       "restriction-type": "अधिकार:",
+       "restriction-level": "प्रतिबन्ध स्तरः",
+       "minimum-size": "न्यूनतम आकार",
+       "maximum-size": "अधिकतम आकार:",
+       "pagesize": "(बाइट)",
+       "restriction-edit": "सम्पादन करा जाय",
+       "restriction-move": "घुस्कावा जाय",
+       "restriction-create": "बनावा जाय",
+       "restriction-upload": "अपलोड करा जाय",
+       "restriction-level-sysop": "पूर्ण सुरक्षित",
+       "restriction-level-autoconfirmed": "अर्ध-सुरक्षित",
+       "restriction-level-all": "कवनो स्तर",
+       "undelete": "मेटावल पन्ना देखावा जाय",
+       "undeletepage": "हटावल पन्ना देखा जाय औ पुनर्स्थापित करा जाय",
+       "undeletepagetitle": "'''नीचे [[:$1|$1]] कय हटावल अवतरण देखाई गा है।'''",
+       "viewdeletedpage": "मेटावल पन्ना देखावा जाय",
+       "undelete-fieldset-title": "अवतरण पहिले जैसन करा जाय",
+       "undeleterevisions": "$1 अवतरण लेखागार में {{PLURAL:$1|है}}",
+       "undelete-revision": "$1 ($4 कय $5 बजे $3 बनाइन रहा) कय मेटावल संस्करण:",
+       "undelete-nodiff": "कवनो पुरान अवतरण नाँइ मिला।",
+       "undeletebtn": "वापस लै आवा जाय",
+       "undeletelink": "देखा जाय/शुरु कय जैसन करा जाय",
+       "undeleteviewlink": "देखा जाय",
+       "undeleteinvert": "चुनाव उल्टा करा जाय",
+       "undeletecomment": "कारण:",
+       "undeletedrevisions": "{{PLURAL:$1|अवतरण पहिले जइसन कै गय}}",
+       "undeletedrevisions-files": "{{PLURAL:$1|1 अवतरण|$1 अवतरण}} औ {{PLURAL:$2|1 फ़ाइल}} पहिले जइसन कै गय",
+       "undeletedfiles": "{{PLURAL:$1|1 फ़ाइल|$1 फ़ाइल}} पहिले जइसन कै गय",
+       "cannotundelete": "पहिले जइसन नाइ कै मिला : $1",
+       "undeletedpage": "'''$1 कय पहिले जइसन कै गए'''\n\nहालिए में हटावल अव पुनर्स्थापित करल पन्नन् कय जानकारी कय खर्तीन [[Special:Log/delete|हटावे कय लॉग]] देखा जाय।",
+       "undelete-header": "हालिए में हटावल पन्ना द़ेखयक खर्तीन [[Special:Log/delete|हटावे कय लॉग]] देखा जाय।",
+       "undelete-search-title": "हटावल पन्ना खोजा जाय",
+       "undelete-search-box": "हटावल पन्ना खोजा जाय",
+       "undelete-search-prefix": "शुरूआती शब्द कय अनुसार पन्ना खोजा जाय:",
+       "undelete-search-submit": "खोजा जाय",
+       "undelete-no-results": "हटावल पन्नन कय लेखागार में मिलत जुलत कवनो पन्ना नाइ मिला।",
+       "undelete-filename-mismatch": "$1 कय फ़ाइल कय हटावल अवतरण पुनर्स्थापित नाइ कै सका जात है: फ़ाइल कय नाँव मिलत जुलत नाइ है ।",
+       "undelete-bad-store-key": "$1 कय फ़ाइल अवतरण पुनर्स्थापित नाइ कै सका जात है: हटावे से पहिले फ़ाइल मौजूद नाइ रहा।",
+       "undelete-cleanup-error": "लेखागार में से अप्रयुक्त फ़ाइल \"$1\" हटावै में त्रुटि।",
+       "undelete-error": "पन्ना पुनर्स्थापन में त्रुटि",
+       "undelete-error-short": "फ़ाइल पुनर्स्थापन में त्रुटि: $1",
+       "undelete-error-long": "फ़ाइल पुनर्स्थापन में आवल त्रुटि:\n\n$1",
+       "undelete-show-file-confirm": "का आप सहि में फ़ाइल \"<nowiki>$1</nowiki>\" कय $2 कय $3 बजे बनल, हटावल अवतरण कय देखेक चाहा जात है?",
+       "undelete-show-file-submit": "हाँ",
+       "namespace": "नामस्थान:",
+       "invert": "चुनाव उल्टा करा जाय",
+       "namespace_association": "सम्बद्ध नामस्थान",
+       "blanknamespace": "(मुख्य)",
+       "contributions": "{{GENDER:$1|सदस्य}} योगदान",
+       "contributions-title": "$1 कय योगदान",
+       "mycontris": "योगदान",
+       "contribsub2": "{{GENDER:$3|$1}} ($2) कय खर्तीन",
+       "contributions-userdoesnotexist": "सदस्य \"$1\" पंजीकृत नाइ है।",
+       "uctop": "(अबहिनै कय)",
+       "month": "इ महिन्नासे (औ पुरान):",
+       "year": "इ सालसे (औ पुरान):",
+       "sp-contributions-newbies": "खालि नँवा सदस्यन् कय योगदान देखावा जाय",
+       "sp-contributions-newbies-sub": "नँवा सदस्यन कय खर्तीन",
+       "sp-contributions-newbies-title": "नँवा सदस्यन् कय योगदान",
+       "sp-contributions-blocklog": "ब्लॉक सूची",
+       "sp-contributions-suppresslog": "हटावल सदस्य योगदान",
+       "sp-contributions-deleted": "हटावल सदस्य योगदान",
+       "sp-contributions-uploads": "अपलोड",
+       "sp-contributions-logs": "लॉग",
+       "sp-contributions-talk": "बातचीत",
+       "sp-contributions-userrights": "सदस्य अधिकार प्रबंधन",
+       "sp-contributions-blocked-notice": "ई सदस्य अभीन अवरोधित है।\nसदंर्भ कय लिए ताज़ातरीन अवरोध लॉग प्रविष्टि नीचे दीहा है:",
+       "sp-contributions-blocked-notice-anon": "ई आईपी ठहर अभीन अवरोधित है।\nसदंर्भ कय लिए ताज़ातरीन अवरोध लॉग प्रविष्टि नीचा दीहा है:",
+       "sp-contributions-search": "योगदान कय खर्तीन खोज",
+       "sp-contributions-username": "आईपी एड्रेस या सदस्यनाँव:",
+       "sp-contributions-submit": "खोजा जाय",
+       "whatlinkshere": "हिँया का जोडान अहै",
+       "whatlinkshere-title": "$1 से जोडान पन्ना",
+       "whatlinkshere-page": "पन्ना:",
+       "linkshere": "नीचे दिहा पन्ना '''[[:$1]]''' से जोडान है:",
+       "nolinkshere": "'''[[:$1]]''' से कुछ नाइ जोडान् है।",
+       "nolinkshere-ns": "चुनल नामस्थानसे '''[[:$1]]''' से कवनो पन्ना नाइ जोडान् है।",
+       "isredirect": "पुनर्निर्देशन पन्ना",
+       "istemplate": "मिलावा जाय",
+       "isimage": "फ़ाइल कय कड़ी",
+       "whatlinkshere-prev": "{{PLURAL:$1|पिछला}}",
+       "whatlinkshere-next": "{{PLURAL:$1|अगला}}",
+       "whatlinkshere-links": "← कड़ि",
+       "whatlinkshere-hideredirs": "$1 पुनर्निर्देश",
+       "whatlinkshere-hidetrans": "$1 ट्रान्स्क्ल्युजन्स",
+       "whatlinkshere-hidelinks": "$1 कड़ि",
+       "whatlinkshere-hideimages": "$1 फ़ाइल लिंक",
+       "whatlinkshere-filters": "छनना",
+       "autoblockid": "अपने आप अवरोध #$1",
+       "block": "सदस्य कय अवरोधित करा जाय।",
+       "unblock": "सदस्य कय अवरोध हटावा जाय।",
+       "blockip": "{{GENDER:$1|सदस्य}}",
+       "blockip-legend": "सदस्य कय अवरोधित करा जाय।",
+       "ipaddressorusername": "आईपी एड्रेस या सदस्यनाँव:",
+       "ipbexpiry": "समाप्ति:",
+       "ipbreason": "कारण:",
+       "ipbcreateaccount": "खाते बनावेकै रोका जाय",
+       "ipbemailban": "सदस्य कय ईमेल करै से रोका जाय",
+       "ipbsubmit": "इ सदस्य कय अउर बदलाव करय से रोका जाय",
+       "ipbother": "अउर समय:",
+       "ipboptions": "दुइ घंटा:2 hours,एक दिन:1 day,तीन दिन:3 days,एक हप्ता:1 week,दुइ हप्ता:2 weeks,एक महीना:1 month,तीन महीना:3 months,छः महीना:6 months,एक साल:1 year,हमेशा कय लिये:infinite",
+       "ipb-confirm": "अवरोधण कय पुष्टि करा जाय",
+       "badipaddress": "अमान्य आईपी ठहर।",
+       "blockipsuccesssub": "अवरोधन सफल ।(संपादन करय से रोक दिहा गा है)",
+       "ipb-edit-dropdown": "ब्लॉक कारण संपादित करा जाय",
+       "ipb-unblock-addr": "$1 कय अनब्लॉक करा जाय",
+       "ipb-unblock": "सदस्य या आईपी एड्रेस कय अनब्लॉक करा जाय",
+       "ipb-blocklist": "सद्य ब्लॉक देखा जाय",
+       "ipb-blocklist-contribs": "{{GENDER:$1|$1}} कय योगदान",
+       "unblockip": "सदस्य कय अवरोध हटावा जाय।",
+       "ipusubmit": "इ अवरोध हटावा जाय",
+       "unblocked": "[[User:$1|$1]] होइ गा हैं।",
+       "unblocked-range": "$1 अनब्लॉक होइ गा हैं।",
+       "unblocked-id": "अवरोध $1 निकारि दिहा गा है",
+       "blocklist": "अवरोधित उपयोक्ता",
+       "ipblocklist": "अवरोधित आईपी ठहर या सदस्यनाँव",
+       "ipblocklist-legend": "अवरोधित सदस्य कय खोजा जाय",
+       "blocklist-userblocks": "खाता कय अवरोध लुकुआवा जाए",
+       "blocklist-tempblocks": "अस्थाई अवरोध लुकुआवा जाए",
+       "blocklist-addressblocks": "एक्ठु आईपी अवरोध लुकुआवा जाए",
+       "blocklist-rangeblocks": "श्रेणी अवरोध लुकुआवा जाए",
+       "blocklist-timestamp": "समय मोहर",
+       "blocklist-target": "लक्ष्य",
+       "blocklist-expiry": "खतम",
+       "blocklist-by": "प्रशासक अवरुद्ध",
+       "blocklist-params": "अवरोध मापदण्ड",
+       "blocklist-reason": "कारण",
+       "ipblocklist-submit": "खोजा जाय",
+       "ipblocklist-localblock": "स्थानीय अवरोध",
+       "ipblocklist-otherblocks": "अन्य {{PLURAL:$1|ब्लॉक}}",
+       "infiniteblock": "इनफाईनाईट",
+       "expiringblock": "$1 कय $2 बजे समय खतम होत है",
+       "anononlyblock": "केवल बेनाम सदस्य",
+       "noautoblockblock": "स्वत:ब्लाक निस्क्रिय कै गय",
+       "createaccountblock": "खाता बनावै कय रोक लगाए दिहा गा हैं",
+       "emailblock": "ईमेल अवरोधित",
+       "blocklist-nousertalk": "आपन बातचीत पन्ना भी संपादन नाइ कै सकत हैँ ।",
+       "ipblocklist-empty": "ब्लॉक सूची खाली है।",
+       "ipblocklist-no-results": "पूछल आईपी एड्रेस / सदस्यनाँव पे ब्लॉक नाइ है।",
+       "blocklink": "अवरोधित करा जाय",
+       "unblocklink": "अवरोध हटावा जाय",
+       "change-blocklink": "विभाग बदला जाय",
+       "contribslink": "योगदान",
+       "emaillink": "ईमेल पठवा जाय",
+       "blocklogpage": "ब्लॉक सूची",
+       "unblocklogentry": "$1 अनवरोधित",
+       "block-log-flags-anononly": "खाली बेनाम सदस्य",
+       "block-log-flags-nocreate": "खाता बनावै से रोक",
+       "block-log-flags-noautoblock": "ऑटोब्लॉक बंद हैं",
+       "block-log-flags-noemail": "ई-मेल अवरुद्ध",
+       "block-log-flags-nousertalk": "आपन बातचीत पन्ना भी संपादन नाइ कै सकत हैँ ।",
+       "block-log-flags-angry-autoblock": "उन्नत स्व-अवरोध लागू",
+       "block-log-flags-hiddenname": "सदस्य नाँव लुकुआवा है",
+       "ipb_expiry_invalid": "अवैध समाप्ति कालावधी।",
+       "ipb_already_blocked": "\"$1\" पहिलवे से ब्लॉक हैं",
+       "ipb-otherblocks-header": "अउर {{PLURAL:$1|ब्लॉक}}",
+       "ip_range_invalid": "गलत आईपी रेंज",
+       "proxyblocker": "प्रॉक्सी ब्लॉकर",
+       "lockdb": "डाटाबेस लॉक करा जाय",
+       "unlockdb": "डाटाबेस अनलॉक करा जाय",
+       "lockbtn": "डाटाबेस लॉक करा जाय",
+       "unlockbtn": "डाटाबेस अनलॉक करा जाय",
+       "lockdbsuccesssub": "डाटाबेस लाक सफल",
+       "unlockdbsuccesssub": "डाटाबेस लाक हटाइ गय",
+       "lockedbyandtime": "(से {{GENDER:$1|$1}} पे $2 यँह $3)",
+       "move-page": "$1 कय घुस्कावा जाय",
+       "move-page-legend": "पन्ना घुसकावा जाय",
+       "movearticle": "पन्ना घुसकावा जाय:",
+       "moveuserpage-warning": "<strong>चेतावनी:</strong> आप एकठु सदस्य पन्ना कय नाँव बदलय जावा जात है।तनि ध्यान दिहा जाय कि खालि पन्ना कय नाँव बदल जाइ औ सदस्यनाँव <em>नाई</em> बदलि।",
+       "movenotallowed": "आप कय इ पन्ना घुस्कावे कय अनुमति नाई है ।",
+       "movenotallowedfile": "आप कय फाइल घुस्कावे कय अनुमति नाई है ।",
+       "cant-move-user-page": "आप कय सदस्य पन्ना घुस्कावे कय अनुमति नाई है (उप-पन्ना बादे) ।",
+       "cant-move-to-user-page": "आप कय कवनो पन्नन कय सदस्य पन्ना पय लैजाएक अनुमति नाइ है (सिवाय सदस्य उप पन्नन कय)",
+       "cant-move-category-page": "आप कय श्रेणी पन्ना घुस्कावे कय अनुमति नाई है ।",
+       "newtitle": "नवा शिर्षक पे :",
+       "move-watch": "स्रोत पन्ना अव टार्गेट पन्ना पे ध्यान रक्खा जाय",
+       "movepagebtn": "पन्ना घुसकावा जाय",
+       "pagemovedsub": "पन्ना घुस्काइ गय",
+       "movepage-moved": "<strong>\"$1\" कय \"$2\" पे घुस्काइ गय</strong>",
+       "movepage-moved-redirect": "एक्ठु पुनर्निर्देशन बनाइ गय।",
+       "movepage-moved-noredirect": "पुनर्निर्देशन निर्माण दबाइ गय",
+       "movetalk": "सम्बंधित बातचित पन्ना घुस्कावा जाय",
+       "move-subpages": "उप पन्ना घुस्कावा जाय ($1 तक)",
+       "move-talk-subpages": "बातचीत पन्ना कय उप पन्ना भी लई जावा जाय ($1 तक)",
+       "movepage-page-exists": "$1 पन्ना पहिलवे से है अव आप ओहपर फिरसे नाइ लिखि सका जात है ।",
+       "movepage-page-moved": "पन्ना $1 कय $2 पे घुस्काइ गय ।",
+       "movepage-page-unmoved": "पन्ना $1 कय $2 पे नाइ घुस्काइ सका जात है ।",
+       "movelogpage": "घुस्कावे कय ल़ाग",
+       "movelogpagetext": "निचे घुस्कावल पन्नन् कय सुची हय",
+       "movesubpage": "{{PLURAL:$1|उप-पन्ना}}",
+       "movenosubpage": "इ पन्ना कय कवनो उप-पन्ना नाइ है ।",
+       "movereason": "कारण:",
+       "revertmove": "पहिले जैसन करा जाय",
+       "delete_and_move": "मिटावा जाय अव घुस्कावा जाय",
+       "delete_and_move_text": "==हटावै कय ज़रूरत==\nलक्ष्य पन्ना \"[[:$1]]\" पहिलवे से मौजूद है।\nनाव बदलय खत्तीर का आप एका हटावै चाहा जात है?",
+       "delete_and_move_confirm": "हाँ,पन्ना कय मिटावा जाय",
+       "delete_and_move_reason": "\"[[$1]]\" से घुस्कावै खत्तीर जगह बनाई गा है",
+       "selfmove": "स्रोत अव गन्तव्य पन्ना कय एक्कय शिर्षक है ;पन्ना कय उहिक उप्पर नाइ घुस्काय सका जात है ।",
+       "immobile-source-namespace": "नामस्थान \"$1\" पे पन्ना नाइ घुस्काय सका जात है",
+       "immobile-target-namespace": "नामस्थान \"$1\" कय भित्तर पन्ना नाइ घुस्काय सका जात है",
+       "immobile-target-namespace-iw": "अंतर विकि कड़ी पन्ना लई जाय खत्तीर उचित लक्ष्य नाइ है।",
+       "immobile-source-page": "ई पन्ना नाइ घुस्की ।",
+       "immobile-target-page": "इ गन्तव्य शिर्षक पय नाइ लैजाय सका जात अहै ।",
+       "imagenocrossnamespace": "फाइल कय बिना-फाइल नेमस्पेस मा नाइ घुस्काय सका जात है",
+       "imageinvalidfilename": "लक्ष्यित फाइल नाँव अवैध है",
+       "move-leave-redirect": "पिछे एक्ठु पुनर्निर्देशन छोडा जाय",
+       "semiprotectedpagemovewarning": "'''सूचना:''' इ पन्ना सुरक्षित करा है औ खाली पंजीकृत सदस्य एका घुस्काय सकत हैं।\nनँवा लॉग प्रविष्टि संदर्भ खत्तीर नीचे दीहा है:",
+       "move-over-sharedrepo": "== फ़ाइल मौजूद है ==\n[[:$1]] एकठु साझा भंडार पय मौजूद है। इ नाँव पय घुस्कावै से नँवा फ़ाइल साझा फ़ाइल कय ओवरराइड करी।",
+       "export": "पन्ना निर्यात करा जाय",
+       "exportall": "कुल पन्ना निर्यात करा जाय",
+       "export-submit": "निर्यात",
+       "export-addcattext": "श्रेणी से पन्ना डारा जाय :",
+       "export-addcat": "जोडव",
+       "export-addnstext": "नामस्थान से पन्ना डारा जाय :",
+       "export-addns": "जोडा जाय",
+       "export-download": "फ़ाइल रुप में सहेजा जाय",
+       "export-templates": "टेम्प्लेटस भी जोडा जाय",
+       "allmessages": "व्यवस्था संदेश",
+       "allmessagesname": "नाँव",
+       "allmessagesdefault": "सनेशा कय डिफ़ॉल्ट पाठ",
+       "allmessagescurrent": "वर्तमान पाठ",
+       "allmessages-filter-legend": "फिल्टर",
+       "allmessages-filter": "अनुकूलन स्थिति कय आधार पे छाना जाय:",
+       "allmessages-filter-unmodified": "अपरिवर्तित",
+       "allmessages-filter-all": "कुल",
+       "allmessages-filter-modified": "परिवर्तित",
+       "allmessages-prefix": "उपसर्ग कय आधार पे छाना जाय:",
+       "allmessages-language": "भाषा:",
+       "allmessages-filter-submit": "जावा जाय",
+       "allmessages-filter-translate": "अनुवाद करा जाय",
+       "thumbnail-more": "बड़ा करा जाय",
+       "filemissing": "फाईल गायब",
+       "thumbnail_error": "थम्बनेल(thumbnail) बनावै में त्रुटि: $1",
+       "thumbnail_error_remote": "$1 से त्रुटि सन्देश: $2",
+       "djvu_page_error": "DjVu पन्ना रेंज कय बहरे है",
+       "djvu_no_xml": "DjVu फ़ाईल कय खत्तीर XML नाइ मिला",
+       "thumbnail-temp-create": "अस्थायी थम्बनेल फ़ाइल बनावै में असफल",
+       "thumbnail_invalid_params": "अमान्य थम्बनेल पैरामीटर",
+       "thumbnail_dest_directory": "गन्तव्य निर्देशिका बनावै में असमर्थ",
+       "thumbnail_image-type": "चित्र कय प्रकार समर्थित नाइ है",
+       "thumbnail_image-missing": "लागत है फाइल नामौजूद है: $1",
+       "import": "पन्ना आयात करा जाय",
+       "importinterwiki": "ट्रान्सविकि आयात",
+       "import-interwiki-sourcewiki": "स्रोत विकि:",
+       "import-interwiki-sourcepage": "स्रोत पन्ना:",
+       "import-interwiki-templates": "कुल साँचा शामिल करा जाय",
+       "import-interwiki-submit": "आयात",
+       "import-interwiki-namespace": "गंतव्य नामस्थान:",
+       "import-interwiki-rootpage": "गंतव्य पृष्ठ उपसर्ग (वैकल्पिक):",
+       "import-upload-filename": "फ़ाइल कय नाँव",
+       "import-comment": "टिप्पणी:",
+       "importstart": "पन्ना आयात होत है...",
+       "import-revision-count": "$1 {{PLURAL:$1|अवतरण}}",
+       "importnopages": "आयात करेक कवनो पन्ना नाइ है ।",
+       "importfailed": "आयात विफल होइ गवा: <nowiki>$1</nowiki>",
+       "importunknownsource": "अज्ञात आयात स्रोत प्रकार",
+       "importcantopen": "आयात फ़ाइल खोल नाई खुला।",
+       "importbadinterwiki": "अवैध अन्तरविकि कड़ी",
+       "importsuccess": "आयात सफल होइ गवा!",
+       "importlogpage": "आयात सूची",
+       "import-logentry-interwiki": " $1 कय अन्तरविकिकरण कई गय",
+       "javascripttest": "जावास्क्रिप्ट परीक्षण",
+       "javascripttest-pagetext-unknownframework": "अज्ञात परीक्षण ढाँचा \"$1\"",
+       "tooltip-pt-userpage": "आप कय सदस्य पन्ना",
+       "tooltip-pt-mytalk": "आप कय बातचित पन्ना",
+       "tooltip-pt-preferences": "आप कय पसंद",
+       "tooltip-pt-mycontris": "आप कय योगदान कय सुची",
+       "tooltip-pt-login": "आप कय खाता प्रवेश खत्तिर प्रोत्साहित कै जात है, लेकिन ई अनिवार्य नाई है",
+       "tooltip-pt-logout": "बहरे निकरा जाय",
+       "tooltip-ca-talk": "सामग्री पन्ना कय बारे में बात-चीत",
+       "tooltip-ca-edit": "आप ई पन्ना कय सम्पादन कै सका जात है। कृपया पन्ना सुरक्षित करय से पहिले पूर्वावलोकन बटन कय इस्तेमाल करा जाय।",
+       "tooltip-ca-addsection": "एक्ठु नँवा खण्ड शुरु करा जाय",
+       "tooltip-ca-viewsource": "इ पन्ना सुरक्षित है । आप एकर स्रोत देख सका जात है ।",
+       "tooltip-ca-history": "ई पन्ना कय पिछला संशोधन",
+       "tooltip-ca-protect": "इ पन्ना कय सुरक्षित करा जाय",
+       "tooltip-ca-unprotect": "ई पन्ना कय सुरक्षा स्तर बदला जाय",
+       "tooltip-ca-delete": "ई पन्ना मेटावा जाय",
+       "tooltip-ca-move": "ई पन्ना कय नाँव बदला जाय",
+       "tooltip-ca-watch": "इ पन्ना कय अपने ध्यानसूची में डारा जाय",
+       "tooltip-ca-unwatch": "इ पन्ना कय अपने ध्यानसूची से हटावा जाय",
+       "tooltip-search": "{{SITENAME}} में खोजा जाय",
+       "tooltip-search-go": "यदि पन्ना मौजूद होई तव उ पन्ना पे चला जाय",
+       "tooltip-search-fulltext": "ई पाठ्य खत्तिर पन्ना खोजा जाय",
+       "tooltip-p-logo": "प्रधान पन्ना",
+       "tooltip-n-mainpage": "प्रधान पन्ना पे जावा जाय",
+       "tooltip-n-mainpage-description": "प्रधान पन्ना पे जावा जाय",
+       "tooltip-n-portal": "परियोजना कय बारे मेँ, आप का कई सका जात अहै, मदद कँहा से लेब",
+       "tooltip-n-currentevents": "हालिए कय घटना कय जमिनी जानकारी लिहा जाय",
+       "tooltip-n-recentchanges": "विकि पे तुरंतय करल बदलाव कय सूची",
+       "tooltip-n-randompage": "कवनो एक पन्ना खोला जाय",
+       "tooltip-n-help": "पता लगावेक जगह",
+       "tooltip-t-whatlinkshere": "हिँया लिंक होवे वाले कुल विकि पन्नन् कय सूची",
+       "tooltip-t-recentchangeslinked": "ई पन्ना से जोडान पन्नवन पे तुरंत करल बदलाव",
+       "tooltip-feed-rss": "इ पन्ना कय आरएसएस फ़ीड",
+       "tooltip-feed-atom": "ई पन्ना कय Atom फ़ीड",
+       "tooltip-t-contributions": "इ सदस्य कय योगदान कय सुची देखा जाय",
+       "tooltip-t-emailuser": "इ सदस्य कय इमेल पठवा जाय",
+       "tooltip-t-info": "इ पन्ना कय बारे मे ढेर जानकारी",
+       "tooltip-t-upload": "फ़ाइल अपलोड करा जाय",
+       "tooltip-t-specialpages": "कुल विशेष पन्नन कय सूची",
+       "tooltip-t-print": "ई पन्ना कय छापय लायक संस्करण",
+       "tooltip-t-permalink": "ई पन्ना कय संसोधन खत्तिर स्थायी लिंक",
+       "tooltip-ca-nstab-main": "सामग्री वाला पन्ना देखा जाय",
+       "tooltip-ca-nstab-user": "सदस्य पन्ना देखा जाय",
+       "tooltip-ca-nstab-media": "मीडिया पन्ना देखा जाय",
+       "tooltip-ca-nstab-special": "इ एक्ठु खास पन्ना होय ,एका आप नाइ बदलि सका जात है",
+       "tooltip-ca-nstab-project": "प्रोजेक्ट पन्ना देखा जाय",
+       "tooltip-ca-nstab-image": "फ़ाइल कय पन्ना देखा जाय",
+       "tooltip-ca-nstab-mediawiki": "प्रणाली सन्देश देखा जाय",
+       "tooltip-ca-nstab-template": "टेम्प्लेट देखा जाय",
+       "tooltip-ca-nstab-help": "सहायता पन्ना पे जावा जाय",
+       "tooltip-ca-nstab-category": "श्रेणी पन्ना  देखा जाय",
+       "tooltip-minoredit": "एहपे छोट संपादन कय चिन्हा लगावा जाय",
+       "tooltip-save": "आपन बदलाव सहेजा जाय",
+       "tooltip-preview": "आप कय करल बदलाव कय झलक देखा जाय, सहेजय से पहिले एकर इस्तेमाल करा जाय!",
+       "tooltip-diff": "इ पाठ मे आप कय करल बदलाव देखा जाय",
+       "tooltip-compareselectedversions": "इ पन्ना कय चुनल अवतरणन् में अन्तर देखा जाय।",
+       "tooltip-watch": "इ पन्ना कय अपने ध्यानसूची में डारा जाय",
+       "tooltip-watchlistedit-normal-submit": "पन्ना हटावा जाय",
+       "tooltip-watchlistedit-raw-submit": "ध्यानसूची अपडेट करा जाय",
+       "tooltip-upload": "अपलोड शुरू करा जाय",
+       "tooltip-preferences-save": "पसंद सहेजा जाय",
+       "tooltip-summary": "छोट सारांश लिखा जाय",
+       "anonymous": "{{SITENAME}} कय {{PLURAL:$1||}} बेनामी सदस्य",
+       "siteuser": "विकिपीडिया सदस्य  $1",
+       "anonuser": "{{SITENAME}} अज्ञात उपयोगकर्ता $1",
+       "lastmodifiedatby": "इ पन्ना कय अन्तिम बदलाव $2, $1 पे $3 करें रहें।",
+       "othercontribs": "$1 कय काम कय अनुसार।",
+       "others": "अउर",
+       "siteusers": "{{SITENAME}} {{PLURAL:$2|सदस्य|सदस्य}} $1",
+       "anonusers": "{{SITENAME}} अनाम {{PLURAL:$2|सदस्य|सदस्य}} $1",
+       "creditspage": "पन्ना श्रेय नामावली",
+       "spamprotectiontitle": "स्पॅम सुरक्षा फिल्टर",
+       "spambot_username": "मीडियाविकि स्पॅम स्वच्छता",
+       "pageinfo-title": "\"$1\" कय जानकारी",
+       "pageinfo-header-basic": "मूल जानकारी",
+       "pageinfo-header-edits": "सम्पादन इतिहास",
+       "pageinfo-header-restrictions": "पन्ना सुरक्षा",
+       "pageinfo-header-properties": "पन्ना जानकारी",
+       "pageinfo-display-title": "प्रदर्शन शिर्षक",
+       "pageinfo-default-sort": "डिफ़ॉल्ट सॉर्ट की",
+       "pageinfo-length": "पन्ना आकार (बाइट्स में)",
+       "pageinfo-article-id": "पन्ना आइ॰डी",
+       "pageinfo-language": "पन्ना सामग्री भाषा",
+       "pageinfo-content-model": "पन्ना सामग्री नमुना",
+       "pageinfo-robot-policy": "सर्च इंजन बॉट से अनुक्रमण",
+       "pageinfo-robot-index": "अनुमतित",
+       "pageinfo-robot-noindex": "अनुमतित नाइ है",
+       "pageinfo-watchers": "पन्ना पे नजर राखय वालें कय गिन्ती",
+       "pageinfo-few-watchers": "$1 से कम ध्यान देवै {{PLURAL:$1|वाला|वाले}}",
+       "pageinfo-redirects-name": "इ पन्ना पे कुल पुनर्निर्देश कय गिन्ती",
+       "pageinfo-subpages-name": "इ पन्ना कय उपपन्ना",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|पुनर्निर्देश}}; $3 {{PLURAL:$3|ग़ैर-पुनर्निर्देश}})",
+       "pageinfo-firstuser": "पन्ना बनावै वालें",
+       "pageinfo-firsttime": "पन्ना बनावै कय तिथि",
+       "pageinfo-lastuser": "सबसे नँवा संपादक",
+       "pageinfo-lasttime": "सबसे नँवा संपादन कय तिथि",
+       "pageinfo-edits": "कुल सम्पादन गिन्ती",
+       "pageinfo-authors": "लेखकन् कय गिन्ती",
+       "pageinfo-recent-edits": "हालिए कय सम्पादन कय गिन्ती (पिछ्ला $1 में)",
+       "pageinfo-recent-authors": "हालिए कय लेखकन् कय गिन्ती",
+       "pageinfo-magic-words": "जादुई {{PLURAL:$1|शब्द}} ($1)",
+       "pageinfo-hidden-categories": "लुकुआवल {{PLURAL:$1|श्रेणी}} ($1)",
+       "pageinfo-templates": "प्रयुक्त {{PLURAL:$1|साँचा}} ($1)",
+       "pageinfo-transclusions": "$1 {{PLURAL:$1|पन्ना|पन्नन्}} पे ट्रांस्कलूडिड",
+       "pageinfo-toolboxlink": "पन्ना कय जानकारी",
+       "pageinfo-redirectsto": "पुनर्निर्देशन लक्ष्य",
+       "pageinfo-redirectsto-info": "जानकारी",
+       "pageinfo-contentpage": "सामग्री पन्नन मा गिन जात अहै",
+       "pageinfo-contentpage-yes": "हाँ",
+       "pageinfo-protect-cascading-yes": "हाँ",
+       "pageinfo-category-info": "श्रेणी जानकारी",
+       "pageinfo-category-pages": "पन्नन कय सङ्ख्या",
+       "pageinfo-category-subcats": "उपश्रेणिन कय गिन्ती",
+       "pageinfo-category-files": "फाइल कय गिन्ती",
+       "markaspatrolleddiff": "जाँचल चिन्हीत करा जाय",
+       "markaspatrolledtext": "इ पन्ना कय जाँचल चिन्हीत करा जाय",
+       "markedaspatrolled": "जाँचल चिन्हीत करा जाय",
+       "markedaspatrolledtext": "[[:$1]] कय चयनित अवतरण जाँचल चिन्हित कै गय।",
+       "rcpatroldisabled": "नँवा बदलाव कय परीक्षण अक्षम है",
+       "markedaspatrollederror": "जाँचल चिन्हित नाइ कै मिला",
+       "patrol-log-page": "परीक्षण लॉग",
+       "log-show-hide-patrol": "परीक्षण लॉग $1",
+       "deletedrevision": "पुरान अवतरण $1 हटाय दिहा गा है",
+       "filedeleteerror-short": "फ़ाईल हटावै मा समस्या: $1",
+       "filedeleteerror-long": "फ़ाइल हटावै में आवा गल्ती:\n\n$1",
+       "filedelete-missing": "फ़ाईल \"$1\" कय नाइ हटाई सका जात है, काहे से इ अस्तित्व मा नाइ है।",
+       "filedelete-old-unregistered": "बतावल \"$1\" अवतरण डाटाबेस मा नाइ मिला ।",
+       "filedelete-current-unregistered": "बतावल \"$1\" फाइल डाटाबेस मा नाइ मिला ।",
+       "filedelete-archive-read-only": "अभिलेख डाइरेक्टरी \"$1\" पे वेबसर्वर लिख नाइ पावत है।",
+       "previousdiff": "← पुरान सम्पादन",
+       "nextdiff": "ताज़ा संपादन →",
+       "mediawarning": "<strong>चेतावनी:</strong> इ फ़ाइल प्रकार मा हानिकारक कोड होइ सकत है।\nसंभव है कि एका चलावै से आप कय सिस्टम हैक होइ जाइ।",
+       "imagemaxsize": "तस्विर आकार सिमा:<br />''(फाइल जानकारी पन्ना खत्तीर )''",
+       "thumbsize": "थम्बनेल आकार:",
+       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|पन्ना|पन्ना}}",
+       "file-info": "फाइल आकार: $1, MIME प्रकार: $2",
+       "file-info-size": "$1 × $2 पिक्सेल, फाइल आकार: $3, MIME प्रकार: $4",
+       "file-info-size-pages": "$1 × $2 पिक्सेल, फाइल आकार: $3, MIME प्रकार: $4, $5 {{PLURAL:$5|पृष्ठ|पृष्ठ}}",
+       "file-nohires": " उच्च गुणवत्ता रिजोलुशन उपलब्ध नाइ है।",
+       "svg-long-desc": "SVG फ़ाईल, साधारणत: $1 × $2 पीक्सेल्स, फ़ाईल कय आकार: $3",
+       "svg-long-desc-animated": "ऐनिमेटिड एस॰वी॰जी फ़ाइल, $1 × $2 पिक्सेल, फ़ाइल साइज़: $3",
+       "svg-long-error": "अमान्य एस॰वी॰जी फ़ाइल: $1",
+       "show-big-image": "मूल फ़ाइल",
+       "show-big-image-preview": "इ पूर्वावलोकन कय आकार:  $1 ।",
+       "show-big-image-other": "अउर  {{PLURAL:$2| resolution|resolutions}}:  $1 ।",
+       "show-big-image-size": "$1 × $2  पिक्सेल",
+       "file-info-gif-looped": "चक्रित",
+       "file-info-gif-frames": "$1 {{PLURAL:$1|फ्रेम}}",
+       "file-info-png-looped": "चक्रित",
+       "file-info-png-repeat": "$1 {{PLURAL:$1|दाइ}} प्ले होइ चुका है",
+       "file-info-png-frames": "$1 {{PLURAL:$1|फ्रेम}}",
+       "newimages": "नँवा फ़ाईल्स कय गैलरी",
+       "newimages-legend": "छनना",
+       "newimages-label": "फाइल नाँव (या ओकर अंश):",
+       "newimages-showbots": "बाट कय अपलोड देखावा जाय",
+       "noimages": "देखेक खत्तीर कुछ नाइ है",
+       "ilsubmit": "खोजा जाय",
+       "bydate": "मिती कय अनुसार",
+       "sp-newimages-showfrom": "$2, $1 कय बाद कय फ़ाईलें देखावा जाय",
+       "seconds": "{{PLURAL:$1|$1 सेकेन्ड}}",
+       "minutes": "{{PLURAL:$1|$1 मिनेट}}",
+       "hours": "{{PLURAL:$1|$1 घण्टा|$1 घण्टा}}",
+       "days": "{{PLURAL:$1|$1 दिन|$1 दिन}}",
+       "weeks": "{{PLURAL:$1|$1 सप्ताह}}",
+       "months": "{{PLURAL:$1|महीन्ना}}",
+       "years": "{{PLURAL:$1|$1 साल}}",
+       "ago": "$1 पहिले",
+       "just-now": "अबहिनै",
+       "hours-ago": "$1 {{PLURAL:$1|घंटा}} पहिले",
+       "minutes-ago": "$1 {{PLURAL:$1|मिनट}} पहीले",
+       "seconds-ago": "$1 {{PLURAL:$1|सॅकेंड}} पहीले",
+       "monday-at": "सोम कय $1",
+       "tuesday-at": "मङ्ङर कय $1",
+       "wednesday-at": "बुध कय $1",
+       "thursday-at": "बीफए कय $1",
+       "friday-at": "शुक्क कय $1",
+       "saturday-at": "शनीच्चर कय $1",
+       "sunday-at": "अत्तवार कय $1",
+       "yesterday-at": "कल्हीँया",
+       "metadata": "मेटाडाटा",
+       "metadata-expand": "अउर विवरण देखावा जाय",
+       "metadata-collapse": "अउर विवरण लुकुआवा जाय",
+       "metadata-fields": "Image metadata fields listed in this message will be included on image page display when the metadata table is collapsed.\nOthers will be hidden by default.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "exif-imagewidth": "चौडाई",
+       "exif-imagelength": "उचाई",
+       "exif-bitspersample": "प्रति घटक बीट्स",
+       "exif-compression": "कम्प्रेशन योजना",
+       "exif-photometricinterpretation": "पिक्सल रचना",
+       "exif-orientation": "अभिविन्यास",
+       "exif-samplesperpixel": "घटक कय संख्या",
+       "exif-planarconfiguration": "डाटा रचना",
+       "exif-ycbcrsubsampling": "Y कय C कय साथे सबसॅम्पलींग अनुमान",
+       "exif-ycbcrpositioning": "Y अव C व्यवस्थापन",
+       "exif-xresolution": "होरिज़ॉंटल रिज़ोल्यूशन",
+       "exif-yresolution": "व्हर्टिकल रिज़ोल्यूशन",
+       "exif-stripoffsets": "चित्र डाटा स्थान",
+       "exif-rowsperstrip": "हर स्ट्रीप मा कतार कय गिन्ती",
+       "exif-stripbytecounts": "कॉम्प्रेस्स्ड स्ट्रीपमें बाईट्स",
+       "exif-imagedescription": "चित्र शिर्षक",
+       "exif-make": "क्यामेरा निर्माता",
+       "exif-model": "क्यामरा मोडल",
+       "exif-software": "इस्तेमाल करल सॉफ्टवेयर",
+       "exif-artist": "लेखक",
+       "exif-copyright": "कपीराइट धारक",
+       "exif-exifversion": "Exif संस्करण",
+       "exif-flashpixversion": "सपोर्टेड फ्लॅशपीक्स अवतरण",
+       "exif-colorspace": "रंग स्थान",
+       "exif-componentsconfiguration": "हर घटक कय मतलब",
+       "exif-compressedbitsperpixel": "चित्र कॉम्प्रेशन मोड",
+       "exif-pixelydimension": "छवि चौड़ाई",
+       "exif-pixelxdimension": "छवि ऊँचाई",
+       "exif-usercomment": "सदस्य टिप्पणी",
+       "exif-relatedsoundfile": "संबंधित ध्वनी फ़ाईल",
+       "exif-datetimeoriginal": "डेटा सञ्चालन कय मिति अव समय",
+       "exif-datetimedigitized": "डिजिटाईज़िंग कय दिनांक औ समय",
+       "exif-subsectime": "दिनांकसमय उपसेकंद",
+       "exif-subsectimeoriginal": "मूलदिनांकसमय उपसेकंड",
+       "exif-subsectimedigitized": "दिनांकसमयडिजिटाईज्ड उपसेकेंड",
+       "exif-exposuretime": "एक्स्पोज़र समय",
+       "exif-exposuretime-format": "$1 सेकंड ($2)",
+       "exif-fnumber": "F संख्या",
+       "exif-exposureprogram": "एक्स्पोजर कार्यक्रम",
+       "exif-spectralsensitivity": "वर्णक्रमीय संवेदनशीलता",
+       "exif-isospeedratings": "आईएसओ गति रेटिंग",
+       "exif-shutterspeedvalue": "APEX शटर गती",
+       "exif-aperturevalue": "APEX ऍपर्चर",
+       "exif-brightnessvalue": "APEX चमक",
+       "exif-exposurebiasvalue": "एक्सपोजर पूर्वाग्रह",
+       "exif-maxaperturevalue": "अधिकतम एपर्चर भूमि",
+       "exif-subjectdistance": "सब्जेक्टसे अंतर",
+       "exif-meteringmode": "मीटरींग मोड",
+       "exif-lightsource": "प्रकाश स्रोत",
+       "exif-flash": "फ्लैस",
+       "exif-focallength": "लेंस फोकल लम्बाई",
+       "exif-subjectarea": "विषय क्षेत्र",
+       "exif-flashenergy": "फ्ल्यास ऊर्जा",
+       "exif-focalplanexresolution": "फोकल प्लेन x रिज़ोल्यूशन",
+       "exif-focalplaneyresolution": "फोकल प्लेन Y रिज़ोल्यूशन",
+       "exif-focalplaneresolutionunit": "फोकल प्लेन रिज़ोल्यूशन एकक",
+       "exif-subjectlocation": "सब्जेक्ट कय स्थान",
+       "exif-exposureindex": "एक्स्पोज़र इन्डेक्स",
+       "exif-sensingmethod": "सेन्सींग पद्धती",
+       "exif-filesource": "फ़ाईल स्रोत",
+       "exif-scenetype": "दृश्य प्रकार",
+       "exif-customrendered": "कस्टम इमेज प्रोसेसिंग",
+       "exif-exposuremode": "एक्स्पोज़र मोड",
+       "exif-whitebalance": "श्वेत सन्तुलन",
+       "exif-digitalzoomratio": "डिजिटल झूम अनुमान",
+       "exif-focallengthin35mmfilm": "३५ मी.मी. फ़ील्ममें फोकल लंबाई",
+       "exif-scenecapturetype": "दृश्य पकड़ प्रकार",
+       "exif-gaincontrol": "दृश्य नियन्त्रण",
+       "exif-contrast": "कॉन्ट्रास्ट",
+       "exif-saturation": "सॅचूरेशन",
+       "exif-sharpness": "शार्पनेस",
+       "exif-devicesettingdescription": "उपकरण रचना वर्णन",
+       "exif-subjectdistancerange": "विषय दूरी सीमा",
+       "exif-imageuniqueid": "यूनिक चित्र ID",
+       "exif-gpsversionid": "GPS टॅग अवतरण",
+       "exif-gpslatituderef": "उत्तर या दक्खिन अक्षांश",
+       "exif-gpslatitude": "अक्षांश",
+       "exif-gpslongituderef": "पुरुब या पच्छु रेखांश",
+       "exif-gpslongitude": "रेखांश",
+       "exif-gpsaltituderef": "ऊंचाई संदर्भ",
+       "exif-gpsaltitude": "उँचाई",
+       "exif-gpstimestamp": "GPS समय (एटोमिक क्लॉक)",
+       "exif-gpssatellites": "मापन खत्तिर इस्तेमाल करल सैटेलाईट",
+       "exif-gpsstatus": "रिसिभर अवस्था",
+       "exif-gpsmeasuremode": "माप मोड",
+       "exif-gpsdop": "मेज़रमेंट प्रिसिजन",
+       "exif-gpsspeedref": "गति इकाई",
+       "exif-gpsspeed": "GPS रिसिवर कय गती",
+       "exif-gpstrackref": "मूवमेंट दिशा खत्तीर संदर्भ",
+       "exif-gpstrack": "मूवमेंट डाइरेक्शन",
+       "exif-gpsimgdirectionref": "चित्र कय दिशा कय संदर्भ",
+       "exif-gpsimgdirection": "चित्र कय दिशा",
+       "exif-gpsmapdatum": "जियोडेटिक सर्वे डाटा इस्तेमाल कै गय",
+       "exif-gpsdestlatituderef": "लक्ष्य कय अक्षांश कय संदर्भ",
+       "exif-gpsdestlatitude": "अक्षांश लक्ष्य",
+       "exif-gpsdestlongituderef": "लक्ष्य कय रेखांश कय संदर्भ",
+       "exif-gpsdestlongitude": "लक्ष्य कय रेखांश",
+       "exif-gpsdestbearingref": "लक्ष्य कय बियरींग कय संदर्भ",
+       "exif-gpsdestbearing": "लक्ष्य कय बेअरिंग",
+       "exif-gpsdestdistanceref": "लक्ष्य कय अंतर कय संदर्भ",
+       "exif-gpsdestdistance": "लक्ष्य कय अंतर",
+       "exif-gpsprocessingmethod": "GPS प्रक्रीया पद्धती कय नाँव",
+       "exif-gpsareainformation": "GPS विभाग कय नाम",
+       "exif-gpsdatestamp": "GPS दिनांक",
+       "exif-gpsdifferential": "GPS डिफरन्शियर करेक्शन",
+       "exif-jpegfilecomment": "JPEG फ़ाइल टिप्पणी",
+       "exif-keywords": "कीवर्ड",
+       "exif-worldregiondest": "दुनिया कय क्षेत्र देखाइ गा है",
+       "exif-countrydest": "देश देखाइ गा है",
+       "exif-citydest": "देखावल शहर",
+       "exif-objectname": "छोट शीर्षक",
+       "exif-specialinstructions": "विशेष निर्देश",
+       "exif-headline": "शीर्षक",
+       "exif-credit": "श्रेय/प्रदायक",
+       "exif-source": "स्रोत",
+       "exif-editstatus": "तस्विर कय सम्पादकीय स्थिती",
+       "exif-urgency": "तात्कालिकता",
+       "exif-fixtureidentifier": "फिक्चर कय नाम",
+       "exif-locationdest": "देखावल जगह",
+       "exif-contact": "संपर्क जानकारी",
+       "exif-writer": "लेखक",
+       "exif-languagecode": "भाषा",
+       "exif-iimversion": "आईआईएम संस्करण",
+       "exif-iimcategory": "श्रेणी",
+       "exif-iimsupplementalcategory": "पुरक श्रेणी",
+       "exif-datetimereleased": "पे जारी",
+       "exif-originaltransmissionref": "मूल प्रसारण स्थान कोड",
+       "exif-identifier": "पहचानकर्ता",
+       "exif-lens": "इस्तेमाल करल लेंस",
+       "exif-serialnumber": "कैमरा कय क्रमांक नंबर",
+       "exif-cameraownername": "कैमरा कय मालिक",
+       "exif-label": "लेबल",
+       "exif-nickname": "छवि कय अनौपचारिक नाँव",
+       "exif-rating": "दर्ज़ा (5 से)",
+       "exif-rightscertificate": "अधिकार प्रबंधन प्रमाण पत्र",
+       "exif-copyrighted": "कॉपीराइट स्थिति",
+       "exif-copyrightowner": "कोपीराईट कय धारक",
+       "exif-usageterms": "उपयोग कय शर्त",
+       "exif-webstatement": "ऑनलाइन कॉपीराइट वक्तव्य",
+       "exif-originaldocumentid": "मूल दस्तावेज़ कय अनन्य पहचान",
+       "exif-licenseurl": "कॉपीराइट लाइसेंस कय लिए यूआरएल",
+       "exif-morepermissionsurl": "वैकल्पिक सूचना लाइसेंस",
+       "exif-pngfilecomment": "PNG फ़ाइल टिप्पणी",
+       "exif-disclaimer": "शर्त्त",
+       "exif-contentwarning": "सामग्री चेतावनी",
+       "exif-giffilecomment": "GIF फ़ाइल टिप्पणी",
+       "exif-intellectualgenre": "आइटम कय प्रकार",
+       "exif-subjectnewscode": "विषय कोड",
+       "exif-scenecode": "IPTC दृश्य कोड",
+       "exif-event": "चित्रित घटना",
+       "exif-organisationinimage": "चित्रित संगठन",
+       "exif-personinimage": "व्यक्ति चित्रण",
+       "exif-compression-1": "अनकॉम्प्रेस्स्ड",
+       "exif-compression-2": "CCITT समूह 3 1-Dimensional Modified Huffman संचालन इन्कोडिङ्ग",
+       "exif-compression-3": "CCITT ग्रुप 3 फ़ैक्स एनकोडिंग",
+       "exif-compression-4": "CCITT ग्रुप 4 फ़ैक्स एनकोडिंग",
+       "exif-copyrighted-true": "कॉपीराईट",
+       "exif-copyrighted-false": "कॉपीराइट स्थिति अनिर्दिष्ट",
+       "exif-unknowndate": "अज्ञात तारीख",
+       "exif-orientation-1": "सामान्य",
+       "exif-orientation-2": "हॉरिज़ॉन्टली घुमाइ गय",
+       "exif-orientation-3": "180° घूमाइ गय",
+       "exif-orientation-4": "वर्टिकली घुमाइ गय",
+       "exif-orientation-5": "90° CCW घुमाइ गय औ वर्टिकली बदलि गय",
+       "exif-orientation-6": "90° CCW घुमाइ गय",
+       "exif-orientation-7": "90° CW घुमाइ गय औ वर्टिकली बदलि गय",
+       "exif-orientation-8": "90° CW घुमाइ गय",
+       "exif-planarconfiguration-1": "चंकी फ़रमैट",
+       "exif-planarconfiguration-2": "प्लेनर फ़रमैट",
+       "exif-colorspace-65535": "बिना स्तरिकरण कय",
+       "exif-componentsconfiguration-0": "नाइ है",
+       "exif-exposureprogram-0": "अव्यक्त",
+       "exif-exposureprogram-1": "मैन्युअल",
+       "exif-exposureprogram-2": "सामान्य प्रोग्रॅम",
+       "exif-exposureprogram-3": "ऍपर्चर प्राथमिकता",
+       "exif-exposureprogram-4": "शटर प्राथमिकता",
+       "exif-exposureprogram-5": "क्रियेटीव्ह कार्यक्रम (फ़ील्ड कय डेप्थ कय तरफ बायस्‌ड)",
+       "exif-exposureprogram-6": "ऐक्शन कार्यक्रम (शटर कय गती कय तरफ बायस्‌ड)",
+       "exif-exposureprogram-7": "पोर्ट्रेट मोड (क्लोज़‍अप फ़ोटो कय लिये)",
+       "exif-exposureprogram-8": "लैंडस्केप मोड (बैकग्राउंड कय साथे लैंडस्केप फोटो)",
+       "exif-subjectdistance-value": "$1 मीटर",
+       "exif-meteringmode-0": "अज्ञात",
+       "exif-meteringmode-1": "औसत",
+       "exif-meteringmode-2": "सेंटरवेटेडएवरेज",
+       "exif-meteringmode-3": "स्पॉट",
+       "exif-meteringmode-4": "मल्टीस्पॉट",
+       "exif-meteringmode-5": "ढाँचा",
+       "exif-meteringmode-6": "आंशिक",
+       "exif-meteringmode-255": "अउर",
+       "exif-lightsource-0": "अज्ञात",
+       "exif-lightsource-1": "सूर्यप्रकाश",
+       "exif-lightsource-2": "फ्लूरोसेंट",
+       "exif-lightsource-3": "टंगस्ट्न (इनकॅन्‍डेसेंट प्रकाश)",
+       "exif-lightsource-4": "फ्लॅश",
+       "namespacesall": "कुल",
+       "monthsall": "कुल",
+       "confirmemail": "आपन ई-मेल ठहर निश्चित करा जाय",
+       "confirm_purge_button": "ठीक है",
+       "confirm-purge-top": "पन्ना कय कैश साफ करा जाय ?",
+       "confirm-watch-button": "ठीक है",
+       "confirm-unwatch-button": "ठीक है",
+       "quotation-marks": "\"$1\"",
+       "imgmultipageprev": "← पिछला पन्ना",
+       "imgmultipagenext": "अगला पन्ना →",
+       "imgmultigo": "जावा जाय",
+       "imgmultigoto": "पन्ना $1 पे जावा जाय",
+       "img-lang-go": "जावा जाय"
 }
index 9f4152a..d9f72e5 100644 (file)
        "userlogout": "Çıxış",
        "notloggedin": "Daxil olmamısınız",
        "userlogin-noaccount": "İstifadəçi hesabınız yoxdur?",
-       "userlogin-joinproject": "{{SITENAME}} qoşulun",
+       "userlogin-joinproject": "{{SITENAME}} layihəsinə qoşulun",
        "nologin": "İstifadəçi hesabınız yoxdur? $1.",
        "nologinlink": "Hesab yarat",
        "createaccount": "Hesab yarat",
        "gotaccount": "İstifadəçi hesabınız varmı? '''$1'''.",
        "gotaccountlink": "Daxil olun",
        "userlogin-resetlink": "Daxilolma məlumatlarınızı unutmusunuz?",
-       "userlogin-resetpassword-link": "Parolu unutdunuzmu?",
+       "userlogin-resetpassword-link": "Parolunuzu unutmusunuz?",
+       "userlogin-helplink2": "Qeydiyyat barədə köməklik",
        "userlogin-loggedin": "Siz artıq {{GENDER:$1|$1}} kimi daxil olmusunuz.\nAşağıdakı formadan istifadə edərək, başqa bir istifadəçi kimi daxil ola bilərsiniz.",
        "userlogin-createanother": "Başqa bir istifadəçi hesabı yarat",
        "createacct-emailrequired": "E-poçt ünvanı",
        "action-edit": "bu səhifəni redaktə etmək",
        "action-createpage": "səhifələrin yaradılması",
        "action-createtalk": "müzakirə səhifələrinin yaradılması",
-       "action-createaccount": "bu istifadəçi hesabının yaradılması",
+       "action-createaccount": "bu istifadəçi hesabını yaratmaq",
        "action-minoredit": "bunu kiçik redaktə kimi nişanla",
        "action-move": "bu səhifənin adını dəyişmək",
        "action-move-subpages": "bu səhifənin və onun altsəhifələrinin adını dəyişmək",
        "booksources-text": "Aşağıda yeni və işlənmiş kitablar satan xarici keçidlərdə siz axtardığınız kitab haqqında əlavə məlumat ala bilərsiz:",
        "specialloguserlabel": "İcraçı:",
        "speciallogtitlelabel": "Məqsəd (başlıq və ya istifadəçi):",
-       "log": "Loglar",
+       "log": "Qeydlər",
        "all-logs-page": "Bütün ictimai qeydlər",
        "alllogstext": "{{SITENAME}} üçün bütün mövcud qeydlərin birgə göstərişi.\nQeyd növü, istifadəçi adı və ya təsir edilmiş səhifəni seçməklə daha spesifik ola bilərsiniz.",
        "logempty": "Jurnalda uyğun qeyd tapılmadı.",
        "linksearch-line": "$2-dən $1 keçid verilib",
        "listusers-submit": "Göstər",
        "listusers-noresult": "İstifadəçi tapılmadı.",
-       "listusers-blocked": "(bloklan)",
+       "listusers-blocked": "(bloklanıb)",
        "activeusers": "Aktiv istifadəçilərin siyahısı",
        "activeusers-count": "Son {{PLURAL:$3|gündə|$3 gündə}} $1 {{PLURAL:$1|redaktə|redaktə}}",
        "activeusers-hidebots": "Botları gizlə",
        "sp-contributions-newbies": "Ancaq yeni istifadəçilərin fəaliyyətlərini göstər",
        "sp-contributions-newbies-sub": "Yeni istifadəçilər üçün",
        "sp-contributions-newbies-title": "Yeni hesablar üçün istifadəçi fəaliyyətləri",
-       "sp-contributions-blocklog": "Bloklama qeydləri",
+       "sp-contributions-blocklog": "bloklama qeydləri",
        "sp-contributions-deleted": "silinmiş istifadəçi fəaliyyətləri",
        "sp-contributions-uploads": "yüklənənlər",
-       "sp-contributions-logs": "Loqlar",
-       "sp-contributions-talk": "Müzakirə",
+       "sp-contributions-logs": "qeydlər",
+       "sp-contributions-talk": "müzakirə",
        "sp-contributions-userrights": "istifadəçi hüquqları idarəsi",
        "sp-contributions-blocked-notice": "Bu istifadəçi hal-hazırda bloklanmışdır.\nBloklama qeydlərinin sonuncusu aşağıda göstərilmişdir:",
        "sp-contributions-blocked-notice-anon": "Bu IP-ünvan hal-hazırda bloklanmışdır.\nBloklama qeydlərinin sonuncusu aşağıda göstərilmişdir:",
        "ipb-change-block": "Bu səbəblərlə istifadəçini yenidən blokla",
        "ipb-confirm": "Bloku təsdiqlə",
        "badipaddress": "Səhv IP",
-       "blockipsuccesssub": "bloklandı",
+       "blockipsuccesssub": "Bloklandı",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] bloklanıb.<br />\nBlokları yoxlamaq üçün [[Special:BlockList|bloklama siyahısına]] baxın.",
        "ipb-blockingself": "Özünü bloklayacaqsınız.! Bunu etmək istədiyinizdən əminsinizmi?",
        "ipb-confirmhideuser": "İstifadəçini bloklamaq və redaktə siyahısından onun adını silmək üzərəsiniz. Bunu etmək istədiyinizdən əminsinizmi?",
        "watchlistedit-raw-done": "İzləmə səhifələriniz qeyd olundu.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 title was|$1 başlıq}} əlavə edildi:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 title was|$1 başlıq}} çıxarıldı:",
+       "watchlisttools-clear": "İzləmə siyahısını təmizlə",
        "watchlisttools-view": "Siyahıdakı səhifələrdə edilən dəyişikliklər",
        "watchlisttools-edit": "İzlədiyim səhifələri göstər və redaktə et",
        "watchlisttools-raw": "Adi mətn kimi redaktə et",
index f72e846..4041ee2 100644 (file)
@@ -35,7 +35,7 @@
        "tog-shownumberswatching": "Ihayag an numero kan nagbabantay na mga parágamit",
        "tog-oldsig": "Tugmadong pirma",
        "tog-fancysig": "Trataron an pirma na wiki-teksto (mayo nin awtomatikong kilyaw)",
-       "tog-uselivepreview": "Gamíta an buhay na patànaw (eksperimental)",
+       "tog-uselivepreview": "Gamíton an buhay na patànaw",
        "tog-forceeditsummary": "Ibunyaw sako kun maglalaog sa blangkong kalanyang nin paghirá",
        "tog-watchlisthideown": "Tagóa an sakong mga pagliwat gikan sa bantay-listahan",
        "tog-watchlisthidebots": "Tagóa an bot na mga pagliwat gikan sa bantay-listahan",
        "searchbutton": "Maghanap",
        "go": "Dumani",
        "searcharticle": "Lakaw",
-       "history": "Uusipon kan pahina",
-       "history_short": "Uusipon",
+       "history": "Historiya nin pahina",
+       "history_short": "Historiya",
        "updatedmarker": "dinagdagan poon kan sakong huring pagbisita",
        "printableversion": "Nalilimbag na bersyon",
        "permalink": "Permanenteng kilyawan",
        "delete": "Puraon",
        "deletethispage": "Puraon ining pahina",
        "undeletethispage": "Balikon sa pagkapura ining pahina",
-       "undelete_short": "Bawion an {{PLURAL:$1|sarong pagliwat|$1 mga pagliwat}}",
-       "viewdeleted_short": "Hilingon {{PLURAL:$1|sarong pinara na pagliwat|$1 mga pinara na pagliwat}}",
+       "undelete_short": "Dae puraon an {{PLURAL:$1|sarong pagliwat|$1 mga pagliwat}}",
+       "viewdeleted_short": "Hilingon {{PLURAL:$1|sarong pinura na pagliwat|$1 mga pinura na pagliwat}}",
        "protect": "Protektari",
        "protect_change": "Ribayan",
        "protectthispage": "Protektaran ining pahina",
        "delete-warning-toobig": "Ining pahina igwa nin dakulaong historiya sa pagliwat, minasobrang $1 {{PLURAL:$1|rebisyon|mga rebisyon}}.\nAn pagpupura kaini mapuwedeng makapag-antala sa mga operasyon kan datos-sarayan kan {{SITENAME}}; magpadagos tabi na igwang pag-iingat.",
        "deleting-backlinks-warning": "'''Patanid:''' An ibang mga pahina nakatakod sa pahina na muya mong pagpupuraon.",
        "rollback": "Mga paghihira na pabalík",
-       "rollback_short": "pabalík",
        "rollbacklink": "pabalikwaton",
        "rollbacklinkcount": "ibalik $1 {{PLURAL:$1|pagliwat|mga pagliwat}}",
        "rollbacklinkcount-morethan": "ibalik an sobrang $1  {{PLURAL:$1|pagliwat|mga pagliwat}}",
        "import-logentry-interwiki": "na-transwiki an $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|rebisyon|mga rebisyon}} gikan sa $2",
        "javascripttest": "Testing sa JavaScript",
-       "javascripttest-title": "Pinapadalagan na $1 na mga pagtesting",
        "javascripttest-pagetext-noframework": "An pahinang ini reserbado para sa pagpapadalagan kan mga pagtesting sa JavaScript.",
        "javascripttest-pagetext-unknownframework": "Bakong bistadong modelo para sa pagtesting kan \"$1\".",
        "javascripttest-pagetext-frameworks": "Pakipili tabi nin saro sa minasunod na mga modelo sa pagtesting: $1",
        "javascripttest-pagetext-skins": "Magpili nin sarong kublit tanganing padalaganon an mga pagtesting sa:",
        "javascripttest-qunit-intro": "Hilngon [$1 dokumentasyon sa pagtesting] sa mediawiki.org.",
-       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit kuwarto nin pagtesting",
        "tooltip-pt-userpage": "An saimong paragamit na pahina",
        "tooltip-pt-anonuserpage": "An páhina nin páragamit para sa ip na pighihira mo bilang",
        "tooltip-pt-mytalk": "An saimong pahina sa olayan",
        "watchlisttools-edit": "Tanawon asin liwaton an bantay-listahan",
        "watchlisttools-raw": "Liwaton an hilaw na bantay-listahan",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|olay]])",
-       "unknown_extension_tag": "Bakong bistadong ekstensyon nin pagmarka \"$1\"",
        "duplicate-defaultsort": "'''Patanid tabi:''' An susing panugmad kan salansan na \"$2\" minasalimbaw sa dating susing panugmad kan salansan na \"$1\".",
        "version": "Bersyon",
        "version-extensions": "Instaladong mga ekstensyon",
        "specialpages-group-wiki": "Datos asin mga palindô",
        "specialpages-group-redirects": "Panukdo sa espesyal na mga pahina",
        "specialpages-group-spam": "Pan-spam na mga kagamitan",
+       "specialpages-group-developer": "Mga kagamitan nin Paragibo",
        "blankpage": "Blangkong pahina",
        "intentionallyblankpage": "Pigtuyong blangko an pahinang ini",
        "external_image_whitelist": "#Bayai ining linya eksaktong siring man sana kaini<pre>\n#Magkaag nin regular na mga panambitong parasa (idto sanang parte na minauyon sa tahaw kan //) na yaon sa ibaba\n#An mga ini paglalangkapon kaiba an mga kilyawan kan panluwas (hotlinked) na mga imahe\n#Idtong nagkaralangkap ipagpapahiling bilang mga imahe, o baya an sarong sugpon sana pasiring sa imahe an ipagpapahiling\n#Mga linya na nagpopoon sa # pagtatrataron bilang mga komento\n#Ini baya bakong sensitibo sa tipahan\n\n#Ikaag an gabos na parasang regex sa ibabaw kaining linya. Bayai ining linya eksaktong siring man sana kaini.</pre>",
index 3c787ed..9a1c621 100644 (file)
        "exception-nologin": "Вы не ўвайшлі ў сыстэму",
        "exception-nologin-text": "Неабходна ўвайсьці, каб атрымаць доступ да гэтай старонкі або дзеяньня.",
        "exception-nologin-text-manual": "Неабходна $1, каб мець доступ да гэтай старонкі або дзеяньня.",
-       "virus-badscanner": "Няслушная канфігурацыя: невядомы антывірусны сканэр: ''$1''",
+       "virus-badscanner": "Няслушная канфігурацыя: невядомы антывірусны сканэр: <em>$1</em>",
        "virus-scanfailed": "памылка сканаваньня (код $1)",
        "virus-unknownscanner": "невядомы антывірус:",
-       "logouttext": "'''Вы выйшлі з сыстэмы.'''\n\nНекаторыя старонкі могуць яшчэ паказваць, нібы вы ў сыстэме. Каб гэтага пазьбегнуць, трэба ачысьціць кэш браўзэра.",
+       "logouttext": "<strong>Вы выйшлі з сыстэмы.</strong>\n\nНекаторыя старонкі могуць яшчэ паказваць, нібы вы ў сыстэме. Каб гэтага пазьбегнуць, трэба ачысьціць кэш браўзэра.",
        "welcomeuser": "Вітаем, $1!",
-       "welcomecreation-msg": "Ð\92аÑ\88 Ñ\80аÑ\85Ñ\83нак Ð±Ñ\8bÑ\9e Ñ\81Ñ\82воÑ\80анÑ\8b.\nÐ\9dе Ð·Ð°Ð±Ñ\83дзÑ\8cÑ\86еÑ\81Ñ\8f Ð·Ñ\8cмÑ\8fнÑ\96Ñ\86Ñ\8c Ð\92аÑ\88Ñ\8bÑ\8f [[Special:Preferences|наладÑ\8b Ñ\9e {{GRAMMAR:меÑ\81нÑ\8b|{{SITENAME}}}}]].",
+       "welcomecreation-msg": "Ð\92аÑ\88 Ñ\80аÑ\85Ñ\83нак Ð±Ñ\8bÑ\9e Ñ\81Ñ\82воÑ\80анÑ\8b.\nÐ\92Ñ\8b Ð¼Ð¾Ð¶Ð°Ñ\86е Ð·Ñ\8cмÑ\8fнÑ\96Ñ\86Ñ\8c Ð\92аÑ\88Ñ\8bÑ\8f [[Special:Preferences|наладÑ\8b Ñ\9e {{GRAMMAR:меÑ\81нÑ\8b|{{SITENAME}}}}]], ÐºÐ°Ð»Ñ\96 Ð¿Ð°Ð¶Ð°Ð´Ð°ÐµÑ\86е.",
        "yourname": "Імя ўдзельніка:",
        "userlogin-yourname": "Імя ўдзельніка",
        "userlogin-yourname-ph": "Увядзіце вашае імя ўдзельніка",
        "prefs-personal": "Асабістыя зьвесткі",
        "prefs-rc": "Апошнія зьмены",
        "prefs-watchlist": "Сьпіс назіраньня",
+       "prefs-editwatchlist": "Рэдагаваць сьпіс назіраньня",
+       "prefs-editwatchlist-label": "Рэдагаваць запісы ў вашым сьпісе назіраньня:",
+       "prefs-editwatchlist-edit": "Прагляд і выдаленьне старонак зь сьпісу назіраньня",
+       "prefs-editwatchlist-raw": "Рэдагаваць нефарматаваны сьпіс назіраньня",
+       "prefs-editwatchlist-clear": "Ачысьціць ваш сьпіс назіраньня",
        "prefs-watchlist-days": "Колькасьць дзён для паказу ў сьпісе назіраньня:",
        "prefs-watchlist-days-max": "(максымальна $1 {{PLURAL:$1|дзень|дні|дзён}})",
        "prefs-watchlist-edits": "Колькасьць рэдагаваньняў для паказу ў пашыраным сьпісе назіраньня:",
        "uploaderror": "Памылка загрузкі",
        "upload-recreate-warning": "'''Увага: файл з такой назвай быў выдалены альбо перанесены.'''\n\nЖурнал выдаленьняў і пераносаў гэтай старонкі для зручнасьці пададзены тут:",
        "uploadtext": "Ужывайце форму ніжэй для загрузкі файлаў.\nКаб паглядзець ці адшукаць раней загружаныя файлы, глядзіце [[Special:FileList|сьпіс загружаных файлаў]], загрузкі таксама запісваюцца ў [[Special:Log/upload|журнал загрузак]], а выдаленьні — у [[Special:Log/delete|журнал выдаленьняў]].\n\nКаб улучыць файл у старонку, ужывайце адзін з наступных варыянтаў:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' для поўнай вэрсіі файла\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|Подпіс да выявы]]</nowiki></code>''' для выявы шырынёй 200 піксэляў у рамцы і тэкстам «Подпіс да выявы» ў якасьці подпісу\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' для простай спасылкі на файл безь яго адлюстраваньня.",
-       "upload-permitted": "Дазволеныя тыпы файлаў: $1.",
-       "upload-preferred": "Пажаданыя тыпы файлаў: $1.",
-       "upload-prohibited": "Забароненыя тыпы файлаў: $1.",
+       "upload-permitted": "{{PLURAL:$2|Дазволены тып|Дазволеныя тыпы}} файлаў: $1.",
+       "upload-preferred": "{{PLURAL:$2|Пажаданы тып|Пажаданыя тыпы}} файлаў: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Забаронены тып|Забароненыя тыпы}} файлаў: $1.",
        "uploadlogpage": "Журнал загрузак",
        "uploadlogpagetext": "Сьпіс апошніх загружаных файлаў.",
        "filename": "Назва файла",
index e969701..6d63a9c 100644 (file)
        "redirectedfrom": "(пренасочване от $1)",
        "redirectpagesub": "Пренасочваща страница",
        "redirectto": "Пренасочване към:",
-       "lastmodifiedat": "Последна промяна на страницата: $2, $1.",
+       "lastmodifiedat": "Последна промяна на страницата: в $2, на $1.",
        "viewcount": "Страницата е била преглеждана {{PLURAL:$1|един път|$1 пъти}}.",
        "protectedpage": "Защитена страница",
        "jumpto": "Направо към:",
        "mainpage-description": "Начална страница",
        "policy-url": "Project:Политика",
        "portal": "Портал за общността",
-       "portal-url": "Project:Портал",
+       "portal-url": "Проект:Портал на общността",
        "privacy": "Защита на личните данни",
-       "privacypage": "Project:Защита на личните данни",
+       "privacypage": "Проект:Защита на личните данни",
        "badaccess": "Грешка при достъп",
-       "badaccess-group0": "Нямате права да извършите исканото действие",
-       "badaccess-groups": "Исканото действие могат да изпълнят само потребители от {{PLURAL:$2|група|някоя от следните групи:}} $1.",
+       "badaccess-group0": "Нямате права да извършите исканото действие.",
+       "badaccess-groups": "Исканото действие могат да изпълнят само потребители от {{PLURAL:$2|групата|някоя от следните групи:}} $1.",
        "versionrequired": "Изисква се версия $1 на МедияУики",
-       "versionrequiredtext": "Ð\98зползванеÑ\82о Ð½Ð° Ñ\82ази Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¸Ð·Ð¸Ñ\81ква Ð²ÐµÑ\80Ñ\81иÑ\8f $1 Ð½Ð° Ñ\81оÑ\84Ñ\82Ñ\83еÑ\80а Ð\9cедиÑ\8fУики. Ð\92ижÑ\82е [[Special:Version|Ñ\82екÑ\83Ñ\89аÑ\82а Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½Ð° Ð²ÐµÑ\80Ñ\81иÑ\8f]].",
+       "versionrequiredtext": "Използването на тази страница изисква версия $1 на софтуера МедияУики. Вижте [[Special:Version|текущата версия]].",
        "ok": "Добре",
        "pagetitle": "$1 — {{SITENAME}}",
        "retrievedfrom": "Взето от „$1“.",
        "filerenameerror": "Файлът „$1“ не можа да бъде преименуван на „$2“.",
        "filedeleteerror": "Файлът „$1“ не можа да бъде изтрит.",
        "directorycreateerror": "Невъзможно е да бъде създадена директория „$1“.",
+       "directoryreadonlyerror": "Директория \"$1\" е само за четене.",
+       "directorynotreadableerror": "Директория \"$1\" не може да бъде четена.",
        "filenotfound": "Файлът „$1“ не беше намерен.",
        "unexpected": "Неочаквана стойност: „$1“=„$2“.",
        "formerror": "Възникна грешка при изпращане на формуляра",
-       "badarticleerror": "Действието не може да се изпълни върху страницата.",
+       "badarticleerror": "Действието не може да бъде изпълнено на тази страница.",
        "cannotdelete": "Указаната страница или файл \"$1\" не можа да бъде изтрит(а). Възможно е вече да е бил(а) изтрит(а) от някой друг.",
        "cannotdelete-title": "Страницата „$1“ не може да бъде изтрита",
        "delete-hook-aborted": "Изтриването беше прекъснато от кука.\nНе беше посочена причина за това.",
        "cascadeprotected": "Тази страница е защитена против редактиране, защото е включена в {{PLURAL:$1|следната страница, която от своя страна има|следните страници, които от своя страна имат}} каскадна защита:\n$2",
        "namespaceprotected": "Нямате права за редактиране на страници в именно пространство '''$1'''.",
        "customcssprotected": "Нямате права за редактиране на тази CSS страница, защото тя съдържа чужди потребителски настройки.",
-       "customjsprotected": "Нямате права за редактиране на тази Джаваскрипт страница, защото тя съдържа чужди потребителски настройки.",
+       "customjsprotected": "Нямате права за редактиране на тази JavaScript страница, защото тя съдържа чужди потребителски настройки.",
        "mycustomcssprotected": "Нямате права за редактиране на тази CSS страница.",
        "mycustomjsprotected": "Нямате права за редактиране на тази JavaScript страница.",
        "myprivateinfoprotected": "Нямате права да редактирате личната си информация.",
        "filereadonlyerror": "Файлът „$1“ не може да бъде променен, тъй като файловото хранилище „$2“ е в режим само за четене.\n\nАдминистраторът, който го е заключил, е посочил следната причина: „$3“.",
        "invalidtitle-knownnamespace": "Невалидно заглавие с именно пространство $2\" и текст \"$3\"",
        "invalidtitle-unknownnamespace": "Невалидно заглавие с неразпознато именно пространство номер $1 и текст „$2“",
-       "exception-nologin": "Не сте влезли",
+       "exception-nologin": "Не сте влезли в системата",
        "exception-nologin-text": "За достъп до избраното действие или страница е необходимо влизане в системата.",
        "exception-nologin-text-manual": "За достъп до избраното действие или страница е необходимо $1 в системата.",
        "virus-badscanner": "Лоша конфигурация: непознат скенер за вируси: ''$1''",
        "userloginnocreate": "Влизане",
        "logout": "Излизане",
        "userlogout": "Излизане",
-       "notloggedin": "Не сте влезли",
+       "notloggedin": "Не сте влезли в системата",
        "userlogin-noaccount": "Нямате сметка?",
        "userlogin-joinproject": "Присъединяване към {{SITENAME}}",
        "nologin": "Нямате потребителско име? $1.",
        "nosuchuser": "Не съществува потребител с име „$1“.\nПотребителските имена са чувствителни на малки и главни букви.\nПроверете изписването или [[Special:UserLogin/signup|създайте нова сметка]].",
        "nosuchusershort": "Не съществува потребител с името „$1“. Проверете изписването.",
        "nouserspecified": "Необходимо е да се посочи потребителско име.",
-       "login-userblocked": "Този Ð¿Ð¾Ñ\82Ñ\80ебиÑ\82ел Ðµ Ð±Ð»Ð¾ÐºÐ¸Ñ\80ан. Ð\9dе Ñ\81е Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñ\8fва Ð²Ð»Ð¸Ð·Ð°Ð½Ðµ.",
+       "login-userblocked": "Този Ð¿Ð¾Ñ\82Ñ\80ебиÑ\82ел Ðµ Ð±Ð»Ð¾ÐºÐ¸Ñ\80ан. Ð\92лизанеÑ\82о Ð² Ñ\81иÑ\81Ñ\82емаÑ\82а Ð½Ðµ Ðµ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾.",
        "wrongpassword": "Въведената парола е невалидна. Опитайте отново.",
        "wrongpasswordempty": "Въведената парола е празна. Опитайте отново.",
        "passwordtooshort": "Необходимо е паролата да съдържа поне {{PLURAL:$1|1 знак|$1 знака}}.",
        "noemail": "Няма записана електронна поща за потребителя „$1“.",
        "noemailcreate": "Необходимо е да въведете валиден адрес за е-поща",
        "passwordsent": "Нова парола беше изпратена на електронната поща на „$1“.\nСлед като я получите, влезте отново.",
-       "blocked-mailpassword": "РедакÑ\82иÑ\80анеÑ\82о Ð¾Ñ\82 Ð²Ð°Ñ\88иÑ\8f IP-адÑ\80еÑ\81 Ðµ Ð·Ð°Ð±Ñ\80анено, Ð·Ð°Ñ\82ова Ð½Ðµ Ð²Ð¸ Ðµ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾ Ð´Ð° Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ\82е Ð²Ñ\8aзможноÑ\81Ñ\82Ñ\82а Ð·Ð° Ð²Ñ\8aзÑ\81Ñ\82ановÑ\8fване Ð½Ð° Ð·Ð°Ð³Ñ\83бена Ð¿Ð°Ñ\80ола.",
+       "blocked-mailpassword": "Редактирането от вашия IP-адрес е забранено, затова не ви е позволено да използвате възможността за възстановяване на парола.",
        "eauthentsent": "Писмото за потвърждение е изпратено на посочения адрес. В него са описани действията, които трябва да се извършат, за да потвърдите, че този адрес за електронна поща действително е ваш.",
        "throttled-mailpassword": "Функцията за напомняне на паролата е използвана през {{PLURAL:$1|последния един час|последните $1 часа}}.\nЗа предотвратяване на злоупотреби е разрешено да се изпраща не повече от едно напомняне в рамките на {{PLURAL:$1|един час|$1 часа}}.",
        "mailerror": "Грешка при изпращане на писмо: $1",
        "resetpass_header": "Промяна на парола",
        "oldpassword": "Стара парола:",
        "newpassword": "Нова парола:",
-       "retypenew": "Ð\9dова Ð¿Ð°Ñ\80ола Ð¿Ð¾Ð²Ñ\82оÑ\80но:",
+       "retypenew": "Ð\9fовÑ\82оÑ\80и Ð½Ð¾Ð²Ð°Ñ\82а Ð¿Ð°Ñ\80ола:",
        "resetpass_submit": "Избиране на парола и влизане",
        "changepassword-success": "Паролата ви беше променена успешно!",
        "changepassword-throttled": "Направили сте твърде много опити да въведете паролата за тази сметка.\nНеобходимо е да изчакате $1 преди да опитате отново.",
        "passwordreset-text-many": "{{PLURAL:$1|За получаване на временна парола по електронна поща е необходимо да попълните едно от полетата.}}",
        "passwordreset-legend": "Възстановяване на парола",
        "passwordreset-disabled": "Възстановяването на паролата е изключено в това уики.",
-       "passwordreset-emaildisabled": "Функционалността за електронна поща е изключена в това уики.",
+       "passwordreset-emaildisabled": "Функцията за електронна поща е изключена в това уики.",
        "passwordreset-username": "Потребителско име:",
        "passwordreset-domain": "Домейн:",
        "passwordreset-capture": "Преглеждане на електронното писмо?",
        "passwordreset-emailtext-ip": "Някой (вероятно вие, от IP адрес $1) поиска възстановяване на паролата за сметката в {{SITENAME}} ($4). За {{PLURAL:$3|следната сметка|следните сметки}}\nе посочен този адрес за електронна поща:\n\n$2\n\n{{PLURAL:$3|Тази временна парола ще бъде активна|Тези временни пароли ще бъдат активни}} {{PLURAL:$5|един ден|$5 дни}}.\nСега би трябвало да влезете в системата и да си изберете нова парола. Ако заявката е направена от друг или пък сте си спомнили паролата и не искате да я променяте, можете да пренебрегнете това съобщение и да продължите да използвате старата си парола.",
        "passwordreset-emailtext-user": "Потребител $1 от {{SITENAME}} поиска възстановяване на паролата за сметката в {{SITENAME}}\n($4). За {{PLURAL:$3|следната сметка|следните сметки}} е посочен този адрес за електронна поща:\n\n$2\n\n{{PLURAL:$3|Тази временна парола ще бъде активна|Тези временни пароли ще бъдат активни}} {{PLURAL:$5|един ден|$5 дни}}.\nСега би трябвало да влезете в системата и да изберете нова парола. Ако заявката е направена \nот друг или пък сте си спомнили паролата и не искате да я променяте, можете да пренебрегнете \nтова съобщение и да продължите да използвате старата си парола.",
        "passwordreset-emailelement": "Потребителско име: $1\nВременна парола: $2",
-       "passwordreset-emailsent": "На електронната поща беше испратено писмо за възстановяване на паролата.",
+       "passwordreset-emailsent": "На електронната поща беше изпратено писмо за възстановяване на паролата.",
        "passwordreset-emailsent-capture": "По-долу е показано електронното писмо за възстановяване на паролата, което беше изпратено.",
        "passwordreset-emailerror-capture": "По-долу е показано създадено електронно писмо за възстановяване на паролата, което не беше изпратено на {{GENDER:$2|потребителя}}: $1",
        "changeemail": "Промяна на адреса за е-поща",
        "protectedpagewarning": "'''Внимание: Страницата е защитена и само потребители със статут на администратори могат да я редактират.'''\nЗа справка по-долу е показан последният запис от дневниците.",
        "semiprotectedpagewarning": "'''Забележка:''' Тази страница е защитена и само регистрирани потребители могат да я редактират.\nЗа справка по-долу е показан последният запис от дневниците.",
        "cascadeprotectedwarning": "'''Внимание:''' Страницата е защитена, като само потребители с администраторски права могат да я редактират. Тя е включена в {{PLURAL:$1|следната страница|следните страници}} с каскадна защита:",
-       "titleprotectedwarning": "'''Ð\92нимание: Ð¢Ð°Ð·Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86а Ðµ Ð·Ð°Ñ\89иÑ\82ена Ð¸ Ñ\81а Ð½ÐµÐ¾Ð±Ñ\85одими [[Special:ListGroupRights|Ñ\81пеÑ\86иално права]], за да бъде създадена.'''\nЗа справка по-долу е показан последният запис от дневниците.",
+       "titleprotectedwarning": "'''Ð\92нимание: Ð¢Ð°Ð·Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86а Ðµ Ð·Ð°Ñ\89иÑ\82ена Ð¸ Ñ\81а Ð½ÐµÐ¾Ð±Ñ\85одими [[Special:ListGroupRights|Ñ\81пеÑ\86иални права]], за да бъде създадена.'''\nЗа справка по-долу е показан последният запис от дневниците.",
        "templatesused": "{{PLURAL:$1|Шаблон, използван|Шаблони, използвани}} на страницата:",
        "templatesusedpreview": "{{PLURAL:$1|Шаблон, използван|Шаблони, използвани}} в предварителния преглед:",
        "templatesusedsection": "{{PLURAL:$1|Шаблон, използван|Шаблони, използвани}} в този раздел:",
        "log-fulllog": "Преглеждане на пълния дневник",
        "edit-hook-aborted": "Редакцията беше прекъсната от кука.\nНе беше посочена причина за това.",
        "edit-gone-missing": "Страницата не можа да се обнови.\nВероятно междувременно е била изтрита.",
-       "edit-conflict": "РедакÑ\86ионен ÐºÐ¾Ð½Ñ\84ликÑ\82.",
+       "edit-conflict": "РазлиÑ\87на Ñ\80едакÑ\86иÑ\8f",
        "edit-no-change": "Редакцията ви беше пренебрегната, защото не съдържа промени по текста.",
        "postedit-confirmation-created": "Страницата е създадена.",
        "postedit-confirmation-restored": "Страницата е възстановена.",
        "content-model-text": "обикновен текст",
        "content-model-javascript": "Джаваскрипт",
        "content-model-css": "CSS",
-       "duplicate-args-category": "Страници с еднакви шаблонни параметри",
-       "duplicate-args-category-desc": "Страницата съдържа повиквания за шаблон, които използват повтарящи се параметри, като например <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
+       "duplicate-args-category": "Страници, които използват повтарящи се аргументи в повикванията на шаблона",
+       "duplicate-args-category-desc": "Страницата съдържа шаблонни повиквания, които използват повтарящи се аргументи, като например <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Внимание: Тази страница прекалено много пъти използва ресурсоемки парсерни функции.\n\nВ момента има {{PLURAL:$1|$1 обръщение|$1 обръщения}} към такива функции, а трябва да {{PLURAL:$1|е|са}} по-малко от $2.",
        "expensive-parserfunction-category": "Страници, които прекалено много пъти използват ресурсоемки парсерни функции",
        "post-expand-template-inclusion-warning": "Внимание: Размерът за включване на този шаблон е твърде голям.\nНякои шаблони няма да бъдат включени.",
        "post-expand-template-inclusion-category": "Страници, съдържащи шаблони с превишени размери на включеното съдържание",
-       "post-expand-template-argument-warning": "Ð\92нимание: Ð¢Ð°Ð·Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\81Ñ\8aдÑ\8aÑ\80жа Ð¿Ð¾Ð½Ðµ ÐµÐ´Ð¸Ð½ Ð¿Ð°Ñ\80амеÑ\82Ñ\8aÑ\80 Ð½Ð° Ñ\88аблон, ÐºÐ¾Ð¹Ñ\82о Ð¸Ð¼Ð° Ñ\82вÑ\8aÑ\80де Ð³Ð¾Ð»Ñ\8fм Ñ\80азмеÑ\80 Ð¿Ñ\80и Ñ\80азгÑ\80Ñ\8aÑ\89ане. Ð¢ÐµÐ·Ð¸ Ð¿Ð°Ñ\80амеÑ\82Ñ\80и бяха пропуснати.",
-       "post-expand-template-argument-category": "СÑ\82Ñ\80аниÑ\86и, Ñ\81Ñ\8aдÑ\8aÑ\80жаÑ\89и Ñ\88аблони Ñ\81 Ð¿Ñ\80опÑ\83Ñ\81наÑ\82и Ð¿Ð°Ñ\80амеÑ\82Ñ\80и",
+       "post-expand-template-argument-warning": "Ð\92нимание: Ð¢Ð°Ð·Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\81Ñ\8aдÑ\8aÑ\80жа Ð¿Ð¾Ð½Ðµ ÐµÐ´Ð¸Ð½ Ð°Ñ\80гÑ\83менÑ\82 Ð½Ð° Ñ\88аблон, ÐºÐ¾Ð¹Ñ\82о Ð¸Ð¼Ð° Ñ\82вÑ\8aÑ\80де Ð³Ð¾Ð»Ñ\8fм Ñ\80азмеÑ\80 Ð¿Ñ\80и Ñ\80азгÑ\80Ñ\8aÑ\89ане. Ð¢ÐµÐ·Ð¸ Ð°Ñ\80гÑ\83менÑ\82и бяха пропуснати.",
+       "post-expand-template-argument-category": "СÑ\82Ñ\80аниÑ\86и, Ñ\81Ñ\8aдÑ\8aÑ\80жаÑ\89и Ñ\88аблони Ñ\81 Ð¿Ñ\80опÑ\83Ñ\81наÑ\82и Ð°Ñ\80гÑ\83менÑ\82и",
        "parser-template-loop-warning": "Открито зацикляне на шаблон: [[$1]]",
        "parser-template-recursion-depth-warning": "Надвишен лимит на дълбочината при шаблонна рекурсия ($1)",
        "language-converter-depth-warning": "Надвишени са възможностите за автоматичен превод ($1)",
        "parser-unstrip-recursion-limit": "''Unstrip'' лимита на рекурсия превишава ($1)",
        "undo-success": "Редакцията може да бъде върната. Прегледайте долното сравнение и се уверете, че наистина искате да го направите. След това съхранете страницата, за да извършите връщането.",
        "undo-failure": "Редакцията не може да бъде върната поради конфликтни междинни редакции.",
-       "undo-norev": "Редакцията не може да бъде върната тъй като не съществува или е била изтрита.",
+       "undo-norev": "Редакцията не може да бъде върната, тъй като не съществува или е била изтрита.",
        "undo-summary": "Премахната редакция $1 на [[Special:Contributions/$2|$2]] ([[User talk:$2|беседа]])",
        "cantcreateaccounttitle": "Невъзможно е да бъде създадена потребителска сметка.",
        "cantcreateaccount-text": "[[User:$3|Потребител:$3]] е блокирал(а) създаването на сметки от този IP-адрес ('''$1''').\n\nПричината, изложена от $3, е ''$2''",
        "currentrev-asof": "Текуща версия към $1",
        "revisionasof": "Версия от $1",
        "revision-info": "Версия от $1 на {{GENDER:$6|$2}}$7",
-       "previousrevision": "←По-стара версия",
-       "nextrevision": "По-нова версия→",
-       "currentrevisionlink": "преглед на текущата версия",
+       "previousrevision": "← По-стара версия",
+       "nextrevision": "По-нова версия →",
+       "currentrevisionlink": "Ð\9fреглед на текущата версия",
        "cur": "тек",
        "next": "след",
        "last": "пред",
        "revdelete-failure": "'''Видимостта на редакцията не може да бъде обновена:'''\n$1",
        "logdelete-success": "Видимостта на събитието беше променена.",
        "logdelete-failure": "'''Видимостта на дневника не може да бъде променяна:'''\n$1",
-       "revdel-restore": "Ð\9fромяна на видимостта",
+       "revdel-restore": "промяна на видимостта",
        "pagehist": "История на страницата",
        "deletedhist": "Изтрита история",
        "revdelete-hide-current": "Грешка при скриване на елемента от $2, $1: представлява текущата версия.\nТя не може да бъде скрита.",
        "preferences": "Настройки",
        "mypreferences": "Настройки",
        "prefs-edits": "Брой редакции:",
-       "prefsnologintext2": "За да промените настройките си е необходимо да влезете в систеата.",
+       "prefsnologintext2": "Ð\97а Ð´Ð° Ð¿Ñ\80омениÑ\82е Ð½Ð°Ñ\81Ñ\82Ñ\80ойкиÑ\82е Ñ\81и Ðµ Ð½ÐµÐ¾Ð±Ñ\85одимо Ð´Ð° Ð²Ð»ÐµÐ·ÐµÑ\82е Ð² Ñ\81иÑ\81Ñ\82емаÑ\82а.",
        "prefs-skin": "Облик",
-       "skin-preview": "предварителен преглед",
+       "skin-preview": "Ð\9fредварителен преглед",
        "datedefault": "Без предпочитание",
        "prefs-labs": "Функционалности на Labs",
        "prefs-user-pages": "Потребителски страници",
        "grouppage-suppress": "{{ns:project}}:Ревизори",
        "right-read": "четене на страници",
        "right-edit": "редактиране на страници",
-       "right-createpage": "създаване на страници (които не са беседи)",
-       "right-createtalk": "създаване на дискусионни страници",
-       "right-createaccount": "създаване на нови потребителски сметки",
-       "right-minoredit": "отбелязване като малка промяна",
-       "right-move": "преместване на страници",
-       "right-move-subpages": "преместване на страници и техните подстраници",
+       "right-createpage": "Създаване на страници (които не са беседи)",
+       "right-createtalk": "Създаване на дискусионни страници",
+       "right-createaccount": "Създаване на нови потребителски сметки",
+       "right-minoredit": "Ð\9eтбелязване като малка промяна",
+       "right-move": "Ð\9fреместване на страници",
+       "right-move-subpages": "Ð\9fреместване на страници и техните подстраници",
        "right-move-rootuserpages": "Преместване на основни потребителски страници",
        "right-move-categorypages": "Преместване на категорийни страници",
        "right-movefile": "Преместване на файлове",
        "right-suppressredirect": "без създаване на пренасочване от старото име при преместване на страница",
-       "right-upload": "качване на файлове",
-       "right-reupload": "презаписване на съществуващ файл",
+       "right-upload": "Ð\9aачване на файлове",
+       "right-reupload": "Ð\9fрезаписване на съществуващ файл",
        "right-reupload-own": "Презаписване на съществуващ файл, качен от същия потребител",
        "right-reupload-shared": "Предефиниране на едноименните файлове от общото мултимедийно хранилище с локални",
        "right-upload_by_url": "качване на файл от URL адрес",
        "recentchanges-feed-description": "Проследяване на последните промени в {{SITENAME}}.",
        "recentchanges-label-newpage": "Нова страница",
        "recentchanges-label-minor": "Това е малка промяна",
-       "recentchanges-label-bot": "Тази редакция е извършена от робот",
+       "recentchanges-label-bot": "Тази редакция е извършена от бот",
        "recentchanges-label-unpatrolled": "Тази редакция все още не е проверена",
        "recentchanges-label-plusminus": "Размерът на страницата е променен с този брой байтове",
        "recentchanges-legend-heading": "'''Легенда:'''",
diff --git a/languages/i18n/bgn.json b/languages/i18n/bgn.json
new file mode 100644 (file)
index 0000000..d2b0944
--- /dev/null
@@ -0,0 +1,1014 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Baloch Afghanistan"
+               ]
+       },
+       "tog-underline": "لینکانی جهلگا خط کشیتین",
+       "tog-hideminor": "کمین تغیرات شه آخیرین تغیراتانی لڑلیستا چیهر داته بئینت",
+       "tog-hidepatrolled": "گشت وارته گین ایڈ\tیٹان شه آخیرین ایڈ\tیٹانی لڑلیستا چیهر داته بئینت",
+       "tog-newpageshidepatrolled": "گشت وارته ئین تاکدیمان شه نی نوکین تاکدیمانی لڑ لیستا زیان بیئنت",
+       "tog-extendwatchlist": "پراخ کورتین واچلیستی لڑلیست په موچین تغیراتان،نه فقط آخرینان",
+       "tog-usenewrc": "گروپ بندی تغیراتانئ بی اساسئ تاکدیمانئ اخیر ئین تغیران و واچلیستئ لڑ لیستا",
+       "tog-numberheadings": "ئنوانانئ اتوماتیکین شماره گذاری",
+       "tog-showtoolbar": "نشان داتین ایڈیٹی نوارئ",
+       "tog-editondblclick": "تاکدیمانی ایڈیٹ کورتین گو دو کلیک ئا",
+       "tog-editsectiononrightclick": "پئال کورتین بخشانی ایڈیٹی گو راست کلیکا بی ئنوانی سرا",
+       "tog-watchcreations": "تاکدیمان که من جوڑ ئه کنین یا فایلان که بُرز ( ڈ\tانلوڈ\t) ئه کنین بی نئ واچلیست ئا اضافه بیئنت",
+       "tog-watchdefault": "تاکدیمان و فایلان که من ایڈ\tیٹ ئه کنین بی نئ واچلیست ئا اضافه بیئنت",
+       "tog-watchmoves": "تاکدیمان و فایلان که من جابجا ئه کنین بی نئ واچلیست ئا اضافه بیئنت",
+       "tog-watchdeletion": "تاکدیمان و فایلان که من ڈ\tیلیٹ ئه کنین بی نئ واچلیست ئا اضافه بیئنت",
+       "tog-watchrollback": "تاکدیمان  که من بیر گردینته ئون بی نئ واچلیست ئا اضافه بیئنت",
+       "tog-minordefault": "مارک یا ئلامت جتین موچین ایڈ\tیٹانی بی جزئی رقما",
+       "tog-previewontop": "پیش نمایش دیم شه ایڈ\tیٹ باکس ئه نشان داته بیئت",
+       "tog-previewonfirst": "پیش نمایش اولین ایڈ\tیٹئ وختا  نشان داته بیئت",
+       "tog-enotifwatchlistpages": "اگه شه نئ واچلیستا گوجام تاکدیم یا فایل ایڈ\tیٹ ئه بیئت په من ایمیل دیم داته بیئت",
+       "tog-enotifusertalkpages": "اگه شه نئ کار زوروکین تاکدیم ( یوزیر تاک) ایڈ\tیٹ ئه بیئت په من ایمیل دیم داته بیئت",
+       "tog-enotifminoredits": "په گوُنڈین ایڈ\tیٹان  تاکدیمانی یا فایلان خاتیرا په من ایمیل دیم داته بیئت",
+       "tog-enotifrevealaddr": "نی ایمیل ادرس بی ایمیلئ ناٹیپیشن ئانی تا نشان داته بیئت",
+       "tog-shownumberswatching": "دیستوکین کارزورکانی اندازه نشان داته بیئت",
+       "tog-oldsig": "انونین امضاء:",
+       "tog-fancysig": "امضا باید بی  ویکی‌متنئ رکما بی نظر گیپته بیئت (بدون شه اتوماتیکین لینکی درج کورتینا)",
+       "tog-uselivepreview": "استفاده شه زنده ئین پیش نمایش ئا",
+       "tog-forceeditsummary": "وختی که من ئنوانئ خلاصه ئا نیوشته نه کورته اون په گوشته بیئت",
+       "tog-watchlisthideown": "نی ایڈیٹ شه واچلیستی تا چیهر بیئنت",
+       "tog-watchlisthidebots": "رباتئ ایڈیٹ شه واچلیستی تا چیهر بیئنت",
+       "tog-watchlisthideminor": "کم ئین ایڈیٹ شه واچلیستی تا چیهر بیئنت",
+       "tog-watchlisthidepatrolled": "گشت وارته ئین ایڈیٹ شه واچلیستی تا چیهر بیئنت",
+       "tog-diffonly": "جهلگی تاکدیمی محتوا تفاوت نشان داته مه بئینت",
+       "tog-showhiddencats": "چیهرین تهرئانه نشان دهی",
+       "tog-norollbackdiff": "بئد شه بیئرگردینتینا تفاوت نشان داته مه بیئت",
+       "tog-useeditwarning": "در بوتینی وختا شه ایڈ\tیٹی دیما اگر نی ایڈ\tیٹ تا هنگه ذخیره نه بوتتن ، په من هشدار دیم داته بیئت",
+       "tog-prefershttps": "بی داخل بوتینی وختا باید موچین وختا شه امنین اتصال ئا استفاده بیئت",
+       "underline-always": "موچین وختا",
+       "underline-never": "هیچ وخت",
+       "underline-default": "پیش فرضین پوسته یا بروزیر",
+       "editfont-style": "ایڈ\tیٹی جئبه ئی قلمی سبک:",
+       "editfont-default": "پیش فرضین بروزیر",
+       "editfont-monospace": "گو ثابیتین اندزه ئی قلم ئا",
+       "editfont-sansserif": "قلم بی شه گوشه ئا",
+       "editfont-serif": "گوشه دارین قلم",
+       "sunday": "یکشمی",
+       "monday": "دوشمی",
+       "tuesday": "سه شمی",
+       "wednesday": "چار شمی",
+       "thursday": "پنچشمی",
+       "friday": "جوما",
+       "saturday": "شمی",
+       "sun": "یکشمی",
+       "mon": "دوشمی",
+       "tue": "سه شمی",
+       "wed": "چار شمی",
+       "thu": "پنچشمی",
+       "fri": "جوما",
+       "sat": "شمی",
+       "january": "جنوری",
+       "february": "فیبروری",
+       "march": "مارچ",
+       "april": "اپریل",
+       "may_long": "می",
+       "june": "جون",
+       "july": "جولای",
+       "august": "اگوست",
+       "september": "سیپٹمبر",
+       "october": "اکتوبر",
+       "november": "نوامبر",
+       "december": "ڈ\tسمبر",
+       "january-gen": "جنوری",
+       "february-gen": "فیبروری",
+       "march-gen": "مارچ",
+       "april-gen": "اپریل",
+       "may-gen": "می",
+       "june-gen": "جون",
+       "july-gen": "جولای",
+       "august-gen": "اگوست",
+       "september-gen": "سیپٹمبر",
+       "october-gen": "اکتوبر",
+       "november-gen": "نوامبر",
+       "december-gen": "ڈ\tسمبر",
+       "jan": "جنوری",
+       "feb": "فیبروری",
+       "mar": "مارچ",
+       "apr": "اپریل",
+       "may": "می",
+       "jun": "جون",
+       "jul": "جولای",
+       "aug": "اگوست",
+       "sep": "سیپٹمبر",
+       "oct": "اکتوبر",
+       "nov": "نوامبر",
+       "dec": "ڈ\tسمبر",
+       "january-date": "$1 جنوری",
+       "february-date": "$1 فیبروری",
+       "march-date": "$1 مارچ",
+       "april-date": "$1 اپریل",
+       "may-date": "$1 می",
+       "june-date": "$1 جون",
+       "july-date": "$1 جولای",
+       "august-date": "$1 اگوست",
+       "september-date": "$1 سیپٹ\tمبر",
+       "october-date": "$1 اکتوبر",
+       "november-date": "$1 نوامبر",
+       "december-date": "$1 ڈ\tسمبر",
+       "pagecategories": "{{PLURAL:$1|تهر|تهرئان}}",
+       "category_header": "تهرِ تاکدیمان «$1»",
+       "subcategories": "گونڈ\t تهرئان",
+       "category-media-header": "میڈ\tیا بی تهری تا «$1»",
+       "category-empty": "<em>ای تهر بی انون وختا هیچ تاکدیمئ یا میڈ\tیاین دیمی نه اینت.</em>",
+       "hidden-categories": "{{PLURAL:$1|چیهرین تهر|چیهرین تهرئان}}",
+       "hidden-category-category": "چیهرین تهرئان",
+       "category-subcat-count": "{{PLURAL:$2|ای تهر تانا جئلگین مطالبانا داریت.|{{PLURAL:$1|ای گوُنڈ\t تهر|ای $1 گوُنڈ\t تهر}} بی ای تهر ئی تا {{PLURAL:$1|داریت|دارنت}}؛ بی ای تهر تا مجموئان  $2 گوُنڈ\t تهر انت.}}",
+       "category-subcat-count-limited": "ای تهر شامل شه جهلگین{{PLURAL:$1|یک|$1}} گونڈ\tتهر ئه انت .",
+       "category-article-count": "{{PLURAL:$2|ای تهر فقط جهلگی همی یکین تاکدیمانا داریت.|{{PLURAL:$1|ای تاکدیم|ای $1 تاکدیم}} بی ای تهرئ تا قرار {{PLURAL:$1|داریت|دارنت}}؛ ای تهر موچاموچ $2 تاکدیم داریت.}}",
+       "category-article-count-limited": "{{PLURAL:$1|جهلگی تاکدیم|$1 جهلگی تاکدیمان}} بی انونین تهرئ تا قرار دارنت.",
+       "category-file-count": "{{PLURAL:$2|ای تهر تانا ای جهلگین فایلا داریت .|{{PLURAL:$1|ای فایل|ای $1 فایل}} بی ای تهرئ تا جاه {{PLURAL:$1|داریت|دارنت}}؛ ای تهر تا موچاموچ $2 فایل انت.}}",
+       "category-file-count-limited": "{{PLURAL:$1|جهلگین فایل|$1 جهلگین فایلان}} بی انونین تهرئ تا قرار دارنت.",
+       "listingcontinuesabbrev": "(ادامه)",
+       "index-category": "آ تاکدیمان که دیسته بوته گنت",
+       "noindex-category": "آ تاکدیمان که دیسته نه بوته گنت",
+       "broken-file-category": "تاکدیمان گو خرابین لینکان بی فایلا",
+       "about": "بی باره ها",
+       "article": "محتوائین تاکدیم",
+       "newwindow": "(نوکین دَروازگی تا پاچ بیئت)",
+       "cancel": "کنسیل",
+       "moredotdotdot": "گیشتیر...",
+       "morenotlisted": "ای لڑ\t لیست کامل نه اینت.",
+       "mypage": "تاکدیم",
+       "mytalk": "گپ",
+       "anontalk": "ای آی پی نشانی ئی باره ئا گپ",
+       "navigation": "ناوبری",
+       "and": "&#32;و",
+       "qbfind": "ودی کورتین",
+       "qbbrowse": "مرور",
+       "qbedit": "ایڈیٹ",
+       "qbpageoptions": "ای تاکدیم",
+       "qbmyoptions": "نئ تاکدیمان",
+       "faq": "متداولین سوالان",
+       "faqpage": "Project:متداولین سوالان",
+       "actions": "عملکردهان",
+       "namespaces": "نامانی فضاهان",
+       "variants": "لهجه ئان",
+       "navigation-heading": "ناوبری مینو",
+       "errorpagetitle": "خطا",
+       "returnto": "بیئرگشت بئ $1.",
+       "tagline": "شه {{SITENAME}}",
+       "help": "کومک",
+       "search": "گشتین",
+       "searchbutton": "گشتین",
+       "go": "برا",
+       "searcharticle": "برا",
+       "history": "تاکدیمی تاریخچه",
+       "history_short": "تاریخچه",
+       "updatedmarker": "نئ آخرین آپڈیٹا نشان داتین",
+       "printableversion": "چاپ وڑی ویرژن",
+       "permalink": "ثابتین لبنک",
+       "print": "چاپ",
+       "view": "نمایش",
+       "view-foreign": "دیستین بی $1",
+       "edit": "ایڈیٹ",
+       "edit-local": "محل و جای توضیئانی ایڈ\tیٹ کورتین",
+       "create": "جوڑ\t کورتین",
+       "create-local": "محل و جای توضیئانی اضافه کورتین",
+       "editthispage": "ایڈ\tیٹ کورتین ای تاکدیمئ",
+       "create-this-page": "جوڑ کورتین ای تاکدیمئ",
+       "delete": "پاک کورتین",
+       "deletethispage": "پاک کورتین ای تاکدیمئ",
+       "undeletethispage": "بی جاه آورتین ای تاکدیمئ",
+       "undelete_short": "بی جاه آورتین {{PLURAL:$1|یک ایڈیٹ|$1 ایڈیٹ}}",
+       "viewdeleted_short": "نشان داتین {{PLURAL:$1|یکین ڈ\tیلیٹ بوتگین ایڈ\tیٹئ |$1 ڈ\tیلیٹ بوتگین ایڈ\tیٹئ}}",
+       "protect": "ساتیتئن",
+       "protect_change": "تغیر",
+       "protectthispage": "ای تاکدیمئ قُلپ کورتین",
+       "unprotect": "قُلپئ ٹگل داتین",
+       "unprotectthispage": "ای تاکدیمی قُلپئ ٹگل داتین",
+       "newpage": "نوکین تاکدیم",
+       "talkpage": "ای تاکدیم باره ئا هبر و گپ",
+       "talkpagelinktext": "گپ",
+       "specialpage": "خاصین تاکدیم",
+       "personaltools": "شخصین وسایل",
+       "articlepage": "تاکدیمی محتوائانی نمایش",
+       "talk": "هبر و گپ",
+       "views": "دیستینین",
+       "toolbox": "وسایللان",
+       "userpage": "کارزوروکین تاکدیمی دیستین",
+       "projectpage": "پروژه ئی تاکدیمی دیستین",
+       "imagepage": "فایلی تاکدیما نشان داتین",
+       "mediawikipage": "پیامی تاکدیما نشان داتین",
+       "templatepage": "تراشوانئ تاکدیما نشان داتین",
+       "viewhelppage": "کومکی تاکدیما نشان داتین",
+       "categorypage": "دیستین تهری تاکدیمی",
+       "viewtalkpage": "گپ تاکدیمی نشان داتین",
+       "otherlanguages": "بی دیگه زبانانی تا",
+       "redirectedfrom": "(تغییرمسیر داتین شه $1)",
+       "redirectpagesub": "تاکدیمی تغییرمسیر داتین",
+       "redirectto": "تغییر مسیر بی:",
+       "lastmodifiedat": "ای تاکدیم آخرین‌ وارا بی $1 سائت $2 تا تغییر بوته.",
+       "viewcount": "شه ای تاکدیما کسی {{PLURAL:$1|یکوار|$1ور}} دیدن کورته.",
+       "protectedpage": "قُلپ بوتگین تاکدیم",
+       "jumpto": "جوپ کورتین بی:",
+       "jumptonavigation": "ناوبری",
+       "jumptosearch": "گشتین",
+       "generic-pool-error": "متاسفانه موچین سرویس بی انونین وختا باز مشغول انت.\nبازین شه کار گیروکان لوتنت که ای تاکدیما بگیندنت. \nمهربانی بکنیت دیم شه ایشی که پدا په ای تاکدیمی دیستینا کوشش بکنیت یک کمی صبر بکنیت.",
+       "pool-timeout": "تمام بوتین انتظارمهلتئ په قُلپ کورتینئ خاتیرا",
+       "pool-queuefull": "مخزن ئی صف پر اینت",
+       "pool-errorunknown": "ناشناخته ئین خطا",
+       "pool-servererror": "پول سنتر سرویس بی دسترس ئا نه اینت ( $1 ).",
+       "poolcounter-usage-error": "خطا استفاده شه: $1",
+       "aboutsite": "بی بارها {{SITENAME}}",
+       "aboutpage": "Project:بی بارها",
+       "copyright": "محتوایات بی  $1 اجازه نامه ئا هستنت مگه ای که آی خلاف ئا ذکر بوته بیئنت .",
+       "copyrightpage": "{{ns:project}}:کاپی رایت یا باز کورتینی حق",
+       "currentevents": "انونین واقئات",
+       "currentevents-url": "Project:انونین واقئاتان",
+       "disclaimers": "تکذیب‌ نامه‌هان",
+       "disclaimerpage": "Project:ئمومی ئین تکذیب‌ نامه",
+       "edithelp": "کومک په ایدیت ئی خاتیرا",
+       "mainpage": "بُنیادی تاکدیم",
+       "mainpage-description": "بُنیادی تاکدیم",
+       "policy-url": "Project:سیاست‌ئان",
+       "portal": "کار زوروکانئ داخل بوتین",
+       "portal-url": "Project:کار زوروکانئ داخل بوتین",
+       "privacy": "سیاست محرمانگی",
+       "privacypage": "Project:سیاست محرمانگی",
+       "badaccess": "دسترسی ئی خطا",
+       "badaccess-group0": "شما اجازه په ای ئملی اجرائا که درخواست کورته ئیت نداریت.",
+       "badaccess-groups": "ای ئملی که شما درخواست کورته ئیت مخصوص بی  {{PLURAL:$2|ای گروپ|ای گروپ ئان}} شه کار زوروکان اینت: $1.",
+       "versionrequired": "نخسه $1 شه میڈ\tیا ویکی ئی نرم افزار ئا لازم اینت",
+       "versionrequiredtext": "په ای تاکدیمی دیستینی خاتیرا بی نخسه ئی  $1 تا شه میڈ\tیا ویکی ئی نرم افزار ئا ضرورت اینت .\nبی [[Special:Version|ای تاکدیما]] برویت.",
+       "ok": "قبول داشتین",
+       "retrievedfrom": "گیپته بوته شه  «$1»",
+       "youhavenewmessages": "$1 داریت ($2).",
+       "youhavenewmessagesfromusers": "شما شه {{PLURAL:$3|یک دیگه کار زوروکئ|$3  کار زوروک}} $1 داریت ($2).",
+       "youhavenewmessagesmanyusers": "شما شه تعدادی کار زوروک $1 داریت ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|نوکین پیام|999=نوکین پیامان}}",
+       "newmessagesdifflinkplural": "{{formatnum:$1}} {{PLURAL:$1|ٹگل|999=ٹگل}} اخیر",
+       "youhavenewmessagesmulti": "نوکین پیام بی  $1 تاداریت.",
+       "editsection": "ایڈیٹ",
+       "editold": "ایڈیٹ",
+       "viewsourceold": "نشان داتین مبدائی",
+       "editlink": "ایڈیٹ",
+       "viewsourcelink": "نشان داتین مبدائی",
+       "editsectionhint": "ایدیت کورتین : $1 بخشی",
+       "toc": "محتویات",
+       "showtoc": "نشان داتین",
+       "hidetoc": "چیهر داتین",
+       "collapsible-collapse": "بستین",
+       "collapsible-expand": "پراخ کورتین",
+       "confirmable-confirm": "{{GENDER:$1|شما}} مطمئن هستیت؟",
+       "confirmable-yes": "هان",
+       "confirmable-no": "نه",
+       "thisisdeleted": "نشان داتین یا جوڑ\t کورتین $1 ئی؟",
+       "viewdeleted": "نشان داتین $1؟",
+       "restorelink": "{{PLURAL:$1|یک|$1}} ڈ\tیلیٹ بوتگینئ ایڈ\tیٹ",
+       "feedlinks": "حبر وان:",
+       "feed-invalid": "هبر وانی وراک ئی قیسم جواز نداریت.",
+       "feed-unavailable": "هبر وانی وراک ئان بی دسترس نه انت",
+       "site-rss-feed": "آراس‌اس وراک په $1",
+       "site-atom-feed": "اتومئ وراک په $1",
+       "page-rss-feed": "آراس‌اس وراک په \"$1\"",
+       "page-atom-feed": "اتومي وراک په «$1»",
+       "red-link-title": "$1 ( دیم موجود نه اینت)",
+       "sort-descending": "نزولین ترتیب کورتین",
+       "sort-ascending": "صعودی ترتیب کورتین",
+       "nstab-main": "تاکدیم",
+       "nstab-user": "کار زوروکی تاکدیم",
+       "nstab-media": "میڈ\tیای تاکدیم",
+       "nstab-special": "خاصین تاکدیم",
+       "nstab-project": "پروژه ئی تاکدیم",
+       "nstab-image": "فایل",
+       "nstab-mediawiki": "پیام",
+       "nstab-template": "تراشوان",
+       "nstab-help": "کومکین تاکدیم",
+       "nstab-category": "تهر",
+       "nosuchaction": "ایرنگین ئملی وجود نداریت",
+       "nosuchactiontext": "ای ئملی که شما مشخص کورته ئیت بی انترنیتئین ادرسی تا جواز نداریت .\nممکن اینت که انترنتین ادرسا جوان وارد نه کورته ئیت یا مشکل والا ئین لینک ئیا وارد کوره ئیت .\nیا امکان داریت که شه نرم افزاری که شما بی{{SITENAME}} تا استفاده کورته ئیت مشکل داشته بیئت.",
+       "nosuchspecialpage": "ای رقمین ویژه ئین تاکدیمی موجود نه اینت",
+       "nospecialpagetext": "<strong>شما په یک نامجازین تاکدیمی خاتیرا درخواست کورته ئیت.</strong>\n\nمجازین تاکدیمانی لڑ لیست بی  [[Special:SpecialPages|{{int:specialpages}}]] تا وجود داریت.",
+       "error": "خطا",
+       "databaseerror": "مئلوماتین بانکئ خطا",
+       "databaseerror-text": "مشکلی بی مئلوماتین بانکی تا رخ داته. \nای ممکن اینت شه مشکلا بی نرم افزاری تا بیئت .",
+       "databaseerror-query": "پرس‌وجو: $1",
+       "databaseerror-function": "تابع: $1",
+       "databaseerror-error": "خطا: $1",
+       "laggedslavemode": "'''هشدار:''' امکان داریت که تاکدیم آخرین اپدیت ئا شامل مه بیئت .",
+       "readonly": "مئلوماتئ بانک قُلپ بوت",
+       "enterlockreason": "یک دلیلی په قُلپ کورتینا بیاریت، که آیی تا نشان داته بوته بیئت که چی وختی قُلپ پاچه ئه بیئت",
+       "readonlytext": "انون مئلوماتئ بانک په تغیراتان و جوڑ\t کورتینئ تاکدیمانیا قُلپ بوته؛ای حالت احتمالآ په خاتیری تئمیراتان است و پدا شه آیی وضیئت بی حالت اول ئا بیئر ئه گردید.\n\nمدیری که آیرا قُلپ کورته وتی توضیئاتانا پیش کورته است : $1",
+       "missingarticle-rev": "(شمارهٔ نسخه: $1)",
+       "missingarticle-diff": "(تفاوت: $1، $2)",
+       "internalerror": "داخلین خطا",
+       "internalerror_info": "داخلین خطا: $1",
+       "filecopyerror": "نه شه فایل «$1» بی «$2» کاپی بیئت.",
+       "filerenameerror": "نه شه فایل «$1» بی «$2» تغیر نام بیئت.",
+       "filedeleteerror": "نه بوت فایل «$1» پاک بیئت.",
+       "directorycreateerror": "نه بوت مسیر $1 ئا جوڑ کورت.",
+       "directoryreadonlyerror": "دایرکتوری \"$1\" فقط وانتینئ اینت.",
+       "directorynotreadableerror": "دایرکتوری \"$1\" وانتینئ نه اینت.",
+       "filenotfound": "فایل «$1» ودی نه بوت.",
+       "unexpected": "غیرمنتظرئین اندازه: «$1»=«$2».",
+       "formerror": "خطا: نه توانن فرم ئا دیم دی ین.",
+       "badarticleerror": "نه توانن ای ئملا په ای تاکدیما انجام دی ین .",
+       "cannotdelete-title": "نه توانیت که «$1» ئی تاکدیما ئا پاک کنیت",
+       "delete-hook-aborted": "پاک بوتین شه قلاب ئی نیمگاه لغو بوت.\nبی ای باره ئا هیچ توضیحی داته نه بوته.",
+       "no-null-revision": "پوچ ئین نخسه ئی جوڑ کورتینئ امکان  په  «$1» ئی تاکدیما موجود نه اینت",
+       "badtitle": "خرابین ئنوان",
+       "viewsource": "نشان داتین مبدائی",
+       "viewsource-title": "مبدا ئی نشان داتین په $1",
+       "actionthrottled": "شمی ئملی دیم گیپته بوت",
+       "viewsourcetext": "شما ئه توانیت ای تاکدیمی مبدائا بگیندیت و یا کاپی بکنیت:",
+       "exception-nologin": "لاگین نه بوته ئیت",
+       "virus-scanfailed": "ناکامین سکن  (کود $1)",
+       "virus-unknownscanner": "نامئلومین انتی ویروس:",
+       "welcomeuser": "وش آتیت $1!",
+       "welcomecreation-msg": "شمی کار زوروکین حساب جوڑ بوت.\nبی هوش مکنیت که وتئ [[Special:Preferences|تنظیماتان ئا {{SITENAME}}]] تغیر بدهیت.",
+       "yourname": "کار زوروکین نام:",
+       "userlogin-yourname": "کار زوروکین نام",
+       "userlogin-yourname-ph": "وتئ کار زوروکین ناما داخل بکنیت",
+       "createacct-another-username-ph": "کار زوروکین ناما داخل بکنیت",
+       "yourpassword": "چیهر گال یا پاسورد:",
+       "userlogin-yourpassword": "چیهر گال یا پاسورد",
+       "userlogin-yourpassword-ph": "وتئ پاسوردا داخل بکنیت",
+       "createacct-yourpassword-ph": "پاسوردا داخل بکنیت",
+       "yourpasswordagain": "پاسوردی تکرار کورتین",
+       "createacct-yourpasswordagain": "پاسوردا تایید کورتین",
+       "createacct-yourpasswordagain-ph": "پاسوردا پدا داخل کورتین دومین وارا",
+       "userlogin-remembermypassword": "نا داخل بوتگ بسات",
+       "userlogin-signwithsecure": "شه امنیت ئا استفاده بکنیت",
+       "yourdomainname": "شمی دامنهٔ:",
+       "password-change-forbidden": "شما ئا نه توانیت که بی ای ویکی تا پاسوردا تغیر بدهیت",
+       "login": "داخل بوتین",
+       "nav-login-createaccount": "داخل بوتین  / کار زوروکین حسابي جوڑ کورتین",
+       "userlogin": "داخل بوتین  / کار زوروکین حسابي جوڑ کورتین",
+       "userloginnocreate": "داخل بوتین",
+       "logout": "در بوتین",
+       "userlogout": "در بوتین",
+       "notloggedin": "لاگین نه بوته ئیت",
+       "userlogin-noaccount": "شما کار زوروکین حسابئ نداریت؟",
+       "userlogin-joinproject": "بی  {{SITENAME}} تا نام‌نویسی کنیت!",
+       "nologin": "شما کار زوروکین حسابئ نداریت ؟ $1.",
+       "nologinlink": "یک نوکین کار زوروکین حسابئ جوڑ کنیت",
+       "createaccount": "نوکین کار زوروکین حسابئ جوڑ کورتین",
+       "gotaccount": "شما کار زوروکین حسابئ داریت ؟ $1.",
+       "gotaccountlink": "داخل بوتین",
+       "userlogin-resetlink": "وتئ داخل بوتینئ مئلوماتان شه هوشا بورته ئیت؟",
+       "userlogin-resetpassword-link": "شمی پاسورد شه شمی دهوشا شُوته؟",
+       "userlogin-helplink2": "کومک گو داخل بوتینا",
+       "userlogin-loggedin": "شما انون بی ئنوان {{GENDER:$1|$1}} داخل بوته ئیت .\nشه جهلگین فورما په داخل بوتینا بی ئنوان دیگرین کار زوروکا استفاده بکنیت .",
+       "userlogin-createanother": "دیگرین کار زوروکین حسابئ جوڑ کورتین",
+       "createacct-emailrequired": "ایمیل ادرس",
+       "createacct-emailoptional": "ایمیل ادرس (اختیاری)",
+       "createacct-email-ph": "وتئ ایمیل ادرسا داخل بکنیت",
+       "createacct-another-email-ph": "ایمیل ادرسی داخل کورتین",
+       "createaccountmail": "استفاده شه تصادفین پاسوردا و آیی دیم داتین بی مشخصین ایمیل ادرسیا",
+       "createacct-realname": "واقئین نام (اختیاری)",
+       "createaccountreason": "دلیل:",
+       "createacct-reason": "دلیل",
+       "createacct-reason-ph": "پچی شما لوٹیت که دیگرین کار زوروکین حساب جوڑ کنیت؟",
+       "createacct-captcha": "امنیتئ چیک کورتین",
+       "createacct-imgcaptcha-ph": "په بُرزه گین اکسا کی گیندیت متنی داخل کنیت",
+       "createacct-submit": "وتئ کار زوروکین حسابا جوڑ کنیت",
+       "createacct-another-submit": "دیگرین کار زوروکین حسابئ جوڑ کورتین",
+       "createacct-benefit-heading": "ای {{SITENAME}} چو شمیا همیرنگین مردمانی واسطه ئا جوڑ بوته",
+       "createacct-benefit-body1": "{{PLURAL:$1|ایڈیٹ}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|تاکدیم}}",
+       "createacct-benefit-body3": "آخیرین {{PLURAL:$1|شریکان}}",
+       "badretype": "پاسوردانا که شما داخل کورته ئیت یکرنگ نه انت.",
+       "userexists": "ای کار زوروکین ناما که شما داخل کورته ئیت دیمتیرا استفاده بوته.\nمهربانی بکنیت یک دیگه نامئ بیلیئت .",
+       "loginerror": "خطا بی داخل بوتینی تا",
+       "createacct-error": "کار زوروکین حسابئ جوڑ کورتینی خطا",
+       "createaccounterror": "ای حسابئ جوڑ کورتین امکان نداریت: $1",
+       "passwordtooshort": "پاسورد باید کم شه کم {{PLURAL:$1|۱ حرف|$1 حرف}} داشته بیئت.",
+       "mailmypassword": "پاک کورتین پاسوردئ",
+       "emaildisabled": "ای ویبسایت ایمیل ئا دیم داته ئه نه کنت.",
+       "accountcreated": "کار زوروکین حساب جوڑ بوت",
+       "accountcreatedtext": "کار زوروکئ حساب په [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|هبر و گپ]]) جوڑ بوته.",
+       "createaccount-title": "کار زوروکئ حساب جوڑ کورتین بی {{SITENAME}}",
+       "createaccount-text": "یک نفری په شمی ایمیلا یک کار زوروکین حسابئ  بی {{SITENAME}} تا گو «$2» ناما جوڑ کورته ($4)، که آیی پاسورد ایش اینت : $3\nشما باید همی انون وتئ حسابئ تا داخل بئیت و وتئ پاسوردا تغیر بدهیت .\n\nاگه ای حساب اشتباهی جوڑ بوته ، ای پیام ئا نادیستگ بگیریت.",
+       "loginlanguagelabel": "زبان: $1",
+       "pt-login": "داخل بوتین",
+       "pt-login-button": "داخل بوتین",
+       "pt-createaccount": "کار زوروکین حسابئ جوڑ کورتین",
+       "pt-userlogout": "در بوتین",
+       "changepassword": "پاسوردی تغیر داتین",
+       "resetpass_header": "پاسوردئ تغیر داتین",
+       "oldpassword": "دیمئ پاسورد:",
+       "newpassword": "نوکین پاسورد:",
+       "retypenew": "نوکین پاسوردا پدا داخل کورتین",
+       "resetpass_submit": "پاسوردی تنظیم و داخل بوتین",
+       "changepassword-success": "شمی پاسوردئ تغیر کامیاب بوت و پاسورد تغیر کورت",
+       "resetpass_forbidden": "نه توانیت که پاسوردا تغیر بدهیت",
+       "resetpass-no-info": "په ای تاکدیمی دسترسی ئی خاتیرا داخل بئیت.",
+       "resetpass-submit-loggedin": "پاسوردی تغیر داتین",
+       "resetpass-submit-cancel": "کنسیل",
+       "resetpass-temp-password": "موقیئتین پاسورد:",
+       "passwordreset": "پاک کورتین پاسوردئ",
+       "passwordreset-legend": "پاک کورتین پاسوردئ",
+       "passwordreset-username": "کار زوروکین نام:",
+       "passwordreset-domain": "دامنه:",
+       "passwordreset-email": "ایمیل ادرس:",
+       "passwordreset-emailtitle": "حسابئ مئلومات بی {{SITENAME}}",
+       "changeemail": "ایمیل ادرسی تغیر داتین",
+       "changeemail-oldemail": "انونین ایمیل ادرس:",
+       "changeemail-newemail": "نوکین ایمیل ادرس:",
+       "changeemail-none": "(هیچ)",
+       "changeemail-submit": "ایمیل ادرسی تغیر",
+       "resettokens-legend": "بیئر گردینتین نشانگ ئانی",
+       "resettokens-tokens": "نشانگان:",
+       "resettokens-token-label": "$1 (انونین اندازه گ: $2)",
+       "resettokens-done": "بیئر گردینتین نشانگ ئان.",
+       "bold_sample": "پر رنگین متن",
+       "bold_tip": "پر رنگین متن",
+       "italic_sample": "مورب متن",
+       "italic_tip": "مورب متن",
+       "link_sample": "خرابین ئنوان",
+       "link_tip": "داخلین لینک",
+       "extlink_sample": "http://www.example.com خرابین ئنوان",
+       "extlink_tip": "لینک په ڈنا (دیموند http://‎ ئا شه هوشا مه به ریت)",
+       "headline_tip": "ئنوان سطح ۲",
+       "nowiki_sample": "ایدا چوکاٹ بندی نه بوته ئین متن ئه داخل کنیت",
+       "nowiki_tip": "نادیده گیپتین ویکی ئی چوکاٹ بندیا",
+       "image_tip": "متنی تئ اکس",
+       "media_tip": "فایل لینک",
+       "summary": "خلاصه:",
+       "watchthis": "دیستین ای تاکدیمی",
+       "savearticle": "ای تاکدیم ذخیره بیئت",
+       "preview": "دیم دیست",
+       "showpreview": "دیم دیست",
+       "showdiff": "تغیراتانئ نشان داتین",
+       "blankarticle": "<strong>هشدار:</strong> شما انون یک خالین تاکدیمی جوڑ کورتینی حالا وَیت .\nاگر «{{int:savearticle}}» ئا پدا  کلیک کنیت، یک تاکدیمی بدون شه محتوائا جوڑ ئه بیئت.",
+       "anoneditwarning": "<strong>هشدار:</strong> شما داخل نه بوته ئیت. شمی آی‌پی نشانگ ئا موچی ئه تواننت بگیندنت اگر شما هر تغیری بیاریت . اگر <strong>[$1 داخل بئیت]</strong> یا <strong>[$2 یک کار زوروکین حساب جوڑ بکنیت]</strong>، شمی ایڈیٹ\t بی شمی کار زوروکین ناما شینک ئه بیئنت و گون گو دیگرین مزایان .",
+       "blockedtitle": "کار زوروک بسته بوته",
+       "blockednoreason": "دلیلی مشخص نه بوته",
+       "loginreqtitle": "لوگین بوتین ضروری اینت",
+       "loginreqlink": "داخل بوتین",
+       "accmailtitle": "پاسورد دیم داته بوت.",
+       "newarticle": "(نوکین)",
+       "updated": "(نوک بوته ئین)",
+       "note": "'''نکته:'''",
+       "continue-editing": "شوتین بی ایڈ\tیٹ\tی نیمگا",
+       "editing": "بی ایڈ\tیٹ\t کورتینی حالا $1",
+       "creating": "بی جوڑ کورتینی حالا $1",
+       "yourtext": "شمی متن",
+       "yourdiff": "تفاوت‌هان",
+       "templatesused": "{{PLURAL:$1|تراشوان|تراشوانان}} استفاده بوته انت بی ای تاکدیمئ تا:",
+       "template-protected": "(قُلپ بوته)",
+       "template-semiprotected": "(نیمه‌ گ قُلپ بوته)",
+       "hiddencategories": "ای تاکدیم بی {{PLURAL:$1|یک چیهرین تهر|$1 چیهرین تهر}} تا قرار داریت:",
+       "permissionserrors": "دسترسی ئی خطا",
+       "permissionserrorstext": "شما ای کارئ اجازه ئا په ای {{PLURAL:$1|دلیلا|دلیلان}} نداریت:",
+       "permissionserrorstext-withaction": "شما اجازهٔ $2 ئا بی ای {{PLURAL:$1|دلیلا|دلیلان}} نداریت:",
+       "recreate-moveddeleted-warn": "<strong>هشدار: شما یک تاکدیمی ئا جوڑ\t ئه کنیت که دیمتیرا پاک کورته بوته.</strong>\n\nبی نظر داشته بئیت که آیا ایڈ\tیٹ ای تاکدیمی جوانین کاری است یانه.\nای تاکدیمی پاک بوتینئ و انتقالئ کورم ئا جهلگا توانیت بگیندیت:",
+       "moveddeleted-notice": "ای تاکدیم پاک بوته.\nای تاکدیمی پاک بوتینئ و انتقالئ کورم ئا جهلگا توانیت بگیندیت.",
+       "log-fulllog": "دیستین کامیلین کورمئ",
+       "edit-conflict": "هجومئ ایڈیٹ\t.",
+       "postedit-confirmation-created": "ای تاکدیم جوڑ بوته.",
+       "postedit-confirmation-restored": "ای تاکدیم بیئرگردینته بوته.",
+       "postedit-confirmation-saved": "شمی ایڈ\tیٹ ذخیره بوت.",
+       "content-model-wikitext": "ویکی‌متن",
+       "content-model-text": "ساده گین متن",
+       "content-model-javascript": "جاوااسکریپت",
+       "content-json-empty-object": "خالین چیز",
+       "content-json-empty-array": "خالین صف",
+       "currentrev": "انونین نخسه یی نشان داتین",
+       "currentrev-asof": "انونین نسخه تا $1",
+       "revisionasof": "نسخهٔ $1",
+       "revision-info": "تاریخ  $1 نسخه بی واسطه {{GENDER:$6|$2}}$7",
+       "previousrevision": "→ قدیمین نخسه",
+       "nextrevision": "نوکین نخسه ←",
+       "currentrevisionlink": "انونین نخسه یی نشان داتین",
+       "cur": "فعلی",
+       "next": "بعدی",
+       "last": "دیمتیرین",
+       "page_first": "اولین",
+       "page_last": "آخیرین",
+       "history-show-deleted": "فقط پاک بوته ئین",
+       "histfirst": "کهنگتیرین",
+       "histlast": "نوکتیرین",
+       "historysize": "({{PLURAL:$1|۱ بایٹ|$1 بایٹ}})",
+       "historyempty": "(خالی)",
+       "history-feed-title": "ایڈ\tیٹانئ دپتر یا تاریخچه گ",
+       "history-feed-item-nocomment": "$1 بی $2",
+       "rev-deleted-user": "(کار زوروکین نام پاک بوت)",
+       "rev-delundel": "نمایش/نهفتن",
+       "rev-showdeleted": "نشان داتین",
+       "revdelete-show-file-submit": "هان",
+       "revdelete-radio-set": "چیهر داتین",
+       "revdelete-radio-unset": "نمایان",
+       "revdelete-log": "دلیل:",
+       "revdel-restore": "نمایش/نهفتن",
+       "pagehist": "تاکدیمی تاریخچه",
+       "deletedhist": "پاک بوتگینانی تاریخچه",
+       "revdelete-reasonotherlist": "دیگرین دلیل",
+       "mergehistory-no-source": " $1 منشائی تاکدیم موجود نه اینت.",
+       "mergehistory-no-destination": "$1 مخصدی تاکدیم موجود نه اینت .",
+       "mergehistory-invalid-source": "منشائی تاکدیم باید یک موتبرین ئنوان ئی داشته بیئت.",
+       "mergehistory-invalid-destination": "مخصدئ تاکدیم باید یک موتبرین ئنوان داشته بیئت",
+       "mergehistory-autocomment": "[[:$1]] ئا بی [[:$2]] ادغام کورت",
+       "mergehistory-comment": "[[:$1]] ئا بی  [[:$2]] ادغام کورت: $3",
+       "mergehistory-same-destination": "منشاء و مخصد ئی تاکدیمان نه تواننت که یک رقم بیئنت",
+       "mergehistory-reason": "دلیل:",
+       "mergelog": "سیاههٔ ادغام",
+       "revertmerge": "ادغام ئی بیئرگشتینتین",
+       "history-title": "$1: ایڈیٹانی تاریخچه",
+       "difference-title": "$1: نخسه ئانی مانجینا فرق",
+       "difference-title-multipage": "$1 و $2:تاکدیمانئ مانجینی فرق",
+       "difference-multipage": "(تاکدیمانی مانجینا فرق)",
+       "lineno": "سطر $1:",
+       "editundo": "خنثی‌ کورتین",
+       "diff-empty": "(بدون تفاوت)",
+       "searchresults": "گشتین ئی  نتیجه",
+       "searchresults-title": "گشتینئ نتایج په «$1»",
+       "searchprofile-articles-tooltip": "گشتین بی $1",
+       "searchprofile-images-tooltip": "گشتین په فایلان",
+       "search-redirect": "(تغییرمسیر $1)",
+       "search-section": "(بخش $1)",
+       "search-category": "(تهر  $1)",
+       "search-suggest": "آیا شمی منظور ایش ات: $1",
+       "search-interwiki-caption": "گوارین پروژه ئان",
+       "search-interwiki-default": "نتایج شه $1 :",
+       "search-interwiki-more": "(گیشتیر)",
+       "search-relatedarticle": "مرتبط",
+       "searchrelated": "مرتبط",
+       "searchall": "موچ",
+       "search-nonefound": "نتیجه په چیزی که شما لوٹیته تیت بی دست نه یات.",
+       "powersearch-legend": "پیشرفته ئین گشتین",
+       "powersearch-ns": "گشتین بی نامئ فضائان:",
+       "powersearch-togglelabel": "چیک کورتین:",
+       "powersearch-toggleall": "موچ",
+       "powersearch-togglenone": "هیچ‌گوجام",
+       "search-external": "خارجی ئین گشتین",
+       "searchdisabled": "گشتین بی {{SITENAME}} ئی تا فعال نه اینت.\nموقتاً توانیت شه Google ئی گردگ ئا استفاده کنیت.\nتوجه کنیت که بدست آته ئین نتایج شه گردگا بی آ ممکینین طریقه ئا مه بیئنت.",
+       "preferences": "تنظیمات",
+       "mypreferences": "تنظیمات",
+       "prefs-edits": "ایڈ\tیٹانی اندازه گ:",
+       "prefsnologintext2": "مهربانی بکنیت په وتئ تنظیماتانی ٹگل داتینا خاتیرا لوگین بئیت.",
+       "prefs-skin": "پوست",
+       "skin-preview": "دیم دیست",
+       "datedefault": "بی شه تنظیماتا",
+       "prefs-labs": "آزمایشی ئین ویژگی ئان",
+       "prefs-user-pages": "کار زوروکی تاکدیمان",
+       "prefs-personal": "کار زوروکی پروفایل",
+       "prefs-rc": "آخیرین تغیراتان",
+       "prefs-watchlist": "واچلیست",
+       "prefs-editwatchlist": "واچلیستی ایڈیٹ کورتین",
+       "prefs-watchlist-edits-max": "حداکثر اندازه گ: ۱۰۰۰",
+       "prefs-misc": "متفرقه",
+       "prefs-resetpass": "پاسوردی تغیر داتین",
+       "prefs-changeemail": "ایمیل ادرسی تغیر داتین",
+       "prefs-setemail": "ایمیل ادرسی تنظیم کورتین",
+       "prefs-email": "ایملی آپشن ئان",
+       "prefs-rendering": "نمایشی تاکدیم",
+       "saveprefs": "ذخیره",
+       "restoreprefs": "بیر گردینتین موچین تنظیمان بی اولی ئین رقما",
+       "prefs-editing": "ایڈیٹ کورتین",
+       "rows": "تعداد سطرها:",
+       "columns": "تعداد ستون‌ها:",
+       "searchresultshead": "گشتین",
+       "stub-threshold-disabled": "غیرفعال",
+       "timezonelegend": "منطقهٔ زمانی:",
+       "localtime": "محلی ئن وخت:",
+       "timezoneregion-africa": "آفریقا",
+       "timezoneregion-america": "آمریکا",
+       "timezoneregion-arctic": "قطب شمالی",
+       "timezoneregion-asia": "آسیا",
+       "timezoneregion-atlantic": "بحر اتلانتیک",
+       "timezoneregion-australia": "استرالیا",
+       "timezoneregion-europe": "اروپا",
+       "timezoneregion-indian": "بحر هند",
+       "timezoneregion-pacific": "بحر آرام",
+       "prefs-searchoptions": "گشتین",
+       "default": "پیش‌فرض",
+       "prefs-files": "فایل ئان",
+       "prefs-custom-css": "سی‌اس‌اس شخصی",
+       "youremail": "ایمیل:",
+       "prefs-registration": "راجیسترئ وخت",
+       "yourrealname": "واقیئین نام:",
+       "yourlanguage": "زبان:",
+       "yourgender": "لوٹیت که شما را چون بزاننت؟",
+       "gender-unknown": "لوٹین که هیچ ئی مه گوشین",
+       "gender-male": "مردینزاگ",
+       "gender-female": "جنینزاگ",
+       "email": "ایمیل",
+       "prefs-help-realname": "واقئین نام اختیاری اینت.\nاگه وتئ واقئین ناما بنوسیت ممکن اینت شه شمی کار و خدمتان ئی نام گیپتینی وختا شه شمی واقئین ناما استفاده بیئت.",
+       "prefs-help-email-required": "ایمیل ادرس ضروری اینت.",
+       "prefs-info": "بُنادین مئلومات",
+       "prefs-i18n": "بین المللی کورتین",
+       "prefs-signature": "دست خط",
+       "prefs-dateformat": "تاریخ فورمت",
+       "prefs-timeoffset": "وختی فاصله",
+       "prefs-advancedediting": "ئمومین تنظیمات",
+       "prefs-editor": "ایڈیٹور",
+       "prefs-preview": "دیم دیست",
+       "prefs-advancedrc": "پیشرفته ئین کیلی ئان",
+       "prefs-advancedrendering": "پیشرفته ئین کیلی ئان",
+       "prefs-advancedsearchoptions": "پیشرفته ئین کیلی ئان",
+       "prefs-advancedwatchlist": "پیشرفته ئین کیلی ئان",
+       "prefs-displayrc": "نمایش ئین کیلی ئان",
+       "prefs-displaywatchlist": "نمایش ئین کیلی ئان",
+       "prefs-tokenwatchlist": "نشانه گ",
+       "prefs-diffs": "تفاوت‌ئان",
+       "email-address-validity-invalid": "موتبرین ایمیل ادرسی داخل بکنیت",
+       "userrights": "کار گیروکی اختیارانی مدیریت",
+       "userrights-lookup-user": "کار گیروکی گروپانی مدیریت",
+       "userrights-user-editname": "کار زوروکین ناما داخل بکنیت:",
+       "editusergroup": "کار زوروکی گروپانی ایڈیٹ",
+       "userrights-editusergroup": "کار زوروکی گروپانی ایڈیٹ",
+       "userrights-groupsmember": "عضو:",
+       "userrights-reason": "دلیل:",
+       "userrights-changeable-col": "ئا گروپان که شما توانیت آوانا ٹگل بدهیت",
+       "userrights-unchangeable-col": "ئا گروپان که شما نتوانیت آوانا ٹگل بدهیت",
+       "group": "گروپ:",
+       "group-user": "کار زوروکان",
+       "group-autoconfirmed": "تائید بُوته ئین کار زوروکان",
+       "group-bot": "ربات‌هان",
+       "group-sysop": "مدیر ئان",
+       "group-bureaucrat": "دیوان‌سالار ئان",
+       "group-suppress": "گیندوک ئان",
+       "group-all": "(موچ)",
+       "group-user-member": "{{GENDER:$1|کار زوروک}}",
+       "group-autoconfirmed-member": "{{GENDER:$1|تائید بَوته ئین کار زوروک}}",
+       "group-bot-member": "ربات",
+       "group-sysop-member": "{{GENDER:$1|مدیر}}",
+       "group-bureaucrat-member": "{{GENDER:$1|دیوان‌سالار}}",
+       "group-suppress-member": "{{GENDER:$1|نظارت}}",
+       "grouppage-user": "{{ns:project}}:کارزورک ئان",
+       "grouppage-autoconfirmed": "{{ns:project}}:تائید بُوته ئین کار زوروک ئان",
+       "grouppage-bot": "{{ns:project}}:ربات‌ ئان",
+       "grouppage-sysop": "{{ns:project}}:مدیر ئان",
+       "grouppage-bureaucrat": "{{ns:project}}:دیوان‌سالار ئان",
+       "grouppage-suppress": "{{ns:project}}:نظارت",
+       "right-read": "وانتین تاکدیمی",
+       "right-edit": "ایڈ\tیٹ کورتین تاکدیمی",
+       "right-createpage": "تاکدیمی جوڑ\t کورتین (بی غیر گپ ئین موردی تاکدیمان )",
+       "right-createtalk": "گپ ئی تاکدیمی جوڑ\t کورتین",
+       "right-createaccount": "کار زوروکئ حسابئ جوڑ\t کورتین",
+       "right-move": "تاکدیمی انتقال",
+       "right-move-categorypages": "تهر تاکدیمئ انتکال",
+       "right-movefile": "فایلی انتقال",
+       "right-upload": "فایلی بُرز کورتین",
+       "action-read": "وانتین ای تاکدیمئ",
+       "action-edit": "ایڈ\tیٹ کورتین ای تاکدیمئ",
+       "action-createpage": "تاکدیم جوڑ کورتین",
+       "action-move-categorypages": "تهر تاکدیمئ انتکال",
+       "action-movefile": "ای فایلی انتقال داتین",
+       "action-upload": "ای فایلی اپلود یا بُرز کورتین",
+       "action-writeapi": "استفاده شه نیویشتینی API",
+       "action-delete": "پاک کورتین ای تاکدیمئ",
+       "action-deleterevision": "ای نخسه یی پاک کورتین",
+       "action-sendemail": "ایمیلی دیم داتین",
+       "nchanges": "$1 {{PLURAL:$1|ٹگل|ٹگل}}",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|شه اخر ئین دیستینا}}",
+       "enhancedrc-history": "تاریخچه",
+       "recentchanges": "آخیرین تغیراتان",
+       "rcshowhideminor-show": "نشان داتین",
+       "rcshowhideminor-hide": "چیهر داتین",
+       "rcshowhidebots": "$1 ربات‌هان",
+       "rcshowhidebots-show": "نشان داتین",
+       "rcshowhidebots-hide": "چیهر داتین",
+       "rcshowhideliu-show": "نشان داتین",
+       "rcshowhideliu-hide": "چیهر داتین",
+       "rcshowhideanons-show": "نشان داتین",
+       "rcshowhideanons-hide": "چیهر داتین",
+       "rcshowhidepatr-show": "نشان داتین",
+       "rcshowhidepatr-hide": "چیهر داتین",
+       "rcshowhidemine-show": "نشان داتین",
+       "rcshowhidemine-hide": "چیهر داتین",
+       "diff": "تفاوت",
+       "hist": "تاریخچه",
+       "hide": "چیهر داتین",
+       "show": "نشان داتین",
+       "minoreditletter": "جز",
+       "newpageletter": "نوک",
+       "boteditletter": "ر",
+       "rc_categories_any": "هر گوجام",
+       "recentchangeslinked-page": "تاکدیم نام:",
+       "upload": "فایلی بُرز کورتین",
+       "uploadbtn": "فایلی بُرز کورتین",
+       "uploaderror": "خطا بی اپلودی تا",
+       "filename": "فایلئ نام",
+       "filedesc": "خلاصه",
+       "fileuploadsummary": "خلاصه:",
+       "filesource": "منبع:",
+       "savefile": "فایلی ذخیره کورتین",
+       "license": "اجازه‌نامه:",
+       "license-header": "اجازه‌نامه",
+       "nolicense": "هیچگوجام انتخاب نه بوته",
+       "listfiles-delete": "پاک کورتین",
+       "imgfile": "فایل",
+       "listfiles": "فایل لیست",
+       "listfiles_thumb": "ناحُننک",
+       "listfiles_date": "تاریخ",
+       "listfiles_name": "نام",
+       "listfiles_user": "کار زوروک",
+       "listfiles_size": "اندازه",
+       "listfiles_description": "توضیح",
+       "listfiles_count": "نخسه ئان",
+       "listfiles-show-all": "اکسانی قدیمین نخسه ئان",
+       "listfiles-latestversion": "انونین نخسه( ویرژن )",
+       "listfiles-latestversion-yes": "هان",
+       "listfiles-latestversion-no": "نه",
+       "file-anchor-link": "فایل",
+       "filehist": "فایلی تاریخچه",
+       "filehist-deleteall": "موچانی پاک کورتین",
+       "filehist-deleteone": "پاک کورتین",
+       "filehist-revert": "بیرگردینتین",
+       "filehist-current": "انونین نسخه",
+       "filehist-datetime": "تاریخ/ساعت",
+       "filehist-thumb": "ناحُننک",
+       "filehist-nothumb": "بی ناحُننک",
+       "filehist-user": "کار زوروک",
+       "filehist-dimensions": "ابعاد",
+       "filehist-filesize": "فایلی اندازه",
+       "filehist-comment": "کومنیت",
+       "imagelinks": "بی کار گیپتین فایلئ",
+       "linkstoimage": "{{PLURAL:$1|تاکدیم|تاکدیمان}} جهلگین بی اکسا لینک {{PLURAL:$1|داریت|دارنت}}:",
+       "shared-repo-from": "شه $1",
+       "filerevert": "بیئرگردینتین $1",
+       "filerevert-legend": "بیئرگردینتین فایلی",
+       "filerevert-intro": "شما بی حالی بیئرگردینتینا '''[[Media:$1|$1]]''' بی [$4 نخسه تاریخ $2 سائت $3] هستیت.",
+       "filerevert-submit": "بیئرگشت",
+       "filerevert-success": "<strong>[[Media:$1|$1]]</strong> بی [$4 نخسه ئی بی تاریخی $2 سائت $3] ئا بیئرگشتینته بوت.",
+       "filerevert-badversion": "قدیمیتیرین نخسه شه ای فایلا موجود نه اینت.",
+       "filedelete": "پاک کورتین $1",
+       "filedelete-legend": "فایلی پاک کورتین",
+       "filedelete-comment": "دلیل:",
+       "filedelete-submit": "پاک کورتین",
+       "mimesearch": "گشتین بی اساس MIME",
+       "download": "ائیر کورتین",
+       "randomincategory-category": "تهر:",
+       "statistics-header-users": "کار زوروکانئ ارقام",
+       "statistics-header-hooks": "دیگرین ارقام",
+       "statistics-articles": "تاکدیمانی محتوا",
+       "statistics-pages": "تاکدیمان",
+       "statistics-pages-desc": "ای ویکی ئی موچین تاکدیمان ٬ هبر و گپ ئی تاکدیمان ٬ و تغیر مسیر و دیگرین",
+       "statistics-files": "بُرز بوته ئین فایلان",
+       "pageswithprop-submit": "برا",
+       "brokenredirects-edit": "ایڈیٹ",
+       "brokenredirects-delete": "پاک کورتین",
+       "withoutinterwiki-legend": "دیموند",
+       "withoutinterwiki-submit": "نشان داتین",
+       "nbytes": "$1 {{PLURAL:$1|بایٹ|بایٹ}}",
+       "ncategories": "$1 {{PLURAL:$1|تهر|تهرئان}}",
+       "nmembers": "$1 {{PLURAL:$1|عضو|عضو}}",
+       "nmemberschanged": "$1 → $2   {{PLURAL:$2| عضو|عضو}}",
+       "nrevisions": "$1 {{PLURAL:$1|نخسه|نخسه}}",
+       "nviews": "$1 {{PLURAL:$1|دیست|دیست}}",
+       "nimagelinks": "استفاده بوته بی  $1 {{PLURAL:$1|تاکدیم|تاکدیم}} ئی تا",
+       "ntransclusions": "استفاده بوته بی  $1 {{PLURAL:$1|تاکدیم|تاکدیم}} ئی تا",
+       "lonelypages": "آتیمین تاکدیمان",
+       "shortpages": "گونڈ\tین تاکدیمان",
+       "longpages": "تچکین تاکدیمان",
+       "deadendpages": "بن بستین تاکدیمان",
+       "protectedpages-page": "تاکدیم",
+       "newpages-username": "کار زوروکین نام:",
+       "booksources-search": "گشتین",
+       "specialloguserlabel": "مجری:",
+       "log": "سیاهه‌ها",
+       "allarticles": "موچین تاکدیمان",
+       "allpagessubmit": "برا",
+       "categories": "تهرئان",
+       "linksearch-ok": "گشتین",
+       "listusers-submit": "نشان داتین",
+       "listgrouprights-group": "گروپ",
+       "trackingcategories-name": "پیامی نام",
+       "emailuser-title-notarget": "کار زوروکی ایمیل",
+       "emailpage": "کار زوروکی ایمیل",
+       "emailusername": "کار زوروکین نام:",
+       "emailusernamesubmit": "ثبت کورتین",
+       "emailfrom": "شه:",
+       "emailto": "بی:",
+       "emailsubject": "ئنوان:",
+       "emailmessage": "پیام:",
+       "emailsend": "دیم دئ",
+       "emailsent": "ایمیل دیم دئ",
+       "watchlist": "واچلیست",
+       "mywatchlist": "واچلیست",
+       "watchlistfor2": "په $1 $2",
+       "watch": "دیستین",
+       "watchthispage": "دیستین ای تاکدیمی",
+       "unwatch": "اوشتارین تین دیستینی",
+       "enotif_impersonal_salutation": "کار زوروک {{SITENAME}}",
+       "enotif_subject_deleted": "{{SITENAME}} تاکدیم $1 شه {{gender:$2|$2}} نیمگا پاک بوت.",
+       "enotif_subject_created": "{{SITENAME}} تاکدیم $1 شه {{gender:$2|$2}} نیمگا جوڑ بوته.",
+       "enotif_subject_moved": "{{SITENAME}} تاکدیم $1 شه {{gender:$2|$2}} نیمگاانتقال بوت.",
+       "enotif_subject_restored": "{{SITENAME}} تاکدیم $1 شه {{gender:$2|$2}} نیمگا نوک بوت.",
+       "enotif_subject_changed": "{{SITENAME}} تاکدیم $1 شه {{gender:$2|$2}} نیمگا تغیر بوت.",
+       "enotif_body_intro_deleted": "$1 تاکدیم {{SITENAME}} $PAGEEDITDATE بی تاریخی شه{{gender:$2|$2}} نیمگا پاک بُوت ، $3 ئا بگیندیت .",
+       "deletepage": "تاکدیمی پاک کورتین",
+       "confirm": "تأیید کورتین",
+       "delete-confirm": "پاک کورتین «$1»",
+       "delete-legend": "پاک کورتین",
+       "deletecomment": "دلیل:",
+       "rollbacklink": "بیجا آورتین",
+       "protectcomment": "دلیل:",
+       "restriction-edit": "ایڈیٹ",
+       "restriction-move": "انتقال",
+       "restriction-create": "جوڑ\t کورتین",
+       "restriction-upload": "بُرز کورتین",
+       "undeletebtn": "احیا",
+       "undeleteviewlink": "دیستین",
+       "undeletecomment": "دلیل:",
+       "undeletedrevisions": "$1 ئی نخسه احیا {{PLURAL:$1|بوت}}",
+       "undelete-search-submit": "گشتین",
+       "undelete-show-file-submit": "هان",
+       "blanknamespace": "(بُنیادی)",
+       "uctop": "(انونین نخسه)",
+       "month": "بی ای ماه ئی تا (و دیمتیر شه آیی):",
+       "year": "بی ای سال ئی تا (و دیمتیر شه آیی):",
+       "sp-contributions-newbies": "فقط نوکین مشارکتان نشان داته بیئنت",
+       "sp-contributions-newbies-sub": "په نوک کاران",
+       "sp-contributions-logs": "سیاهه‌ها",
+       "sp-contributions-talk": "گپ",
+       "sp-contributions-submit": "گشتین",
+       "whatlinkshere-page": "تاکدیم:",
+       "whatlinkshere-links": "→ لینک",
+       "whatlinkshere-hidelinks": "$1 لینک",
+       "whatlinkshere-hideimages": "$1 فایلی لینکان",
+       "whatlinkshere-filters": "فیلتر ئان",
+       "ipbreason": "دلیل:",
+       "blocklist-target": "هدف",
+       "blocklist-reason": "دلیل",
+       "ipblocklist-submit": "گشتین",
+       "emaillink": "ایمیلی دیم داتین",
+       "blocklogpage": "کورمئ بستین",
+       "movearticle": "تاکدیمی انتقال:",
+       "movereason": "دلیل:",
+       "export-addcat": "اڈ\tڈ\t کورتین",
+       "export-addns": "اڈ\tڈ\t کورتین",
+       "allmessagesname": "نام",
+       "allmessages-filter-all": "موچ",
+       "allmessages-language": "زبان:",
+       "allmessages-filter-submit": "برا",
+       "allmessages-filter-translate": "ترجمه",
+       "thumbnail-more": "ٹُوه کورتین",
+       "filemissing": "فایل وجود نداریت",
+       "import-upload-filename": "فایلئ نام:",
+       "import-comment": "کومنیت:",
+       "import-logentry-interwiki": "$1 ئا ترانس ویکی کورت",
+       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|نسخه|نسخه}} داخل بوته شه $2",
+       "javascripttest": "جاوا اسکریپتی آزمایش",
+       "javascripttest-pagetext-noframework": "ای تاکدیم په جاوا اسکریپتی آزمایشی خاتیرا ایشته بوته.",
+       "tooltip-pt-mytalk": "شمی هبر و گپئ تاکدیم",
+       "tooltip-pt-preferences": "نئ تنظیمات",
+       "tooltip-pt-logout": "در بوتین",
+       "tooltip-ca-protect": "ای تاکدیمئ قُلپ کورتین",
+       "tooltip-ca-unprotect": "ای تاکدیمی قُلپئ ٹگل داتین",
+       "tooltip-ca-delete": "پاک کورتین ای تاکدیمئ",
+       "tooltip-ca-undelete": "بیئرگردینتین ڈیلیٹ بوته ئین تاکدیمی نسخه ئانی",
+       "tooltip-ca-move": "ای تاکدیمی انتقال",
+       "tooltip-ca-watch": "اضافه کورتین ای تاکدیمی بی نی واچلیستی تا",
+       "tooltip-ca-unwatch": "ڈیلیٹ کورتین ای تاکدیمی شه نی واچلیستی لڑ لیستا",
+       "tooltip-search": "گشتین بی {{SITENAME}}",
+       "tooltip-search-go": "اگه امکان داشته بیئت تاکدیمی تا گو ای ناما برا",
+       "tooltip-search-fulltext": "گشتین په ای کلمه ئی خاتیرا بی تاکدیمانی تا",
+       "tooltip-p-logo": "بُنیاد ئین تاکدیمی دیستین",
+       "tooltip-n-mainpage": "بُنیاد ئین تاکدیمی دیستین",
+       "tooltip-n-mainpage-description": "بُنیاد ئین تاکدیمی دیستین",
+       "tooltip-n-portal": "بی پروژه ئی موریدا٬ آنچه که توانیت انجام دهیت و ای که چی چیزی ئا شه گوجا ودی بکنیت",
+       "tooltip-t-upload": "فایلی بُرز کورتین",
+       "tooltip-ca-nstab-special": "ای یک خاصین تاکدیمی است٬ شما ئه توانیت که ای تاکدیما ایڈیٹ بکنیت",
+       "tooltip-ca-nstab-project": "پروژه ئی تاکدیمی دیستین",
+       "tooltip-ca-nstab-image": "دیستین فایلی تاکدیمی",
+       "tooltip-watchlistedit-normal-submit": "ئنوانانی پاک کورتین",
+       "tooltip-upload": "بُرز کورتینی شرو",
+       "tooltip-preferences-save": "تنظیماتانی ذخیره کورتین",
+       "anonymous": "زیان نامین {{PLURAL:$1|کار زوروک|کار زوروکان}} شه {{SITENAME}}",
+       "siteuser": "$1، کار زوروک {{SITENAME}}",
+       "anonuser": "$1 نا دروست ئین کار زوروک {{SITENAME}}",
+       "lastmodifiedatby": "ای تاکدیم  آخرین وارا  بی $2، $1 بی $3 دستا تغییر داته بوته.",
+       "others": "دیگران",
+       "siteusers": "$1، {{PLURAL:$2|کار زوروک|کار زوروکان}} {{SITENAME}}",
+       "anonusers": " {{SITENAME}} نادروست ئین {{PLURAL:$2|کار زوروک|کار زوروکان}} $1",
+       "creditspage": "ای تاکدیمی کریدیت ئان",
+       "pageinfo-article-id": "تاکدیمی آی دی",
+       "pageinfo-robot-noindex": "نامجاز",
+       "pageinfo-firstuser": "ای تاکدیمئ جوڑ کنوک",
+       "pageinfo-firsttime": "ای تاکدیمئ جوڑ کورتینی وخت",
+       "pageinfo-lastuser": "آخرین ایڈیٹ کنوک",
+       "pageinfo-lasttime": "آخرین ایڈیٹئ تاریخ",
+       "pageinfo-edits": "موچین ایڈیٹانئ اندازه گ",
+       "pageinfo-authors": "موچین نویسوکانئ اندازه گ",
+       "pageinfo-contentpage-yes": "هان",
+       "pageinfo-protect-cascading-yes": "هان",
+       "pageinfo-category-pages": "تاکدیمانی نمبر",
+       "ilsubmit": "گشتین",
+       "bydate": "شه تاریخی رُوگا",
+       "just-now": "همی انون",
+       "hours-ago": "$1 سائت دیما",
+       "minutes-ago": "$1 دقیقه دیما",
+       "seconds-ago": "$1 {{PLURAL:$1|ثانیه|ثانیه}} دیما",
+       "monday-at": "دوشنبی $1",
+       "tuesday-at": "سه‌شنبی $1",
+       "wednesday-at": "چهارشنبی $1",
+       "thursday-at": "پنج‌شنبی $1",
+       "friday-at": "جوما $1",
+       "saturday-at": "بی شنبی $1",
+       "sunday-at": "یک‌شنبی $1",
+       "yesterday-at": "زئ  بی $1",
+       "exif-writer": "نویسوک",
+       "exif-languagecode": "زبان",
+       "exif-iimversion": "IIM ئی نخسه",
+       "exif-iimcategory": "تهر",
+       "exif-iimsupplementalcategory": "تکمیلین تهر ئان",
+       "exif-datetimereleased": "منتشر بوته بی",
+       "exif-label": "برچسب",
+       "exif-sharpness-0": "ساددگ",
+       "exif-sharpness-1": "نرم",
+       "exif-sharpness-2": "سک",
+       "exif-subjectdistancerange-0": "نامئلوم",
+       "exif-subjectdistancerange-1": "ماکرو",
+       "exif-dc-date": "تاریخ(ئان)",
+       "exif-dc-publisher": "ناشر",
+       "exif-dc-rights": "حقوق",
+       "exif-iimcategory-spo": "سپورت",
+       "exif-iimcategory-war": "جنگ ، لٹ و کوٹ و ناآرامی",
+       "exif-iimcategory-wea": "آپ و هوا",
+       "exif-urgency-normal": "ئادی ($1)",
+       "exif-urgency-low": "کم ($1)",
+       "exif-urgency-high": "باز ($1)",
+       "namespacesall": "موچ",
+       "monthsall": "موچ",
+       "confirmemail": "ایمیل ادرسی تائید کورتین",
+       "confirm_purge_button": "قبول داشتین",
+       "confirm-watch-button": "قبول داشتین",
+       "confirm-unwatch-button": "قبول داشتین",
+       "quotation-marks": "\"$1\"",
+       "imgmultipageprev": "&rarr; دیمتیری تاکدیم",
+       "imgmultipagenext": "بئدین تاکدیم &larr;",
+       "imgmultigo": "برا!",
+       "imgmultigoto": "شوتین بی $1 تاکدیمی تا",
+       "img-lang-default": "(پیش‌فرض ئین زبان)",
+       "img-lang-info": "ارایه کورتین ای اکسی بی  $1 .  $2",
+       "img-lang-go": "برا",
+       "ascending_abbrev": "صعودی",
+       "descending_abbrev": "نزولی",
+       "table_pager_next": "دیگرین تاکدیم",
+       "table_pager_prev": "دیمتیرین تاکدیم",
+       "table_pager_first": "اولین تاکدیم",
+       "table_pager_last": "آخرین تاکدیم",
+       "table_pager_limit_submit": "برا",
+       "redirect-submit": "برا",
+       "redirect-lookup": "گشتین:",
+       "redirect-value": "اندازه گ:",
+       "redirect-user": "کار زوروکی آی ڈی",
+       "redirect-page": "تاکدیمی آی ڈی",
+       "redirect-revision": "تاکدیمی نخسه",
+       "redirect-file": "فایلئ نام",
+       "redirect-not-exists": "اندازه گ ودی نه بوت",
+       "fileduplicatesearch-filename": "فایلئ نام:",
+       "fileduplicatesearch-submit": "گشتین",
+       "fileduplicatesearch-info": "<span dir=\"ltr\">$1 × $2</span> پیکسل<br />فایلئ اندازه گ: $3<br />نوع MIME: $4",
+       "tags-active-header": "پئال؟",
+       "tags-active-yes": "هان",
+       "tags-active-no": "نه",
+       "tags-edit": "ایڈیٹ",
+       "tags-hitcount": "$1 {{PLURAL:$1|ٹگل|ٹگل}}",
+       "comparepages": "تاکدیمانئ مقایسه",
+       "compare-page1": "تاکدیم ۱",
+       "compare-page2": "تاکدیم ۲",
+       "compare-rev1": "نخسه ۱",
+       "compare-rev2": "نخسه ۲",
+       "compare-submit": "مقایسه",
+       "htmlform-selectorother-other": "دیگرین",
+       "htmlform-no": "نه",
+       "htmlform-yes": "هان",
+       "htmlform-chosen-placeholder": "یک گذینه ئی انتخاب بکنیت",
+       "htmlform-cloner-create": "گیشتیر اضافه کورتین",
+       "htmlform-cloner-delete": "پاک کورتین",
+       "rightsnone": "(هیچ)",
+       "revdelete-summary": "ایڈیتی خاصه",
+       "feedback-subject": "ئنوان:",
+       "feedback-message": "پیام:",
+       "feedback-cancel": "کنسیل",
+       "feedback-close": "کار بوت",
+       "searchsuggest-search": "گشتین",
+       "duration-seconds": "$1 ثانیه",
+       "duration-minutes": "$1 دقیقه",
+       "duration-hours": "$1 سائت",
+       "duration-days": "$1 روچ",
+       "duration-weeks": "$1 هپتگ",
+       "duration-years": "$1 سال",
+       "duration-decades": "$1 دههگ",
+       "duration-centuries": "$1 قرن",
+       "duration-millennia": "{{PLURAL:$1|هزار سال |$1 هزار سال}}",
+       "expand_templates_output": "نتیجه",
+       "expand_templates_xml_output": "خروجی XML",
+       "expand_templates_ok": "قبول داشتین",
+       "pagelang-name": "تاکدیم",
+       "pagelang-language": "زبان",
+       "pagelang-use-default": "استفاده کورتین شه پیش فرض ئین زبانا",
+       "pagelang-select-lang": "زبانی انتخاب",
+       "mediastatistics-table-mimetype": "مایم ئی رکم",
+       "mediastatistics-header-unknown": "نامئلوم",
+       "mediastatistics-header-bitmap": "بیت مپ ئی اکسان",
+       "mediastatistics-header-drawing": "طراحی‌هان (اکس برداری ئان)",
+       "mediastatistics-header-audio": "توار",
+       "mediastatistics-header-video": "ویدیوئان",
+       "mediastatistics-header-multimedia": "غنی ئین میڈ\tیا ئان",
+       "mediastatistics-header-office": "آفیس",
+       "mediastatistics-header-text": "متنی",
+       "mediastatistics-header-executable": "اجرایی",
+       "json-error-syntax": "نحوی ئین خطا",
+       "json-error-inf-or-nan": "INF یا NAN ئی مقادیر یک یا گیشتیر بی مقداری که کدگذاری ئا بیئنت",
+       "json-error-unsupported-type": "یک اندازه که نتوانت کد گذاری بیئت داته بوته"
+}
index ba5d7dc..fdb5e4e 100644 (file)
        "revdelete-legend": "দৃষ্টিপাত সীমাবদ্ধ করো",
        "revdelete-hide-text": "সংস্করণের লেখা",
        "revdelete-hide-image": "ফাইলের বিষয়বস্তু আড়াল করো",
-       "revdelete-hide-name": "à¦\95াà¦\9c à¦\8fবà¦\82 à¦²à¦\95à§\8dষà§\8dয আড়াল করো",
+       "revdelete-hide-name": "লà¦\95à§\8dষà§\8dয à¦\93 à¦ªà§\8dযারামিà¦\9fার আড়াল করো",
        "revdelete-hide-comment": "সম্পাদনা সারাংশ",
        "revdelete-hide-user": "সম্পাদকে ব্যবহারকারীর নাম/আইপি",
        "revdelete-hide-restricted": "প্রশাসকবৃন্দ এবং অন্যদের ক্ষেত্রে এই ডাটা রোধ করো",
        "uploaderror": "আপলোড এ সমস্যা হয়েছে",
        "upload-recreate-warning": "'''সতর্কতা: এই নামের ফাইলটি অপসারণ অথবা স্থানান্তর করা হয়েছে।'''\n\nকাজের সুবিধার জন্য অপসারণ এবং স্থানান্তর লগ এখানে দেখানো হল:",
        "uploadtext": "ফাইল আপলোড করতে নিচের ফরমটি ব্যবহার করুন।</br>\nপূর্বে আপলোড করা ফাইল দেখতে বা অনুসন্ধানে [[Special:FileList|পূর্বে আপলোড করা ফাইলের তালিকা]] দেখুন। (পুনঃ)আপলোড করা ফাইল এর নাম  [[Special:Log/upload|আপলোড লগে]] যোগ হয়, অপসারিত ফাইলের নাম [[Special:Log/delete|অপসারণ লগে]] রয়েছে।\n\nকোনো নিবন্ধে ছবি যোগ করতে হলে নিচের উদাহরণ অনুযায়ী সংযোগ দিন:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''',\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' অথবা\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''",
-       "upload-permitted": "যà§\87সব à¦«à¦¾à¦\87লà§\87র à¦§à¦°à¦¨ à¦\85নà§\81মà§\8bদিত: $1।",
-       "upload-preferred": "যà§\87সব à¦«à¦¾à¦\87লà§\87র à¦§à¦°à¦¨ à¦ªà¦\9bনà§\8dদনà§\80য়: $1।",
-       "upload-prohibited": "যà§\87সব à¦«à¦¾à¦\87লà§\87র à¦§à¦°à¦¨ à¦¨à¦¿à¦·à¦¿à¦¦à§\8dধ: $1।",
+       "upload-permitted": "à¦\85নà§\81মà§\8bদিত à¦«à¦¾à¦\87লà§\87র {{PLURAL:$2|ধরন}}: $1।",
+       "upload-preferred": "পà¦\9bনà§\8dদনà§\80য় à¦«à¦¾à¦\87লà§\87র {{PLURAL:$2|ধরন}}: $1।",
+       "upload-prohibited": "নিষিদà§\8dধ à¦«à¦¾à¦\87লà§\87র {{PLURAL:$2|ধরন}}: $1।",
        "uploadlogpage": "আপলোড লগ",
        "uploadlogpagetext": "নিচে সম্প্রতিক আপলোডকৃত ফাইলের তালিকা রয়েছে।\nসংক্ষেপচিত্র সহ দেখতে [[Special:NewFiles|নতুন ফাইলের গ্যালারি]] দেখুন।",
        "filename": "ফাইলের নাম",
        "php-uploaddisabledtext": "পিএইপি -এ ফাইল আপলোড নিস্ক্রিয় রয়েছে।\nঅনুগ্রহ করে file_uploads সেটিং পরীক্ষা করুন।",
        "uploadscripted": "এই ফাইলে এমন HTML বা স্ক্রিপ্ট কোড আছে যা একটি ওয়েব ব্রাউজার ভুল বুঝতে পারে।",
        "uploadscriptednamespace": "এই SVG ফাইলে অবৈধ নামস্থান \"$1\" রয়েছে",
+       "uploadinvalidxml": "আপলোডকৃত ফাইলে XML পার্স করা যাবে না।",
        "uploadvirus": "এই ফাইলটিতে ভাইরাস আছে! ব্যাখ্যা: $1",
        "uploadjava": "এটি একটি ZIP ফরম্যাটের ফাইল, যেখানে একটি জাভা .class ফরম্যাটের ফাইল রয়েছে।\nজাভা ফাইল আপলোডের কোনো অনুমতি নেই, কারণ এই ধরনের ফাইল সিস্টেমে নিরাপত্তা ত্রুটি তৈরী করতে পারে।",
        "upload-source": "উৎস ফাইল",
        "javascripttest": "জাভাস্ক্রিপ্ট পরীক্ষা",
        "javascripttest-pagetext-noframework": "এই পাতাটি জাভাস্ক্রিপ্ট পরীক্ষার জন্য সংরক্ষিত।",
        "javascripttest-pagetext-unknownframework": "পরীক্ষার অজানা ফ্রেমওয়ার্ক \"$1\"।",
+       "javascripttest-pagetext-unknownaction": "অজানা কার্য \"$1\"।",
        "javascripttest-pagetext-frameworks": "অনুগ্রহ করে নিচের কোনো একটি ফ্রেমওয়ার্ক নির্ধারণ করুন: $1",
        "javascripttest-pagetext-skins": "পরীক্ষার জন্য একটি স্কীন নির্ধারণ করুন:",
        "javascripttest-qunit-intro": "mediawiki.org থেকে [$1 পরীক্ষার ডলুমেন্টেশন] দেখুন।",
        "tooltip-pt-mycontris": "আপনার অবদানগুলোর তালিকা",
        "tooltip-pt-login": "আপনার লগ-ইন করাটা বাঞ্চনীয়, কিন্তু তা বাধ্যতামূলক নয়।",
        "tooltip-pt-logout": "প্রস্থান",
+       "tooltip-pt-createaccount": "আপনাকে একটি অ্যাকাউন্ট তৈরি করে প্রবেশ করার পরামর্শ দেওয়া হচ্ছে; তবে এটা বাধ্যতামূলক নয়",
        "tooltip-ca-talk": "বিষয়বস্তু পাতা সম্পর্কে আলোচনা",
        "tooltip-ca-edit": "আপনি এই পাতা সম্পাদনা করতে পারেন। অনুগ্রহ করে সংরক্ষণের আগে প্রাকদর্শন করুন।",
        "tooltip-ca-addsection": "নতুন অনুচ্ছেদ শুরু করুন।",
        "exif-subjectlocation": "বিষয়বস্তুর অবস্থান",
        "exif-exposureindex": "আলোকসম্পাত সূচক",
        "exif-sensingmethod": "সংবেদন পদ্ধতি",
-       "exif-filesource": "ফাইল সোর্স",
+       "exif-filesource": "ফাইলের উৎস",
        "exif-scenetype": "দৃশ্যের ধরন",
        "exif-customrendered": "পছন্দমাফিক ছবি প্রক্রিয়াকরণ",
        "exif-exposuremode": "আলোকসম্পাত মোড",
        "compare-revision-not-exists": "আপনার কাঙ্ক্ষিত সংস্করণটি নেই।",
        "dberr-problems": " দুঃখিত! এই সাইটটি বর্তমানে কারীগরী অসুবিধার মুখোমুখি হয়েছে।",
        "dberr-again": "কয়েক মিনিট পর পুনরায় পরিদর্শনের চেষ্টা করুন।",
-       "dberr-info": "(ডà§\87à¦\9fাবà§\87à¦\9c à¦¸à¦¾à¦°à§\8dভার $1-à¦\8fর à¦¸à¦¾à¦¥à§\87 à¦¯à§\8bà¦\97াযà§\8bà¦\97 à¦\95রা à¦¸à¦®à§\8dভব à¦¹à¦¯à¦¼à¦¨à¦¿)",
-       "dberr-info-hidden": "(ডাà¦\9fাবà§\87à¦\9c à¦¸à¦¾à¦°à§\8dভারà§\87র à¦¸à¦¾à¦¥à§\87 à¦¸à¦\82যà§\8bà¦\97 à¦¦à§\87য়া à¦¸à¦®à§\8dভব à¦¹à¦\9aà§\8dà¦\9bà§\87 à¦¨à¦¾)",
+       "dberr-info": "(ডà§\87à¦\9fাবà§\87à¦\9c à¦ªà§\8dরবà§\87শ à¦\95রা à¦¸à¦®à§\8dভব à¦¹à¦¯à¦¼à¦¨à¦¿: $1)",
+       "dberr-info-hidden": "(ডà§\87à¦\9fাবà§\87à¦\9c à¦ªà§\8dরবà§\87শ à¦\95রা à¦¸à¦®à§\8dভব à¦¹à¦¯à¦¼à¦¨à¦¿)",
        "dberr-usegoogle": "এই পরিস্থিতিতে আপনি গুগলের মাধ্যমে অনুসন্ধান করার চেষ্টা করতে পারেন।",
        "dberr-outofdate": "খেয়াল করুন যে, আমাদের বিষয়বস্তু সম্পর্কিত তাদের সূচি মেয়াদ উত্তীর্ণ হতে পারে।",
        "dberr-cachederror": "এটি অনুরোধকৃত পাতার ক্যাশে লিপি, যা হালনাগাতকৃত নাও হতে পারে।",
        "mediastatistics-header-office": "অফিস",
        "mediastatistics-header-archive": "সংকুচিত বিন্যাস",
        "json-error-unknown": "JSON-এ একটি সমস্যা রয়েছে। ত্রুটি: $1",
-       "json-error-syntax": "সিনট্যাক্স ত্রুটি"
+       "json-error-state-mismatch": "অকার্যকর বা ত্রুটিপূর্ণ JSON",
+       "json-error-ctrl-char": "অক্ষর নিয়ন্ত্রণ ত্রুটি, সম্ভবত ভুল এনকোডকৃত",
+       "json-error-syntax": "সিনট্যাক্স ত্রুটি",
+       "json-error-utf8": "ত্রুটিপূর্ণ ইউটিএফ-৮ অক্ষর, সম্ভবত ভুল এনকোডকৃত",
+       "json-error-unsupported-type": "এনকোড করা যাবে না এমন একটি মানের ধরন দেয়া হয়েছে"
 }
index 493ba09..18ba747 100644 (file)
        "delete-toobig": "Ova stranica ima veliku historiju promjena, preko $1 {{PLURAL:$1|revizije|revizija}}.\nBrisanje takvih stranica nije dopušteno da bi se spriječilo slučajno preopterećenje servera na kojem je {{SITENAME}}.",
        "delete-warning-toobig": "Ova stranica ima veliku historiju izmjena, preko $1 {{PLURAL:$1|izmjene|izmjena}}.\nNjeno brisanje može dovesti do opterećenja operacione baze na {{SITENAME}};\nnastavite s oprezom.",
        "rollback": "Vrati izmjene",
-       "rollback_short": "Vrati",
        "rollbacklink": "vrati",
        "rollbacklinkcount": "vrati $1 {{PLURAL:$1|izmjenu|izmjene|izmjena}}",
        "rollbacklinkcount-morethan": "vrati više od $1 {{PLURAL:$1|izmjene|izmjene|izmjena}}",
        "import-logentry-interwiki": "uveženo (''transwikied'') $1",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|Uvezena $1 revizija|Uvezene $1 revizije|Uvezeno $1 revizija}} od $2",
        "javascripttest": "Testiranje JavaScript-e",
-       "javascripttest-title": "Pokretanje $1 testova",
        "javascripttest-pagetext-noframework": "Ova stranica je određena za pokretanje JavaScript testova.",
        "javascripttest-pagetext-unknownframework": "Nepoznat radni okvir testiranja\"$1\".",
        "javascripttest-pagetext-frameworks": "Molimo Vas izaberite jednu od sljedećih testnih okvira: $1",
        "javascripttest-pagetext-skins": "Izaberite s kojom temom želite da pokrenete probu:",
        "javascripttest-qunit-intro": "Pogledajte [$1 dokumentaciju za testiranje] na mediawiki.org.",
-       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit testni alati",
        "tooltip-pt-userpage": "Vaša korisnička stranica",
        "tooltip-pt-anonuserpage": "Korisnička stranica za ip koju Vi uređujete kao",
        "tooltip-pt-mytalk": "Vaša stranica za razgovor",
        "duration-millennia": "$1 {{PLURAL:$1|milenij|milenija}}",
        "rotate-comment": "Slika rotirana za $1 {{PLURAL:$1|stepen|stepeni}} u smjeru kazaljke na satu",
        "limitreport-cputime": "Vrijeme korištenja CPU",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|sekunda|sekunde|sekundi}}",
        "limitreport-walltime": "Korištenje u realnom vremenu",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|sekunda|sekunde|sekundi}}",
        "expandtemplates": "Proširi šablone",
index 9f2a58f..215064c 100644 (file)
        "prefs-personal": "Perfil d'usuari",
        "prefs-rc": "Canvis recents",
        "prefs-watchlist": "Llista de seguiment",
+       "prefs-editwatchlist": "Edita la llista de seguiment",
+       "prefs-editwatchlist-label": "Editeu les entrades de la vostra llista de seguiment:",
        "prefs-watchlist-days": "Nombre de dies per mostrar en la llista de seguiment:",
        "prefs-watchlist-days-max": "Màxim $1 {{PLURAL:$1|dia|dies}}",
        "prefs-watchlist-edits": "Nombre de modificacions a mostrar en una llista estesa de seguiment:",
        "columns": "Columnes",
        "searchresultshead": "Preferències de la cerca",
        "stub-threshold": "Límit per a formatar l'enllaç com <a href=\"#\" class=\"stub\">esborrany</a> (en octets):",
-       "stub-threshold-disabled": "Deshabilitat",
+       "stub-threshold-disabled": "Inhabilitat",
        "recentchangesdays": "Dies a mostrar en els canvis recents:",
        "recentchangesdays-max": "(màxim $1 {{PLURAL:$1|dia|dies}})",
        "recentchangescount": "Nombre d'edicions a mostrar per defecte:",
index 1e3f5ed..fba767f 100644 (file)
        "tagline": "Гlирс хlокхуьна бу {{grammar:genitive|{{SITENAME}}}}",
        "help": "ГӀо",
        "search": "Лахар",
-       "searchbutton": "Лаха",
+       "searchbutton": "Лахар",
        "go": "Дехьа гӀо",
        "searcharticle": "Дехьа гӀо",
        "history": "Истори",
        "protectedpage": "ГӀароллийца йолу агӀо",
        "jumpto": "Дехьа гӀо:",
        "jumptonavigation": "Навигаци",
-       "jumptosearch": "лаÑ\85а",
+       "jumptosearch": "Ð\9bаÑ\85аÑ\80",
        "view-pool-error": "Бехк цабиллар доьха, хӀинц сервераш йоьттина ю.\nКаьчна дуккха дехарш хӀокху агӀонтӀе хьажарца.\nДехар до, собардеш а юха хьажа хӀокху агӀонтӀе жим тӀаьхьо.\n\n$1",
        "generic-pool-error": "Бехк цабиллар доьха, хӀинц сервер йоьттина ю.\nКаьчна дуккха дехарш хӀокху агӀонтӀе хьажарца.\nДехар до, собардеш а юха хьажа хӀокху агӀонтӀе жим тӀаьхьо.",
        "pool-timeout": "Блоктоха еза хан тӀех йаьлла",
        "protectedpagetext": "ХӀара агӀо дӀакъоьвлина ю тадарш ца дайта.",
        "viewsourcetext": "Хьоьга далундерг хьажар а дезахь хlокху агlон чура йоза хьаэцар:",
        "viewyourtext": "Хьан йиш ю '''хьой нисдинчу''' дӀадолалун йозе хьажа а цуна копи ян а:",
-       "protectedinterface": "Ð¥Ó\80аÑ\80а Ñ\81Ñ\85Ñ\8cгайÑ\82аÑ\80на Ð³Ó\80иÑ\80Ñ\81а Ñ\85аамаÑ\88 Ð»Ð°Ñ\82Ñ\82оÑ\88 Ð¹Ð¾Ð»Ñ\83 Ð°Ð³Ó\80о Ñ\8e. Ð\9aÑ\83Ñ\8cйгалÑ\85оÑ\88на Ð±ÐµÐ½ Ð¸Ð·Ð° Ñ\85ийÑ\86а Ñ\86ало.",
+       "protectedinterface": "Ð¥Ó\80окÑ\85Ñ\83 Ð°Ð³Ó\80она Ñ\87оÑ\85Ñ\8c Ð¸Ð½Ñ\82еÑ\80Ñ\84ейÑ\81ан Ð¿Ñ\80огÑ\80амма Ð»Ð°Ñ\82Ñ\82оÑ\80ан Ñ\85аам Ð±Ñ\83. Ð\97Ñ\83лам Ñ\86а Ð´Ð°Ð¹Ñ\82а Ñ\86Ñ\83на Ñ\85ийÑ\86ам Ð±Ð°Ð½ ÐºÑ\83Ñ\8cйгалÑ\85оÑ\88на Ð±ÐµÐ½ Ñ\86ало.\nÐ¥Ó\80окÑ\85Ñ\83 Ñ\85ааман Ð³Ð¾Ñ\87 Ñ\82Ó\80еÑ\82оÑ\85а Ñ\8f Ñ\85ийÑ\86а Ð»ÐµÐ»Ð°Ðµ Ð»Ð¾ÐºÐ°Ð»Ð¸Ð·Ð°Ñ\86ин Ñ\81айÑ\82 MediaWiki [//translatewiki.net/ translatewiki.net]",
        "editinginterface": "<strong>Тергам бе:</strong> Ахьа таеш ю интерфейсан йоза долу агӀо программин латторан.\nЦуна бина хийцам хьокху Википедин кхечу декъашхошна гур бу.",
+       "translateinterface": "ХӀокху хааман гоч тӀетоха я хийца дехар до лелае локализацин сайт MediaWiki [//translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "АгӀо хийцам ца байта гӀоралла дина ю {{PLURAL:$1|хӀокху агӀона|хӀокху агӀонийн}} юкъа йогӀуш хилар бахьнехь:\n$2",
        "namespaceprotected": "ХӀан бакъо яц анна цӀераш чохь тадарш да «$1».",
        "customcssprotected": "Хьан бакъо яц хӀара CSS-агӀо тая, иза кхечу декъашхочун гӀерс болу дера.",
        "searchprofile-images": "Мультимедиа",
        "searchprofile-everything": "Массанхьа",
        "searchprofile-advanced": "Шуьйра",
-       "searchprofile-articles-tooltip": "Лаха оцу $1",
+       "searchprofile-articles-tooltip": "$1 чохь лахар",
        "searchprofile-images-tooltip": "Файлаш лахар",
-       "searchprofile-everything-tooltip": "Ð\9bаÑ\85а Ð¼Ð°Ñ\81Ñ\81о Ð°Ð³lонаÑ\88каÑ\85Ñ\8c (дийÑ\86аÑ\80е Ð°Ð³lонаÑ\88Ñ\86ани)",
-       "searchprofile-advanced-tooltip": "Ð\9bаÑ\85а Ð´ÐµÑ\85аÑ\80Ñ\86а Ñ\85lокÑ\85Ñ\83 Ð°Ð½Ð° Ñ\86lеÑ\80аÑ\88каÑ\85Ñ\8c",
+       "searchprofile-everything-tooltip": "Ð\9cаÑ\81Ñ\81о Ð°Ð³Ó\80онаÑ\88каÑ\85Ñ\8c Ð»Ð°Ñ\85аÑ\80 (дийÑ\86аÑ\80е Ð°Ð³Ó\80онаÑ\88Ñ\86а)",
+       "searchprofile-advanced-tooltip": "Ð\94еÑ\85аÑ\80Ñ\86а Ð¹Ð¾Ð»Ñ\83 Ñ\86Ó\80еÑ\80ийн Ð¼ÐµÑ\82Ñ\82игаÑ\88каÑ\85Ñ\8c Ð»Ð°Ñ\85аÑ\80",
        "search-result-size": "$1 ({{PLURAL:$2|$2 дош|$2 дешнаш}})",
        "search-result-category-size": "$1 {{PLURAL:$1|юкъаяр}} ($2 {{PLURAL:$2|1=бухара категори|бухара категореш}}, $3 {{PLURAL:$3|1=файл|файлаш}}).",
        "search-redirect": "(дlасахьажийна $1)",
        "timezoneregion-indian": "Индин океан",
        "timezoneregion-pacific": "Тийна океан",
        "allowemail": "Магийта декъашхошна хьайга электрони почтехула кехат кхехьийта",
-       "prefs-searchoptions": "Лаха",
+       "prefs-searchoptions": "Лахар",
        "prefs-namespaces": "ЦӀерийн ана",
        "default": "Iад йитарца",
        "prefs-files": "Файлаш",
        "apihelp-no-such-module": "Модуль «$1» цакарий.",
        "booksources": "Жайнан хьосташ",
        "booksources-search-legend": "Жайнех лаьцна хаам лахар",
-       "booksources-search": "Лаха",
+       "booksources-search": "Лахар",
        "booksources-text": "ХӀокху агӀонгахь гул бина сайтийн тӀе хьажоргийн могӀам оцу чохь шуна жайнах лаьцна хаам каро мега. И ю интернет-туьканаш а категорийн библиотекийн категорешкахь лахаран система а.",
        "specialloguserlabel": "Декъашхо:",
        "speciallogtitlelabel": "Ӏалашо (цӀе я декъашхо):",
        "linksearch": "Арахьара хьажорг",
        "linksearch-pat": "Лехарна кеп:",
        "linksearch-ns": "ЦӀерийн ана:",
-       "linksearch-ok": "Лаха",
+       "linksearch-ok": "Лахар",
        "linksearch-text": "Лело мега хӀоттош йолу символаш, масала, <code>*.wikipedia.org</code>.\nЛакхара даржан домен мукъа хила еза , масала<code>*.org</code><br />\nЛовш йолу {{PLURAL:$2|1=протокол|протоколаш}}: <code>$1</code> (Iад йитарца http://, протокол бакъалла язъен яцахь).",
        "linksearch-line": "$2 — хьажорг кху $1",
        "listusersfrom": "Гучé баха декъашхой, болалуш болу тӀера:",
        "undelete-search-title": "ДӀаяхна агӀонаш лахар",
        "undelete-search-box": "ДӀаяхна агӀонаш лахар",
        "undelete-search-prefix": "Гайта агӀонаш йолалуш йолу тӀера:",
-       "undelete-search-submit": "Лаха",
+       "undelete-search-submit": "Лахар",
        "undelete-no-results": "Архив чохь йогӀуш агӀонаш цакарий.",
        "undelete-error": "АгӀо меттахӀоттаяран гӀалат",
        "undelete-error-short": "Файл меттахӀоттаяран гӀалат: $1",
        "sp-contributions-username": "IP-адрес я декъашхочун цӀе:",
        "sp-contributions-toponly": "ТӀаьхьара бина хийцамаш гайта",
        "sp-contributions-newonly": "АгӀонаш кхоллар бен ма гайта",
-       "sp-contributions-submit": "Лаха",
+       "sp-contributions-submit": "Лахар",
        "whatlinkshere": "Хьажоргаш кхузе",
        "whatlinkshere-title": "«$1» тӀе хьажоргаш йолу агӀонаш",
        "whatlinkshere-page": "Агlо:",
        "tooltip-pt-preferences": "Хьан гlирс нисбар",
        "tooltip-pt-watchlist": "Ахьа тергам бо агӀонийн хийцаман могӀам",
        "tooltip-pt-mycontris": "Хьан нисдаран могӀам",
-       "tooltip-pt-login": "Ð¥lокÑ\85Ñ\83 Ð³lиÑ\80Ñ\81а Ñ\87оÑ\85Ñ\8c Ð´lавазвала/Ñ\8fла Ð¼ÐµÐ³Ð°, Ð°Ð¼Ð¼Ð° Ð¸Ð·Ð° Ñ\82lедожоÑ\88 дац.",
+       "tooltip-pt-login": "Ð\9aÑ\85Ñ\83заÑ\85Ñ\8c Ð´Ó\80аÑ\8fздаÑ\80 ÐºÑ\85олла Ð¼ÐµÐ³Ð°, Ð°Ð¼Ð¼Ð° Ð¸Ð·Ð° Ñ\82Ó\80едожийна дац.",
        "tooltip-pt-logout": "Дlадерзадо болх бар",
+       "tooltip-pt-createaccount": "Шу йиш ю дӀаяздар кхоьллина системин чудаха, амма иза тӀедожийна дац.",
        "tooltip-ca-talk": "Дийцаре агlон чулацам",
        "tooltip-ca-edit": "Хlара агlо хийцалур ю. Лелайе, дехар до, хьалххьажар айхьа чутохале lалашан",
        "tooltip-ca-addsection": "Кхолла керла дакъа",
        "feedback-submit": "Дахьийта хетарг",
        "feedback-adding": "АгӀона хетарг тӀетохар...",
        "feedback-close": "Кийчча ю",
-       "searchsuggest-search": "Лаха",
+       "searchsuggest-search": "Лахар",
        "searchsuggest-containing": "чуьраниг…",
        "api-error-duplicate": "Иштта чулацам болу {{PLURAL:$1|1=[$2 кхин файл]|[$2 кхин файлаш]}} йолуш ю",
        "api-error-duplicate-popup-title": "{{PLURAL:$1|1=Файлан|Файлийн}} дубликат.",
index 54b4a8b..00a200e 100644 (file)
        "prefs-personal": "Údaje o uživateli",
        "prefs-rc": "Poslední změny",
        "prefs-watchlist": "Sledované stránky",
+       "prefs-editwatchlist": "Editovat seznam sledovaných stránek",
+       "prefs-editwatchlist-label": "Editovat položky vašeho seznamu sledovaných stránek:",
+       "prefs-editwatchlist-edit": "Zobrazit a odebrat položky vašeho seznamu sledovaných stránek",
+       "prefs-editwatchlist-raw": "Editovat textový soubor sledovaných stránek",
+       "prefs-editwatchlist-clear": "Vyprázdnit seznam sledovaných stránek",
        "prefs-watchlist-days": "Počet dní zobrazených ve sledovaných stránkách:",
        "prefs-watchlist-days-max": "Maximálně $1 {{PLURAL:$1|den|dny|dní}}",
        "prefs-watchlist-edits": "Počet editací zobrazených ve zdokonalených sledovaných stránkách:",
        "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 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.",
+       "upload-permitted": "{{PLURAL:$2|Povolený formát|Povolené formáty}} souborů: $1.",
+       "upload-preferred": "{{PLURAL:$2|Upřednostňovaný formát|Upřednostňované formáty}} souborů: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Zakázaný formát|Zakázané formáty}} souborů: $1.",
        "uploadlogpage": "Kniha nahrávek",
        "uploadlogpagetext": "Níže najdete seznam nejnovějších souborů.",
        "filename": "Soubor",
        "listgrouprights-key": "Legenda:\n* <span class=\"listgrouprights-granted\">Udělená práva</span>\n* <span class=\"listgrouprights-revoked\">Odebraná práva</span>",
        "listgrouprights-group": "Skupina",
        "listgrouprights-rights": "Práva",
-       "listgrouprights-helppage": "Help:Práva skupiny",
+       "listgrouprights-helppage": "Help:Práva uživatelských skupin",
        "listgrouprights-members": "(seznam členů)",
        "listgrouprights-addgroup": "Přidávání uživatelů do {{PLURAL:$2|skupiny|skupin}} $1",
        "listgrouprights-removegroup": "Vyřazování uživatelů ze {{PLURAL:$2|skupiny|skupin}} $1",
index 8604ac9..988f141 100644 (file)
        "history-feed-empty": "Den ønskede side findes ikke. Måske er den slettet eller flyttet. [[Special:Search|Gennemsøg]] {{SITENAME}} efter passende nye sider.",
        "rev-deleted-comment": "(redigeringsbeskrivelsen er fjernet)",
        "rev-deleted-user": "(brugernavn fjernet)",
-       "rev-deleted-event": "(loghandling fjernet)",
+       "rev-deleted-event": "(logdetaljer fjernet)",
        "rev-deleted-user-contribs": "[brugernavn eller IP-adresse er fjernet - redigeringer er skjult fra bidragene]",
        "rev-deleted-text-permission": "Denne version af siden er blevet '''slettet'''.\nDer er måske flere detaljer i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletteloggen].",
        "rev-deleted-text-unhide": "Denne version af siden er '''slettet'''.\nDer er måske flere detaljer i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletningsloggen].\nDu kan du stadig [$1 se versionen], hvis du ønsker at fortsætte.",
        "search-result-category-size": "{{PLURAL:$1|1 medlem|$1 medlemmer}} ({{PLURAL:$2|1 underkategori|$2 underkategorier}}, {{PLURAL:$3|1 fil|$3 filer}})",
        "search-redirect": "(omdirigering $1)",
        "search-section": "(afsnit $1)",
+       "search-category": "(kategorien $1)",
+       "search-file-match": "(svarer til filens indhold)",
        "search-suggest": "Mente du: $1",
        "search-interwiki-caption": "Søsterprojekter",
        "search-interwiki-default": "Resultater fra $1:",
        "uploaderror": "Fejl under oplægning af fil",
        "upload-recreate-warning": "'''Advarsel: En fil med det navn, er blevet slettet eller flyttet.'''\n\nSletnings- og flytnings-loggen for denne side leveres her for nemheds skyld:",
        "uploadtext": "Brug formularen herunder til at lægge filer op.\nGå til [[Special:FileList|listen over filer]] for at se eller søge i eksisterende filer. (Gen-)oplægnigner logges i [[Special:Log/upload|oplægningsloggen]], sletninger i [[Special:Log/delete|sletteloggen]].\n\nBrug en henvisning af en de følgende typer for at bruge en fil på en side:\n*'''<code><nowiki>[[</nowiki>{{ns:file}}:Filnavn.jpg<nowiki>]]</nowiki></code>''' for at bruge den fulde version af et bilede\n*'''<code><nowiki>[[</nowiki>{{ns:file}}:Filnavn.png|200px|thumb|left|Alternativ tekst<nowiki>]]</nowiki></code>''' for at bruge billedet med en bredde på 200&nbsp;pixel i en ramme til venstre med \"Alternativ tekst\" som beskrivelse\n*'''<code><nowiki>[[</nowiki>{{ns:media}}:Filnavn.ogg<nowiki>]]</nowiki></code>''' for at henvise direkte til filen uden at vise den",
-       "upload-permitted": "Tilladte filtyper: $1.",
-       "upload-preferred": "Foretrukne filtyper: $1.",
-       "upload-prohibited": "Uønskede filtyper: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tilladt filtype:|Tilladte filtyper:}} $1.",
+       "upload-preferred": "{{PLURAL:$2|Foretrukken filtype:|Foretrukne filtyper:}} $1.",
+       "upload-prohibited": "{{PLURAL:$2|Uønsket filtype:|Uønskede filtyper:}} $1.",
        "uploadlogpage": "Oplægningslog",
        "uploadlogpagetext": "Herunder vises de senest oplagte filer. Alle de viste tider er serverens tid.",
        "filename": "Filnavn",
        "randomincategory-invalidcategory": "\"$1\" er ikke et gyldigt kategorinavn.",
        "randomincategory-nopages": "Der er ingen sider i [[:Category:$1]].",
        "randomincategory-category": "Kategori:",
+       "randomincategory-legend": "Tilfældig side i en given kategori",
        "randomredirect": "Tilfældige henvisninger",
        "randomredirect-nopages": "Der er ingen omdirigeringer i navnerummet $1.",
        "statistics": "Statistik",
        "listgrouprights-namespaceprotection-header": "Navnerumsbegrænsninger",
        "listgrouprights-namespaceprotection-namespace": "Navnerum",
        "listgrouprights-namespaceprotection-restrictedto": "Rettighed(er) der giver brugeren mulighed for at redigere",
+       "trackingcategories": "Sporingskategorier",
+       "trackingcategories-msg": "Sporingskategori",
        "trackingcategories-desc": "Optagelseskriterier for kategori",
        "noindex-category-desc": "Siden indekseres ikke af robotter, fordi den indeholder det magiske ord <code><nowiki>__NOINDEX__</nowiki></code> og er i et navnerum, hvor dette flag er tilladt.",
        "index-category-desc": "Siden indeholder <code><nowiki>__INDEX__</nowiki></code> (og er i et navnerum, hvor dette flag er tilladt), og bliver derfor indekseret af robotter, hvor den normalt ikke ville blive det.",
        "tooltip-feed-atom": "Atom-feed for denne side",
        "tooltip-t-contributions": "Se denne brugers bidrag",
        "tooltip-t-emailuser": "Send en e-mail til denne bruger",
+       "tooltip-t-info": "Yderligere oplysninger om denne side",
        "tooltip-t-upload": "Upload et billede eller anden mediafil",
        "tooltip-t-specialpages": "Liste over alle specialsider",
        "tooltip-t-print": "Printervenlig udgave af denne side",
        "logentry-rights-rights": "$1 {{GENDER:$2|ændrede}} gruppemedlemskabet for $3 fra $4 til $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|ændrede}} gruppemedlemskabet for $3",
        "logentry-rights-autopromote": "$1 blev automatisk {{GENDER:$2|forfremmet}} fra $4 til $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|lagde}} $3 op",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|lagde}} en ny udgave af $3 op",
+       "logentry-upload-revert": "$1 {{GENDER:$2|lagde}} $3 op",
        "rightsnone": "(-)",
        "revdelete-summary": "redigeringsbeskrivelse",
        "feedback-bugornote": "Hvis du er klar til at beskrive et teknisk problem i detaljer, bedes du [$1 rapportere en fejl].\nEllers kan du bruge den enkle formular nedenfor. Din kommentar vil blive tilføjet siden \"[$3 $2]\" sammen med dit brugernavn og den browser, du anvender.",
        "pagelang-language": "Sprog",
        "pagelang-use-default": "Brug standardsprog",
        "pagelang-select-lang": "Vælg sprog",
-       "right-pagelang": "Ændre sidesproget"
+       "right-pagelang": "Ændre sidesproget",
+       "mediastatistics": "Mediestatistik",
+       "mediastatistics-table-count": "Antal filer",
+       "mediastatistics-table-totalbytes": "Samlet størrelse",
+       "mediastatistics-header-unknown": "Ukendt",
+       "mediastatistics-header-audio": "Lyd",
+       "mediastatistics-header-video": "Videoer",
+       "mediastatistics-header-text": "Tekstformat",
+       "mediastatistics-header-executable": "Kørbare filer",
+       "mediastatistics-header-archive": "Komprimerede formater",
+       "json-error-syntax": "Syntaksfejl"
 }
index b528f1e..4cdf68f 100644 (file)
        "prefs-personal": "Benutzerdaten",
        "prefs-rc": "Letzte Änderungen",
        "prefs-watchlist": "Beobachtungsliste",
+       "prefs-editwatchlist": "Beobachtungsliste bearbeiten",
+       "prefs-editwatchlist-label": "Einträge auf deiner Beobachtungsliste bearbeiten:",
+       "prefs-editwatchlist-edit": "Titel auf deiner Beobachtungsliste ansehen und entfernen",
+       "prefs-editwatchlist-raw": "Rohe Beobachtungsliste bearbeiten",
+       "prefs-editwatchlist-clear": "Deine Beobachtungsliste leeren",
        "prefs-watchlist-days": "Maximale Anzahl der einbezogenen Tage:",
        "prefs-watchlist-days-max": "Maximal {{PLURAL:$1|ein Tag|$1 Tage}}",
        "prefs-watchlist-edits": "Maximale Anzahl der angezeigten Einträge:",
index cfa42ee..176ed1c 100644 (file)
        "wantedtemplates": "Şablonê ke waziyenê",
        "mostlinked": "Pelî ke tewr zafî lînk bîy.",
        "mostlinkedcategories": "Kategoriyê ke tewr zehf meqaley tede estê",
-       "mostlinkedtemplates": "Şablonê ke tewr zafî pela re gıre bîye.",
+       "mostlinkedtemplates": "Pelê ke zêdêr gureniyenê",
        "mostcategories": "Pelan ke tewr zaf kategorî estê.",
        "mostimages": "Dosyayan ke tewr zaf link estê.",
        "mostinterwikis": "Pelan ke tewr zaf interwiki biyê.",
        "actioncomplete": "Kar bi temam",
        "actionfailed": "kar nêbı",
        "deletedtext": "\"$1\" biya wedariya.\nQe qeydê wedarnayışi, $2 bevinin.",
-       "dellogpage": "Qeydê esterniye",
+       "dellogpage": "Qeydê esterıtışi",
        "dellogpagetext": "listeya cêrıni heme qaydê hewn a kerdeyan o.",
-       "deletionlog": "qaydê hewnakerdışani",
+       "deletionlog": "qeydê esterıtışi",
        "reverted": "revizyono verin tepiya anciyayo",
        "deletecomment": "Sebeb:",
        "deleteotherreason": "Sebebo bin:",
        "reblock-logentry": "qey [[$1]]i tarixê qediyayişi $2 $3 pa ninan a eyarê ver-grewtışan vurna.",
        "blocklogtext": "No kuliyatê kılitkerdış u rakerdışê fealiyetê karberano.\nAdresê IP'ya ke otomatikmen kılit biyê lista de çıniya.\nSeba lista karberanê ke heta nıka kılit biyê [[Special:BlockList|lista kılitkerdışê IPy]] bıvinê.",
        "unblocklogentry": "$1 ake",
-       "block-log-flags-anononly": "karberê anomini tenya",
+       "block-log-flags-anononly": "tenya karberê anonimi",
        "block-log-flags-nocreate": "akerdışê hesabi racneyayo",
        "block-log-flags-noautoblock": "Oto-wedariye terkneyayo",
        "block-log-flags-noemail": "e-posta biya bloqe",
index 72636c4..822d426 100644 (file)
        "recentchanges-label-minor": "Còsta l'é 'na mudéfica céca",
        "recentchanges-label-bot": "Cla mudéfica ché l'é stêda fâta da un bot.",
        "recentchanges-label-unpatrolled": "Cla mudéfica ché an n'é mìa incòra stêda verifichêda.",
+       "recentchanges-label-plusminus": "Cambiamèint ed la pàgina in nómer ed byte",
+       "recentchanges-legend-heading": "'''Spiegasiòun:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (guêrda [[Special:NewPages|al pàgini nōvi]])",
        "rcnotefrom": "Ché sòt a {{PLURAL:$5|gh'é la mudéfica fâta|gh'în al mudéfichi fâti}} a partîr da<strong>$3,$4</strong>(fîn a <strong>$1</strong>).",
        "rclistfrom": "Fà vèder al mudéfichi fâti a partîr da $3 $2",
        "rcshowhideminor": "$1 al mudéfichi céchi",
+       "rcshowhideminor-show": "Fà vèder",
+       "rcshowhideminor-hide": "Lōga",
        "rcshowhidebots": "$1 i bot",
+       "rcshowhidebots-show": "Fà vèder",
+       "rcshowhidebots-hide": "Lōga",
        "rcshowhideliu": "$1 j utèint registrê",
+       "rcshowhideliu-show": "Fà vèder",
+       "rcshowhideliu-hide": "Lōga",
        "rcshowhideanons": "$1 j utèint sèinsa nòm.",
+       "rcshowhideanons-show": "Fà vèder",
+       "rcshowhideanons-hide": "Lōga",
        "rcshowhidepatr": "$1 al mudéfichi verifichêdi",
+       "rcshowhidepatr-show": "Fà vèder",
+       "rcshowhidepatr-hide": "Lōga",
        "rcshowhidemine": "$1 al mē mudéfichi",
+       "rcshowhidemine-show": "Fà vèder",
+       "rcshowhidemine-hide": "Lōga",
        "rclinks": "Fà vèder al $1 ûltmi mudéfichi fâti int j ûltem $2 dé<br />$3",
        "diff": "dif",
        "hist": "stòria",
        "newpageletter": "N",
        "boteditletter": "b",
        "number_of_watching_users_pageview": "[vésta da {{PLURAL:$1|un utèint|$1 utèint}}]",
+       "rc_categories": "Lémita al categoréi (divîşi da \"|\")",
        "rc_categories_any": "Bast' ech sia",
+       "rc-change-size-new": "$1 {{PLURAL:$1|byte|byte}} dôp la mudéfica",
+       "newsectionsummary": "/* $1 */ sesiòn nōva",
        "rc-enhanced-expand": "Fà vèder i particulêr.",
        "rc-enhanced-hide": "Lōga i particulêr.",
+       "rc-old-title": "in urégin fâta cme \"$1\"",
        "recentchangeslinked": "Mudéfichi coleghêdi",
+       "recentchangeslinked-feed": "Mudéfichi coleghêdi",
        "recentchangeslinked-toolbox": "Mudéfichi coleghêdi",
        "recentchangeslinked-title": "Mudéfichi coleghêdi a $1.",
        "recentchangeslinked-summary": "Cla pàgina specêla ché la fà vèder al j ûltmi mudéfichi al pàgini coleghêdi da còla sgnêda (o dèinter int la categoréia sgnêda). Al pàgini dèint a la tó lésta 'd j [[Special:Watchlist|tgnû sòt ôc specêl]] în sgnêdi in '''grasèt'''.",
        "recentchangeslinked-page": "Nòm ' d la pàgina.",
        "recentchangeslinked-to": "Fà vèder sōl al mudéfichi fâti al pàgini coleghêdi a còla sgnêda.",
        "upload": "Cârga un file",
+       "uploadbtn": "Cârga un file",
+       "reuploaddesc": "Tōrna al modèl p'r al cargamèint.",
+       "upload-tryagain": "Spidés la spiegasiòun dal file mudifichê",
+       "uploadnologin": "An t'é mìa gnû dèinter",
+       "uploadnologintext": "Per carghêr al file è necesâri $1.",
+       "upload_directory_missing": "La cartèla 'd cargamèint dal j infurmasiòun ($1) l'an gh'é mìa e l'an pōl mìa èser fâta dal prugrâma dal sît.",
+       "upload_directory_read_only": "Al prugrâma dal sît an n'é bòun de scréver int la cartèla 'd cargamèint dal j infurmasiòun ($1).",
+       "uploaderror": "Erōr int al cargamèint",
+       "upload-recreate-warning": "<strong>Atèint: un file cun cól nòm ché l'é stê scanşlê o spustê. </strong> L' elèinch dal scanşladûri e di spustamèint ed cla pàgina ché al vîn scrét ché sòta per cumditê:",
+       "upload-permitted": "{{PLURAL:$2|Gèner ed file permés}}: $1.",
+       "upload-preferred": "{{PLURAL:$2| Gèner ed file cunsiliê}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Gèner ed file mìa permés}}: $1.",
        "uploadlogpage": "Fil carghê",
+       "uploadlogpagetext": "Ed sègvit a gh'é lelèinch ed j ûltem file carghê. Consultêr la [[Special:NewFiles|galeréia di file nōv]] per vèdri tót.",
+       "filename": "Nòm dal file",
        "filedesc": "Particulêr.",
+       "fileuploadsummary": "Sûnt:",
+       "filereuploadsummary": "Cambiamèint al file:",
+       "filestatus": "Infurmasiòun inséma 'l dirét 'd avtōr:",
+       "filesource": "Surzéia",
+       "ignorewarning": "Trascûra l'avîş e a tóti 'l manēri sêlva al file",
+       "ignorewarnings": "An badêr mìa a i mesâg dal sistēma",
+       "minlength1": "Al nòm dal file al dēv èser fât d' almēno 'na lètra.",
        "license": "Licèinsa:",
        "license-header": "Licèinsa",
        "nolicense": "Nisóna licèinsa sgnêda",
index 9e072b6..e701137 100644 (file)
        "prefs-personal": "User profile",
        "prefs-rc": "Recent changes",
        "prefs-watchlist": "Watchlist",
+       "prefs-editwatchlist": "Edit watchlist",
+       "prefs-editwatchlist-label": "Edit entries on your watchlist:",
+       "prefs-editwatchlist-edit": "View and remove titles on your watchlist",
+       "prefs-editwatchlist-raw": "Edit raw watchlist",
+       "prefs-editwatchlist-clear": "Clear your watchlist",
        "prefs-watchlist-days": "Days to show in watchlist:",
        "prefs-watchlist-days-max": "Maximum $1 {{PLURAL:$1|day|days}}",
        "prefs-watchlist-edits": "Maximum number of changes to show in expanded watchlist:",
        "redirect": "Redirect by file, user, page or revision ID",
        "redirect-legend": "Redirect to a file or page",
        "redirect-text": "",
-       "redirect-summary": "This special page redirects to a file (given the file name), a page (given a revision ID or page ID), or a user page (given a numeric user ID). Usage: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], or [[{{#Special:Redirect}}/user/101]].",
+       "redirect-summary": "This special page redirects to a file (given the filename), a page (given a revision ID or page ID), or a user page (given a numeric user ID). Usage: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], or [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "Go",
        "redirect-lookup": "Lookup:",
        "redirect-value": "Value:",
        "redirect-user": "User ID",
        "redirect-page": "Page ID",
        "redirect-revision": "Page revision",
-       "redirect-file": "File name",
+       "redirect-file": "Filename",
        "redirect-not-exists": "Value not found",
        "fileduplicatesearch": "Search for duplicate files",
        "fileduplicatesearch-summary": "Search for duplicate files based on hash values.",
index edba1e9..e601e4b 100644 (file)
@@ -66,7 +66,7 @@
        "tog-shownumberswatching": "Montri la nombron da priatentaj uzantoj",
        "tog-oldsig": "Ekzistanta subskribo:",
        "tog-fancysig": "Trakti subskribon kiel vikitekston (sen aŭtomata ligo)",
-       "tog-uselivepreview": "Uzi tujan antaŭrigardon (per ĜavaSkripto) (Eksperimenta)",
+       "tog-uselivepreview": "Uzadi tujan antaŭrigardon",
        "tog-forceeditsummary": "Averti min kiam mi konservas malplenan redaktoresumon",
        "tog-watchlisthideown": "Kaŝi miajn redaktojn de la atentaro",
        "tog-watchlisthidebots": "Kaŝi robotajn redaktojn de la atentaro",
        "pool-queuefull": "Atendovico de servilaro estas plena.",
        "pool-errorunknown": "Nekonata eraro",
        "pool-servererror": "La servo manaĝanta aliron al serviloj ne estas disponebla ($1).",
+       "poolcounter-usage-error": "Uzeraro: $1",
        "aboutsite": "Pri {{SITENAME}}",
        "aboutpage": "Project:Enkonduko",
        "copyright": "La enhavo estas disponebla laŭ $1, se ne estas alia indiko.",
        "content-model-text": "ordinara teksto",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
-       "duplicate-args-category": "Paĝoj kun pluroblaj argumentoj en ŝanblonvokoj",
+       "content-json-empty-object": "Malplena objeto",
+       "content-json-empty-array": "Malplena tabelo",
+       "duplicate-args-category": "Paĝoj kun pluroblaj argumentoj en ŝablonvokoj",
        "duplicate-args-category-desc": "La paĝo enhavas uzon de ŝablono kun pluroble uzitaj argumentoj, kiel ekzemple <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> aŭ <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Averto: Ĉi tiu paĝo enhavas tro da multekostaj sintaksaj funkcio-vokoj.\n\nĜi havu malpli ol $2 {{PLURAL:$2|vokon|vokojn}}, sed nun estas $1 {{PLURAL:$1|voko|vokoj}}.",
        "expensive-parserfunction-category": "Paĝoj kun tro da multekostaj sintaksaj funkcio-vokoj",
        "history-feed-empty": "La petita paĝo ne ekzistas.\nĜi verŝajne estis forigita de la vikio, aŭ alinomita.\nProvu [[Special:Search|serĉi en la vikio]] por rilataj novaj paĝoj.",
        "rev-deleted-comment": "(komento forigita)",
        "rev-deleted-user": "(uzanto-nomo forigita)",
-       "rev-deleted-event": "(protokola ago forigita)",
+       "rev-deleted-event": "(protokolaj detaloj forigitaj)",
        "rev-deleted-user-contribs": "[salutnomo aŭ IP-adreso estis forigita - redakto estas kaŝita en kontribuoj]",
        "rev-deleted-text-permission": "Ĉi tiu revizio de la paĝo estis '''forigita'''.\nEble estas detaloj en la [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} protokolo pri forigado].",
        "rev-suppressed-text-permission": "Ĉi tiu paĝa revizio estis '''kaŝita'''.\nDetaloj estas troveblaj en la [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} protokolo pri kaŝitoj revizioj].",
        "logdelete-selected": "{{PLURAL:$1|Selektata protokola evento|Selektataj protokolaj eventoj}}:",
        "revdelete-text-text": "Forigitaj versioj ankoraŭ restas en la versia historio, sed partoj de ilia enhavo ne estas alireblaj por la publiko.",
        "revdelete-text-file": "Forigitaj dosieraj versioj ankoraŭ restas en la dosiera historio, sed partoj de ilia enhavo ne estas alireblaj por la publiko.",
+       "logdelete-text": "Forigitaj protokolaĵoj plu aperos en la protokolo, sed partoj de ilia enhavo ne estos alireblaj por publiko.",
        "revdelete-text-others": "Aliaj administrantoj ankoraŭ havas aliron al la kaŝita enhavo kaj povas malforigi ĝin, tiel longe kiel aldonaj restriktoj ne estas difinitaj.",
        "revdelete-confirm": "Bonvolu konfirmi ke vi intencias fari ĉi tion, ke vi komprenas la konsekvencojn kaj ke vi faras ĉi tion laŭ [[{{MediaWiki:Policy-url}}|la regularo]].",
        "revdelete-suppress-text": "Subpremo '''nur''' estu uzata por la jenaj kazoj:\n* Ebla kalumnia informo\n* Netaŭga persona informo\n*: ''hejmaj adresoj kaj telefonnumeroj, ŝtataj identnumeroj, ktp.''",
        "revdelete-legend": "Fari videblecajn limigojn",
        "revdelete-hide-text": "Teksto de revizio",
        "revdelete-hide-image": "Kaŝi enhavon de dosieroj",
-       "revdelete-hide-name": "Kaŝi agon kaj celon",
+       "revdelete-hide-name": "Kaŝi celon kaj parametrojn",
        "revdelete-hide-comment": "Resumo de redakto",
        "revdelete-hide-user": "Salutnomo de redaktanto/IP-adreso",
        "revdelete-hide-restricted": "Subpremi ĉi tiujn datenojn de administrantoj kaj ankaŭ aliaj",
        "mergehistory-empty": "Neniuj versioj estas kunigeblaj.",
        "mergehistory-success": "$3 {{PLURAL:$3|versio|versioj}} de [[:$1]] sukcese {{PLURAL:$3|kunigita|kunigitaj}} en [[:$2]].",
        "mergehistory-fail": "Ne povis fari la historian kunigon; bonvolu konstati la paĝajn kaj tempajn parametrojn.",
+       "mergehistory-fail-toobig": "Ne eblas kunigi historiojn ĉar pli ol sojlo de $1 {{PLURAL:$1|revizio|revizioj}} estus {{PLURAL:$1|movita|movitaj}}.",
        "mergehistory-no-source": "Fontpaĝo $1 ne ekzistas.",
        "mergehistory-no-destination": "Celpaĝo $1 ne ekzistas.",
        "mergehistory-invalid-source": "Fontpaĝo devas esti valida titolo.",
        "prefs-tokenwatchlist": "Ĵetono",
        "prefs-diffs": "Diferencoj",
        "prefs-help-prefershttps": "Ĉi tiu agordo ekefikos je via sekva ensaluto.",
+       "prefswarning-warning": "Vi faris ŝanĝojn al viaj agordoj, kiuj ankoraŭ ne estas konservitaj.\nSe vi foriros de tiu ĉi paĝo sen klaki al \"$1\", viaj agordoj ne estos ĝisdatigitaj.",
        "prefs-tabs-navigation-hint": "Konsileto: Vi povas uzi la maldekstran kaj dekstran sagajn klavojn por navigi inter la langetoj en la langeta listo.",
        "email-address-validity-valid": "Ŝajnas ke la retpoŝtadreso estas valida",
        "email-address-validity-invalid": "Tajpu validan retpoŝtadreson",
        "uploaderror": "Eraro okazis dum alŝuto",
        "upload-recreate-warning": "''Atenton: dosiero kun tiu nomo estis forigita aŭ alinomita.'''\n\nLa forigo kaj mova protokoloj por ĉi tiu paĝo estas provizitaj ĉi tie por oportuno:",
        "uploadtext": "Uzu la jenan formularon por alŝuti dosierojn.\nVidi aŭ serĉi antaŭe alŝutitajn bildojn, iru al [[Special:FileList|Listo de alŝutitaj dosieroj]]; (re)alŝutaĵoj ankaŭ estas registrita en la [[Special:Log/upload|Protokolo de alŝutoj]], forigoj en la [[Special:Log/delete|protokolo de forigoj]].\n\nPor inkluzivi la dosieron en paĝon, skribu ligilon laŭ la formoj\n\n* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Bildo.jpg]]</nowiki>''' por uzi la plenan version de la dosiero\n* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Bildo.png|200px|thumb|left|alternativa teksto]]</nowiki>''' por uzi 200-rastrumeran version en kesto maldekstre (\"left\") kun \"alternativa teksto\" kiel priskribo.\n* '''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:Dosiero.ogg]]</nowiki>''' por ligi rekte al la dosiero ne montrante la dosieron.",
-       "upload-permitted": "Permesitaj dosiertipoj: $1.",
-       "upload-preferred": "Preferitaj dosiertipoj: $1.",
-       "upload-prohibited": "Malpermesitaj dosiero-tipoj: $1.",
+       "upload-permitted": "{{PLURAL:$2|Permesita dosiertipo|Permesitaj dosiertipoj}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Preferata dosiertipo|Preferataj dosiertipoj}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Malpermesita dosiertipo|Malpermesitaj dosiertipoj}}: $1.",
        "uploadlogpage": "Protokolo de alŝutoj",
        "uploadlogpagetext": "Jen la plej laste alŝutitaj dosieroj.\nĈiuj tempoj montriĝas laŭ la horzono UTC.",
        "filename": "Dosiernomo",
        "deleteprotected": "Vi ne povas forigi ĉi tiun paĝon ĉar ĝi estis protektita.",
        "deleting-backlinks-warning": "'''Atentigo:'''\n[[Special:WhatLinksHere/{{FULLPAGENAME}}|Aliaj paĝoj]] ligas al aŭ transkludas tiun ĉi forigotan paĝon.",
        "rollback": "Restarigi antaŭan redakton",
-       "rollback_short": "Malfari",
        "rollbacklink": "malfari",
        "rollbacklinkcount": "nuligi $1 {{PLURAL:$1|redakton|redaktojn}}",
        "rollbacklinkcount-morethan": "nuligi pli ol $1 {{PLURAL:$1|redakton|redaktojn}}",
        "import-logentry-interwiki": "transvikiigita $1",
        "import-logentry-interwiki-detail": "Importis $1 {{PLURAL:$1|revizion|reviziojn}} de $2",
        "javascripttest": "Ĝavoskripta testado",
-       "javascripttest-title": "Irigante $1 testoj",
        "javascripttest-pagetext-noframework": "Ĉi tiu paĝo estas konservita por funkciigi testojn de JavaScript.",
        "javascripttest-pagetext-unknownframework": "Nekonta test-framo \"$1\".",
        "javascripttest-pagetext-frameworks": "Bonvolu elekti unu el la jenaj test-framoj: $1",
        "javascripttest-pagetext-skins": "Elektu kun kio etoso irigi la testojn:",
        "javascripttest-qunit-intro": "Vidu [$1 testa dokumentaro] en mediawiki.org.",
-       "javascripttest-qunit-heading": "Testaro QUnit por JavaScript de MediaWiki",
        "tooltip-pt-userpage": "Via uzantopaĝo",
        "tooltip-pt-anonuserpage": "La uzantopaĝo por la IP adreso sub kiu vi estas redaktanta",
        "tooltip-pt-mytalk": "Via diskutpaĝo",
        "version-entrypoints": "Eniropunktaj URL-oj",
        "version-entrypoints-header-entrypoint": "Eniropunkto",
        "version-entrypoints-header-url": "Retadreso",
+       "version-libraries": "Instalitaj bibliotekoj",
+       "version-libraries-library": "Biblioteko",
+       "version-libraries-version": "Versio",
        "redirect-legend": "Alidirektilo al dosiero aŭ paĝo",
        "redirect-submit": "Ek",
        "redirect-lookup": "Traserĉi:",
        "compare-revision-not-exists": "La revizio kiun vi specifis ne ekzistas.",
        "dberr-problems": "Bedaŭrinde, ĉi tiu retejo suferas pro teknikaj problemoj.",
        "dberr-again": "Bonvolu atendi kelkajn minutojn kaj reŝargi.",
-       "dberr-info": "(Ne eblas kontakti la datenbazan servilon: $1)",
-       "dberr-info-hidden": "(Ne eblas kontakti la datenbazan servilon)",
+       "dberr-info": "(Ne eblas konekti la datumbazon: $1)",
+       "dberr-info-hidden": "(Ne eblas konekti la datenbazon)",
        "dberr-usegoogle": "Vi povas serĉi Guglon dume.",
        "dberr-outofdate": "Notu ke iliaj indeksoj de nia enhavo eble ne estas ĝisdatigaj.",
        "dberr-cachederror": "Jen kaŝmemorigita kopio de la petita paĝo, kaj eble ne estas ĝisdatigita.",
index 2b73de5..9065b4f 100644 (file)
                        "Eurodyne",
                        "Gleki",
                        "Jonathan rrr",
-                       "Paynekiller92"
+                       "Paynekiller92",
+                       "Kroji"
                ]
        },
        "tog-underline": "Subrayar los enlaces:",
        "tog-usenewrc": "Agrupar los cambios por página en los cambios recientes y en la lista de seguimiento",
        "tog-numberheadings": "Numerar automáticamente los encabezados",
        "tog-showtoolbar": "Mostrar la barra de edición",
-       "tog-editondblclick": "Editar las páginas al hacer doble clic",
+       "tog-editondblclick": "Editar páginas al hacer doble clic",
        "tog-editsectiononrightclick": "Permitir modificar secciones al pulsar con el botón secundario del ratón en sus títulos",
        "tog-watchcreations": "Añadir las páginas que cree y los archivos que suba a mi lista de seguimento",
        "tog-watchdefault": "Añadir las páginas y archivos que edite a mi lista de seguimiento",
        "tog-watchmoves": "Añadir las páginas y archivos que mueva a mi lista de seguimiento",
        "tog-watchdeletion": "Añadir las páginas y archivos que borre a mi lista de seguimiento",
-       "tog-watchrollback": "Añadir las páginas donde realicé una reversión a mi lista de seguimento",
+       "tog-watchrollback": "Añadir las páginas donde haya realizado una reversión a mi lista de seguimiento",
        "tog-minordefault": "Marcar todas las ediciones como menores de manera predeterminada",
        "tog-previewontop": "Mostrar previsualización antes del cuadro de edición",
        "tog-previewonfirst": "Mostrar previsualización en la primera edición",
        "tog-watchlisthideliu": "Ocultar las ediciones de los usuarios registrados en la lista de seguimiento",
        "tog-watchlisthideanons": "Ocultar las ediciones de los usuarios anónimos en la lista de seguimiento",
        "tog-watchlisthidepatrolled": "Ocultar las ediciones patrulladas en la lista de seguimiento",
-       "tog-ccmeonemails": "Enviarme copias de los correos electrónicos que envíe a otros usuarios",
-       "tog-diffonly": "No mostrar el contenido de la página bajo las diferencias",
-       "tog-showhiddencats": "Mostrar las categorías ocultas",
-       "tog-norollbackdiff": "Omitir la diferencia después de revertir",
-       "tog-useeditwarning": "Avisarme cuando abandone una página de edición con cambios sin guardar",
-       "tog-prefershttps": "Utilizar una conexión segura siempre que haya iniciado una sesión",
+       "tog-ccmeonemails": "Recibir copias de los correos electrónicos que envíe a otros usuarios",
+       "tog-diffonly": "No mostrar el contenido de la página debajo de la lista de diferencias",
+       "tog-showhiddencats": "Mostrar categorías ocultas",
+       "tog-norollbackdiff": "Omitir la lista de diferencias después de revertir",
+       "tog-useeditwarning": "Avisarme cuando abandone una página en edición con cambios sin guardar",
+       "tog-prefershttps": "Utilizar siempre conexiones seguras en mis sesiones",
        "underline-always": "Siempre",
        "underline-never": "Nunca",
-       "underline-default": "Tema o valor predeterminado del navegador",
-       "editfont-style": "Estilo de tipografía del área de edición:",
-       "editfont-default": "Predeterminado del navegador",
+       "underline-default": "Configuración predeterminada del tema o el navegador",
+       "editfont-style": "Tipografía del área de edición:",
+       "editfont-default": "Predeterminada del navegador",
        "editfont-monospace": "Tipo de letra monoespaciado",
        "editfont-sansserif": "Tipo de letra de palo seco",
        "editfont-serif": "Tipo de letra con serifas",
        "category-empty": "<em>Esta categoría no contiene ninguna página o archivo.</em>",
        "hidden-categories": "{{PLURAL:$1|Categoría oculta|Categorías ocultas}}",
        "hidden-category-category": "Categorías ocultas",
-       "category-subcat-count": "{{PLURAL:$2|Esta categoría solo contiene la siguiente subcategoría.|Esta categoría contiene {{PLURAL:$1|la siguiente subcategoría|las siguientes $1 subcategorías}}, de un total de $2.}}",
+       "category-subcat-count": "{{PLURAL:$2|Esta categoría solo contiene la siguiente subcategoría.|{{PLURAL:$1|La siguiente subcategoría pertenece|Las siguientes $1 subcategorías pertenecen}} a esta categoría, de un total de $2.}}",
        "category-subcat-count-limited": "Esta categoría contiene {{PLURAL:$1|la siguiente subcategoría|las siguientes $1 subcategorías}}.",
-       "category-article-count": "{{PLURAL:$2|Esta categoría incluye solamente la siguiente página.|{{PLURAL:$1|La siguiente página página pertenece|Las siguientes $1 páginas pertenecen}} a esta categoría, de un total de $2.}}",
+       "category-article-count": "{{PLURAL:$2|Esta categoría incluye solamente la siguiente página.|{{PLURAL:$1|La siguiente página pertenece|Las siguientes $1 páginas pertenecen}} a esta categoría, de un total de $2.}}",
        "category-article-count-limited": "{{PLURAL:$1|La siguiente página pertenece|Las siguientes $1 páginas pertenecen}} a esta categoría.",
        "category-file-count": "{{PLURAL:$2|Esta categoría contiene solamente el siguiente archivo.|{{PLURAL:$1|El siguiente archivo pertenece|Los siguientes $1 archivos pertenecen}} a esta categoría, de un total de $2.}}",
-       "category-file-count-limited": "{{PLURAL:$1|El siguiente fichero pertenece|Los siguientes $1 ficheros pertenecen}} a esta categoría.",
+       "category-file-count-limited": "{{PLURAL:$1|El siguiente archivo pertenece|Los siguientes $1 archivos pertenecen}} a esta categoría.",
        "listingcontinuesabbrev": "cont.",
        "index-category": "Páginas indizadas",
        "noindex-category": "Páginas no indizadas",
        "qbpageoptions": "Opciones de página",
        "qbmyoptions": "Mis páginas",
        "faq": "Preguntas frecuentes",
-       "faqpage": "Project:P+F",
+       "faqpage": "Project:PP. FF.",
        "actions": "Acciones",
        "namespaces": "Espacios de nombres",
        "variants": "Variantes",
        "otherlanguages": "En otros idiomas",
        "redirectedfrom": "(Redirigido desde «$1»)",
        "redirectpagesub": "Página de redirección",
-       "redirectto": "Redirigir a:",
+       "redirectto": "Redirige a:",
        "lastmodifiedat": "Esta página fue modificada por última vez el $1 a las $2.",
-       "viewcount": "Esta página se ha visitado {{PLURAL:$1|una vez|$1 veces}}.",
+       "viewcount": "Esta página ha recibido {{PLURAL:$1|una visita|$1 visitas}}.",
        "protectedpage": "Página protegida",
        "jumpto": "Saltar a:",
        "jumptonavigation": "navegación",
        "jumptosearch": "buscar",
        "view-pool-error": "Lo sentimos, los servidores están sobrecargados en este momento.\nHay demasiados usuarios que están tratando de ver esta página.\nEspera un momento antes de tratar de acceder nuevamente a esta página.\n\n$1",
        "generic-pool-error": "Lo sentimos, los servidores están sobrecargados en este momento.\nHay demasiados usuarios que están tratando de ver este recurso.\nEspera un momento antes de tratar de acceder nuevamente a este recurso.",
-       "pool-timeout": "Se agotó el tiempo de espera del candado",
+       "pool-timeout": "Se agotó el tiempo de espera al cierre de exclusión mutua",
        "pool-queuefull": "La cola de trabajo está llena",
        "pool-errorunknown": "Error desconocido",
        "pool-servererror": "El servicio de gestión de procesos agrupados no está disponible ($1).",
        "viewdeleted": "¿Quieres ver $1?",
        "restorelink": "{{PLURAL:$1|una edición borrada|$1 ediciones borradas}}",
        "feedlinks": "Canal:",
-       "feed-invalid": "El tipo de canal de suscripción no es válido.",
+       "feed-invalid": "El tipo de canal de suscripción no es correcto.",
        "feed-unavailable": "Los canales de sindicación no están disponibles",
        "site-rss-feed": "Canal RSS de $1",
        "site-atom-feed": "Canal Atom de $1",
        "nstab-help": "Ayuda",
        "nstab-category": "Categoría",
        "nosuchaction": "No existe esa acción",
-       "nosuchactiontext": "La acción especificada en la URL no es válida.\nEs posible que hayas escrito mal la URL o que hayas seguido un enlace incorrecto.\nEsto también podría indicar un error en el software utilizado en {{SITENAME}}.",
+       "nosuchactiontext": "La acción especificada en la URL no es válida.\nEs posible que hayas escrito mal la URL o que hayas seguido un enlace incorrecto.\nEsto también podría indicar un error en el software utilizado por {{SITENAME}}.",
        "nosuchspecialpage": "No existe esa página especial",
        "nospecialpagetext": "<strong>Ha solicitado una página especial inexistente.</strong>\n\nPuedes ver una lista de las páginas especiales en [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Error",
        "databaseerror": "Error de la base de datos",
-       "databaseerror-text": "Ocurrió un error de consulta a la base de datos.\nEsto puede indicar un fallo en el software.",
-       "databaseerror-textcl": "Se ha producido un error de consulta a la base de datos.",
+       "databaseerror-text": "Se ha producido un error en la consulta a la base de datos.\nEsto puede indicar un fallo en el software.",
+       "databaseerror-textcl": "Se ha producido un error en la consulta a la base de datos.",
        "databaseerror-query": "Consulta: $1",
        "databaseerror-function": "Función: $1",
        "databaseerror-error": "Error: $1",
-       "laggedslavemode": "<strong>Avertencia:</strong> puede que falten las actualizaciones más recientes en esta página.",
+       "laggedslavemode": "<strong>Advertencia:</strong> puede que falten las actualizaciones más recientes en esta página.",
        "readonly": "Base de datos bloqueada",
        "enterlockreason": "Explica el motivo del bloqueo, incluyendo una estimación de cuándo se producirá el desbloqueo",
        "readonlytext": "La base de datos no permite nuevas entradas u otras modificaciones de forma temporal, probablemente por mantenimiento rutinario, tras lo cual volverá a la normalidad.\n\nLa explicación dada por el administrador que la bloqueó fue: $1",
-       "missing-article": "La base de datos no encuentra el texto de una página que debería hallarse, llamada «$1» $2.\n\nLa causa de esto suele deberse a un ''diff'' anacrónico o un enlace al historial de una página que ha sido borrada.\n\nSi no fuera el caso, puedes haber encontrado un fallo en el software.\n\nPor favor, avisa a un [[Special:ListUsers/sysop|administrador]], tomando nota de la URL.",
-       "missingarticle-rev": "(n.º de revisión: $1)",
-       "missingarticle-diff": "(Dif.: $1, $2)",
-       "readonly_lag": "La base de datos se ha bloqueado automáticamente mientras los servidores de base de datos esclavos se sincronizan con el maestro.",
+       "missing-article": "La base de datos no ha encontrado el texto de una página, denominada «$1» $2, que debería haberse hallado.\n\nLa causa de esto suele ser un ''diff'' anacrónico o un enlace al historial de una página que ha sido borrada.\n\nSi no fuera el caso, puede que hayas encontrado un fallo en el software.\n\nPor favor, informa de esto a [[Special:ListUsers/sysop|administrador]], y anota la URL actual.",
+       "missingarticle-rev": "(revisión: $1)",
+       "missingarticle-diff": "(diferencia: $1, $2)",
+       "readonly_lag": "La base de datos se ha bloqueado automáticamente mientras los servidores esclavos de la base de datos se sincronizan con el maestro.",
        "internalerror": "Error interno",
        "internalerror_info": "Error interno: $1",
-       "filecopyerror": "No se pudo copiar el archivo «$1» a «$2».",
-       "filerenameerror": "No se pudo renombrar el archivo «$1» a «$2».",
-       "filedeleteerror": "No se pudo borrar el archivo «$1».",
-       "directorycreateerror": "No se pudo crear el directorio «$1».",
+       "filecopyerror": "No se ha podido copiar el archivo «$1» a «$2».",
+       "filerenameerror": "No se ha podido renombrar el archivo «$1» a «$2».",
+       "filedeleteerror": "No se ha podido borrar el archivo «$1».",
+       "directorycreateerror": "No se ha podido crear el directorio «$1».",
        "directoryreadonlyerror": "La carpeta «$1» es de solo lectura.",
-       "directorynotreadableerror": "La carpeta «$1» no es legible.",
-       "filenotfound": "No se pudo encontrar el archivo «$1».",
+       "directorynotreadableerror": "La carpeta «$1» no tiene permisos de lectura.",
+       "filenotfound": "No se ha encontrado el archivo «$1».",
        "unexpected": "Valor inesperado: «$1»=«$2».",
        "formerror": "Error: no se pudo enviar el formulario",
        "badarticleerror": "Esta acción no se puede llevar a cabo en esta página.",
-       "cannotdelete": "La página o archivo «$1» no se pudo borrar.\nPuede que ya haya sido borrado por alguien más.",
+       "cannotdelete": "No se ha podido borrar la página o archivo «$1».\nPuede que ya haya sido borrado por otro usuario.",
        "cannotdelete-title": "No se puede borrar la página «$1»",
-       "delete-hook-aborted": "La modificación que intentaste hacer fue cancelada por un gancho de extensión. No hay explicación disponible.",
-       "no-null-revision": "No se pudo crear la revisión nula para la página «$1»",
+       "delete-hook-aborted": "Una extensión ha evitado el borrado de la página. No hay explicación disponible.",
+       "no-null-revision": "No se pudo crear una nueva revisión nula para la página «$1»",
        "badtitle": "Título incorrecto",
        "badtitletext": "El título de la página solicitada está vacío, no es válido, o es un enlace interidioma o interwiki incorrecto.\nPuede que contenga uno o más caracteres que no se pueden usar en los títulos.",
        "perfcached": "Los siguientes datos provienen de la caché y pueden no estar actualizados. La caché puede contener {{PLURAL:$1|un resultado|$1 resultados}} como máximo.",
-       "perfcachedts": "Los siguientes datos provienen de la caché y su última actualización fue: $1. La caché puede contener {{PLURAL:$4|un resultado|$4 resultados}} como máximo.",
+       "perfcachedts": "Los siguientes datos provienen de la caché, y fueron actualizados por última vez a fecha de: $1. La caché contiene {{PLURAL:$4|un resultado|$4 resultados}} como máximo.",
        "querypage-no-updates": "Actualmente las actualizaciones de esta página están desactivadas. Estos datos no serán actualizados a corto plazo.",
        "viewsource": "Ver código",
        "viewsource-title": "Ver el código de «$1»",
        "actionthrottledtext": "Como medida contra el ''spam'', la acción que estás realizando está limitada a un número determinado de veces en un periodo corto de tiempo, y has excedido ese límite. Por favor inténtalo de nuevo en unos minutos.",
        "protectedpagetext": "Esta página ha sido protegida para evitar su edición u otras acciones.",
        "viewsourcetext": "Puedes ver y copiar el código fuente de esta página:",
-       "viewyourtext": "Puedes ver y copiar el código de <strong>tus ediciones</strong> a esta página:",
+       "viewyourtext": "Puedes ver y copiar el código de <strong>tus ediciones</strong> en esta página:",
        "protectedinterface": "Esta página proporciona el texto de la interfaz del software en este wiki, y está protegida para prevenir el abuso.\nPara agregar o cambiar las traducciones para todos los wikis, por favor, usa [//translatewiki.net/ translatewiki.net], el proyecto de localización de MediaWiki.",
-       "editinginterface": "<strong>Advertencia:</strong> Estás editando una página usada para proporcionar el texto de la interfaz para el software. \nLos cambios en esta página afectarán la apariencia de la interfaz para los demás usuarios de este wiki.",
+       "editinginterface": "<strong>Advertencia:</strong> Estás editando una página usada para proporcionar texto de la interfaz al software. \nLos cambios en esta página afectarán la apariencia de la interfaz de los demás usuarios de este wiki.",
        "translateinterface": "Para añadir o cambiar traducciones para todos los wikis, usa [//translatewiki.net/ translatewiki.net], el proyecto de localización de MediaWiki.",
-       "cascadeprotected": "Esta página ha sido protegida para su edición, porque está incluida en {{PLURAL:$1|la siguiente página|las siguientes páginas}}, que están protegidas con la opción de «cascada»:\n$2",
+       "cascadeprotected": "Esta página ha sido protegida contra edición, al estar incluida en {{PLURAL:$1|la siguiente página protegida|las siguientes páginas protegidas}} con la opción de «cascada» activa:\n$2",
        "namespaceprotected": "No tienes permiso para editar las páginas del espacio de nombres <strong>$1</strong>.",
        "customcssprotected": "No tienes permiso para editar esta página CSS, porque contiene configuraciones personales de otro usuario.",
        "customjsprotected": "No tienes permiso para editar esta página JavaScript, porque contiene configuraciones personales de otro usuario.",
        "myprivateinfoprotected": "No tienes permiso para editar tu información privada.",
        "mypreferencesprotected": "No tienes permiso para editar tus preferencias.",
        "ns-specialprotected": "No se pueden editar las páginas especiales.",
-       "titleprotected": "Esta página ha sido protegida contra creación por [[User:$1|$1]].\nEl motivo dado fue \"<em>$2</em>\".",
-       "filereadonlyerror": "No se puede modificar el archivo \"$1\" porque el repositorio de archivos \"$2\" está en modo de sólo lectura.\nEl administrador que lo ha bloqueado ofrece esta explicación: \"$3\".",
+       "titleprotected": "Este título ha sido protegido contra creación por [[User:$1|$1]].\nEl motivo proporcionado es \"<em>$2</em>\".",
+       "filereadonlyerror": "No se puede modificar el archivo \"$1\" porque el repositorio de archivos \"$2\" es de solo lectura.\nEl administrador que lo ha bloqueado ofrece esta explicación: \"$3\".",
        "invalidtitle-knownnamespace": "El título con el espacio de nombres «$2» y el texto «$3» no es válido",
        "invalidtitle-unknownnamespace": "El título con el espacio de nombres desconocido (n.º $1) y el texto «$2» no es válido",
        "exception-nologin": "No has iniciado sesión",
        "exception-nologin-text": "Necesitas acceder para ver esta página o llevar a cabo esta acción.",
-       "exception-nologin-text-manual": "Necesitas $1 para acceder a esta página o acción.",
+       "exception-nologin-text-manual": "Necesitas $1 para poder ver esta página o llevar a cabo esta acción.",
        "virus-badscanner": "Configuración incorrecta: antivirus desconocido: <em>$1</em>",
-       "virus-scanfailed": "falló el análisis (código $1)",
+       "virus-scanfailed": "ha fallado el análisis (código $1)",
        "virus-unknownscanner": "antivirus desconocido:",
-       "logouttext": "<strong>Ha finalizado tu sesión.</strong>\n\nPuede que algunas páginas continúen mostrándose como si la sesión estuviera iniciada hasta que vacíes la memoria caché del navegador.",
+       "logouttext": "<strong>Tu sesión ha finalizado.</strong>\n\nPuede que algunas páginas continúen mostrándose como si la sesión estuviera iniciada hasta que actualices la caché de tu navegador.",
        "welcomeuser": "¡Bienvenido, $1!",
-       "welcomecreation-msg": "Se ha creado tu cuenta.\nPuedes cambiar tus [[Special:Preferences|preferencias]] de {{SITENAME}} si lo deseas.",
+       "welcomecreation-msg": "Se ha creado tu cuenta.\nSi lo deseas, puedes cambiar tus [[Special:Preferences|preferencias]] para {{SITENAME}}.",
        "yourname": "Usuario:",
        "userlogin-yourname": "Usuario",
        "userlogin-yourname-ph": "Escribe tu nombre de usuario",
        "userlogin-signwithsecure": "Usar conexión segura",
        "yourdomainname": "Tu dominio:",
        "password-change-forbidden": "No puedes cambiar las contraseñas en este wiki.",
-       "externaldberror": "Hubo un error de autenticación de la base de datos o bien no tienes autorización para actualizar tu cuenta externa.",
+       "externaldberror": "Hubo un error de autenticación en la base de datos, o bien no tienes autorización para actualizar tu cuenta externa.",
        "login": "Acceder",
        "nav-login-createaccount": "Acceder/crear cuenta",
        "userlogin": "Acceder/crear cuenta",
        "prefs-personal": "Perfil de usuario",
        "prefs-rc": "Cambios recientes",
        "prefs-watchlist": "Seguimiento",
+       "prefs-editwatchlist": "Editar lista de seguimiento",
+       "prefs-editwatchlist-label": "Editar entradas en su lista de seguimiento:",
+       "prefs-editwatchlist-edit": "Ver y quitar los títulos en tu lista de seguimiento",
+       "prefs-editwatchlist-raw": "Editar tu lista de seguimiento en modo texto",
+       "prefs-editwatchlist-clear": "Limpiar tu lista de seguimiento",
        "prefs-watchlist-days": "Número de días a mostrar en la lista de seguimiento:",
        "prefs-watchlist-days-max": "Máximo $1 {{PLURAL:$1|día|días}}",
        "prefs-watchlist-edits": "Número de ediciones a mostrar en la lista expandida:",
        "uploaderror": "Error al intentar subir archivo",
        "upload-recreate-warning": "'''Aviso: Un archivo con ese nombre ha sido eliminado o renombrado.'''\n\nA continuación se muestra el registro de borrados y traslados de esta página:",
        "uploadtext": "Utiliza el siguiente formulario para subir archivos.\nPara ver o buscar archivos subidos con anterioridad, ve a la [[Special:FileList|lista de archivos subidos]].\nLos archivos subidos quedarán registrados además en el [[Special:Log/upload|registro de archivos subidos]] y los borrados en el [[Special:Log/delete|registro de borrados]].\n\nPara incluir un archivo en una página, usa un enlace como los mostrados a continuación:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' para usar el fichero en tamaño completo\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|texto descriptivo]]</nowiki></code>''' para una versión de 200 píxeles de ancho en una caja en el margen izquierdo con 'texto descriptivo' como descripción\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' para enlazar directamente al fichero sin mostrarlo.",
-       "upload-permitted": "Tipos de archivo permitidos: $1.",
-       "upload-preferred": "Tipos de archivo preferidos: $1.",
-       "upload-prohibited": "Tipos de archivo prohibidos: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tipo|Tipos}} de archivo permitidos: $1.",
+       "upload-preferred": "{{PLURAL:$2|Tipo|Tipos}} de archivo preferidos: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Tipo|Tipos}} de archivo prohibidos: $1.",
        "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",
        "movedarticleprotection": "cambiadas protecciones de «[[$2]]» a «[[$1]]»",
        "protect-title": "Cambiando el nivel de protección de «$1»",
        "protect-title-notallowed": "Ver el nivel de protección de «$1»",
-       "prot_1movedto2": "heredando la protección al trasladar [[$1]] a [[$2]]",
+       "prot_1movedto2": "[[$1]] se trasladó a [[$2]]",
        "protect-badnamespace-title": "Espacio de nombres no protegible",
        "protect-badnamespace-text": "Las páginas de este espacio de nombres no pueden ser protegidas",
        "protect-norestrictiontypes-text": "Esta página no se puede proteger ya que no hay ningún tipo de restricción disponible.",
        "expand_templates_generate_xml": "Mostrar el árbol XML.",
        "expand_templates_generate_rawhtml": "Mostrar HTML en crudo",
        "expand_templates_preview": "Previsualización",
+       "expand_templates_preview_fail_html": "<em>Se ha ocultado la previsualización como precaución frente a ataques JavaScript. Esto se debe a que {{SITENAME}} tiene habilitada la característica de código HTML en bruto, y se perdieron los datos de la sesión.</em>\n\n<strong>Si se trata de un intento de previsualización legítimo, por favor inténtelo de nuevo.</strong>\nSi aun así no funciona, pruebe a [[Special:UserLogout|cerrar sesión]] y volver a acceder.",
+       "expand_templates_preview_fail_html_anon": "<em>Se ha ocultado la previsualización como precaución frente a ataques JavaScript. Esto se debe a que {{SITENAME}} tiene habilitada la característica de código HTML en bruto, y usted no ha iniciado sesión.</em>\n\n<strong>Si se trata de un intento de previsualización legítimo, por favor [[Special:UserLogin|inicie sesión]] e inténtelo de nuevo.</strong>",
        "pagelanguage": "Selector de idioma de página",
        "pagelang-name": "Página",
        "pagelang-language": "Idioma",
        "log-name-pagelang": "Registro de cambios en idiomas",
        "log-description-pagelang": "Este es un registro de los cambios en los idiomas de las páginas.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|cambió}} el idioma de la página «$3» del $4 al $5.",
-       "default-skin-not-found": "¡Oops! La apariencia predeterminada de la wiki, definida en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code>, no está disponible.\n\nLa instalación parece poseer las siguientes apariencias. Revisa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Configuración de apariencias] para mayor información sobre cómo configurar y seleccionar la apariencia predeterminada.\n\n$2\n\n; Si acabas de instalar MediaWiki:\n: Probablemente la hayas instalado desde git, o directamente desde el código fuente usando algún otro método. Esto es lo esperado. Intenta instalar algunas apariencias desde [https://www.mediawiki.org/wiki/Category:All_skins el directorio de apariencias de mediawiki.org] ya sea:\n:* Descargando [https://www.mediawiki.org/wiki/Download el instalador tarball], el cual contiene varias apariencias y extensiones. Puedes copiar y pegar el directorio <code>skins/</code> desde ahí.\n:* Clonando uno de los repositorios en <code>mediawiki/skins/*</code> via git dentro del directorio <code dir=\"ltr\">skins/</code> de tu instalación de MediaWiki.\n: Hacer esto no debería interferir con tu repositorio git si eres un desarrollador de MediaWiki.\n\n; Si acabas de actualizar MediaWiki:\n: MediaWiki 1.24 y versiones posteriores ya no tiene habilitada la actualización de apariencia (revisa [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Puedes pegar las siguientes líneas en <code>LocalSettings.php</code> para habilitar todas las apariencias instaladas:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si acabas de modificar <code>LocalSettings.php</code>:\n: Comprueba detenidamente posibles errores tipográficos en los nombres de las apariencias.",
-       "default-skin-not-found-no-skins": "¡Vaya! La apariencia predeterminada de tu wiki, definida en <code>$wgDefaultSkin</code> como <code>$1</code>, no está disponible.\n\nNo tienes apariencias instaladas.\n\n; Si has instalado o actualizado MediaWiki recientemente:\n: Probablemente has instalado desde git, o directamente desde el código fuente usando algún otro método. Esto es lo esperado. MediaWiki 1.24 y versiones posteriores no incluyen ninguna apariencia en el repositorio principal. Trata de instalar algunas apariencias desde el [https://www.mediawiki.org/wiki/Category:All_skins directorio de apariencias de mediawiki.org], siguiendo el siguiente procedimiento:\n:* Descarga el [https://www.mediawiki.org/wiki/Download instalador tarball], que viene con varias apariencias y extensiones. Puedes copiar y pegar el directorio <code>skins/</code> desde ahí.\n:* Clonando alguno de los repositorios en <code>mediawiki/skins/*</code> usando git en el directorio <code dir=\"ltr\">skins/</code> de tu instalación de MediaWiki.\n: Hacer esto no debería interferir con tu repositorio de MediaWiki si eres un desarrollador de MediaWiki. Revisa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Configuración de apariencias] para información sobre cómo habilitar las apariencias y seleccionar la predeterminada.",
+       "default-skin-not-found": "¡Vaya! La apariencia predeterminada de tu wiki, definida en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code>, no está disponible.\n\nLa instalación parece contener las siguientes apariencias. Revisa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Configuración de apariencias] para más información sobre cómo configurar y seleccionar la apariencia predeterminada.\n\n$2\n\n; Si acabas de instalar MediaWiki:\n: Probablemente la hayas instalado desde git, o directamente desde el código fuente usando algún otro método. Es normal que ocurra esto. Intenta instalar algunas apariencias desde [https://www.mediawiki.org/wiki/Category:All_skins el directorio de apariencias de mediawiki.org] ya sea:\n:* Descargando [https://www.mediawiki.org/wiki/Download el instalador tarball], el cual contiene varias apariencias y extensiones. Puedes copiar y pegar el directorio <code>skins/</code> desde ahí.\n:* Descargando tarballs individuales de cada apariencia de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonando uno de los repositorios en <code>mediawiki/skins/*</code> via git dentro del directorio <code dir=\"ltr\">skins/</code> de tu instalación de MediaWiki.\n: Hacer esto no debería interferir con tu repositorio git si eres un desarrollador de MediaWiki.\n\n; Si acabas de actualizar MediaWiki:\n: A partir de MediaWiki 1.24 ya no se habilitan automáticamente las apariencias instaladas (revisa [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Puedes pegar las siguientes líneas en <code>LocalSettings.php</code> para habilitar todas las apariencias instaladas:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si acabas de modificar <code>LocalSettings.php</code>:\n: Comprueba detenidamente posibles errores tipográficos en los nombres de las apariencias.",
+       "default-skin-not-found-no-skins": "¡Vaya! La apariencia predeterminada de tu wiki, definida en <code>$wgDefaultSkin</code> como <code>$1</code>, no está disponible.\n\nNo tienes apariencias instaladas.\n\n; Si has instalado o actualizado MediaWiki recientemente:\n: Probablemente has instalado desde git, o directamente desde el código fuente usando algún otro método. Esto puede ocurrir en este caso. A partir de MediaWiki 1.24 ya no se incluye ninguna apariencia en el repositorio principal. Trata de instalar algunas apariencias desde el [https://www.mediawiki.org/wiki/Category:All_skins directorio de apariencias de mediawiki.org], ya sea:\n:* Descargando el [https://www.mediawiki.org/wiki/Download instalador tarball], que viene con varias apariencias y extensiones. Puedes copiar y pegar el directorio <code>skins/</code> desde ahí.\n:* Descargando tarballs individuales de cada apariencia de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonando alguno de los repositorios en <code>mediawiki/skins/*</code> usando git en el directorio <code dir=\"ltr\">skins/</code> de tu instalación de MediaWiki.\n: Hacer esto no debería interferir con tu repositorio de MediaWiki si eres un desarrollador de MediaWiki. Revisa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Configuración de apariencias] para información sobre cómo habilitar las apariencias y seleccionar la predeterminada.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activado)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desactivado''')",
        "mediastatistics": "Estadísticas de multimedia",
index 29f4694..43a098b 100644 (file)
        "defaultmessagetext": "Sõnumi vaiketekst",
        "content-failed-to-parse": "Ebaõnnestus $1i mudeli $2-tüüpi sisu liigendamine: $3",
        "invalid-content-data": "Vigased sisuandmed",
-       "content-not-allowed-here": "Lehekülg [[$2]] ei i sisaldada $1i.",
+       "content-not-allowed-here": "Lehekülg [[$2]] ei tohi sisaldada $1i.",
        "editwarning-warning": "Sellelt leheküljelt lahkumise tõttu võivad tehtud muudatused kaotsi minna.\nKui oled sisse loginud, saad selle hoiatuse eelistuste alaosas \"{{int:prefs-editing}}\" keelata.",
        "editpage-notsupportedcontentformat-title": "Sisuvormingu tugi puudub",
        "editpage-notsupportedcontentformat-text": "Sisumudelil $2 puudub sisuvormingu $1 tugi.",
        "prefs-personal": "Kasutaja andmed",
        "prefs-rc": "Viimased muudatused",
        "prefs-watchlist": "Jälgimisloend",
+       "prefs-editwatchlist": "Jälgimisloendi redigeerimine",
+       "prefs-editwatchlist-label": "Redigeeri jälgimisloendi sissekandeid:",
+       "prefs-editwatchlist-edit": "Vaata ja eemalda jälgimisloendi linke",
+       "prefs-editwatchlist-raw": "Redigeeri toorandmeid",
+       "prefs-editwatchlist-clear": "Tühjenda jälgimisloend",
        "prefs-watchlist-days": "Mitme päeva muudatusi näidata loendis:",
        "prefs-watchlist-days-max": "Ülemmäär $1 {{PLURAL:$1|päev|päeva}}",
        "prefs-watchlist-edits": "Mitu muudatust näidatakse laiendatud jälgimisloendis:",
        "userrights": "Kasutajaõiguste haldus",
        "userrights-lookup-user": "Kasutajarühma muutmine",
        "userrights-user-editname": "Sisesta kasutajanimi:",
-       "editusergroup": "Muuda kasutajarühma",
+       "editusergroup": "Muuda kasutajarühmi",
        "editinguser": "Kasutaja '''[[User:$1|$1]]''' $2 õiguste muutmine",
-       "userrights-editusergroup": "Kasutajarühma valik",
-       "saveusergroups": "Salvesta rühma muudatused",
+       "userrights-editusergroup": "Kasutajarühmade muutmine",
+       "saveusergroups": "Salvesta kasutajarühmad",
        "userrights-groupsmember": "Kuulub rühmadesse:",
        "userrights-groupsmember-auto": "Kuulub vaikimisi rühmadesse:",
        "userrights-groups-help": "Sa võid muuta selle kasutaja kuuluvust eri kasutajarühmadesse.\n* Märgitud kast tähendab, et kasutaja kuulub sellesse rühma.\n* Märkimata kast tähendab, et kasutaja ei kuulu sellesse rühma.\n* Aga * kasutajarühma juures tähistab õigust, mida sa peale lisamist enam eemaldada ei saa, või siis ka vastupidi.",
        "uploaderror": "Faili laadimine ebaõnnestus",
        "upload-recreate-warning": "'''Hoiatus: Sellise nimega fail on kustutatud või teisaldatud.'''\n\nSelle lehe kustutamis- ja teisaldamislogi on kuvatud siin:",
        "uploadtext": "Kasuta allpool olevat vormi, et faile üles laadida.\nEt näha või leida varem üles laaditud faile, vaata [[Special:FileList|failide loendit]].\nÜleslaadimiste ajalugu saab uurida [[Special:Log/upload|üleslaadimislogist]], kustutamiste ajalugu [[Special:Log/delete|kustutamislogist]].\n\nEt lisada fail artiklile, kasuta üht järgmistest süntaksitest:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.jpg]]</nowiki></code>''', et lisada täissuuruses pilt\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.png|200px|thumb|left|kirjeldus]]</nowiki></code>''', et lisada lehekülje vasakusse serva raamiga 200 piksli laiune pisipilt koos pildiallkirjaga (''kirjeldus'')\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fail.ogg]]</nowiki></code>''', et linkida otse failile ilma seda kuvamata",
-       "upload-permitted": "Lubatud failitüübid: $1.",
-       "upload-preferred": "Eelistatud failitüübid: $1.",
-       "upload-prohibited": "Keelatud failitüübid: $1.",
+       "upload-permitted": "Lubatud {{PLURAL:$2|failitüüp|failitüübid}}: $1.",
+       "upload-preferred": "Eelistatud {{PLURAL:$2|failitüüp|failitüübid}}: $1.",
+       "upload-prohibited": "Keelatud {{PLURAL:$2|failitüüp|failitüübid}}: $1.",
        "uploadlogpage": "Üleslaadimislogi",
        "uploadlogpagetext": "Allpool on loend viimastest failide üleslaadimistest. Visuaalsema esituse nägemiseks vaata [[Special:NewFiles|uute failide galeriid]].",
        "filename": "Faili nimi",
        "tooltip-diff": "Näita tehtavaid muudatusi.",
        "tooltip-compareselectedversions": "Näita erinevusi selle lehe kahe valitud versiooni vahel.",
        "tooltip-watch": "Lisa see lehekülg oma jälgimisloendisse",
-       "tooltip-watchlistedit-normal-submit": "Eemalda leheküljed",
+       "tooltip-watchlistedit-normal-submit": "Eemalda pealkirjad",
        "tooltip-watchlistedit-raw-submit": "Uuenda jälgimisloendit",
        "tooltip-recreate": "Taasta kustutatud lehekülg",
        "tooltip-upload": "Alusta üleslaadimist",
        "lag-warn-high": "Andmebaasiserveri töö viivituste tõttu ei pruugi viimase {{PLURAL:$1|ühe sekundi|$1 sekundi}} jooksul tehtud muudatused selles loendis näha olla.",
        "watchlistedit-normal-title": "Jälgimisloendi redigeerimine",
        "watchlistedit-normal-legend": "Jälgimisloendist lehtede eemaldamine",
-       "watchlistedit-normal-explain": "Need lehed on sinu jälgimisloendis.\nJälgimisloendist lehtekülgede eemaldamiseks tee vastava lehekülje ees olevasse kastikesse linnuke ja klõpsa nuppu \"{{int:Watchlistedit-normal-submit}}\". Saad ka jälgimisloendi [[Special:EditWatchlist/raw|algandmeid muuta]].",
-       "watchlistedit-normal-submit": "Eemalda valitud lehed",
+       "watchlistedit-normal-explain": "Need pealkirjad on sinu jälgimisloendis.\nJälgimisloendist pealkirja eemaldamiseks tee selle juurde linnuke ja klõpsa nuppu \"{{int:Watchlistedit-normal-submit}}\".\nSaad ka jälgimisloendi [[Special:EditWatchlist/raw|toorandmeid redigeerida]].",
+       "watchlistedit-normal-submit": "Eemalda pealkirjad",
        "watchlistedit-normal-done": "Jälgimisloendist eemaldati {{PLURAL:$1|üks lehekülg|$1 lehekülge}}:",
-       "watchlistedit-raw-title": "Jälgimisloendi algandmed",
-       "watchlistedit-raw-legend": "Redigeeritavad jälgimisloendi algandmed",
-       "watchlistedit-raw-explain": "Sinu jälgimisloendis olevad leheküljed on kuvatud allpool asuvas tekstikastis, kus sa saad neid lisada või eemaldada;\nIga pealkiri asub ise real.\nKui sa oled lõpetanud, kliki nuppu \"{{int:Watchlistedit-raw-submit}}\".\nSa võid [[Special:EditWatchlist|kasutada ka harilikku tekstiredaktorit]].",
+       "watchlistedit-raw-title": "Jälgimisloendi toorandmete redigeerimine",
+       "watchlistedit-raw-legend": "Jälgimisloendi toorandmete redigeerimine",
+       "watchlistedit-raw-explain": "Allpool on sinu jälgimisloendisse kantud pealkirjade loend, kus saab sissekandeid lisada ja eemaldada.\nIga rea kohta peab olema üks pealkiri.\nKui oled lõpetanud, klõpsa nuppu \"{{int:Watchlistedit-raw-submit}}\".\nSaad kasutada ka [[Special:EditWatchlist|standardset redaktorit]].",
        "watchlistedit-raw-titles": "Pealkirjad:",
        "watchlistedit-raw-submit": "Uuenda jälgimisloendit",
        "watchlistedit-raw-done": "Sinu jälgimisloend on uuendatud.",
index 9ca287e..d3ce6f4 100644 (file)
        "pool-timeout": "Lock-a itxoiten denbora amaitu da",
        "pool-queuefull": "Prozesuen zerrenda beteta dago",
        "pool-errorunknown": "Errore ezezaguna",
+       "poolcounter-usage-error": "Erabilera-errorea: $1",
        "aboutsite": "{{SITENAME}} guneari buruz",
        "aboutpage": "Project:Honi_buruz",
        "copyright": "Eduki guztia $1(r)en babespean dago, ez bada kontrakoa esaten.",
        "filerenameerror": "Ezin izan zaio \"$1\" fitxategiari \"$2\" izen berria eman.",
        "filedeleteerror": "Ezin izan da \"$1\" fitxategia ezabatu.",
        "directorycreateerror": "Ezin izan da \"$1\" karpeta sortu.",
+       "directoryreadonlyerror": "\"$1\" direktorioa soilik irakurtzekoa da.",
+       "directorynotreadableerror": "\"$1\" direktorioa ez da irakurgarria.",
        "filenotfound": "Ezin izan da \"$1\" fitxategia aurkitu.",
        "unexpected": "Espero ez zen balioa: \"$1\"=\"$2\".",
        "formerror": "Errorea: ezin izan da formularioa bidali",
        "loginlanguagelabel": "Hizkuntza: $1",
        "suspicious-userlogout": "Saioa amaitzeko egin duzun eskaria ukatu da. Izan ere, ematen du eskari hori gaizki dabilen nabigatzaile edo cache proxy batek bidali duela.",
        "createacct-another-realname-tip": "Benetako izena hautazkoa da.\nEmatea erabakitzen baduzu hori erabiliko da lanaren atribuzioa egiterako garaian.",
+       "pt-login": "Saioa hasi",
        "pt-createaccount": "Sortu kontua",
        "pt-userlogout": "Saioa itxi",
        "php-mail-error-unknown": "PHPren mail() funtzioan arazo ezezagun bat egon da.",
        "prefs-personal": "Erabiltzaile profila",
        "prefs-rc": "Azken aldaketak",
        "prefs-watchlist": "Jarraipen zerrenda",
+       "prefs-editwatchlist": "Aldatu jarraipen-zerrenda",
+       "prefs-editwatchlist-clear": "Garbitu zure jarraipen-zerrenda",
        "prefs-watchlist-days": "Jarraipen zerrendan erakutsi beharreko egun kopurua:",
        "prefs-watchlist-days-max": "Gehienez $1 {{PLURAL:$1|egun|egun}}",
        "prefs-watchlist-edits": "Jarraipen zerrendan erakutsi beharreko aldaketa kopurua:",
        "action-createpage": "orrialdeak sortu",
        "action-createtalk": "eztabaida orrialdeak sortu",
        "action-createaccount": "lankide hau sortu",
+       "action-history": "orrialde honen historia ikusi",
        "action-minoredit": "markatu aldaketa hau txikitzat",
        "action-move": "orri hau mugitu",
        "action-move-subpages": "orri hau eta haren azpiorriak mugitu",
        "action-move-rootuserpages": "mugitu lankidearen oinarri orrialdeak",
+       "action-move-categorypages": "kategoria orrialdeak mugitu",
        "action-movefile": "fitxategi hau mugitu",
        "action-upload": "fitxategi hau igo",
        "action-reupload": "dagoeneko baden fitxategi honen gainean idatzi",
        "uploaderror": "Errorea igotzerakoan",
        "upload-recreate-warning": "'''Kontuz: Izen hori duen fitxategi bat berrizendatua edo mugitua izan da.'''",
        "uploadtext": "Fitxategiak igotzeko beheko formularioa erabil dezakezu. \nAurretik igotako irudiak ikusi edo bilatzeko [[Special:FileList|igotako fitxategien zerrendara]] jo. Igoerak [[Special:Log/upload|igoera erregistroan]] ikus daitezke eta ezabatutakoak [[Special:Log/delete|ezabaketa erregistroan]] zerrendatzen dira.\n\nOrrialde baten irudi bat txertatzeko, erabili kode hauetako bat:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''',\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' * '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' irudia zuzenean erabiltzeko.",
-       "upload-permitted": "Baimendutako fitxategi motak: $1.",
-       "upload-preferred": "Fitxategi mota hobetsiak: $1.",
-       "upload-prohibited": "Debekatutako fitxategi motak: $1.",
+       "upload-permitted": "Baimendutako fitxategi-{{PLURAL:$2|mota|motak}}: $1.",
+       "upload-preferred": "Hobetsitako fitxategi-{{PLURAL:$2|mota|motak}}: $1.",
+       "upload-prohibited": "Debekatutako fitxategi-{{PLURAL:$2|mota|motak}}: $1.",
        "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",
        "sharedupload": "Elkarbanatutako fitxategi hau $1-(e)ko igoera bat da eta beste proiektuek ere erabil dezakete.",
        "sharedupload-desc-here": "Fitxategi hau $1-(e)koa da eta beste proeiktuetan erabilia izan liteke.\nBere [$2 fitxategiaren deskribapen orrialdea] behean dago.",
        "filepage-nofile": "Izen horrekin ez dago fitxategirik.",
+       "filepage-nofile-link": "Ez dago fitxategirik izen honekin, baina [$1 igo dezakezu].",
        "uploadnewversion-linktext": "Fitxategi honen bertsio berri bat igo",
        "shared-repo-from": "$1-tik",
        "shared-repo": "elkarbanatutako biltegia",
        "wantedtemplates": "Eskatutako txantiloiak",
        "mostlinked": "Gehien lotutako orrialdeak",
        "mostlinkedcategories": "Gehien lotutako kategoriak",
-       "mostlinkedtemplates": "Txantiloi erabilienak",
+       "mostlinkedtemplates": "Orrialde transkluituenak",
        "mostcategories": "Sailkapenean kategoria gehien dituzten orrialdeak",
        "mostimages": "Gehien lotutako irudiak",
        "mostinterwikis": "Interwiki gehien dituzten orrialdeak",
        "protectedpages-indef": "Babes mugagabeak bakarrik",
        "protectedpages-cascade": "Kaskada moduko babesak bakarrik",
        "protectedpagesempty": "Ez dago parametro horiek dituen babesturiko orrialderik oraintxe.",
+       "protectedpages-reason": "Arrazoia",
+       "protectedpages-unknown-timestamp": "Ezezaguna",
+       "protectedpages-unknown-performer": "Erabiltzaile ezezaguna",
        "protectedtitles": "Babestutako tituluak",
        "protectedtitlesempty": "Ez dago parametro horiek dituen babesturiko izenbururik oraintxe.",
        "listusers": "Erabiltzaileen zerrenda",
        "pager-older-n": "{{PLURAL:$1|zaharragoa den 1|zaharragoak diren $1}}",
        "suppress": "Gain-ikuspena",
        "querypage-disabled": "Orrialde berezi hau desgaituta dago funtzionamendu arrazoiengatik.",
+       "apihelp-no-such-module": "Ez da \"$1\" modulua aurkitu.",
        "booksources": "Iturri liburuak",
        "booksources-search-legend": "Liburuen bilaketa",
+       "booksources-search": "Bilatu",
        "booksources-text": "Jarraian liburu berri eta erabiliak saltzen dituzten guneetarako loturen zerrenda bat ikus dezakezu, bilatzen ari zaren liburu horientzako informazio gehigarria aurkitzeko lagungarria izan daitekeena:",
        "booksources-invalid-isbn": "Badirudi emandako ISBNa ez dela baliagarria; egiazta ezazu ea akatsik egin duzun jatorrizko iturritik kopiatzean.",
        "specialloguserlabel": "Egilea:",
        "protectedarticle": "\"[[$1]]\" babestu da\"",
        "modifiedarticleprotection": "\"[[$1]]\"(r)en babes maila aldatu da",
        "unprotectedarticle": "\"[[$1]]\"-(r)i babesa kendu zaio",
-       "movedarticleprotection": "babes hobespenak \"[[$2]]\"tik \"[[$1]]\"(e)ra mugitu dira",
+       "movedarticleprotection": "babes hobespenak «[[$2]]» orritik «[[$1]]» orrira aldatu dira",
        "protect-title": "«$1» babesten",
        "protect-title-notallowed": "\"$1\"en babes maila ikusi",
        "prot_1movedto2": "«[[$1]]» orria «[[$2]]» izenera aldatu da",
        "badipaddress": "Baliogabeko IP helbidea",
        "blockipsuccesssub": "Blokeoa burutu da",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] blokeatua izan da.<br />\nIkus [[Special:BlockList|blokeoen zerrenda]] blokeoak aztertzeko.",
+       "ipb-confirmaction": "Ziur bazaude egin nahi duzula, marka ezazu behean dagoen \"{{int:ipb-confirm}}\" eremua, mesedez.",
        "ipb-edit-dropdown": "Blokeatzeko arrazoiak aldatu",
        "ipb-unblock-addr": "$1 lankide edo IP helbideari blokeoa baliogabetu",
        "ipb-unblock": "Erabiltzaile izen edo IP helbide bati blokeoa kendu",
        "javascripttest": "JavaScript frogatzen",
        "javascripttest-pagetext-noframework": "Orrialde hau JavaScript frogak egiteko gordeta dago.",
        "javascripttest-pagetext-unknownframework": "Froga eremu ez-ezaguna \"$1\".",
+       "javascripttest-pagetext-unknownaction": "Ekintza ezezaguna \"$1\".",
        "javascripttest-pagetext-frameworks": "Mesedez, aukera ezazu froga eremu hauetako bat: $1",
        "javascripttest-pagetext-skins": "Aukeratu frogak egiteko itxura bat:",
        "javascripttest-qunit-intro": "Ikusi [$1 frogen dokumentazioa] mediawiki.org orrialdean.",
        "tooltip-feed-atom": "Orrialde honen atom jarioa",
        "tooltip-t-contributions": "Lankide honen ekarpen zerrenda ikusi",
        "tooltip-t-emailuser": "Lankide honi e-posta mezua bidali",
+       "tooltip-t-info": "Orrialde honi buruzko informazio gehiago",
        "tooltip-t-upload": "Irudiak edo media fitxategiak igo",
        "tooltip-t-specialpages": "Orri berezi guztien zerrenda",
        "tooltip-t-print": "Orrialde honen bertsio inprimagarria",
        "newimages-summary": "Orrialde berezi honek igotako azkeneko fitxategiak erakusten ditu.",
        "newimages-legend": "Iragazkia",
        "newimages-label": "Fitxategia (edo bere zati bat):",
+       "newimages-showbots": "Erakutsi botek igotako fitxategiak",
        "noimages": "Ez dago ezer ikusteko.",
        "ilsubmit": "Bilatu",
        "bydate": "dataren arabera",
        "confirm-purge-top": "Orrialde honen katxea ezabatu?",
        "confirm-purge-bottom": "Orrialdea purgatzean katxea ezabatzen du eta orrialdearen bertsiorik eguneratuena erakustera behartzen du.",
        "confirm-watch-button": "Ados",
+       "confirm-watch-top": "Orrialde hau zure jarraipen-zerrendara gehitu?",
        "confirm-unwatch-button": "Ados",
+       "confirm-unwatch-top": "Orrialde hau zure jarraipen-zerrendatik kendu?",
        "quotation-marks": "«$1»",
        "imgmultipageprev": "&larr; aurreko orrialdea",
        "imgmultipagenext": "hurrengo orrialdea &rarr;",
        "watchlistedit-raw-done": "Zure jarraipen zerrenda berritu da.",
        "watchlistedit-raw-added": "{{PLURAL:$1|Titulu 1 gehitu da|$1 gehitu dira}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|Izenburu 1|$1 izenburu}} ezabatu dira:",
+       "watchlistedit-clear-title": "Garbitutako jarraipen-zerrenda",
+       "watchlistedit-clear-legend": "Garbitu jarraipen-zerrenda",
+       "watchlistedit-clear-explain": "Izenburu guztiak zure jarraipen-zerrendatik kenduko dira",
        "watchlistedit-clear-titles": "Izenburuak:",
+       "watchlistedit-clear-submit": "Garbitu jarraipen zerrenda (Behin betiko da!)",
+       "watchlistedit-clear-done": "Zure jarraipen-zerrenda garbitu da.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|Izenburu 1 kendu da|$1 izenburu kendu dira}}:",
+       "watchlisttools-clear": "Garbitu jarraipen-zerrenda",
        "watchlisttools-view": "Aldaketa garrantzitsuak ikusi",
        "watchlisttools-edit": "Zerrenda ikusi eta aldatu",
        "watchlisttools-raw": "Zerrenda idatziz aldatu",
        "htmlform-no": "Ez",
        "htmlform-yes": "Bai",
        "htmlform-chosen-placeholder": "Aukeratu",
+       "htmlform-cloner-create": "Gehitu gehiago",
+       "htmlform-cloner-delete": "Kendu",
        "sqlite-has-fts": "$1 testu osoan bilatzeko laguntzarekin",
        "sqlite-no-fts": "$1 testu osoan bilatzeko laguntzarik gabe",
        "logentry-delete-delete": "$1 {{GENDER:$2|wikilariak}} «$3» orria ezabatu du",
        "api-error-filename-tooshort": "Fitxategiaren izena laburregia da.",
        "api-error-filetype-banned": "Mota horretako fitxategiak debekatuta daude.",
        "api-error-filetype-missing": "Fitxategiak ez zuen luzapenik.",
+       "api-error-http": "Barne-errorea: Ezin da zerbitzariarekin konektatu.",
        "api-error-illegal-filename": "Fitxategiaren izena ez da onartzen.",
+       "api-error-internal-error": "Barne-errorea: Zerbaitek huts egin du zuk wikira igotakoa prozesatzean.",
+       "api-error-invalid-file-key": "Barne-errorea: Ez da fitxategia aurkitu aldi baterako biltegian.",
+       "api-error-missingparam": "Barne-errorea: Parametroak falta dira eskaeran.",
+       "api-error-missingresult": "Barne-errorea: Ezin da zehaztu kopia ondo burutu den ala ez.",
        "api-error-mustbeloggedin": "Fitxategiak igotzeko izena emanda eduki behar duzu.",
        "api-error-mustbeposted": "Barne arazoa: HTTP POST beharrezkoa da.",
        "api-error-noimageinfo": "Igoera ondo egin da, baina zerbitzariak ez digu informaziorik eman zerbitzariaren inguruan.",
        "api-error-ok-but-empty": "Barne arazoa: zerbitzariaren erantzunik ez.",
        "api-error-overwrite": "Existitzen den fitxategi bat gain-idaztea ez da posible.",
        "api-error-stashfailed": "Barne arazoa: Zerbitzariak ezin izan du behin-behineko fitxategia gorde",
+       "api-error-publishfailed": "Barne-errorea: Zerbitzariak ezin izan du aldi baterako fitxategia gorde.",
        "api-error-timeout": "Zerbitzariak ez du erantzun espero zitekeen denboran.",
        "api-error-unclassified": "Ezezaguna den errorea gertatu da.",
        "api-error-unknown-code": "Akats ezezaguna: \"$1\".",
        "pagelang-language": "Hizkuntza",
        "pagelang-select-lang": "Hizkuntza aukeratu",
        "right-pagelang": "Aldatu orrialdearen hizkuntza",
+       "action-pagelang": "orrialdearen hizkuntza aldatu",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (gaituta)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desgaituta''')",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 byte}} ($2; %$3)",
+       "mediastatistics-table-mimetype": "MIME mota",
        "mediastatistics-table-count": "Fitxategi kopurua",
+       "mediastatistics-header-unknown": "Ezezaguna",
        "mediastatistics-header-video": "Bideoak",
        "json-error-syntax": "Sintaxi-errorea"
 }
index 6e06f79..b3bf38c 100644 (file)
        "blocked-mailpassword": "نشانی آی‌پی شما از ویرایش بازداشته شده‌است و از این رو به منظور جلوگیری از سوءاستفاده اجازهٔ بهره‌گیری از قابلیت بازیابی گذرواژه را ندارد.",
        "eauthentsent": "یک نامه برای تأیید نشانی رایانامه به نشانی موردنظر ارسال شد.\nقبل از اینکه نامهٔ دیگری قابل ارسال به این نشانی باشد، باید دستورهایی که در آن نامه آمده است را جهت تأیید این مساله که این نشانی متعلق به شماست، اجرا کنید.",
        "throttled-mailpassword": "یک رایانامهٔ بازنشانی گذرواژه در $1 {{PLURAL:$1|ساعت|ساعت}} گذشته فرستاده شده است.\nبرای جلوگیری از سوءاستفاده، هر $1 {{PLURAL:$1|ساعت|ساعت}} تنها یک رایانامهٔ بازنشانی گذرواژه فرستاده می‌شود.",
-       "mailerror": "خطا در فرستادن رایانامه: $1",
+       "mailerror": "خطا در فرستادن پست الکترونیکی: $1",
        "acct_creation_throttle_hit": "بازدیدکنندگان این ویکی که از نشانی آی‌پی شما استفاده می‌کنند در روز گذشته {{PLURAL:$1|یک حساب کاربری|$1 حساب کاربری}} ساخته‌اند، که بیشترین تعداد مجاز در آن بازهٔ زمانی است.\nبه همین خاطر، بازدیدکنندگانی که از این نشانی آی‌پی استفاده می‌کنند نمی‌توانند در حال حاضر حساب جدیدی بسازند.",
        "emailauthenticated": "نشانی رایانامهٔ شما در $2 ساعت $3 تصدیق شد.",
        "emailnotauthenticated": "نشانی رایانامهٔ شما هنوز تصدیق نشده‌است.\nبرای هیچ‌یک از ویژگی‌های زیر رایانامه ارسال نخواهد شد.",
        "search-external": "جستجوی خارجی",
        "searchdisabled": "جستجو در {{SITENAME}} فعال نیست.\nموقتاً می‌توانید از جستجوی Google استفاده کنید.\nتوجه کنید که نتایج حاصل از جستجو با آن روش ممکن است به‌روز نباشند.",
        "search-error": "خطایی هنگام جست‌وجو رخ داده است: $1",
-       "preferences": "ترجیحات",
-       "mypreferences": "ترجیحات",
+       "preferences": "ترجیح‌ها",
+       "mypreferences": "ترجیح‌ها",
        "prefs-edits": "تعداد ویرایش‌ها:",
        "prefsnologintext2": "خواهشمند است برای تغییر تنظیمات‌تان وارد شوید.",
        "prefs-skin": "پوسته",
        "prefs-personal": "داده‌های کاربر",
        "prefs-rc": "تغییرات اخیر",
        "prefs-watchlist": "فهرست پی‌گیری‌ها",
+       "prefs-editwatchlist": "ویرایش فهرست پی‌گیری‌ها",
+       "prefs-editwatchlist-label": "ویرایش همه فهرست پیگیری‌هایتان:",
+       "prefs-editwatchlist-edit": "دیدن و حذف عنوان‌ها از فهرست پیگیری‌هایتان",
+       "prefs-editwatchlist-raw": "ویرایش فهرست خام پیگیری‌ها",
+       "prefs-editwatchlist-clear": "پاک کردن فهرست پیگیری‌هایتان",
        "prefs-watchlist-days": "تعداد روزهایی که باید در فهرست پی‌گیری‌ها نمایش داده شود:",
        "prefs-watchlist-days-max": "حداکثر $1 {{PLURAL:$1|روز}}",
        "prefs-watchlist-edits": "تعداد ویرایش‌های نشان‌داده‌شده در فهرست پی‌گیری‌های گسترش‌یافته:",
        "userrights-removed-self": "شما با موفقیت دسترسی‌های خود را واستاندید. به این ترتیب شما دیگر به این صفحه دسترسی ندارید.",
        "group": "گروه:",
        "group-user": "کاربران",
-       "group-autoconfirmed": "کاربران تأییدشده",
+       "group-autoconfirmed": "کاربران تأییدشدهٔ خودکار",
        "group-bot": "ربات‌ها",
        "group-sysop": "مدیران",
        "group-bureaucrat": "دیوان‌سالاران",
        "recentchanges-label-minor": "این یک ویرایش جزئی‌است",
        "recentchanges-label-bot": "این ویرایش را یک ربات انجام داده‌است",
        "recentchanges-label-unpatrolled": "این ویرایش هنوز گشت‌زنی نشده‌است",
-       "recentchanges-label-plusminus": "حجم صفحه به اندازه این بایت‌ها تغییر یافته‌است",
+       "recentchanges-label-plusminus": "حجم صفحه به اندازه این مقدار بایت تغییر یافته است",
        "recentchanges-legend-heading": "'''اختصارها:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (همچنین به [[Special:NewPages|فهرست صفحات تازه]] نگاه کنید)",
        "recentchanges-legend-plusminus": "(<em>±۱۲۳</em>)",
        "uploaderror": "خطای بارگذاری",
        "upload-recreate-warning": "'''هشدار: پرونده‌ای با این نام حذف یا منتقل شده است.'''\n\nبرای راحتی، سیاههٔ حذف و انتقال برای این صفحه در زیر آمده است:",
        "uploadtext": "از فرم زیر برای بارگذاری کردن پرونده‌های جدید استفاده کنید.\nبرای دیدن پرونده‌هایی که قبلاً بارگذاری شده‌اند به [[Special:FileList|فهرست پرونده‌ها]] بروید. بارگذاری نیز مجدد در [[Special:Log/upload|سیاههٔ بارگذاری‌ها]] و حذف پرونده‌ها در [[Special:Log/delete|deletion log]] ثبت می‌شود.\n\nبعد از این که پرونده‌ای را بارگذاری کردید، به این سه شکل می‌توانید آن را در صفحات استفاده کنید:\n*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' برای استفاده از نسخه کامل پرونده\n*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' برای استفاده از یک نسخه ۲۰۰ پیکسلی از پرونده درون یک جعبه در سمت چپ متن که عبارت alt text در آن به عنوان توضیح استفاده شده\n*'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' برای ایجاد یک پیونده مستقیم به پرونده بدون نمایش پرونده",
-       "upload-permitted": "انواع مجاز پرونده‌ها: $1.",
-       "upload-preferred": "انواع ترجیح‌داده شده پرونده‌ها: $1.",
-       "upload-prohibited": "انواع نامجاز پرونده‌ها: $1.",
+       "upload-permitted": "{{PLURAL:$2|نوع|انواع}} پرونده مجاز: $1.",
+       "upload-preferred": "{{PLURAL:$2|نوع|انواع}} پرونده ترجیح‌داده شده: $1.",
+       "upload-prohibited": "{{PLURAL:$2|نوع|انواع}} پرونده نامجاز: $1.",
        "uploadlogpage": "سیاههٔ بارگذاری‌ها",
        "uploadlogpagetext": "فهرست زیر فهرستی از آخرین بارگذاری پرونده‌ها است.\nبرای مرور دیداری [[Special:NewFiles|نگارخانهٔ پرونده‌های جدید]] را ببینید.",
        "filename": "نام پرونده",
        "trackingcategories-nodesc": "توضیحی وجود ندارد.",
        "trackingcategories-disabled": "رده غیرفعال‌شده است",
        "mailnologin": "نشانی‌ای از فرستنده موجود نیست",
-       "mailnologintext": "برای فرستادن رایانامه به کاربران دیگر باید [[Special:UserLogin|به سامانه وارد شوید]] و نشانی رایانامهٔ معتبری در [[Special:Preferences|ترجیحات]] خود داشته باشید.",
-       "emailuser": "Ù\81رستادÙ\86 Ù\86اÙ\85Ù\87 Ø¨Ù\87 Ø§Û\8cÙ\86 Ú©Ø§Ø±Ø¨Ø±",
+       "mailnologintext": "برای فرستادن پست الکترونیکی به کاربران دیگر باید [[Special:UserLogin|به سیستم وارد شوید]] و نشانی پست الکترونیکی معتبری در [[Special:Preferences|ترجیح‌های]] خود داشته باشید.",
+       "emailuser": "پست Ø§Ù\84کترÙ\88Ù\86Û\8cÚ©Û\8c",
        "emailuser-title-target": "رایانامه به {{GENDER:$1|کاربر}}",
        "emailuser-title-notarget": "رایانامه به کاربر",
        "emailpage": "رایانامه به کاربر",
        "emailpagetext": "شما می‌توانید از فرم زیر برای ارسال یک رایانامه به این {{GENDER:$1|کاربر}} استفاده کنید.\nنشانی رایانامه‌ای که در [[Special:Preferences|ترجیحات کاربریتان]] وارد کرده‌اید در نشانی فرستنده (From) نامه خواهد آمد، تا گیرنده بتواند پاسخ دهد.",
-       "defemailsubject": "رایانامه {{SITENAME}} از طرف کاربر «$1»",
+       "defemailsubject": "پست الکترونیکی {{SITENAME}} از طرف کاربر «$1»",
        "usermaildisabled": "رایانامهٔ کاربر غیرقعال است",
        "usermaildisabledtext": "شما در این ویکی نمی‌توانید به دیگر کاربران رایانامه بفرستید",
        "noemailtitle": "نشانی رایانامه موجود نیست",
        "emailccsubject": "رونوشت پیغام شما به $1: $2",
        "emailsent": "رایانامه فرستاده شد",
        "emailsenttext": "پیغام رایانامه شما فرستاده شد.",
-       "emailuserfooter": "این رایانامه با استفاده از ویژگی «فرستادن نامه به این کاربر» {{SITENAME}} توسط $1 به $2 فرستاده شد.",
+       "emailuserfooter": "این پست الکترونیکی با استفاده از ویژگی «پست الکترونیکی» {{SITENAME}} توسط $1 به $2 فرستاده شد.",
        "usermessage-summary": "گذاشتن پیغام سامانه.",
        "usermessage-editor": "پیغام رسان سامانه",
        "watchlist": "فهرست پی‌گیری",
        "namespace": "فضای نام:",
        "invert": "انتخاب برعکس شود",
        "tooltip-invert": "این جعبه را علامت بزنید تا تغییرات صفحه‌های داخل فضای نام انتخاب شده (و دیگر فضاهای نام علامت زده شده) پنهان شوند",
+       "tooltip-whatlinkshere-invert": "این جعبه را برای پنهان کردن پیوند صفحاتی که فضای نامشان انتخاب شده‌است، انتخاب کنید.",
        "namespace_association": "فضای نام مرتبط",
        "tooltip-namespace_association": "این جعبه را علامت بزنید تا فضای نام بحث یا موضوع مرتبط با فضای نام انتخاب شده هم شامل شود",
        "blanknamespace": "(اصلی)",
        "move-page-legend": "انتقال صفحه",
        "movepagetext": "با استفاده از فرم زیر نام صفحه تغییر خواهد کرد، و تمام تاریخچه‌اش به نام جدید منتقل خواهد شد.\nعنوان قدیمی تبدیل به یک صفحهٔ تغییرمسیر به عنوان جدید خواهد شد.\nشما می‌توانید تغییرمسیرهایی که به عنوان اصلی اشاره دارند را به صورت خودکار به‌روزرسانی کنید.\nپیوندهای که به عنوان صفحهٔ قدیمی وجود دارند، تغییر نخواهند کرد؛ حتماً تغییرمسیرهای [[Special:DoubleRedirects|دوتایی]] یا [[Special:BrokenRedirects|خراب]] را بررسی کنید.\n'''شما''' مسئول اطمینان از این هستید که پیوندها هنوز به همان‌جایی که قرار است بروند.\n\nتوجه کنید که اگر از قبل صفحه‌ای در عنوان جدید وجود داشته باشد صفحه منتقل '''نخواهد شد'''،\nمگر این آخرین ویرایش تغییرمسیر باشد و در  تاریخچهٔ ویرایشی نداشته باشد.\nاین یعنی اگر اشتباه کردید می‌توانید صفحه را به همان جایی که از آن منتقل شده بود برگردانید، و این که نمی‌توانید روی صفحات موجود بنویسید.\n\n'''هشدار!'''\nانتقال صفحات به نام جدید ممکن است تغییر اساسی و غیرمنتظره‌ای برای صفحات محبوب باشد؛\nلطفاً مطمئن شوید که قبل از انتقال دادن صفحه، عواقب این کار را درک می‌کنید.",
        "movepagetext-noredirectfixer": "استفاده از فرم زیر سبب تغییر نام یک صفحه و انتقال تمام تاریخچهٔ آن به نام جدید می‌شود.\nعنوان پیشین تغییرمسیری به عنوان جدید خواهد شد.\nبه خاطر داشته باشید که [[Special:DoubleRedirects|تغییرمسیرهای دوتایی]] یا [[Special:BrokenRedirects|تغییرمسیرهای خراب]] را بررسی کنید.\nشما مسئولید که مطمئن شوید پس از انتقال، پیوندها به عنوان پیشین به جایی منتهی می‌شوند که باید.\n\nتوجه کنید که اگر صفحه‌ای تحت عنوان جدید از قبل موجود باشد، انتقال انجام '''نخواهد شد'''، مگر اینکه صفحه خالی و یا تغییرمسیر باشد و تاریخچهٔ ویرایشی دیگری نداشته باشد.\nاین یعنی اگر صفحه را به نامی اشتباه منتقل کردید می‌توانید این تغییر را واگردانی کنید، اما نمی‌توانید یک صفحه را به صفحه‌ای که از قبل موجود است انتقال دهید.\n\n'''هشدار!'''\nانتقال صفحه‌های پربیننده ممکن است عملی غیرمنتظره باشد؛\nلطفاً پیش از انتقال مطمئن شوید از نتیجهٔ کار آگاهید.",
-       "movepagetalktext": "صفحهٔ بحث مربوط، اگر وجود داشته باشد، بطور خودکار همراه با مقالهٔ اصلی منتقل خواهد شد '''مگر اینکه''' :\n* در حال انتقال صفحه از این فضای نام به فضای نام دیگری باشید،\n* یک صفحهٔ بحث غیرخالی تحت این نام جدید وجود داشته باشد، یا\n* جعبهٔ زیر را تیک نزده باشید.\n\nدر این حالات، باید صفحه را بطور دستی انتقال داده و یا محتویات دو صفحه را با ویرایش ادغام کنید.",
+       "movepagetalktext": "صفحهٔ بحث مربوط، اگر وجود داشته باشد، بطور خودکار همراه با مقالهٔ اصلی منتقل خواهد شد <strong>مگر اینکه:</strong>\n* در حال انتقال صفحه از این فضای نام به فضای نام دیگری باشید،\n* یک صفحهٔ بحث غیرخالی تحت این نام جدید وجود داشته باشد، یا\n* جعبهٔ زیر را تیک نزده باشید.\n\nدر این حالات، باید صفحه را بطور دستی انتقال داده و یا محتویات دو صفحه را با ویرایش ادغام کنید.",
        "movearticle": "انتقال صفحه:",
        "moveuserpage-warning": "'''هشدار:''' شما در حال انتقال دادن یک صفحهٔ کاربر هستید. توجه داشته باشید که تنها صفحه منتقل می‌شود و نام کاربر تغییر '''نمی‌یابد'''.",
        "movecategorypage-warning": "<strong>هشدار:</strong> شما در حال انتقال صفحه رده هستید. لطفاً توجه داشته باشید که فقط صفحه منتقل خواهد شد و  صفحات در رده قدیمی می‌مانند و به رده جدید <em>نمی‌روند</em>.",
        "tooltip-feed-rss": "خبرنامه آراس‌اس برای این صفحه",
        "tooltip-feed-atom": "خبرنامهٔ اتم برای این صفحه",
        "tooltip-t-contributions": "فهرست مشارکت‌های این کاربر",
-       "tooltip-t-emailuser": "فرستادن رایانامه به این کاربر",
+       "tooltip-t-emailuser": "فرستادن پست الکترونیکی به این کاربر",
        "tooltip-t-info": "اطلاعات بیشتر دربارهٔ این صفحه",
        "tooltip-t-upload": "بارگذاری تصاویر و پرونده‌های دیگر",
        "tooltip-t-specialpages": "فهرستی از همهٔ صفحه‌های ویژه",
        "pageinfo-toolboxlink": "اطلاعات صفحه",
        "pageinfo-redirectsto": "تغییرمسیر به",
        "pageinfo-redirectsto-info": "اطلاعات",
-       "pageinfo-contentpage": "شمرده شده به عنوان صفحهٔ محتویی",
+       "pageinfo-contentpage": "شمرده شده به عنوان صفحهٔ محتوایی",
        "pageinfo-contentpage-yes": "بله",
        "pageinfo-protect-cascading": "محافظت آبشاری از اینجا",
        "pageinfo-protect-cascading-yes": "بله",
index de9013f..1a783fe 100644 (file)
@@ -42,7 +42,8 @@
                        "Syreeni",
                        "MrTapsa",
                        "SMAUG",
-                       "SuperPete"
+                       "SuperPete",
+                       "McSalama"
                ]
        },
        "tog-underline": "Linkkien alleviivaus:",
        "prefs-personal": "Käyttäjätiedot",
        "prefs-rc": "Tuoreet muutokset",
        "prefs-watchlist": "Tarkkailulista",
+       "prefs-editwatchlist": "Muokkaa tarkkailulistaa",
+       "prefs-editwatchlist-label": "Muokkaa tarkkailulistasi merkintöjä:",
+       "prefs-editwatchlist-edit": "Näytä ja poista kohteita tarkkailulistallasi",
+       "prefs-editwatchlist-raw": "Muokkaa tarkkailulistan raakaversiota",
+       "prefs-editwatchlist-clear": "Tyhjennä tarkkailulistasi",
        "prefs-watchlist-days": "Näytettävien päivien määrä tarkkailulistalla",
        "prefs-watchlist-days-max": "Enintään $1 {{PLURAL:$1|päivä|päivää}}",
        "prefs-watchlist-edits": "Tarkkailulistalla näytettävien muokkausten määrä",
        "uploaderror": "Tallennusvirhe",
        "upload-recreate-warning": "<strong>Varoitus: Tiedosto tällä nimellä on poistettu tai siirretty.</strong>\n\nPoisto- ja siirtoloki tälle sivulle näkyy alla:",
        "uploadtext": "Käytä tätä alla olevaa lomaketta tiedostojen tallentamiseen.\nVoit katsella luetteloa aiemmin tallennetuista tiedostoista sivulla [[Special:FileList|tiedostoluettelo]]. Kaikki tallennukset kirjataan myös [[Special:Log/upload|tallennuslokiin]] ja tiedostojen poistot [[Special:Log/delete|poistolokiin]].\n\nJotta saat tiedoston näkymään sivulla, käytä jotakin seuraavista muotoiluista linkkinä siihen:\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Tiedosto.jpg]]</nowiki></code></strong> käyttääksesi tiedoston kokonaista versiota.\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Tiedosto.png|200px|thumb|left|teksti tähän]]</nowiki></code></strong> käyttääksesi tiedostoa sovitettuna 200 kuvapistettä leveään laatikkoon kuvatekstillä \"teksti tähän\".\n* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Tiedosto.ogg]]</nowiki></code></strong>, jos haluat suoran linkin tiedostoon ilman että tiedostoa näytetään.",
-       "upload-permitted": "Sallitut tiedostomuodot: $1.",
-       "upload-preferred": "Suositellut tiedostomuodot: $1.",
-       "upload-prohibited": "Kielletyt tiedostomuodot: $1.",
+       "upload-permitted": "{{PLURAL:$2|Sallittu tiedostomuoto|Sallitut tiedostomuodot}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Suositeltu tiedostomuoto|Suositellut tiedostomuodot}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Kielletty tiedostomuoto|Kielletyt tiedostomuodot}}: $1.",
        "uploadlogpage": "Tiedostoloki",
        "uploadlogpagetext": "Alla on luettelo uusimmista tiedostonlisäyksistä. Kaikki ajat näytetään palvelimen aikavyöhykkeessä.",
        "filename": "Tiedoston nimi:",
        "namespace": "Nimiavaruus:",
        "invert": "Käänteinen valinta",
        "tooltip-invert": "Valitse tämä kohta, jos haluat piilottaa muutokset sivuihin valitussa nimiavaruudessa (ja liittyviin nimiavaruuksiin, jos valittu)",
+       "tooltip-whatlinkshere-invert": "Laita rasti tähän ruutuun, kun haluat piilottaa linkit niistä sivuista, jotka kuuluvat valittuun nimiavaruuteen.",
        "namespace_association": "Liittyvä nimiavaruus",
        "tooltip-namespace_association": "Valitse tämä kohta, jos haluat haun sisältävän myös valittuun nimiavaruuteen liittyvän keskustelu- tai aihenimiavaruuden.",
        "blanknamespace": "(sivut)",
        "javascripttest": "JavaScriptin testaus",
        "javascripttest-pagetext-noframework": "Tämä sivu on varattu JavaScript-testien suorittamiseen.",
        "javascripttest-pagetext-unknownframework": "Tuntematon testausalusta $1.",
+       "javascripttest-pagetext-unknownaction": "Tuntematon toiminto \"$1\".",
        "javascripttest-pagetext-frameworks": "Valitse yksi seuraavista testausalustoista: $1",
        "javascripttest-pagetext-skins": "Valitse testauksessa käytettävä ulkoasu",
        "javascripttest-qunit-intro": "Katso [$1 testausohjeet] mediawiki.orgissa.",
index 6b1479e..7d02461 100644 (file)
@@ -37,7 +37,7 @@
        "tog-shownumberswatching": "Vís tal av brúkarum sum fylgja við",
        "tog-oldsig": "Verandi undirskrift:",
        "tog-fancysig": "Viðgerð undirskriftina sum wikitekstur (uttan sjálvvirkandi leinkju)",
-       "tog-uselivepreview": "Nýt \"live preview\" (á royndarstøði)",
+       "tog-uselivepreview": "Nýt beinleiðis forskoðan",
        "tog-forceeditsummary": "Gev mær boð, um eg ikki havi skrivað ein samandrátt um mína rætting",
        "tog-watchlisthideown": "Fjal mínar rættingar frá eftirliti",
        "tog-watchlisthidebots": "Vís ikki rættingar frá botti í eftirlitslistanum",
        "otherlanguages": "Á øðrum málum",
        "redirectedfrom": "(Ávíst frá $1)",
        "redirectpagesub": "Ávísingarsíða",
+       "redirectto": "Snarvegur til:",
        "lastmodifiedat": "Hendan síðan var seinast broytt $2, $1.",
        "viewcount": "Onkur hevur verið á hesi síðu {{PLURAL:$1|eina ferð|$1 ferðir}}.",
        "protectedpage": "Friðað síða",
        "jumptonavigation": "navigatión",
        "jumptosearch": "leita",
        "view-pool-error": "Haldið okkum til góðar, servarnir hava ov nógv at gera í løtuni.\nOv nógvir brúkarir royna at síggja hesa síðuna.\nVinarliga bíða eina løtu, áðrenn tú roynir enn einaferð at fáa atgongd til hesa síðuna.\n\n$1",
+       "generic-pool-error": "Haldið okkum til góðar, servararnir hava ov nógv at gera í løtuni.\nOv nógvir brúkarir royna at síggja hetta tilfeingi.\nVinarliga bíða eina løtu, áðrenn tú roynir enn einaferð at fáa atgongd til hetta tilfeingi.\n\n$1",
        "pool-timeout": "Støðgur, bíða verður eftir lásinum",
        "pool-queuefull": "Køin til \"hylin\" er full",
        "pool-errorunknown": "Ókend villa",
        "hidetoc": "fjal",
        "collapsible-collapse": "Samanbrot",
        "collapsible-expand": "Víðka",
+       "confirmable-yes": "Ja",
+       "confirmable-no": "Nei",
        "thisisdeleted": "Sí ella endurstovna $1?",
        "viewdeleted": "Vís $1?",
        "restorelink": "{{PLURAL:$1|strikaða rætting|$1 strikaðar rættingar}}",
        "nospecialpagetext": "<strong>Tú hevur biðið um eina serliga síðu, sum wiki ikki kennir aftur.</strong>\n\n<!-- A list of valid special pages can be found at [[Special:SpecialPages]]. -->",
        "error": "Villa",
        "databaseerror": "Villa í dátagrunni",
+       "databaseerror-text": "Ein feilur hendi í fyrispurninginum til dátagrunnin.\nHetta kann týða uppá ein feil í ritbúnaðinum.",
        "databaseerror-query": "Fyrispurningur: $1",
        "databaseerror-function": "Funksjón: $1",
        "databaseerror-error": "Feilur: $1",
        "delete-warning-toobig": "Henda síðan hevur eina langa rættingarsøgu, yvir $1 {{PLURAL:$1|versjón|versjónir}}.\nUm tú slettar hana kann tað órógva virksemi hjá dátugrunninum {{SITENAME}};\nfar varliga fram.",
        "deleting-backlinks-warning": "'''Ávaring:''' Aðrar síður slóða til ella hava síðuna við, ið tú ert í ferð við at sletta.",
        "rollback": "Rulla broytingar aftur",
-       "rollback_short": "Rulla aftur",
        "rollbacklink": "afturrulling",
        "rollbacklinkcount": "rulla aftur $1 {{PLURAL:$1|rætting|rættingar}}",
        "rollbacklinkcount-morethan": "rulla aftur meira enn $1 {{PLURAL:$1|rætting|rættingar}}",
        "import-logentry-interwiki": "$1 varð flutt millum wikiir",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versjón|versjónir}} frá $2",
        "javascripttest": "Royndarkoyring av JavaScript",
-       "javascripttest-title": "Koyrir $1 royndir",
        "javascripttest-pagetext-noframework": "Henda síðan er løgd av til at koyra JavaScript royndir.",
        "javascripttest-pagetext-skins": "Vel eina útsjónd at koyra royndirnar við:",
        "tooltip-pt-userpage": "Tín brúkarasíða",
index 4e38d66..7dc4d2f 100644 (file)
                        "Automatik",
                        "Elodark",
                        "Macofe",
-                       "Sam"
+                       "Sam",
+                       "JackPotte",
+                       "Weft"
                ]
        },
        "tog-underline": "Souligner les liens :",
        "redirectedfrom": "(Redirigé depuis $1)",
        "redirectpagesub": "Page de redirection",
        "redirectto": "Rediriger vers :",
-       "lastmodifiedat": "Dernière modification de cette page le $1 à $2.<br />",
+       "lastmodifiedat": "Dernière modification de cette page le $1 à $2.",
        "viewcount": "Cette page a été consultée {{PLURAL:$1|une fois|$1 fois}}.",
        "protectedpage": "Page protégée",
        "jumpto": "Aller à :",
        "prefs-personal": "Informations personnelles",
        "prefs-rc": "Modifications récentes",
        "prefs-watchlist": "Liste de suivi",
+       "prefs-editwatchlist": "Modifier la liste de suivi",
+       "prefs-editwatchlist-label": "Modifier des titres de votre liste de suivi",
+       "prefs-editwatchlist-edit": "Voir et retirer des titres de votre liste de suivi",
+       "prefs-editwatchlist-raw": "Modifier la liste de suivi en mode brut",
+       "prefs-editwatchlist-clear": "Effacer la liste de suivi",
        "prefs-watchlist-days": "Nombre de jours à afficher dans la liste de suivi :",
        "prefs-watchlist-days-max": "(maximum $1 jour{{PLURAL:$1||s}})",
        "prefs-watchlist-edits": "Nombre de modifications à afficher dans la liste de suivi étendue :",
        "uploaderror": "Erreur lors de l’import",
        "upload-recreate-warning": "'''Attention : Un fichier portant ce nom a été supprimé ou déplacé.'''\n\nLe journal des suppressions et celui des déplacements de cette page sont affichés ici pour informations :",
        "uploadtext": "Utilisez ce formulaire pour importer des fichiers sur le serveur.\nPour voir ou rechercher des images précédemment envoyées, consultez la [[Special:FileList|liste des images]]. L’import est aussi enregistré dans le [[Special:Log/upload|journal d’import des fichiers]], et les suppressions dans le [[Special:Log/delete|journal des suppressions]].\n\nPour inclure un fichier dans une page, utilisez un lien de la forme :\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichier.jpg]]</nowiki></code>''', pour afficher le fichier en pleine résolution (dans le cas d’une image) ;\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichier.png|200px|thumb|left|texte descriptif]]</nowiki></code>''' pour utiliser une miniature de 200 pixels de large dans une boîte à gauche avec « texte descriptif » comme description ;\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:fichier.ogg]]</nowiki></code>''' pour lier directement vers le fichier sans l’afficher.",
-       "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.",
+       "upload-permitted": "{{PLURAL:$2|Format|Formats}} de fichiers {{PLURAL:$2|autorisé|autorisés}} : $1.",
+       "upload-preferred": "{{PLURAL:$2|Format|Formats}} de fichiers {{PLURAL:$2|préféré|préférés}} : $1.",
+       "upload-prohibited": "‎{{PLURAL:$2|Format|Formats}} de fichiers {{PLURAL:$2|interdit|interdits}} : $1.",
        "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",
index 6bee7ed..8052343 100644 (file)
@@ -7,18 +7,19 @@
                        "PieRRoMaN",
                        "RoyAlcatraz",
                        "Urhixidur",
-                       "Zetud"
+                       "Zetud",
+                       "Hangmanwa7id"
                ]
        },
        "tog-underline": "Souligner les liens:",
-       "tog-hideminor": "Cachez les petits changements dans la liste des derniers changements",
-       "tog-hidepatrolled": "↓ Cachez les petits changements dans la liste des derniers changements",
-       "tog-newpageshidepatrolled": "↓Cache pages patrollés de la list des pages nouveau",
+       "tog-hideminor": "Cacher les petits changements dans la liste des derniers changements",
+       "tog-hidepatrolled": "↓ Cacher les petits changements dans la liste des derniers changements",
+       "tog-newpageshidepatrolled": "↓Cacher pages patrollés de la list des pages nouveau",
        "tog-extendwatchlist": "Agrandir la liste des pages guettées pour montrer tous les changements",
        "tog-usenewrc": "User les derniers changements improuvés (JavaScript)",
        "tog-numberheadings": "Mettre les numéros sus les en-têtes",
-       "tog-showtoolbar": "Montrer la barre d'outils des changements (JavaScript)",
-       "tog-editondblclick": "Faire un clic-double pour changer la page (JavaScript)",
+       "tog-showtoolbar": "Montrer la barre d'outils des changements (nécessite JavaScript)",
+       "tog-editondblclick": "Faire un clic-double pour changer la page (nécessite JavaScript)",
        "tog-editsectiononrightclick": "Changer une section en faisant un clic droit sus son nom (JavaScript)",
        "tog-watchcreations": "Additionner les pages que je crée à ma liste des pages guettées",
        "tog-watchdefault": "Additionner les pages que je change à ma liste des pages guettées",
@@ -32,7 +33,7 @@
        "tog-enotifminoredits": "Envoyer un e-mail même pour les petits changements",
        "tog-enotifrevealaddr": "Montrer mon adresse e-mail dans les e-mails d'avertissement",
        "tog-shownumberswatching": "Montrer le montant de guetteurs",
-       "tog-oldsig": "↓ Preview du signature existant:",
+       "tog-oldsig": "Signature existant:",
        "tog-fancysig": "Signature brute (sans liens préparés)",
        "tog-uselivepreview": "User la vue d'avance vite (JavaScript) (En assai)",
        "tog-forceeditsummary": "M'avertir quand j'ai laissé la boëte de commentaires vide",
@@ -47,6 +48,8 @@
        "underline-always": "Tout le temps",
        "underline-never": "Jamais",
        "underline-default": "D'après le réglage du navigateur",
+       "editfont-sansserif": "Font sans-serif",
+       "editfont-serif": "Font serif",
        "sunday": "dimanche",
        "monday": "lundi",
        "tuesday": "mardi",
@@ -67,7 +70,7 @@
        "april": "d'avril",
        "may_long": "de mai",
        "june": "de juin",
-       "july": "de juliette",
+       "july": "de julliette",
        "august": "d'août",
        "september": "de septembre",
        "october": "d'octobre",
@@ -79,7 +82,7 @@
        "april-gen": "avril",
        "may-gen": "mai",
        "june-gen": "juin",
-       "july-gen": "juliette",
+       "july-gen": "julliette",
        "august-gen": "août",
        "september-gen": "septembre",
        "october-gen": "octobre",
        "oct": "oct",
        "nov": "nov",
        "dec": "déc",
+       "january-date": "$1 janvier",
+       "february-date": "$1 février",
+       "march-date": "$1 mars",
+       "april-date": "$1 avril",
+       "may-date": "$1 mai",
+       "june-date": "$1 juin",
+       "july-date": "$1 julliette",
+       "august-date": "$1 août",
+       "september-date": "$1 septembre",
+       "october-date": "$1 octobre",
+       "november-date": "$1 novembre",
+       "december-date": "$1 décembre",
        "pagecategories": "{{PLURAL:$1|Classe|Classes}}",
        "category_header": "Articles dans classe \"$1\"",
        "subcategories": "Sous-classes",
        "category-media-header": "Média dans classe \"$1\"",
        "category-empty": "''À présent, cette classe a ni articles ni média.''",
+       "hidden-categories": "{{PLURAL:$1|Classe cachée|Classes cachées}}",
+       "hidden-category-category": "Classes cachées",
+       "listingcontinuesabbrev": "cont.",
+       "index-category": "Pages indexées",
+       "noindex-category": "Pages non indexées",
+       "broken-file-category": "Pages avec des liens de fichiers cassées",
        "about": "Info",
        "article": "Page des matières",
        "newwindow": "(va ouverre une nouvelle fenêtre)",
-       "cancel": "Arrêter",
+       "cancel": "Annuler",
        "moredotdotdot": "Plus...",
+       "morenotlisted": "Cette liste est pas complète.",
        "mypage": "Ma page",
        "mytalk": "Ma page de discussion",
        "anontalk": "Discussion avec cette adresse IP",
        "navigation": "Navigation",
+       "and": "&#32;et",
        "qbfind": "Charcher",
        "qbbrowse": "Regarder",
        "qbedit": "Changer",
        "qbmyoptions": "Mes options",
        "faq": "Questions Communes",
        "faqpage": "Project:Questions Communes",
+       "actions": "Actions",
+       "namespaces": "Espaces des noms",
+       "variants": "Variantes",
+       "navigation-heading": "Menu de navigation",
        "errorpagetitle": "Erreur",
-       "returnto": "Retourner back à la page $1.",
+       "returnto": "Retourner à la page $1.",
        "tagline": "Un article de {{SITENAME}}",
        "help": "Aide",
        "search": "Charcher",
        "searchbutton": "Charcher",
        "go": "Aller",
        "searcharticle": "Aller",
-       "history": "Changements",
+       "history": "Changements du page",
        "history_short": "Changements",
        "updatedmarker": "changé depuis ma dernière visite",
        "printableversion": "Version imprimable",
        "permalink": "Lien permanent",
        "print": "Imprimer",
+       "view": "Regarde",
+       "view-foreign": "Regarde sur $1",
        "edit": "Changer",
+       "create": "Créer",
        "editthispage": "Faire un changement",
+       "create-this-page": "Créer cette page",
        "delete": "Supprimer",
        "deletethispage": "Supprimer cette page",
-       "undelete_short": "Rétablir {{PLURAL:$1|un changement|$1 changements}}",
+       "undeletethispage": "Restaurer cette page",
+       "undelete_short": "Restaurer {{PLURAL:$1|un changement|$1 changements}}",
+       "viewdeleted_short": "Regarder {{PLURAL:$1|un changement effacée|$1 changements effacées}}",
        "protect": "Protéger",
        "protect_change": "Changer le niveau de protection",
        "protectthispage": "Protéger cette page",
-       "unprotect": "déprotéger",
-       "unprotectthispage": "Déprotéger cette page",
+       "unprotect": "Changer la protection",
+       "unprotectthispage": "Changer la protection de cette page",
        "newpage": "Nouvelle page",
        "talkpage": "Discuter cette page",
        "talkpagelinktext": "Discuter",
        "articlepage": "Voir l'article",
        "talk": "Discussion",
        "views": "Vues",
-       "toolbox": "Boëte d'outils",
+       "toolbox": "Outils",
        "userpage": "Page d'useur",
        "projectpage": "Page des projets",
-       "imagepage": "Page des images",
+       "imagepage": "Regarder la page du fichier",
        "mediawikipage": "Page des messages",
        "templatepage": "Page de patron",
        "viewhelppage": "Page d'aide",
        "otherlanguages": "Autres langues",
        "redirectedfrom": "(Envoyé ici de la page $1)",
        "redirectpagesub": "Page de redirection",
+       "redirectto": "Rediriger vers:",
        "lastmodifiedat": "Cette page a été changée le $1 à $2.",
-       "viewcount": "Cette page a été visitée {{PLURAL:$1|$1 fois|$1 fois}}.",
+       "viewcount": "Cette page a été visitée {{PLURAL:$1|une fois|$1 fois}}.",
        "protectedpage": "Page protégée",
        "jumpto": "Aller à:",
+       "jumptonavigation": "navigation",
        "jumptosearch": "charcher",
+       "poolcounter-usage-error": "Erreur d’utilisation: $1",
        "aboutsite": "Qui c'est {{SITENAME}}?",
        "aboutpage": "Project:Info",
        "copyright": "Les matières sont avalable en accord avec $1",
        "privacy": "Régulations des affaires privées",
        "privacypage": "Project:Régulations des affaires privées",
        "badaccess": "Erreur de permission",
-       "badaccess-group0": "Vous avez pas assez de permission de faire ça que vous demandez.",
+       "badaccess-group0": "Tu as pas asses de permission de faire ça que tu demandes.",
        "badaccess-groups": "L'action que vous avez demandé est juste pour les useurs dans une des groupes $1.",
        "versionrequired": "Vous avez besoin de la version $1 de MediaWiki.",
        "versionrequiredtext": "Vous avez besoin de la version $1 de MediaWiki pour utiliser cette page. Voir [[Special:Version]].",
+       "ok": "OK",
        "retrievedfrom": "Pris de \"$1\"",
        "youhavenewmessages": "Vous avez $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Tu as}} $1 {{PLURAL:$3|d'un autre utilisateur|de $3 autres utilisateurs}} ($2).",
+       "youhavenewmessagesmanyusers": "Tu as $1 de nombreux utilisateurs ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|un nouveau message|des nouveaux messages}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|dernière modification|dernières modifications}}",
        "youhavenewmessagesmulti": "Vous avez des nouveaux messages sus $1.",
        "editsection": "changer",
        "editold": "changer",
+       "viewsourceold": "Regarde la source",
+       "editlink": "changer",
        "viewsourcelink": "Voir la source",
        "editsectionhint": "Changer la section: $1",
        "toc": "Matières",
        "showtoc": "montrer",
        "hidetoc": "cacher",
-       "thisisdeleted": "Vous aimerait mieux voir ou rétablir $1?",
-       "viewdeleted": "Voir $1?",
+       "confirmable-yes": "Oui",
+       "confirmable-no": "Non",
+       "thisisdeleted": "Tu aimerais mieux regarde ou rétablir $1?",
+       "viewdeleted": "Regarder $1?",
        "restorelink": "{{PLURAL:$1|1 changement ôté|$1 changements ôtés}}",
        "feedlinks": "Distribution RSS:",
        "feed-invalid": "Mauvaise qualité de distribution RSS.",
+       "site-rss-feed": "Flux RSS de $1",
+       "site-atom-feed": "Flux Atom de $1",
+       "page-rss-feed": "Flux RSS de \"$1\"",
+       "page-atom-feed": "Flux Atom de \"$1\"",
        "red-link-title": "$1 (page n'existe pas)",
+       "sort-descending": "Tri dégruchant",
+       "sort-ascending": "Tri engruchant",
        "nstab-main": "Page",
        "nstab-user": "Useur",
        "nstab-media": "Média",
        "nstab-special": "Page espécial",
        "nstab-project": "Info",
        "nstab-image": "Dossier",
+       "nstab-mediawiki": "Message",
        "nstab-template": "Patron",
        "nstab-help": "Aide",
        "nstab-category": "Classe",
        "nosuchaction": "Action inconnue",
-       "nosuchactiontext": "L'action demandée dans l'adresse URL est pas reconnue par le wiki.",
+       "nosuchactiontext": "L'action spécifiée dans l'adresse URL est invalide.\nTu as peut-être mal entré l'URL ou suivi un lien erroné.\nIl peut aussi s'indiquer d'un bug dans le logiciel utilisé par {{SITENAME}}.",
        "nosuchspecialpage": "Page espéciale inconnue",
        "nospecialpagetext": "La page que vous avez demandée est pas une bonne page espéciale.  Vous pouvez trouver une liste des bonnes pages espéciales dans la [[Special:SpecialPages|liste des pages espéciales]].",
        "error": "Erreur",
        "databaseerror": "Erreur de la base d'information",
+       "databaseerror-error": "Erreur: $1",
        "laggedslavemode": "Avertissement: La page est peut-être pas renouvelée.",
        "readonly": "La base d'information est barrée.",
        "enterlockreason": "Écrire une raison pour le barrage avec un temps estimé\nd'équand le barrage va être ôté.",
        "readonlytext": "À présent, la base d'information est barrée aux nouveaux changements, peut-être pour le soutien habituel de la base d'information, et ça va retourner à normal t'à l'heure.\n\nL'administrateur qui l'a barrée a donné cette explication: $1",
+       "missingarticle-diff": "(diff: $1, $2)",
        "readonly_lag": "La base d'information s'a barré pendant que les serveurs de la base d'information rapprochont le maître.",
        "internalerror": "Erreur internelle",
        "internalerror_info": "Erreur intérieur: $1",
        "namespaceprotected": "Vous avez pas la permission de changer les pages dans l'espace de noms \"$1\".",
        "ns-specialprotected": "Vous pouvez pas changer les pages dans l'espace de noms {{ns:special}}.",
        "logouttext": "'''Vous êtes déconnecté asteur.'''\n\nVous pouvez continuer à user {{SITENAME}} sans nom ou vous pouvez connecter encore une fois avec le même nom ou un autre nom.\nNotez: certaines pages pourriont être vues comme si vous êtes connecté, jusqu'à vous videz l'information de votre navigateur.",
+       "welcomeuser": "Bienvenue, $1!",
        "yourname": "Nom d'useur:",
+       "userlogin-yourname": "Nom d'useur:",
+       "userlogin-yourname-ph": "Entres ton nom d'utilisateur",
+       "createacct-another-username-ph": "Entres le nom d'utilisateur",
        "yourpassword": "Mot de passe:",
+       "userlogin-yourpassword": "Mot de passe",
+       "userlogin-yourpassword-ph": "Entres ton mot de passe",
+       "createacct-yourpassword-ph": "Entres un mot de passe",
        "yourpasswordagain": "Mot de passe encore:",
+       "createacct-yourpasswordagain": "Confirmes le mot de passe",
+       "createacct-yourpasswordagain-ph": "Entres à nouveau le mot de passe",
        "remembermypassword": "Garder mon mot de passe dans cette browser (pour un maximum of $1 {{PLURAL:$1|jour|jours}})",
        "yourdomainname": "Votre domaine:",
        "externaldberror": "Soit y avait une erreur avec la base d'information de certification extérieur, soit vous avez pas la permission de renouveler votre compte extérieur.",
        "gotaccount": "Vous avez un compte déjà? '''$1'''.",
        "gotaccountlink": "Connectez",
        "userlogin-resetlink": "Oublié vôtre détailes de log in?",
+       "createacct-emailrequired": "Adresse d'email",
+       "createacct-emailoptional": "Adresse d'email (optional)",
+       "createacct-email-ph": "Entres t'adresse d'email",
+       "createacct-another-email-ph": "Entres adresse d'email",
        "createaccountmail": "par e-mail",
+       "createaccountreason": "Raison:",
+       "createacct-reason": "Raison",
+       "createacct-reason-ph": "Pourquoi crées-tu un autre compte",
        "badretype": "Les mots de passe que vous avez mis sont pas pareils.",
        "userexists": "Le nom d'useur choisi est déjà usé.  Choissez donc un autre nom.",
        "loginerror": "Erreur d'identification",
-       "nocookiesnew": "Votre compte a été créé, mais vous êtes pas connecté.  {{SITENAME}} use les cookies pour connecter les useurs.  Partez les cookies et connectez avec votre nouveau nom d'useur et votre mot de passe, s'il vous plaît.",
+       "createacct-error": "Erreur lors de la création du compte",
+       "createaccounterror": "Impossible de créer le compte: $1",
+       "nocookiesnew": "Ton compte a été créé, mais tu es pas connecté{{GENDER:||e|(e)}}.  {{SITENAME}} use les cookies pour connecter les useurs.  Partes les cookies et connectes avec ton nouveau nom d'useur et ton mot de passe.",
        "nocookieslogin": "{{SITENAME}} use les cookies pour connecter les useurs.  Partez donc les cookies et assayez encore.",
        "nocookiesfornew": "Le conte d'useur n'était pas fait, à cause qu'on pouvait pas confirmer la source.  Ensurer que tu as des cookies, reload ce page et essayer encore.",
        "noname": "Vous avez pas mis un bon nom d'useur.",
        "accountcreated": "Compte créé",
        "accountcreatedtext": "Le compte d'useur pour $1 a été créé.",
        "loginlanguagelabel": "Langue: $1",
+       "pt-login": "Te connecter",
+       "pt-login-button": "Te connecter",
+       "pt-createaccount": "Créer un compte",
+       "pt-userlogout": "Te déconnecter",
        "resetpass_announce": "Pour le moment, vous êtes connecté avec un mot de passe qu'a été envoyé par e-mail.  Pour finir de vous connecter, il faut créer un nouveau mot de passe ici:",
        "resetpass_text": "<!-- Mettez du texte ici -->",
        "resetpass_header": "Rétablir le mot de passe",
+       "oldpassword": "Dépassé mot de passe:",
        "resetpass_submit": "Créer le mot de passe et connecter",
        "changepassword-success": "Vous avez bien changé votre mot de passe!  On est après vous connecter...",
        "resetpass_forbidden": "Vous pouvez pas changer votre mot de passe sus ce wiki ici.",
+       "resetpass-submit-loggedin": "Changer de mot de passe",
+       "resetpass-submit-cancel": "Annuler",
+       "resetpass-wrong-oldpass": "Mot de passe actuel ou temporaire invalide.\nTu as peut-être déjà changé ton mot de passe ou demandé un nouveau mot de passe temporaire.",
+       "resetpass-recycled": "Veuilles réinitialiser ton mot de passe à quelque chose d’autre que l’actuel.",
+       "resetpass-temp-password": "Mot de passe temporaire:",
+       "passwordreset-username": "Nom d'useur:",
+       "passwordreset-domain": "Domaine:",
+       "passwordreset-capture": "Regarder l'email résultant?",
+       "passwordreset-email": "Adresse d'email:",
+       "changeemail-none": "(aucun)",
+       "changeemail-password": "Ton mot de passe sur {{SITENAME}}:",
+       "changeemail-submit": "Changer l’adresse d'email",
        "bold_sample": "Gras",
        "bold_tip": "Gras",
        "italic_sample": "Italique",
        "permissionserrorstext": "Vous avez pas la permission de faire ça pour {{PLURAL:$1|cette raison|ces raisons}}:",
        "permissionserrorstext-withaction": "Vous avez pas la permission de faire ça pour {{PLURAL:$1|cette raison|ces raisons}}:",
        "recreate-moveddeleted-warn": "'''Attention: Vous êtes après recréer une page qu'a déjà été ôtée.'''\n\nVous devrait considérer si c'est à propos de continuer à changer cette page.\nLes notes d'ôtage pour cette page sont données ici pour vous aider:",
+       "postedit-confirmation-restored": "La page a été restaurée.",
+       "postedit-confirmation-saved": "Ton changement a été cachée.",
+       "edit-already-exists": "La nouvelle page a pas pu être créée.\nAlle existe déjà.",
+       "defaultmessagetext": "Message par défaut",
+       "content-model-text": "texte brut",
+       "content-model-javascript": "JavaScript",
+       "content-json-empty-object": "Objet vide",
+       "content-json-empty-array": "Tableau vide",
        "undo-success": "Le changement peut être renversé.  Regardez donc la comparaison en bas pour être sûr que c'est comme vous voulez, et puis sauvez les changements en bas pour finir le renversage du changement.",
        "undo-failure": "Le changement pouvait pas être renversé à cause d'une dispute de changements.",
        "undo-summary": "Défaire la révision $1 par [[Special:Contributions/$2|$2]] ([[User talk:$2|Discussion]])",
        "revdelete-submit": "Appliquer à la version choisie",
        "revdelete-success": "'''Vous avez bien changé la visibilité des versions.'''",
        "logdelete-success": "'''Vous avez bien changé la visibilité des événements.'''",
+       "mergehistory-reason": "Raison:",
+       "mergelog": "Journal des fusions",
        "lineno": "Ligne $1:",
        "compareselectedversions": "Comparer les versions choisies",
        "editundo": "renverser",
        "searchresults": "Résultats de la charche",
        "searchresults-title": "Résultats de charche pour « $1 »",
+       "nextn": "{{PLURAL:$1|suivante|$1 suivantes}}",
+       "prevn-title": "$1 {{PLURAL:$1|résultat dernier|résultats derniers}}",
+       "nextn-title": "$1 {{PLURAL:$1|résultat suivant|résultats suivants}}",
+       "viewprevnext": "Regarder ($1 {{int:pipe-separator}} $2) ($3).",
        "searchprofile-everything": "Tout",
+       "searchprofile-advanced": "Charche avancée",
+       "searchprofile-articles-tooltip": "Charcher dans $1",
+       "searchprofile-images-tooltip": "Charcher des fichiers multimédias",
+       "searchprofile-everything-tooltip": "Charcher dans tout le site (y compris dans les pages de discussion)",
+       "searchprofile-advanced-tooltip": "Choisir les espaces de noms pour la charche",
        "search-result-size": "$1 ({{PLURAL:$2|1 mot|$2 mots}})",
+       "search-result-category-size": "$1 membre{{PLURAL:$1||s}} ($2 sous-classe{{PLURAL:$2||s}}, $3 fichier{{PLURAL:$3||s}})",
+       "searchall": "tout",
+       "powersearch-toggleall": "Tout",
+       "powersearch-togglenone": "Aucun",
        "preferences": "Réglage",
        "mypreferences": "Mon réglage",
        "skin-preview": "Vue d'avance",
+       "prefs-user-pages": "Pages d'useur",
+       "prefs-personal": "Profil d'useur",
+       "prefs-rc": "Changements récents",
+       "prefs-watchlist": "Liste de suivi",
+       "prefs-email": "Option des emails",
+       "prefs-rendering": "Apparence",
+       "searchresultshead": "Charcher",
+       "localtime": "Heure locale:",
+       "timezoneregion-asia": "Asie",
+       "timezoneregion-atlantic": "Océan atlantique",
+       "timezoneregion-australia": "Australie",
+       "timezoneregion-europe": "Europe",
+       "timezoneregion-indian": "Océan indien",
+       "timezoneregion-pacific": "Océan pacifique",
+       "prefs-searchoptions": "Charche",
+       "prefs-namespaces": "Espaces des noms",
+       "default": "défaut",
+       "prefs-files": "Fichiers",
        "prefs-custom-css": "Custom CSS",
        "prefs-custom-js": "Custom JavaScript",
-       "youremail": "E-mail:",
+       "youremail": "Email:",
        "username": "Nom d'useur:",
        "yourrealname": "Vrai nom:",
        "yourlanguage": "Langue:",
        "yournick": "'Tit nom:",
        "badsig": "Votre signature brute est pas bonne.  Regardez-voir les tags HTML.",
        "badsiglength": "Votre 'tit nom est trop long.  Il faut que ça soye moins que $1 caractères.",
-       "gender-male": "Male",
-       "gender-female": "Female",
+       "gender-unknown": "Je préfère pas l’indiquer",
+       "gender-male": "Il change des pages du wiki",
+       "gender-female": "Alle change des pages du wiki",
+       "email": "Email",
        "prefs-help-realname": "Votre vrai nom est pas nécessaire.  Si vous choisirait de le mettre, ça serait usé pour vous donner du crédit pour votre ouvrage.",
        "prefs-help-email": "Votre adresse e-mail est pas nécessaire, mais ça quitte le monde vous contacter par votre page d'useur ou votre page de discussion sans montrer votre identité.",
+       "prefs-dateformat": "Format des dates",
+       "prefs-advancedrc": "Options avancées",
+       "prefs-advancedrendering": "Options avancées",
+       "prefs-advancedsearchoptions": "Options avancées",
+       "prefs-advancedwatchlist": "Options avancées",
        "editinguser": "Changement de '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
+       "userrights-reason": "Raison:",
+       "group": "Groupe:",
+       "group-user": "Useurs",
+       "group-all": "(tous)",
+       "group-bot-member": "{{GENDER:$1|robot}}",
+       "group-sysop-member": "{{GENDER:$1|administrateur|administratrice}}",
+       "group-bureaucrat-member": "{{GENDER:$1|bureaucrate}}",
+       "grouppage-bot": "{{ns:project}}:Robots",
+       "grouppage-sysop": "{{ns:project}}:Administrateurs",
+       "grouppage-bureaucrat": "{{ns:project}}:Bureaucrates",
+       "right-read": "Lire les pages",
+       "right-edit": "Changer les pages",
+       "right-createpage": "Créer des pages (qui sont pas des pages de discussion)",
+       "right-createtalk": "Créer des pages de discussion",
+       "right-createaccount": "Créer des comptes useur",
+       "right-minoredit": "Marquer ses changements comme mineures",
+       "right-move": "Renommer des pages",
+       "right-move-subpages": "Renommer des pages avec leurs sous-pages",
+       "right-move-rootuserpages": "Renommer la page principale d'un useur",
+       "right-move-categorypages": "Renommer des pages de classe",
+       "right-movefile": "Renommer des fichiers",
+       "right-delete": "Effacer des pages",
+       "right-unblockself": "Te débloquer toi-même",
+       "right-editinterface": "Changer l'interface useur",
+       "action-read": "lire cette page",
        "action-edit": "Faire un changement",
+       "action-createpage": "créer des pages",
+       "action-createtalk": "créer des pages de discussion",
+       "action-createaccount": "créer ce compte useur",
+       "action-minoredit": "marquer cette changement comme mineure",
+       "action-move": "renommer cette page",
+       "action-move-subpages": "renommer cette page et ses sous-pages",
+       "action-move-rootuserpages": "renommer la page principale d'un useur",
+       "action-move-categorypages": "renommer des pages de classe",
+       "action-movefile": "renommer ce fichier",
+       "action-delete": "effacer cette page",
+       "action-deleterevision": "effacer cette version",
+       "action-browsearchive": "charcher des pages effacées",
+       "action-undelete": "restaurer cette page",
+       "action-sendemail": "envoyer des emails",
+       "nchanges": "$1 changement{{PLURAL:$1||s}}",
        "recentchanges": "Changements récent",
+       "rcshowhidebots": "$1 les robots",
        "rcshowhidepatr": "$1 les modifications patrouillés",
+       "minoreditletter": "m",
+       "newpageletter": "N",
+       "boteditletter": "b",
+       "recentchangeslinked-page": "Nom de la page:",
+       "filename": "Nom du fichier",
+       "filedesc": "Sommaire",
+       "fileuploadsummary": "Sommaire:",
+       "filereuploadsummary": "Changements du fichier:",
+       "filestatus": "Statut du droit d'auteur:",
+       "filesource": "Source:",
+       "ignorewarning": "Ignorer l'avertissement et sauvegarder le fichier quand même",
+       "ignorewarnings": "Ignorer les avertissements",
+       "backend-fail-notexists": "Le fichier $1 existe pas.",
+       "imgfile": "fichier",
+       "listfiles": "Liste de fichiers",
+       "listfiles_thumb": "Miniature",
+       "listfiles_date": "Date",
+       "listfiles_name": "Nom",
+       "listfiles_user": "Useur",
+       "listfiles_description": "Description",
+       "listfiles_count": "Versions",
+       "listfiles-latestversion-yes": "Oui",
+       "listfiles-latestversion-no": "Non",
        "file-anchor-link": "Dossier",
+       "filehist-deleteall": "effacer tout",
+       "filehist-deleteone": "effacer",
+       "filehist-user": "Useur",
+       "shared-repo-from": "de: $1",
+       "filerevert-comment": "Raison:",
+       "filedelete": "Effacer $1",
+       "filedelete-legend": "Effacer le fichier",
+       "filedelete-comment": "Raison:",
+       "filedelete-submit": "Effacer",
+       "filedelete-success": "'''$1''' a été effacé.",
+       "filedelete-nofile": "'''$1''' existe pas.",
        "randompage": "Page au hasard",
+       "randomincategory-category": "Classe:",
+       "statistics-pages": "Pages",
+       "pageswithprop-submit": "Aller",
+       "brokenredirects-edit": "changer",
+       "brokenredirects-delete": "effacer",
+       "withoutinterwiki": "Pages sans liens inter-langues",
        "nbytes": "$1 octet{{PLURAL:$1||s}}",
+       "ncategories": "$1 classe{{PLURAL:$1||s}}",
+       "ninterwikis": "$1 {{PLURAL:$1|interwiki|interwikis}}",
+       "nlinks": "$1 {{PLURAL:$1|page liée|pages liées}}",
+       "nmembers": "$1 membre{{PLURAL:$1||s}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|membre|membres}}",
+       "unusedcategories": "Classes inutilisées",
+       "unusedimages": "Fichiers orphelins",
+       "protectedpages-page": "Page",
+       "protectedpages-reason": "Raison",
+       "newpages-username": "Nom d'useur:",
+       "ancientpages": "Pages les plus anciennement changées",
        "move": "Renommer",
        "movethispage": "Renommer cette page",
+       "allpagessubmit": "Aller",
        "categories": "Classes",
-       "emailuser": "E-mail cet useur",
+       "special-categories-sort-count": "tri par nombre d'éléments",
+       "special-categories-sort-abc": "tri alphabétique",
+       "deletedcontributions": "Contributions effacées des useurs",
+       "deletedcontributions-title": "Contributions effacées des useurs",
+       "sp-deletedcontributions-contribs": "contributions",
+       "linksearch": "Charche de liens externes",
+       "linksearch-ns": "Espace de noms:",
+       "linksearch-ok": "Charcher",
+       "listusers-noresult": "Aucun useur trouvé.",
+       "listusers-blocked": "(bloqué{{GENDER:$1||e|(e)}})",
+       "listgrouprights-namespaceprotection-namespace": "Espace de noms",
+       "trackingcategories-name": "Nom du message",
+       "emailuser": "Emailer cet useur",
+       "emailuser-title-target": "Emailer {{GENDER:$1|cet useur|cette useuse}}",
+       "emailuser-title-notarget": "Emailer useur",
+       "emailpage": "Emailer useur",
+       "noemailtitle": "Aucune adresse d'email",
+       "emailusername": "Nom d'useur:",
+       "emailfrom": "De:",
+       "emailto": "À:",
+       "emailmessage": "Message:",
+       "emailsend": "Envoyer",
        "watchlist": "Mes pages guettées",
        "mywatchlist": "Mes pages guettées",
+       "watchlistfor2": "Pour $1 $2",
        "watch": "Guetter",
+       "watchthispage": "Guetter cette page",
        "unwatch": "guettez p'us",
+       "unwatchthispage": "Ne plus guetter",
+       "enotif_subject_deleted": "La page $1 sur {{SITENAME}} a été effacée par {{GENDER:$2|$2}}",
+       "enotif_subject_created": "La page $1 sur {{SITENAME}} a été créée par {{GENDER:$2|$2}}",
+       "enotif_subject_moved": "La page $1 sur {{SITENAME}} a été renommée par {{GENDER:$2|$2}}",
+       "enotif_subject_restored": "La page $1 sur {{SITENAME}} a été restaurée par {{GENDER:$2|$2}}",
+       "enotif_subject_changed": "La page $1 sur {{SITENAME}} a été changée par {{GENDER:$2|$2}}",
+       "enotif_body_intro_deleted": "La page $1 sur {{SITENAME}} a été effacée le $PAGEEDITDATE par {{gender:$2|$2}}, regarder $3 pour la révision actuelle.",
+       "enotif_body_intro_created": "La page $1 sur {{SITENAME}} a été créée le $PAGEEDITDATE par {{GENDER:$2|$2}}, regarder $3 pour la révision actuelle.",
+       "deletepage": "Effacer la page",
+       "delete-confirm": "Effacer \"$1\"",
+       "delete-legend": "Effacer",
+       "deletecomment": "Raison:",
+       "deleteotherreason": "Raison autre ou supplémentaire:",
+       "deletereasonotherlist": "Autre raison",
+       "protectcomment": "Raison:",
+       "restriction-edit": "Changer",
+       "restriction-move": "Renommer",
+       "restriction-create": "Créer",
+       "undelete": "Regarder les pages effacées",
+       "undeletepage": "Regarder et restaurer des pages effacées",
+       "viewdeletedpage": "Regarder les pages effacées",
+       "undeletebtn": "Restaurer",
+       "undeleteviewlink": "regarder",
+       "undeletecomment": "Raison:",
+       "undelete-search-submit": "Charcher",
+       "undelete-show-file-submit": "Oui",
+       "namespace": "Espace de noms:",
        "blanknamespace": "(Principal)",
        "contributions": "Changements de l'useur",
        "mycontris": "Mes changements",
+       "uctop": "(actuel)",
        "sp-contributions-talk": "Discuter",
+       "sp-contributions-submit": "Charcher",
+       "whatlinkshere-page": "Page:",
+       "whatlinkshere-links": "← liens",
+       "whatlinkshere-hidelinks": "$1 les liens",
+       "block": "Bloquer l’useur",
+       "unblock": "Débloquer l’useur",
+       "blockip": "Bloquer l’{{GENDER:$1|useur|useuse}}",
+       "blockip-legend": "Bloquer l’useur",
+       "ipbreason": "Raison:",
+       "ipb-unblock-addr": "Débloquer $1",
+       "ipb-unblock": "Débloquer un compte useur ou une adresse IP",
+       "unblockip": "Débloquer l’useur",
        "ipblocklist": "Useurs bloqués",
        "blocklink": "bloquer",
        "contribslink": "changes",
        "tooltip-n-randompage": "Afficher un page au hasard",
        "tooltip-n-help": "La place pour savoir",
        "tooltip-t-specialpages": "Liste de tout les pages speciales",
-       "bad_image_list": "Le format est le suivant :\n\nSeules les listes d’énumération (commençant par *) sont prises en compte. Le premier lien d’une ligne doit être celui d’une mauvaise image.\nLes autres liens sur la même ligne sont considérés comme des exceptions, par exemple des pages sur lesquelles l’image peut apparaître."
+       "bad_image_list": "Le format est le suivant :\n\nSeules les listes d’énumération (commençant par *) sont prises en compte. Le premier lien d’une ligne doit être celui d’une mauvaise image.\nLes autres liens sur la même ligne sont considérés comme des exceptions, par exemple des pages sur lesquelles l’image peut apparaître.",
+       "redirect-file": "Nom du fichier"
 }
index 377d3ac..fc967f5 100644 (file)
@@ -39,7 +39,7 @@
        "tog-shownumberswatching": "It tal brûkers sjen litte dat dizze side folget",
        "tog-oldsig": "Aktuele sinjatuerprintallyk:",
        "tog-fancysig": "Sinjatuer as wikitekst behannelje (sûnder automatyske keppeling)",
-       "tog-uselivepreview": "\"live proefbyld\" brûke (JavaScript nedich - eksperimenteel)",
+       "tog-uselivepreview": "\"Live proefbyld\" brûke",
        "tog-forceeditsummary": "Warskôgje at ik de gearfetting leech lit.",
        "tog-watchlisthideown": "Eigen bewurkings op myn folchlist ferbergje",
        "tog-watchlisthidebots": "Lit gjin bot wizigings sjen yn de folchlist",
        "talkpage": "Sideoerlis",
        "talkpagelinktext": "Oerlis",
        "specialpage": "Bysûndere side",
-       "personaltools": "Persoanlike ynstellings",
+       "personaltools": "Persoanlike ynstellingen",
        "articlepage": "Side lêze",
        "talk": "Oerlis",
        "views": "Aspekten/aksjes",
        "backlinksubtitle": "← $1",
        "retrievedfrom": "Untfongen fan \"$1\"",
        "youhavenewmessages": "Jo hawwe $1 ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|in nij berjocht|999=nije berjochten}}",
        "youhavenewmessagesmulti": "Jo hawwe nije berjochten op $1",
        "editsection": "bewurkje",
        "editold": "bewurkje",
        "nospecialpagetext": "<strong>Jo hawwe in Wiki-side opfrege dy't net bekend is by it Wiki-programma.</strong>",
        "error": "Flater",
        "databaseerror": "Databankfout",
+       "databaseerror-function": "Funksje: $1",
        "databaseerror-error": "Flater: $1",
        "laggedslavemode": "<strong>Warskôging:</strong> Mûglik binne resinte bewurkings noch net trochfierd.",
        "readonly": "Databank is 'Net-skriuwe'.",
        "virus-scanfailed": "scannen is mislearre (koade $1)",
        "virus-unknownscanner": "ûnbekend antivirus:",
        "logouttext": "<strong>Jo binne no ôfmeld.</strong>\n\nGuon siden kinne noch foar it ljocht komme, krekt as wiesto noch oanmeld. Asto de cache fan dyn webblêder leechhellest feroaret dat wer.",
+       "welcomeuser": "Wolkom, $1!",
        "yourname": "Brûkersnamme:",
        "userlogin-yourname": "Brûkersnamme",
        "userlogin-yourname-ph": "Jou dyn brûkersnamme",
        "userlogin-joinproject": "Meidwaan {{SITENAME}}",
        "nologin": "Noch net oanmelden as meidogger? $1.",
        "nologinlink": "Meitsje in brûker oan",
-       "createaccount": "Nije ynstellings oanmeitsje",
+       "createaccount": "Registrearje",
        "gotaccount": "Hawwe jo jo al as meidogger oanmelde? '''$1'''.",
        "gotaccountlink": "Oanmelde",
        "userlogin-resetlink": "Ynlochdata fergetten?",
        "createaccount-text": "Immen hat in brûker op {{SITENAME}} ($4) oanmakke mei de namme \"$2\" en jo e-mailadres. It wachtwurd foar \"$2\" is \"$3\". Meld jo oan en feroarje jo wachtwurd.\n\nNegearje it berjocht as dizze brûker sûnder jo meiwitten oanmakke is.",
        "login-throttled": "Jo hawwe koartlyn te faak besocht oan te melden mei in ûnkrekt wachtwurd.\nJo moatte efkes wachtsje foar't jo it op'e nij besykje kinne.",
        "loginlanguagelabel": "Taal: $1",
+       "pt-login": "Oanmelde",
+       "pt-login-button": "Oanmelde",
+       "pt-createaccount": "Registrearje",
+       "pt-userlogout": "Ofmelde",
        "changepassword": "Wachtwurd feroarje",
        "resetpass_announce": "Jo binne oanmeld mei in tydlike koade dy't jo per e-mail tastjoerd is. Fier in nij wachtwurd yn om it oanmelden ôf te meitsjen.",
        "resetpass_header": "Wachtwurd feroarje",
        "resetpass-submit-cancel": "Annulearje",
        "resetpass-wrong-oldpass": "It momintele of tydlike wachtwurd is ûnjildich.\nMûglik hawwe Jo Jo wachtwurd al feroare of in nij tydlik wachtwurd oanfrege.",
        "resetpass-temp-password": "Tydlik wachtwurd:",
+       "passwordreset": "Wachtwurd ferfarskje",
        "passwordreset-legend": "Wachtwurd weromsette",
        "passwordreset-username": "Brûkersnamme:",
        "passwordreset-domain": "Domein:",
        "autoblockedtext": "Jo IP-adres is automatysk útsletten om't brûkt is troch in oare brûker, dy't útsletten is troch $1.\nDe opjûne reden is:\n\n:''$2''\n\n* Begjin útsluting : $8\n* Ein útsluting : $6\n* Bedoeld út te sluten: $7\n\nJo kinne kontakt opnimme mei $1 of in oare [[{{MediaWiki:Grouppage-sysop}}|behearder]] om de útsluting te besprekken.\nJo kinne gjin gebrûk meitsje fan 'e funksje 'Skriuw meidogger', of jo moatte in jildich e-postadres opjûn hawwe yn jo [[Special:Preferences|foarkarren]] en it gebrûk fan dy funksje moat net útsletten wêze.\nJo tsjintwurdich e-postadres is $3 en it útsletnûmer is #$5. Neam beide gegevens as jo earne op dizze útsluting reagearje.",
        "blockednoreason": "gjin reden opjûn",
        "whitelistedittext": "Jo moatte $1 om siden te bewurkjen.",
-       "confirmedittext": "Jo moatte jo e-mailadres befêstichje foar't jo siden feroarje kinne. Fier in e-mailedres yn by jo [[Special:Preferences|ynstellings]] en befêstichje it.",
+       "confirmedittext": "Jo moatte jo e-mailadres befêstichje foar't jo siden feroarje kinne.\nFier in e-mailadres yn by jo [[Special:Preferences|foarkarren]] en befêstichje it.",
        "nosuchsectiontitle": "Dizze subkop bestiet net",
        "nosuchsectiontext": "Jo besochten in subkop te bewurkjen dy't net bestiet.",
        "loginreqtitle": "Oanmelding frege",
        "postedit-confirmation-saved": "Dyn bewurking is fêstlein.",
        "edit-already-exists": "De side is net oanmakke.\nHy bestie al.",
        "defaultmessagetext": "Standert berjochttekst",
+       "content-model-wikitext": "wikitekst",
+       "content-model-javascript": "JavaScript",
        "expensive-parserfunction-warning": "<strong>Warskôging:</strong> Dizze side brûkt tefolle kostbere parserfunksjes.\n\nWylst it minder as $2 {{PLURAL:$2|parserfunksje|parserfunksjes}} wêze moatte, no {{PLURAL:$1|is it $1 |binne it $1}}",
        "expensive-parserfunction-category": "Siden dy't tefolle kostbere parserfuksjes brûke",
        "post-expand-template-inclusion-warning": "<strong>Warskôging:</strong> jo geane oer de maksimale opnamegrutte foar sjabloanen.\nGuon sjabloanen wurden net opnommen.",
        "powersearch-togglenone": "Gjin",
        "search-external": "Utwindich sykje",
        "searchdisabled": "<p>Op it stuit stiet it trochsykjen fan tekst út omdat dizze funksje tefolle kompjûterkapasiteit ferget. As we nije apparatuer krije, en dy is ûnderweis, dan wurdt dizze funksje wer aktyf. Oant salang kinne jo sykje fia Google:</p>",
-       "preferences": "Ynstellings",
-       "mypreferences": "Ynstellings",
+       "preferences": "Foarkarren",
+       "mypreferences": "Foarkarren",
        "prefs-edits": "Tal bewurkings:",
        "prefs-skin": "Side-oansjen",
        "skin-preview": "Proefbyld",
        "prefs-watchlist-edits-max": "Maksimum oantal: 1000",
        "prefs-misc": "Ferskaat",
        "prefs-resetpass": "Wachtwurd feroarje",
-       "saveprefs": "Ynstellings fêstlizze",
+       "saveprefs": "Fêstlizze",
        "restoreprefs": "Tebek nei de standertynstellings",
        "prefs-editing": "Siden bewurkje",
        "rows": "Rigen",
        "recentchangesdays": "Dagen om sjen te litten yn Koartlyn feroare:",
        "recentchangesdays-max": "(maksimaal $1 {{PLURAL:$1|dei|dagen}})",
        "recentchangescount": "Tal titels op 'Koartlyn feroare'",
-       "savedprefs": "Jo ynstellings binne fêstlein.",
+       "savedprefs": "Jo foarkarren binne fêstlein.",
        "timezonelegend": "Tiidsône:",
        "localtime": "Pleatslike tiid:",
        "timezoneuseserverdefault": "Wikistandert brûke ($1)",
        "prefs-signature": "Sinjatuer",
        "prefs-dateformat": "Datumopmaak",
        "prefs-timeoffset": "Tiidsferskil",
+       "prefs-preview": "Proefbyld",
        "userrights": "Behear fan meidoggerrjochten",
        "userrights-lookup-user": "Behear fan meidoggerrjochten",
        "userrights-user-editname": "Meidoggernamme:",
        "savefile": "Lis triem fêst",
        "uploaddisabled": "Sorry, op dizze tsjinner kin net oanbean wurde.",
        "uploaddisabledtext": "It oanbieden fan triemmen is útskeakele.",
-       "php-uploaddisabledtext": "PHP-triemuploads binne útskeakele. Kontrolearje a.j.w. de triem_uploads-ynstelling.",
+       "php-uploaddisabledtext": "PHP-triemuploads binne útskeakele.\nKontrolearje de ynstelling \"file_uploads\".",
        "uploadscripted": "Dizze triem befettet HTML- of scriptkoade dy't ferkeard troch jo browser werjûn wurde kin.",
        "uploadvirus": "De triem befettet in firus! Details: $1",
        "sourcefilename": "Triemnamme boarne:",
        "deletereasonotherlist": "Oare reden",
        "deletereason-dropdown": "*Faak-brûkte redenen\n** Frege troch de skriuwer\n** Skeining fan auteursrjocht\n** Fandalisme",
        "rollback": "Feroarings werom sette",
-       "rollback_short": "Werom sette",
        "rollbacklink": "feroaring werom sette",
        "rollbackfailed": "Feroaring werom sette net slagge",
        "cantrollback": "Dizze feroaring kin net werom setten wurde, om't der mar ien skriuwer is.",
        "protect_expiry_invalid": "Tiid fan ferrinnen is net jildich.",
        "protect_expiry_old": "Tiid fan ferrinnen leit yn it ferline.",
        "protect-text": "Hjir kin jo it nivo fan skoatteljen sjen en oanpasse foar de side '''$1'''.",
-       "protect-locked-blocked": "Jo kinne it befeiligingsnivo net feroarje wylst jo blokkearre binne.\nHjir binne de hjoeddeiske ynstellings foar de side '''$1''':",
-       "protect-locked-dblock": "It befeiligingsnivo kin net feroare wurde om't de database sletten is.\nHjir binne de hjoeddeiske ynstellings foar de side '''$1''':",
-       "protect-locked-access": "'''Jo brûker hat gjin rjochten om it befeiligingsnivo te feroarjen.'''\nDit binne de rinnende ynstellings foar de side '''$1''':",
+       "protect-locked-blocked": "Jo kinne it befeiligingsnivo net feroarje wylst jo blokkearre binne.\nHjir binne de hjoeddeiske ynstellingen foar de side '''$1''':",
+       "protect-locked-dblock": "It befeiligingsnivo kin net feroare wurde om't de database sletten is.\nHjir binne de hjoeddeiske ynstellingen foar de side '''$1''':",
+       "protect-locked-access": "'''Jo brûker hat gjin rjochten om it befeiligingsnivo te feroarjen.'''\nDit binne de rinnende ynstellingen foar de side '''$1''':",
        "protect-cascadeon": "Dizze side is op 't stuit befeilige, om't er yn 'e folgjende {{PLURAL:$1|side|siden}} opnommen is, dy't befeilige {{PLURAL:$1|is|binne}} mei de kaskade-opsje. It befeiligingsnivo feroarje hat alhiel gjin effekt.",
        "protect-default": "Tastean foar alle brûkers",
        "protect-fallback": "Hjir is it rjocht \"$1\" foar nedich",
        "ipb_cant_unblock": "Flater: It útsluten fan ID $1 kin net fûn wurde. It is miskien al net mear útsluten.",
        "lockdb": "Meitsje de database 'Net-skriuwe'",
        "unlockdb": "Meitsje de databank skriuwber",
-       "lockdbtext": "Wylst de databank skoattele is, is foar meidoggers it feroarjen fan siden, ynstellings, folchlisten, ensfh. net mooglik.\n\nBefêstigje dat dit is sa't jo it hawwe wolle, en dat jo de databank wer frijjouwe as jo ûnderhâld ree is.",
-       "unlockdbtext": "As de databank frijjûn wurdt, is foar meidoggers it feroarjen fan siden, ynstellings, folchlisten ensfh. wer mooglik. Befêstigje dat dit is wat jo wolle.",
+       "lockdbtext": "Wylst de databank skoattele is, is foar meidoggers it feroarjen fan siden, ynstellingen, folchlisten, ensfh. net mooglik.\n\nBefêstigje dat dit is sa't jo it hawwe wolle, en dat jo de databank wer frijjouwe as jo ûnderhâld ree is.",
+       "unlockdbtext": "As de database frijjûn wurdt, is foar meidoggers it feroarjen fan siden, ynstellingen, folchlisten ensfh. wer mooglik.\nBefêstigje dat dit is wat jo wolle.",
        "lockconfirm": "Ja, ik wol wier de databank 'Net--skriuwe' meitsje.",
        "unlockconfirm": "Ja, ik wol wier de databank skriuwber meitsje.",
        "lockbtn": "Meitsje de database 'Net-skriuwe'",
index b912499..e82b700 100644 (file)
@@ -34,7 +34,7 @@
        "tog-watchmoves": "Engadir as páxinas e os ficheiros que mova á miña lista de vixilancia",
        "tog-watchdeletion": "Engadir as páxinas e os ficheiros que borre á miña lista de vixilancia",
        "tog-watchrollback": "Engadir as páxinas nas que realice unha reversión á miña lista de vixilancia",
-       "tog-minordefault": "Marcar por omisión todas as edicións como pequenas",
+       "tog-minordefault": "Marcar todas as edicións como pequenas por defecto",
        "tog-previewontop": "Mostrar a vista previa antes da caixa de edición",
        "tog-previewonfirst": "Mostrar a vista previa na primeira edición",
        "tog-enotifwatchlistpages": "Enviádeme unha mensaxe de correo electrónico cando unha páxina ou un ficheiro da miña lista de vixilancia sufra un cambio",
        "readonly_lag": "A base de datos bloqueouse automaticamente mentres os servidores levan a cabo a sincronización co servidor principal",
        "internalerror": "Erro interno",
        "internalerror_info": "Erro interno: $1",
-       "filecopyerror": "Non se deu copiado o ficheiro \"$1\" a \"$2\".",
-       "filerenameerror": "Non se pode cambiar o nome do ficheiro \"$1\" a \"$2\".",
+       "filecopyerror": "Non se puido copiar o ficheiro \"$1\" en \"$2\".",
+       "filerenameerror": "Non se puido cambiar o nome do ficheiro \"$1\" a \"$2\".",
        "filedeleteerror": "Non se deu borrado o ficheiro \"$1\".",
        "directorycreateerror": "Non se puido crear o directorio \"$1\".",
-       "directoryreadonlyerror": "«$1» é un cartafol de só lectura.",
-       "directorynotreadableerror": "Non ten permisos de lectura no cartafol «$1».",
+       "directoryreadonlyerror": "\"$1\" é un cartafol de só lectura.",
+       "directorynotreadableerror": "Non ten permisos de lectura no cartafol \"$1\".",
        "filenotfound": "Non se deu atopado o ficheiro \"$1\".",
        "unexpected": "Valor inesperado: \"$1\"=\"$2\".",
        "formerror": "Erro: Non se pode enviar o formulario.",
        "nocookiesfornew": "Non se creou a conta de usuario porque non puidemos confirmar a súa orixe.\nAsegúrese de que ten as cookies habilitadas, volva cargar a páxina e inténteo de novo.",
        "noname": "Non especificou un nome de usuario válido.",
        "loginsuccesstitle": "Accedeu correctamente",
-       "loginsuccess": "'''Accedeu ao sistema {{SITENAME}} como \"$1\".'''",
+       "loginsuccess": "<strong>Accedeu ao sistema de {{SITENAME}} como \"$1\".</strong>",
        "nosuchuser": "Non existe ningún usuario chamado \"$1\".\nOs nomes de usuario diferencian entre maiúsculas e minúsculas.\nVerifique o nome que inseriu ou [[Special:UserLogin/signup|cree unha nova conta]].",
        "nosuchusershort": "Non existe ningún usuario chamado \"$1\".\nVerifique o nome que inseriu.",
        "nouserspecified": "Cómpre especificar un nome de usuario.",
        "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.",
        "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",
-       "login-migrated-generic": "A súa conta foi migrada, e o seu nome de usuario xa non existe nesta wiki.",
+       "login-migrated-generic": "A súa conta foi migrada e o seu nome de usuario xa non existe neste wiki.",
        "loginlanguagelabel": "Lingua: $1",
        "suspicious-userlogout": "Rexeitouse a súa petición de saír do sistema porque semella que a enviou un navegador roto ou a caché dun proxy.",
        "createacct-another-realname-tip": "O nome real é opcional.\nSe escolle dalo utilizarase para atribuír ao usuario o seu traballo.",
        "noarticletext": "Actualmente non hai ningún texto nesta páxina.\nPode [[Special:Search/{{PAGENAME}}|procurar polo título desta páxina]] noutras páxinas,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ollar os rexistros relacionados]\nou [{{fullurl:{{FULLPAGENAME}}|action=edit}} editar a páxina]</span>.",
        "noarticletext-nopermission": "Actualmente non hai ningún texto nesta páxina.\nPode [[Special:Search/{{PAGENAME}}|procurar polo título desta páxina]] noutras páxinas ou <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ollar os rexistros relacionados]</span>, pero non ten os permisos necesarios para crear esta páxina.",
        "missing-revision": "A revisión nº$1 da páxina chamada \"{{FULLPAGENAME}}\" non existe.\n\nA miúdo, isto está provocado por seguir unha ligazón de historial obsoleta cara a unha páxina que foi borrada.\nO [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rexistro de borrados] contén máis detalles.",
-       "userpage-userdoesnotexist": "A conta do usuario \"<nowiki>$1</nowiki>\" non está rexistrada. Comprobe se desexa crear/editar esta páxina.",
+       "userpage-userdoesnotexist": "A conta de usuario \"$1\" non está rexistrada.\nComprobe se desexa crear/editar esta páxina.",
        "userpage-userdoesnotexist-view": "A conta de usuario \"$1\" non está rexistrada.",
        "blocked-notice-logextract": "Este usuario está bloqueado.\nVelaquí está a última entrada do rexistro de bloqueos, por se quere consultala:",
        "clearyourcache": "'''Nota:''' Despois de gardar, cómpre limpar a memoria caché do seu navegador para ver os cambios.\n* '''Firefox/Safari:''' Prema ''Maiúsculas'' á vez que en ''Recargar'', ou prema en ''Ctrl-F5'' ou ''Ctrl-R'' (''⌘-R'' nos Mac)\n* '''Google Chrome:''' Prema en ''Ctrl-Maiús-R'' (''⌘-Maiús-R'' nos Mac)\n* '''Internet Explorer:''' Prema ''Ctrl'' ao tempo que fai clic en ''Refrescar'', ou prema en ''Ctrl-F5''\n* '''Opera:''' Limpe a súa memoria caché en ''Ferramentas → Preferencias''",
        "sectioneditnotsupported-title": "A edición de seccións non está soportada",
        "sectioneditnotsupported-text": "A edición de seccións non está soportada nesta páxina.",
        "permissionserrors": "Erro de permisos",
-       "permissionserrorstext": "Non dispón de permiso para facelo por {{PLURAL:$1|esta razón|estas razóns}}:",
+       "permissionserrorstext": "Non ten os permisos necesarios para facelo {{PLURAL:$1|pola seguinte razón|polas seguintes razóns}}:",
        "permissionserrorstext-withaction": "Non ten os permisos necesarios para $2, {{PLURAL:$1|pola seguinte razón|polas seguintes razóns}}:",
        "recreate-moveddeleted-warn": "'''Atención: Vai volver crear unha páxina que xa foi eliminada anteriormente.'''\n\nDebería considerar se é apropiado continuar a editar esta páxina.\nVelaquí están o rexistro de borrados e mais o de traslados desta páxina, por se quere consultalos:",
        "moveddeleted-notice": "Esta páxina foi borrada.\nA continuación pódese ver o rexistro de borrados e traslados desta páxina, por se quere consultalos.",
        "revdelete-legend": "Aplicar restricións de visibilidade",
        "revdelete-hide-text": "Texto da revisión",
        "revdelete-hide-image": "Agochar o contido do ficheiro",
-       "revdelete-hide-name": "Agochar destino e parámetros",
+       "revdelete-hide-name": "Agochar o destino e os parámetros",
        "revdelete-hide-comment": "Resumo de edición",
        "revdelete-hide-user": "Nome de usuario ou enderezo IP do editor",
        "revdelete-hide-restricted": "Eliminar os datos da vista dos administradores así coma da doutros",
        "mergehistory-fail-toobig": "Non se puido fusionar o historial, xa que supón trasladar máis revisións que o límite de $1 {{PLURAL:$1|revisión|revisións}}.",
        "mergehistory-no-source": "Non existe a páxina de orixe \"$1\".",
        "mergehistory-no-destination": "Non existe a páxina de destino \"$1\".",
-       "mergehistory-invalid-source": "A páxina de orixe ten que ter un título válido.",
-       "mergehistory-invalid-destination": "A páxina de destino ten que ter un título válido.",
+       "mergehistory-invalid-source": "A páxina de orixe debe ter un título válido.",
+       "mergehistory-invalid-destination": "A páxina de destino debe ter un título válido.",
        "mergehistory-autocomment": "\"[[:$1]]\" fusionouse con \"[[:$2]]\"",
        "mergehistory-comment": "\"[[:$1]]\" fusionouse con \"[[:$2]]\": $3",
-       "mergehistory-same-destination": "A páxina de orixe e a páxina de destino non pode ser a mesma",
+       "mergehistory-same-destination": "A páxina de orixe e a páxina de destino non poden ser a mesma",
        "mergehistory-reason": "Motivo:",
        "mergelog": "Rexistro de fusións",
        "revertmerge": "Desfacer a fusión",
        "prefs-personal": "Información de usuario",
        "prefs-rc": "Cambios recentes",
        "prefs-watchlist": "Lista de vixilancia",
+       "prefs-editwatchlist": "Editar a lista de vixilancia",
+       "prefs-editwatchlist-label": "Editar as entradas da súa lista de vixilancia:",
+       "prefs-editwatchlist-edit": "Ver e eliminar títulos da súa lista de vixilancia",
+       "prefs-editwatchlist-raw": "Editar a lista de vixilancia simple",
+       "prefs-editwatchlist-clear": "Limpar a súa lista de vixilancia",
        "prefs-watchlist-days": "Número de días que mostrar na lista de vixilancia:",
        "prefs-watchlist-days-max": "Máximo: $1 {{PLURAL:$1|día|días}}",
        "prefs-watchlist-edits": "Número máximo de edicións que mostrar na lista de vixilancia completa:",
        "uploaderror": "Erro ao cargar",
        "upload-recreate-warning": "'''Atención: Borrouse ou trasladouse un ficheiro con ese nome.'''\n\nVelaquí están o rexistro de borrados e mais o de traslados desta páxina, por se quere consultalos:",
        "uploadtext": "Use o formulario de embaixo para cargar ficheiros.\nPara ver ou procurar imaxes subidas con anterioridade vaia á [[Special:FileList|lista de imaxes]]; os envíos tamén se rexistran no [[Special:Log/upload|rexistro de cargas]] e as eliminacións no [[Special:Log/delete|rexistro de borrados]].\n\nPara incluír un ficheiro nunha páxina, use unha ligazón do seguinte xeito:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' para usar a versión completa do ficheiro\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|texto alternativo]]</nowiki></code>''' para usar unha resolución de 200 píxeles de ancho nunha caixa na marxe esquerda cunha descrición (\"texto alternativo\")\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' para ligar directamente co ficheiro sen que este saia na páxina",
-       "upload-permitted": "Tipos de ficheiro permitidos: $1.",
-       "upload-preferred": "Tipos de ficheiro preferidos: $1.",
-       "upload-prohibited": "Tipos de ficheiro prohibidos: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tipo|Tipos}} de ficheiro {{PLURAL:$2|permitido|permitidos}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Tipo|Tipos}} de ficheiro {{PLURAL:$2|preferido|preferidos}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Tipo|Tipos}} de ficheiro {{PLURAL:$2|prohibido|prohibidos}}: $1.",
        "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",
        "backend-fail-describe": "Non se puideron cambiar os metadatos do ficheiro \"$1\".",
        "backend-fail-alreadyexists": "O ficheiro \"$1\" xa existe.",
        "backend-fail-store": "Non se deu almacenado o ficheiro \"$1\" en \"$2\".",
-       "backend-fail-copy": "Non se deu copiado o ficheiro \"$1\" en \"$2\".",
-       "backend-fail-move": "Non se deu trasladado o ficheiro \"$1\" a \"$2\".",
+       "backend-fail-copy": "Non se puido copiar o ficheiro \"$1\" en \"$2\".",
+       "backend-fail-move": "Non se puido trasladar o ficheiro \"$1\" a \"$2\".",
        "backend-fail-opentemp": "Non se puido abrir o ficheiro temporal.",
        "backend-fail-writetemp": "Non se puido escribir no ficheiro temporal.",
        "backend-fail-closetemp": "Non se puido pechar o ficheiro temporal.",
        "namespace": "Espazo de nomes:",
        "invert": "Inverter a selección",
        "tooltip-invert": "Marque esta caixa para agochar os cambios nas páxinas pertencentes ao espazo de nomes seleccionado (e o espazo de nomes asociado, se escolleu a opción)",
+       "tooltip-whatlinkshere-invert": "Marque esta caixa para agochar as ligazóns ás páxinas pertencentes ao espazo de nomes seleccionado.",
        "namespace_association": "Espazo de nomes asociado",
        "tooltip-namespace_association": "Marque esta caixa para incluír tamén o espazo de nomes de conversa ou de contidos asociado a aquel seleccionado",
        "blanknamespace": "(Principal)",
        "move-watch": "Vixiar esta páxina",
        "movepagebtn": "Mover a páxina",
        "pagemovedsub": "O movemento foi un éxito",
-       "movepage-moved": "'''A páxina \"$1\" foi movida a \"$2\"'''",
+       "movepage-moved": "<strong>A páxina \"$1\" foi movida a \"$2\"</strong>",
        "movepage-moved-redirect": "Creouse unha redirección da primeira cara á segunda.",
        "movepage-moved-noredirect": "Cancelouse a creación da redirección da primeira cara á segunda.",
        "articleexists": "Xa existe unha páxina con ese nome, ou o nome que escolleu non é válido.\nPor favor, escolla outro nome.",
        "import-rootpage-invalid": "A páxina raíz dada é un título non válido.",
        "import-rootpage-nosubpage": "O espazo de nomes \"$1\" da páxina raíz non permite as subpáxinas.",
        "importlogpage": "Rexistro de importacións",
-       "importlogpagetext": "Rexistro de importación de páxinas xunto co seu historial de edicións procedentes doutros wikis.",
+       "importlogpagetext": "Importacións administrativas de páxinas procedentes doutros wikis xunto co seu historial de edicións.",
        "import-logentry-upload": "importou \"[[$1]]\" mediante a carga dun ficheiro",
        "import-logentry-upload-detail": "{{PLURAL:$1|Importouse $1 revisión|Importáronse $1 revisións}}",
        "import-logentry-interwiki": "importou \"$1\"",
        "rcpatroldisabled": "A patrulla dos cambios recentes está desactivada",
        "rcpatroldisabledtext": "A funcionalidade da patrulla dos cambios recentes está actualmente desactivada.",
        "markedaspatrollederror": "Non se pode marcar como revisada",
-       "markedaspatrollederrortext": "É preciso especificar unha revisión para marcala como revisada.",
-       "markedaspatrollederror-noautopatrol": "Non está permitido que un mesmo marque as propias edicións como revisadas.",
+       "markedaspatrollederrortext": "Cómpre especificar unha revisión para marcala como revisada.",
+       "markedaspatrollederror-noautopatrol": "Non está permitido marcar as edicións propias como revisadas.",
        "markedaspatrollednotify": "A modificación feita en \"$1\" marcouse como revisada.",
        "markedaspatrollederrornotify": "Erro ao marcar como revisada.",
        "patrol-log-page": "Rexistro de revisións patrulladas",
        "version-entrypoints-header-url": "URL",
        "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Ruta dos artigos]",
        "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Ruta das escrituras]",
-       "version-libraries": "Librerías instaladas",
-       "version-libraries-library": "Librería",
+       "version-libraries": "Bibliotecas instaladas",
+       "version-libraries-library": "Biblioteca",
        "version-libraries-version": "Versión",
        "redirect": "Redirixir por nome de ficheiro, ID de usuario, ID de páxina ou ID de revisión",
        "redirect-legend": "Redirixir a un ficheiro ou unha páxina",
        "compare-revision-not-exists": "A revisión que especificou non existe.",
        "dberr-problems": "Sentímolo! Este sitio está experimentando dificultades técnicas.",
        "dberr-again": "Por favor, agarde uns minutos e logo probe a cargar de novo a páxina.",
-       "dberr-info": "(Non se pode acceder ó servidor da base de datos: $1)",
-       "dberr-info-hidden": "(Non se pode acceder ó servidor da base de datos)",
+       "dberr-info": "(Non se pode acceder ao servidor da base de datos: $1)",
+       "dberr-info-hidden": "(Non se pode acceder ao servidor da base de datos)",
        "dberr-usegoogle": "Mentres tanto, pode probar a buscar co Google.",
        "dberr-outofdate": "Teña en conta que os índices de Google do noso contido poden non estar actualizados.",
        "dberr-cachederror": "O seguinte contido é unha copia da memoria caché da páxina solicitada, polo que pode non estar actualizada.",
        "expand_templates_ok": "Aceptar",
        "expand_templates_remove_comments": "Eliminar os comentarios",
        "expand_templates_remove_nowiki": "Suprimir as etiquetas <nowiki> no resultado",
-       "expand_templates_generate_xml": "Mostrar as árbores de análise XML",
+       "expand_templates_generate_xml": "Mostrar a árbore de análise XML",
        "expand_templates_generate_rawhtml": "Mostrar o HTML en bruto",
        "expand_templates_preview": "Vista previa",
        "expand_templates_preview_fail_html": "<em>Dado que o código HTML puro está activado en {{SITENAME}} e produciuse unha perda dos datos da sesión, a vista previa está oculta como precaución contra ataques mediante código JavaScript.</em>\n\n<strong>Se este é un intento lexítimo de acceso á vista previa, inténteo de novo.</strong>\nSe segue sen funcionar, probe a [[Special:UserLogout|saír]] e volver a entrar coa súa conta.",
        "default-skin-not-found-no-skins": "Ups! O aspecto predeterminado do wiki, definido en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code>, non está dispoñíbel.\n\nNon ten aspectos instalados.\n\n; Se acaba de instalar MediaWiki:\n: Probablemente instalou MediaWiki a partir de Git, ou directamente a partir do código fonte mediante algún outro método. En tal caso, este problema é normal. Probe a instalar algúns aspectos do [https://www.mediawiki.org/wiki/Category:All_skins cartafol de aspectos de mediawiki.org]. Para instalar aspectos, siga calquera destes pasos:\n:* Descargue o [https://www.mediawiki.org/wiki/Download arquivo do instalador], que inclúe varios aspectos e complementos. Pode copiar e pegar o cartafol <code>skins/</code> que atopará no arquivo.\n:* Descargue arquivos de aspectos individuais de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clone un dos repositorios de <code>mediawiki/skins/*</code> mediante Git no cartafol <code dir=\"ltr\">skins/</code> da súa instalación de MediaWiki.\n: Isto non debería interferir co seu repositorio Git se é vostede un desenvolvedor de MediaWiki. Lea o [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual de configuración de aspectos] para obter información sobre como activar aspectos e escoller o aspecto predeterminado.",
        "default-skin-not-found-row-enabled": "* <code>$1</code>/$2 (activada)",
        "default-skin-not-found-row-disabled": "* <code>$1</code>/$2 ('''desactivada''')",
-       "mediastatistics": "Estatísticas de contido multimedia",
-       "mediastatistics-summary": "Estatísticas sobre tipos de ficheiros enviados. Isto inclúe unicamente a última versión de cada ficheiro. As versións de ficheiros vellas ou eliminadas quedan excluídas.",
+       "mediastatistics": "Estatísticas do contido multimedia",
+       "mediastatistics-summary": "Estatísticas sobre os tipos de ficheiros enviados. Isto inclúe unicamente a última versión de cada ficheiro. As versións vellas ou borradas dos ficheiros quedan excluídas.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)",
        "mediastatistics-table-mimetype": "Tipo MIME",
-       "mediastatistics-table-extensions": "Extensións posíbeis",
+       "mediastatistics-table-extensions": "Extensións posibles",
        "mediastatistics-table-count": "Número de ficheiros",
        "mediastatistics-table-totalbytes": "Tamaño combinado",
        "mediastatistics-header-unknown": "Descoñecido",
        "mediastatistics-header-bitmap": "Imaxes de mapas de bits",
-       "mediastatistics-header-drawing": "Imaxes vectoriais",
+       "mediastatistics-header-drawing": "Debuxos (imaxes vectoriais)",
        "mediastatistics-header-audio": "Son",
-       "mediastatistics-header-video": "Vídeo",
+       "mediastatistics-header-video": "Vídeos",
        "mediastatistics-header-multimedia": "Contido enriquecido",
-       "mediastatistics-header-office": "Oficina",
+       "mediastatistics-header-office": "Documentos",
        "mediastatistics-header-text": "Texto",
-       "mediastatistics-header-executable": "Executábeis",
+       "mediastatistics-header-executable": "Executables",
        "mediastatistics-header-archive": "Formatos comprimidos",
        "json-warn-trailing-comma": "{{PLURAL:$1|Eliminouse $1 coma final|Elimináronse $1 comas finais}} do JSON.",
        "json-error-unknown": "Houbo un problema co JSON. Erro: $1",
index f51c68a..f06d070 100644 (file)
        "redirectedfrom": "(Witergleitet vun $1)",
        "redirectpagesub": "Umgleiteti Syte",
        "redirectto": "Wyterleitig uf:",
-       "lastmodifiedat": "Letschti Änderig vo dere Syte: $2, $1<br />",
+       "lastmodifiedat": "Letschti Änderig vo dere Syte: $2, $1",
        "viewcount": "Die Syte isch {{PLURAL:$1|eimol|$1 Mol}} bsuecht wore.",
        "protectedpage": "Gschützti Syte",
        "jumpto": "Gump zue:",
        "delete-toobig": "Die Syte het e arg langi Versionsgschicht mit meh as $1 {{PLURAL:$1|Version|Versione}}. S Lesche vu sonige Syte isch yygschränkt wore go verhindere, ass dr Server vu {{SITENAME}} us Versäh zytwys iberlaschtet wird.",
        "delete-warning-toobig": "Die Syte het e arg langi Versionsgschicht mit meh as $1 {{PLURAL:$1|Version|Versione}}. S Lesche cha dr Datebankbetriib vu {{SITENAME}} stere.",
        "rollback": "Zrucksetze vu dr Änderige",
-       "rollback_short": "Zrucksetze",
        "rollbacklink": "Zrüggsetze",
        "rollbacklinkcount": "{{PLURAL:$1|Ei Version|$1 Versione}} zrucksetze",
        "rollbacklinkcount-morethan": "Meh wie {{PLURAL:$1|ei Version|$1 Versione}} zrucksetze",
        "import-logentry-interwiki": "„$1“ isch importiert worde (Transwiki)",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|Version|Versione}} vo $2",
        "javascripttest": "JavaScript-Tescht",
-       "javascripttest-title": "$1-Tescht wäre durgfiert",
        "javascripttest-pagetext-noframework": "Die Syte isch reserviert fir JavaSkript-Tescht.",
        "javascripttest-pagetext-unknownframework": "Nit bekannt Framework „$1“.",
        "javascripttest-pagetext-frameworks": "Bitte eis vu däne Framework uuswehle: $1",
        "javascripttest-pagetext-skins": "Wehl e Benutzeroberflechi uus fir d Durfierig vu dr Tescht:",
        "javascripttest-qunit-intro": "Lueg d [$1 Dokumentation zue Tescht] uf mediawiki.org",
-       "javascripttest-qunit-heading": "MediaWiki-JavaSkript-QUnit-Teschter",
        "tooltip-pt-userpage": "Dyyni Benutzersyte",
        "tooltip-pt-anonuserpage": "D Benutzersyte vo der IP-Adress wo du mit schaffsch",
        "tooltip-pt-mytalk": "Dyyni Diskussionssyte",
index 8cbba19..23dd9fc 100644 (file)
        "prefs-personal": "פרטי המשתמש",
        "prefs-rc": "שינויים אחרונים",
        "prefs-watchlist": "רשימת המעקב",
+       "prefs-editwatchlist": "עריכת רשימת המעקב",
+       "prefs-editwatchlist-label": "עריכת ערכים ברשימת המעקב שלך:",
+       "prefs-editwatchlist-edit": "צפייה והסרת כותרות ברשימת המעקב שלך",
+       "prefs-editwatchlist-raw": "עריכת רשימת המעקב הגולמית",
+       "prefs-editwatchlist-clear": "ניקוי רשימת המעקב שלך",
        "prefs-watchlist-days": "מספר הימים המרבי שיוצגו ברשימת המעקב:",
        "prefs-watchlist-days-max": "לכל היותר {{PLURAL:$1|יום אחד|יומיים|$1 ימים}}",
        "prefs-watchlist-edits": "מספר העריכות המרבי שיוצגו ברשימת המעקב המורחבת:",
        "allarticles": "כל הדפים",
        "allinnamespace": "כל הדפים (מרחב שם $1)",
        "allpagessubmit": "הצגה",
-       "allpagesprefix": "הדפים ששמם מתחיל ב:",
+       "allpagesprefix": "הדפים ששמם מתחיל ב־:",
        "allpagesbadtitle": "כותרת הדף שניתנה הייתה בלתי־תקינה או שהייתה בה קידומת של קישור לשפה אחרת או לוויקי אחר.\nייתכן שהיא מכילה תו אחד או יותר האסורים לשימוש בכותרות.",
        "allpages-bad-ns": "מרחב השם \"$1\" לא קיים ב{{grammar:תחילית|{{SITENAME}}}}.",
        "allpages-hide-redirects": "הסתרת הפניות",
index 6b6bdd1..b2a2f8a 100644 (file)
@@ -28,6 +28,7 @@
        "tog-watchdefault": "Ham se badla gais panna aur file ke hamaar dhyaan suchi me jorro",
        "tog-watchmoves": "Uu panna aur file jiske naam ham badla hai ke hamaar dhyaan suchi me jorro",
        "tog-watchdeletion": "Uu panna, aur file jiske ham mitaya hai ke hamaar dhyaan suchi me jorro",
+       "tog-watchrollback": "Uu panna ke jorro jisme ham aapan watchlist me rollback karaa hae",
        "tog-minordefault": "Mamuli badlao ke apne se nishaan lagao",
        "tog-previewontop": "Badlao waala dabba se pahile ek jhalak dekhao",
        "tog-previewonfirst": "Hamaar pahila badlao pe jhalak dekhao",
        "permalink": "Pakka jorr",
        "print": "Print karo",
        "view": "Dekho",
+       "view-foreign": "$1 pe dekho",
        "edit": "Badlo",
+       "edit-local": "Local description ke badlo",
        "create": "Banao",
+       "create-local": "Local description ke jorro",
        "editthispage": "Ii panna ke badlo",
        "create-this-page": "Ii panna ke banao",
        "delete": "Mitao",
        "otherlanguages": "Duusra bhasa me",
        "redirectedfrom": "($1 se bheja gais)",
        "redirectpagesub": "Panna ke redirect karo",
+       "redirectto": "Hian redirect karo:",
        "lastmodifiedat": "Ii panna ke $1, ke $2 pichhla time badla gais rahaa.",
        "viewcount": "Ii panna ke {{PLURAL:$1|ek dafe|$1 dafe}} dekha gais hai.",
        "protectedpage": "Bachawal panna",
        "jumptonavigation": "navigation",
        "jumptosearch": "khojo",
        "view-pool-error": "Maaf karna, abhi sab server busy hae.\nBahut dher sadasya ii panna ke dekhe maange hae.\nMeharbani kar ke, thora deri sabur kar ke ii panna ke fir se kholo.\n\n$1",
+       "generic-pool-error": "Maaf karna, abhi sab server busy hae.\nBahut dher sadasya ii panna ke dekhe maange hae.\nMeharbani kar ke, thora deri sabur kar ke ii panna ke fir se kholo.",
        "pool-timeout": "Lock ke wait kare waala time khalaas hoe gais hae",
        "pool-queuefull": "Pool ke line bhar gais hae",
        "pool-errorunknown": "Pata nahi kaisan galti hae",
+       "pool-servererror": "Pool counter sewa abhi ready nai hae ($1).",
+       "poolcounter-usage-error": "Kaam me lae pe karrbarr: $1",
        "aboutsite": "{{SITENAME}} ke baare me",
        "aboutpage": "Project:Ke baare me",
        "copyright": "Agar duusra kaaran nai dewa gais hae, tab aap ii panna me likha gae chij ke aap $1 ke niche kaam me lae sakta hai.",
        "youhavenewmessages": "Aapke pass hai $1 ($2).",
        "youhavenewmessagesfromusers": "Aap ke lage {{PLURAL:$3|duusra sadasya|$3 sadasya}} ke lage se $1 hae ($2).",
        "youhavenewmessagesmanyusers": "Aap ke lage dher sadasya se $1 hae ($2).",
-       "newmessageslinkplural": "{{PLURAL:$1|ek nawaa sandes|nawaa sandes}}",
-       "newmessagesdifflinkplural": "pichhla {{PLURAL:$1|badlao}}",
+       "newmessageslinkplural": "{{PLURAL:$1|ek nawaa sandes|999=nawaa sandes}}",
+       "newmessagesdifflinkplural": "pichhla{{PLURAL:$1|badlao|999=badlao}}",
        "youhavenewmessagesmulti": "Aap ke khatir $1 pe sandes hai",
        "editsection": "badlo",
        "editold": "badlao",
        "hidetoc": "chupao",
        "collapsible-collapse": "Chhota karo",
        "collapsible-expand": "Barraa karo",
+       "confirmable-confirm": "Kon{{GENDER:$1|aap}} sure hae?",
+       "confirmable-yes": "Haan",
+       "confirmable-no": "Nai",
        "thisisdeleted": "Dekho ki $1 ke pahile jaise karo?",
        "viewdeleted": "$1 ke dekho?",
        "restorelink": "{{PLURAL:$1|ek mitawal badlao|$1 mitawal badlao}}",
        "filerenameerror": "File \"$1\" ke naam badal ke \"$2\" nai kare sakaa.",
        "filedeleteerror": "File \"$1\" ke nai mitae sakaa.",
        "directorycreateerror": "Directory \"$1\" ke nai banae sakaa.",
+       "directoryreadonlyerror": "Directory \"$1\" khaali parrhe ke khatir hae.",
+       "directorynotreadableerror": "Directory \"$1\" ke parrha nai jaae sake hae.",
        "filenotfound": "File \"$1\" ke nai pae sakaa.",
        "unexpected": "Aasa karaa gais jaankari nai hai: \"$1\"=\"$2\".",
        "formerror": "Galti: form ke submit nai kare sakaa",
        "viewsourcetext": "Aap ii panna ke source ke dekhe aur nakal utare kare sakta hai:",
        "viewyourtext": "Aap '''aapan badlao''' ke source ke dekhe aur copy kare saktaa hae",
        "protectedinterface": "Ii panna, ii wiki ke khatir, software ke interface text dewe hai, aur iske barbaadi se roke ke khatir band kar dewa gais hai.\nSab wiki me anuwaad ke jorre nai to badle ke khatir, meharbaani kar ke [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project ke kaam me laao.",
-       "editinginterface": "'''Chetawani:''' Aap ek panna ke badaltaa hai jon ki software ke interface text dewe hae.\nIi panna me badlao ke asar duusra sadasya ke interface pe bhi hoi.\nTranslation khatir [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project, ke kaam me lao.",
+       "editinginterface": "'''Chetawani:''' Aap ek panna ke badaltaa hai jon ki software ke interface text dewe hae.\nIi panna me badlao ke asar duusra sadasya ke interface pe bhi hoi.",
+       "translateinterface": "Sab wiki me translate kare ke khatir [//translatewiki.net/translatewiki.net], the MediaWiki localisation project, ke kaam me lao.",
        "cascadeprotected": "Ii panna ke badlao se bachawa gais hai, kahe ki iske {{PLURAL:$1|panna, jon ki|panna, jon ki}} surakchhit hae \"cascading\" option turned on ke saathe me rakkhaa gais hai:\n$2",
        "namespaceprotected": "Aap ke paas '''$1''' namespace me panna ke badle ke adhikar nai hai.",
        "customcssprotected": "Aap ke ii CSS panna ke badle ke ijaajat nai hae, kaahe ki isme duusra sadasya ke personal settings hae.",
        "invalidtitle-unknownnamespace": "Title gaer kaanuni hae aur iske namespace number \"$1\" aur text \"$2\" ke nai jaana jaawe hae",
        "exception-nologin": "Logged in nai hae",
        "exception-nologin-text": "Ii panna nai to aap ke action ke khatir ii wiki me login hoe ke jarurui hae",
+       "exception-nologin-text-manual": "Ii panna ke khole, nai to ii action ke kare ke khatir $1 karo.",
        "virus-badscanner": "Kharaab ruup dewa gais hae: virus khoje waala software nawaa hae: ''$1''",
        "virus-scanfailed": "scan fail hoe gais (code $1)",
        "virus-unknownscanner": "jaana waala antivirus nai hai:",
        "gotaccount": "Aap ke pas pahile se account hai ki nai? '''$1'''.",
        "gotaccountlink": "Log in",
        "userlogin-resetlink": "Ka aap aapan login kare waala jaankari ke bhulae gaya hae?",
-       "userlogin-resetpassword-link": "Aapan password ke reset karo",
+       "userlogin-resetpassword-link": "Aapan password ke bhool gayaa?",
+       "userlogin-helplink2": "Log in kare ke khatir madat.",
+       "userlogin-loggedin": "Aap {{GENDER:$1|$1}} ke naam ke niche login bhayaa hae.\nNiche ke form ke kaam me laae ke duusra naam ke niche login ho.",
+       "userlogin-createanother": "Duusra account banao",
        "createacct-emailrequired": "Email address",
        "createacct-emailoptional": "Email address (jaruri nai hae)",
        "createacct-email-ph": "Aapan mail address ke likho",
        "passwordtooshort": "Password me kamti se kamti {{PLURAL:$1|1 character|$1 characters}} hoe ke chahi.",
        "password-name-match": "Aap ke password ke aap ke username se different rahe ke chaahi.",
        "password-login-forbidden": "Ii sadasya ke naam aur password ke kaam me laae ke ijaajat nai hae.",
-       "mailmypassword": "Nawaa password ke E-mail karo",
+       "mailmypassword": "Password ke badlo",
        "passwordremindertitle": "{{SITENAME}} ke khatir nawaa temporary password",
        "passwordremindertext": "Koi (hoe sake hai aap, IP address $1 se)\n{{SITENAME}} ($4) ke khatir nawaa password mangis hai.\n\"$2\" ke banae ke \"$3\" se set kar dewa gais hai. Agar aap ii chij mangta rahaa,\ntab aap ke abhi login kar ke password badle ke chaahi.\nAap ke temporary password {{PLURAL:$5|ek din|$5 din}} me expire hoi.\n\nAgar jo aur koi ii request karis hai, nai to aap aapan password yaad kar liya hai aur nai badle mangta hai, tab ii sandes ke ignore kar do aur aapan purana password use karte raho.",
        "noemail": "Sadasya \"$1\" ke koi e-mail address recorded nai hai.",
        "noemailcreate": "Aap ke thiik e-mail address de ke parrii",
        "passwordsent": "Ek nawaa password ke \"$1\" ke registered e-mail pe bheja gais hai. Meharbaani kar ke aap password mile ke baad login karna.",
        "blocked-mailpassword": "Aap ke IP address ke block kar dewa gais hai, aur iske kaaran aap ke password recovery function kaam me lae ke ijajat nai hai,",
-       "eauthentsent": "Ek confirmation e-mail aap ke dewa gae e-mail address be bhej dewa gais hai. Aur mail ii account pe bheje se pahile e-mail me likha instructions ke follow karo, ii confirm kare ke khatir ki account aap ke hai.",
+       "eauthentsent": "Ek confirmation e-mail aap ke dewa gae e-mail address pe bhej dewa gais hai. Aur mail ii account pe bheje se pahile e-mail me likha instructions ke follow karo, ii confirm kare ke khatir ki account aap ke hai.",
        "throttled-mailpassword": "Ek password reset Email ke pahile bheja gais hae, pichhle  {{PLURAL:$1|ghanta|$1 ghanta}} me bhej me.\nAbuse ke roke ke khatir, khali ek password reminer har {{PLURAL:$1|ghanta|$1 ghanta}} me bheja jaai.",
        "mailerror": "Mail bheje me galti hoe gais hai: $1",
        "acct_creation_throttle_hit": "Ii wiki me visitors log aap ke IP address ke use kar ke {{PLURAL:$1|1 account|$1 accounts}}, pichhle kuch din me, banae liin hai, jis se jaada ii time nai banawa jaae sake hai.\nIi kaaran se visitors log jon ki ii IP address use kare hai, ke aur account banae ke ijajat nai hai.",
-       "emailauthenticated": "Aap ke e-mail address ke $2 ke roj aur $3 baje authenticate karaa gais rahaa.",
-       "emailnotauthenticated": "Aap ke e-mail address ke abi tak authenticate nai gais hai.\nIi sab feature khatir koi e-mail nai bheja jaai.",
+       "emailauthenticated": "Aap ke e-mail address ke $2 ke roj aur $3 baje confirm karaa gais rahaa.",
+       "emailnotauthenticated": "Aap ke e-mail address ke abi tak authenticate nai karaagais hai.\nIi sab feature khatir koi e-mail nai bheja jaai.",
        "noemailprefs": "Ii sab feature ke kaam kare khatir e-mail specify karo.",
        "emailconfirmlink": "aapan e-mail address ke confirm karo",
        "invalidemailaddress": "E-mail address ke nai lewa jae sake hai kahe ki iske format kharaab hai.\nMeharbaani kar ke achchha address ke enter karo nai to uu field ke khali kar do.",
        "createaccount-text": "Koi aap ke e-mail katir {{SITENAME}} ($4) named \"$2\" me account banais hai jiske password hai \"$3\".\nAap ke chaahi ki aap login kar ke password ke badal do.\nAgar ii account galti se banaa hai tab ii sandes ke ignore kar do.",
        "login-throttled": "Aap bahut jaada dafe ii account ke password ke enter kare ke kosis karaa hae.\n$1 talak wait kar ke fir se try karo.",
        "login-abort-generic": "Aap ke login nai chalaa - Aborted",
+       "login-migrated-generic": "Aap ke account ke update kare ke kaaran, aap ke username ab nai hae.",
        "loginlanguagelabel": "Bhasa: $1",
        "suspicious-userlogout": "Aap ke log out kare ke maang ke na kar dewa gais hae kaahe ki ii janaawe hae ki ii maang ke ek tuuta browser nai to caching proxy bhejis hae.",
        "createacct-another-realname-tip": "Aslii naam ke jaruri nai hae.\nAgar aap iske diya hae tab iske aapke kaam ke attribute kare ke khatir kaam me lawa jaai.",
+       "pt-login": "Log in karo",
+       "pt-login-button": "Log in karo",
+       "pt-createaccount": "Nawaa account banao",
+       "pt-userlogout": "Log out ho",
        "php-mail-error-unknown": "PHP ke mail() function me koi anjaan kharaabi hae",
        "user-mail-no-addy": "Bina e-mail address rahe pe bhi e-mail bheje ke kosis karaa gais hae.",
        "user-mail-no-body": "Ek khaali, nai to kaafi chhota email bheje ke kosis kara rahaa.",
        "changepassword": "Pasword ke badlo",
-       "resetpass_announce": "Aap ek temporary e-mailed code se login bhaya hai\nLogin khatam kare khatir, aap ke nawaa password set kare ke parri hian:",
+       "resetpass_announce": "Login khatam kare khatir, aap ke nawaa password set kare ke parri.",
        "resetpass_text": "<!-- Hian pe likho -->",
        "resetpass_header": "Account assword ke badlo",
        "oldpassword": "Purana password:",
        "retypenew": "Password fir se type karo:",
        "resetpass_submit": "Password ke set kar ke login karo",
        "changepassword-success": "Aap ke password ke safalta se badal dewa gais hai!",
+       "changepassword-throttled": "Aap bahut jaada dafe ii account ke password ke enter kare ke kosis karaa hae.\n$1 talak wait kar ke fir se try karo.",
        "resetpass_forbidden": "Password nai badlaa jaae sake hai",
        "resetpass-no-info": "Ii panna ke sidha access kare ke khatir aap ke logged in rahe ke parri.",
        "resetpass-submit-loggedin": "Password ke badlo",
        "resetpass-submit-cancel": "Nai karo",
        "resetpass-wrong-oldpass": "Temporary nai to abhi ke password valid nai hai.\nSait aap password ke safalta se badal sia hoga nai to nawaa temporary password ke maang karaa hoga.",
+       "resetpass-recycled": "Meharbaani kar ke aap aapan password ke badal ke duusra password banao.",
+       "resetpass-temp-emailed": "Aap ke temporary code, jiske emai karaa gais rahaa, se login bhayaa hae.\nLogin khatam kare ke khatir aap ke nawaa password banae ke chaahi.",
        "resetpass-temp-password": "Kachcha password:",
        "resetpass-abort-generic": "Ek extension password ke badlao ke rokis hae.",
+       "resetpass-expired": "Aap ke password expire hoe gais hae. Log in kare ke khatir ek nawaa password banao.",
+       "resetpass-expired-soft": "Aap ke password expire hoe gais hae aur iske reset kare ke parri. Meharbani kar ke nawaa pasword choose karo, nai to password ke baad me reset kare ke khatir \"{{int:resetpass-submit-cancel}}\" ke click karo.",
+       "resetpass-validity-soft": "Aap ke password thiik nai hae: $1\n\n\nMeharbani kar ke nawaa pasword choose karo, nai to password ke baad me reset kare ke khatir \"{{int:resetpass-submit-cancel}}\" ke click karo.",
        "passwordreset": "Password ke badlo",
        "passwordreset-text-one": "Aapan password ke reset kare ke khatir ii form ke bharo.",
-       "passwordreset-text-many": "{{PLURAL:$1|Aapan password ke reset kare ke khatir ek field me likho}}",
+       "passwordreset-text-many": "{{PLURAL:$1|Temporary password ke email se le ke khatir ek field me likho}}",
        "passwordreset-legend": "Password ke badlo",
        "passwordreset-disabled": "II wiki me password ke badle ke ijaajat nai hae.",
        "passwordreset-emaildisabled": "Ii wiki me email ke band kar dewa gais hae.",
        "changeemail-none": "(kuchh nai)",
        "changeemail-password": "Aap ke {{SITENAME}} password:",
        "changeemail-submit": "E-mail badlo",
+       "changeemail-throttled": "Aap bahut dher dafe login kare ke kosis karaa hae.\nMeharbaani kar ke $1 talak wait kar ke fir se try karo.",
        "resettokens": "Token ke reset karo",
        "resettokens-text": "Aap aapan private data pe access roke ke khatir token ke reset kare saktaa hae.\n\nAap ke ii kare ke chaahi agar aap galti se ii jaankari ke aur koi ke de diya hae nai to aap ke account ke bare me aur koi ke pataa hae.",
        "resettokens-no-tokens": "Reset kare ke jhatir koi token nai hae.",
        "preview": "Jhalak dekhao",
        "showpreview": "Preview dekhao",
        "showdiff": "Badlao dekhao",
-       "anoneditwarning": "'''Sawadhaan:''' Aap login nai karaa hai\nAap ke IP address ii panna ke edit itihaas me record karaa jaai.",
+       "blankarticle": "<strong>Chetauni:</strong> Jon panna ke aap banata hae, me kuchh likha nai hae. \nAgar aap \"{{int:savearticle}}\" ke fir se click karaa, tab khaali panna ban jaai.",
+       "anoneditwarning": "'''Sawadhaan:''' Aap login nai karaa hai\nAap ke IP address ke sab koi dekhe saki agar aap koi badlao karra. Agar aap <strong>>[$1 log in]</strong> or <strong>[$2 create an account]</strong>, tab aap ke badlao aap ke naam ke niche dekhai, aur duusra benefits ke saathe.",
        "anonpreviewwarning": "\"Aap log in nai bhaya hae. Ii panna ke bachae pe aap ke IP address ke panna ke badlao ke itihass me likha jaai.\"",
        "missingsummary": "'''Suchna:''' Aap badlao ke sanchhit me nai likha hai.\nAgar aap Save ke fir se click karaa tab, aap ke badlao bina summary ke save kar lewa jaai.",
+       "selfredirect": "<strong>Chetauni:</strong> Aap ii panna ke apne me redirect kartaa hae. \nAap saait wrong target ke specify karaa, nai to wrong panna ke badaltaa hae.\nAgar aap  \"{{int:savearticle}}\" ke fir se click karaa tab redirect ban jaai.",
        "missingcommenttext": "Meharbani kar ke niche aapan vichar deo.",
        "missingcommentheader": "'''Chetauni:''' Aap ii vichar ke vishay nai likha hai.\nAgar aap \"{{int:savearticle}}\"  pe click karaa tab bina vishay ke iske bachae lewa jaai.",
        "summary-preview": "Sanchhep jhalak:",
        "edit-gone-missing": "Panna ke badle nai sakaa.\nJanae hai ki iske koi mitae dii hai.",
        "edit-conflict": "Badlao me conflict hai.",
        "edit-no-change": "Aap ke badle ke kosis ke ignore kar dewa gais hai, kahe ki text ke badla nai gais hai.",
+       "postedit-confirmation-created": "Panna ke banae dewa gais hae.",
+       "postedit-confirmation-restored": "Panna ke restore kar dewa gais hae.",
        "postedit-confirmation-saved": "Aap ke badlao ke bachae lewa gais hae.",
        "edit-already-exists": "Nawaa panna nai banae sakaa hai.\nIi naam ke panna abhi hai.",
        "defaultmessagetext": "Default message text",
        "content-failed-to-parse": "$1 model ke khatir $2 ke parse nai kare sakaa hae: $3",
        "invalid-content-data": "Panna me likha gais chij right nai hae",
        "content-not-allowed-here": "Panna [[$2]] me \"$1\" likhe ke ijaajat nai hae",
-       "editwarning-warning": "Ii panna ke chore se jetna changes aap  karaa hae nai save hoi.\nAgar aap logged in hae, tab aap ii chetauni ke \"Editing\" vibhag me disable kare saktaa hae.",
+       "editwarning-warning": "Ii panna ke chhore se jetna changes aap  karaa hae nai save hoi.\nAgar aap logged in hae, tab aap ii chetauni ke \"{{int:prefs-editing}}\"  vibhag me disable kare saktaa hae.",
+       "editpage-notsupportedcontentformat-title": "Content ke format ke support nai karaa jaawe hae.",
+       "editpage-notsupportedcontentformat-text": "Content format $1 ke content model $2 nai support kare hae.",
        "content-model-wikitext": "wikitext",
        "content-model-text": "plain text",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Khaali object",
+       "content-json-empty-array": "Khaali array",
+       "duplicate-args-category": "Panna jiske tamplate call me duplicate argument hae",
+       "duplicate-args-category-desc": "Panna me template calls hae jisme duplicate arguments hae, jaise ki <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Chetauni''': Ii panna me bahut jaada expensive parser function calls hai.\n\nIske $2 {{PLURAL:$2|call|calls}} se kamti hoe ke chaahi, {{PLURAL:$1|abhi hai $1 call|abhi hai $1 calls}}.",
        "expensive-parserfunction-category": "Panna jisme bahut jaada expensive parser function calls hai",
        "post-expand-template-inclusion-warning": "'''Chetauni:''' Template include size bahut barraa hai.\nKutch templates ke include nai karaa jaai.",
        "parser-template-recursion-depth-warning": "Template recursion depth limit se jaada hoe gais hae ($1)",
        "language-converter-depth-warning": "Bhasa anuwaad ke gahiraai ijajat se jaada hoe gais hae ($1)",
        "node-count-exceeded-category": "Panna jahaan pe node-count bahut jaada hoe gais hae",
-       "node-count-exceeded-warning": "Panna, node-count se jaada hae",
+       "node-count-exceeded-category-desc": "Panna maximum node count ke exceed kare hae.",
+       "node-count-exceeded-warning": "Panna, node count se jaada hae",
        "expansion-depth-exceeded-category": "Panna jahaan pe expansion depth ke exceed karaa gais hae",
+       "expansion-depth-exceeded-category-desc": "Panna, maximum expansion depth, se jaada hae.",
        "expansion-depth-exceeded-warning": "Panna expansion depth ke exceed karis hae",
        "parser-unstrip-loop-warning": "Unstrip loop ke pawa gai shae",
        "parser-unstrip-recursion-limit": "Unstrip recursion limit ke exceed karaa gais hae ($1)",
        "undo-success": "Ii badlao ke pahile jaise karaa jaae sake hai.\nNiche ke comparison ke check kar ke dekho ki aap yahi kare mangta rahaa, aur fir niche ke badlao ke save kar ke aapan badlao ke pahile jaise karo.",
        "undo-failure": "Ii badalo ke paile jaise nai karaa jaae sake hai kahe ki biich me badlao hai.",
        "undo-norev": "Ii badlao ke pahile jaise nai karaa jaae sake hai kahe ki ii badalo abhi nai hai nai to iske mitae dewa gais hai.",
+       "undo-nochange": "Janae hae ki badlao ke pahile delete kar dewa gais hae.",
        "undo-summary": "$1 badlao [[Special:Contributions/$2|$2]] se, ke pahile jaise karo ([[User talk:$2|Talk]])",
        "undo-summary-username-hidden": "Hidden sadasya ke badalo $1 ke pahile jaise karo",
        "cantcreateaccounttitle": "Account nai banae sakta hai",
        "cantcreateaccount-text": "Ii IP address ('''$1''') se nawaa account banae ke [[User:$3|$3]] block kar diis hai.\n\nIske kaaran, jon ki $3 diis hai, ''$2'' hai",
+       "cantcreateaccount-range-text": "Nawaa account banae ke IP addresses range '''$1''', jisme aap ke IP address ('''$4''') hae, ke[[User:$3|$3]] block kar diis hae.\n\n$3 ke kaaran hae ''$2''",
        "viewpagelogs": "Ii panna ke suchi dekho",
        "nohistory": "Ii panna ke khatir koi badlao ke itihaas nai hai.",
        "currentrev": "Abhi ke sansodhan",
        "currentrev-asof": "Abhi ke badlao ii tarik tak $1",
        "revisionasof": "$1 ke badlao",
-       "revision-info": "$2 ke badlao $1 tak",
+       "revision-info": "Badlao $1 tak {{GENDER:$6|$2}}$7 se",
        "previousrevision": "← Purana badlao",
        "nextrevision": "Nawaa badlao→",
        "currentrevisionlink": "Abhi ke badlao",
        "rev-deleted-event": "(log action ke hatae dewa gais hai)",
        "rev-deleted-user-contribs": "[Sadasya ke naam nai to IP address ke hatae dewa gais hae- yogdaan se badlao ke lukae dewa gais hae]",
        "rev-deleted-text-permission": "Panna ke ii badlao ke '''mitae''' dewa gais hae.\nIske baare me aur jaankari [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log] me saait hoi.",
+       "rev-suppressed-text-permission": "Ii panna ke badlao ke <strong>dabae</strong> dewa gais hai.\nAap iske baare me aur jaankari [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log] me paawe saktaa hae.",
        "rev-deleted-text-unhide": "i panna ke badlao ke '''mitae''' dewa gais hai.\nIske baare me aur jaankari saait [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log] me hoi.\nAap fir bhi [$1 ii badlao ke dekhe sakta hae] agar aap aage barrhe mangtaa hae tab.",
        "rev-suppressed-text-unhide": "Ii panna ke badlao ke '''dabae''' dewa gais hai.\nIske baare me aur jaankari saait [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log] me hoi.\nAap fir bhi [$1 ii badlao ke dekhe sakta hae] agar aap aage barrhe mangtaa hae tab.",
        "rev-deleted-text-view": "Panna ke ii badlao ke '''mitae''' dewa gais hae.\nAap iske dekhe sakta hai; iske baare me aur jaankari [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log] me saait hoi.",
        "revdelete-no-file": "Chuna gais file abhi nai banawa gais hai.",
        "revdelete-show-file-confirm": "Ka aap sure hai ki aap file ke mitawa gais revision ke dekhe mangtaa hai \"<nowiki>$1</nowiki>\" $2 se $3 talak?",
        "revdelete-show-file-submit": "Haan",
+       "revdelete-selected-text": "{{PLURAL:$1|Selected revision|Selected revisions}} of [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|Selected file version|Selected file versions}} of [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Chuna gais log event|Chuna gais log events}}:",
+       "revdelete-text-text": "Delete karaa gais revision panna ke itihaas me dekhai, lekin panna ke kuchh hissa janata ke nai dekhai.",
+       "revdelete-text-file": "Delete karaa gais file version file ke itihaas me dekhai, lekin file ke kuchh hissa janata ke nai dekhai.",
+       "logdelete-text": "Delete karaa gais log events log  me dekhaste rahii, lekin log ke kuchh hissa janata ke nai dekhai.",
+       "revdelete-text-others": "Duusra administrator hidden content ke access kare sake aur undelete kare sake, unless aur restrictions laabu karaa jaae.",
        "revdelete-confirm": "Meharbani kar ke aap ii confirm karo ki aap ii kare mangta hae, aap iske asar ke samajhta hae, aur iske aap [[{{MediaWiki:Policy-url}}|the policy]] ke anusar karta hae.",
-       "revdelete-suppress-text": "Suppression ke '''khaali''' ii chij ke khatir kaam me lawa jaae sake hai:\n* Aapan baare me jaankari thik nai hai\n*: ''ghar ke address aur telephone number, social security number, etc.''",
+       "revdelete-suppress-text": "Suppression ke <strong>khaali</strong> ii chij ke khatir kaam me lawa jaae sake hai:\n* potentially libelious jaankari\n* Aapan baare me jaankari thik nai hai\n*: <em>ghar ke address aur telephone number, social security number, etc.</em>",
        "revdelete-legend": "Dekhe waala rukawat set karo",
-       "revdelete-hide-text": "Badlawa gais text ke lukao",
+       "revdelete-hide-text": "Badlawa gais text",
        "revdelete-hide-image": "File content ke lukao",
-       "revdelete-hide-name": "Kaam aur manjil ke lukao",
-       "revdelete-hide-comment": "Badlao ke baare me comment ke lukao",
-       "revdelete-hide-user": "Editor's username/IP ke lukao",
+       "revdelete-hide-name": "Target aur parameters ke lukao",
+       "revdelete-hide-comment": "Summary ke badlo",
+       "revdelete-hide-user": "Editor ke username/IP address",
        "revdelete-hide-restricted": "Ii rukawat ke administrator aur duusra log se lukao.",
        "revdelete-radio-same": "(badlo nai)",
-       "revdelete-radio-set": "Haan",
-       "revdelete-radio-unset": "Nai",
+       "revdelete-radio-set": "Lukaawal",
+       "revdelete-radio-unset": "Dekhae hae",
        "revdelete-suppress": "Sysops ke saathe saathe aur sab se data ke suppress karo",
        "revdelete-unsuppress": "Pahile jaise karaa gais badlao me se rukawat hatao",
        "revdelete-log": "Kaaran:",
        "mergehistory-empty": "Koi badlao ke jorraa nai jaae sake hai.",
        "mergehistory-success": "[[:$1]]ke $3 {{PLURAL:$3|badlao|badlao}} ke safalta se [[:$2]] me jorr dewa gais hai.",
        "mergehistory-fail": "Itihaas ke nai jorre paaya hae, meharbaani kar ke panna aur time parameters ke check karo.",
+       "mergehistory-fail-toobig": "History merge nai hoe sake, kaaheki limit of $1 {{PLURAL:$1|revision|revisions}} se jaada move hoe jaai.",
        "mergehistory-no-source": "Source panna $1 nai hai.",
        "mergehistory-no-destination": "Destination panna $1 nai hai.",
        "mergehistory-invalid-source": "Suruu waala panna ke must sahi naam hoe ke chaahi.",
        "showhideselectedversions": "Chuna gae versions ke dekhao/lukao",
        "editundo": "Pahile jaise kar do",
        "diff-empty": "(ek rakam)",
+       "diff-multi-sameuser": "({{PLURAL:$1|Ek biich waala badlao|$1 biich waala badlao}} same sadasya se nai dekhawa gais hae.",
+       "diff-multi-otherusers": "({{PLURAL:$1|Ek biich waala badlao|$1 biich waala badlao}} jiske {{PLURAL:$2|sadasya|$2 sadasya}} ke  nai dekhawa jae hai)",
        "diff-multi-manyusers": "({{PLURAL:$1|Ek biich waala badlao|$1 biich waala badlao}} jiske {{PLURAL:$2|sadasya|$2 sadasya}} se jaada log karin hae, ke  nai dekhawa jae hai.)",
        "difference-missing-revision": "Ii badlao ($1) {{PLURAL:$2|was|were}} pe {{PLURAL:$2|One revision|$2 revisions}} nai pawa gais hae\nIske kaaran ii hoe sake hae ki ek mitawa gais panna se link karaa jaawe hae.\nIske baare me aur jaankari [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log] me paawa jaae sake hae.",
        "searchresults": "Khoj ke natija",
        "shown-title": "Ek panna me $1 {{PLURAL:$1|result|results}} dekhao",
        "viewprevnext": "Dekho ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Ii wiki me \"[[$1]]\" naam ke panna hai'''",
-       "searchmenu-new": "'''Ii wiki me \"[[:$1]]\" panna ke banao!'''",
+       "searchmenu-new": "<strong>Ii wiki me \"[[:$1]]\" panna ke banao!</strong>{{PLURAL:$2|0=|See also the page found with your search.|See also the search results found.}}",
        "searchprofile-articles": "Content panna",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Sab chij",
        "search-result-category-size": " {{PLURAL:$1|1 sadasya|$1 sadasya}} ({{PLURAL:$2|1 chhota vibhag|$2 chhota vibhag}}, {{PLURAL:$3|1 file|$3 files}})",
        "search-redirect": "(redirect $1)",
        "search-section": "(section $1)",
+       "search-category": "(category $1)",
+       "search-file-match": "(file content ke match kare hae)",
        "search-suggest": "Ka aap ke matlab rahaa: $1",
        "search-interwiki-caption": "Saathe ke project",
        "search-interwiki-default": "$1 ke result:",
        "searchrelated": "sambhand rakkhe hai",
        "searchall": "sab",
        "showingresults": "Niche dekhae hai {{PLURAL:$1|'''1''' result|'''$1''' results}} #'''$2''' se suruu hoe ke.",
+       "showingresultsinrange": "Niche dekhae hai {{PLURAL:$1|<strong>1</strong> result|<strong>$1</strong> results}} #<strong>$2</strong> se suruu hoe ke #<strong>$3</strong> talak.",
+       "search-showingresults": "{{PLURAL:$4|Result <strong>$1</strong> of <strong>$3</strong>|Results <strong>$1 - $2</strong> of <strong>$3</strong>}}",
        "search-nonefound": "Ii sawaal ke koi jawab nai hae.",
        "powersearch-legend": "Gahira khoj",
        "powersearch-ns": "Namespaces me khojo:",
        "powersearch-togglelabel": "Check karo:",
        "powersearch-toggleall": "Sab",
        "powersearch-togglenone": "Koi bhi nai",
+       "powersearch-remember": "Aage ke khoj ke khatir selection ke yaad karo",
        "search-external": "Bahaari khoj",
        "searchdisabled": "{{SITENAME}} me abhi khoje ke anumati nai hai.\nAap tab tak Google se khoje sakta hai.\nYaad rakhna ki uu log ke {{SITENAME}} ke index saait purana hoi.",
        "search-error": "Khoje ke tim ek error hoe gais hae:$1",
        "preferences": "Pasand",
        "mypreferences": "Pasand",
        "prefs-edits": "Badlao ke number:",
+       "prefsnologintext2": "Aapan preferences ke badle ke khatir login ho.",
        "prefs-skin": "Skin",
        "skin-preview": "Jhalak",
        "datedefault": "Koi pasand nai",
        "prefs-personal": "Sadasya ke profile",
        "prefs-rc": "Nawaa badlao",
        "prefs-watchlist": "Dhyan suchi",
+       "prefs-editwatchlist": "Dhyan suchi ke badlo",
+       "prefs-editwatchlist-label": "Dhyan suchi ke entries ke badlo",
+       "prefs-editwatchlist-edit": "Dhyan suchi me title ke dekho aur hatao",
+       "prefs-editwatchlist-raw": "Raw dhyan suchi ke badlo",
+       "prefs-editwatchlist-clear": "Aapan dhyan suchi ke clear karo",
        "prefs-watchlist-days": "Dhyan suchi me ketna roj dekhawa jaae:",
        "prefs-watchlist-days-max": "Jaada se jaada $1 {{PLURAL:$1|din|din}}",
        "prefs-watchlist-edits": "Barraa dhyan suchi me jaada se jaada ketna badlao dekhawa jaae:",
        "gender-unknown": "Ham bole nai mangtaa hae",
        "gender-male": "Uu wiki panna ke badle hae",
        "gender-female": "Uu wiki panna ke badle hae",
-       "prefs-help-gender": "Optional: used for gender-correct addressing by the software. This information will be public.",
+       "prefs-help-gender": "Ii preference ke set karna optional hae.\nSoftware aapan value ke use kar ke aap ke address kare hae aur aap ke ke bare me duusre ke batae hae, right grammar use kar ke\nIi jaankari janata ke dekhai.",
        "email": "E-mail",
        "prefs-help-realname": "Asli naam ke jaruri nai hai lekin agar jo aap aapan naam diya hai to iske aap ke kaam ke pahachane khatir kaam me lawa jai.",
        "prefs-help-email": "E-mail address ke jaruri nai hai, lekin isse nawaa password aap ke lage bheja jaae sake hai agar aap aapan password bhul gaya tab.",
        "prefs-tokenwatchlist": "Chinh (token)",
        "prefs-diffs": "Farka",
        "prefs-help-prefershttps": "Aap ke agla login pe ii preferences effect me aai.",
+       "prefswarning-warning": "Aap aapan preferences ke badla hae, jiske abhi talak save nai karaa gae hae.\nAgar aap ii panna ke bina \"$1\" me click kare chhorra, tab aap ke preferences save nai hoi.",
+       "prefs-tabs-navigation-hint": "Tip: Aap left aur right arrow key use kar ke tab list me navigate kare saktaa hae.",
        "email-address-validity-valid": "E-mail address kanuni hae",
        "email-address-validity-invalid": "Ek kanuni e-mail ke likho",
        "userrights": "Sadasya ke adhikaar ke chalao",
        "userrights-no-interwiki": "Aap ke duusra wiki me user rights ke badle ke adhikaar nai hai.",
        "userrights-nodatabase": "Database $1 abhi hai nai, nai to local nai hai.",
        "userrights-nologin": "Sadasya ke user rights de ke khatir, ap ke chaahi ki aap [[Special:UserLogin|log in]] karo ek administrator ke account se.",
-       "userrights-notallowed": "Aap ke account ke user rights de aur hatae ke adhikar nai hai.",
+       "userrights-notallowed": "Aap ke lage user rights de aur hatae ke adhikar nai hae.",
        "userrights-changeable-col": "Groups jiske aap badle sakta hai",
        "userrights-unchangeable-col": "Groups jiske aap badle nai sakta hai",
-       "userrights-conflict": "User right me conflict hae. Meharbaani kar ke aapan balao ke fir se apply karo.",
+       "userrights-conflict": "User right me conflict hae! Meharbaani kar ke aapan badlao ke fir se review aur confirm karo.",
        "userrights-removed-self": "App appan ijaajat ke hatae dia hae. Iske natija ii hoi ki app ii panna ke ab nai access kare sakegaa",
        "group": "Jhund:",
        "group-user": "Sadasya",
        "right-move": "Panna ke naam badlo",
        "right-move-subpages": "Panna aur uske subpanna ke naam badlo",
        "right-move-rootuserpages": "Root sadasya ke panna ke naam badlo",
+       "right-move-categorypages": "Category panna ke hatao",
        "right-movefile": "File ke naam badlo",
        "right-suppressredirect": "Panna ke naam badalte ke time, purana naam se redirect ke nai banao.",
        "right-upload": "File ke upload karo",
        "right-deletedtext": "Mitawa gais text aur mitawa gais badlao ke biich waala badlao ke dekho",
        "right-browsearchive": "Mitawa gais panna ke khojo",
        "right-undelete": "Ek panna ke undelete karo",
-       "right-suppressrevision": "Review and restore revisions hidden from Sysops",
+       "right-suppressrevision": "Koi bhi sadasya ke koi bhi panna ke khaas badlao ke dekho, lukao aur dekhao",
+       "right-viewsuppressed": "Uu badlao ke dekho jon ki koi sadasya ke nai dekhae hae",
        "right-suppressionlog": "Private logs ke dekho",
        "right-block": "Duusra sadasya ke badle se roko",
        "right-blockemail": "Sadasya ke email bheje se roko",
        "right-protect": "Protection level ke badlo aur cascade-protected panna ke badlo",
        "right-editprotected": "Badla gais panna ke \"{{int:protect-level-sysop}}\" ke rakam bachawa gais hae",
        "right-editsemiprotected": "Badla gais panna ke \"{{int:protect-level-autoconfirmed}}\" ke rakam bachawa gais hae",
+       "right-editcontentmodel": "Panna ke content model ke badlo",
        "right-editinterface": "User interface ke badlo",
        "right-editusercssjs": "Duusra sadsya ke CSS aur JS files ke badlo",
        "right-editusercss": "Duusra sadsya ke CSS files ke badlo",
        "action-createpage": "panna banao",
        "action-createtalk": "salah waala panna banao",
        "action-createaccount": "ii user account ke banao",
+       "action-history": "ii panna ke itihass ke dekho",
        "action-minoredit": "ii badlao ke chhota mark karo",
        "action-move": "ii panna ke naam badlo",
        "action-move-subpages": "ii panna, aur iske subpanna ke naam badal do",
        "action-move-rootuserpages": "root sadasya panna ke naam badlo",
+       "action-move-categorypages": "Category panna ke hatao.",
        "action-movefile": "ii file ke naam badlo",
        "action-upload": "ii file ke upload karo",
        "action-reupload": "ii file ke uppar se likh do",
        "action-block": "ii sadasya ke panna badle se roko",
        "action-protect": "ii panna ke protection levels ke badlo",
        "action-rollback": "jaldi se pichhla sadasya, jon ki koi panna ke badlis rahaa, ke badlao ke pahile jaise kar do",
-       "action-import": "duusra wiki me se ii panna ke import karo",
-       "action-importupload": "ek file upload se ii panna ke import karo",
+       "action-import": "duusra wiki me se panna ke import karo",
+       "action-importupload": "ek file upload se panna ke import karo",
        "action-patrol": "duusra jan ke badlao pe pahraa do",
        "action-autopatrol": "aapan badlao pe pahraa do",
        "action-unwatchedpages": "unwatched panna ke suchi dekho",
        "action-viewmywatchlist": "Aapan dhyan suchi ke dekho",
        "action-viewmyprivateinfo": "Aapan private jaankari ke dekho",
        "action-editmyprivateinfo": "Aapan private jaankari ke badlo",
+       "action-editcontentmodel": "ek panna ke content model ke badlo",
        "nchanges": "$1 {{PLURAL:$1|badlao|badlao}}",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|last time dekhe ke baad}}",
+       "enhancedrc-history": "itihaas",
        "recentchanges": "Nawaa badlao",
        "recentchanges-legend": "Nawaa badlao options",
        "recentchanges-summary": "Wiki me ii panna ke nawaa badlao pe dhyan rakho.",
        "recentchanges-label-minor": "Ii ek chhota badlao hae",
        "recentchanges-label-bot": "Ii badlao ke ek bot karis hae",
        "recentchanges-label-unpatrolled": "Ii badlao pe abhi pahraa nai dewa gais hae.",
-       "recentchanges-legend-newpage": "$1 - nawaa panna",
-       "rcnotefrom": "Niche '''$2''' se badlao hai ('''$1''' tak )",
+       "recentchanges-label-plusminus": "Panna ke size etna bytes se badla",
+       "recentchanges-legend-heading": "'''Legend:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (aur dekho [[Special:NewPages|nawaa panna ke suchi]])",
+       "rcnotefrom": "Niche {{PLURAL:$5|badlao hae|badlao hae}} <strong>$3, $4</strong> (<strong>$1</strong> talak dekhawa gais) talak.",
        "rclistfrom": "$3 $2 se suruu kar ke nawaa badlao dekhao",
        "rcshowhideminor": "$1 chhota badlao",
+       "rcshowhideminor-show": "Dekhao",
+       "rcshowhideminor-hide": "Lukao",
        "rcshowhidebots": "$1 bots",
-       "rcshowhideliu": "$1 logged-in sadasya",
+       "rcshowhidebots-show": "Dekhao",
+       "rcshowhidebots-hide": "Lukao",
+       "rcshowhideliu": "$1 registered sadasya",
+       "rcshowhideliu-show": "Dekhao",
+       "rcshowhideliu-hide": "Lukao",
        "rcshowhideanons": "$1 bina naam ke sadasya",
+       "rcshowhideanons-show": "Dekhao",
+       "rcshowhideanons-hide": "Lukao",
        "rcshowhidepatr": "$1 pahra dewa gae sampadan",
+       "rcshowhidepatr-show": "Dekhao",
+       "rcshowhidepatr-hide": "Lukao",
        "rcshowhidemine": "$1 hamaar sampadan",
+       "rcshowhidemine-show": "Dekhao",
+       "rcshowhidemine-hide": "Lukao",
        "rclinks": "Pichhla $1 badlao pichle $2 din me dekhao <br />$3",
        "diff": "farka",
        "hist": "itihaas",
        "rc_categories_any": "Koi bhi",
        "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} badlao ke baad",
        "newsectionsummary": "/* $1 */ nawaa vibhag",
-       "rc-enhanced-expand": "Details dekhao (JavaScript jaruri hai)",
+       "rc-enhanced-expand": "Details dekhao",
        "rc-enhanced-hide": "Details ke lukao",
        "rc-old-title": "Sab se pahile \"$1\" ke naam ke niche banawa gais rahaa",
        "recentchangeslinked": "Panna ke jurraa badlao",
        "uploaderror": "Upload nai hoe paais hai",
        "upload-recreate-warning": "\"'Chetauni: Ii naam ke file ke mitae dewa gais rahaa, nai to naam badla gais rahaa.\"'\nHian pe mitae waala suchi aur naam badle waala suchi ke aap ke dekhe ke khatir dewa gais hae:",
        "uploadtext": "Niche waala form ke use kar ke file upload karo.\nPahile upload karaa file ke dekhe khatir [[Special:FileList|list of uploaded files]] jao, (re)uploads are also logged in the [[Special:Log/upload|upload log]], deletions in the [[Special:Log/delete|deletion log]].\n\nTo include a file in a page, use a link in one of the following forms:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' to use the full version of the file\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' to use a 200 pixel wide rendition in a box in the left margin with 'alt text' as description\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' for directly linking to the file without displaying the file",
-       "upload-permitted": "File types jiske ijajat hai: $1.",
-       "upload-preferred": "Kon rakam ke file ke mangtaa hai: $1.",
-       "upload-prohibited": "Ii rakam ke file ke upload nai karaa jaae sake hai: $1.",
+       "upload-permitted": "Permitted file {{PLURAL:$2|type|types}}: $1.",
+       "upload-preferred": "Preferred file {{PLURAL:$2|type|types}}: $1.",
+       "upload-prohibited": "Prohibited file {{PLURAL:$2|type|types}}: $1.",
        "uploadlogpage": "Suchi ke upload karo",
        "uploadlogpagetext": "Niche ke list me haali ke uplaod karaa gae file ke suchi hai.\nVisual overview ke khatir [[Special:NewFiles|nawaa file ke gallery]] ke dekho.",
        "filename": "Filename",
        "largefileserver": "Ii file, jetna ki server allow kare hai, se barraa hai.",
        "emptyfile": "Jon file aap upload karaa rahaa uu khaali rahaa.\nIi saait file ke naam likhe me typing mistake ke kaaran hoi.\nMeharbaani kar ke ii dekho ki aap such me ii file upload kare mangtaa hai ki nai.",
        "windows-nonascii-filename": "Ii wiki me password jisme special characters hae, ke kaam me nai lawa jaae sake hae.",
-       "fileexists": "Ii naam ke file abhi hai, meharbani kar ke check karo <strong>[[:$1]]</strong> agar jo aap sure nai hai ki aap iske badle mangta hai.\n[[$1|thumb]]",
+       "fileexists": "Ii naam ke file abhi hai, meharbani kar ke check karo <strong>[[:$1]]</strong> agar jo {{GENDER:|aap}} sure nai hai ki aap iske badle mangta hai.\n[[$1|thumb]]",
        "filepageexists": "Ii file ke description ke <strong>[[:$1]]</strong> me banae dewa gais rahaa, lekin ii naam ke koi file abhi nai hai.\nAap jon summary likhtaa hai uu panna ke description me nai dekhai.\nDescription ke dekhae ke khatir, aap ke iske manually badle ke parri.\n[[$1|thumb]]",
-       "fileexists-extension": "Ii rakam ke naam ke ek aur file hai: [[$2|thumb]]\n* Uploading file ke naam: <strong>[[:$1]]</strong>\n* Abhi ke file ke naam: <strong>[[:$2]]</strong>\nMeharbani kar ke duusra naam chuno.",
+       "fileexists-extension": "Ii rakam ke naam ke ek aur file hai: [[$2|thumb]]\n* Uploading file ke naam: <strong>[[:$1]]</strong>\n* Abhi ke file ke naam: <strong>[[:$2]]</strong>\nKa app aur jaada distinctive naam use kare mangtaa hae?",
        "fileexists-thumbnail-yes": "Ii janawe hai ki ii file ek chhota chapa hai ''(thumbnail)''. [[$1|thumb]]\nMeharbani kar ke file ke check karo <strong>[[:$1]]</strong>.\nAgar jo check karaa gais file wahi chhapa ke original size hai tab ek aur thumbnail ke upload kare ke jaruri nai hai.",
        "file-thumbnail-no": "File ke naam <strong>$1</strong> se suruu hoe hai.\nIi janawe hai ki ii chhota size ke chapa hai ''(thumbnail)''.\nAgar jo aap ke lage ii chapa full resolution me hai tab uske upload karna, nai to file ke naam badlo.",
        "fileexists-forbidden": "Ii naam ke file abhi hai, aur iske badlawa nai jaae sake hai.\nAgar jo aap fir bhi aapan file ke upload kare mangta hai, tab pichhe jaae ke nawaa naam use karo. [[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "Ii naam ke file abhi shared file repository me hai.\nAgar jo aap fir bhi aapan file upload kare manta hai tab pichhe jaae ke nawaa naam use karo. [[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "Ii file following file ke duplicate hai {{PLURAL:$1|file|files}}:",
        "file-deleted-duplicate": "Yahii rakam ke ek aur file ([[:$1]]) ke pahile delete karaa gais hai. Aap ke file ke deletion history ke check kare ke chaahi, upload kare se pahile.",
+       "file-deleted-duplicate-notitle": "Ii rakam ke ek file ke pahile delete karaa gais rahaa, aur iske title ke suppress karaa gais hae. Aap ke aisan koi jan, jiske lake suppressed data dekhe ke adhikar har, se situation ke review karae ke baad file ke upload kare ke chaahi.",
        "uploadwarning": "Upload ke baare me chetauni",
        "uploadwarning-text": "Meharbani kar ke file ke baaare me aur jankari ke niche badal ke aur fir se kosis karo.",
        "savefile": "File ke save karo",
        "uploaddisabledtext": "File uploads ke disable kar dewa gais hai.",
        "php-uploaddisabledtext": "File uploads ke PHP me disable kar dewa gais hai. Meharbani kar ke file_uploads setting ke check karo.",
        "uploadscripted": "Ii file me HTML nai to script code hai jiske web browser erroneously interpret kare sake hai.",
+       "uploadscriptednamespace": "Ii SVG file me illegal namespace \"$1\" hae.",
+       "uploadinvalidxml": "Upload karaa gais file ke XML ke parse nai karaa jaae sake hae.",
        "uploadvirus": "Ii file me virus hai! Details: $1",
        "uploadjava": "Ii file ek ZIP file hae jisme Java .class ke file hae.\nJava ke uplaod kare ke anumati nai hae, kaaheki isse kuchh security restrictions ke bypass karaa jaae sake hae.",
        "upload-source": "Suruu waala file",
        "license": "Licence ke baare me:",
        "license-header": "Licence ke baare me",
        "nolicense": "Koi bhi selct nai karaa gais hai",
+       "licenses-edit": "License options ke badlo",
        "license-nopreview": "(Preview abhi taiyaar nai hai)",
-       "upload_source_url": " (ek valid, publicly accessible URL)",
-       "upload_source_file": " (aap ke computer me ek file)",
-       "listfiles-summary": "Ii khaas panna sab uploaded file ke dekhae hai.\nJab sadasya filter kare hae, tab sadasys ke upload karaa gais sab se nawaa file ke version ke dekhawa jaae hae.",
+       "upload_source_url": "(aap ke choose karaa gais file ek valid, publicly accessible URL se)",
+       "upload_source_file": "(aap ke computer me ke aap ke choose karaa gais file)",
+       "listfiles-delete": "mitao",
+       "listfiles-summary": "Ii khaas panna sab uploaded file ke dekhae hai.",
        "listfiles_search_for": "Media ke naam khojo:",
        "imgfile": "file",
        "listfiles": "Chapa ke suchi",
        "listfiles_size": "Naap",
        "listfiles_description": "Baare me",
        "listfiles_count": "Ketna badlao rahaa",
+       "listfiles-show-all": "Chaapa ke purana version ke include karo",
+       "listfiles-latestversion": "Abhi ke version",
+       "listfiles-latestversion-yes": "Haan",
+       "listfiles-latestversion-no": "Nai",
        "file-anchor-link": "File",
        "filehist": "File ke itihaas",
        "filehist-help": "File ke dekhe khatir, jaise uu time dekhe me lagat rahaa, date/time pe click karo.",
        "filedelete-maintenance": "Files jiske ke thora din khatir, maintenance ke time, band kar dewa gais rahaa ke mitawa aur fir se pahile jaise karaa jaawe hae.",
        "filedelete-maintenance-title": "File ke mitae nai saktaa hae",
        "mimesearch": "MIME khojo",
-       "mimesearch-summary": "Ii panna filtering of files for its MIME-type ke enable kare hai.\nInput: contenttype/subtype, e.g. <code>image/jpeg</code>.",
+       "mimesearch-summary": "Ii panna filtering of files for its MIME-type ke enable kare hai.\nInput: contenttype/subtype nai to or contenttype/*, e.g. <code>image/jpeg</code>.",
        "mimetype": "MIME ke rakam:",
        "download": "download karo",
        "unwatchedpages": "Panna jispe dhyan nai rakha gais hai",
        "listredirects": "Redirects list karo",
+       "listduplicatedfiles": "File jiske duplicate hae ke suchi",
+       "listduplicatedfiles-summary": "Ii uu file ke suchi hae jisme file ke most recent version duusra file ke duplicate hae. Isme khaali local file ke dekha gais hae.",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] [[$3|{{PLURAL:$2|a duplicate|$2 duplicates}}]] hae.",
        "unusedtemplates": "Bina use bhae templates",
        "unusedtemplatestext": "Ii panna {{ns:template}} namespace me uu panna ake suchi de hai jon ki koi duusra panna me nai hai.\nTemplates ke delete kare se pahile duusra links ke bhi check kare ke nai bhulna.",
        "unusedtemplateswlh": "duusra jorr",
        "randompage": "Koi bhi panna",
        "randompage-nopages": "Ii {{PLURAL:$2|namespace|namespaces}} me koi panna nai hae:  $1",
+       "randomincategory": "Category me random panna",
+       "randomincategory-invalidcategory": "\"$1\" ek valid category naam nai hae.",
+       "randomincategory-nopages": "[[:Category:$1|$1]] category me koi panna nai hae.",
+       "randomincategory-category": "Vibhag:",
+       "randomincategory-legend": "Category me random panna",
        "randomredirect": "Koi bhi jagha redirect karo",
        "randomredirect-nopages": "Namespace \"$1\" me koi redirects nai hai.",
        "statistics": "Aankrra",
        "pageswithprop-text": "Ii panaa, uu panna ke list kare hae jon ki koi khaas panna ke property ke use kare hae.",
        "pageswithprop-prop": "Property ke naam:",
        "pageswithprop-submit": "Jaao",
-       "pageswithprop-prophidden-long": "lamba text property value hidden ($1 kilobytes)",
-       "pageswithprop-prophidden-binary": "binary property ke hidden value ($1 kilobytes)",
+       "pageswithprop-prophidden-long": "lamba text property value hidden ($1)",
+       "pageswithprop-prophidden-binary": "binary property ke lukawal value ($1)",
        "doubleredirects": "Dugna redirects",
        "doubleredirectstext": "Ii panna uu panna ke suchi de hai jon ki duusra redirect panna pe redirect kare hai.\nSab row me pahila aur duusra redirect ke jorr hae, aur isme duusra redirect ke nisana bhi hae, jon ki jaada kar ke \"aslii\" nisana waala panna, jon ki pahila redirect ke dekhae hae.\n<del>Mitawa gais</del> entires ke solve kar dewa gais hae.",
-       "double-redirect-fixed-move": "[[$1]] ke naam badal dewa gais hai, ab ii [[$2]] pe redirect kare hai",
+       "double-redirect-fixed-move": "[[$1]] ke naam badal dewa gais hai.\nIske automatically update karaa gais hae aur ab ii [[$2]] pe redirect kare hae.",
        "double-redirect-fixed-maintenance": "[[$1]] se [[$2]] ke double redirect ke sudhartaa hae.",
        "double-redirect-fixer": "Redirect ke banae waala",
        "brokenredirects": "Tuuta redirects",
        "ninterwikis": "$1 {{PLURAL:$1|interwiki|interwikis}}",
        "nlinks": "$1 {{PLURAL:$1|jorr|jorr}}",
        "nmembers": "$1 {{PLURAL:$1|sadasya|sadasya}}",
+       "nmemberschanged": "$1 → $2{{PLURAL:$2|sadasya|sadasya}}",
        "nrevisions": "$1 {{PLURAL:$1|badlao|badlao}}",
        "nviews": "$1 {{PLURAL:$1|dafe dekha gais hai|dafe dekha gais hai}}",
        "nimagelinks": "$1 {{PLURAL:$1|panna|panna}} me kaam me lawa gais hae",
        "wantedpages-badtitle": "Result set me kharaa title hai: $1",
        "wantedfiles": "Maange waala files",
        "wantedfiletext-cat": "Niche likha gais file ke kaam me lawa gais hae lekin ii Wikipedia me nai hae. Ii Wikipedia me file rahe par bhi foreign repositories ke file ke list karaa jaae sake hae. Aisan koi galat positives ke <del>mitae dewa jaai</del>. Aur, uu panna jon ki non-existent files ke embed kare hae ke [[:$1]] me list karaa gais hae.",
+       "wantedfiletext-cat-noforeign": "Ii sab file ke use karaa gais hae lekin exist nai hoe hae. Aur, panna jisme waisan file embed karaa gais hae jon ki exist nai hoe hae ke suchi [[:$1]] me hae.",
        "wantedfiletext-nocat": "Niche likha gais file ke kaam me lawa gais hae lekin ii Wikipedia me nai hae. Ii Wikipedia me file rahe par bhi foreign repositories ke file ke list karaa jaae sake hae. Aisan koi galat positives ke <del>mitae dewa jaai</del>.",
+       "wantedfiletext-nocat-noforeign": "Ii sab file ke use karaa gais hae lekin exist nai hae hae.",
        "wantedtemplates": "Maange waala templates",
        "mostlinked": "Jon panna me sab se jaada chij jorra hai",
        "mostlinkedcategories": "Jon vibhag me sab se jaada chij jorra hai",
-       "mostlinkedtemplates": "Jon template me sab se jaada fike jorra hai",
+       "mostlinkedtemplates": "Sab se jaada transcluded panna",
        "mostcategories": "Sab se jaada vibhag waala panna",
        "mostimages": "Jon file me sab se jaada file jorra hai",
        "mostinterwikis": "Panna jisme sab se dher interwikis hae",
        "deadendpagestext": "Niche ke panna {{SITENAME}} ke koi bhi panna se nai jurre hai.",
        "protectedpages": "Surakchhit panna",
        "protectedpages-indef": "Khaali indefinite bachao",
+       "protectedpages-summary": "Ii panna me uu panna ke suchi hae jon ki abhi protected hae. Uu title ke suchi jon ki creation se protected hae ke dekhe ke khatir [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] ke dekho.",
        "protectedpages-cascade": "Khaali cascading bachao",
+       "protectedpages-noredirect": "Redirects lukao",
        "protectedpagesempty": "Ii parameters se koi bhi panna ke nai bachawa gais hai.",
+       "protectedpages-timestamp": "Timestamp",
+       "protectedpages-page": "Panna",
+       "protectedpages-expiry": "Khalaas hoe hae",
+       "protectedpages-performer": "Sadasya ke bachawa jaae hae",
+       "protectedpages-params": "Protection parameters",
+       "protectedpages-reason": "Kaaran",
+       "protectedpages-unknown-timestamp": "Nai maluum",
+       "protectedpages-unknown-performer": "Unknown sadasya",
        "protectedtitles": "Bachawa gais titles",
+       "protectedtitles-summary": "Ii panna uu title ke list kare hae jon ki creation se protected hae. Protected panna ke suchi dekhe ke khatir \n[[{{#special:ProtectedPages}}|{{int:protectedpages}}]] ke dekho.",
        "protectedtitlesempty": "Ii parameters se koi bhi title ke nai bacawa gais hai.",
        "listusers": "Sadasya ke suchi",
        "listusers-editsonly": "Khaali uu sadasya ke dekhao jon ki koi badlao karis hai",
        "listusers-creationsort": "Banawa gais tarik se sort karo",
+       "listusers-desc": "Descending order me sort karo",
        "usereditcount": "$1 {{PLURAL:$1|badlao|badlao}}",
        "usercreated": "{{GENDER:$3|Banawa gais hae}}  $1 pe $2 me",
        "newpages": "Nawaa panna",
        "pager-older-n": "{{PLURAL:$1|purana 1|purana $1}}",
        "suppress": "Oversight",
        "querypage-disabled": "Ii khaas panna ke performance kaaran se disable kar drwa gais hae.",
+       "apihelp": "API madat",
+       "apihelp-no-such-module": "Module \"$1\" ke paawa nai gais hae.",
        "booksources": "Pustak sources",
        "booksources-search-legend": "Book sources ke khojo",
+       "booksources-search": "Khojo",
        "booksources-text": "Niche ke suchi me uu websites ke jorr hai jon ki nawaa aur use karaa gais book ke beche hai aur jon book ke aap khojtaa hai uske baare aur jaankari de sake hai:",
        "booksources-invalid-isbn": "Dewa gais ISBN thiik nai hai; iske purana jagha se copy kare ke time ke error ke check karo.",
        "specialloguserlabel": "Sadasya:",
        "listgrouprights-removegroup-self": "{{PLURAL:$2|group|groups}} ke aapan account se hatae saktaa hai: $1",
        "listgrouprights-addgroup-self-all": "Sab group ke aapan account me jorre saktaa hai",
        "listgrouprights-removegroup-self-all": "Sab group ke aapan account se hatae saktaa hai",
+       "listgrouprights-namespaceprotection-header": "Namespace restrictions",
+       "listgrouprights-namespaceprotection-namespace": "Namespace:",
+       "listgrouprights-namespaceprotection-restrictedto": "Adhikar jon ki sadasya ke badlao kare de hae.",
+       "trackingcategories": "Vibhag ke track karaa jaawe hae",
+       "trackingcategories-summary": "Ii panna me tracking vibhag ke suchi hae, jiske MediaWiki software automatically populate kare hae. Iske naam can be changed by altering the relevant system messages in the {{ns:8}} namespace.",
+       "trackingcategories-msg": "Tracking category",
+       "trackingcategories-name": "Sandes ke naam",
+       "trackingcategories-desc": "Category inclusion ke criteria",
+       "noindex-category-desc": "Ii panna ke robots nai index karis hae kaheki ispe magic word <code><nowiki>__NOINDEX__</nowiki></code> hae aur ii uu namespace me hae jisme uu flag allowed nai hae.",
+       "index-category-desc": "Ii panna me  <code><nowiki>__INDEX__</nowiki></code> hae(aur ii uu namespace me hae jahaan pe flag allowed haeand), tab iske robots se index karaa gais hae where it normally wouldn't be.",
+       "post-expand-template-inclusion-category-desc": "Ii panna ke size <code>$wgMaxArticleSize</code> se barraa hae after expanding all the templates, so some templates were not expanded.",
+       "post-expand-template-argument-category-desc": "Ii panna <code>$wgMaxArticleSize</code> se barraa hae after expanding a template argument (something in triple braces, like <code>{{{Foo}}}</code>).",
+       "expensive-parserfunction-category-desc": "Ii panna dher expensive parser functions (jaise ki <code>#ifexist</code>) ke use kare hae. See [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+       "broken-file-category-desc": "Ii panna  me tuuta file link hae(a link to embed a file when the file does not exist).",
+       "hidden-category-category-desc": "Ii category me <code><nowiki>__HIDDENCAT__</nowiki></code> iske content panna me hae, which prevents it from showing up in the category links box on pages by default.",
+       "trackingcategories-nodesc": "Koi description nai he",
+       "trackingcategories-disabled": "Category ke disable kar dewa gais hae.",
        "mailnologin": "Koi bheje waala address nai hai",
        "mailnologintext": "Duusra logan ke lage e-mail bheje ke khatir aap ke [[Special:UserLogin|logged in]] aur [[Special:Preferences|preferences]]  me thik e-mail hoew ke chaahi.",
        "emailuser": "Ii user ke E-mail karo",
        "mywatchlist": "Dhyaan suchi",
        "watchlistfor2": "$1 $2 ke khatir",
        "nowatchlist": "Aap ke dhyan suchi me koi chij nai hai.",
-       "watchlistanontext": "Aapan dhyan suchi me ke dekhe nai to badle ke khatir meharbani kar ke $1 karo.",
+       "watchlistanontext": "Aapan dhyan suchi me ke dekhe nai to badle ke khatir meharbani kar ke log in karo.",
        "watchnologin": "Logged in nai hai",
        "addwatch": "Dhyan suchi me jorro",
        "addedwatchtext": "Panna \"[[:$1]]\" ke aap ke [[Special:Watchlist|watchlist]] me jorr dewa gais hae.\nIi panna ke aage ke badlao aur usse jurra baat waala panna ki suchi hian pe hae.",
+       "addedwatchtext-short": "Panna \"$1\" ke aap ke watchlist me jorraa gais hae.",
        "removewatch": "Dhyan suchi me se hatao",
        "removedwatchtext": "Panna \"[[:$1]]\" ke aap ke [[Special:Watchlist|aap ke dhyan suchi]] se hatae dewa gais hai.",
+       "removedwatchtext-short": "Panna \"$1\" ke aap ke watchlist me se hataawa gais hae.",
        "watch": "Dekho",
        "watchthispage": "Ii panna par dhyan rakho",
        "unwatch": "Nai dhyaan rakho",
        "watchlist-details": "{{PLURAL:$1|$1 panna|$1 panna}} pe dhyan dewa jae hai, baat waala panna ke chhorr ke.",
        "wlheader-enotif": "E-mail notification ke enable kar dewa gais hai.",
        "wlheader-showupdated": "Panna jiske aap ke pichhla visit ke ke baad badal dewa gais hia ke '''bold''' me dekhawa jaawe hai.",
-       "wlnote": "Niche ke {{PLURAL:$1|pahile waala badlao hai| pahile '''$1''' badlao hai}} pichhle {{PLURAL:$2|ghanta|'''$2''' ghanta}} me as of $3, $4..",
+       "wlnote": "Niche ke {{PLURAL:$1|pahile waala badlao hai| pahile <strong>$1</strong> badlao hai}} pichhle {{PLURAL:$2|ghanta|<strong>$2</strong> ghanta}} me as of $3, $4.",
        "wlshowlast": "Pichhla $1 ghanta $2 din  ke dekhao",
        "watchlist-options": "Dhyan suchi ke options",
        "watching": "Dekhtaa...",
        "exbeforeblank": "blanking se pahile content rahaa: '$1'",
        "delete-confirm": "\"$1\" ke mitao",
        "delete-legend": "Mitao",
-       "historywarning": "Sawadhan: Jon panna ke aap mitae waala hai ke itihaas hai lagbhag $1 {{PLURAL:$1|badlao|badlao}}:",
+       "historywarning": "<strong>Sawadhan</strong>: Jon panna ke aap mitae waala hai ke itihaas hai $1 {{PLURAL:$1|badlao|badlao}} ke saathe:",
        "confirmdeletetext": "Aap ek panna ke uske itihaas ke saathe delete kare waala hai.\nMeharbani kar ke iske confirm karo, ki aap iske consequences ke samajhta hai, aur aap iske [[{{MediaWiki:Policy-url}}|the policy]] ke policy ke niche delete karta hai.",
        "actioncomplete": "Action puura hoe gais hai",
        "actionfailed": "Action fail hoe gais",
        "deletecomment": "Kaaran:",
        "deleteotherreason": "Aur/duusra kaaran:",
        "deletereasonotherlist": "Duusra kaaran",
-       "deletereason-dropdown": "*Sadharan mitae ke kaaran\n** Author ke request\n** Copyright ke violation\n** Vandalism",
+       "deletereason-dropdown": "*Sadharan mitae ke kaaran\n** Spam\n** Vandalism\n** Copyright ke violation\n** Author ke request\n** Tuuta redirect",
        "delete-edit-reasonlist": "Mitae ke kaaran ke badlo",
        "delete-toobig": "Ii panna ke barraa balao ke itihass hai, $1 se jaada {{PLURAL:$1|revision|revisions}}.\nAisan panna ke mitae pe rok lagawa gais hai so that accidental disruption of {{SITENAME}} ke roka jaae sake hai.",
        "delete-warning-toobig": "Ii panna ke lambaa badlao ke itihaas hai, $1 {{PLURAL:$1|revision|revisions}} se jaada.\nIske mitae se {{SITENAME}} me database operations me baadha parri;\nsawadhani se aage barrho.",
+       "deleteprotected": "Aap ii panna ke mitae nai saktaa hae kaaheki iske protect karaa gais hae.",
+       "deleting-backlinks-warning": "'''Chetauni:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Duusra panna]] uu panna se link, nai to transclude kare hae jiske aap delete kare waala hae.",
        "rollback": "Pahile jaise kare waala badlao",
-       "rollback_short": "Pahile jaise karo",
        "rollbacklink": "pahile jaise karo",
        "rollbacklinkcount": "$1 {{PLURAL:$1|edit|edits}} ke rollback karo",
        "rollbacklinkcount-morethan": "$1 {{PLURAL:$1|edit|edits}} se jaada badlao ke rollback karo",
        "alreadyrolled": "[[:$1]] by [[User:$2|$2]] ke pahile jaise nai kare sakta hai. ([[User talk:$2|Talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\naur koi ii panna ke badal nai to pahile jaise kar diis hai.\n\nIi panna ke pichla badla [[User:$3|$3]] ([[User talk:$3|Talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) se rahaa",
        "editcomment": "Badlao ke summary rahaa: \"''$1''\".",
        "revertpage": "[[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) ke badlao ke [[User:$1|$1]] ke aakhri badlao ke jaise kar dewa gais hai.",
-       "revertpage-nouser": "badlao ke  [[User:$1|$1]] ke badlao ke rakam kar dewa gais hae.",
+       "revertpage-nouser": "Reverted edits by a hidden user to last revision by {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "$1 ke badlao ke pahile jaise kar dewa gais hai;\nbadal ke $2 ke aakhri version kar dewa gais hai.",
        "sessionfailure-title": "Session fail hoe gais hae",
        "sessionfailure": "Aap ke login session me kuch karrbarr hai.\niske cancel kar dewa gais hai jisse ki koi iisession ke hijack nai kar.\nMeharbani kar ke  \"back\" ke press kar ke jon pana se aap aae rahaa ke fir se load karo, tab fir kosis karo.",
        "protect-othertime": "Duusra time:",
        "protect-othertime-op": "duusra time",
        "protect-existing-expiry": "Abhi ke khatam hoe waala time: $3, $2",
+       "protect-existing-expiry-infinity": "Abhi ke expiry time: infinite",
        "protect-otherreason": "Duusra/aur kaaran:",
        "protect-otherreason-op": "Duusra kaaran:",
        "protect-dropdown": "*Bachae ke sadharan kaaran\n** Jaada vandalism\n** Jaada spamming\n** Counter-productive edit warring\n** Jaada traffic waala panna",
        "namespace": "Namespace:",
        "invert": "Selection ke ulto",
        "tooltip-invert": "Cuna gais namespace (and the associated namespace if checked) ke badlao ke lukae ke khatir ii box ke tick karo",
+       "tooltip-whatlinkshere-invert": "Ii bix ke check karo, to hide links from pages within the selected namespace.",
        "namespace_association": "Associated namespace",
        "tooltip-namespace_association": "Chuna gais panna ke baat waala panna, nai to, subject namespace ke include kare ke khatir, ii box ke tick karo",
        "blanknamespace": "(Pahila)",
        "contributions": "{{GENDER:$1|Sadasya}} ke yogdaan",
        "contributions-title": "$1 ke yogdaan",
        "mycontris": "Yogdaan",
-       "contribsub2": "$1 ($2) ke khatir",
+       "contribsub2": "{{GENDER:$3|$1}} ($2) ke khatir",
+       "contributions-userdoesnotexist": "User account \"$1\" register nai karaa gais hae",
        "nocontribs": "Ii critera ke rakam ke koi badlao nai pawa gais hai.",
        "uctop": "(abhi waala)",
        "month": "Mahina se (aur pahile):",
        "sp-contributions-newbies-sub": "Nawaa account khatir",
        "sp-contributions-newbies-title": "Nawaa account ke sadasya ke yogdaan",
        "sp-contributions-blocklog": "Suchi roko",
+       "sp-contributions-suppresslog": "Sadasya ke yogdaan jiske suppress karaa gais hae",
        "sp-contributions-deleted": "Mitawa gais adasya ke yogdaan",
        "sp-contributions-uploads": "upload karaa gais file",
        "sp-contributions-logs": "logs",
        "sp-contributions-search": "Yogdaan ke khojo",
        "sp-contributions-username": "IP Address nai to username:",
        "sp-contributions-toponly": "Khaali sab se nawaa badlao ke dekhao",
+       "sp-contributions-newonly": "Khaali uu badlao ke dekhao jon ke panna banae waala hae",
        "sp-contributions-submit": "Khojo",
        "whatlinkshere": "Hian konchij jurre hae",
        "whatlinkshere-title": "Panna jon ki $1 se jurre hai",
        "autoblockid": "#$1 ke apne se block karo",
        "block": "Sadasya ke roko",
        "unblock": "Sadasya ke rukawat k khalaas karo",
-       "blockip": "Sadasya ke roko",
+       "blockip": "{{GENDER:$1|sadasya}} ke roko",
        "blockip-legend": "Sadasya ke roko",
        "blockiptext": "Niche ke form ke use kar ke koi khaas IP address nai to username ke write access ke roko.\nIske khaali vandalism ke roke ke khatir use kare ke chaahi [[{{MediaWiki:Policy-url}}|policy]] ke niche.\nNiche ek khaas kaaran likho (jaise ki, citing particular pages that were vandalized).",
        "ipaddressorusername": "IP Address nai to username:",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] ke rok dewa gais hai.<br />\nIi rukawat pe fir se bichar kare ke khatir [[Special:BlockList|block list]] ke dekho.",
        "ipb-blockingself": "Aap abhi apne ke block kare waala hae! Aap sure hai koi aap ii kare mangtaa hae?",
        "ipb-confirmhideuser": "Aap abhi ek sadasya ke \"hide user\" enabled se block kare waala hae. Isse sadasya ke naam ke sab lists aur log entries se hatae dewa jaai.  Aap sure hae ki aap ii kare mangtaa hae?",
+       "ipb-confirmaction": "Agar aap sure hae ki aap konchi kare mantaa hae, tab meharbaani kar ke niche  \"{{int:ipb-confirm}}\" field ke check karo",
        "ipb-edit-dropdown": "Badlao ke roke ke kaaran",
        "ipb-unblock-addr": "$1 ke rukawat ke khalaas karo",
        "ipb-unblock": "Ek username nai to IP address ke rukawat ke khalaas karo",
        "ipb-blocklist": "Abhi ke rukawat ke dekho",
-       "ipb-blocklist-contribs": "$1 ke yogdaan",
+       "ipb-blocklist-contribs": "{{GENDER:$1|$1}} ke yogdaan",
        "unblockip": "Sadasya ke rukawat ke khalaas karo",
        "unblockiptext": "Niche ke form ke use kar ke pahile roka gais IP address nai to username ke likhe ke adhikar do.",
        "ipusubmit": "Ii rukawat ke hatao",
        "unblocked": "[[User:$1|$1]] ke rukawat ke khalaas kar dewa gais hai",
        "unblocked-range": "$1 ke unblock kar dewa gais hae",
        "unblocked-id": "Roko $1 ke khalaas kar dewa gais hai",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] ke unblock kar dewa gais hae.",
        "blocklist": "Roka gais sadasya",
        "ipblocklist": "Roka gais sadasya",
        "ipblocklist-legend": "Ek roka gais sadasya ke khojo",
        "change-blocklink": "rukawat ke badlo",
        "contribslink": "yogdaan",
        "emaillink": "E-mail bhejo",
-       "autoblocker": "Apne se rokaa gais hai kaahe ki aap ke IP address ke abhi haali \"[[User:$1|$1]]\" use karis hai.\n$1 ke roke ke kaaran hai: \"$2\"",
+       "autoblocker": "Apne ke rokaa gais hai kaaheki aap ke IP address ke abhi haali \"[[User:$1|$1]]\" use karis hai.\n$1 ke roke ke kaaran hai: \"$2\"",
        "blocklogpage": "Suchi ke roko",
        "blocklog-showlog": "Ii sadasya ke pahile rokaa gais hae.\nRoke waala suchi  ke niche dekhawa jaawe hae aap ke jankari ke khatir:",
        "blocklog-showsuppresslog": "Ii sadasya ke pahile rokaa aur lukawa gais hae.\nIske suchi ke niche dekhawa jaawe hae aap ke jankari ke khatir.",
        "range_block_disabled": "Administrator ke adhikar, jisse range block banawa jaawat rahaa, ke rok dewa gais hai.",
        "ipb_expiry_invalid": "Khalaas hoe waala time galat hai.",
        "ipb_expiry_temp": "Lukawa gais username ke rukawat ke permanent hoe ke chaahi.",
-       "ipb_hide_invalid": "Ii account ke dabae nai sakaa hai; saait bahut jaada badlao hoi.",
+       "ipb_hide_invalid": "Ii account ke dabae nai sakaa hai; saait {{PLURAL:$1|one edit|$1 edits}} se jaada badlao hae.",
        "ipb_already_blocked": "\"$1\" ke pahile rok dewa gais hai",
        "ipb-needreblock": "$1 ke rok dewa gais hai.\nKa aapp ii settings ke badle mangtaa hai?",
        "ipb-otherblocks-header": "Duusra {{PLURAL:$1|block|blocks}}",
        "movepagetalktext": "Saathe ke talk panna ke automatically move kar dewa jai ii panna ke saathe '''agar jo:'''\n* khali nahi talk page nawaa naam ke already hai, yah\n* Aap nivhe waala box ke uncheck karo\nIi prastithi me, aap ke manually move yah merge kare ke parri.",
        "movearticle": "Panna ke naam badli karo:",
        "moveuserpage-warning": " '''Chetauni:'''  Aap ek sadasya ke panna ke naam badle waala hae. Ii yaad rakhna ki khaali panna ke naam badla jaai, sadasya ke naam ''nai'' badlaa jaai.",
+       "movecategorypage-warning": "<strong>Chetauni:</strong> Aap ek category panna ke hatae waala hae. Khaali ii panna ke hataawa jaai aur purana category ke aur panna ke nawaa category me <em>nai</em>  recategorize karaa jaai.",
        "movenologintext": "Panna ke naam badle ke khatir aap ke ek registered sadasya rahe ke parri aur  [[Special:UserLogin|logged in]].",
        "movenotallowed": "Aap ke panna ke naam badle ke ijajat nai hai.",
        "movenotallowedfile": "Aap ke file ke naam badle ke ijajat nai hai.",
        "cant-move-user-page": "Aap ke sadasya ke panna ke namm badle ke ijajat nai hai (subpages ke chhorr ke).",
        "cant-move-to-user-page": "Aap ke koi panna ke hatae ke sadasya ke panna pe kare ke ijajat nai hai (sadasya ke subpage ke chhorr ke).",
+       "cant-move-category-page": "Aap ke panna ke category panna ke hatae ke ijajat nai hai.",
+       "cant-move-to-category-page": "Aap ke panna ke category panna me hatae ke ijajat nai hai.",
        "newtitle": "Nawaa title pe:",
        "move-watch": "Ii panna pe dhyan rakho",
        "movepagebtn": "Panna ke naam badlo",
        "allmessages-prefix": "Prefix se chhaano:",
        "allmessages-language": "Bhasa:",
        "allmessages-filter-submit": "Jaao",
+       "allmessages-filter-translate": "Translate karo",
        "thumbnail-more": "Barraa karo",
        "filemissing": "File missing",
        "thumbnail_error": "Thumbnail banae me galti hoe gais: $1",
        "thumbnail-temp-create": "Temporary thumbnail file ke nai banae sakaa hae",
        "thumbnail-dest-create": "Destination ke thumbnail ke bajae nai sakaa hae",
        "thumbnail_invalid_params": "Thumbnail ke parameter valid nai hae",
+       "thumbnail_toobigimagearea": "File jiske dimension $1 se jaada hae",
        "thumbnail_dest_directory": "Destination directory ke nai banaawe sakaa hae",
        "thumbnail_image-type": "Ii rakam ke chapa ke support nai karaa jaawe hai",
        "thumbnail_gd-library": "Incomplete GD library configuration: missing function $1",
        "thumbnail_image-missing": "Ii naam ke file nai hae: $1",
+       "thumbnail_image-failure-limit": "Ii thumbnail ke render kare ke bahut dher unsuccessful kosis ($1 or more) rahaa. Meharbaani kar ke baad me fir kosis karna.",
        "import": "Panna ke import karo",
        "importinterwiki": "Transwiki se ayaat",
        "import-interwiki-text": "Ek wiki aur panna ke title ke select karo.\nBadalo ke tarik aur badle waala sadasya ke naam wahii rakam rahii.\nSab transwiki import actions ke [[Special:Log/import|import log]] pe log karaa jaawe hai.",
+       "import-interwiki-sourcewiki": "Source wiki:",
+       "import-interwiki-sourcepage": "Source panna:",
        "import-interwiki-history": "Ii panna ke sab badlao ke itihaas ke copy karo",
        "import-interwiki-templates": "Sab template ke include karo",
        "import-interwiki-submit": "Import karo",
        "importuploaderrortemp": "Import file ke upload nai kare sakaa hai.\nEk temporary file nai hai.",
        "import-parse-failure": "XML import parse fail hoe gais hai",
        "import-noarticle": "Koi panna import kare ke nai hai!",
-       "import-nonewrevisions": "Sab badlao ke pahile import karaa gais hai.",
+       "import-nonewrevisions": "Koi badalo ke import nai karaa gais hae (sab ke chaahe pahile import karaa gais rahaa, nai to error ke kaaran skip karaa gais rahaa).",
        "xml-error-string": "$1 line $2 me, col $3 (byte $4): $5",
        "import-upload": "XML data ke upload karo",
        "import-token-mismatch": "Loss of session data.\nMeharbani kar ke, fir se kosis karo.",
        "import-invalid-interwiki": "Naam dewa gais wiki se import nai kare saktaa hai.",
        "import-error-edit": "Panna \"$1\" ke import nai kara gais kaahe ki aap ke badle ke adhikar nai hae.",
        "import-error-create": "Panna \"$1\" ke import nai kara gais kaahe ki aap ke panna banae ke adhikar nai hae.",
-       "import-error-interwiki": "Panna \"$1\" ke import nai kara gais kaahe ki ii panna ke external linking (interwiki) ke khatir reserve karaa gais hae.",
+       "import-error-interwiki": "Panna \"$1\" ke import nai kara gais kaaheki ii panna ke naam external linking (interwiki) ke khatir reserve karaa gais hae.",
        "import-error-special": "Panna \"$1\" ke import nai karaa gais hae kaaheki ii ek khaas namespace hae jisme panna nai banawa jaae sake hae.",
        "import-error-invalid": "Panna \"$1\" ke import nai karaa gais hae kaaheki iske naam kharaab hae.",
        "import-error-unserialize": "Panna \"$1\" ke $2 badlao ke unserialize kare nai sakaa hae. Ii badlao me content model $3 serialized as $4 ke kaam me lawa gais hae.",
+       "import-error-bad-location": "Badlao $2, jon ki content model $3 ke use kare hae, ke \"$1\" me nai store karaa jaae sake hae, kaaheki uu panna me uu model ke nai support karaa jaae hae.",
        "import-options-wrong": "Galat {{PLURAL:$2|option|options}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "Derwa gais root panna ek kharaab title hae",
        "import-rootpage-nosubpage": "Root panna ke namespace \"$1\" sub panna ke nai allow kare hae.",
        "importlogpage": "Suchi ke import karo",
        "importlogpagetext": "Duusra wiki se panna aur badlao ke itihaas ke administrative imports.",
        "import-logentry-upload": "file upload se [[$1]] ke import karaa gais hai",
-       "import-logentry-upload-detail": "$1 {{PLURAL:$1|badlao|badlao}}",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|badlao|badlao}} import karaa gais hae",
        "import-logentry-interwiki": "transwikied $1",
-       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|badlao|badlao}} $2 se",
+       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|badlao|badlao}} $2 se import karaa gais hae",
        "javascripttest": "JavaScript ke testing",
-       "javascripttest-title": "$1 tests ke chaalu karaa jaae hae",
        "javascripttest-pagetext-noframework": "Ii panna ke JavaScript test ke kare ke khatir reserve karaa gais hae.",
        "javascripttest-pagetext-unknownframework": "Anjaan testing framework \"$1\".",
+       "javascripttest-pagetext-unknownaction": "Unknown action \"$1\".",
        "javascripttest-pagetext-frameworks": "Meharbaani kar ke ek testing framework ke chuno: $1",
        "javascripttest-pagetext-skins": "Test kare ke khatir ek chamrraa ke chuno:",
        "javascripttest-qunit-intro": "mediawiki.org me [$1 testing documentation] ke dekho.",
-       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit test suite",
        "tooltip-pt-userpage": "Aap ke sadasya panna",
        "tooltip-pt-anonuserpage": "IP jisme se aap edit karta hai ke sadasya panna",
        "tooltip-pt-mytalk": "Aap ke baat waala panna",
        "tooltip-pt-mycontris": "Aap ke yogdaan ke suchi",
        "tooltip-pt-login": "Aap log in kartaa tab achchha rahataa; lekin jaruri nai hae.",
        "tooltip-pt-logout": "Log out",
+       "tooltip-pt-createaccount": "Aap ke ek account banae ke log in kare ke encourage karaa jaae hae; lekin iske jaruri nai hae",
        "tooltip-ca-talk": "Content waala panna ke baare me salah",
        "tooltip-ca-edit": "Aap ii panna ke badle sakta hai. Meherbaani kar ke bachae se pahile preview button ke kaam me laana.",
        "tooltip-ca-addsection": "Nawaa section suruu karo",
        "tooltip-feed-atom": "Ii panna ke khatir atom feed",
        "tooltip-t-contributions": "Ii sadasya ke yogdaan ke suchi dekho",
        "tooltip-t-emailuser": "Ii user ke lage ek mail bhejo",
+       "tooltip-t-info": "Ii panna ke bare me aur jankari",
        "tooltip-t-upload": "File upload karo",
        "tooltip-t-specialpages": "Sab khaas panna ke suchi",
        "tooltip-t-print": "Ii panna ke chhape waala version",
        "spam_reverting": "Pahile waala badalo, jisme $1 se link nai hai, pe karaa jaawe hai",
        "spam_blanking": "Sab badlao jisme $1 se jorr hai, ke mitawa jaawe hai",
        "spam_deleting": "Sab badlao jisme $1 se jorr hai, ke mitawa jaawe hai",
+       "simpleantispam-label": "Anti-spam check.\nIske fill <strong>NAI</strong> karo!",
        "pageinfo-title": "\"$1\" ke khatir jaankari",
        "pageinfo-not-current": "Maaf karna, lekin purana badlao ke baare me ii jaankari nai de saktaa hae.",
        "pageinfo-header-basic": "Basic jaankari",
        "pageinfo-length": "Panna ke lambai (bytes me)",
        "pageinfo-article-id": "Panna ke ID",
        "pageinfo-language": "Panna ke bhasa",
-       "pageinfo-robot-policy": "Search engine ke status",
-       "pageinfo-robot-index": "Indexable",
-       "pageinfo-robot-noindex": "Indexable nai hae",
+       "pageinfo-content-model": "Page content model",
+       "pageinfo-robot-policy": "Robots se indexing",
+       "pageinfo-robot-index": "Ijajat hae",
+       "pageinfo-robot-noindex": "Ijajat nai hae",
        "pageinfo-watchers": "Ketnaa jane panna ke dekhe hae",
        "pageinfo-few-watchers": "$1 {{PLURAL:$1|watcher|watchers}} se kamtii log hae",
-       "pageinfo-redirects-name": "Ii panna pe redirect karo",
+       "pageinfo-redirects-name": "Ii panna me etna redirect hae",
        "pageinfo-subpages-name": "Ii panna ke subpage",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|redirect|redirects}}; $3 {{PLURAL:$3|non-redirect|non-redirects}})",
        "pageinfo-firstuser": "Panna ke suruu kare waala",
        "svg-long-desc": "SVG file, naam kare ke khatir  $1 × $2 pixels, file size: $3",
        "svg-long-desc-animated": "Animated SVG file, naam kare ke khatir  $1 × $2 pixels, file size: $3",
        "svg-long-error": "SCG file valid nai hae: $1",
-       "show-big-image": "Puura resolution",
+       "show-big-image": "Original file",
        "show-big-image-preview": "Ii preview ke size: $1",
        "show-big-image-other": "Duusra {{PLURAL:$2|resolution|resolutions}}: $1",
        "show-big-image-size": "$1 × $2 pixels",
        "newimages-summary": "Ii khaas panna pahile waala upload karaa gais file ke dekhae hai.",
        "newimages-legend": "Chaalo",
        "newimages-label": "Filename (nai to iske ek hissa):",
+       "newimages-showbots": "Bots se upload dekhawa jaae hae",
        "noimages": "Koi chij dekhe ke nai hai.",
        "ilsubmit": "Khojo",
        "bydate": "tarik se",
        "exif-compression-3": "CCITT Group 3 fax ke encoding",
        "exif-compression-4": "CCITT Group 4 fax ke encoding",
        "exif-copyrighted-true": "Copyright karaa gais hae",
-       "exif-copyrighted-false": "Janata ke khatir",
+       "exif-copyrighted-false": "Copyright status ke nai set karaa gais hae",
        "exif-unknowndate": "Taarik nai maalum",
        "exif-orientation-1": "Saamaan",
        "exif-orientation-2": "Baraabar ultawa gais hae",
        "confirm-watch-top": "Ii panna ke aap ke dhyan suchi me jorro?",
        "confirm-unwatch-button": "Thiik hae",
        "confirm-unwatch-top": "Ii panna ke aap ke dhyan suchi se hatao?",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← pahile waala panna",
        "imgmultipagenext": "aage waala panna →",
        "imgmultigo": "Jaao!",
        "imgmultigoto": "$1 panna pe jaao",
+       "img-lang-default": "(default bhasa)",
+       "img-lang-info": "Ii chaapa ke $1. $2 me render karo",
+       "img-lang-go": "Jaao",
        "ascending_abbrev": "chhota se barraa",
        "descending_abbrev": "barraa se chhota",
        "table_pager_next": "Aage waala panna",
        "autosumm-replace": "Contwnt ke \"$1\" se replace kar dewa gais hae",
        "autoredircomment": "Panna ke [[$1]] pe redirect kar dewa gais hae",
        "autosumm-new": "Panna jisme \"$1\" hae ke banae dewa gais hae.",
+       "autosumm-newblank": "Blank panna banawa gais hae",
        "lag-warn-normal": "$1 {{PLURAL:$1|second|seconds}} se nawaa badlao, saait ii suchi me nai dekhai.",
        "lag-warn-high": "Jaada database server lag ke kaaran $1 {{PLURAL:$1|second|seconds}} se nawaa badlao suchi me saait nai dekhaai.",
        "watchlistedit-normal-title": "Dhyan suchi ke badlo",
        "watchlistedit-normal-done": "{{PLURAL:$1|1 title was|$1 titles were}} dhyan suchi me se hataa gais:",
        "watchlistedit-raw-title": "Raw dhyan suchi ke badlo",
        "watchlistedit-raw-legend": "Raw dhyan suchi ke badlo",
+       "watchlistedit-raw-explain": "Aap ke watchlist me ke title ke niche dekhawa jaae hae, aur iske list me se jorra aur hatae ke badla jaae sake hae;\nek line per ek title.\nJab khalaas hoe jaae tab \"{{int:Watchlistedit-raw-submit}}\" pe click karo.\nAap[[Special:EditWatchlist|standard editor ke bhi kaam me laae saktaa hae]].",
+       "watchlistedit-raw-titles": "Titles:",
+       "watchlistedit-raw-submit": "Watchlist ke update karo",
+       "watchlistedit-raw-done": "Aap ke watchlist ke update kar dewa gais hae.",
+       "watchlistedit-raw-added": "{{PLURAL:$1|1 title was|$1 titles were}} added:",
+       "watchlistedit-raw-removed": "{{PLURAL:$1|1 title was|$1 titles were}} removed:",
+       "watchlistedit-clear-title": "Watchlist ke clear karaa gais hae",
+       "watchlistedit-clear-legend": "Watchlist ke clear karo",
+       "watchlistedit-clear-explain": "Aap ke watchlist me se sab title ke hatae dewa jaai",
+       "watchlistedit-clear-titles": "Titles:",
+       "watchlistedit-clear-submit": "Watchlist ke clear karo (Ii permanent hae!)",
+       "watchlistedit-clear-done": "Aap ke watchlist ke update kar dewa gais hae.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 title was|$1 titles were}} removed:",
+       "watchlistedit-too-many": "Hian pe bahut dher panna ke dekhae ke hae",
+       "watchlisttools-clear": "Watchlist ke clear karo",
        "watchlisttools-view": "Jaruri badlao dekho",
        "watchlisttools-edit": "Dhyan suchi ke dekho aur badlo",
        "watchlisttools-raw": "Dhyan suchi ke apne sampadan karo",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|talk]])",
        "duplicate-defaultsort": "'''Chetauni:''' Default sort key \"$2\" pahile ke default sort key \"$1\" ke override kare hae.",
+       "duplicate-displaytitle": "<strong>Chetauni:</strong> Display title \"$2\" pahile ke display title \"$1\" ke override kare hae.",
+       "invalid-indicator-name": "<strong>Error:</strong> Panna status indicators' <code>naam</code> attribute khaali nai rahe sake hae.",
        "version": "Badlao",
+       "version-extensions": "Installed extensions",
+       "version-skins": "Installed skins",
        "version-specialpages": "Khaas panna",
+       "version-parserhooks": "Parser hooks",
+       "version-variables": "Variables",
+       "version-antispam": "Spam prevention",
        "version-other": "Duusra",
+       "version-mediahandlers": "Media handlers",
+       "version-hooks": "Hooks",
+       "version-parser-extensiontags": "Parser extension tags",
+       "version-parser-function-hooks": "Parser function hooks",
+       "version-hook-name": "Hook ke naam",
+       "version-hook-subscribedby": "Se subscribe karaa gais",
+       "version-no-ext-name": "[naam nai hae]",
+       "version-license": "MediaWiki License",
+       "version-ext-license": "License",
+       "version-ext-colheader-name": "Extension",
+       "version-skin-colheader-name": "Skin",
+       "version-ext-colheader-version": "Version",
+       "version-ext-colheader-license": "License",
+       "version-ext-colheader-description": "Baare me",
+       "version-ext-colheader-credits": "Likhe waale",
+       "version-license-title": "$1 ke licence",
+       "version-license-not-found": "Ii extension ke khatir koi detailed license jankari nai paawa gais hae.",
+       "version-credits-title": "$1 ke khatir credit",
+       "version-credits-not-found": "Ii extension ke khatir koi detailed license jankari nai paawa gais hae.",
+       "version-poweredby-credits": "Ii wiki <strong>[https://www.mediawiki.org/ MediaWiki]</strong> se powered hae, copyright © 2001-$1 $2.",
        "version-poweredby-others": "duusra waala",
+       "version-poweredby-translators": "translatewiki.net translators",
+       "version-credits-summary": "Ham log ii sab jan ke [[Special:Version|MediaWiki]] me yogdaan ke khatir recognize kartaa hae.",
+       "version-software": "Installed software",
+       "version-software-product": "Product",
+       "version-software-version": "Version",
+       "version-entrypoints": "Entry point URLs",
+       "version-entrypoints-header-entrypoint": "Entry point",
+       "version-entrypoints-header-url": "URL",
+       "version-libraries": "Installed libraries",
+       "version-libraries-library": "Library",
+       "version-libraries-version": "Version",
+       "redirect-legend": "File nai to panna pe redirect karo",
+       "redirect-submit": "Jaao",
+       "redirect-lookup": "Lookup:",
+       "redirect-value": "Value:",
+       "redirect-page": "Sadasya ke ID",
+       "redirect-revision": "Panna ke revision",
+       "redirect-file": "Filename",
+       "redirect-not-exists": "Value ke nai paawa gais hae",
+       "fileduplicatesearch": "Duplicate files ke khojo",
+       "fileduplicatesearch-summary": "Duplicate files based on hash values ke khojo.",
+       "fileduplicatesearch-legend": "Ek duplicate ke khojo",
        "fileduplicatesearch-filename": "File ke naam:",
        "fileduplicatesearch-submit": "Khojo",
+       "fileduplicatesearch-info": "$1 × $2 pixel<br />File size: $3<br />MIME type: $4",
+       "fileduplicatesearch-result-1": "Ii file \"$1\" ke koi duplication nai hae.",
+       "fileduplicatesearch-noresults": "Koi file jiske naam \"$1\" ke nai paawa gais hae.",
        "specialpages": "Khaas panna",
+       "specialpages-note-top": "Legend",
+       "specialpages-note": "* Normal special panna.\n* <span class=\"mw-specialpagerestricted\">Restricted special panna.</span>",
+       "specialpages-group-maintenance": "Maintenance reports",
        "specialpages-group-other": "Duusra khaas panna",
        "specialpages-group-login": "Login karo/Nawaa account banao",
+       "specialpages-group-changes": "Abhi kuchh din ke badlao aur logs",
+       "specialpages-group-media": "Media reports aur uploads",
+       "specialpages-group-users": "Sadasyya aur rights",
        "specialpages-group-highuse": "Jaada kaam me laae waala panna",
        "specialpages-group-pages": "Panna ke suchi",
        "specialpages-group-pagetools": "Panna ke aujar",
+       "specialpages-group-wiki": "Data aur tools",
+       "specialpages-group-redirects": "Special panna ke redirect karaa jaawe hae",
+       "specialpages-group-spam": "Spam tools",
+       "specialpages-group-developer": "Developer tools",
        "blankpage": "Khaali panna",
        "intentionallyblankpage": "Ii panna ke jaan ke khaliya chhorraa gais hae.",
        "external_image_whitelist": "#Leave this line exactly as it is<pre>\n#Put regular expression fragments (just the part that goes between the //) below\n#These will be matched with the URLs of external (hotlinked) images\n#Those that match will be displayed as images, otherwise only a link to the image will be shown\n#Lines beginning with # are treated as comments\n#This is case-insensitive\n\n# Ii line ke yahii rakam chhorr do<pre>\n#Sab regular expression fragments (wahii hissa jon ki // ke biich me jaawe hae) ke niche rakkho\n#Iske bahaari URLs  (hotlinked) chapa se link karaa jaai",
+       "tags": "Valid change tags",
        "tag-filter": "[[Special:Tags|Tag]] filter karo:",
+       "tag-filter-submit": "Filter",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
+       "tags-title": "Tags",
+       "tags-intro": "Ii panna uu tag ke list kare hae jiske software edit with, aur their meaning se mark kare hae.",
+       "tags-tag": "Tag ke naam",
+       "tags-display-header": "Appearance on change lists",
+       "tags-description-header": "Meaning ke puura description",
+       "tags-active-header": "Active?",
+       "tags-hitcount-header": "Tagged changes",
+       "tags-active-yes": "Haan",
+       "tags-active-no": "Nai",
        "tags-edit": "badlo",
        "tags-hitcount": "$1 {{PLURAL:$1|badlao|badlao}}",
        "comparepages": "Panna ke biich me antar dekho",
        "compare-rev1": "Badlao 1",
        "compare-rev2": "Badlao 2",
        "compare-submit": "Antar dekho",
+       "compare-invalid-title": "Jon title ke aap specify karaa hae, valid nai hae",
+       "compare-title-not-exists": "Chuna gais title abhi nai banawa gais hai.",
+       "compare-revision-not-exists": "Chuna gais revision abhi nai banawa gais hai.",
+       "dberr-problems": "Maaf karna! Ii site technical difficulties experience kare hae.",
+       "dberr-again": "Thora deri wait kar ke fir se load kare ke try karo",
+       "dberr-info": "(Cannot access the database: $1)",
+       "dberr-info-hidden": "(Database ke nai access kare sakaa jaawe hae)",
+       "htmlform-submit": "Submit karo",
        "htmlform-reset": "Badlao ke pahile jaise karo",
        "htmlform-selectorother-other": "Duusra",
+       "htmlform-no": "Nai",
+       "htmlform-yes": "Haan",
+       "htmlform-chosen-placeholder": "Ek option ke select karo",
+       "htmlform-cloner-create": "Aur add karo",
+       "htmlform-cloner-delete": "Remove karo",
+       "htmlform-cloner-required": "Kamti se kamti ek value ke jaruri hae",
+       "sqlite-has-fts": "$1 with full-text search support",
+       "sqlite-no-fts": "$1 without full-text search support",
+       "logentry-delete-delete": "$1 {{GENDER:$2|deleted}} panna $3",
+       "logentry-delete-restore": "$1 {{GENDER:$2|restored}} panna $3",
+       "logentry-delete-event": "$1 {{GENDER:$2|changed}} visibility of {{PLURAL:$5|a log event|$5 log events}} on $3: $4",
+       "logentry-delete-revision": "$1 {{GENDER:$2|changed}} visibility of {{PLURAL:$5|a revision|$5 revisions}} panna $3: $4 pe",
+       "logentry-delete-event-legacy": "$1 {{GENDER:$2|badal dewa gais hae}} visibility of log events on $3",
+       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|changed}} visibility of revisions on panna $3",
        "revdelete-restricted": "sysops pe llabu restrictions",
        "revdelete-unrestricted": "sysops se hatawa gae rukawat",
        "logentry-rights-rights": "$1 $3 ke group ke membership ke $4 se badal ke $5 kar dia hae",
index ee5c85e..96b3d92 100644 (file)
        "subcategories": "Podkategorije",
        "category-media-header": "Medije w kategoriji „$1”",
        "category-empty": "''Tuta kategorija tuchwilu žane nastawki abo medije njewobsahuje.''",
-       "hidden-categories": "{{PLURAL:$1|Schowana kategorija|Schowanej kategoriji|Schowane kategorije|Schowanych kategorijow}}",
+       "hidden-categories": "{{PLURAL:$1|Schowana kategorija|Schowanej kategoriji|Schowane kategorije|Schowane kategorije}}",
        "hidden-category-category": "Schowane kategorije",
        "category-subcat-count": "{{PLURAL:$2|Tuta kategorija ma jenož slědowacu podkategoriju.|Tuta kategorija ma {{PLURAL:$1|slědowacu podkategoriju|$1 slědowacej podkategoriji|$1 slědowace podkategorije|$1 slědowacych podkategorijow}} z dohromady $2.}}",
        "category-subcat-count-limited": "Tuta kategorija ma {{PLURAL:$1|slědowacu podkategoriju|slědowacej $1 podkategoriji|slědowace $1 podkategorije|slědowacych $1 podkategorijow}}:",
        "delete-warning-toobig": "Tuta strona ma z wjace hač $1 {{PLURAL:$1|wersiju|wersijomaj|wersijemi|wersijemi}} wulke wobdźěłanske stawizny. Wušmórnjenje móže operacije datoweje banki {{SITENAME}} přetorhnyć; pokročuj z kedźbliwosću.",
        "deleting-backlinks-warning": "'''Warnowanje:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Druhe strony]] wotkazuja k stronje abo strona je druhdźe zapřijata, kotruž chceš zhašeć.",
        "rollback": "Změny cofnyć",
-       "rollback_short": "Cofnyć",
        "rollbacklink": "Cofnyć",
        "rollbacklinkcount": "$1 {{PLURAL:$1|změnu|změnje|změny|změnow}} cofnyć",
        "rollbacklinkcount-morethan": "přez $1 {{PLURAL:$1|změnu|změnje|změny|změnow}} cofnyć",
        "import-logentry-interwiki": "je stronu $1 z druheho wikija přenjesł",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|wersija|wersiji|wersije|wersijow}} z $2 {{PLURAL:$1|importowana|importowanej|importowane|importowane}}",
        "javascripttest": "JavaScriptowy test",
-       "javascripttest-title": "Testy $1 so přewjedu",
        "javascripttest-pagetext-noframework": "Tuta strona je za přewjedźenje javascriptowych testow přewostajena.",
        "javascripttest-pagetext-unknownframework": "Njeznaty wobłuk \"$1\".",
        "javascripttest-pagetext-frameworks": "Prošu wubjer jedyn ze slědowacych testowanskich wobłukow: $1",
        "javascripttest-pagetext-skins": "Wubjer drastu za přewjedźenje testow:",
        "javascripttest-qunit-intro": "Hlej [$1 testowansku dokumentaciju] na mediawiki.org.",
-       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit Test Suite",
        "tooltip-pt-userpage": "Twoja wužiwarska strona",
        "tooltip-pt-anonuserpage": "Wužiwarska strona IP-adresy, z kotrejž tuchwilu dźěłaš",
        "tooltip-pt-mytalk": "Twoja diskusijna strona",
        "watchlisttools-raw": "Lisćinowy format wobdźěłać (import/eksport)",
        "iranian-calendar-m2": "Ordibehešt",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|diskusija]])",
-       "unknown_extension_tag": "Njeznata taflička rozšěrjenja \"$1\"",
        "duplicate-defaultsort": "Warnowanje: Standardny sortěrowonski kluč (DEFAULTSORTKEY) \"$2\" přepisa prjedawšu sortěrowanski kluč \"$1\".",
        "version": "Wersija",
        "version-extensions": "Instalowane rozšěrjenja",
        "specialpages-group-wiki": "Daty a nastroje",
        "specialpages-group-redirects": "Daleposrědkowace specialne strony",
        "specialpages-group-spam": "Spamowe nastroje",
+       "specialpages-group-developer": "Nastroje wuwiwarjow",
        "blankpage": "Prózdna strona",
        "intentionallyblankpage": "Tuta strona je z wotpohladom prózdna.",
        "external_image_whitelist": " #Wostaj tutu linku eksaktnje kaž je<pre>\n#Zapodaj deleka fragmenty regularnych wurazow (jenož tón dźěl mjez //)\n#Tute přirunuja so z URL eksternych wobrazow\n#Přihódne zwobraznja so jako wobrazy, hewak so jenož wotkaz k wobrazej pokaza\n#Z linkami, kotrež so z # započinaja, wobchadźeja kaž komentary\n#To na wulkopisanje njedźiwa\n\n#Zapodaj wšě fragmenty regularnych wurazow nad tutej linku. Wostaj tutu linku eksaktnje kaž je</pre>",
index fec73cb..d42c4a2 100644 (file)
        "filerenameerror": "Nem tudtam átnevezni a(z) „$1” fájlt „$2” névre.",
        "filedeleteerror": "Nem tudtam törölni a(z) „$1” fájlt.",
        "directorycreateerror": "Nem tudtam létrehozni a(z) „$1” könyvtárat.",
+       "directoryreadonlyerror": "A könyvtár ($1) csak olvasható.",
+       "directorynotreadableerror": "A könyvtár ($1) nem olvasható.",
        "filenotfound": "A(z) „$1” fájl nem található.",
        "unexpected": "Váratlan érték: „$1”=„$2”.",
        "formerror": "Hiba: nem tudom elküldeni az űrlapot",
        "viewyourtext": "Megtekintheted és kimásolhatod a '''saját szerkesztéseidet''' az alábbi lapra:",
        "protectedinterface": "Ez a lap a szoftver felületéhez szolgáltat szöveget, és a visszaélések elkerülése miatt le van zárva.",
        "editinginterface": "<strong>Vigyázat:</strong> egy olyan lapot szerkesztesz, ami a MediaWiki szoftver felületéhez tartozik. A lap megváltoztatása hatással lesz a kinézetre, ahogy más szerkesztők látják a lapot.",
+       "translateinterface": "Minden wikire kiterjedő fordítások hozzáadásához vagy szerkesztésére használd a [//translatewiki.net/ translatewiki.net]-et, a MédiaWiki lokalizációs projektjét.",
        "cascadeprotected": "Ez a lap szerkesztés elleni védelemmel lett ellátva, mert a következő {{PLURAL:$1|lapon|lapokon}} be van kapcsolva a „kaszkádolt” védelem:\n$2",
        "namespaceprotected": "Nincs jogosultságod a(z) '''$1''' névtérben található lapok szerkesztésére.",
        "customcssprotected": "Nem szerkesztheted ezt a CSS-lapot, mert egy másik felhasználó személyes beállításait tartalmazza.",
        "history-feed-empty": "A kért oldal nem létezik.\nLehet, hogy törölték a wikiből, vagy átnevezték.\nPróbálkozhatsz a témával kapcsolatos lapok [[Special:Search|keresésével]].",
        "rev-deleted-comment": "(szerkesztési összefoglaló eltávolítva)",
        "rev-deleted-user": "(szerkesztőnév eltávolítva)",
-       "rev-deleted-event": "(bejegyzés eltávolítva)",
+       "rev-deleted-event": "(naplóbejegyzés eltávolítva)",
        "rev-deleted-user-contribs": "[felhasználónév vagy IP-cím eltávolítva – szerkesztés elrejtve a közreműködések közül]",
        "rev-deleted-text-permission": "A lap ezen változatát '''törölték'''.\nTovábbi információkat a [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} törlési naplóban] találhatsz.",
        "rev-deleted-text-unhide": "A lap ezen változatát '''törölték'''.\nTovábbi részleteket a [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} törlési naplóban] találhatsz.\nMivel adminisztrátor vagy, még mindig [$1 megtekintheted a tartalmát], ha szeretnéd.",
        "revdelete-legend": "Korlátozások megadása:",
        "revdelete-hide-text": "Változat szövege",
        "revdelete-hide-image": "A fájl tartalmának elrejtése",
-       "revdelete-hide-name": "Művelet és cél elrejtése",
+       "revdelete-hide-name": "Cél és paraméterek elrejtése",
        "revdelete-hide-comment": "Szerkesztési összefoglaló",
        "revdelete-hide-user": "Szerkesztői név/IP cím",
        "revdelete-hide-restricted": "Adatok elrejtése az adminisztrátorok és mindenki más elől",
        "gender-female": "Nő",
        "prefs-help-gender": "Nem kötelező: a szoftver használja a nemtől függő üzenetek megjelenítéséhez. Az információ mindenki számára látható.",
        "email": "E-mail",
-       "prefs-help-realname": "A valódi nevet nem kötelező megadni, de ha úgy döntesz, hogy megadod, azzal leszel feltüntetve a munkád szerzőjeként.",
+       "prefs-help-realname": "A valódi név nem kötelező.\nHa megadod, akkor leszel feltüntetve a munkád szerzőjeként.",
        "prefs-help-email": "Az e-mail cím megadása nem kötelező, de szükséges új jelszó kéréséhez, ha elfelejtenéd a meglévőt.",
        "prefs-help-email-others": "Úgy is dönthetsz, hogy lehetővé teszed mások számára, hogy kapcsolatba lépjenek veled a felhasználói vagy vitalapodon keresztül, anélkül, hogy fel kellene fedned a személyazonosságodat.",
        "prefs-help-email-required": "Meg kell adnod az e-mail címedet.",
        "uploaderror": "Feltöltési hiba",
        "upload-recreate-warning": "'''Figyelmeztetés: az ilyen nevű fájlt törölték vagy átnevezték.'''\n\nAz oldalhoz tartozó törlési és átnevezési naplóbejegyzések:",
        "uploadtext": "Az alábbi űrlap használatával tölthetsz fel fájlokat.\nA korábban feltöltött képek megtekintéséhez vagy a köztük való kereséshez menj a [[Special:FileList|feltöltött fájlok listájához]], a feltöltések, újrafeltöltések a [[Special:Log/upload|feltöltési naplóban]], a törlések a [[Special:Log/delete|törlési naplóban]] vannak jegyezve.\n\nKépet a következő módon illeszthetsz be egy oldalra: '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Kép.jpg]]</nowiki>''',\n'''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Kép.png|alternatív szöveg]]</nowiki>''' vagy a közvetlen hivatkozáshoz használd a\n'''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fájl.ogg]]</nowiki>''' formát.",
-       "upload-permitted": "Engedélyezett fájltípusok: $1.",
-       "upload-preferred": "Támogatott fájltípusok: $1.",
-       "upload-prohibited": "Tiltott fájltípusok: $1.",
+       "upload-permitted": "Engedélyezett {{PLURAL:$2|fájltípus|fájltípusok}}: $1.",
+       "upload-preferred": "Ajánlott {{PLURAL:$2|fájltípus|fájltípusok}}: $1.",
+       "upload-prohibited": "Tiltott {{PLURAL:$2|fájltípus|fájltípusok}}: $1.",
        "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",
index d1db2de..d54f14d 100644 (file)
                        "Shirayuki"
                ]
        },
-       "tog-underline": "Ӏинкаш белгалде:",
-       "tog-hideminor": "Ð\97Ó\80амига Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÐµÑ\80да Ñ\85Ñ\83вÑ\86аман Ð´Ð°Ð³Ð°Ñ\80ленаÑ\88каÑ\85 ÐºÑ\8aайлаÑ\8fккха",
-       "tog-hidepatrolled": "Ð\9aеÑ\80да Ñ\85Ñ\83вÑ\86аман Ð´Ð°Ð³Ð°Ñ\80ленаÑ\87 Ð´Ó\80анийÑ\81аÑ\8fÑ\8c хувцамаш къайладаккха",
-       "tog-newpageshidepatrolled": "Ð\9aеÑ\80да Ð¾Ð°Ð³Ó\80Ñ\83вна Ð´Ð°Ð³Ð°Ñ\80ленаÑ\87 Ð´Ó\80анийÑ\81аÑ\8fÑ\8c Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÑ\8aайладаккха",
-       "tog-extendwatchlist": "Шераяь теркама дагарле, массадола хувцамаш чулоацаш",
-       "tog-usenewrc": "Ð\9aеÑ\80да Ñ\85Ñ\83вÑ\86ами Ñ\82еÑ\80кама Ð´Ð°Ð³Ð°Ñ\80леи Ñ\85Ñ\83вÑ\86амаÑ\88 Ñ\82оабÑ\8aе (JavaScript)",
-       "tog-numberheadings": "Ð\9aоÑ\80Ñ\82аленаÑ\88Ñ\82 Ð°Ð»Ð°Ð½Ð·Ð° Ñ\82аÑ\8cÑ\80аÑ\85Ñ\8cал Ð´Ðµ",
-       "tog-showtoolbar": "ГӀалатнийcдара юкъе лакхера гӀорсан гартакх хьахьокха (JavaScript)",
-       "tog-editondblclick": "Шозза цлицакацa oагӀув хувца (JavaScript)",
+       "tog-underline": "Хьожадерга |ок|алтакадар:",
+       "tog-hideminor": "Ð¥Ñ\8cаÑ\82|аÑ\8fздаÑ\80а Ñ\87Ñ\83 ÐºÐµÑ\80даÑ\87а Ñ\85Ñ\83вÑ\86амаÑ\88a Ð·|амига Ð´Ð¾Ð»Ð° Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÑ\8aайладаккха",
+       "tog-hidepatrolled": "Ð¥Ñ\8cаÑ\82|аÑ\8fздаÑ\80а Ñ\87Ñ\83 ÐºÐµÑ\80даÑ\87а Ñ\85Ñ\83вÑ\86амаÑ\88a Ð´|анийÑ\81адаÑ\8c Ð´Ð¾Ð»Ð° хувцамаш къайладаккха",
+       "tog-newpageshidepatrolled": "Ð¥Ñ\8cаÑ\82|аÑ\8fздаÑ\80а Ñ\87Ñ\83 ÐºÐµÑ\80даÑ\87а Ñ\85Ñ\83вÑ\86амаÑ\88a Ñ\85Ñ\8cанийÑ\81адаÑ\8c Ð´Ð¾Ð»Ð° Ð¾Ð°Ð³|онаÑ\88 ÐºÑ\8aайлаÑ\8fккха",
+       "tog-extendwatchlist": "Шерадаь теркама хьат|аяздар, массадола хувцамаш чулоацаш дола, алхха т|ехьара даьраш мара а доацаш",
+       "tog-usenewrc": "Ð\9aеÑ\80да Ñ\85Ñ\83вÑ\86амаÑ\88ка Ð° Ñ\85Ñ\8cаÑ\82|аÑ\8fздаÑ\80а Ð·ÐµÐ¼Ð±Ð°ÐºÐºÑ\85аÑ\80га Ð° Ñ\8dÑ\80гадаккÑ\85аÑ\80аÑ\88 Ñ\82оабаде (JavaScript Ñ\8dÑ\88а)",
+       "tog-numberheadings": "Ð\9aеÑ\80Ñ\82аÑ\88каÑ\88Ñ\82а Ð°Ð»Ð°Ð½Ð·Ð° Ñ\82аÑ\8cÑ\80аÑ\85Ñ\8cа Ñ\85оÑ\82Ñ\82а",
+       "tog-showtoolbar": "Г|алатнийcдара г|ирсагартакх хьахьокха (JavaScript)",
+       "tog-editondblclick": "Шозза д|ато|амцa oаг|ув хувца (JavaScript)",
        "tog-editsectiononrightclick": "Декъам хувца кертмугӀа аьтта цлицака я (JavaScript)",
-       "tog-watchcreations": "Аз яь йола оагӀувнаш теркама дагарле йолач чуяьккха",
-       "tog-watchdefault": "Аз хийца йола оагӀувнаш теркама дагарле йолач чуяьккха",
-       "tog-watchmoves": "Аз цӀи хийца йола оагӀувнаш теркама дагарле йолач чуяьккха",
-       "tog-watchdeletion": "Аз дӀаяьккха йола оагӀувнаш теркама дагарле йолач чуяьккха",
-       "tog-minordefault": "Теркамза хувцамаш лоархӀамза белгалде",
+       "tog-watchcreations": "Tеркама хьат|аяздар т|а аз яь оаг|онаши чуяьккха паьлаши т|атоха",
+       "tog-watchdefault": "Tеркама хьат|аяздар т|а аз хийца оаг|онаши паьлаша кустяздараши т|атоха",
+       "tog-watchmoves": "Tеркама хьат|аяздар т|а аз ц|ихийца оагӀонаши паьлаши т|атоха",
+       "tog-watchdeletion": "Tеркама хьат|аяздар т|а аз д|аяьккха оагӀонаши паьлаши т|атоха",
+       "tog-minordefault": "Теркамза хувцамашта лоархӀамза мо белгало хотта",
        "tog-previewontop": "ГӀалатнийсдара кора хьалхе бӀаргтассам оттае",
-       "tog-previewonfirst": "ГӀалатнийсдаре дехьавоалаш/йоалаш бӀаргтассам хьахьокха",
-       "tog-enotifwatchlistpages": "ОагӀувний хувцамахи теркама дагарленахи лаьца, д-хоамнец хоам бе",
-       "tog-enotifusertalkpages": "Са дувцама оагӀув тӀа хувцамаш хилача, д-хоамнец хоам бе",
-       "tog-enotifminoredits": "Геттара зӀамига хувцамаш хилача, д-хоамнец хоам бе",
-       "tog-enotifrevealaddr": "ЗӀы хоамаш тӀа са хоамни моттиг хьахьокха",
-       "tog-shownumberswatching": "Ший Ñ\82еÑ\80кама Ð´Ð°Ð³Ð°Ñ\80ленгаÑ\85 Ð¾Ð°Ð³Ó\80Ñ\83в Ñ\87Ñ\83лаÑ\8cÑ\86а Ð±Ð¾Ð»Ð° Ð´Ð°ÐºÑ\8aалаÑ\8cÑ\86аÑ\80Ñ\85ой Ñ\82аÑ\8cÑ\80аÑ\85 Ñ\85Ñ\8cаÑ\85Ñ\8cокÑ\85а",
+       "tog-previewonfirst": "ГӀалатнийсдаре дехьавоалаш/йоалаш бӀаргтассам гойта",
+       "tog-enotifwatchlistpages": "Tеркама хьат|аяздар чура оаг|онаши паьлаши хувцамаех лаьца д-хоамне т|а дайта хьа",
+       "tog-enotifusertalkpages": "Са дувцама оаг|он т|а хувцамаш хилча, д-хоамнец хьахоам бе",
+       "tog-enotifminoredits": "Геттара з|амига хувцамаш хилча а, д-хоамнец хьахоам бе",
+       "tog-enotifrevealaddr": "З|ы хоамаш т|а са д-хоамни ц|ей-меттиг гойта",
+       "tog-shownumberswatching": "Шоай Ñ\82еÑ\80кама Ñ\85Ñ\8cаÑ\82|аÑ\8fздаÑ\80 Ñ\87Ñ\83 Ð¾Ð°Ð³|Ñ\83в Ñ\87Ñ\83Ñ\8fÑ\8cккÑ\85а Ð´Ð¾Ð°ÐºÑ\8cоÑ\88Ñ\85оÑ\88а Ñ\82аÑ\8cÑ\80аÑ\85Ñ\8c Ð³Ð¾Ð¹Ñ\82а",
        "tog-oldsig": "Дола кулгайоазув:",
-       "tog-fancysig": "Ший кулга яздара массахоамбаккхам (ший лоӀаме Ӏинка йоацаш)",
-       "tog-uselivepreview": "Сиха бӀарахьажар (JavaScript) (Экспериментально)",
-       "tog-forceeditsummary": "Хоам бе, хувцамий лоацам белгал даь деце",
-       "tog-watchlisthideown": "Са Ñ\85Ñ\83вÑ\86амаÑ\88 Ñ\82еÑ\80кама Ð´Ð°Ð³Ð°Ñ\80Ñ\87еÑ\80а ÐºÑ\8aайладаккха",
-       "tog-watchlisthidebots": "Ð\91Ó\80аÑ\82ий Ñ\85Ñ\83вÑ\86амаÑ\88 Ñ\82еÑ\80кама Ð´Ð°Ð³Ð°Ñ\80Ñ\87еÑ\80а ÐºÑ\8aайладаккха",
-       "tog-watchlisthideminor": "Са зӀамига хувцамаш теркама дагарчера къайладаккха",
-       "tog-watchlisthideliu": "ЧÑ\83баÑ\8cнна Ð´Ð°ÐºÑ\8aалаÑ\8cÑ\86аÑ\80Ñ\85ой Ñ\85Ñ\83вÑ\86амаÑ\88 Ñ\82еÑ\80кама Ð´Ð°Ð³aÑ\80Ñ\87еÑ\87а ÐºÑ\8aайлаÑ\8fÑ\8cккха",
-       "tog-watchlisthideanons": "ЦÓ\80и Ð¹Ð¾Ð°Ñ\86а Ð´Ð°ÐºÑ\8aалаÑ\8cÑ\86аÑ\80Ñ\85ой Ñ\85Ñ\83вÑ\86амаÑ\88 Ñ\82еÑ\80кама Ð´Ð°Ð³Ñ\80Ñ\87еÑ\87а ÐºÑ\8aайлаÑ\8fÑ\8cккха",
-       "tog-watchlisthidepatrolled": "Теркама дагарчера дӀанийсъя хувцамаш къайлаяьккха",
-       "tog-ccmeonemails": "Аз дакъалаьцархошоа дахта каьхаташ са д-хоамни тӀа хьатӀадайта",
-       "tog-diffonly": "Ð\94иÑ\81Ñ\82а ÐºIал Ð¹Ð¾Ð°Ð»Ð°Ð¶ Ð¹Ð¾Ð»Ð° Ð¾Ð°Ð³Ó\80Ñ\83вна Ð´Ð°ÐºÑ\8aа Ð¼Ð° Ñ\85Ñ\8cокÑ\85а",
-       "tog-showhiddencats": "Къайла катагаш хьахьокха",
-       "underline-always": "Ð\9cаÑ\81Ñ\81аза",
-       "underline-never": "ЦӀаккха",
+       "tog-fancysig": "Ший кулгаяздара массахоамбаккхар (ший ло|ама хьожадерг йоацаш)",
+       "tog-uselivepreview": "Сиха б|арахьажар (JavaScript)",
+       "tog-forceeditsummary": "Хьахоам бе, наггахь санна хувцама кустяздара меттига хьалайиза еце",
+       "tog-watchlisthideown": "Са Ñ\82еÑ\80кама xÑ\8cаÑ\82|аÑ\8fздаÑ\80а Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÑ\8aайладаха",
+       "tog-watchlisthidebots": "ТеÑ\80кама xÑ\8cаÑ\82|аÑ\8fздаÑ\80 Ñ\87Ñ\83Ñ\80а Ð±|аÑ\82а Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÑ\8aайладаха",
+       "tog-watchlisthideminor": "Са теркама xьат|аяздара з|амига хувцамаш къайладаха",
+       "tog-watchlisthideliu": "ТеÑ\80кама xÑ\8cаÑ\82|аÑ\8fздаÑ\80 Ñ\87Ñ\83Ñ\80а Ñ\85Ñ\8cабайза Ð´Ð¾Ð°ÐºÑ\8aоÑ\88Ñ\85оÑ\88а Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÑ\8aайладаха",
+       "tog-watchlisthideanons": "ТеÑ\80кама xÑ\8cаÑ\82|аÑ\8fздаÑ\80 Ñ\87Ñ\83Ñ\80а Ñ\86|ийоаÑ\86аÑ\87а Ð´Ð¾Ð°ÐºÑ\8aоÑ\88Ñ\85оÑ\88а Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÑ\8aайладаха",
+       "tog-watchlisthidepatrolled": "Теркама xьат|аяздар чура д|анийсдаь хувцамаш къайладаха",
+       "tog-ccmeonemails": "Аз д|ахийташ дола доакъошхошоа каьхаташ са д-хоамни т|а дайта хьа",
+       "tog-diffonly": "Шин Ð½Ð¸Ð¹Ñ\81Ñ\85Ñ\8cале Ð²|аÑ\88инийÑ\81даÑ\80а Ðº|ала Ð±Ð¾Ð»Ð° Ð¾Ð°Ð³|он Ñ\87Ñ\83лоаÑ\86ам Ð¼Ð° Ð³Ð¾Ð¹Ñ\82а",
+       "tog-showhiddencats": "Къайла катагаш гойта",
+       "underline-always": "Ð\94аиман",
+       "underline-never": "Ц|аккха",
        "underline-default": "МазабӀарглокхарий оттамаш хайрамбе",
-       "editfont-style": "ТIеÑ\80акÑ\83Ñ\86 Ñ\85Ñ\83вÑ\86а",
-       "sunday": "КӀиранди",
+       "editfont-style": "Ð\9dийÑ\81даÑ\80а Ð¼ÐµÑ\82Ñ\82ига Ñ\87Ñ\83 Ð¹Ð¾Ð»Ð° Ð·Ð°Ñ\80ба Ð±|аÑ\80маÑ\82:",
+       "sunday": "К|иранди",
        "monday": "Оршот",
        "tuesday": "Шинара",
        "wednesday": "Кхаьра",
        "thursday": "Ера",
        "friday": "ПӀаьраска",
        "saturday": "Шоатта",
-       "sun": "КӀи",
+       "sun": "К|и",
        "mon": "Ор",
        "tue": "Ши",
        "wed": "Кха",
        "thu": "Ер",
-       "fri": "ПӀаь",
+       "fri": "П|аь",
        "sat": "Шоа",
        "january": "Нажгамсхой",
        "february": "Саькур",
-       "march": "Мутхьол",
+       "march": "Ð\9cÑ\83Ñ\82Ñ\82Ñ\85Ñ\8cол",
        "april": "Тушоли",
        "may_long": "Бекарг",
        "june": "Аьтинг",
-       "july": "КӀимарс",
+       "july": "К|имарс",
        "august": "Мангал",
        "september": "Моажол",
        "october": "Тов",
        "december": "Чантар",
        "january-gen": "Нажгамсхой бетт",
        "february-gen": "Саькур бетт",
-       "march-gen": "Мутхьол бетт",
+       "march-gen": "Ð\9cÑ\83Ñ\82Ñ\82Ñ\85Ñ\8cол Ð±ÐµÑ\82Ñ\82",
        "april-gen": "Тушоли бетт",
        "may-gen": "Бекарг бетт",
        "june-gen": "Аьтинг бетт",
-       "july-gen": "КӀимарс бетт",
+       "july-gen": "К|имарс бетт",
        "august-gen": "Мангал бетт",
        "september-gen": "Моажол бетт",
        "october-gen": "Тов бетт",
        "december-gen": "Чантар бетт",
        "jan": "Нажг.",
        "feb": "Саьк.",
-       "mar": "Ð\9cÑ\83Ñ\82Ñ\85Ñ\8c.",
+       "mar": "Ð\9cÑ\83Ñ\82Ñ\82.",
        "apr": "Tуш.",
        "may": "Бек.",
        "jun": "Аьт.",
-       "jul": "КӀим.",
+       "jul": "К|им.",
        "aug": "Манг.",
        "sep": "Моаж.",
        "oct": "Тов.",
        "nov": "Лайч.",
        "dec": "Чант.",
        "pagecategories": "{{PLURAL:$1|1=Катаг|Катагаш}}",
-       "category_header": "\"$1\" Катагачар оагӀувнаш",
+       "category_header": "\"$1\" Катага чура оаг|онаш",
        "subcategories": "Чуракатагаш",
-       "category-media-header": "\"$1\" Катагачар паьлаш",
-       "category-empty": "''Укх катагчоа цхьаккха оагӀувнаш е паьлаш яц.''",
+       "category-media-header": "\"$1\" Катага чура паьлаш",
+       "category-empty": "''Укх катага чу цхьаккха оаг|онаш е паьлаш яц.''",
        "hidden-categories": "{{PLURAL:$1|1=Къайла катаг|Къайла катагаш}}",
        "hidden-category-category": "Къайла катагаш",
        "category-subcat-count": "{{PLURAL:$2|Йола катаг тӀехьара бухкатаг чулоаца.|{{PLURAL:$1|1=$1 бухкатаг хьахьекха я|$1 бухкатагаш хьахьекха я}} $2 йолачара.}}",
        "category-article-count-limited": "Укх катагач {{PLURAL:$1|1=$1 оагӀув|$1 оагӀувнаш}}.",
        "category-file-count": "{{PLURAL:$2|Укх цатего ца паьла мара чулоацац.|{{PLURAL:$1|1=$1 паьла хьахьекха я|$1 паьлаш хьахьекха я}} укх цатегий $2 долачаьрахь.}}",
        "category-file-count-limited": "Укх катагач {{PLURAL:$1|1=$1 паьл|$1 паьлаш}}.",
-       "listingcontinuesabbrev": "дӀахо",
-       "index-category": "ДIахьожаман оагӀувнаш",
-       "noindex-category": "ДIахьожаманза оагӀувнаш",
-       "broken-file-category": "Ð\91олÑ\85беÑ\88 Ð¹Ð¾Ð°Ñ\86а Ð¿Ð°Ñ\8cла Ó\80инкаÑ\88Ñ\86а Ð¾Ð°Ð³Ó\80Ñ\83внаш",
+       "listingcontinuesabbrev": "д|ахо",
+       "index-category": "Д|ахьожама оаг|онаш",
+       "noindex-category": "Д|ахьожаманза оаг|онаш",
+       "broken-file-category": "Ð\9fаÑ\8cла Ñ\85Ñ\8cожадеÑ\80гаÑ\88Ñ\86а Ð±Ð¾Ð»Ñ\85беÑ\88 Ð¹Ð¾Ð°Ñ\86а Ð¾Ð°Ð³|онаш",
        "about": "Лоацам",
        "article": "Йоазув",
-       "newwindow": "(керда кора)",
-       "cancel": "ЮÑ\85авалa/Ñ\8fлa",
-       "moredotdotdot": "ДӀахо",
+       "newwindow": "(кердача коре)",
+       "cancel": "ЭÑ\88аÑ\86",
+       "moredotdotdot": "Д|ахо",
        "mypage": "Са оагӀув",
-       "mytalk": "Са Ð´Ñ\83вÑ\86ама Ð¾Ð°Ð³Ó\80Ñ\83в",
-       "anontalk": "УкÑ\85 IP-моттига дувцам",
-       "navigation": "Ð\9dикÑ\8aтохкарг",
+       "mytalk": "Ð\94Ñ\83вÑ\86ам",
+       "anontalk": "УкÑ\85 IP-меттига дувцам",
+       "navigation": "Ð\9dаÑ\8cкÑ\8aатохкарг",
        "and": "&#32;кхы",
        "qbfind": "Лахар",
-       "qbbrowse": "БӀаргтасса",
+       "qbbrowse": "Б|аргтасса",
        "qbedit": "Хувца",
-       "qbpageoptions": "ОагӀува оттамаш",
+       "qbpageoptions": "Оаг|он оттамаш",
        "qbmyoptions": "Са оттамаш",
-       "faq": "Ð\9aаÑ\81Ñ\82-каÑ\81Ñ\82а Ñ\85аÑ\82Ñ\82аÑ\80аÑ\88",
-       "faqpage": "Project:Ð\9aаÑ\81Ñ\82-каÑ\81Ñ\82а Ñ\85аÑ\82Ñ\82аÑ\80аÑ\88",
-       "actions": "Ð\94Ñ\83лаÑ\80Ñ\85Iамаш",
-       "namespaces": "ЦӀерий аренаш",
-       "variants": "Ð\94оÑ\88Ñ\82айпаÑ\80ленаш",
-       "errorpagetitle": "ГӀалат",
-       "returnto": "$1 оагӀув тӀа юхавалар/ялар",
+       "faq": "Ð\9aТХ",
+       "faqpage": "Project:Ð\9aТХ",
+       "actions": "Ð¥|амдаÑ\80аш",
+       "namespaces": "Ц|ерий аренаш",
+       "variants": "Ð\94еÑ\88кепаш",
+       "errorpagetitle": "Г|алат",
+       "returnto": "цу $1 оаг|он т|а юхаг|о",
        "tagline": "Кечал укхазара я {{SITENAME}}",
        "help": "Куцтохкам",
        "search": "Лахаp",
-       "searchbutton": "Ð¥Ñ\8cалаÑ\85а",
-       "go": "Дехьа гӀо",
-       "searcharticle": "Дехьа гӀо",
-       "history": "искар",
-       "history_short": "Ð\98Ñ\81кар",
+       "searchbutton": "Ð\9bаÑ\85аÑ\80",
+       "go": "Дехьа г|о",
+       "searcharticle": "Дехьа г|о",
+       "history": "тархьар",
+       "history_short": "ТаÑ\80Ñ\85Ñ\8cар",
        "updatedmarker": "Со ханача денца хувцамаш хиннaд",
-       "printableversion": "Ð\9aаÑ\8cÑ\85аÑ\82заÑ\80бане Ð´Ð¾Ñ\80жам",
-       "permalink": "Даим латта Ӏинк",
-       "print": "Ð\9aаÑ\8cÑ\85аÑ\82 Ð°Ñ\80адаккÑ\85а",
-       "view": "БӀаргтассам",
+       "printableversion": "Ð\9aепаÑ\82оÑ\85аÑ\80а Ð½Ð¸Ð¹Ñ\81Ñ\85Ñ\8cал",
+       "permalink": "Даиман латташ йола хьожадерг",
+       "print": "Ð\9aепаÑ\82оÑ\85аÑ\80",
+       "view": "Б|аргтассам",
        "edit": "Хувца",
        "create": "Хьаде",
-       "editthispage": "Ер оагӀув хувца",
-       "create-this-page": "Ep oагӀув хьае",
-       "delete": "ДӀадаккха",
-       "deletethispage": "Ер оагӀув дӀаяьккха",
+       "editthispage": "Ер оаг|ув хувца",
+       "create-this-page": "Ep oаг|ув хьае",
+       "delete": "Д|аяккха",
+       "deletethispage": "Ер оаг|ув д|аяьккха",
        "undelete_short": "Меттаоттае {{PLURAL:$1|1=хувцам|$1 хувцамаш}}",
        "viewdeleted_short": "БӀаргтасса {{PLURAL:$1|1=дӀадаьккха хувцам тӀа|$1 дӀадаьккха хувцамаш тӀа}}",
        "protect": "Лораде",
        "protect_change": "хувца",
-       "protectthispage": "Лорае ер оагӀув",
+       "protectthispage": "Лорае ер оаг|ув",
        "unprotect": "Лорам хувца",
        "unprotectthispage": "Лорам хувца",
        "newpage": "Керда оагӀув",
-       "talkpage": "Укх оагӀув тӀа дувцам бе",
+       "talkpage": "Укх оаг|он т|а дувцам бе",
        "talkpagelinktext": "дувцам",
-       "specialpage": "ГӀулакха оагӀув",
-       "personaltools": "Са гӀорсаш",
-       "articlepage": "Йоазув тӀа бӀаргтасса",
+       "specialpage": "Г|улакхадара оаг|ув",
+       "personaltools": "Са грсаш",
+       "articlepage": "Йоазон т|а б|аргтасса",
        "talk": "Дувцам",
        "views": "БӀаргтассамаш",
        "toolbox": "ГӀирсаш",
-       "userpage": "Ð\94акÑ\8aалаÑ\8cÑ\86аÑ\87Ñ\83нна Ð¾Ð°Ð³Ó\80Ñ\83ве Ð±Ó\80аргтасса",
+       "userpage": "Ð\94оакÑ\8aоÑ\88Ñ\85оÑ\87Ñ\83н Ð¾Ð°Ð³|он Ñ\82|а Ð±|аргтасса",
        "projectpage": "Хьахьоадайтама оагӀуве бӀаргтасса",
        "imagepage": "Паьла оагӀув тӀа бӀаргтасса",
        "mediawikipage": "Xоаман оагӀув хьахьокха",
        "viewhelppage": "Куцтохкам беха",
        "categorypage": "Катага оагӀув тӀа бӀаргтасса",
        "viewtalkpage": "Дувцамага бӀаргтасса",
-       "otherlanguages": "Ð\9aÑ\85Ñ\8bÑ\87а Ð¼ÐµÑ\82Ñ\82ал",
+       "otherlanguages": "Ð\9aÑ\85Ñ\8bÑ\87а Ð¼ÐµÑ\82Ñ\82аеÑ\85",
        "redirectedfrom": "($1 тӀера хьадейта да)",
        "redirectpagesub": "ДӀа-хьа дайта оагӀув",
        "lastmodifiedat": "Укх оагӀув тӀехьара  хувцам: $2, $1.",
index 13dc3b0..0696ba7 100644 (file)
        "uploaderror": "Errore nel caricamento",
        "upload-recreate-warning": "'Attenzione'': un file con questo nome è stato cancellato o spostato.'''\nIl log delle cancellazioni e degli spostamenti di questa pagina viene qui riportato per comodità:",
        "uploadtext": "Usare il modulo sottostante per caricare nuovi file. Per visualizzare o ricercare i file già caricati, consultare il [[Special:FileList|log dei file caricati]]. Caricamenti di file e di nuove versioni di file sono registrati nel [[Special:Log/upload|log degli upload]], le cancellazioni nell'[[Special:Log/delete|apposito]].\n\nPer inserire un file all'interno di una pagina, fare un collegamento di questo tipo:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' per usare la versione completa del file\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|testo alternativo]]</nowiki></code>''' per usare una versione larga 200 pixel inserita in un box, allineata a sinistra e con 'testo alternativo' come didascalia\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' per generare un collegamento diretto al file senza visualizzarlo",
-       "upload-permitted": "Tipi di file consentiti: $1.",
-       "upload-preferred": "Tipi di file consigliati: $1.",
-       "upload-prohibited": "Tipi di file non consentiti: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tipo di file consentito|Tipi di file consentiti}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Tipo di file consigliato|Tipi di file consigliati}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Tipo di file non consentito|Tipi di file non consentiti}}: $1.",
        "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",
index b290c1d..cb52a24 100644 (file)
@@ -62,7 +62,9 @@
                        "Mfuji",
                        "Takot",
                        "SkyDaisy9",
-                       "Los688"
+                       "Los688",
+                       "朝彦",
+                       "Otokoume"
                ]
        },
        "tog-underline": "リンクの下線:",
        "prefs-personal": "利用者情報",
        "prefs-rc": "最近の更新",
        "prefs-watchlist": "ウォッチリスト",
+       "prefs-editwatchlist": "ウォッチリストの編集",
        "prefs-watchlist-days": "ウォッチリストの表示日数:",
        "prefs-watchlist-days-max": "最大 $1 {{PLURAL:$1|日間}}",
        "prefs-watchlist-edits": "ウォッチリストの展開時の最大表示件数:",
        "action-viewmywatchlist": "自身のウォッチリストの閲覧",
        "action-viewmyprivateinfo": "自分の非公開情報の閲覧",
        "action-editmyprivateinfo": "自分の非公開情報の編集",
+       "action-editcontentmodel": "ページのコンテンツモデルを編集",
        "nchanges": "$1 {{PLURAL:$1|回の変更}}",
        "enhancedrc-since-last-visit": "最終閲覧以降 $1 {{PLURAL:$1|件}}",
        "enhancedrc-history": "履歴",
        "thumbnail-temp-create": "一時的なサムネイルファイルを作成できません",
        "thumbnail-dest-create": "サムネイルを保存先に保存できません",
        "thumbnail_invalid_params": "サムネイル引数が無効です",
+       "thumbnail_toobigimagearea": "$1よりも大きな寸法のファイル",
        "thumbnail_dest_directory": "出力ディレクトリを作成できません",
        "thumbnail_image-type": "対応していない画像形式です",
        "thumbnail_gd-library": "GDライブラリの構成が不完全です: 関数$1が不足",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|トーク]])",
        "duplicate-defaultsort": "<strong>警告:</strong> 既定のソートキー「$2」が、その前に書かれている既定のソートキー「$1」を上書きしています。",
        "duplicate-displaytitle": "<strong>警告:</strong> DISPLAYTITLE「$2」が、その前に書かれているDISPLAYTITLE「$1」を上書きしています。",
+       "invalid-indicator-name": "<strong>エラー:</strong> ページ・ステータス・インディケーターの <code>name</code> 属性は空であってはいけません。",
        "version": "バージョン情報",
        "version-extensions": "インストール済み拡張機能",
        "version-skins": "インストール済み外装",
index 7aac592..8c8088e 100644 (file)
        "yourtext": "Мәтініңіз",
        "storedversion": "Сақталған нұсқасы",
        "nonunicodebrowser": "<strong>Ескерту: Шолғышыңыз Юникод белгілеуіне үйлесімді емес</strong>\nЖұмыс істеуге ықтималдық беру үшін төмендегі кірістіру орнында ASCII емес таңбалар оналтылық кодымен көрсетіледі.",
-       "editingold": "<strong>Ескерту: Осы беттің бұрыңғы нұсқасын өңдеудесіз.</strong>\nБұны сақтасаңыз осы нұсқадан кейінгі барлық өзгерістер жоғалады.",
+       "editingold": "<strong>Ескерту: Осы беттің бұрынғы нұсқасын өңдеудесіз.</strong> Бұны сақтасаңыз осы нұсқадан кейінгі барлық өзгерістер жоғалады.",
        "yourdiff": "Айырмашылықтар",
        "copyrightwarning": "{{SITENAME}} жобасына қосқан барлық үлестеріңіз $2 (көбірек ақпарат үшін: $1) аясында жарияланатынын ескеріңіз.\nЕгер еңбегіңіздің еркін өңделуін және ақысыз көпшілікке таралуын қаламасаңыз мұнда жарияламаңыз<br />\nТағы да бұл мәліметті өзіңіз жазғаныңызға не қоғам қазынасынан немесе сондай ашық қорлардан көшірілгеніне бізге уәде бересіз.\n<strong>Авторлық құқықпен қорғалған мәліметті рұқсатсыз жарияламаңыз!</strong>",
        "copyrightwarning2": "{{SITENAME}} жобасына қосқан барлық үлестеріңізді басқа үлескерлер өңдеуге, өзгертуге немесе аластауы мүмкін екенін ескеріңіз.\nЕгер еңбегіңіздің еркін өңделуін қаламасаңыз осында жарияламаңыз.<br />\nТағы да бұл мәліметті өзіңіз жазғаныңызға не қоғам қазынасынан немесе сондай ашық қорлардан көшірілгеніне бізге уәде бересіз. (көбірек ақпарат үшін $1 құжатын қараңыз).\n<strong>Авторлық құқықпен қорғалған мәліметті рұқсатсыз жарияламаңыз!",
        "undelete-fieldset-title": "Нұсқаларды қалпына келтіру",
        "undeleteextrahelp": "Толық бет тарихын қалпына келтіру үшін барлық құсбелгі көздерді босатып <strong><em>{{int:undeletebtn}}</em></strong> батырмасын нұқыңыз.\nБөлектеумен қалпына келтіруді орындау үшін қалпына келтіру керек түзетулеріне сәйкес көздерге құсбелгімен белгілеп <strong><em>{{int:undeletebtn}}</em></strong> батырмасын басыңыз.",
        "undeleterevisions": "$1 түзету мұрағатталды",
-       "undeletehistory": "Ð\95геÑ\80 Ð±ÐµÑ\82Ñ\82Ñ\96 Ò\9bалпÑ\8bна ÐºÐµÐ»Ñ\82Ñ\96Ñ\80Ñ\81еңÑ\96з Ñ\82аÑ\80иÑ\85Ñ\8bна Ð±Ð°Ñ\80лÑ\8bÒ\9b Ñ\82үзеÑ\82Ñ\83леÑ\80 Ð´Ðµ Ò\9bалпÑ\8bна ÐºÐµÐ»Ñ\82Ñ\96Ñ\80Ñ\96ледÑ\96. \nÐ\95геÑ\80 Ð¶Ð¾Ñ\8eдан Ñ\81оң Ð´Ó\99л Ñ\81олай Ð°Ñ\82аÑ\83Ñ\8bмен Ð¶Ð°Ò£Ð° Ð±ÐµÑ\82 Ð±Ð°Ñ\81Ñ\82алÑ\81а Ò\9bалпÑ\8bна ÐºÐµÐ»Ñ\82Ñ\96Ñ\80Ñ\96лген Ñ\82үзеÑ\82Ñ\83леÑ\80 Ð±Ò±Ñ\80Ñ\8bÒ£ғы өңделу тарихында көрсетіледі.",
+       "undeletehistory": "Ð\95геÑ\80 Ð±ÐµÑ\82Ñ\82Ñ\96 Ò\9bалпÑ\8bна ÐºÐµÐ»Ñ\82Ñ\96Ñ\80Ñ\81еңÑ\96з Ñ\82аÑ\80иÑ\85Ñ\8bндаÒ\93Ñ\8b Ð±Ð°Ñ\80лÑ\8bÒ\9b Ñ\82үзеÑ\82Ñ\83леÑ\80 Ð´Ðµ Ò\9bалпÑ\8bна ÐºÐµÐ»Ñ\82Ñ\96Ñ\80Ñ\96ледÑ\96. Ð\95геÑ\80 Ð¶Ð¾Ñ\8eдан Ñ\81оң Ð´Ó\99л Ñ\81олай Ð°Ñ\82аÑ\83Ñ\8bмен Ð¶Ð°Ò£Ð° Ð±ÐµÑ\82 Ð±Ð°Ñ\81Ñ\82алÑ\81а Ò\9bалпÑ\8bна ÐºÐµÐ»Ñ\82Ñ\96Ñ\80Ñ\96лген Ñ\82үзеÑ\82Ñ\83леÑ\80 Ð±Ò±Ñ\80Ñ\8bнғы өңделу тарихында көрсетіледі.",
        "undeleterevdel": "Егер бұл үстіңгі бетте аяқталса, не файл түзетуі жарым-жартылай жойылған болса, жою болдырмауы орындалмайды.\nОсындай жағдайларда, ең жаңа жойылған түзетуін алып тастауыңыз не жасыруын болдырмауыңыз жөн.",
        "undeletehistorynoadmin": "Бұл бет жойылған.\nЖою себебі алдындағы өңдеген қатысушылар егжей-тегжейлерімен бірге төмендегі қысқаша мазмұндамасында көрсетілген.\nМына жойылған түзетулерін көкейкесті мәтіні тек әкімшілерге жетімді.",
        "undelete-revision": "$4,  $5  кезіндегі $3 жойған $1 дегеннің жойылған түзетуі:",
        "databasenotlocked": "Дерекқор құлыпталған жоқ.",
        "move-page": "«$1» дегенді жылжыту",
        "move-page-legend": "Бетті жылжыту",
-       "movepagetext": "Бетті бүкіл тарихымен қоса жаңа атауға жылжытқалы жатырсыз.\nБеттің бұрыңғы атауы жаңа бетке айдағыш сілтеме ретінде қалады.\nҚаласаңыз, бұрыңғы атауды мегзейтін сілтемелердің автоматты түрде жаңартылуын таңдай аласыз. Бұны таңдамаған жағдайда, [[Special:DoubleRedirects|екі мәрте айдағыш]] не [[Special:BrokenRedirects|сынық айдағыш]] сілтемелер қалып қоймауына көз жеткізіңіз.\nЖылжытудан кейін әр сілтеме өзіне тиісті бетке мегзейтініне жауапты боласыз.\n\nЕгер жылжытайын деп жатқан жаңа атау басқа бетке әлдеқашан берілген болса, жылжыту <strong>орындалмайды</strong>. Бұл шара әлдеқашан бар беттің қайта жазылуынан сақтайды. Алайда, егер бет —   бос бет, не өткен тарихы жоқ [[Special:ListRedirects|айдағыш бет]] болса, жылжыту орындалады. Бұл жаңылыс жылжытылған бетті бұрыңғы атауына қайтаруды мүмкін ету үшін жасалған.\n\n\n</strong>Ескерту!</strong>\nБұл көп қаралатын бет үшін қатаң және күтілмеген өзгеріс болуы мүмкін;\nілгері басудан бұрын әрекетіңіздің салдарын есепке алуыңызды сұраймыз.",
-       "movepagetext-noredirectfixer": "Бетті бүкіл тарихымен қоса жаңа атауға жылжытқалы жатырсыз.\nБеттің бұрыңғы атауы жаңа бетке айдағыш сілтеме ретінде қалады.\n[[Special:DoubleRedirects|Екі мәрте айдағыш]] не [[Special:BrokenRedirects|сынық айдағыш]] сілтемелер қалып қоймауына көз жеткізіңіз.\nЖылжытудан кейін әр сілтеме өзіне тиісті бетке мегзейтініне жауапты боласыз.\n\nЕгер жылжытайын деп жатқан жаңа атау басқа бетке әлдеқашан берілген болса, жылжыту '''орындалмайды'''. Бұл шара әлдеқашан бар беттің қайта жазылуынан сақтайды. Алайда, егер бет —   бос бет, не өткен тарихы жоқ [[Special:ListRedirects|айдағыш бет]] болса, жылжыту орындалады. Бұл жаңылыс жылжытылған бетті бұрыңғы атауына қайтаруды мүмкін ету үшін жасалған.\n\n\n'''Ескерту!'''\nБұл көп қаралатын бетке тиісті өзгеріс болуы мүмкін;\nілгері басудан бұрын әрекетіңіздің салдарын есепке алуыңызды сұраймыз.",
+       "movepagetext": "Бетті бүкіл тарихымен қоса жаңа атауға жылжытқалы жатырсыз. Беттің бұрынғы атауы жаңа бетке айдағыш сілтеме ретінде қалады. Қаласаңыз, бұрынғы атауды мегзейтін сілтемелердің автоматты түрде жаңартылуын таңдай аласыз. Бұны таңдамаған жағдайда, [[Special:DoubleRedirects|екі мәрте айдағыш]] не [[Special:BrokenRedirects|сынық айдағыш]] сілтемелер қалып қоймауына көз жеткізіңіз. Жылжытудан кейін әр сілтеме өзіне тиісті бетке мегзейтініне жауапты боласыз. Егер жылжытайын деп жатқан жаңа атау басқа бетке әлдеқашан берілген болса, жылжыту <strong>орындалмайды</strong>. Бұл шара әлдеқашан бар беттің қайта жазылуынан сақтайды. Алайда, егер бет - бос бет, не өткен тарихы жоқ [[Special:ListRedirects|айдағыш бет]] болса, жылжыту орындалады. Бұл жаңылыс жылжытылған бетті бұрынғы атауына қайтаруды мүмкін ету үшін жасалған. </strong>Ескерту!</strong> Бұл көп қаралатын бет үшін қатаң және күтпеген өзгеріс болуы мүмкін; ілгері басудан бұрын әрекетіңіздің салдарын есепке алуыңызды сұраймыз.",
+       "movepagetext-noredirectfixer": "Бетті бүкіл тарихымен қоса жаңа атауға жылжытқалы жатырсыз. Беттің бұрынғы атауы жаңа бетке айдағыш сілтеме ретінде қалады. [[Special:DoubleRedirects|Екі мәрте айдағыш]] не [[Special:BrokenRedirects|сынық айдағыш]] сілтемелер қалып қоймауына көз жеткізіңіз. Жылжытудан кейін әр сілтеме өзіне тиісті бетке мегзейтініне жауапты боласыз. Егер жылжытайын деп жатқан жаңа атау басқа бетке әлдеқашан берілген болса, жылжыту \"'орындалмайды\"'. Бұл шара әлдеқашаннан бар, беттің қайта жазылуынан сақтайды. Алайда, егер бет - бос бет, не өткен тарихы жоқ [[Special:ListRedirects|айдағыш бет]] болса, жылжыту орындалады. Бұл жаңылыс жылжытылған бетті бұрынғы атауына қайтаруды мүмкіндік беру үшін жасалған. \"'Ескерту!\"' Бұл көп қаралатын бетке тиісті өзгеріс болуы мүмкін; ілгері басудан бұрын әрекетіңіздің салдарын есепке алуыңызды сұраймыз.",
        "movepagetalktext": "Келесі жағдай орын алса, қатысты талқылау беті '''жылжытылмайды''':\n*жаңа атаумен аталатын беттің талқылау беті әлдеқашан бар болған кезде (бұл жағдайда талқылауын қолмен көшіруге болады, бірақ түйіндемесіне қай беттен көшірілгендігін міндетті түрде жазыңыз)\n*төмендегі қорапшадан құсбелгі алынып тасталғанда.\n\nАл мақаланың атауын өзгертем деп мағлұматын қолмен көшіруге болмайды, себебі беттің түзету тарихын өшіреді.",
        "movearticle": "Бетті жылжыту:",
        "moveuserpage-warning": "<strong>Ескерту:</strong> Сіз қатысушы бетін жылжытпақшысыз. Назар аударыңыз, қатысушы беті ғана жылжытылуы мүмкін және қатысушы аты <em>өзгертілмейді</em>.",
-       "movecategorypage-warning": "<strong>Ескерту:</strong> Сіз санат бетінің атауын өзгерткелі жатырсыз. Бұл әрекетіңізде санат атауы ғана өзгерте аласыз сондықтан санаттың бұрыңғы атауындағы қандай да бір бет санаттың жаңа атауына өздігінен <em>санатталмайтыны</em> есіңізде болсын. Санаттың бұрыңғы атауындағы беттері мен санатшаларын жаңа атауына қайта санаттап шығуға тура келеді.",
+       "movecategorypage-warning": "<strong>Ескерту:</strong> Сіз санат бетінің атауын өзгерткелі жатырсыз. Бұл әрекетіңізде санат атауы ғана өзгерте аласыз, сондықтан санаттың бұрынғы атауындағы қандай да бір бет санаттың жаңа атауына өздігінен <em>санатталмайтыны</em> есіңізде болсын. Санаттың бұрынғы атауындағы беттері мен санатшаларын жаңа атауына қайта санаттап шығуға тура келеді.",
        "movenologintext": "Бетті жылжыту үшін тіркелген қатысуышы болуыңыз және [[Special:UserLogin|кіруіңіз]] керек.",
        "movenotallowed": "{{SITENAME}} жобасында беттерді жылжытуға рұқсатыңыз жоқ.",
        "movenotallowedfile": "Файлдарды жылжытуға рұқсатыңыз жоқ.",
index 1f3abea..6f9c049 100644 (file)
        "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* '''오페라''': ''도구→설정''에서 캐시를 비움",
+       "clearyourcache": "<strong>참고:</strong> 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.\n* <strong>Firefox / Safari</strong>: <em>Shift</em> 키를 누르면서 새로 고침을 클릭하거나, <em>Ctrl-F5</em> 또는 <em>Ctrl-R</em> 을 입력 (Mac에서는 <em>⌘-R</em>)\n* <strong>Google Chrome</strong>: <em>Ctrl-Shift-R</em>키를 입력 (Mac에서는 <em>⌘-Shift-R</em>)\n* <strong>Internet Explorer</strong>: <em>Ctrl</em> 키를 누르면서 새로 고침을 클릭하거나, <em>Ctrl-F5</em>를 입력.\n* <strong>Opera</strong>: <em>도구→설정</em>에서 캐시를 비움",
        "usercssyoucanpreview": "'''안내''': CSS 문서를 저장하기 전에 \"{{int:showpreview}}\" 기능을 통해 작동을 확인해주세요.",
        "userjsyoucanpreview": "'''안내''': 자바스크립트 문서를 저장하기 전에 \"{{int:showpreview}}\" 기능을 통해 작동을 확인해주세요.",
        "usercsspreview": "'''사용자 CSS의 미리 보기입니다.'''\n'''아직 저장하지 않았습니다!'''",
        "rev-suppressed-text-view": "이 문서의 판은 <strong>숨겨져</strong> 있습니다.\n숨겨진 판을 볼 수 있으며 자세한 내용은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 찾을 수 있습니다.",
        "rev-deleted-no-diff": "특정 판이 문서 역사에서 '''삭제'''되었기 때문에 비교할 수 없습니다.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 자세한 내용을 볼 수 있습니다.",
        "rev-suppressed-no-diff": "두 판 중 일부가 '''삭제'''되었기 때문에 문서 편집 내용을 비교할 수 없습니다.",
-       "rev-deleted-unhide-diff": "이 비교에 사용된 판 가운데 하나가 '''삭제'''되었습니다.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에 자세한 내용을 찾아볼 수 있습니다.\n계속 작업하고 싶다면 여전히 [$1 비교 보기]를 계속할 수 있습니다.",
+       "rev-deleted-unhide-diff": "비교하려는 판 가운데 <strong>삭제</strong>된 판이 있습니다. 자세한 내용은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 찾아볼 수 있습니다.\n원하는 경우 [$1 비교 보기]를 계속하실 수 있습니다.",
        "rev-suppressed-unhide-diff": "이 비교에 사용된 판 가운데 하나가 '''숨겨져''' 있습니다.\n[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에 자세한 내용이 있을 수 있습니다.\n계속 작업하고 싶다면 [$1 해당 편집]을 볼 수도 있습니다.",
        "rev-deleted-diff-view": "비교 대상 중 어느 한 판이 '''삭제'''되었습니다.\n삭제된 판과 다른 판의 비교를 할 수 있습니다. 자세한 내용은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 찾아볼 수 있습니다.",
-       "rev-suppressed-diff-view": "비교하려는 판 중 일부가 '''숨겨져''' 있습니다.\n숨겨진 판과 이 판의 편집 비교를 할 수 있습니다. 자세한 내용은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 해당 숨김 기록]에서 찾아볼 수 있습니다.",
+       "rev-suppressed-diff-view": "비교하려는 판 가운데 <strong>숨겨진</strong> 판이 있습니다.\n숨겨진 판과 이 판의 편집 비교를 할 수 있습니다. 자세한 내용은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 찾아볼 수 있습니다.",
        "rev-delundel": "보이기/숨기기",
        "rev-showdeleted": "보이기",
        "revisiondelete": "판 삭제/되살리기",
        "badfilename": "파일 이름이 \"$1\"로 바뀌었습니다.",
        "filetype-mime-mismatch": "\".$1\" 파일 확장자와 이 파일의 MIME 형식($2)이 일치하지 않습니다.",
        "filetype-badmime": "\"$1\" MIME 형식을 가진 파일은 올릴 수 없습니다.",
-       "filetype-bad-ie-mime": "이 파일을 올릴 수 없습니다. 인터넷 익스플로러가 잠재적으로 위험한 파일 형식으로 판단하여 사용이 금지된 \"$1\"로 인식할 수 있습니다.",
+       "filetype-bad-ie-mime": "이 파일을 올릴 수 없습니다. Internet Explorer가 잠재적으로 위험한 파일 형식으로 판단하여 사용이 금지된 \"$1\"로 인식할 수 있습니다.",
        "filetype-unwanted-type": "'''\".$1\"''' 확장자는 권장하지 않습니다.\n권장하는 {{PLURAL:$3|파일 확장자}}는 $2입니다.",
        "filetype-banned-type": "'''\".$1\"''' {{PLURAL:$4|형식의 파일은 올릴 수 없습니다}}.\n$2 {{PLURAL:$3|형식만 사용할 수 있습니다}}.",
        "filetype-missing": "파일에 확장자(\".jpg\" 등)가 없습니다.",
index 0e7bbeb..0deb773 100644 (file)
        "uploaderror": "Feeler bäim Eroplueden",
        "upload-recreate-warning": "'''Opgepasst: E Fichier mat deem Numm gouf scho geläscht oder geréckelt.'''\n\nHei fannt Dir en Extrait aus dem Läsch- a Réckel-Logbuch fir dëse Fichier.",
        "uploadtext": "Benotzt dëse Formulaire, fir nei Fichieren eropzelueden.\nGitt op d'[[Special:FileList|Lëscht vun den eropgeluedene Fichieren]], fir no Fichieren ze sichen déi virdrun eropgeluede goufen, Eropluedunge fannt dir an der [[Special:Log/upload|Lëscht vun den eropgeluedene Fichieren]], geläscht Fichiere stinn am [[Special:Log/delete|Läschlog]].\n\nFir e '''Bild''' op enger Säit ze benotzen, schreift amplaz vum Bild eng vun dëse Formelen:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fichier.jpg]]</nowiki></code>''' fir déi ganz Versioun vum Fichier ze benotzen\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fichier.png|200px|thumb|left|alt text]]</nowiki></code>''' fir eng 200 Pixel breet Versioun an enger Këscht am lénke Rand mat 'alt text' als Beschreiwung\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fichier.ogg]]</nowiki></code>''' fir e Fichier direkt ze verlinken ouni de Fichier ze weisen",
-       "upload-permitted": "Erlaabt Formater vun de Fichieren: $1.",
-       "upload-preferred": "Fichierszorten déi am beschte funktionéieren: $1.",
-       "upload-prohibited": "Verbuede Fichiers Formater: $1.",
+       "upload-permitted": "{{PLURAL:$2|Erlaabten Typ|Erlaabt Type}} vu Fichieren: $1.",
+       "upload-preferred": "{{PLURAL:$2|Fichierszort|Fichierszorten}} déi am beschte {{PLURAL:$2|funktionéiert|funktionéieren}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Verbuedene|Verbuede}} Fichiers {{PLURAL:$2|Format|Formater}}: $1.",
        "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",
        "api-error-stashfailed": "Interne Feeler: de Server konnt den temporäre Fichier net späicheren.",
        "api-error-publishfailed": "Interne Feeler: de Server konnt den temporäre Fichier net publizéieren.",
        "api-error-stasherror": "Beim Eropluede vum Fichier ass e Feeler geschitt.",
+       "api-error-stashfilestorage": "Beim Späichere vum Fichier ass ee Feeler geschitt.",
        "api-error-stashzerolength": "De Server konnt de Fichier net späicheren, well en eng Längt vun Null hat.",
+       "api-error-stashnotloggedin": "Dir musst ageloggt si fir Fichiere späicheren ze kënnen.",
        "api-error-timeout": "De Server huet net bannen där Zäit geäntwert déi virgesinn ass.",
        "api-error-unclassified": "En onbekannte Feeler ass geschitt",
        "api-error-unknown-code": "Onbekannte Feeler: \"$1\"",
index b2a8bb2..d008401 100644 (file)
        "filerenameerror": "نبوئه جانیا $1 د $2 نوم آلشت بوئه",
        "filedeleteerror": "نبوئه جانیا $1 پاکسا بوئه",
        "directorycreateerror": "نبوئه سردسه $1 راس بوئه.",
+       "directoryreadonlyerror": "فقط موئه نشونگه \"$1\" بحونی.",
+       "directorynotreadableerror": "نشونگه \"$1\" حننی نئ.",
        "filenotfound": "نتونیت جانیا $1 نه پیدا بکید",
        "unexpected": "ارزایشت ناحاسته: \"$1\"=\"$2\".",
        "formerror": "خطا:نبوئه نوم بلگه وه مو بئيت",
        "content-model-javascript": "جاوا اسكريپت",
        "content-model-css": "سی اس اس",
        "content-json-empty-object": "سرتال حالی",
+       "content-json-empty-array": "آرایه حالی",
        "expensive-parserfunction-warning": "<strong>زئنار:</strong>ای بلگه مینونه دار واحونی دستوریا مئن اشکافت فره ای هئ.\n\nانازه و باید د کمتر با$2 {{جمی:$2|واحونی|واحونیا}}، ایسه {{جمی:$1|$1 واحونی|$1 واحونیا}}ئه.",
        "expensive-parserfunction-category": "بلگه یایی که واحونی پیوندگر خطا گرون فره ای ها دشو",
        "post-expand-template-inclusion-warning": "زنئار چوئه د ور گرته انازه ای یه که فره گپه.پاره ای د چوئه یا نه د ور نمیئره.",
index e85cb20..350f703 100644 (file)
@@ -28,7 +28,8 @@
                        "Xabier Armendaritz",
                        "לערי ריינהארט",
                        "Vogone",
-                       "아라"
+                       "아라",
+                       "Aswanas"
                ]
        },
        "tog-underline": "Pabraukti nuorodas:",
        "uploaderror": "Įkėlimo klaida",
        "upload-recreate-warning": "'''Dėmėsio: Failas šiuo pavadinimu buvo ištrintas arba pervadintas.'''\n\nJūsų patogumui pateiktas įrašas apie šio puslapio trynimą ar pervadinimą:",
        "uploadtext": "Kad įkeltumėte failą, naudokitės žemiau pateikta forma.\nNorėdami peržiūrėti ar ieškoti anksčiau įkeltų paveikslėlių, eikite į [[Special:FileList|įkeltų failų sąrašą]], įkėlimai yra registruojami [[Special:Log/upload|įkėlimų sąraše]], trynimai — [[Special:Log/delete|trynimų sąraše]].\n\nNorėdami panaudoti įkeltą failą puslapyje, naudokite tokias nuorodas:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Failas.jpg]]</nowiki></code>''' norėdami naudoti pilną failo versiją\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Failas.png|200px|thumb|left|alternatyvusis tekstas]]</nowiki></code>''' norėdami naudoti 200 pikselių pločio paveikslėlį rėmelyje puslapio kairėje; „alternatyvus tekstas“ bus naudojamas paveikslėlio aprašymui.\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Failas.ogg]]</nowiki></code>''' tiesioginei nuorodai į failą.",
-       "upload-permitted": "Leidžiami rinkmenų tipai: $1.",
-       "upload-preferred": "Pageidautini failų tipai: $1.",
-       "upload-prohibited": "Uždrausti failų tipai: $1.",
+       "upload-permitted": "{{PLURAL:$2|Leidžiamas rinkmenos tipas|Leidžiami rinkmenų tipai}}: $1.",
+       "upload-preferred": "Pageidautini failai {{PLURAL:$2|type|types}}: $1.",
+       "upload-prohibited": "Uždrausti failai {{PLURAL:$2|type|types}}: $1.",
        "uploadlogpage": "Įkėlimų sąrašas",
        "uploadlogpagetext": "Žemiau pateikiamas paskutinių failų įkėlimų sąrašas.\nTaip pat galite peržvelgti [[Special:NewFiles|naujausių failų galeriją]].",
        "filename": "Failo vardas",
index 3c84e4c..6f4199c 100644 (file)
        "tog-showtoolbar": "Прикажи алатник за уредување",
        "tog-editondblclick": "Уредување на страници при двоен стисок",
        "tog-editsectiononrightclick": "Уредување на заглавија со десно копче од глушецот на нивниот наслов",
-       "tog-watchcreations": "Додавај ги страниците што ги создавам и податотеките што ги подигам во списокот на набљудувања",
-       "tog-watchdefault": "Додавај ги страниците и податотеките што ги уредувам во списокот на набљудувања",
-       "tog-watchmoves": "Додавај ги страниците и податотеките што ги преместувам во списокот на набљудувања",
-       "tog-watchdeletion": "Додавај ги страниците и податотеките што ги бришам во списокот на набљудувања",
+       "tog-watchcreations": "Додавај ги страниците што ги создавам и податотеките што ги подигам во набљудуваните",
+       "tog-watchdefault": "Додавај ги страниците и податотеките што ги уредувам во набљудуваните",
+       "tog-watchmoves": "Додавај ги страниците и податотеките што ги преместувам во набљудуваните",
+       "tog-watchdeletion": "Додавај ги страниците и податотеките што ги бришам во набљудуваните",
        "tog-watchrollback": "Додај ги страниците сум ги отповикал во набљудувани",
        "tog-minordefault": "Обележувај ги сите уредувања како ситни по основно",
        "tog-previewontop": "Прикажи го прегледот пред кутијата за уредување",
        "tog-fancysig": "Сметај го потписот за викитекст (без автоматска врска)",
        "tog-uselivepreview": "Користи преглед во живо",
        "tog-forceeditsummary": "Извести ме кога нема опис на промените",
-       "tog-watchlisthideown": "Скриј мои уредувања од списокот на набљудувања",
-       "tog-watchlisthidebots": "Скриј ботовски уредувања од списокот на набљудувања",
-       "tog-watchlisthideminor": "Скриј ги ситните уредувања во списокот на набљудувања",
-       "tog-watchlisthideliu": "Скриј ги уредувањата на најавените корисници во списокот на набљудувања",
-       "tog-watchlisthideanons": "Скриј ги уредувањата од анонимни корисници во списокот на набљудувања",
+       "tog-watchlisthideown": "Скриј мои уредувања од набљудуваните",
+       "tog-watchlisthidebots": "Скриј ботовски уредувања од набљудуваните",
+       "tog-watchlisthideminor": "Скриј ги ситните уредувања во набљудуваните",
+       "tog-watchlisthideliu": "Скриј ги уредувањата на најавените корисници во набљудуваните",
+       "tog-watchlisthideanons": "Скриј ги уредувањата од анонимни корисници во набљудуваните",
        "tog-watchlisthidepatrolled": "Скриј испатролирани уредувања од мојот список на набљудувања",
        "tog-ccmeonemails": "Испраќај ми мои примероци од писмата што ги праќам на другите корисници",
        "tog-diffonly": "Не ја покажувај содржината на страницата под разликите",
        "prefs-personal": "Кориснички профил",
        "prefs-rc": "Скорешни промени",
        "prefs-watchlist": "набљудувања",
-       "prefs-watchlist-days": "Број на денови за приказ во списокот на набљудувања:",
+       "prefs-editwatchlist": "Уреди набљудувани",
+       "prefs-editwatchlist-label": "Уреди ставки во набљудуваните:",
+       "prefs-editwatchlist-edit": "Прегл. и отстрани наслови во набљудуваните",
+       "prefs-editwatchlist-raw": "Уреди сирови набљудувани",
+       "prefs-editwatchlist-clear": "Исчисти набљудувани",
+       "prefs-watchlist-days": "Број на денови за приказ во набљудуваните",
        "prefs-watchlist-days-max": "Највеќе $1 {{PLURAL:$1|ден|дена}}",
        "prefs-watchlist-edits": "Максимален број на прикажани промени во проширениот список на набљудувања:",
        "prefs-watchlist-edits-max": "Највеќе: 1000",
        "right-editmyusercss": "Уредување на сопствени кориснички каскадни стилски податотеки (CSS)",
        "right-editmyuserjs": "Уредување на сопствени кориснички податотеки со JavaScript",
        "right-viewmywatchlist": "Преглед на вашиот список на набљудувања",
-       "right-editmywatchlist": "Уредување на вашиот список на набљудувања. Извесни дејства сепак ќе ставаат страници во списокот и без да го имате ова право.",
+       "right-editmywatchlist": "Уредување на вашите набљудувани. Извесни дејства сепак ќе ставаат страници во нив и без да го имате ова право.",
        "right-viewmyprivateinfo": "Преглед на сопствените лични податоци (на пр. е-пошта, вистинско име и презиме)",
        "right-editmyprivateinfo": "Уредување на сопствените лични податоци (на пр. е-пошта, вистинско име и презиме)",
        "right-editmyoptions": "Уредување на вашите нагодувања",
        "action-userrights-interwiki": "уредување на кориснички права на корисници на други викија",
        "action-siteadmin": "заклучување или отклучување на базата на податоци",
        "action-sendemail": "испраќање на е-пошта",
-       "action-editmywatchlist": "Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð½Ð° Ð²Ð°Ñ\88иоÑ\82 Ñ\81пиÑ\81ок Ð½Ð° Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83ваÑ\9aа",
+       "action-editmywatchlist": "Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð½Ð° Ð¼Ð¾Ð¸ Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83вани",
        "action-viewmywatchlist": "преглед на вашиот список на набљудувања",
        "action-viewmyprivateinfo": "преглед на вашите лични податоци",
        "action-editmyprivateinfo": "уредување на вашите лични податоци",
        "uploaderror": "Грешка во подигањето",
        "upload-recreate-warning": "'''Предупредување: Податотеката со тоа име е избришана или преместена.'''\n\nПодолу е наведена дневничката евиденција на бришење и преместување за оваа страница:",
        "uploadtext": "Користете го долниот образец за подигање на податотеки.\nЗа преглед или пребарување на претходно подигнати податотеки, погледнете ја [[Special:FileList|списокот на подигнати податотеки]]; повторните подигања се заведени во [[Special:Log/upload|дневникот на подигања]], а бришењата се заведуваат во [[Special:Log/delete|дневникот на бришења]].\n\nЗа да поставите слика во страница, користете врска во еден од следниве облици:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Податотека.jpg]]</nowiki></code>''' за верзија на сликата во целосна големина\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Податотека.png|200px|thumb|left|опис]]</nowiki></code>''' за верзија на сликата со големина од 200 пиксели прикажана во соодветна кутија, со опис како што е наведено во '''опис'''\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Податотека.ogg]]</nowiki></code>''' за непосредно поврзување со податотеката без нејзино прикажување",
-       "upload-permitted": "Допуштени податотечни типови: $1.",
-       "upload-preferred": "Претпочитани податотечни типови: $1.",
-       "upload-prohibited": "Недопуштени податотечни типови: $1.",
+       "upload-permitted": "{{PLURAL:$2|Допуштен податотечен тип|Допуштени податотечни типови}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Претпочитан податотечен тип|Претпочитани податотечни типови}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Недозволен податотечен тип|Недозволени податотечни типови}}: $1.",
        "uploadlogpage": "Дневник на подигања",
        "uploadlogpagetext": "Наведен е список на најновите подигања на податотеки.\nПогледнете ја [[Special:NewFiles|галеријата на нови податотеки]] за визуелен преглед.",
        "filename": "Име на податотеката",
        "watchlist": "набљудувања",
        "mywatchlist": "Набљудувања",
        "watchlistfor2": "За $1 $2",
-       "nowatchlist": "Немате ништо во списокот на набљудувања.",
-       "watchlistanontext": "Најавете се за да можете да го прегледувате и уредувате списокот на набљудувања.",
+       "nowatchlist": "Немате ништо во набљудуваните.",
+       "watchlistanontext": "Најавете се за да можете да го прегледувате и уредувате набљудуваните.",
        "watchnologin": "Не сте најавени",
-       "addwatch": "Додај во списокот на набљудувања",
-       "addedwatchtext": "Страницата „[[:$1]]“ е додадена во [[Special:Watchlist|списокот на набљудувања]].\nИдните промени на оваа страница и нејзината страница за разговор ќе се прикажуваат таму.",
+       "addwatch": "Додај во набљудувани",
+       "addedwatchtext": "Страницата „[[:$1]]“ е додадена во [[Special:Watchlist|набљудуваните]].\nИдните промени на оваа страница и нејзината страница за разговор ќе се прикажуваат таму.",
        "addedwatchtext-short": "Страницата „$1“ е додадена во вашите набљудувања.",
-       "removewatch": "Ð\9eÑ\82Ñ\81Ñ\82Ñ\80ани Ð¾Ð´ Ñ\81пиÑ\81окоÑ\82 Ð½Ð° Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83ваÑ\9aа",
-       "removedwatchtext": "Страницата „[[:$1]]“ е отстранета од [[Special:Watchlist|списокот на набљудувања]].",
+       "removewatch": "Ð\9eÑ\82Ñ\81Ñ\82Ñ\80ани Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83ваниÑ\82е",
+       "removedwatchtext": "Страницата „[[:$1]]“ е отстранета од [[Special:Watchlist|набљудуваните]].",
        "removedwatchtext-short": "Страницата „$1“ е отстранета од вашите набљудувања.",
        "watch": "Набљудувај",
        "watchthispage": "Набљудувај ја страницава",
        "watchlist-options": "Поставки за список на набљудувања",
        "watching": "Набљудување...",
        "unwatching": "Отстранувам од набљудувани...",
-       "watcherrortext": "Се појави грешка при менувањето на вашите нагодувања списокот на набљудувања за „$1“.",
+       "watcherrortext": "Се појави грешка при менувањето на вашите нагодувања набљудуваните за „$1“.",
        "enotif_reset": "Означи ги сите страници како посетени",
        "enotif_impersonal_salutation": "Википедија корисник",
        "enotif_subject_deleted": "Страницата $1 на {{SITENAME}} е избришана од {{gender:$2|$2}}",
        "tooltip-ca-delete": "Избриши ја страницава",
        "tooltip-ca-undelete": "Обнови ги уредувањата направени на оваа страница пред да биде избришана",
        "tooltip-ca-move": "Премести ја страницава",
-       "tooltip-ca-watch": "Додај ја страницава во списокот на набљудувања",
-       "tooltip-ca-unwatch": "Отстрани ја страницава од списокот на набљудувања",
+       "tooltip-ca-watch": "Додај ја страницава во набљудуваните",
+       "tooltip-ca-unwatch": "Отстрани ја страницава од набљудуваните",
        "tooltip-search": "Пребарај низ {{SITENAME}}",
        "tooltip-search-go": "Оди на страница со ова име доколку постои",
        "tooltip-search-fulltext": "Пребарај го овој текст низ странците",
        "tooltip-preview": "Преглед на промените - ве молиме користете го ова пред зачувување!",
        "tooltip-diff": "Покажи кои промени ги направи во текстот.",
        "tooltip-compareselectedversions": "Видете ја разликата помеѓу двете избрани верзии на оваа страница.",
-       "tooltip-watch": "Додај ја страницава во списокот на набљудувања",
+       "tooltip-watch": "Додај ја страницава во набљудуваните",
        "tooltip-watchlistedit-normal-submit": "Отстрани наслови",
        "tooltip-watchlistedit-raw-submit": "Поднови го списокот",
        "tooltip-recreate": "Повторно создај ја страницата иако е избришана",
        "confirm-purge-top": "Да го исчистам меѓускладот на страницава?",
        "confirm-purge-bottom": "Со оваа операција се чисти опслужувачкиот меѓусклад и се прикажува најновата верзија.",
        "confirm-watch-button": "ОК",
-       "confirm-watch-top": "Да ја додадам страницава во списокот на набљудувања?",
+       "confirm-watch-top": "Да ја додадам страницава во набљудуваните?",
        "confirm-unwatch-button": "ОК",
-       "confirm-unwatch-top": "Да ја отстранам страницава од списокот на набљудувања?",
+       "confirm-unwatch-top": "Да ја отстранам страницава од набљудуваните?",
        "percent": "$1&#160;%",
        "quotation-marks": "„$1“",
        "imgmultipageprev": "&larr; претходна страница",
        "bitrate-yottabits": "$1 Јб/с",
        "lag-warn-normal": "Промените во {{PLURAL:$1|последната секунда|последните $1 секунди}} може да не бидат прикажани во списокот.",
        "lag-warn-high": "Поради преоптовареност на податочниот опслужувач, промените понови од {{PLURAL:$1|една секунда|$1 секунди}}\nможе да не бидат прикажани во списокот.",
-       "watchlistedit-normal-title": "Уредување на списокот на набљудувања",
+       "watchlistedit-normal-title": "Уредување на набљудуваните",
        "watchlistedit-normal-legend": "Бришење на наслови од список на набљудување",
        "watchlistedit-normal-explain": "Насловите во вашиот список на набљудувања се прикажани подолу.\nЗа да избришете наслов, штиклирајте го квадратчето лево од насловот, и стиснете на „{{int:Watchlistedit-normal-submit}}“.\nМожете и да го [[Special:EditWatchlist/raw|уредувате сировиот список]].",
        "watchlistedit-normal-submit": "Избриши",
        "watchlistedit-normal-done": "{{PLURAL:$1|1 наслов беше|$1 наслови беа}} избришани од вашиот список на набљудувања:",
-       "watchlistedit-raw-title": "Ð\9dапÑ\80едно Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð½Ð° Ñ\81пиÑ\81окоÑ\82 Ð½Ð° Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83ваÑ\9aа",
-       "watchlistedit-raw-legend": "Уредување на списокот на набљудувања",
+       "watchlistedit-raw-title": "УÑ\80еди Ñ\81иÑ\80ови Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83вани",
+       "watchlistedit-raw-legend": "Уреди сирови набљудувани",
        "watchlistedit-raw-explain": "Насловите во вашиот список на набљудувања се прикажани подолу, и можат да се уредуваат со додавање или бришење на ставки од списокот; \nеден наслов по ред. \nКога ќе завршите, стиснете на „{{int:Watchlistedit-raw-submit}}“.\nМожете да го [[Special:EditWatchlist|употребите обичниот уредник]].",
        "watchlistedit-raw-titles": "Наслови:",
        "watchlistedit-raw-submit": "Поднови го списокот",
        "watchlistedit-raw-done": "Вашиот список на набљудувања е подновен.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 наслов беше|$1 наслови беа}} додадени:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|Избришан е еден наслов|Избришани се $1 наслови}}:",
-       "watchlistedit-clear-title": "Исчистен списокот на набљудувања",
+       "watchlistedit-clear-title": "Исчистени набљудуваните",
        "watchlistedit-clear-legend": "Исчисти набљудувани",
-       "watchlistedit-clear-explain": "Сите наслови ќе бидат отстранети од списокот на набљудувања",
+       "watchlistedit-clear-explain": "Сите наслови ќе бидат отстранети од набљудуваните",
        "watchlistedit-clear-titles": "Наслови:",
        "watchlistedit-clear-submit": "Исчисти ги набљудуваните (Ова е трајно!)",
        "watchlistedit-clear-done": "Вашиот список на набљудувања е исчистен.",
        "watchlisttools-clear": "Исчисти ги набљудуваните",
        "watchlisttools-view": "Преглед на релевантни промени",
        "watchlisttools-edit": "Погледај и уреди список на набљудувања",
-       "watchlisttools-raw": "Ð\9dапÑ\80едно Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð½Ð° Ñ\81пиÑ\81окоÑ\82 Ð½Ð° Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83ваÑ\9aа",
+       "watchlisttools-raw": "УÑ\80еди Ñ\81иÑ\80ови Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83вани",
        "iranian-calendar-m1": "Фарвардин",
        "iranian-calendar-m2": "Ордибехешт",
        "iranian-calendar-m3": "Хордад",
index 1932139..a8b0177 100644 (file)
        "uploaderror": "അപ്‌ലോഡ് പിഴവ്",
        "upload-recreate-warning": "'''ശ്രദ്ധിക്കുക: ഇതേ പേരിലുള്ള ഒരു പ്രമാണം മായ്ക്കുകയോ മാറ്റുകയോ ചെയ്തിരിക്കുന്നു.'''\n\nഈ താളിന്റെ മായ്ക്കൽ രേഖയും മാറ്റൽ രേഖയും സ്ഥിരീകരിക്കുന്നതിനായി നൽകിയിരിക്കുന്നു:",
        "uploadtext": "താഴെ കാണുന്ന ഫോം പ്രമാണങ്ങൾ അപ്‌ലോഡ് ചെയ്യുവാൻ വേണ്ടി ഉപയോഗിക്കുക.\nനിലവിൽ അപ്‌ലോഡ് ചെയ്തിരിക്കുന്ന പ്രമാണങ്ങൾ കാണുവാൻ [[Special:FileList|അപ്‌ലോഡ് ചെയ്ത പ്രമാണങ്ങളുടെ പട്ടിക]] സന്ദർശിക്കുക. (പുതുക്കിയ) അപ്‌‌ലോഡുകൾ [[Special:Log/upload|അപ്‌ലോഡ് രേഖ]], മായ്ക്കപ്പെട്ടവ [[Special:Log/delete|മായ്ക്കൽ രേഖയിലും]] കാണാവുന്നതാണ്‌.\n\nപ്രമാണം താളിൽ പ്രദർശിപ്പിക്കുവാൻ താഴെ കാണുന്ന ഒരു വഴി സ്വീകരിക്കുക\n\n*'''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki>''' പൂർണ്ണരൂപത്തിലുള്ള പ്രമാണം ഉപയോഗിക്കാൻ\n*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' 200 പിക്സൽ ഉള്ള പെട്ടിയിൽ പകരമുള്ള എഴുത്തടക്കം ഉപയോഗിക്കാൻ\n*'''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki>''' പ്രമാണം കാട്ടാതെ പ്രമാണത്തെ നേരിട്ടു കണ്ണി ചേർക്കാൻ",
-       "upload-permitted": "അനുവദനീയമായ പ്രമാണ തരങ്ങൾ: $1.",
-       "upload-preferred": "പ്രോത്സാഹിപ്പിക്കുന്ന പ്രമാണ തരങ്ങൾ: $1.",
-       "upload-prohibited": "നിരോധിക്കപ്പെട്ട തരം പ്രമാണങ്ങൾ: $1.",
+       "upload-permitted": "അനുവദനീയമായ പ്രമാണ {{PLURAL:$2|തരം|തരങ്ങൾ}}: $1.",
+       "upload-preferred": "പ്രോത്സാഹിപ്പിക്കുന്ന പ്രമാണ {{PLURAL:$2|തരം|തരങ്ങൾ}}: $1.",
+       "upload-prohibited": "നിരോധിക്കപ്പെട്ട {{PLURAL:$2|തരം|തരങ്ങളിലുള്ള}} പ്രമാണങ്ങൾ: $1.",
        "uploadlogpage": "അപ്‌ലോഡ് രേഖ",
        "uploadlogpagetext": "സമീപകാലത്ത് അപ്‌ലോഡ് ചെയ്ത പ്രമാണങ്ങളുടെ പട്ടിക താഴെ കാണാം.",
        "filename": "പ്രമാണത്തിന്റെ പേര്",
index 39f88e1..1c017ea 100644 (file)
        "prefs-personal": "Profilo utente",
        "prefs-rc": "Urdeme nove",
        "prefs-watchlist": "Asservate speciale",
+       "prefs-editwatchlist": "Cagna l'elenco 'e paggene cuntrullate",
+       "prefs-editwatchlist-label": "Cagna ll'elemente 'e l'elenco 'e paggene cuntrullate",
+       "prefs-editwatchlist-edit": "Vide e lèva titule dint' 'a l'elenco 'e paggene cuntrullate vuosto",
+       "prefs-editwatchlist-raw": "Cagna l'elenco 'e paggene cuntrullate ncruro",
+       "prefs-editwatchlist-clear": "Sbacanta l'elenco 'e paggene cuntrullate",
        "prefs-watchlist-days": "Nummero 'e juorne 'a mmustà dint'a l'elenco 'e cuntrollo:",
        "prefs-watchlist-days-max": "Massimo $1 {{PLURAL:$1|juorno|juorne}}",
        "prefs-watchlist-edits": "Numero massimo 'e cagnamiente 'a mmustà ch' 'e funziune avanzate:",
        "uploaderror": "Errore a carrecà",
        "upload-recreate-warning": "'Attenziò'': nu file cu stu nomme è stato scancellato o spustato.'''\n'O riggistro d' 'e scancellamiente e d' 'e spustamiente 'e sta paggena è stato scritto ccà abbascio pe' ffà comodo:",
        "uploadtext": "Ausà 'o modulo ccà sotto pe' carrecà file nuove. Pe' vedé o ascià 'e file carrecate già, vide 'o [[Special:FileList|riggistro 'e file carrecate]]. Càrreche 'e file e virzione nove d' 'e file songo riggistrate dint' 'o [[Special:Log/upload|riggistro d'upload]], 'e scancellamiente dint' 'o [[Special:Log/delete|riggistro ccà]].\n\nPe' nzertà nu file dint'a na paggena, allora facite nu cullegamento 'e stu tipo:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' p'ausà a verziona cumpleta d' 'o file\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|testo alternativo]]</nowiki></code>''' p'ausà na verziona luonga 200 pixel nzertata dint'a na cascia, allineata a manca e cu nu 'testo alternativo' comme didascalia\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' pe' crià nu cullegamento diretto a 'o file senza 'o fà vedé",
-       "upload-permitted": "Tipe 'e file permesse: $1.",
-       "upload-preferred": "Tipe 'e file cunzigliate: $1.",
-       "upload-prohibited": "Tipe 'e file nun permesse: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tipo 'e file permesso|Tipe 'e file permesse}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Tipo 'e file cunzigliato|Tipe 'e file cunzigliate}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Tipo 'e file nun permesso|Tipe 'e file nun permesse}}: $1.",
        "uploadlogpage": "Riggistro 'e carreche",
        "uploadlogpagetext": "Ccà abbascio song'alencate l'urdeme file carrecate.\nCuntrullate 'a [[Special:NewFiles|gallaria d' 'e file nuove]] pe' ve ffà na guardata cchiù visuale 'e tutto.",
        "filename": "Nomme d' 'o file",
        "notargettext": "Nun avete specificato na paggena o n'utente 'e destinazione pe' putè fa sta operazione.",
        "nopagetitle": "Nisciuna paggena 'e destinazione",
        "nopagetext": "'A paggena 'e destinazione c'avite specificato nun esiste.",
-       "pager-newer-n": "{{PLURAL:$1|1 cchiù viecchio|$1 cchiù viecchie}}",
+       "pager-newer-n": "{{PLURAL:$1|1 cchiù nova|$1 cchiù nnove}}",
        "pager-older-n": "{{PLURAL:$1|1 cchiù viecchio|$1 cchiù viecchie}}",
        "suppress": "Supervisione",
        "querypage-disabled": "Sta paggena speciale è stutata pe' mutive 'e prestaziune.",
index 741ec6d..1af498f 100644 (file)
        "badarticleerror": "Disse haandeling kan op disse zied niet uutevoerd wörden.",
        "cannotdelete": "De zied of t bestaand \"$1\" kon niet vortedaon wörden.\nt Kan ween dat n aander t al vortedaon hef.",
        "cannotdelete-title": "Zied \"$1\" kan niet vortedaon wörden",
-       "delete-hook-aborted": "t Vortdoon wörden in t wiere eschopt deur n MediaWiki-programmatuuruutbreiding.\nDer is gien veerdere informasie beschikbaor.",
+       "delete-hook-aborted": "t Vortdoon wördt in t wiere eschopt deur n toepassige van MediaWiki.\nDer is gien veerdere informasie beschikbaor.",
        "no-null-revision": "Kon gien lege nieje versie maken veur de zied \"$1\"",
        "badtitle": "Ongeldige naam",
        "badtitletext": "De naam van de op-evreugen zied is niet geldig, leeg, of n interwiki-verwiezing naor n onbekende of ongeldige wiki.",
        "passwordreset-username": "Gebruker:",
        "passwordreset-domain": "Domein:",
        "passwordreset-capture": "De resulterende netpost bekieken?",
-       "passwordreset-capture-help": "A'j dit vakjen anvinken, dan krie'j t netpostbericht (mit t tiedelike wachtwoord) te zien en t wörden naor de gebruker estuurd.",
+       "passwordreset-capture-help": "A'j dit vakjen anvinken, dan krie'j t netpostbericht te zien (mit t tiejelike wachtwoord) en t wördt naor de gebruker estuurd.",
        "passwordreset-email": "Netpostadres:",
        "passwordreset-emailtitle": "Gebrukersgegevens op {{SITENAME}}",
        "passwordreset-emailtext-ip": "Der hef der ene, waorschienlik jie zelf vanaof t IP-adres $1, n anvraag edaon um joew wachtwoord veur {{SITENAME}} ($4) opniej in te stellen.\nDe volgende {{PLURAL:$3|gebruker is|gebrukers bin}} ekoppeld an dit netpostadres:\n\n$2\n\n{{PLURAL:$3|Dit tiejelike wachtwoord vervölt|Disse tiejelike wachtwoorden vervallen}} over {{PLURAL:$5|één dag|$5 dagen}}.\nMeld je eigen noen an en wiezig t wachtwoord. A'j dit verzeuk niet zelf edaon hebben, of a'j t oorspronkelike wachtwoord nog kennen en t niet wiezigen willen, negeer dit bericht dan en blief joew ouwe wachtwoord gebruken.",
        "subject-preview": "Onderwarp/kop naokieken:",
        "blockedtitle": "Gebruker is eblokkeerd",
        "blockedtext": "'''Joew gebrukersnaam of IP-adres is eblokkeerd.'''\n\nJe bin eblokkeerd deur: $1.\nDe op-egeven reden is: ''$2''.\n\n* Eblokkeerd vanaof: $8\n* Eblokkeerd tot: $6\n* Bedoeld um te blokkeren: $7\n\nJe kunnen kontakt opnemen mit $1 of n aandere [[{{MediaWiki:Grouppage-sysop}}|beheerder]] um de blokkering te bepraoten.\nJe kunnen gien gebruukmaken van de funksie 'een bericht sturen', behalven a'j n geldig netpostadres op-egeven hebben in joew [[Special:Preferences|veurkeuren]] en t gebruuk van disse funksie niet eblokkeerd is.\nt IP-adres da'j noen gebruken is $3 en t blokkeringsnummer is #$5.\nVermeld t allebeie a'j argens op disse blokkering reageren.",
-       "autoblockedtext": "Joew IP-adres is automaties eblokkeerd umdat t gebruukt wörden deur n aandere gebruker, die eblokkeerd wörden deur $1.\nDe reden hierveur was:\n\n:''$2''\n\n* Begint: $8\n* Löp of nao: $6\n* Wee eblokkeerd wörden: $7\n\nJe kunnen kontakt opnemen mit $1 of n van de aandere\n[[{{MediaWiki:Grouppage-sysop}}|beheerders]] um de blokkering te bepraoten.\n\nNB: je kunnen de opsie \"n bericht sturen\" niet gebruken, behalven a'j n geldig netpostadres op-egeven hebben in de [[Special:Preferences|gebrukersveurkeuren]] en je niet eblokkeerd bin.\n\nJoew IP-adres is $3 en joew blokkeernummer is $5.\nGeef disse nummers deur a'j kontakt mit ene opnemen over de blokkering.",
+       "autoblockedtext": "Joew IP-adres is automaties eblokkeerd umdat t gebruukt wördt deur n aandere gebruker, die eblokkeerd wördt deur $1.\nDe reden hierveur was:\n\n:''$2''\n\n* Begint: $8\n* Löp of nao: $6\n* Wee eblokkeerd wördt: $7\n\nJe kunnen kontakt opnemen mit $1 of n van de aandere\n[[{{MediaWiki:Grouppage-sysop}}|beheerders]] um de blokkering te bepraoten.\n\nNB: je kunnen de opsie \"n bericht sturen\" niet gebruken, behalven a'j n geldig netpostadres op-egeven hebben in de [[Special:Preferences|gebrukersveurkeuren]] en je niet eblokkeerd bin.\n\nJoew IP-adres is $3 en joew blokkeernummer is $5.\nGeef disse nummers deur a'j kontakt mit ene opnemen over de blokkering.",
        "blockednoreason": "gien reden op-egeven",
        "whitelistedittext": "Um ziejen te kunnen wiezigen, mu'j $1 ween",
        "confirmedittext": "Je mutten je netpostadres bevestigen veurda'j bewarken kunnen. Vul je adres in en bevestig t via [[Special:Preferences|mien veurkeuren]].",
        "moveddeleted-notice": "Disse zied is vortedaon.\nHieronder steet de informasie uut t vortdologboek en t herneumlogboek.",
        "log-fulllog": "t Hele logboek bekieken",
        "edit-hook-aborted": "De bewarking is aofebreuken deur n hook.\nDer is gien reden op-egeven.",
-       "edit-gone-missing": "De zied kon niet bie-ewörken wörden.\nt Schient dat t vortedaon is.",
+       "edit-gone-missing": "De zied kon niet bie-ewörken wörden.\nt Lik derop as of t vortedaon is.",
        "edit-conflict": "Tegelieke bewörken.",
        "edit-no-change": "Joew bewarking is enegeerd, umdat der gien wieziging an de tekste edaon is.",
        "postedit-confirmation-saved": "Joew bewarking is op-esleugen",
        "expensive-parserfunction-category": "Ziejen die te veule kostbaore parserfunksies gebruken",
        "post-expand-template-inclusion-warning": "Waorschuwing: de grootte van de in-evoegden mal is te groot.\nSommigen mallen wörden niet in-evoegd.",
        "post-expand-template-inclusion-category": "Ziejen die over de maximumgrootte veur in-evoegden mallen hinne gaon",
-       "post-expand-template-argument-warning": "Waorschuwing: disse zied gebruuk tenminsten één parameter in n mal, die te groot is as t uuteklap wörden. Disse parameters wörden vorteleuten.",
+       "post-expand-template-argument-warning": "Waorschuwing: disse zied gebruukt tenminsten een parameter in n mal, die te groot is as t uuteklapt wördt. Disse parameters wörden vorteleuten.",
        "post-expand-template-argument-category": "Ziejen mit ontbrekende malelementen",
        "parser-template-loop-warning": "Der is n kringloop in mallen waoreneumen: [[$1]]",
        "parser-template-recursion-depth-warning": "Der is over de rekursiediepte veur mallen is hinne gaon ($1)",
        "undo-success": "De bewarking kan weerummedreid wörden. Kiek de vergelieking hieronder nao um der wisse van de ween dat alles goed is, en slao de de zied op um de bewarking weerumme te dreien.",
        "undo-failure": "De wieziging kon niet weerummedreid wörden umdat t ondertussen awweer ewiezigd is.",
        "undo-norev": "De bewarking kon niet weerummedreid wörden, umdat t niet besteet of vortedaon is.",
-       "undo-summary": "Versie $1 van [[Special:Contributions/$2|$2]] ([[User talk:$2|overleg]]) weerummedreid.",
+       "undo-summary": "Versie $1 van [[Special:Contributions/$2|$2]] ([[User talk:$2|overleg]]) weerummedreid",
        "undo-summary-username-hidden": "Versie $1 deur n verbörgen gebruker weerummedreid",
        "cantcreateaccounttitle": "Anmaken van n gebrukersprofiel is niet meugelik",
        "cantcreateaccount-text": "t Anmaken van gebrukers van dit IP-adres (<b>$1</b>) is eblokkeerd deur [[User:$3|$3]].\n\nDe deur $3 op-egeven reden is ''$2''",
        "upload_directory_read_only": "Op t moment ku'j gien bestaanden opsturen vanwegen techniese problemen ($1).",
        "uploaderror": "Fout bie t inlaojen van t bestaand",
        "upload-recreate-warning": "'''Waorschuwing: der is n bestaand mit disse naam vortedaon of herneumd.'''\n\nHieronder steet t vortdologboek en t herneumlogboek veur disse zied:",
-       "uploadtext": "Gebruuk t formulier hieronder um bestaanden op te sturen.\nUm bestaanden te bekieken of te zeuken die eerder al op-estuurd bin, ku'j naor de [[Special:FileList|bestaandslieste]] gaon.\nBestaanden en media die nao t vortdoon opniej op-estuurd wörden ku'j in de smiezen houwen in t [[Special:Log/upload|logboek mit nieje bestaanden]] en t [[Special:Log/delete|vortdologboek]].\n\nUm t bestaand in te voegen in n zied ku'j één van de volgende kodes gebruken:\n* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Bestaand.jpg]]</nowiki>'''\n* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Bestaand.png|alternatieve tekste]]</nowiki>'''\n* '''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:Bestaand.ogg]]</nowiki>''' drekte verwiezing naor n bestaand.",
+       "uploadtext": "Gebruuk t formulier hieronder um bestaanden op te sturen.\nUm bestaanden te bekieken of te zeuken die eerder al op-estuurd bin, ku'j naor de [[Special:FileList|bestaandslieste]] gaon.\nBestaanden en media die nao t vortdoon opniej op-estuurd wörden ku'j in de smiezen houwen in t [[Special:Log/upload|logboek mit nieje bestaanden]] en t [[Special:Log/delete|vortdologboek]].\n\nUm t bestaand in te voegen in n zied ku'j een van de volgende kodes gebruken:\n* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Bestaand.jpg]]</nowiki>'''\n* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Bestaand.png|alternatieve tekste]]</nowiki>'''\n* '''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:Bestaand.ogg]]</nowiki>''' drekte verwiezing naor n bestaand.",
        "upload-permitted": "Toe-estaone bestaandstypes: $1.",
        "upload-preferred": "An-ewezen bestaandstypes: $1.",
        "upload-prohibited": "Verbeujen bestaandstypes: $1.",
        "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.",
        "uploadvirus": "In dit bestaand zit n virus! Gegevens: $1",
-       "uploadjava": "t Bestaand is n ZIP-bestaand waor n Java .class-bestaand in zit.\nt Inlaojen van Java-bestaanden is niet toe-estaon umdat hiermee beveiligingsinstellingen ummezeild kunnen wörden.",
+       "uploadjava": "t Bestaand is n ZIP-bestaand waor n Java .class-bestaand in zit.\nt Inlaojen van Java-bestaanden is niet toe-estaon umdat hiermee beveiligingsinstellingen umzeild kunnen wörden.",
        "upload-source": "Bronbestaand",
        "sourcefilename": "Bestaandsnaam op de hardeschieve:",
        "sourceurl": "Bronwebadres:",
        "wantedfiletext-cat": "De volgende bestaanden wörden gebruukt mer bestaon niet. Bestaanden van externe databanken kunnen op-eneumen ween in de lieste, ondanks dat ze bestaon. Soortgelieke vals positieven wörden <del>deurehaold weeregeven</del>. Ziejen die niet-bestaonde bestaanden insluten staon op de zied [[:$1]].",
        "wantedfiletext-nocat": "De volgende bestaanden wörden gebruukt mer bestaon niet. Bestaanden van externe databanken kunnen op-eneumen ween in de lieste, ondanks dat ze bestaon. Soortgelieke vals positieven wörden <del>deurehaold weeregeven</del>.",
        "wantedtemplates": "Gewunste mallen",
-       "mostlinked": "Ziejen waor t meest naor verwezen wörden",
+       "mostlinked": "Ziejen waor t meest naor verwezen wördt",
        "mostlinkedcategories": "Meestgebruukten kategorieën",
        "mostlinkedtemplates": "Meestgebruukten mallen",
        "mostcategories": "Artikels mit de meeste kategorieën",
        "delete-toobig": "Disse zied hef n lange bewarkingsgeschiedenisse, meer as $1 {{PLURAL:$1|versie|versies}}.\nt Vortdoon van dit soort ziejen is mit rechten bepark um t per ongelok versteuren van de warking van {{SITENAME}} te veurkoemen.",
        "delete-warning-toobig": "Disse zied hef n lange bewarkingsgeschiedenisse, meer as $1 {{PLURAL:$1|versie|versies}}.\nWoart je: t vortdoon van disse zied kan de warking van de databanke van {{SITENAME}} versteuren.\nWees veurzichtig",
        "rollback": "Wiezigingen herstellen",
-       "rollback_short": "Weerummedreien",
-       "rollbacklink": "Weerummedreien",
+       "rollbacklink": "weerummedreien",
        "rollbacklinkcount": "{{PLURAL:$1|één bewarking|$1 bewarkingen}} weerummedreien",
        "rollbacklinkcount-morethan": "Meer as {{PLURAL:$1|één bewarking|$1 bewarkingen}} weerummedreien",
        "rollbackfailed": "Wieziging herstellen is mislokt",
        "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. Wiezigingen in t beveiligingsnivo van disse zied hebben gien invleud op de kaskadebeveiliging.",
+       "protect-cascadeon": "Disse zied wördt 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",
        "undelete-search-submit": "Zeuk",
        "undelete-no-results": "Gien ziejen evunnen in t archief mit vortedaone ziejen.",
        "undelete-filename-mismatch": "Bestaandsversie van t tiedstip $1 kon niet hersteld wörden: bestaandsnaam kloppen niet",
-       "undelete-bad-store-key": "Bestaandsversie van t tiedstip $1 kon niet hersteld wörden: t bestaand was der al niet meer veurdat t vortedaon wörden.",
+       "undelete-bad-store-key": "Bestaandsversie van t tiedstip $1 kon niet hersteld wörden: t bestaand was der al niet meer veurdat t vortedaon wördden.",
        "undelete-cleanup-error": "Fout bie t herstellen van t ongebruukten archiefbestaand \"$1\".",
        "undelete-missing-filearchive": "t Lokten niet um ID $1 weerumme te plaotsen umdat t niet in de databanke is.\nMisschien is t al weerummeplaotst.",
        "undelete-error": "Der is wat fout egaon bie t vortdoon van de zied",
        "movesubpagetext": "De {{PLURAL:$1|zied die onder disse zied hank|$1 ziejen die onder disse zied hangen}} vie'j hieronder.",
        "movenosubpage": "Onder disse zied hangen gien aandere ziejen.",
        "movereason": "Reden:",
-       "revertmove": "Weerummedreien",
+       "revertmove": "weerummedreien",
        "delete_and_move": "Vortdoon en herneumen",
-       "delete_and_move_text": "==Mut vortedaon wörden==\n<div style=\"color: red\"> Onder de nieje naam \"[[:$1]]\" besteet al n artikel. Wi'j t vortdoon um plaotse te maken veur t herneumen?</div>",
+       "delete_and_move_text": "==Mut vortedaon wörden==\n<div style=\"color: red\"> De zied \"[[:$1]]\" besteet al. Wi'j t vortdoon um te kunnen herneumen?</div>",
        "delete_and_move_confirm": "Ja, disse zied vortdoon",
        "delete_and_move_reason": "Vortedaon vanwegen de herneuming van \"[[$1]]\"",
        "selfmove": "De naam kan niet ewiezigd wörden naor de naam die t al hef.",
        "version-entrypoints-header-url": "Webadres",
        "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 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-summary": "Disse spesiale zied verwis deur naor n bestaand (as de bestaandsnaam op-egeven wördt), n zied (as n zied- of versienummer op-egeven wördt) of n gebrukerszied (as t gebrukersnummer op-egeven wördt). 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:",
        "specialpages-group-spam": "Spam-hulpmiddels",
        "blankpage": "Lege zied",
        "intentionallyblankpage": "Disse zied is bewust leeg eleuten.",
-       "external_image_whitelist": " #Laot disse regel onveraanderd<pre>\n#Hieronder kunnen delen van reguliere uutdrokkingen (t deel tussen //) an-egeven wörden.\n#t Wörden mit de webadressen van aofbeeldingen uut bronnen van butenof vergeleken\n#n Positief vergeliekingsresultaot zörgt derveur dat de aofbeelding weeregeven wörden, aanders wörden de aofbeelding allinnig as verwiezing weeregeven\n#Regels die mit n # beginnen, wörden as kommentaar behaandeld\n#De regels in de lieste bin niet heufdlettergeveulig\n\n#Delen van reguliere uutdrokkingen boven disse regel plaotsen. Laot disse regel onveraanderd</pre>",
+       "external_image_whitelist": " #Laot disse regel onveraanderd<pre>\n#Hieronder kunnen delen van reguliere uutdrokkingen (t deel tussen //) an-egeven wörden.\n#t Wördt mit de webadressen van aofbeeldingen uut bronnen van butenof vergeleken\n#n Positief vergeliekingsresultaot zörgt derveur dat de aofbeelding weeregeven wördt, aanders wördt de aofbeelding allinnig as verwiezing weeregeven\n#Regels die mit n # beginnen, wörden as kommentaar behaandeld\n#De regels in de lieste bin niet heufdlettergeveulig\n\n#Delen van reguliere uutdrokkingen boven disse regel plaotsen. Laot disse regel onveraanderd</pre>",
        "tags": "Geldige wiezigingsetiketten",
        "tag-filter": "[[Special:Tags|Etiketfilter]]:",
        "tag-filter-submit": "Filtreren",
index b5d6908..fd2f490 100644 (file)
        "otherlanguages": "अरु भाषामा",
        "redirectedfrom": "($1 बाट पठाइएको)",
        "redirectpagesub": "अनुप्रेषित पृष्ठ",
+       "redirectto": "अनुप्रेषित पृष्ठ:",
        "lastmodifiedat": "यो पृष्ठलाई अन्तिमपटक $2, $1 मा परिवर्तन गरिएको थियो।",
        "viewcount": "यो पृष्ठ हेरिएको थियो {{PLURAL:$1|एकपटक|$1 पटक}}",
        "protectedpage": "सुरक्षित गरिएका पृष्ठहरू",
        "hidetoc": "लुकाउनुहोस्",
        "collapsible-collapse": "खुम्च्याउने",
        "collapsible-expand": "फैलाउ",
+       "confirmable-yes": "हो",
+       "confirmable-no": "होइन",
        "thisisdeleted": "$1 हेर्ने या पूर्वरुपमा फर्काउने हो ?",
        "viewdeleted": "$1 हेर्ने ?",
        "restorelink": "{{PLURAL:$1|एक मेटिएको सम्पादन |$1 मेटिएका सम्पादनहरू}}",
        "delete-toobig": "यो पृष्ठको सम्पादन इतिहास धेरै र  $1 {{PLURAL:$1|पुनरावलोक|पुनरावलोकहरु}}भन्दा बढी रहेको छ।\n {{SITENAME}}मा दुर्घटनाको कारणले गडबडी आउनसक्ने कुरालाई रोक्न यस्ता पृष्ठहरुलाई मेट्नबाट निषेध गरिएको छ ।",
        "delete-warning-toobig": "This page has a large edit history, over $1 {{PLURAL:$1|revision|revisions}}.\nDeleting it may disrupt database operations of {{SITENAME}};\nproceed with caution.",
        "rollback": "सम्पादनहरु  पछाडि लाने",
-       "rollback_short": "रोलब्याक",
        "rollbacklink": "पहिलेको रुपमा फर्काउने",
        "rollbackfailed": "रोलब्याक असफल",
        "cantrollback": "फर्काउन सकिंदैन;\nअन्तिम योगदान कर्ता मात्र यस पृष्ठका लेखक थिए।",
        "hebrew-calendar-m12-gen": "एलल्",
        "signature": "[[{{ns:user}}:$1|$2]]",
        "timezone-utc": "युटिसी(UTC)",
-       "unknown_extension_tag": "अज्ञात  एक्सटेन्सन ट्याग \"$1\"",
        "duplicate-defaultsort": "'''चेतावनी:''' पूर्व निर्धारित छोटकरी \"$2\" ले पुरानो पूर्वनिर्धारित छोटकरी\"$1\"लाई विस्थापन गरेको छ ।",
        "version": "संस्करण",
        "version-extensions": "स्थापना गरिएका एक्सटेन्सनहरु",
index bc4ae50..0b631b2 100644 (file)
@@ -64,7 +64,8 @@
                        "Macofe",
                        "Mirolith",
                        "Akoopal",
-                       "Sikjes"
+                       "Sikjes",
+                       "Robin0van0der0vliet"
                ]
        },
        "tog-underline": "Koppelingen onderstrepen:",
        "virus-unknownscanner": "onbekend antivirusprogramma:",
        "logouttext": "'''U bent nu afgemeld.'''\n\nSommige pagina's kunnen blijven weergegeven alsof u nog aangemeld bent, totdat u uw browsercache leegt.",
        "welcomeuser": "Welkom, $1!",
-       "welcomecreation-msg": "Uw gebruiker is aangemaakt.\nIndien gewenst kunt u uw [[Special:Preferences|voorkeuren]] voor {{SITENAME}} aanpassen.",
+       "welcomecreation-msg": "Uw account is aangemaakt.\nIndien gewenst kunt u uw [[Special:Preferences|voorkeuren]] voor {{SITENAME}} aanpassen.",
        "yourname": "Gebruikersnaam:",
        "userlogin-yourname": "Gebruikersnaam",
        "userlogin-yourname-ph": "Geef uw gebruikersnaam op",
        "logout": "Afmelden",
        "userlogout": "Afmelden",
        "notloggedin": "Niet aangemeld",
-       "userlogin-noaccount": "Hebt u geen gebruiker?",
+       "userlogin-noaccount": "Hebt u geen account?",
        "userlogin-joinproject": "Word lid van {{SITENAME}}",
-       "nologin": "Hebt u geen gebruiker? $1.",
+       "nologin": "Hebt u geen account? $1.",
        "nologinlink": "Registreren",
        "createaccount": "Registreren",
        "gotaccount": "Hebt u al een gebruiker? $1.",
        "invalidemailaddress": "Het e-mailadres is niet aanvaard, omdat het een ongeldige opmaak heeft.\nGeef een geldig e-mailadres op of laat het veld leeg.",
        "cannotchangeemail": "Het e-mailadres voor een gebruiker kan op deze wiki niet gewijzigd worden.",
        "emaildisabled": "Deze site kan geen e-mails verzenden.",
-       "accountcreated": "Gebruiker aangemaakt",
-       "accountcreatedtext": "De gebruiker [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|overleg]]) is aangemaakt.",
+       "accountcreated": "Account aangemaakt",
+       "accountcreatedtext": "Het gebruikersaccount [[{{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.",
        "login-throttled": "U heeft recentelijk te veel mislukte aanmeldpogingen gedaan.\nWacht alstublieft $1 voordat u het opnieuw probeert.",
        "logentry-patrol-patrol": "$1 {{GENDER:$2|heeft}} versie $4 van pagina $3 gemarkeerd als gecontroleerd",
        "logentry-patrol-patrol-auto": "$1 {{GENDER:$2|heeft}} versie $4 van pagina $3 automatisch gemarkeerd als gecontroleerd",
        "logentry-newusers-newusers": "Gebruiker $1 {{GENDER:$2|is}} aangemaakt",
-       "logentry-newusers-create": "Gebruiker $1 {{GENDER:$2|is}} aangemaakt",
+       "logentry-newusers-create": "Gebruikersaccount $1 {{GENDER:$2|is}} aangemaakt",
        "logentry-newusers-create2": "Gebruiker $3 {{GENDER:$2|is}} aangemaakt door $1",
        "logentry-newusers-byemail": "Gebruiker $3 {{GENDER:$2|is}} aangemaakt door $1 en het wachtwoord is per e-mail verzonden",
-       "logentry-newusers-autocreate": "Gebruiker $1 {{GENDER:$2|is}} automatisch aangemaakt",
+       "logentry-newusers-autocreate": "Gebruikersaccount $1 {{GENDER:$2|is}} automatisch aangemaakt",
        "logentry-rights-rights": "$1 {{GENDER:$2|heeft}} groepslidmaatschap voor $3 gewijzigd van $4 naar $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|heeft}} het groepslidmaatschap gewijzigd voor $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|is}} automatisch gepromoveerd van $4 naar $5",
index e44ec12..1e1748a 100644 (file)
@@ -22,9 +22,9 @@
        "tog-extendwatchlist": "Espandir la lista de seguiment per afichar totas las modificacions e non pas solament las mai recentas",
        "tog-usenewrc": "Agropar los cambiaments per pagina dins los darrièrs cambiaments e la lista de seguiment",
        "tog-numberheadings": "Numerotar automaticament los títols",
-       "tog-showtoolbar": "Far veire la barra de menú",
-       "tog-editondblclick": "Modificar las paginas amb un clic doble",
-       "tog-editsectiononrightclick": "Modificar una seccion en fasent un clic drech suls títols de seccion",
+       "tog-showtoolbar": "Far veire la barra d'aisinas de modificacion (necessita JavaScript)",
+       "tog-editondblclick": "Modificar de paginas amb un clic doble (necessita JavaScript)",
+       "tog-editsectiononrightclick": "Activar la modificacion de seccions en fasent un clic drech suls títols (necessita JavaScript)",
        "tog-watchcreations": "Apondre las paginas que creï e los fichièrs qu'impòrti a ma lista de seguiment",
        "tog-watchdefault": "Apondre las paginas que modifiqui e los fichièrs qu'impòrti a ma lista de seguiment",
        "tog-watchmoves": "Apondre las paginas e los fichièrs que tòrni nomenar a ma lista de seguiment",
@@ -38,9 +38,9 @@
        "tog-enotifminoredits": "M’avertir per corrièr electronic quitament en cas de modificacions menoras de las paginas o dels fichièrs",
        "tog-enotifrevealaddr": "Afichar mon adreça electronica dins la los corrièrs electronics d’avertiment",
        "tog-shownumberswatching": "Afichar lo nombre d'utilizaires que seguisson aquesta pagina",
-       "tog-oldsig": "Apercebut de la signatura existenta :",
+       "tog-oldsig": "Signatura existenta :",
        "tog-fancysig": "Tractar la signatura coma de wikitèxte (sens ligam automatic)",
-       "tog-uselivepreview": "Utilizar l’apercebut rapid (experimental)",
+       "tog-uselivepreview": "Utilizar l’apercebut rapid",
        "tog-forceeditsummary": "M'avertir quand ai pas completat lo contengut de la bóstia de comentaris",
        "tog-watchlisthideown": "Amagar mas pròprias modificacions dins la lista de seguiment",
        "tog-watchlisthidebots": "Amagar los cambiaments faches pels bòts dins la lista de seguiment",
        "pool-queuefull": "La fila de trabalh es plena",
        "pool-errorunknown": "Error desconeguda",
        "pool-servererror": "Lo servici de comptatge de la reserva es pas disponible ($1).",
+       "poolcounter-usage-error": "Error d’utilizacion : $1",
        "aboutsite": "A prepaus de {{SITENAME}}",
        "aboutpage": "Project:A prepaus",
        "copyright": "Lo contengut es disponible jos licéncia $1 levat mencion contrària.",
        "filerenameerror": "Impossible de tornar nomenar lo fichièr « $1 » en « $2 ».",
        "filedeleteerror": "Impossible de suprimir lo fichièr « $1 ».",
        "directorycreateerror": "Impossible de crear lo dorsièr « $1 ».",
+       "directoryreadonlyerror": "Lo repertòri « $1 » es en lectura sola.",
        "filenotfound": "Impossible de trobar lo fichièr « $1 ».",
        "unexpected": "Valor imprevista : « $1 » = « $2 ».",
        "formerror": "Error: Impossible de sometre lo formulari",
        "viewsourcetext": "Podètz veire e copiar lo contengut de l’article per poder trabalhar dessús :",
        "viewyourtext": "Podètz veire e copiar lo contengut de '''vòstras modificacions''' a aquesta pagina :",
        "protectedinterface": "Aquesta pagina provesís de tèxte d’interfàcia pel logicial susaqueste wiki, e es protegida per evitar los abuses.\nPer apondre o modificar de traduccions sus totes los wikis, utilizatz [//translatewiki.net/ translatewiki.net], lo projècte de localizacion de MediaWiki.",
-       "editinginterface": "'''Atencion :''' sètz a mand de modificar una pagina utilizada per crear lo tèxte de l’interfàcia del logicial. Los cambiaments sus aquesta pagina se repercutaràn sus l'aparéncia de l'interfàcia d'utilizaire pels autres utilizaires d'aqueste wiki. Per apondre o modificar de traduccions per totes los wikis, utilizatz [//translatewiki.net/translatewiki.net], lo projècte MediaWiki d'internacionalizacion dels messatges .",
+       "editinginterface": "<strong>Atencion :<strong> sètz a mand de modificar una pagina utilizada per crear lo tèxte de l’interfàcia del logicial.\nLos cambiaments sus aquesta pagina se repercutaràn sus l'aparéncia de l'interfàcia d'utilizaire pels autres utilizaires d'aqueste wiki.",
        "cascadeprotected": "Aquesta pagina es actualament protegida perque es inclusa dins {{PLURAL:$1|la pagina seguenta|las paginas seguentas}}, {{PLURAL:$1|qu'es estada protegida|que son estadas protegidas}} amb l’opcion « proteccion en cascada » activada :\n$2",
        "namespaceprotected": "Avètz pas la permission de modificar las paginas de l’espaci de noms « '''$1''' ».",
        "customcssprotected": "Avètz pas la permission d'editar aquesta pagina CSS perque conten de preferéncias d’autres utilizaires.",
        "showpreview": "Previsualizacion",
        "showdiff": "Veire los cambiaments",
        "blankarticle": "<strong>Atencion :</strong> La pagina que creatz es voida.\nSe clicatz tornarmai sus « {{int:savearticle}} », la pagina serà creada sens cap de contengut.",
-       "anoneditwarning": "'''Atencion :''' sètz pas identificat(ada).\nVòstra adreça IP serà enregistrada dins l’istoric d'aquesta pagina.",
+       "anoneditwarning": "<strong>Atencion :<strong> sètz pas connectat.\nVòstra adreça IP serà visibla per tot lo monde se fasètz de modificacions. Se <strong>[$1 vos connectatz]</strong> o <strong>[$2 creatz un compte]</strong>, vòstras modificacions seràn atribuidas a vòstre nom d’utilizaire, entre autres avantatges.",
        "anonpreviewwarning": "''Sètz pas identificat. Salvar enregistrarà vòstra adreça IP dins l’istoric de las modificacions de la pagina.''",
        "missingsummary": "'''Atencion :''' avètz pas modificat lo resumit de vòstra modificacion. Se clicatz tornarmai sul boton « Salvar », lo salvament serà fach sens avertiment mai.",
        "missingcommenttext": "Mercé de metre un comentari çaijós.",
        "content-model-text": "tèxte brut",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Objècte void",
+       "content-json-empty-array": "Tablèu void",
        "expensive-parserfunction-warning": "Atencion : Aquesta pagina conten tròp d’apèls dispendioses de foncions del parser.\n\nI deurià aver mens de {{PLURAL:$2|ampèl|ampèls}}, e actualament {{PLURAL:$1|i a $1 ampèl|i a $1 ampèls}}..",
        "expensive-parserfunction-category": "Paginas amb tròp d’apèls dispendioses de foncions parsaires",
        "post-expand-template-inclusion-warning": "Atencion : Aquesta pagina conten tròp d'inclusions de modèls.\nD'unas inclusions seràn pas efectuadas.",
        "history-feed-empty": "La pagina demandada existís pas.\nBenlèu es estada escafada o renomenada.\nEnsajatz de [[Special:Search|recercar sul wiki]] per trobar de paginas en rapòrt.",
        "rev-deleted-comment": "(resumit de comentari suprimit)",
        "rev-deleted-user": "(nom d’utilizaire suprimit)",
-       "rev-deleted-event": "(entrada suprimida)",
+       "rev-deleted-event": "(detalhs de l'entrada suprimida)",
        "rev-deleted-user-contribs": "[nom d'utilizaire o adreça IP suprimida - modificacion amagada sus las contribucions]",
        "rev-deleted-text-permission": "Aquesta version de la pagina es estada '''escafada'''.\nI pòt aver de detalhs dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal dels escafaments].",
        "rev-suppressed-text-permission": "Aquesta version de la page es estada <strong>suprimida</strong>.\nLos detalhs se tròban dins lo [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} jornal de las supressions].",
        "revdelete-legend": "Metre en plaça de restriccions de version :",
        "revdelete-hide-text": "Tèxte de la revision",
        "revdelete-hide-image": "Amagar lo contengut del fichièr",
-       "revdelete-hide-name": "Amagar l’accion e la cibla",
+       "revdelete-hide-name": "Amagar la cibla e los paramètres",
        "revdelete-hide-comment": "Modificar lo resumit",
        "revdelete-hide-user": "Nom d’utilizaire/Adreça IP de l’editor",
        "revdelete-hide-restricted": "Suprimir aquestas donadas als administrators e mai als autres",
        "search-result-category-size": "$1 membre{{PLURAL:$1||s}} ($2 soscategoria{{PLURAL:$2||s}}, $3 fichièr{{PLURAL:$3||s}})",
        "search-redirect": "(redireccion cap a $1)",
        "search-section": "(seccion $1)",
+       "search-category": "(categoria $1)",
        "search-file-match": "(correspond al contengut del fichièr)",
        "search-suggest": "Avètz volgut dire : $1",
        "search-interwiki-caption": "Projèctes fraires",
        "searchall": "Totes",
        "showingresults": "Afichatge de <b>$1</b> resultat{{PLURAL:$1||s}} a partir del n°<b>$2</b>.",
        "showingresultsinrange": "Afichar çaijós fins a {{PLURAL:$1|<strong>1</strong> resultat|<strong>$1</strong> resultats}} dins la seria #<strong>$2</strong> a #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Resultat <strong>$1</strong> demest <strong>$3</strong>|Resultats <strong>$1 a $2</strong> demest <strong>$3</strong>}}",
        "search-nonefound": "I a pas cap de resultat correspondent a la requèsta.",
        "powersearch-legend": "Recèrca avançada",
        "powersearch-ns": "Recercar dins los espacis de nom :",
        "gender-female": "Modifica de paginas del wiki",
        "prefs-help-gender": "Definir aquesta preferéncia es facultatiu.\nAqueste logicial utiliza sa valor per s’adreçar a vos e vos mencionar als autres en utilizant lo bon genre gramatical.\nAquesta informacion serà publica.",
        "email": "Corrièr electronic",
-       "prefs-help-realname": "(facultatiu) : se l'especificatz, serà utilizat per vos atribuir vòstras contribucions.",
+       "prefs-help-realname": "Lo nom vertadièr es facultatiu.\nSe l'especificatz, serà utilizat per vos atribuir vòstras contribucions.",
        "prefs-help-email": "L’adreça de corrièr electronic es facultativa mas vos permet de reçaupre lo senhal se lo doblidatz.\nTanben podètz causir de permetre a d’autres de vos contactar per vòstra pagina d’utilizaire o la de discussion sens sofracha de desvelar vòstra idenditat.",
        "prefs-help-email-others": "Tanben podètz causir de daissar los autres vos contactar sus vòstra pagina de discussion d'utilizaire sens que siá necessari de revelar vòstra identitat.",
        "prefs-help-email-required": "Una adreça de corrièr electronic es requesa.",
        "uploaderror": "Error",
        "upload-recreate-warning": "'''Atencion : Un fichièr amb aqueste nom es estat suprimit o desplaçat.'''\n\nLo jornal de las supressions e lo dels desplaçaments d'aquesta pagina son afichats aicí per informacion :",
        "uploadtext": "Utilizatz lo formulari çaijós per importar de fichièrs sul servidor.\nPer veire o recercar d'imatges mandats precedentament, consultatz [[Special:FileList|la lista dels imatges]]. Las còpias e las supressions tanben son enregistradas dins l'[[Special:Log/upload|istoric dels impòrts]], las supressions dins l’[[Special:Log/delete|istoric de las supressions]].\n\nPer inclure un imatge dins una pagina, utilizatz un ligam de la forma\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichièr.jpg]]</nowiki></code>''',\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichièr.png|200px|thumb|left|tèxte descriptiu]]</nowiki></code>''' per utilizar una miniatura de 200 pixèls de larg dins una bóstia a esquèrra amb 'tèxte descriptiu' coma descripcion\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:fichièr.ogg]]</nowiki></code>''' per ligar dirèctament cap al fichièr sens l'afichar.",
-       "upload-permitted": "Formats de fichièrs autorizats : $1.",
-       "upload-preferred": "Formats de fichièrs preferits : $1.",
-       "upload-prohibited": "Formats de fichièrs interdiches : $1.",
+       "upload-permitted": "{{PLURAL:$2|Tipe|Tipes}} de fichièrs autorizats : $1.",
+       "upload-preferred": "{{PLURAL:$2|Tipe|Tipes}} de fichièrs preferits : $1.",
+       "upload-prohibited": "{{PLURAL:$2|Tipe|Tipes}} de fichièrs interdiches : $1.",
        "uploadlogpage": "Istoric de las importacions de fichièrs multimèdia",
        "uploadlogpagetext": "Aquí la lista dels darrièrs fichièrs copiats sul servidor.\nVejatz la [[Special:NewFiles|galariá dels imatges novèls]] per una presentacion mai visuala.",
        "filename": "Nom del fichièr",
        "pager-older-n": "{{PLURAL:$1|1 mai anciana|$1 mai ancianas}}",
        "suppress": "Supervisor",
        "querypage-disabled": "Aquesta pagina especiala es desactivada per de rasons de performàncias.",
+       "apihelp": "Ajuda de l'API",
+       "apihelp-no-such-module": "Lo modul « $1 » es introbable.",
        "booksources": "Obratges de referéncia",
        "booksources-search-legend": "Recercar demest d'obratges de referéncia",
        "booksources-isbn": "ISBN :",
        "wlheader-enotif": "La notificacion per corrièr electronic es activada.",
        "wlheader-showupdated": "Las paginas que son estadas modificadas dempuèi vòstra darrièra visita son afichadas en '''gras'''.",
        "wlnote": "Çaijós {{PLURAL:$1|figura la darrièra modificacion efectuada|figuran las <strong>$1</strong> darrièras modificacions efectuadas}} pendent {{PLURAL:$2|la darrièra ora|las <strong>$2</strong> darrièras oras}}, dempuèi $3, $4.",
-       "wlshowlast": "Far veire las darrièras $1 oras, los darrièrs $2 jorns, o .",
+       "wlshowlast": "Far veire las darrièras $1 oras, los darrièrs $2 jorns",
        "watchlist-options": "Opcions de la lista de seguiment",
        "watching": "Seguit...",
        "unwatching": "Fin del seguit...",
        "delete-warning-toobig": "Aquesta pagina dispausa d'un istoric important, depassant {{PLURAL:$1|revision|revisions}}.\nLa suprimir pòt perturbar lo foncionament de la banca de donada de {{SITENAME}}.\nD'efectuar amb prudéncia.",
        "deleteprotected": "Podètz pas suprimir aquesta pagina perque es estada protegida.",
        "rollback": "Anullar las modificacions",
-       "rollback_short": "Anullar",
        "rollbacklink": "anullar",
        "rollbacklinkcount": "revocar $1 {{PLURAL:$1|modificacion|modificacions}}",
        "rollbacklinkcount-morethan": "revocar mai de $1 {{PLURAL:$1|modificacion|modificacions}}",
        "protect_expiry_invalid": "Lo temps d’expiracion es invalid",
        "protect_expiry_old": "Lo temps d’expiracion ja es passat.",
        "protect-unchain-permissions": "Desvarrolhar ancara mai d'opcions de proteccion",
-       "protect-text": "Podètz consultar e modificar lo nivèl de proteccion de la pagina '''$1'''. Asseguratz-vos que seguissètz las règlas intèrnas.",
-       "protect-locked-blocked": "Podètz pas modificar lo nivèl de proteccion tant que sètz blocat. Vaquí los reglatges actuals de la pagina '''$1''' :",
-       "protect-locked-dblock": "Lo nivèl de proteccion pòt pas èsser modificat perque la banca de donadas es blocada. Vaquí los reglatges actuals de la pagina '''$1''' :",
-       "protect-locked-access": "Avètz pas los dreches necessaris per modificar la proteccion de la pagina. Vaquí los reglatges actuals de la pagina '''$1''' :",
+       "protect-text": "Podètz consultar e modificar lo nivèl de proteccion de la pagina «$1».",
+       "protect-locked-blocked": "Podètz pas modificar los nivèls de proteccion tant que sètz bloca{{GENDER:||t|ada}}.. Vaquí los reglatges actuals de la pagina <strong>$1</strong> :",
+       "protect-locked-dblock": "Lo nivèl de proteccion pòt pas èsser modificat perque la banca de donadas es varrolhada.\nVaquí los reglatges actuals de la pagina <strong>$1</strong> :",
+       "protect-locked-access": "Avètz pas los dreches necessaris per modificar los nivèls de proteccion de las paginas.\nVaquí los reglatges actuals de la pagina <strong>$1</strong> :",
        "protect-cascadeon": "Aquesta pagina es protegida perque es inclusa dins {{PLURAL:$1|la pagina seguenta qu'es estada protegida|las paginas seguentas que son estadas protegidas}}, amb l’opcion « proteccion en cascada » activada. Podètz cambiar lo nivèl de proteccion d'aquesta pagina sens qu'aquò afècte la proteccion en cascada.",
        "protect-default": "Autorizar totes los utilizaires",
        "protect-fallback": "Autorizar unicament los utilizaires amb lo drech « $1 »",
        "undeletedrevisions-files": "{{PLURAL:$1|1 revision|$1 revisions}} e {{PLURAL:$2|1 fichièr restablit|$2 fichièrs restablits}}",
        "undeletedfiles": "$1 {{PLURAL:$1|fichièr restablit|fichièrs restablits}}",
        "cannotundelete": "Fracàs del restabliment :\n$1",
-       "undeletedpage": "'''La pagina $1 es estada restablida'''.\n\nConsultatz l’[[Special:Log/delete|istoric de las supressions]] per veire las paginas recentament suprimidas e restablidas.",
+       "undeletedpage": "<strong>La pagina $1 es estada restablida</strong>.\n\nConsultatz l’[[Special:Log/delete|istoric de las supressions]] per veire la lista de las supressions e dels restabliments recents.",
        "undelete-header": "Consultatz l’[[Special:Log/delete|istoric de las supressions]] per veire las paginas recentament suprimidas.",
        "undelete-search-title": "Recercar las paginas suprimidas",
        "undelete-search-box": "Cercar una pagina suprimida",
        "sp-contributions-blocklog": "Istoric dels blocatges",
        "sp-contributions-suppresslog": "contribucions suprimidas d’un utilizaire",
        "sp-contributions-deleted": "contribucions suprimidas",
-       "sp-contributions-uploads": "importat",
+       "sp-contributions-uploads": "impòrts",
        "sp-contributions-logs": "jornals",
        "sp-contributions-talk": "Discutir",
        "sp-contributions-userrights": "gerir los dreches",
        "sp-contributions-blocked-notice-anon": "Aquesta adreça IP es actualament blocada.\nLa darrièra intrada del jornal dels blocatges es indicada çaijós a títol d’informacion :",
        "sp-contributions-search": "Cercar las contribucions",
        "sp-contributions-username": "Adreça IP o nom d’utilizaire :",
-       "sp-contributions-toponly": "Mostrar sonque las contribucions que son lo darrièr cambiament",
+       "sp-contributions-toponly": "Mostrar sonque las contribucions que son las darrièras dels articles",
        "sp-contributions-newonly": "Afichar unicament las modificacions que son de creacions de pagina",
        "sp-contributions-submit": "Cercar",
        "whatlinkshere": "Paginas ligadas a aquesta",
        "nolinkshere-ns": "Cap de pagina conten pas de ligam cap a '''[[:$1]]''' dins l’espaci de nom causit.",
        "isredirect": "pagina de redireccion",
        "istemplate": "inclusion",
-       "isimage": "Paginas ligadas al fichièr",
+       "isimage": "ligam cap al fichièr",
        "whatlinkshere-prev": "{{PLURAL:$1|precedent|$1 precedents}}",
        "whatlinkshere-next": "{{PLURAL:$1|seguent|$1 seguents}}",
        "whatlinkshere-links": "← ligams",
        "ipaddressorusername": "Adreça IP o nom d’utilizaire :",
        "ipbexpiry": "Durada del blocatge :",
        "ipbreason": "Motiu :",
-       "ipbreason-dropdown": "* Motius de blocatge mai frequents\n** Vandalisme\n** Insercion d’informacions faussas\n** Supression de contengut sens justificacion\n** Insercion repetida de ligams extèrnes publicitaris (spam)\n** Insercion de contengut sens cap de sens\n** Temptativa d’intimidacion o agarriment\n** Abús d’utilizacion de comptes multiples\n** Nom d’utilizaire inacceptable, injuriós o difamant",
+       "ipbreason-dropdown": "* Motius de blocatge mai frequents\n** Insercion d’informacions faussas\n** Supression injustificada de contengut de las paginas\n** Insercion repetida de ligams extèrnes publicitaris (spam)\n** Insercion de contengut sens cap de sens e de bordilhas dins las paginas\n** Temptativa d’intimidacion o agarriment\n** Abús d’utilizacion de comptes multiples\n** Nom d’utilizaire inacceptable, injuriós o difamant",
        "ipb-hardblock": "Empachar los utilizaires connectats de modificar en utilizant aquesta adreça IP",
        "ipbcreateaccount": "Empachar la creacion de compte",
        "ipbemailban": "Empachar l’utilizaire de mandar de corrièrs electronics",
        "unblocked": "[[User:$1|$1]] es estat desblocat",
        "unblocked-range": "$1 es estat desblocat",
        "unblocked-id": "Lo blocatge $1 es estat levat",
-       "blocklist": "Utilizaires o adreças IP blocats",
-       "ipblocklist": "Utilizaires o adreças IP blocats",
+       "blocklist": "Utilizaires blocats",
+       "ipblocklist": "Utilizaires blocats",
        "ipblocklist-legend": "Cercar un utilizaire blocat",
        "blocklist-userblocks": "Amagar los blocatges de comptes",
        "blocklist-tempblocks": "Amagar los blocatges temporaris",
        "unblocklink": "desblocar",
        "change-blocklink": "modificar lo blocatge",
        "contribslink": "contribucions",
-       "emaillink": "mandar un messatge",
+       "emaillink": "Mandar un corrièr electronic",
        "autoblocker": "Sètz estat blocat automaticament perque vòstra adreça IP es estada utilizada recentament per « [[User:$1|$1]] ».\nLo motiu provesit pel blocatge de $1 es « $2 »",
        "blocklogpage": "Istoric dels blocatges",
        "blocklog-showlog": "Aqueste utilizaire es estat blocat precedentament. Lo jornal dels blocatges es disponible çaijós :",
        "movepagetalktext": "La pagina de discussion associada, se presenta, serà automaticament desplaçada amb ''' levat se :'''\n*Desplaçatz una pagina cap a un autre espaci,\n*Una pagina de discussion ja existís amb lo nom novèl, o\n*Avètz deseleccionat lo boton çaijós.\n\nDins aqueste cas, vos caldrà desplaçar o fusionar la pagina manualament se o volètz.",
        "movearticle": "Tornar nomenar l'article",
        "moveuserpage-warning": "'''Atencion :''' Sètz a mand de tornar nomenar una pagina d’utilizaire. Notatz que sola la pagina serà renomenada e que l’utilizaire '''ne''' serà '''pas''' renomenat.",
-       "movenologintext": "Per poder tornar nomenar un article, vos cal èsser [[Special:UserLogin|connectat(ada)]]\nen tant qu'utilizaire enregistrat.",
-       "movenotallowed": "Avètz pas la permission de tornar nomenar de paginas.",
+       "movenologintext": "Per poder renomenar una pagina, vos cal èsser [[Special:UserLogin|indentific{{GENDER:||t|da)}}]]\nen tant qu'utilizaire enregistrat amb pro d'ancianetat.",
+       "movenotallowed": "Avètz pas la permission de renomenar de paginas.",
        "movenotallowedfile": "Avètz pas la permission de desplaçar los fichièrs.",
-       "cant-move-user-page": "Avètz pas la permission de tornar nomenar de paginas d'utilizaires raices sus aqueste wiki.",
+       "cant-move-user-page": "Avètz pas la permission de renomenar las paginas principalas d'utilizaires.",
        "cant-move-to-user-page": "Avètz pas la permission de tornar nomenar una pagina cap a una pagina d'utilizaire (a l'excepcion d'una sospagina).",
        "cant-move-category-page": "Avètz pas la permission de renomenar las paginas de categorias.",
        "newtitle": "Títol novèl",
        "move-watch": "Seguir aquesta pagina",
        "movepagebtn": "Tornar nomenar l'article",
        "pagemovedsub": "Cambiament de nom capitat",
-       "movepage-moved": "La pagina « $1 » es estada renomenada en « $2 ».",
+       "movepage-moved": "'''« $1 » es estada renomenada en « $2 »'''",
        "movepage-moved-redirect": "Una redireccion es estada creada.",
        "movepage-moved-noredirect": "La creacion de la redireccion es estada suprimida.",
        "articleexists": "Existís ja un article que pòrta aqueste títol, o lo títol qu'avètz causit es pas valid.\nCausissètz-ne un autre.",
        "allmessagesdefault": "Messatge per defaut",
        "allmessagescurrent": "Messatge actual",
        "allmessagestext": "Aquò es la lista de totes los messatges disponibles dins l’espaci MediaWiki.\nVisitatz la [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localizacion MediaWiki] e [//translatewiki.net translatewiki.net] se desiratz contribuir a la localizacion MediaWiki generica.",
-       "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' es pas disponible perque '''$wgUseDatabaseMessages''' es desactivat.",
+       "allmessagesnotsupportedDB": "Aquesta pagina '''{{ns:special}}:Allmessages''' es pas utilizabla perque '''$wgUseDatabaseMessages''' es estat desactivat.",
        "allmessages-filter-legend": "Filtre",
        "allmessages-filter": "Filtrar per estat de modificacion :",
        "allmessages-filter-unmodified": "Pas modificat",
        "import-revision-count": "$1 {{PLURAL:$1|version|versions}}",
        "importnopages": "Cap de pagina d'importar.",
        "imported-log-entries": "$1 {{PLURAL:$1|entrada|entradas}} del jornal {{PLURAL:$1|importada|importadas}}.",
-       "importfailed": "Fracàs de l’impòrt : $1",
+       "importfailed": "Fracàs de l'importacion : <nowiki>$1</nowiki>",
        "importunknownsource": "Tipe de la font d’impòrt desconegut",
        "importcantopen": "Impossible de dobrir lo fichièr d'importar",
        "importbadinterwiki": "Ligam interwiki marrit",
        "import-rootpage-nosubpage": "L'espaci de noms « $1 » de la pagina raiç autoriza pas las sospaginas.",
        "importlogpage": "Istoric de las importacions de paginas",
        "importlogpagetext": "Impòrts administratius de paginas amb l’istoric a partir dels autres wikis.",
-       "import-logentry-upload": "a importat (telecargament) [[$1]]",
+       "import-logentry-upload": "a importat [[$1]] per mandadís de fichièr",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|revision importada|revisions importadas}}",
-       "import-logentry-interwiki": "a importat (transwiki) $1",
+       "import-logentry-interwiki": "a importat $1 d'un wiki a l'autre",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|revision importada|revisions importadas}} dempuèi $2",
        "javascripttest": "Tèst de JavaScript",
-       "javascripttest-title": "Execucion dels tèsts $1",
        "javascripttest-pagetext-noframework": "Aquesta pagina es reservada per l'execucion dels tèsts JavaScript.",
        "javascripttest-pagetext-unknownframework": "Estructura « $1 » desconeguda.",
+       "javascripttest-pagetext-unknownaction": "Accion « $1 » desconeguda.",
        "javascripttest-pagetext-frameworks": "Causissètz una de las estructuras de tèst seguentas : $1",
        "javascripttest-pagetext-skins": "Causissètz un abilhatge amb lo qual cal aviar los tèsts :",
        "javascripttest-qunit-intro": "Veire [$1 la documentacion de tèst] sus mediawiki.org.",
-       "javascripttest-qunit-heading": "Seguida de tèst QUnit de JavaScript sus MediaWiki",
        "tooltip-pt-userpage": "Vòstra pagina d'utilizaire",
        "tooltip-pt-anonuserpage": "La pagina d'utilizare de l’IP amb la quala contribuissètz",
        "tooltip-pt-mytalk": "Vòstra pagina de discussion",
        "others": "autres",
        "siteusers": "{{PLURAL:$2|utilizaire|utilizaires}} $1 de {{SITENAME}}",
        "anonusers": "{{PLURAL:$2|l'utilizaire anonim|los utilizaires anonims}} $1 de {{SITENAME}}",
-       "creditspage": "Pagina de crèdits",
+       "creditspage": "Crèdits de la pagina",
        "nocredits": "I a pas d’entresenhas d’atribucion disponiblas per aquesta pagina.",
        "spamprotectiontitle": "Pagina protegida automaticament per causa de spam",
        "spamprotectiontext": "La pagina qu'avètz ensajat de publicar es estada blocada pel filtre antispam.\nAquò es probablament causat per un ligam sus lista negra que punta cap a un site extèrne.",
        "markedaspatrollederrornotify": "Fracàs del marcatge coma contrarotlat.",
        "patrol-log-page": "Istoric de las versions patrolhadas",
        "patrol-log-header": "Vaquí un jornal de las versions patrolhadas.",
-       "log-show-hide-patrol": "$1 l'istoric de las versions patrolhadas",
+       "log-show-hide-patrol": "$1 l'istoric de las relecturas",
        "deletedrevision": "La version anciana $1 es estada suprimida.",
        "filedeleteerror-short": "Error al moment de la supression del fichièr : $1",
        "filedeleteerror-long": "D'errors son estadas rencontradas al moment de la supression del fichièr :\n\n$1",
        "filedelete-archive-read-only": "Lo dorsièr d’archivatge « $1 » es pas modificable pel servidor.",
        "previousdiff": "← Cambiament precedent",
        "nextdiff": "Cambiament seguent →",
-       "mediawarning": "'''Atencion :''' Aqueste fichièr pòt conténer de còde malvolent.\nSe l'executatz, vòstre sistèma pòt èsser compromés.",
+       "mediawarning": "<strong>Atencion :</strong> Aqueste tipe de fichièr pòt conténer de còde malvolent.\nSe l'executatz, vòstre sistèma pòt èsser compromés.",
        "imagemaxsize": "Format maximal dels imatges :<br />''(per las paginas de descripcion d’imatges)''",
        "thumbsize": "Talha de la miniatura :",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|pagina|paginas}}",
        "file-info": "Talha del fichièr: $1, tipe MIME: $2",
        "file-info-size": "$1 × $2 pixèl, talha del fichièr: $3, tipe MIME: $4",
        "file-info-size-pages": "$1 × $2 pixèls, talha de fichièr: $3, tipe MIME: $4, $5 {{PLURAL:$5|pagina|paginas}}",
-       "file-nohires": "Pas de resolucion mai nauta disponibla.",
+       "file-nohires": "Pas de resolucion mai nauta de disponibla.",
        "svg-long-desc": "Fichièr SVG, resolucion de $1 × $2 pixèls, talha : $3",
        "svg-long-desc-animated": "Fichièr SVG animat, talha $1 x $2 pixèls, talha del fichièr : $3",
        "svg-long-error": "Fichièr SVG invalid : $1",
        "saturday-at": "Dissabte a $1",
        "sunday-at": "Dimenge a $1",
        "yesterday-at": "Ièr a $1",
-       "bad_image_list": "Lo format es lo seguent :\n\nSolas las listas d'enumeracion (las linhas començant per *) son presas en compte. Lo primièr ligam d'una linha deu èsser cap a un imatge marrit.\nLos autres ligams sus la meteissa linha son considerats coma d'excepcions, per exemple d'articles sulsquals l'imatge deu aparéisser.",
+       "bad_image_list": "Lo format es lo seguent :\n\nSolas las listas d'enumeracion (las linhas començant per *) son presas en compte. Lo primièr ligam d'una linha deu èsser cap a un imatge marrit.\nLos autres ligams sus la meteissa linha son considerats coma d'excepcions, per exemple de paginas sus las quals l'imatge deu aparéisser.",
        "variantname-kk-arab": "kk-arabi",
        "variantname-ku-arab": "ku-Arabi",
        "metadata": "Metadonadas",
        "metadata-help": "Aqueste fichièr conten d'entresenhas suplementàrias probablament apondudas per l’aparelh de fòto numeric o l'escanèr que las a aquesas. Se lo fichièr es estat modificat dempuèi son estat original, d'unes detalhs pòdon reflectir pas entièrament l’imatge modificat.",
        "metadata-expand": "Far veire las entresenhas detalhadas",
        "metadata-collapse": "Amagar las entresenhas detalhadas",
-       "metadata-fields": "Los camps de metadonadas d’EXIF listats dins aqueste message seràn incluses dins la pagina de descripcion de l’imatge quand la taula de metadonadas serà reducha. Los autres camps seràn amagats per manca.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "Los camps de metadonadas d’EXIF listats dins aqueste messatge seràn incluses dins la pagina de descripcion de l’imatge quand la taula de metadonadas serà redusida. Los autres camps seràn amagats per defaut.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "Largor",
        "exif-imagelength": "Nautor",
        "exif-bitspersample": "Bits per compausanta",
        "exif-iimcategory-evn": "Environament",
        "exif-iimcategory-hth": "Santat",
        "exif-iimcategory-hum": "Interès uman",
-       "exif-iimcategory-lab": "Tribailh",
+       "exif-iimcategory-lab": "Trabalh",
        "exif-iimcategory-lif": "Mòde de vida e de lésers",
-       "exif-iimcategory-pol": "Politic",
+       "exif-iimcategory-pol": "Politica",
        "exif-iimcategory-rel": "Religion e cresenças",
        "exif-iimcategory-sci": "Sciéncia e tecnologia",
        "exif-iimcategory-soi": "Questions socialas",
        "exif-iimcategory-spo": "Espòrts",
-       "exif-iimcategory-war": "Guèrra, conflictes",
+       "exif-iimcategory-war": "Guèrra, conflictes e borrolhs",
        "exif-iimcategory-wea": "Metèo",
        "exif-urgency-normal": "Normala ($1)",
        "exif-urgency-low": "Febla ($1)",
        "confirmemail": "Confirmar l'adreça de corrièr electronic",
        "confirmemail_noemail": "L’adreça de corrièr electronic configurada dins vòstras [[Special:Preferences|preferéncias]] es pas valida.",
        "confirmemail_text": "{{SITENAME}} necessita la verificacion de vòstra adreça de corrièr electronic abans de poder utilizar tota foncion de messatjariá. Utilizatz lo boton çaijós per mandar un corrièr electronic de confirmacion a vòstra adreça. Lo corrièr contendrà un ligam contenent un còde, cargatz aqueste ligam dins vòstre navigador per validar vòstra adreça.",
-       "confirmemail_pending": "Un còde de confirmacion ja vos es estat mandat per corrièr electronic ; se venètz de crear vòstre compte, esperatz qualques minutas que l’e-mail arribe abans de demandar un còde novèl.",
+       "confirmemail_pending": "Un còde de confirmacion ja vos es estat mandat per corrièr electronic ;\nse venètz de crear vòstre compte, esperatz qualques minutas que l’e-mail arribe abans de demandar un còde novèl.",
        "confirmemail_send": "Mandar un còde de confirmacion",
        "confirmemail_sent": "Corrièr electronic de confirmacion mandat.",
        "confirmemail_oncreate": "Un còde de confirmacion es estat mandat a vòstra adreça de corrièr electronic.\nAqueste còde es pas requerit per se connectar, mas n'aurètz besonh per activar las foncionalitats ligadas als corrièrs electronics sus aqueste wiki.",
        "confirm_purge_button": "Confirmar",
        "confirm-purge-top": "Volètz refrescar aquesta pagina (purgar l'escondedor) ?",
        "confirm-purge-bottom": "Purgar una pagina vioda l'escondedor e fòrça la darrièra version a èsser afichada.",
-       "confirm-watch-button": "Confirmar",
-       "confirm-watch-top": "Apondre aquesta pagina a vòstra lista de seguiment?",
-       "confirm-unwatch-button": "Confirmar",
-       "confirm-unwatch-top": "Levar aquesta pagina de vòstra lista de seguiment?",
+       "confirm-watch-button": "D'acòrdi",
+       "confirm-watch-top": "Apondre aquesta pagina a vòstra lista de seguiment ?",
+       "confirm-unwatch-button": "D'acòrdi",
+       "confirm-unwatch-top": "Levar aquesta pagina de vòstra lista de seguiment ?",
        "colon-separator": "&nbsp;:&#32;",
        "quotation-marks": "« $1 »",
        "imgmultipageprev": "← pagina precedenta",
        "table_pager_first": "Primièra pagina",
        "table_pager_last": "Darrièra pagina",
        "table_pager_limit": "Far veire $1 elements per pagina",
-       "table_pager_limit_label": "Elements per pagina:",
+       "table_pager_limit_label": "Resultats per pagina :",
        "table_pager_limit_submit": "Accedir",
        "table_pager_empty": "Cap de resultat",
        "autosumm-blank": "Blanquiment de la pagina",
        "lag-warn-high": "En rason d’una fòrta carga de las bancas de donadas, los cambiaments que datan de mens de $1 {{PLURAL:$1|segonda|segondas}} pòdon aparéisser pas dins aquesta lista.",
        "watchlistedit-normal-title": "Modificacion de la lista de seguiment",
        "watchlistedit-normal-legend": "Levar de paginas de la lista de seguiment",
-       "watchlistedit-normal-explain": "Las paginas que seguissètz son visiblas çaijós, classadas per espaci de noms. Per levar una pagina (e sa pagina de discussion) de la lista, seleccionatz la casa al costat puèi clicatz sul boton en bas. Tanben la podètz [[Special:EditWatchlist/raw|modificar en mòde brut]].",
+       "watchlistedit-normal-explain": "Las paginas que seguissètz son visiblas çaijós, classadas per espaci de noms.\nPer levar una pagina (e sa pagina de discussion) de la lista, seleccionatz la casa al costat puèi clicatz sul boton en bas.\nTanben la podètz [[Special:EditWatchlist/raw|modificar en mòde brut]].",
        "watchlistedit-normal-submit": "Levar las paginas seleccionadas",
        "watchlistedit-normal-done": "{{PLURAL:$1|Una pagina es estada levada|$1 paginas son estadas levadas}} de vòstra lista de seguiment :",
        "watchlistedit-raw-title": "Modificacion de la lista de seguiment (mòde brut)",
        "watchlistedit-raw-legend": "Modificacion de la lista de seguiment en mòde brut",
-       "watchlistedit-raw-explain": "!!FLa lista de las paginas que seguissètz es afichada çaijós, sens las paginas de discussion (enclusas automaticament) e triadas per espaci de noms. Podètz modificar la lista, apondètz las paginas que volètz seguir (pauc impòrta ont), una pagina per linha, e levatz las paginas que volètz pas mai seguir. Tanlèu acabat, clicatz sul boton en bas per metre la lista a jorn. Tanben podètz utilizar [[Special:EditWatchlist|l’editor normal]].",
+       "watchlistedit-raw-explain": "Los títols de vòstra lista de seguiment son afichats çaijós e pòdon èsser modificats en los apondent o los levant de la lista (un títol per linha). Quand avètz acabat, clicatz sul boton « {{int:Watchlistedit-raw-submit}} » en bas. Tanben podètz [[Special:EditWatchlist|utilizar l'editor normal]].",
        "watchlistedit-raw-titles": "Títols :",
        "watchlistedit-raw-submit": "Metre la lista a jorn",
        "watchlistedit-raw-done": "Vòstra lista de seguiment es estada mesa a jorn.",
        "watchlisttools-edit": "Veire e modificar la lista de seguiment",
        "watchlisttools-raw": "Modificar la lista (mòde brut)",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discussion]])",
-       "unknown_extension_tag": "Balisa d'extension « $1 » desconeguda",
        "duplicate-defaultsort": "Atencion : La clau de triada per defaut « $2 » espotís la mai recenta « $1 ».",
        "duplicate-displaytitle": "<strong>Atencion :</strong> Lo títol d'afichatge «$2» remplaça l'ancian títol d'afichatge «$1».",
        "version": "Version",
        "version-license-not-found": "Cap d'informacion detalhada de la licéncia es pas estada trobada per aquesta extension.",
        "version-credits-title": "Mercejaments per $1",
        "version-credits-not-found": "Cap d'informacion detalhada dels mercejaments es pas estada trobada per aquesta extension.",
-       "version-poweredby-credits": "Aqueste wiki fonciona gràcias a '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
+       "version-poweredby-credits": "Aqueste wiki fonciona gràcias a <strong>[https://www.mediawiki.org/ MediaWiki]</strong>, copyright © 2001-$1 $2.",
        "version-poweredby-others": "autres",
        "version-poweredby-translators": "traductors de translatewiki.net",
        "version-software": "Logicial installat",
        "version-entrypoints": "URL dels punts d'entrada",
        "version-entrypoints-header-entrypoint": "Punt d'entrada",
        "version-entrypoints-header-url": "URL",
+       "version-libraries": "Bibliotècas installadas",
+       "version-libraries-library": "Bibliotèca",
+       "version-libraries-version": "Version",
        "redirect": "Redirigit per fichièr, utilizaire, pagina o ID de revision.",
        "redirect-legend": "Redirigir cap a una pagina o un fichièr",
        "redirect-submit": "Validar",
        "redirect-file": "Nom del fichièr",
        "redirect-not-exists": "Valor pas trobada",
        "fileduplicatesearch": "Recèrca dels fichièrs en doble",
-       "fileduplicatesearch-summary": "Recèrca per de fichièrs en doble sus la banca de valors fragmentàrias.",
+       "fileduplicatesearch-summary": "Recèrca de las còpias de fichièrs identics d'aprèp lor emprenta de hachatge.",
        "fileduplicatesearch-legend": "Recèrca d’un doble",
        "fileduplicatesearch-filename": "Nom del fichièr :",
        "fileduplicatesearch-submit": "Recercar",
        "specialpages-group-wiki": "Donadas e aisinas",
        "specialpages-group-redirects": "Redireccions",
        "specialpages-group-spam": "Aisinas antispam",
+       "specialpages-group-developer": "Aisinas del desvolopaire",
        "blankpage": "Pagina voida",
        "intentionallyblankpage": "Aquesta pagina es intencionalament voida e es utilizada coma un tèst de performància, eca.",
-       "external_image_whitelist": " #Daissatz aquesta linha exactament coma es<pre>\n#Indicatz los fragments d’expression regularas (sonque la partida indicada entre los //) çaijós\n#Correspondràn amb las URLs dels imatges (fòrt ligadas) extèrnes\n#Las que correspondon s'aficharàn coma d'imatges, siquenon solament un ligam cap a l'imatge serà afichat\n#Las linhas que començan amb # seràn consideradas coma de comentaris\n#Aquesta linha es pas sensibla a la cassa\n\n#Metetz totes los fragments d’expressions regularas al dessús d'aquesta linha. Daissatz aquesta darrièra linha exactament coma es.</pre>",
+       "external_image_whitelist": " #Daissatz aquesta linha exactament coma es.<pre>\n#Indicatz los fragments d’expression racionalas (sonque la partida indicada entre los //) çaijós.\n#Correspondràn amb las URLs dels imatges extèrnes\n#Los que correspondon s'aficharàn coma d'imatges, siquenon solament un ligam cap a l'imatge serà afichat.\n#Las linhas que començan amb un # seràn consideradas coma de comentaris.\n#Aquesta linha es pas sensibla a la cassa.\n\n#Metètz totes los fragments d’expressions racionalas al dessús d'aquesta linha. Daissatz aquesta darrièra linha exactament coma es.</pre>",
        "tags": "Balisas de las modificacions validas",
        "tag-filter": "Filtrar las [[Special:Tags|balisas]] :",
        "tag-filter-submit": "Filtrar",
        "compare-revision-not-exists": "La revision qu'avètz especificada existís pas.",
        "dberr-problems": "O planhèm ! Aqueste site rencontra de dificultats tecnicas.",
        "dberr-again": "Ensajatz d'esperar qualques minutas e tornatz cargar.",
-       "dberr-info": "(Se pòt pas connectar al servidor de la banca de donadas : $1)",
-       "dberr-info-hidden": "(Connexion al servidor de la banca de donadas impossibla)",
+       "dberr-info": "(Accès a la banca de donadas impossible : $1)",
+       "dberr-info-hidden": "(Accès a la banca de donadas impossible)",
        "dberr-usegoogle": "Podètz ensajar de cercar amb Google pendent aqueste temps.",
        "dberr-outofdate": "Notatz que lors indèxes de nòstre contengut pòdon èsser depassats.",
        "dberr-cachederror": "Aquò es una còpia amagada de la pagina demandada e pòt èsser depassada.",
        "revdelete-uname-unhid": "nom d’utilizaire afichat",
        "revdelete-restricted": "aplicar las restriccions als administrators",
        "revdelete-unrestricted": "restriccions levadas pels administrators",
+       "logentry-merge-merge": "$1 {{GENDER:$2|a fusionat}} $3 en $4 (revisions fins a $5)",
        "logentry-move-move": "$1  {{GENDER:$2|a desplaçat}} la pagina $3 cap a $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|a desplaçat}} la pagina $3 cap a $4 sens daissar cap de redireccion",
        "logentry-move-move_redir": "$1 {{GENDER:$2|a desplaçat}} la pagina $3 cap a $4 per dessús una redireccion",
        "limitreport-expensivefunctioncount": "Nombre de foncions d’analisi costosas",
        "expandtemplates": "Espandiment dels modèls",
        "expand_templates_intro": "Aquesta pagina especiala accèpta un tèxte wiki source e permet de realizar recursivament l’espandiment dels modèls que conten.\nRealiza tanben l’espandiment de las foncions del parser talas coma\n<code><nowiki>{{</nowiki>#language:...}}</code> e de variablas coma\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\nEn fach, realiza l'espandiment de gaireben tot çò qu'es enquadrat per d'acoladas doblas.",
-       "expand_templates_title": "Títol de l’article, util per exemple se lo modèl utiliza {{FULLPAGENAME}} :",
+       "expand_templates_title": "Títol de la pagina, se lo còde utiliza {{FULLPAGENAME}}, etc. :",
        "expand_templates_input": "Picatz vòstre tèxte aicí :",
        "expand_templates_output": "Visualizatz lo resultat :",
        "expand_templates_xml_output": "Sortida XML",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|a cambiat}} la lenga de la pagina $3 de $4 a $5.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activat)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desactivat''')",
+       "mediastatistics": "Estatisticas suls mèdias",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 octet|$1 octets}} ($2 ; $3%)",
        "mediastatistics-table-mimetype": "Tipe MIME",
        "mediastatistics-table-extensions": "Extensions possiblas",
index 3bcd885..afd652b 100644 (file)
        "uploaderror": "Błąd wysyłania",
        "upload-recreate-warning": "'''Uwaga: plik o tej nazwie został wcześniej usunięty lub przeniesiony.''' \n\nPoniżej znajduje się rejestr usunięć i zmian nazwy tej strony:",
        "uploadtext": "Użyj poniższego formularza do przesłania plików.\nJeśli chcesz przejrzeć lub przeszukać dotychczas przesłane pliki, przejdź do [[Special:FileList|listy plików]]. Każde przesłanie zostaje odnotowane w [[Special:Log/upload|rejestrze przesyłanych plików]], a usunięcie w [[Special:Log/delete|rejestrze usuniętych]].\n\nPlik pojawi się na stronie, jeśli użyjesz linku według jednego z następujących wzorów:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Plik.jpg]]</nowiki></code>''' pokaże plik w pełnej postaci\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Plik.png|200px|thumb|left|podpis grafiki]]</nowiki></code>''' pokaże szeroką na 200 pikseli miniaturkę umieszczoną przy lewym marginesie, otoczoną ramką, z podpisem „podpis grafiki”\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Plik.ogg]]</nowiki></code>''' utworzy bezpośredni link do pliku bez wyświetlania samego pliku",
-       "upload-permitted": "Dopuszczalne formaty plików: $1.",
-       "upload-preferred": "Zalecane formaty plików: $1.",
-       "upload-prohibited": "Zabronione formaty plików: $1.",
+       "upload-permitted": "{{PLURAL:$2|Dopuszczalny format|Dopuszczalne formaty}} plików: $1.",
+       "upload-preferred": "{{PLURAL:$2|Zalecany format|Zalecane formaty}} plików: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Zabroniony format|Zabronione formaty}} plików: $1.",
        "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",
index e089ec9..bce71a7 100644 (file)
        "uploaderror": "Eror dëmentré che as cariava",
        "upload-recreate-warning": "'''Atension: n'archivi con col nòm a l'é già stàit ëscancelà o tramudà.'''\n\nËl registr dle scancelassion e dij tramud për sta pàgina a l'é butà ambelessì për comodità:",
        "uploadtext": "Dovra ël formolari sì-sota për carié dj'archivi.\nPër vardé ò sërché dle figure già carià, ch'a vada an sla [[Special:FileList|lista dle figure]], ij (ri)càrich a son ëdcò registrà ant ël [[Special:Log/upload|registr dij càrich]], jë scancelament ant ël [[Special:Log/delete|registr djë scancelament]].\n\nPër buté na figura ant n'artìcol, dovré n'anliura ant un-a dle forme sì sota:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' për dovré la version pien-a dla figura\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' për dovré na dimension ëd 200 pontin ant un quàder a la bordura snistra con 'alt text' com descrission\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' për coleghé diretament la figura sensa fé vëdde l'archivi",
-       "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.",
+       "upload-permitted": "Sòrt d'archivi {{PLURAL:$2|consentìa|consentìe}}: $1.",
+       "upload-preferred": "Sòrt d'archivi {{PLURAL:$2|preferì|preferìe}}: $1.",
+       "upload-prohibited": "Sòrt d'archivi {{PLURAL:$2:proibì|proibìe}}: $1.",
        "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",
        "namespace": "Spassi nominal:",
        "invert": "Anvertì la selession",
        "tooltip-invert": "Ch'a selession-a sta casela për stërmé le modìfiche a le pàgine ant lë spassi nominal selessionà (e ant lë spassi nominal associà se selessionà)",
+       "tooltip-whatlinkshere-invert": "Ch'a selession-a sa casela për ëstërmé le liure dle pàgine ant lë spassi nominal selessionà.",
        "namespace_association": "Spassi nominal associà",
        "tooltip-namespace_association": "Ch'a selession-a sta casela për anserì ëdcò la discussion o lë spassi nominal dël soget associà a lë spassi nomina selessionà",
        "blanknamespace": "(Prinsipal)",
index 8b615dd..c2e6c80 100644 (file)
@@ -75,7 +75,8 @@
                        "Jefersonmoraes",
                        "Marcos dias de oliveira",
                        "He7d3r",
-                       "PauloEduardo"
+                       "PauloEduardo",
+                       "Webysther"
                ]
        },
        "tog-underline": "Sublinhar links:",
        "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).",
+       "poolcounter-usage-error": "Erro de uso: $1",
        "aboutsite": "Sobre {{SITENAME}}",
        "aboutpage": "Project:Sobre",
        "copyright": "Conteúdo disponível sob $1, salvo indicação em contrário.",
        "uploaderror": "Erro ao enviar arquivo",
        "upload-recreate-warning": "'''Aviso: Um arquivo com este nome foi eliminado ou movido.'''\n\nPara sua conveniência, segue o registro de eliminação e de movimentação:",
        "uploadtext": "Use o formulário abaixo para enviar arquivos.\nPara ver ou pesquisar arquivos já enviados, consulte a [[Special:FileList|lista de arquivos enviados]]. Re-envios também são registrados no [[Special:Log/upload|registro de uploads]]; eliminações no [[Special:Log/delete|registro de eliminações]]\n\nPara incluir o arquivo em uma página, use um link em um dos seguintes formatos:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Arquivo.jpg]]</nowiki></code>''' para utilizar a versão completa do arquivo;\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Arquivo.png|200px|thumb|left|texto]]</nowiki></code>''' para utilizar uma renderização de 200 pixels dentro de uma caixa posicionada à margem esquerda, contendo 'texto' como descrição;\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Arquivo.ogg]]</nowiki></code>''' para um link direto ao arquivo sem que ele seja exibido.",
-       "upload-permitted": "Tipos de arquivos permitidos: $1.",
-       "upload-preferred": "Tipos de arquivos preferidos: $1.",
-       "upload-prohibited": "Tipos de arquivo proibidos: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tipo|Tipos}} de {{PLURAL:$2|arquivo|arquivos}} {{PLURAL:$2|permitido|permitidos}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Tipo|Tipos}} de {{PLURAL:$2|arquivo|arquivos}} {{PLURAL:$2|preferido|preferidos}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Tipo|Tipos}} de {{PLURAL:$2|arquivo|arquivos}} {{PLURAL:$2|proibido|proibidos}}: $1.",
        "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",
        "post-expand-template-inclusion-category-desc": "O tamanho da página é superior a <code>$wgMaxArticleSize</code>, após a expansão de todas as predefinições, pelo que algumas predefinições não foram expandidas.",
        "post-expand-template-argument-category-desc": "O tamanho da página é superior a <code>$wgMaxArticleSize</code>, após a expansão de um argumento de predefinição (algo em chavetas triplas, como <code>{{{Foo}}}</code>).",
        "expensive-parserfunction-category-desc": "A página tem demasiadas funções do analisador custosas (como <code>#ifexist</code>) incluídas. Consulte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
-       "broken-file-category-desc": "A página contém uma ligação quebrada para um arquivo(uma ligação para incorporar um arquivo que não existe).",
+       "broken-file-category-desc": "A página contém um link de arquivo quebrado (um link para incorporar quando o arquivo não existe).",
        "hidden-category-category-desc": "Esta é uma categoria com a marca <code><nowiki>__HIDDENCAT__</nowiki></code>, que faz com que ela não apareça na caixa de ligações de categoria nas páginas, por omissão.",
        "trackingcategories-nodesc": "Nenhuma descrição disponível.",
        "trackingcategories-disabled": "A categoria está desabilitada",
        "exbeforeblank": "o conteúdo antes de esvaziar era: '$1'",
        "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}}:",
+       "historywarning": "<strong>Aviso:</strong> A página que está prestes a eliminar tem um histórico com aproximadamente $1 {{PLURAL:$1|revisão|revisões}}:",
        "confirmdeletetext": "Encontra-se prestes a eliminar permanentemente uma página ou uma imagem e todo o seu histórico.\nPor favor, confirme que possui a intenção de fazer isto, que compreende as consequências e que encontra-se a fazer isto de acordo com as [[{{MediaWiki:Policy-url}}|políticas]] do projeto.",
        "actioncomplete": "Ação concluída",
        "actionfailed": "Falha na ação",
        "delete-edit-reasonlist": "Editar motivos de eliminação",
        "delete-toobig": "Esta página possui um longo histórico de edições, com mais de $1 {{PLURAL:$1|edição|edições}}.\nA eliminação de tais páginas foi restrita, a fim de se evitarem problemas acidentais em {{SITENAME}}.",
        "delete-warning-toobig": "Esta página possui um longo histórico de edições, com mais de $1 {{PLURAL:$1|edição|edições}}.\nEliminá-la poderá causar problemas na base de dados de {{SITENAME}};\nprossiga com cuidado.",
+       "deleteprotected": "Não é possível eliminar esta página porque foi protegida.",
        "deleting-backlinks-warning": "'''Cuidado:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Outras páginas]] se ligam ou redirecionam para a página que você está prestes a deletar.",
        "rollback": "Reverter edições",
-       "rollback_short": "Reverter",
        "rollbacklink": "reverter",
        "rollbacklinkcount": "reverter $1 {{PLURAL:$1|edição|edições}}",
        "rollbacklinkcount-morethan": "reverter mais de $1 {{PLURAL:$1|edição|edições}}",
        "protect-othertime": "Outra duração:",
        "protect-othertime-op": "outra duração",
        "protect-existing-expiry": "A proteção atual expirará às $3 de $2",
+       "protect-existing-expiry-infinity": "Existente tempo de expiração: infinito",
        "protect-otherreason": "Outro motivo/motivo adicional:",
        "protect-otherreason-op": "Outro motivo",
        "protect-dropdown": "*Motivos comuns para proteção\n** Vandalismo excessivo\n** Inserção excessiva de ''spams''\n** Guerra de edições improdutiva\n** Página bastante acessada",
        "namespace": "Espaço nominal:",
        "invert": "Inverter seleção",
        "tooltip-invert": "Marque esta caixa para esconder as alterações a páginas no espaço nominal selecionado (e no espaço nominal associado, se escolheu fazê-lo)",
+       "tooltip-whatlinkshere-invert": "Marque esta caixa de seleção para ocultar ligações de páginas dentro do domínio selecionado.",
        "namespace_association": "Espaço nominal associado",
        "tooltip-namespace_association": "Marque esta caixa para incluir também o espaço nominal de conteúdo ou de discussão associado à sua seleção",
        "blanknamespace": "(Principal)",
        "unblocked": "[[User:$1|$1]] foi desbloqueado",
        "unblocked-range": "$1 foi desbloqueado",
        "unblocked-id": "O bloqueio de $1 foi removido com sucesso",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] foi desbloqueado.",
        "blocklist": "Usuários bloqueados",
        "ipblocklist": "Usuários bloqueados",
        "ipblocklist-legend": "Procurar por um usuário bloqueado",
        "selfmove": "O título fonte e o título destinatário são os mesmos; não é possível mover uma página para ela mesma.",
        "immobile-source-namespace": "Não é possível mover páginas no espaço nominal \"$1\"",
        "immobile-target-namespace": "Não é possível mover páginas para o espaço nominal \"$1\"",
-       "immobile-target-namespace-iw": "Uma ligação interwiki não é um destino válido para uma movimentação de página.",
+       "immobile-target-namespace-iw": "Um link interwiki não é um destino válido para movimentação de página.",
        "immobile-source-page": "Esta página não pode ser movida.",
        "immobile-target-page": "Não é possível mover para esse título de destino.",
        "bad-target-model": "O destino especificado usa um modelo de conteúdo diferente. Não é possível converter $1 para $2.",
        "import-logentry-interwiki": "transwiki $1",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|$1 edição|$1 edições}} de $2",
        "javascripttest": "Teste de JavaScript",
-       "javascripttest-title": "Executando testes para $1",
        "javascripttest-pagetext-noframework": "Esta página é exclusiva para testes de JavaScript.",
        "javascripttest-pagetext-unknownframework": "A estrutura de testes \"$1\" é desconhecida.",
        "javascripttest-pagetext-frameworks": "Escolha uma das seguintes estruturas de teste: $1",
        "javascripttest-pagetext-skins": "Escolha o tema para executar os testes:",
        "javascripttest-qunit-intro": "Veja a [$1 documentação de testes] no mediawiki.org.",
-       "javascripttest-qunit-heading": "Suíte de ferramentas de teste JavaScript QUnit para MediaWiki",
        "tooltip-pt-userpage": "Sua página de usuário",
        "tooltip-pt-anonuserpage": "A página de usuário para o ip com o qual você está editando",
        "tooltip-pt-mytalk": "Sua página de discussão",
        "creditspage": "Créditos da página",
        "nocredits": "Não há informações disponíveis sobre os créditos desta página.",
        "spamprotectiontitle": "Filtro de proteção contra spam",
-       "spamprotectiontext": "A página que deseja salvar foi bloqueada pelo filtro de spam.\nTal bloqueio foi provavelmente causado por uma ligação para um ''website'' externo que conste na lista negra.",
+       "spamprotectiontext": "O texto que deseja salvar foi bloqueado pelo filtro de spam.\nIsso é provavelmente causado por um link para um site externo que está na lista negra.",
        "spamprotectionmatch": "O seguinte texto ativou o filtro de spam: $1",
        "spambot_username": "MediaWiki limpeza de spam",
        "spam_reverting": "Revertendo para a última versão que não contém links para $1",
        "confirmemail_success": "O seu endereço de e-mail foi confirmado. Pode agora se ligar.",
        "confirmemail_loggedin": "O seu endereço de e-mail foi agora confirmado.",
        "confirmemail_subject": "{{SITENAME}} confirmação de endereço de e-mail",
-       "confirmemail_body": "Alguém, provavelmente você, com o endereço de IP $1,\nregistrou uma conta \"$2\" com este endereço de e-mail em {{SITENAME}}.\n\nPara confirmar que esta conta realmente é sua, e para ativar\nas funcionalidades de e-mail em {{SITENAME}},\nabra o seguinte endereço no seu navegador:\n\n$3\n\nSe você *não* registrou a conta, siga a seguinte ligação\npara cancelar a confirmação do endereço de e-mail:\n\n$5\n\nEste código de confirmação irá expirar em $4.",
+       "confirmemail_body": "Alguém, provavelmente você, com o endereço de IP $1,\nregistrou uma conta \"$2\" com este endereço de email em {{SITENAME}}.\n\nPara confirmar que esta conta realmente é sua, e para ativar\nas funcionalidades de email em {{SITENAME}},\nabra o seguinte endereço no seu navegador:\n\n$3\n\nSe você *não* registrou a conta, clique neste link\npara cancelar a confirmação do endereço de email:\n\n$5\n\nEste código de confirmação irá expirar em $4.",
        "confirmemail_body_changed": "Alguém, provavelmente você com o endereço de IP $1,\nalterou o endereço de e-mail da conta \"$2\" para este em {{SITENAME}}.\n\nPara confirmar que esta conta é realmente sua e reativar\nas funcionalidades de e-mail em {{SITENAME}},\nabra o seguinte link no seu navegador:\n\n$3\n\nCaso a conta *não* lhe pertença, siga o seguinte link\npara cancelar a confirmação do endereço de e-mail:\n\n$5\n\nEste código de confirmação irá expirar em $4.",
        "confirmemail_body_set": "Alguém, provavelmente você, com o endereço de IP $1,\ndefiniu o endereço de e-mail da conta \"$2\" para este em {{SITENAME}}.\n\nPara confirmar que esta conta é realmente sua e reativar\nas funcionalidades de email em {{SITENAME}},\nabra o seguinte link no seu navegador:\n\n$3\n\nCaso a conta *não* lhe pertença, siga o seguinte link\npara cancelar a confirmação do endereço de e-mail:\n\n$5\n\nEste código de confirmação irá expirar em $4.",
        "confirmemail_invalidated": "Confirmação de endereço de e-mail cancelada",
index 7f5ccb1..28205f1 100644 (file)
        "prefs-personal": "Dados do utilizador",
        "prefs-rc": "Mudanças recentes",
        "prefs-watchlist": "Páginas vigiadas",
+       "prefs-editwatchlist": "Editar lista de páginas vigiadas",
+       "prefs-editwatchlist-label": "Editar entradas na sua lista de páginas vigiadas:",
+       "prefs-editwatchlist-edit": "Ver e remover títulos da sua lista de páginas vigiadas",
+       "prefs-editwatchlist-raw": "Editar lista de páginas vigiadas em forma de texto",
+       "prefs-editwatchlist-clear": "Limpar lista de páginas vigiadas",
        "prefs-watchlist-days": "Dias a mostrar nas mudanças às páginas vigiadas:",
        "prefs-watchlist-days-max": "Máximo: $1 {{PLURAL:$1|dia|dias}}",
        "prefs-watchlist-edits": "Número de edições a mostrar na listagem expandida:",
        "uploaderror": "Erro ao carregar",
        "upload-recreate-warning": "'''Aviso: Um ficheiro com esse nome foi eliminado ou movido.'''\n\nPara sua conveniência, é apresentado de seguida o registo de eliminação e de movimento da página:",
        "uploadtext": "Utilize o formulário abaixo para fazer o carregamento de novos ficheiros.\nPara ver ou pesquisar ficheiros anteriormente enviados, consulte a [[Special:FileList|lista de ficheiros]].\nOs reenvios de um ficheiro são também registados no [[Special:Log/upload|registo de carregamentos]] e as eliminações no [[Special:Log/delete|registo de eliminações]].\n\nPara utilizar um ficheiro numa página, depois de ter feito o carregamento, insira uma ligação com um dos seguintes formatos:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ficheiro.jpg]]</nowiki></code>''' para mostrar uma imagem nas suas dimensões originais;\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ficheiro.png|200px|thumb|left|texto]]</nowiki></code>''' para mostrar uma imagem com a dimensão horizontal de 200 pixels, dentro de uma caixa, na margem esquerda, contendo 'texto' como descrição (pode usar subconjuntos destas características);\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:ficheiro.ogg]]</nowiki></code>''' para apresentar uma ligação direta para o ficheiro em vez de mostrá-lo, quer este tenha por conteúdo uma imagem ou outros dados.",
-       "upload-permitted": "Tipos de ficheiro permitidos: $1.",
-       "upload-preferred": "Tipos de ficheiro preferidos: $1.",
-       "upload-prohibited": "Tipos de ficheiro proibidos: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tipo|Tipos}} de ficheiro {{PLURAL:$2|permitido|permitidos}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Tipo|Tipos}} de ficheiro {{PLURAL:$2|preferido|preferidos}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Tipo|Tipos}} de ficheiro {{PLURAL:$2|proibido|proibidos}}: $1.",
        "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",
        "revdelete-uname-unhid": "utilizador desocultado",
        "revdelete-restricted": "restrições a administradores aplicadas",
        "revdelete-unrestricted": "restrições a administradores removidas",
+       "logentry-merge-merge": "$1 {{GENDER:$2|fundiu}} $3 com $4 (edições até $5)",
        "logentry-move-move": "$1 moveu a página $3 para $4",
        "logentry-move-move-noredirect": "$1 moveu a página $3 para $4 sem deixar um redirecionamento",
        "logentry-move-move_redir": "$1 {{GENDER:$2|moveu}} a página $3 para $4 sobre um redirecionamento",
        "mediastatistics-header-text": "Textuais",
        "mediastatistics-header-executable": "Executáveis",
        "mediastatistics-header-archive": "Formatos compactados",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|vírgula desnecessária foi removida|vírgulas desnecessárias foram removidas}} do código JSON",
        "json-error-unknown": "Houve um problema com o JSON. Erro: $1",
        "json-error-depth": "A profundidade máxima da pilha foi excedida",
        "json-error-state-mismatch": "Código JSON inválido ou mal formatado",
+       "json-error-ctrl-char": "Erro de carácter de controlo, possivelmente codificado incorretamente",
        "json-error-syntax": "Erro de sintaxe",
+       "json-error-utf8": "Caracteres UTF-8 mal formatados, possivelmente codificado incorretamente",
+       "json-error-recursion": "Uma ou mais referências recursivas no valor a ser codificado",
+       "json-error-inf-or-nan": "Um ou mais valores NaN ou INF no valor a ser codificado",
        "json-error-unsupported-type": "Foi dado um valor de um tipo que não pode ser codificado"
 }
index 14345bf..64582cc 100644 (file)
        "oct": "Abbreviation of October, the tenth month of the Gregorian calendar\n\nOne of the set: {{msg-mw|Jan}}, {{msg-mw|Feb}}, {{msg-mw|Mar}}, {{msg-mw|Apr}}, {{msg-mw|May}}, {{msg-mw|Jun}}, {{msg-mw|Jul}}, {{msg-mw|Aug}}, {{msg-mw|Sep}}, {{msg-mw|Oct}}, {{msg-mw|Nov}}, {{msg-mw|Dec}}.",
        "nov": "Abbreviation of November, the eleventh month of the Gregorian calendar\n\nOne of the set: {{msg-mw|Jan}}, {{msg-mw|Feb}}, {{msg-mw|Mar}}, {{msg-mw|Apr}}, {{msg-mw|May}}, {{msg-mw|Jun}}, {{msg-mw|Jul}}, {{msg-mw|Aug}}, {{msg-mw|Sep}}, {{msg-mw|Oct}}, {{msg-mw|Nov}}, {{msg-mw|Dec}}.",
        "dec": "Abbreviation of December, the twelfth month of the Gregorian calendar\n\nOne of the set: {{msg-mw|Jan}}, {{msg-mw|Feb}}, {{msg-mw|Mar}}, {{msg-mw|Apr}}, {{msg-mw|May}}, {{msg-mw|Jun}}, {{msg-mw|Jul}}, {{msg-mw|Aug}}, {{msg-mw|Sep}}, {{msg-mw|Oct}}, {{msg-mw|Nov}}, {{msg-mw|Dec}}.",
-       "january-date": "A date in the Gregorian month of January. $1 is the numerical date, for example \"23\".",
-       "february-date": "A date in the Gregorian month of February. $1 is the numerical date, for example \"23\".",
-       "march-date": "A date in the Gregorian month of March. $1 is the numerical date, for example \"23\".",
+       "january-date": "A date in the Gregorian month of January. $1 is the numerical date, for example \"23\".\n{{Identical|January}}",
+       "february-date": "A date in the Gregorian month of February. $1 is the numerical date, for example \"23\".\n{{Identical|February}}",
+       "march-date": "A date in the Gregorian month of March. $1 is the numerical date, for example \"23\".\n{{Identical|March}}",
        "april-date": "A date in the Gregorian month of April. $1 is the numerical date, for example \"23\".",
        "may-date": "A date in the Gregorian month of May. $1 is the numerical date, for example \"23\". The month name is not abbreviated.\n{{Identical|May}}",
        "june-date": "A date in the Gregorian month of June. $1 is the numerical date, for example \"23\".",
        "nowiki_tip": "This is the text that appears when you hover the mouse over the third button from the right on the edit toolbar.",
        "image_sample": "{{optional}}\nUsed in text generated by Picture button in toolbar.\n{{Identical|Example}}",
        "image_tip": "This is the text that appears when you hover the mouse over the sixth (middle) button on the edit toolbar.\n\n{{Identical|Embedded file}}",
-       "media_sample": "{{optional}}",
-       "media_tip": "This is the text that appears when you hover the mouse over the fifth button from the right in the edit toolbar.",
+       "media_sample": "{{optional}}\n{{Identical|Example}}",
+       "media_tip": "This is the text that appears when you hover the mouse over the fifth button from the right in the edit toolbar.\n{{Identical|File link}}",
        "sig_tip": "This is the text that appears when you hover the mouse over the second key from the right on the edit toolbar.\n{{Identical|Signature with timestamp}}",
        "hr_tip": "This is the text that appears when you hover the mouse over the first button on the right on the edit toolbar.",
        "summary": "The Summary text beside the edit summary field\n\nSee also:\n* {{msg-mw|Subject}}\nSee also:\n* {{msg-mw|Accesskey-summary}}\n* {{msg-mw|Tooltip-summary}}\n{{Identical|Summary}}",
        "prefs-personal": "Title of a tab in [[Special:Preferences]].\n{{Identical|User profile}}",
        "prefs-rc": "Used in user preferences.\n\n{{Identical|Recent changes}}",
        "prefs-watchlist": "Used in user preferences.\n{{Identical|Watchlist}}",
+       "prefs-editwatchlist": "Used in [[Special:Preferences]], tab \"Watchlist\".",
+       "prefs-editwatchlist-label": "Used in [[Special:Preferences]], tab \"Watchlist\".",
+       "prefs-editwatchlist-edit": "Used in [[Special:Preferences]], tab \"Watchlist\". Link to [[Special:EditWatchlist]]\n\nSee also:\n* {{msg-mw|prefs-editwatchlist-clear}}\n* {{msg-mw|prefs-editwatchlist-raw}}",
+       "prefs-editwatchlist-raw": "Used in [[Special:Preferences]], tab \"Watchlist\". Link to [[Special:EditWatchlist/raw]].\n\nSee also:\n* {{msg-mw|prefs-editwatchlist-edit}}\n* {{msg-mw|prefs-editwatchlist-clear}}\n{{Identical|Edit raw watchlist}}",
+       "prefs-editwatchlist-clear": "Used in [[Special:Preferences]], tab \"Watchlist\". Link to [[Special:EditWatchlist/clear]].\n\nSee also:\n* {{msg-mw|prefs-editwatchlist-edit}}\n* {{msg-mw|prefs-editwatchlist-raw}}\n{{Identical|Clear watchlist}}",
        "prefs-watchlist-days": "Used in [[Special:Preferences]], tab \"Watchlist\".",
        "prefs-watchlist-days-max": "Shown as hint in [[Special:Preferences]], tab \"Watchlist\". Parameters:\n* $1 - number of days\nSee also:\n* {{msg-mw|Recentchangesdays-max}}",
        "prefs-watchlist-edits": "Used in [[Special:Preferences]], tab \"Watchlist\".",
        "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-search": "Search button in [[Special:BookSources]]\n\n{{Identical|Go}}",
+       "booksources-search": "Search button in [[Special:BookSources]]\n\n{{Identical|Search}}",
        "booksources-text": "Used in [[Special:BookSources/1]].\n\nThis message is followed by a list of links to other sites.\n\nSee also:\n* {{msg-mw|Booksources|title}}\n* {{msg-mw|Booksources-text|text}}",
        "booksources-invalid-isbn": "This message is displayed after an invalid ISBN is entered on [[Special:Booksources]].",
        "rfcurl": "{{notranslate}}\nParameters:\n* $1 - RFC number\nSee also:\n* {{msg-mw|Pubmedurl}}",
index 4c5abe8..433b14a 100644 (file)
        "prefs-personal": "Informații personale",
        "prefs-rc": "Schimbări recente",
        "prefs-watchlist": "Listă de urmărire",
+       "prefs-editwatchlist": "Modifică lista de pagini urmărite",
+       "prefs-editwatchlist-label": "Modificați titluri din lista dumneavoastră de pagini urmărite:",
+       "prefs-editwatchlist-edit": "Vizualizați și eliminați titluri din lista dumneavoastră de pagini urmărite",
+       "prefs-editwatchlist-raw": "Modifică lista brută de pagini urmărite",
+       "prefs-editwatchlist-clear": "Goliți-vă lista de pagini urmărite",
        "prefs-watchlist-days": "Numărul de zile care apar în lista paginilor urmărite:",
        "prefs-watchlist-days-max": "Maxim $1 {{PLURAL:$1|zi|zile}}",
        "prefs-watchlist-edits": "Numărul de modificări care apar în lista extinsă a paginilor urmărite:",
        "uploaderror": "Eroare la trimitere fișier",
        "upload-recreate-warning": "'''Atenție, un fișier cu același nume a fost șters sau redenumit.'''\nIată aici înregistrările relevante din jurnalul de ștergeri și redenumiri:",
        "uploadtext": "Utilizați formularul de mai jos pentru a trimite fișiere.\nPentru a vizualiza sau căuta imagini deja trimise, mergeți la [[Special:FileList|lista cu imagini]]; (re)încărcările și ștergerile sunt de asemenea înregistrate în [[Special:Log/upload|jurnalul fișierelor trimise]], respectiv [[Special:Log/delete|jurnalul fișierelor șterse]].\n\nPentru a insera un fișier într-o pagină, folosiți o legătură de forma:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fișier.jpg]]</nowiki></code>''' pentru a include versiunea integrală a unui fișier\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fișier.png|200px|thumb|left|informații]]</nowiki></code>''' pentru a introduce o imagine cu o lățime de 200 de pixeli într-un chenar plasat în partea stângă, având ca descriere textul „informații”\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fișier.ogg]]</nowiki></code>''' pentru o legătură directă către fișier, fără a-l afișa",
-       "upload-permitted": "Tipuri de fișiere permise: $1.",
-       "upload-preferred": "Tipuri de fișiere preferate: $1.",
-       "upload-prohibited": "Tipuri de fișiere interzise: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tip|Tipuri}} de fișiere permise: $1.",
+       "upload-preferred": "{{PLURAL:$2|Tip|Tipuri}} de fișiere preferate: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Tip|Tipuri}} de fișiere interzise: $1.",
        "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",
index ff42219..876012d 100644 (file)
        "permalink": "Collegamende ca remane pe sembre",
        "print": "Stambe",
        "view": "Vide",
+       "view-foreign": "'Ndruche sus a $1",
        "edit": "Cange",
+       "edit-local": "Cange 'a descrizione locale",
        "create": "Ccreje",
+       "create-local": "Aggiunge 'a descrizione locale",
        "editthispage": "Cange sta pàgene",
        "create-this-page": "Ccreje 'a pàgene",
        "delete": "Scangìlle",
        "otherlanguages": "Jndr'à l'otre lènghe",
        "redirectedfrom": "(Riderette da $1)",
        "redirectpagesub": "Pàgene de redirezione",
+       "redirectto": "Redirezione sus a:",
        "lastmodifiedat": "Sta pàgene a state cangete l'urtema vote da $1, alle $2.",
        "viewcount": "Sta pàggene ha state viste {{PLURAL:$1|'na vote|$1 vote}}.",
        "protectedpage": "Pàgene prutette",
        "viewsourcetext": "Tu puè vedè e cupià 'a sorgente de sta pàgene:",
        "viewyourtext": "Tu puè vedè e copià 'a sorgende de '''le cangiaminde tune''' a sta pàgene:",
        "protectedinterface": "Sta pàgene dèje 'nu teste de l'inderfacce pu software de sta uicchi, e jè prutette pe prevenìe l'abbuse.\nPe aggiungere o cangià le traduziune pe tutte le uicchi, pe piacere ause [//translatewiki.net/ translatewiki.net], 'u proggette de localizzazzione de MediaUicchi.",
-       "editinginterface": "'''Fà attenziò:'''  Tu ste cange 'na pàgene ca jè ausate pe dà 'n'inderfacce de teste p'u software.\nLe cangiaminde de sta pàgene vonne a mettene mane sus a l'inderfacce utende pe l'otre utinde de sta Uicchi.\nPe aggiungere o cangià le traduziune, pe piacere vide ce ause [//translatewiki.net/ translatewiki.net], 'u pruggette de localizzazione de MediaUicchi.",
+       "editinginterface": "<strong>Fà attenziò:</strong> Tu ste cange 'na pàgene ca jè ausate pe dà 'n'inderfacce de teste p'u software.\nLe cangiaminde de sta pàgene vonne a mettene mane sus a l'inderfacce utende pe l'otre utinde de sta Uicchi.",
        "cascadeprotected": "Sta pàgene ha state prutette da le cangiaminde, purcè jè ingluse jndr'à {{PLURAL:$1|seguende pàgene, ca jè|le seguende pàggene, ca sonde}} prutette cu l'opzione \"a caschete\":\n$2",
        "namespaceprotected": "Non ge tine 'u permesse pe cangià pàggene d'u neimspeise '''$1'''.",
        "customcssprotected": "Non ge tine 'u permesse pe cangià sta pàgene de CSS, purcè tène otre configurazione personale.",
        "invalidtitle-knownnamespace": "Titole invalide cu 'u namespace \"$2\" e teste \"$3\"",
        "invalidtitle-unknownnamespace": "Titele invalide cu numere de namespace scanusciute $1 e teste \"$2\"",
        "exception-nologin": "Non ge sì collegate",
-       "exception-nologin-text": "Pe piacere [[Special:Userlogin|tràse]] pe avè l'accesse a sta pàgene o a sta azione.",
+       "exception-nologin-text": "Pe piacere tràse pe avè l'accesse a sta pàgene o a sta azione.",
        "virus-badscanner": "Configurazione ca fece schife: Virus scanner scanusciute: ''$1''",
        "virus-scanfailed": "condrolle fallite (codece $1)",
        "virus-unknownscanner": "antivirus scanusciute:",
        "loginlanguagelabel": "Lénga: $1",
        "suspicious-userlogout": "'A richiesta toje de assè ha state bloccate purcè pare ca ha state mannate da 'nu browser scuasciate o da 'a cache de 'nu proxy.",
        "createacct-another-realname-tip": "'U nome vere jè facoltative.\nCe tu scacchie de metterle, quiste avène ausate pe dà 'u giuste merite a 'a fatìe de l'utende.",
+       "pt-login": "Tràse",
+       "pt-login-button": "Tràse",
+       "pt-createaccount": "Ccreje 'nu cunde utende",
+       "pt-userlogout": "Isse",
        "php-mail-error-unknown": "Errore scanusciute jndr'à funzione PHP mail()",
        "user-mail-no-addy": "E' pruvate a mannà 'na mail senze 'u 'ndirizze mail",
        "user-mail-no-body": "Pruvate a mannà 'na mail cu 'nu cuèrpe vacande o troppe curte.",
        "preview": "Andeprime",
        "showpreview": "Vide l'andeprime",
        "showdiff": "Fa vedè le cangiaminde",
-       "anoneditwarning": "'''Attenziò:''' Tu non ge sinde colleghete..\nL'indirizze IP tue avène reggistrete jndr'à le cangiaminde de sta pàgene.",
+       "anoneditwarning": "<strong>Attenziò:</strong> Tu non ge sì collegate..\nL'indirizze IP tune avène fatte vedè ce te face de le cangiaminde. Ce tu <strong>[$1 trase]</strong> o <strong>[$2 ccreje 'nu cunde utende]</strong>, le cangiaminde tune avènene attribbuite a 'u nome utende tune, 'nzieme a otre beneficie.",
        "anonpreviewwarning": "''Tu non ge sì collegate. Reggistranne le cangiaminde jndr'à sta pàgene iesse l'indirizze IP tune jndr'à storie.''",
        "missingsummary": "'''Arrecuèrdete:''' Tu non g'è provvedute a 'nu riepileghe de le cangiaminde.\nCe tu cazze Reggistre 'n'otra vote, 'u cangiamende tue avène memorizzete senze une.",
        "missingcommenttext": "Pe piacere mitte 'nu commende aqquà sotte.",
        "parser-template-recursion-depth-warning": "Ha state supranete 'u limite di ricorsione de le template ($1)",
        "language-converter-depth-warning": "'U convertitore de lènghe ha subranate 'u limite de profonnetà ($1)",
        "node-count-exceeded-category": "Pàggene addò 'u cunde de le node ha sbunnate",
-       "node-count-exceeded-warning": "Pagene ha sbunnate 'u condegge de le node",
+       "node-count-exceeded-warning": "'A pàgene ha sbunnate 'u condegge de le node",
        "expansion-depth-exceeded-category": "Pàggene addò 'a profonnetà de l'espanzione jè supranate",
        "expansion-depth-exceeded-warning": "Pàggene ca sbonnane 'a profonnetà de espanzione",
        "parser-unstrip-loop-warning": "Cicle infinite acchiate",
        "history-feed-empty": "'A vosce ca è cerchete non g'esiste.\nPò essere ca ha state scangellete da Uicchi o ha state renomenate..\nPruève a [[Special:Search|cercò sus a Uicchi]] 'mbrà le vosce cchiù rilevande.",
        "rev-deleted-comment": "(cangiamnde d'u riepileghe scangellate)",
        "rev-deleted-user": "(nome utende scangillete)",
-       "rev-deleted-event": "(azione de l'archivie scangillete)",
+       "rev-deleted-event": "(dettaglie de l'archivije scangellate)",
        "rev-deleted-user-contribs": "[nome utende o indirizze IP luate - cangiamende scunnute da le condrebbute]",
        "rev-deleted-text-permission": "Sta revisione d'a pàgene ha state '''scangellate'''.\nPuè acchijà cchiù 'mbormaziune sus a [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} l'archivije de le scangellaminde].",
        "rev-deleted-text-unhide": "Sta revisione d'a pàgene ha state '''scangellate'''.\nPuè acchijà cchiù 'mbormaziune sus a [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} l'archivije de le scangellaminde].\nTu puè angore [$1 vedè sta revisiona] ce tu avveramende a vuè ccù vide.",
        "revdelete-no-file": "'U file specificate non g'esiste.",
        "revdelete-show-file-confirm": "Si secure ca vuè ccu vide 'a revisione scangellate d'u file \"<nowiki>$1</nowiki>\" 'u $2 a le $3?",
        "revdelete-show-file-submit": "Sìne",
-       "logdelete-selected": "{{PLURAL:$1|Fatte de l'archivije selezionete|Fatte de l'archivije selezionete}}:",
+       "logdelete-selected": "{{PLURAL:$1|Fatte de l'archivije scacchiate}}:",
        "revdelete-confirm": "Pe piacere conferme ca tu vuè ccu face sta cose, ce tu è capite le conseguenze e ce quidde ca ste face jè in accorde cu le [[{{MediaWiki:Policy-url}}|reghele]] de Uicchipèdie.",
        "revdelete-suppress-text": "'A soppressione adda essere ausate '''sulamende''' jndr'à le case seguende:\n* 'Mbormaziune potenzialmende offenzive\n* Date personale inopportune\n*: ''indirizze, numere de telefono, codece fiscale, ecc.''",
        "revdelete-legend": "'Mboste le restriziune sus 'a visibbilità",
        "revdelete-hide-text": "Teste d'a revisione",
        "revdelete-hide-image": "Scunne 'u codenute d'u fail",
-       "revdelete-hide-name": "Scunne azione e obbiettive",
+       "revdelete-hide-name": "Scunne obbiettive e parametre",
        "revdelete-hide-comment": "Cange 'u riepiloghe",
        "revdelete-hide-user": "Nome utende/IP de quidde ca ha fatte 'u cangiamende",
        "revdelete-hide-restricted": "Live le date da l'amministratore cumme pe l'otre utinde",
        "search-section": "(sezione $1)",
        "search-suggest": "Ce signifeche: $1",
        "search-interwiki-caption": "Pruggette sorelle",
-       "search-interwiki-default": "$1 resultete:",
+       "search-interwiki-default": "Resultate da $1:",
        "search-interwiki-more": "(de cchiù)",
        "search-relatedarticle": "Colleghete",
        "searchrelated": "colleghete",
        "gender-female": "Femmene",
        "prefs-help-gender": "Opzionale: ausate pe l'indirizzamende corrette d'u sesse jndr'à 'u softwer. Sta 'mbormazione jè pubbleche.",
        "email": "Poste",
-       "prefs-help-realname": "'U nome vere (quidde d'u munne reale) jè facoltative.\nCe tu 'u mitte, a fatje ca è fatte t'avène ricanusciute.",
+       "prefs-help-realname": "'U nome vere jè facoltative.\nCe tu 'u mitte, a fatje ca è fatte t'avène recanusciute.",
        "prefs-help-email": "L'indirizze e-mail jè facoltative ma te dè 'a possibbilità de mannarte 'na password nova nove ce tu te scuèrde quedde ca tenive.",
        "prefs-help-email-others": "Tu puè pure scacchià de lassà a l'otre de condattarte ausanne 'a pàgene utende toje o quedde de le 'ngazzaminde senze ca onne abbesogne de dicere ce si tu.",
        "prefs-help-email-required": "L'indirizze e-mail jè obbligatorie.",
        "right-deletedtext": "Vide 'u teste scangellate e le cangiaminde 'mbrà le versiune scangellate",
        "right-browsearchive": "Cirche le pàggene scangellate",
        "right-undelete": "Repristine 'na pàgene",
-       "right-suppressrevision": "Revide e repristine le revisiune scunnete da l'amministrature",
+       "right-suppressrevision": "'Ndruche, scunne e fà assè le revisiune specifiche de le pàggene da l'otre utinde",
        "right-suppressionlog": "Vide l'archivije privete",
        "right-block": "Blocche otre utinde a fà le cangiaminde",
        "right-blockemail": "Blocche l'utente a fà mannà le email",
        "recentchanges-label-unpatrolled": "Stu cangiamende non g'à state angore condrollate",
        "recentchanges-legend-heading": "'''Leggende:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ('ndruche pure [[Special:NewPages|elenghe de le pàggene nuève]])",
-       "rcnotefrom": "Sotte stonne le cangiaminde da '''$2''' ('nzigne a '''$1''' fatte vedè).",
+       "rcnotefrom": "Sotte {{PLURAL:$5|ste 'u cangiamende|stonne le cangiaminde}} da <strong>$3, $4</strong> ('nzigne a <strong>$1</strong> fatte vedè).",
        "rclistfrom": "Fà vedè le urteme cangiaminde partenne da $3 $2",
        "rcshowhideminor": "$1 cangiaminde stuèdeche",
        "rcshowhidebots": "$1 bot",
        "uploaderror": "Errore de carecamende",
        "upload-recreate-warning": "'''Attenziò: 'Nu file cu stu nome ha state scangellate o spustate.'''\n\nL'archivije de de scangellaminde e de le spustaminde pe sta pàgene le puè acchià aqquà:",
        "uploadtext": "Ause 'u module aqquà sotte pe carecà le file.\nPe vedè o cercà le file carecate precedendemende veje a 'a [[Special:FileList|liste de le file carecate]], le carecaminde sonde pure reggistrate jndr'à l'[[Special:Log/upload|archivije de le carecaminde]], le scangellazziune jndr'à l'[[Special:Log/delete|archivije de le scangellaminde]].\n\nPe ingludere 'nu file jndr'à 'na pàgene, ause 'u collegamende jndr'à une de le forme seguende:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' pe ausà 'a versiona comblete d'u file\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' pe ausà 'nu file cu 'a dimenziona massime de 200 pixel jndr'à 'na scatele ca se iacchie sus a 'u margine sinistre cu 'u teste 'alt text' cumme didascalìe.\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' pe appundà direttamende a 'u file senze ca face vedè 'u file",
-       "upload-permitted": "Tipe de file permesse: $1.",
-       "upload-preferred": "Tipe de file preferite: $1.",
-       "upload-prohibited": "Tipe de file proibbite: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tipe}} de file permesse: $1.",
+       "upload-preferred": "{{PLURAL:$2|Tipe}} de file preferite: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Tipe}} de file proibbite: $1.",
        "uploadlogpage": "Archivije de le carecaminde",
        "uploadlogpagetext": "Sotte ste 'na liste de le cchiù recende file carechete.\nVide 'a [[Special:NewFiles|gallerie de le file nuève]] pe vedè l'otre andeprime.",
        "filename": "Nome d'u fail",
        "largefileserver": "Stu file jè troppe gruesse pe quidde ca 'a configurazione d'u server permette.",
        "emptyfile": "'U file ca tu è carecate pare ca è vacande.\nPò essere ca è scritte male 'u nome d'u file e n'à carecate 'n'otre.\nPe piacere condrolle ce tu avveramende vuè cu careche stu file.",
        "windows-nonascii-filename": "Sta Uicchi non ge supporte le nome de le file cu le carattere speciale.",
-       "fileexists": "'Nu file cu stu nome esiste già, pe piacere verifiche <strong>[[:$1]]</strong> ce tu non ge sì secure no 'u sce cangianne.\n[[$1|thumb]]",
+       "fileexists": "'Nu file cu stu nome esiste già, pe piacere verifiche <strong>[[:$1]]</strong> ce {{GENDER:|tu}} non ge sì secure no 'u sce cangianne.\n[[$1|thumb]]",
        "filepageexists": "'A pàgene de descrizione pe stu file ha state già ccreiate 'u <strong>[[:$1]]</strong>, ma nisciune file cu stu nome osce a die esiste.\n'U riepileghe ca tu è mise non ge iesse sus 'a pàgene de descrizione.\nPe fà assè 'u riepileghe tu tìne abbesogne de cangiarle a mane.\n[[$1|thumb]]",
-       "fileexists-extension": "'Nu file cu 'nu nome simile esiste già: [[$2|thumb]]\n* Nome d'u file ca vuè cu careche: <strong>[[:$1]]</strong>\n* Nome d'u file ca già esiste: <strong>[[:$2]]</strong>\nPe piacere vide ce scacchie 'nu nome differende.",
+       "fileexists-extension": "'Nu file cu 'nu nome simile esiste già: [[$2|thumb]]\n* Nome d'u file ca vuè cu careche: <strong>[[:$1]]</strong>\n* Nome d'u file ca già esiste: <strong>[[:$2]]</strong>\nPe piacere vide ce scacchie 'nu nome 'nu picca diverse?",
        "fileexists-thumbnail-yes": "'U file pare ca jè 'n'immaggine de dimenzione ridotte ''(miniature)''. [[$1|thumb]]\nPe piacere condrolle 'u file <strong>[[:$1]]</strong>.\nCe 'u file condrollete jè d'a stesse dimenzione de quedda originale allore non ge stè abbesogne de carecà 'na miniatura de cchiù.",
        "file-thumbnail-no": "'U nome d'u file accumenze pe <strong>$1</strong>.\nPare ca jè 'n'immaggine piccenne ''(miniature)''.\nCe tu tìne sulamende st'immaggine da carecà apposte, ce nò vide ce cange 'u file.",
        "fileexists-forbidden": "'U file cu stu nome già esiste e non ge pò essere sovrascritte.<br />\nCe tu vuè angore carecà 'u file tue, pe piacere tuèrne rrete e ause 'nu nome nuève. [[File:$1|thumb|center|$1]]",
        "license-header": "Licenziate da",
        "nolicense": "Ninde selezionete",
        "license-nopreview": "(L'andeprime non g'è disponibbile)",
-       "upload_source_url": " ('na URL, valide e accessibbile pubblicamende)",
-       "upload_source_file": " ('nu fail sus a 'u combiuter tue)",
+       "upload_source_url": " ('u file tune scacchiate da 'na URL, valide e accessibbile pubblicamende)",
+       "upload_source_file": " ('nu fail sus a 'u combiuter tune)",
        "listfiles-summary": "Sta pàgena speciale face vedè tutte le file carecate.<br />\nQuanne jè filtrate da l'utende, sulamende le file addò quidde utende ave carecate le versiune cchiù recende, avènene fatte vedè.",
        "listfiles_search_for": "Cirche pe nome de le media:",
        "imgfile": "file",
        "filedelete-maintenance": "Scangellaminde e repristinaminde de le file jè temboraneamende disabbilitate duranne 'a manutenzione.",
        "filedelete-maintenance-title": "Non ge se pò scangellà 'u file",
        "mimesearch": "Ricerca jndr'à 'u MIME",
-       "mimesearch-summary": "Sta pàgene abbilitesce 'u filtre sus a le file pu tipe de MIME.\nInput: contenttype/subtype, pe esembie <code>image/jpeg</code>.",
+       "mimesearch-summary": "Sta pàgene abbilitesce 'u filtre sus a le file pu tipe de MIME.\nInput: contenttype/subtype o contenttype/*, pe esembie <code>image/jpeg</code>.",
        "mimetype": "Tipe de MIME:",
        "download": "scareche",
        "unwatchedpages": "Pàggene ca non ge ste condrolle",
        "pageswithprop-prophidden-binary": "valore probbietà binarie scunnute ($1)",
        "doubleredirects": "Ridirezionaminde a doppie",
        "doubleredirectstext": "Sta pàgene elenghe le pàggene ca se ridirezionane sus a otre pàggene de ridirezionaminde.\nOgne righe condene 'nu collegamende a 'u prime e a 'u seconde ridirezionamende pe fà vedè addò arrive 'u seconde ridirezionamende, 'u quale jè normalmende 'a pàgena de destinaziona \"rèale\", addò 'u prime ridirezionamende avesse appondà.\nLe situaziune de <del>ingrocie</del> onne state resolte.",
-       "double-redirect-fixed-move": "[[$1]] ha state spustate.\nMò s'avène redirette a [[$2]].",
-       "double-redirect-fixed-maintenance": "Aggiuste le doppie redirezionaminde da [[$1]] a [[$2]].",
+       "double-redirect-fixed-move": "[[$1]] ha state spustate.\nAvène aggiornate automaticamende e mò s'avène redirette a [[$2]].",
+       "double-redirect-fixed-maintenance": "Aggiuste le doppie redirezionaminde da [[$1]] a [[$2]] jndr'à 'na fatije de manutenzione.",
        "double-redirect-fixer": "Correttore de redirezionaminde",
        "brokenredirects": "Redirezionamninde scuasciete",
        "brokenredirectstext": "Le ridirezionaminde ca seguene appondene a pàggene ca non g'esistene:",
        "wantedtemplates": "Template cchiù ausete",
        "mostlinked": "Pàggene cchiù appundete",
        "mostlinkedcategories": "Categorije cchiù appundete",
-       "mostlinkedtemplates": "Template cchiù appundete",
+       "mostlinkedtemplates": "Pàggene cchiù appundate",
        "mostcategories": "Pàggene cu 'nu sacche de categorije",
        "mostimages": "Fail cchiù appundete",
        "mostinterwikis": "Pàggene cu cchiù interuicchi de tutte",
        "unwatchthispage": "No condrollà cchiù 'a pàgene",
        "notanarticle": "Non g'è 'na vosce",
        "notvisiblerev": "'A revisione ha state scangellete",
-       "watchlist-details": "{{PLURAL:$1|$1 pàgene|$1 pàggene}} jndr'à liste de le pàggene condrollete, scartanne le pàggene de le 'ngazzaminde.",
+       "watchlist-details": "{{PLURAL:$1|$1 pàgene|$1 pàggene}} jndr'à l'elenghe de le pàggene condrollate, scartanne le pàggene de le 'ngazzaminde.",
        "wlheader-enotif": "* Notifiche pe email abbilitate.",
        "wlheader-showupdated": "* Le pàggene ca onne state cangiate da l'urtema visite avènene fatte vedè in '''grascette'''",
-       "wlnote": "Aqquà sotte {{PLURAL:$1|ste l'urteme cangiamende|stonne l'urteme '''$1''' cangiaminde}} jndr'à {{PLURAL:$2|l'urtema ore|l'urteme '''$2''' ore}}, jndr'à $3, $4.",
+       "wlnote": "Aqquà sotte {{PLURAL:$1|ste l'urteme cangiamende|stonne l'urteme <strong>$1</strong> cangiaminde}} jndr'à {{PLURAL:$2|l'urtema ore|l'urteme <strong>$2</strong> ore}}, jndr'à $3, $4.",
        "wlshowlast": "Vide l'urteme $1 ore $2 sciurne",
        "watchlist-options": "Opzione d'a liste de le pàggene condrollete",
        "watching": "Fà vedè...",
        "exbeforeblank": "'u condenute apprime d'a pulizie ere: '$1'",
        "delete-confirm": "Scangille \"$1\"",
        "delete-legend": "Scangille",
-       "historywarning": "'''Vide Bbuene:''' 'a pàgene ca ste scangille tène 'na storie de cangiaminde cu cchiù o mene $1 {{PLURAL:$1|revisione|revisiune}}:",
+       "historywarning": "<strong>Vide Bbuene:</strong> 'A pàgene ca ste scangille tène 'na storie de cangiaminde cu cchiù o mene $1 {{PLURAL:$1|revisione|revisiune}}:",
        "confirmdeletetext": "Vide Bbuene, vide ca ste scangille 'na pàgene ca tène pure nu sbuenne de cangiaminde.\nConferme quidde ca ste face, ce si sicure ca è capite quidde ca ste cumbine e ce è corrette rispette a [[{{MediaWiki:Policy-url}}|le regole de scangellazione]], ce no statte quiete.",
        "actioncomplete": "Aziona Combletete",
        "actionfailed": "Aziona fallite",
        "protect-locked-blocked": "Tu non ge puè cangià le levèlle de protezzione quanne si bloccate.\nAqquà stonne le 'mbostaziune corrende pa pàgene '''$1''':",
        "protect-locked-dblock": "Le levèlle de protezzione non ge ponne essere cangete purcè stè 'nu blocche d'u database.\nAqquà stonne le 'mbostaziune corrende pa pàgene '''$1''':",
        "protect-locked-access": "Tu non ge tine le permesse pe putè cangià le levèlle de protezione de le pàggene.\nChiste sonde le configuraziune corrende p'a pàgene '''$1''':",
-       "protect-cascadeon": "Sta pàgene mò jè  prutette purcè jè ingluse jndr'à {{PLURAL:$1|'a seguende pàgene, ca tène|le seguende pàggene, ca tènene}} a protezione a cascata appizzechete.\nTu puè cangià 'u levèlle de protezione de sta pàgene ma stu cangiamende non ge tène effette a cascata.",
+       "protect-cascadeon": "Sta pàgene mò jè  prutette purcè jè 'ngluse jndr'à {{PLURAL:$1|'a seguende pàgene, ca tène|le seguende pàggene, ca tènene}} a protezione a cascata appizzecate.\nTu puè cangià 'u levèlle de protezione de sta pàgene ma stu cangiamende non ge tène effette a cascata.",
        "protect-default": "Permitte a tutte l'utinde",
        "protect-fallback": "Richieste d'u permesse \"$1\"",
        "protect-level-autoconfirmed": "Blocche l'utinde nuève e chidde non reggistrate",
        "import-upload": "Careche le date in XML",
        "import-token-mismatch": "S'à perse 'a sessione de le date. Pruève 'n'otra vote.",
        "import-invalid-interwiki": "Non ge pozze 'mbortà da 'a Uicchi specificate.",
-       "import-error-edit": "Pàgene \"$1\" non g' 'mbortate purcé tu non ge tìne le permesse pe cangiarle.",
-       "import-error-create": "Pàgene \"$1\" non g' 'mbortate purcé tu non ge tìne le permesse pe ccrejarle.",
-       "import-error-interwiki": "Pagene \"$1\" non g'ha state 'mbortate purcé 'u nome sue jè riservate pe collegaminde esterne (interuicchi).",
+       "import-error-edit": "Pàgene \"$1\" non g'ha state 'mbortate purcé tu non ge tìne le permesse pe cangiarle.",
+       "import-error-create": "Pàgene \"$1\" non g'ha state 'mbortate purcé tu non ge tìne le permesse pe ccrejarle.",
+       "import-error-interwiki": "Pagene \"$1\" non g'ha state 'mbortate purcé 'u nome sue jè riservate pe collegaminde de fore (interuicchi).",
        "import-error-special": "'A pagena \"$1\" non g'ha state 'mbortate purcé apponde a 'nu namespace speciale ca non g'è permesse a le pàggene normale.",
-       "import-error-invalid": "'A pàgene \"$1\" non g'ha state 'mbortate purcé 'u nome jè invalide.",
+       "import-error-invalid": "'A pàgene \"$1\" non g'ha state 'mbortate purcé 'u nome sus a 'u quale avessa essere 'mborate non g'è valide sus a sta uicchi.",
        "import-error-unserialize": "'A revisione $2 d'a pàgene \"$1\" non ge pò essere deserializzate. 'A revisione ha state reportate pe ausà 'u modelle d'u condenute $3 serializzate cumme $4.",
        "import-options-wrong": "{{PLURAL:$2|opzione|opziune}} sbagliate: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "'A pàgene radice date tène 'nu titole invalide.",
index c80be69..82044e2 100644 (file)
@@ -75,7 +75,8 @@
                        "MaxBioHazard",
                        "Tourorist",
                        "Purodha",
-                       "Максим777"
+                       "Максим777",
+                       "Sealle"
                ]
        },
        "tog-underline": "Подчёркивание ссылок:",
        "uploaderror": "Ошибка загрузки файла",
        "upload-recreate-warning": "'''Внимание: файл с таким именем был удален или переименован.'''\n\nНиже представлены журналы удалений и переименований этой страницы:",
        "uploadtext": "Воспользуйтесь этой формой для загрузки файлов на сервер.\nЧтобы просмотреть ранее загруженные файлы, обратитесь к [[Special:FileList|списку загруженных файлов]]. Загрузка файлов также записывается в [[Special:Log/upload|журнал загрузок]], данные об удалённых файлах можно найти в [[Special:Log/delete|журнале удалений]].\n\nДля включения файла в статью вы можете использовать строки вида:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' для вставки полной версии файла;\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|описание]]</nowiki></code>''' для вставки слева от текста уменьшенной до 200 пикселей по ширине версии файла с выводом под ним указанного описания;\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' для вставки ссылки на файл, без отображения его содержимого на странице.",
-       "upload-permitted": "Разрешённые типы файлов: $1.",
-       "upload-preferred": "Предпочтительные типы файлов: $1.",
-       "upload-prohibited": "Запрещённые типы файлов: $1.",
+       "upload-permitted": "{{PLURAL:$2|Разрешённый тип|Разрешённые типы}} файлов: $1.",
+       "upload-preferred": "{{PLURAL:$2|Предпочтительный тип|Предпочтительные типы}} файлов: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Запрещённый тип|Запрещённые типы}} файлов: $1.",
        "uploadlogpage": "Журнал загрузок",
        "uploadlogpagetext": "Ниже представлен список последних загрузок файлов.\nСм. также [[Special:NewFiles|галерею новых файлов]], где сведения о новых загрузках представлены в более наглядном виде, и [[Special:ListFiles|все загруженные файлы]].",
        "filename": "Имя файла",
        "filehist-comment": "Примечание",
        "imagelinks": "Использование файла",
        "linkstoimage": "{{PLURAL:$1|Следующая $1 страница ссылается|Следующие $1 страницы ссылаются|Следующие $1 страниц ссылаются}} на данный файл:",
-       "linkstoimage-more": "Ð\91олее $1 {{PLURAL:$1|Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b\81Ñ\82Ñ\80аниÑ\86}} Ñ\81Ñ\81Ñ\8bлаÑ\8eÑ\82Ñ\81Ñ\8f Ð½Ð° Ñ\8dÑ\82оÑ\82 Ñ\84айл.\nÐ\92 Ð´Ð°Ð½Ð½Ð¾Ð¼ Ñ\81пиÑ\81ке {{PLURAL:$1|пÑ\80едÑ\81Ñ\82авлена Ñ\82олÑ\8cко $1 Ñ\81Ñ\81Ñ\8bлка|пÑ\80едÑ\81Ñ\82авленÑ\8b Ñ\82олÑ\8cко $1 Ñ\81Ñ\81Ñ\8bлок|пÑ\80едÑ\81Ñ\82авленÑ\8b Ñ\82олÑ\8cко $1 Ñ\81Ñ\81Ñ\8bлки}} на этот файл.\nДоступен также [[Special:WhatLinksHere/$2|полный список]].",
+       "linkstoimage-more": "Ð\91олее $1 {{PLURAL:$1|Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b\81Ñ\82Ñ\80аниÑ\86}} Ñ\81Ñ\81Ñ\8bлаÑ\8eÑ\82Ñ\81Ñ\8f Ð½Ð° Ñ\8dÑ\82оÑ\82 Ñ\84айл.\nÐ\92 Ð´Ð°Ð½Ð½Ð¾Ð¼ Ñ\81пиÑ\81ке {{PLURAL:$1|пÑ\80едÑ\81Ñ\82авлена Ñ\82олÑ\8cко $1 Ñ\81Ñ\81Ñ\8bлка|пÑ\80едÑ\81Ñ\82авленÑ\8b Ñ\82олÑ\8cко $1 Ñ\81Ñ\81Ñ\8bлки|пÑ\80едÑ\81Ñ\82авленÑ\8b Ñ\82олÑ\8cко $1 Ñ\81Ñ\81Ñ\8bлок}} на этот файл.\nДоступен также [[Special:WhatLinksHere/$2|полный список]].",
        "nolinkstoimage": "Нет страниц, ссылающихся на данный файл.",
        "morelinkstoimage": "Просмотреть [[Special:WhatLinksHere/$1|остальные ссылки]] на этот файл.",
        "linkstoimage-redirect": "$1 (файловое перенаправление) $2",
        "javascripttest": "Проверка JavaScript",
        "javascripttest-pagetext-noframework": "Эта страница зарезервирована для запуска JavaScript-тестов.",
        "javascripttest-pagetext-unknownframework": "Неизвестная среда тестирования «$1».",
+       "javascripttest-pagetext-unknownaction": "Неизвестное действие «$1».",
        "javascripttest-pagetext-frameworks": "Пожалуйста, выберите одну из следующих сред тестирования: $1",
        "javascripttest-pagetext-skins": "Выберите тему оформления для запуска тестов:",
        "javascripttest-qunit-intro": "См. [$1 документацию по тестированию] на mediawiki.org.",
index 75874f7..d2e05ef 100644 (file)
@@ -10,7 +10,8 @@
                        "Nemo bis",
                        "Urhixidur",
                        "아라",
-                       "Purodha"
+                       "Purodha",
+                       "Krivoshapkina"
                ]
        },
        "tog-underline": "Сигэлэри аннынан тардыы:",
@@ -38,7 +39,7 @@
        "tog-shownumberswatching": "Сирэйи кэтээн көрөр дьон ахсаанын көрдөр",
        "tog-oldsig": "Билиҥҥи илии баттааһын:",
        "tog-fancysig": "Бэйэ илии баттааһына (сигэтэ суох)",
-       "tog-uselivepreview": "Хайдах буолуохтааҕын тутатына эрдэ көрүү (тургутуу быһыытынан)",
+       "tog-uselivepreview": "Хайдах буолуохтааҕын тутатына эрдэ көрүүнү туттуу",
        "tog-forceeditsummary": "Тугу уларыппытым туһунан суруйбатахпына сэрэт",
        "tog-watchlisthideown": "Кэтээн көрүү тиһигэр бэйэм уларытыыларбын көрдөрүмэ",
        "tog-watchlisthidebots": "Кэтээн көрүү тиһигэр робот уларытыытын көрдөрүмэ",
        "pool-queuefull": "Көрдөбүллэри хомуйуу туолбут",
        "pool-errorunknown": "Биллибэт алҕас",
        "pool-servererror": "Пул ааҕааччытын сулууспата үлэлээбэт($1).",
+       "poolcounter-usage-error": "Туһаныы алҕаһа: $1",
        "aboutsite": "{{SITENAME}} туһунан",
        "aboutpage": "Project:туһунан",
        "copyright": "Маны туһанары $1 лиссиэнсийэ көҥүллүүр (атын ыйыллыбытах буоллаҕына).",
        "filerenameerror": "\"$1\" диэн билэ аатын \"$2\" диэҥҥэ кыайан уларытыллыбат.",
        "filedeleteerror": "\"$1\" диэн билэ кыайан сотторуллубат.",
        "directorycreateerror": "\"$1\" диэн ыйдарыы кыайан оҥоһуллубата.",
+       "directoryreadonlyerror": "«$1» паапканы ааҕыахха эрэ сөп.",
+       "directorynotreadableerror": "«$1» паапка сатаан ааҕыллыбат.",
        "filenotfound": "\"$1\" диэн билэни кыайан булбатым.",
        "unexpected": "Барсыбат суолталаах: \"$1\"=\"$2\".",
        "formerror": "Сыыһа: халыып кыайан ылыллыбата",
        "anoneditwarning": "<strong>Болҕой:</strong> Киирбэтэххин. Онон тугу эрэ уларытар түгэҥҥэр аатыҥ оннугар IP аадырыһыҥ барыларыгар көстүө. бу сирэй историятыгар киириэ. Өскөтө <strong>[$1 киирдэххинэ]</strong> эбэтэр <strong>[$2 бэлиэтэннэххинэ]</strong> уларытыыларыҥ Эн ааккын кытта ситимнэниэхтэрэ, ону таһынан ол атын да көдьүүстэрдээх буолуоҕа.",
        "anonpreviewwarning": "''Эн тиһиккэ ааккын эппэттэххин. Уларытыыгын бигэргэттэххинэ IP-аадырыһыҥ сирэй устуоруйатыгар суруллуо.''",
        "missingsummary": "'''Санатыы:''' Уларыппытыҥ кылгас быһаарыытын суруйбатаххын. Уларытыыны бигэргэттэххинэ улартытыыҥ хос быһаарыыта суох барыа.",
+       "selfredirect": "<strong>Болҕой:</strong> Утаарыыны ыстатыйа бэйэтигэр оҥороору гынныҥ.\nБаҕар, утаарыы сирэйин атыны суруйаары гыммытыҥ буолуо эбэтэр атын сирэйи көннөрө олороҕун. \nОл да буоллар, өскө «{{int:savearticle}}» баттамы хат баттаатаххына, утаары оҥоһуллуо.",
        "missingcommenttext": "Манна хос быһаарыыны суруй.",
        "missingcommentheader": "'''Санатыы:''' Хос быһаарыы аатын суруйбатаххын.\n«{{int:savearticle}}» тимэҕи баттаан бигэргэттэххинэ быһаарыыҥ аата суох барыа.",
        "summary-preview": "Хос быһаарыыны көрүү:",
        "content-model-text": "көннөрү тиэкис",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Кураанах эбийиэк",
+       "content-json-empty-array": "Кураанах массив",
        "duplicate-args-category": "Халыыптары ыҥырарга хатыланар аргуменнардаах сирэйдэр",
        "duplicate-args-category-desc": "Халыыптары ыҥырарга хатыланар аргуменнардаах сирэйдэр, холобур маннык <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Болҕой. Бу сирэй наһаа элбэх көмпүүтэри ноҕуруускалыыр ресурсаларга сигэнэр.\n\n{{PLURAL:$2|Сигэнии ахсаана|Сигэниилэр ахсааннара}} мантан тахсыа суохтаах - $2, билигин {{PLURAL:$1|$1 сигэниилээх|$1 сигэниилэрдээх}}.",
        "history-feed-empty": "Көрдүүр сирэйиҥ суох эбит.\nБаҕар сотуллубута эбэтэр атын ааттаммыта буолуо.\nМанна майгынныыр сирэйдэри [[Special:Search|көрдөөн]] көр.",
        "rev-deleted-comment": "(көннөрүү туһунан сурук сотуллунна)",
        "rev-deleted-user": "(кыттааччы аата сотулунна)",
-       "rev-deleted-event": "(бэлиэтээһин дьайыыта сотулунна)",
+       "rev-deleted-event": "(бэлиэтээһин сотулунна)",
        "rev-deleted-user-contribs": "[кыттааччы аата эбэтэр IP-аадырыһа сотуллубуттар — уларытыы көстүбэт оҥоһуллубут]",
        "rev-deleted-text-permission": "Сирэй бу барыла '''сотуллубут'''.\nБыһаарыыта  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} манна] баар буолуон сөп.",
        "rev-suppressed-text-permission": "Сирэй бу барыла <strong>кистэммит</strong>.\nБыһаарыы [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} кистээһин сурунаалыгар] баар.",
        "revdelete-legend": "Хааччахтары туруоруу:",
        "revdelete-hide-text": "Уларытыы тиэкиһэ",
        "revdelete-hide-image": "Билэ иһин кистээ",
-       "revdelete-hide-name": "Дьайыыны уонна дьайыы сыалын кистээ.",
+       "revdelete-hide-name": "Дьайыыны уонна дьайыы соругун кистээ",
        "revdelete-hide-comment": "Уларытыы туһунан",
        "revdelete-hide-user": "Кыттааччы аата/IP-та",
        "revdelete-hide-restricted": "Маны дьаһабыллартан эмиэ кистииргэ",
        "searchall": "бары",
        "showingresults": "Манна {{PLURAL:$1|түмүк|түмүктэр}} {{PLURAL:$1|көрдөрүлүннэ|көрдөрүлүннүлэр}} <strong>$1</strong> , мантан саҕалаан №&nbsp;<strong>$2</strong>.",
        "showingresultsinrange": "Манна {{PLURAL:$1|<strong>1</strong> түмүк|<strong>$1</strong> түмүк}} мантан саҕалаан <strong>$2</strong> маныаха дылы <strong>$3</strong> көрдөрүлүннэ.",
+       "search-showingresults": "{{PLURAL:$4|Түмүк <strong>$1</strong> из <strong>$3</strong>|Түмүктэр <strong>$1 — $2</strong> мантан <strong>$3</strong>}}",
        "search-nonefound": "Көрдөбүлгэ эппиэттиир билэлэр көстүбэтилэр.",
        "powersearch-legend": "Дириҥэтэн көрдөөһүн",
        "powersearch-ns": "Аат далыгар көрдөө:",
        "powersearch-togglelabel": "Бэлиэтээ:",
        "powersearch-toggleall": "Барытын",
        "powersearch-togglenone": "Бэлиэтээмэ",
+       "powersearch-remember": "Кэлин көрдүүргэ маны туһан",
        "search-external": "Тастан көрдөөһүн",
        "searchdisabled": "{{SITENAME}} көрдүүр тэрилэ араарыллыбыт. Атын көрдүүр системаларынан наадыйар сирэйдэргитин көрдөтүөххүтүн сөп. Ол гынан баран поисковик кээһигэр баар торум эргэрбит буолуон сөп.",
        "search-error": "Көрдүүр кэмҥэ алҕас таҕыста: $1",
        "preferences": "Уларытыылар",
        "mypreferences": "Туруоруулар",
        "prefs-edits": "Көннөрүү ахсаана:",
-       "prefsnologintext2": "Туруоруулары уларытарга $1 наада.",
+       "prefsnologintext2": "Туруоруулары уларытарга ааккынан киириэхтээххин.",
        "prefs-skin": "Тас көстүү",
        "skin-preview": "Хайдах буолара",
        "datedefault": "Көннөрү көстүүтэ",
        "gender-female": "Кини биики сирэйдэри уларытар",
        "prefs-help-gender": "Маны туруорар булгуччута суох. \nБырагыраамма сорох дьоҥҥо туһаайыллыбыт биллэриилэригэр эбэтэр кинилэргэ сыһыаннаах этиилэригэр кытааччы дьахтарыттан эбэтэр эр киһититтэн көрөн этии тутулун уларытан биэриэн сөп. \nТуора дьоҥҥо көстөр бэлиэтээһин.",
        "email": "Почта",
-       "prefs-help-realname": "Сурукка киирбит аатыҥ (булгуччута суох): ким бу сирэйи уларыппытын көрдөрөргө туттуллар",
+       "prefs-help-realname": "Сурукка киирбит аатыҥ булгуччута суох. Суруйдаххына ааптар быһыытынан ыйыллар буолуоҥ.",
        "prefs-help-email": "Электроннай аадырыһы суруйар булгуччута суох, ол эрээри киирии тылгын умуннаххына санатарга көмөлөһүө.",
        "prefs-help-email-others": "Эбии. Атын кыттааччылар Эйигин кытта электроннай почтаҕын билбэккэ эрэ суруйсар кыахтаныахтара.",
        "prefs-help-email-required": "E-mail баар буолуохтаах.",
        "prefs-advancedwatchlist": "Дириҥэтиллибит туруоруулар",
        "prefs-displayrc": "Туруоруулары көрдөр",
        "prefs-displaywatchlist": "Көстүүтүн туруоруулара",
+       "prefs-tokenwatchlist": "Токен",
        "prefs-diffs": "Уратылара",
        "prefs-help-prefershttps": "Аныгыскы киириигэр үлэлиир буолуо.",
+       "prefswarning-warning": "Туруорууларгын уларыппыккын ол эрэн бигэргэппэтэххин.\nБу сирэйтэн «$1» баттамы баттаабакка таҕытаххына, барыта уруккутунан хаалыа.",
        "prefs-tabs-navigation-hint": "Сүбэ: Көмпүүтэриҥ клаватууратын стрелкаларын туһанан кыбытыктан кыбытыкка көһүөххүн сөп.",
        "email-address-validity-valid": "Сөп курдук көстөр",
        "email-address-validity-invalid": "Алҕаһа суох аадырыс ирдэнэр",
        "right-deletedtext": "Сотуллубут тиэкиһи уонна сотуллубут сирэйдэр бэйэ-бэйэлэрин ыккардыларыгар уратыларын көрүү",
        "right-browsearchive": "Сотуллубут сирэйдэри көрдөөһүн",
        "right-undelete": "Сотуллубут сирэйи хат киллэрии",
-       "right-suppressrevision": "Администраатардартан кистэммит сирэйдэри көрүү уонна урукку барылларыгар төннөрүү",
+       "right-suppressrevision": "сирэйдэр кистэммит барылларын көрүү, кистээһин уонна көстөр гыныы",
+       "right-viewsuppressed": "бары кыттааччылартан кистэммит барыллары көрүү",
        "right-suppressionlog": "Атын дьон сурунаалларын көрүү",
        "right-block": "Атын кыттааччылар уларыталларын бобуу",
        "right-blockemail": "Эл. суругу ыытары бобуу",
        "right-protect": "Сирэйдэр көмүскэллэрин таһымын уонна каскаадынан көмүскэммит сирэйдэри уларытыы",
        "right-editprotected": "Уларытыллар сирэйдэр \"{{int:protect-level-sysop}}\" таһымынан көмүскэммиттэр",
        "right-editsemiprotected": "Уларытыллар сирэйдэр \"{{int:protect-level-autoconfirmed}}\" таһымынан көмүскэммиттэр",
+       "right-editcontentmodel": "Сирэй ис тутулун уларытыы",
        "right-editinterface": "Кыттааччы интерфейсын уларытыы",
        "right-editusercssjs": "Атын кыттааччылар CSS- и JS-билэлэрин уларытыы",
        "right-editusercss": "Атын кыттааччылар CSS-билэлэрин уларытыы",
        "action-viewmywatchlist": "кэтиир тиһиккин көрүү",
        "action-viewmyprivateinfo": "бэйэҥ тускунан көрүү",
        "action-editmyprivateinfo": "бэйэҥ тускунан суруллубуту уларыт",
+       "action-editcontentmodel": "сирэй ис тутулун уларытыы",
        "nchanges": "$1 {{PLURAL:$1|уларытыы|уларытыылар}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|тиһэх сылдьыыгыттан}}",
        "enhancedrc-history": "устуоруйата",
        "recentchanges-label-plusminus": "Сирэй кээмэйэ бачча баайтынан уларыйбыт",
        "recentchanges-legend-heading": "'''Легендата:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (өссө көр: [[Special:NewPages|Саҥа сирэйдэр тиһиктэрэ]])",
-       "rcnotefrom": "УлаÑ\80Ñ\82Ñ\8bÑ\8bлаÑ\80 Ð±Ñ\83 ÐºÑ\8dмÑ\82Ñ\8dн Ñ\8bла ÐºÓ©Ñ\80дөÑ\80үлүннүлÑ\8dÑ\80: <strong>$2</strong> (манÑ\82ан Ñ\8dлбÑ\8dÑ\85 ÐºÓ©Ñ\80дөÑ\80үллүбÑ\8dÑ\82Ñ\8d: <strong>$1</strong>).",
+       "rcnotefrom": "Ð\9cанна {{PLURAL:$5|Ñ\83лаÑ\80Ñ\8bÑ\82Ñ\8bÑ\8b ÐºÓ©Ñ\80дөÑ\80үлүннÑ\8d\83лаÑ\80Ñ\8bÑ\82Ñ\8bÑ\8bлаÑ\80 ÐºÓ©Ò»Ò¯Ð½Ð½Ò¯Ð»Ñ\8dÑ\80}} Ð±Ð°Ñ\87Ñ\87аÑ\82Ñ\82ан <strong>$3, $4</strong> (баÑ\87Ñ\87аÑ\82Ñ\82ан Ñ\8dлбÑ\8dÑ\85 ÐºÓ©Ñ\81Ñ\82үбÑ\8dÑ\82 <strong>$1</strong>).",
        "rclistfrom": "Бу кэм $3 $2 кэнниттэн оҥоһуллубуттары көрдөр",
        "rcshowhideminor": "$1 кыра уларыйыылары",
        "rcshowhideminor-show": "Көрдөр",
        "uploaderror": "Билэ суруллубата",
        "upload-recreate-warning": "'''Болҕой. Маннык ааттаах билэ хаһан эрэ сотуллубут эбэтэр аата уларытыллыбыт.''\n\nСотуу уонна аат уларытыытын сурунаала аллара көстөр:",
        "uploadtext": "Бу форманы туһанан сиэрбэргэ билэлэри суруйуоххун сөп.\nУрут суруллубут билэлэри көрөргө манна тиий: [[Special:FileList|ойуулар тиһиктэрэ]]. Билэлэри суруйуу уонна иккистээн суруйуу устуоруйата [[Special:Log/upload|манна]], сотуу устуоруйата [[Special:Log/delete|манна]] көстөллөр.\n\nОйууну ыстатыйаҕа киллэрэргэ маннык суруйуллар:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' ойуу хайдах баарынан (кыччаппакка)\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|хос быһаарыы]]</nowiki></code>''' 200 пииксэл кэтиттээх аллараа өттүгэр быһаарыы суруктаах экран хаҥас кырыытыгар сыстар ойуу\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' - ойууну бэйэтин көрдөрбөккө сигэтин эрэ көрдөрүү.",
-       "upload-permitted": "Көҥүллэммит билэ көрүҥнэрэ: $1.",
-       "upload-preferred": "Ð\9cаннÑ\8bк Ð±Ð¸Ð»Ñ\8d ÐºÓ©Ñ\80үҥнÑ\8dÑ\80ин туһанар ордук: $1.",
-       "upload-prohibited": "Ð\9cаннÑ\8bк Ð±Ð¸Ð»Ñ\8d ÐºÓ©Ñ\80үҥнÑ\8dÑ\80Ñ\8d Ð±Ð¾Ð±Ñ\83ллÑ\83бÑ\83Ñ\82Ñ\82аÑ\80: $1.",
+       "upload-permitted": "Көҥүллэммит билэ {{PLURAL:$2|көрүҥэ|көрүҥнэрэ}}: $1.",
+       "upload-preferred": "Ð\91илÑ\8d Ð¼Ð°Ð½Ð½Ñ\8bк {{PLURAL:$2|көÑ\80үҥүн|көÑ\80үҥнÑ\8dÑ\80ин}} туһанар ордук: $1.",
+       "upload-prohibited": "Ð\91илÑ\8d Ð¼Ð°Ð½Ð½Ñ\8bк {{PLURAL:$2|көÑ\80Ò¯Ò¥Ñ\8d Ð±Ð¾Ð±Ñ\83ллÑ\83бÑ\83Ñ\82|көÑ\80үҥнÑ\8dÑ\80Ñ\8d Ð±Ð¾Ð±Ñ\83ллÑ\83бÑ\83Ñ\82Ñ\82аÑ\80}}: $1.",
        "uploadlogpage": "Уларытыы устуоруйата",
        "uploadlogpagetext": "Манна бүтэһик уларытыылар тиһиктэрэ көстөр.\nӨссө [[Special:NewFiles|саҥа билэлэр]] тиһиктэрин көрүөххүн сөп.",
        "filename": "Билэ аата",
        "largefileserver": "Билэ ыйааһына көҥүллэммиттэн ордук.",
        "emptyfile": "Суруйбут билэҥ арааһа кураанах быһылаах. Баҕар билэ аатын сыыһа суруйбутуҥ буолаарай. Өссө төгүл көр.",
        "windows-nonascii-filename": "Бу биики ASCII табылыыссатыгар суох бэлиэлэри өйөөбөт..",
-       "fileexists": "Ð\98нник Ð°Ð°Ñ\82Ñ\82ааÑ\85 Ð±Ð¸Ð»Ñ\8d Ð±Ñ\8dлиÑ\8dÑ\80 Ð±Ð°Ð°Ñ\80 Ñ\8dбиÑ\82, Ð¾Ð½Ñ\83 Ñ\83лаÑ\80Ñ\8bÑ\82Ñ\8bаÑ\85Ñ\85Ñ\8bн саарбахтыыр буоллаххына - маны көр <strong>[[:$1]]</strong>.\n[[$1|thumb]]",
+       "fileexists": "Ð\9cаннÑ\8bк Ð°Ð°Ñ\82Ñ\82ааÑ\85 Ð±Ð¸Ð»Ñ\8d Ð±Ñ\8dлиÑ\8dÑ\80 Ð±Ð°Ð°Ñ\80 Ñ\8dбиÑ\82, Ð¾Ð½Ñ\83 Ñ\81олбÑ\83йÑ\83оÑ\85Ñ\85Ñ\83н саарбахтыыр буоллаххына - маны көр <strong>[[:$1]]</strong>.\n[[$1|thumb]]",
        "filepageexists": "Бу билэни быһаарар сирэй урут бу аатынан оҥоһуллубут эбит: <strong>[[:$1]]</strong>, ол гынан баран маннык ааттаах сирэй суох.\nКиллэрбит быһаарыыҥ быһаарыы сирэйигэр тахсыа суоҕа.\nСаҥа быһаарыыны эбэр буоллаххына илиигинэн уларытыаххын наада.\n[[$1|thumb]]",
-       "fileexists-extension": "Ð\9cайгÑ\8bннÑ\8bÑ\8bÑ\80 Ð°Ð°Ñ\82Ñ\82ааÑ\85 Ð±Ð¸Ð»Ñ\8d Ð±Ð°Ð°Ñ\80: [[$2|thumb]]\n* Ð­Ð½ Ñ\81Ñ\83Ñ\80Ñ\83йбÑ\83Ñ\82 Ð±Ð¸Ð»Ñ\8dÒ¥ Ð°Ð°Ñ\82а: <strong>[[:$1]]</strong>\n* Ð£Ñ\80Ñ\83ккÑ\83Ñ\82Ñ\82ан Ð±Ð°Ð°Ñ\80 Ð±Ð¸Ð»Ñ\8d Ð°Ð°Ñ\82а: <strong>[[:$2]]</strong>\nÐ\90Ñ\82Ñ\8bн Ð°Ð°Ñ\82Ñ\82а Ñ\82алаÑ\80Ñ\8bÒ¥ Ð±Ñ\83оллаÑ\80.",
+       "fileexists-extension": "Ð\9cайгÑ\8bннÑ\8bÑ\8bÑ\80 Ð°Ð°Ñ\82Ñ\82ааÑ\85 Ð±Ð¸Ð»Ñ\8d Ð±Ð°Ð°Ñ\80: [[$2|thumb]]\n* Ð­Ð½ Ñ\81Ñ\83Ñ\80Ñ\83йбÑ\83Ñ\82 Ð±Ð¸Ð»Ñ\8dÒ¥ Ð°Ð°Ñ\82а: <strong>[[:$1]]</strong>\n* Ð£Ñ\80Ñ\83ккÑ\83Ñ\82Ñ\82ан Ð±Ð°Ð°Ñ\80 Ð±Ð¸Ð»Ñ\8d Ð°Ð°Ñ\82а: <strong>[[:$2]]</strong>\nÐ\9eÑ\80дÑ\83к Ñ\83Ñ\80аÑ\82Ñ\8bлааÑ\85 Ð°Ð°Ñ\82Ñ\82а Ñ\82алÑ\8bаÑ\85Ñ\85Ñ\8bн Ð±Ð°Ò\95аÑ\80баккÑ\8bн Ð´Ñ\83о?",
        "fileexists-thumbnail-yes": "Ойуу арааһа кыччатыллыбыт ойуу (миниатюра) быһыылаах. [[$1|thumb]]\nКөр <strong>[[:$1]]</strong>.\nБу ойуу урукку ойуу кыччатыллыбыта буоллаҕына суруйар наадата суох.",
        "file-thumbnail-no": "Билэ аата мантан саҕаланар <strong>$1</strong>.\nАрааһа ойуу кыра куоппуйата быһыылаах ''(миниатюра)''.\nБу ойуу толору барыйаана баар буоллаҕына ону манна суруй, эбэтэр аатын уларыт.",
        "fileexists-forbidden": "Маннык ааттаах билэ баар, хат суруллар кыаҕа суох.\n\nСин биир бу билэни киллэриэххин баҕарар буоллаххына төннөн атыннык ааттаа. [[File:$1|thumb|center|$1]]",
        "filedelete-maintenance": "Көрүү-истии үлэтин кэмигэр билэлэри сотуу уонна төннөрүү быстах кэмҥэ тохтотулунна.",
        "filedelete-maintenance-title": "Билэни сотор табыллыбата",
        "mimesearch": "MIME көрдөөһүн",
-       "mimesearch-summary": "Бу сирэй MIME көрүҥнээх фильтрдааһыны көҥүллүүр. Киллэрии: contenttype/subtype, холобур <code>image/jpeg</code>.",
+       "mimesearch-summary": "Бу сирэй билэлэри MIME көрүҥнэринэн наардыыры хааччыйар. Киллэрии: contenttype/subtype, холобур <code>image/jpeg</code>.",
        "mimetype": "MIME көрүҥэ:",
        "download": "хачайдаан ылыы",
        "unwatchedpages": "Ким да кэтээбэт сирэйдэрэ",
        "randomincategory-invalidcategory": "\"$1\" диэн категория суох эбит.",
        "randomincategory-nopages": "Бу категорияҕа [[:Category:$1]] киирэр ыстатыйалар суохтар.",
        "randomincategory-category": "Категория:",
+       "randomincategory-legend": "Категория түбэспиччэ ыстатыйата",
        "randomredirect": "Түбэспиччэ утаарыы",
        "randomredirect-nopages": "Бу аат далыгар($1) көһөрөр ыйынньыктар суохтар.",
        "statistics": "Статистика",
        "delete-warning-toobig": "Бу сирэй уларыылара уһун историялаах, хас да ($1) {{PLURAL:$1|хат көрүүлээх|хат көрүүлэрдээх}}. Маны соттоххуна, {{SITENAME}} билэтин тиһигин алдьатыан сөп; салгыыр буоллаххына сэрэнэн үлэлээ.",
        "deleting-backlinks-warning": "'''Сэрэтии.''' Сотоору гынар сирэйгэр [[Special:WhatLinksHere/{{FULLPAGENAME}}|атын сирэйдэр]] сигэнэллэр эбит.",
        "rollback": "Уруккутугар төннөр",
-       "rollback_short": "Төннөрүү",
        "rollbacklink": "төннөр",
        "rollbacklinkcount": "$1 көннөрүүнү суох гын",
        "rollbacklinkcount-morethan": "$1 элбэх көннөрүүнү суох гын",
        "import-logentry-interwiki": "биикилэр ыккардыларынааҕы $1",
        "import-logentry-interwiki-detail": "барыта $2 барылтан $1 барыл",
        "javascripttest": "JavaScript тургутуу",
-       "javascripttest-title": "$1 тургутуу бара турар",
        "javascripttest-pagetext-noframework": "Бу сирэй JavaScript тургутууларга анаммыт.",
        "javascripttest-pagetext-unknownframework": "\"$1\" тургутуу биллибэт эйгэтэ.",
        "javascripttest-pagetext-frameworks": "Бука диэн, бу тургуутуу эйгэлэриттэн биирин тал: $1",
        "javascripttest-pagetext-skins": "Тургутууну ыытарга тас көрүҥүн бастаан тал:",
        "javascripttest-qunit-intro": "[$1 тургутуу документациятын] манна mediawiki.org көр.",
-       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit test suite",
        "tooltip-pt-userpage": "Кыттааччы быһыытынан тус сирэйиҥ",
        "tooltip-pt-anonuserpage": "Билигин киирбит IP-м сирэйэ",
        "tooltip-pt-mytalk": "Кэпсэтэр-ырытар сириҥ",
index 0ea97a7..fb15742 100644 (file)
@@ -26,7 +26,8 @@
                        "හරිත",
                        "Indunil Chamara",
                        "Susith Chandira Gts",
-                       "Thanushka"
+                       "Thanushka",
+                       "Thirsty"
                ]
        },
        "tog-underline": "සබැඳි යටීර කිරීම:",
        "uploaderror": "උඩුගත කිරීම් දෝෂයක්",
        "upload-recreate-warning": "'''අවවාදයයි: මෙම නම තිබූ ගොනුවක් මකාදැමීමට හෝ ගෙනයෑමට හෝ ලක්ව ඇත.'''\n\nඔබගේ පහසුව තකා මෙම පිටුවවෙහි මකාදැමුමෙහි හා ගෙනයෑමෙහි ලඝු සටහන මෙහි දැක්වේ:",
        "uploadtext": "ගොනු උඩුගත කිරීම සඳහා පහත ආකෘති පත්‍රය භාවිතා කරන්න.\nපෙරදී උඩුගතකෙරුණු ගොනු නැරඹුම හෝ ගවේෂණය සඳහා  [[Special:FileList|උඩුගතකෙරුණු ගොනු ලැයිස්තුව]] වෙත යන්න, (යළි)උඩුගතකෙරුම්ද  [[Special:Log/upload|උඩුගතකෙරුම් ලඝු-සටහන]] තුල සටහන් කර ඇති අතර, මකාදැමුම්  [[Special:Log/delete|මකාදැමුම් ලඝු-සටහන]] හි ඇත.\n\nගොනුවක් පිටුවක බහාලීම සඳහා, පහත ආකාරයේ සබැඳියක් භාවිතා කරන්න:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' ගොනුවෙහි පරිපූර්ණ අනුවාදය භාවිතා කිරීමට\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' 'විකල්ප පෙළ' යන්න විස්තරය ලෙසින් තැබෙමින් වම් මායිමෙහි කොටුවක පික්සල 200 පළල ප්‍රවාචිතයක් භාවිතා කිරීමට\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' ගොනුව ප්‍රදර්ශනය නොකෙරෙමින්  ගොනුවට සෘජු ලෙස සබැඳීමට",
-       "upload-permitted": "අවසරලත් ගොනු වර්ගයන්: $1.",
-       "upload-preferred": "අභිරුචි ගොනු වර්ගයන්: $1.",
-       "upload-prohibited": "තහනම් ගොනු වර්ගයන්: $1.",
+       "upload-permitted": "අවසරලත් ගොනුව {{PLURAL:$2|type|types}}: $1.",
+       "upload-preferred": "අභිරුචි ගොනුව {{PLURAL:$2|type|types}}: $1",
+       "upload-prohibited": "තහනම් ගොනුව {{PLURAL:$2|type|types}}: $1.",
        "uploadlogpage": "උඩුගත කිරීම් සටහන",
        "uploadlogpagetext": "ඉතා මෑතදී සිදුකල ගොනු උඩුගතකිරීම් ලැයිස්තුවක් පහත දැක්වේ.\nවැඩිමනත් දෘශ්‍ය සමාලෝචනය සඳහා [[Special:NewFiles|නව ගොනු ගැලරිය]] බලන්න.",
        "filename": "ගොනු නාමය",
        "version-libraries": "ස්ථාපිත පුස්තකාල",
        "version-libraries-library": "පුස්තකාලය",
        "version-libraries-version": "අනුවාදය",
+       "redirect-file": "ගොනුනාමය",
        "fileduplicatesearch": "අනුපිටපත් ගොනු සඳහා ගවේෂණය කරන්න",
        "fileduplicatesearch-summary": "එහි පූරක අගය පාදක කර ගෙන අනුපිටපත් ගොනු සඳහා ගවේෂණය කරන්න.",
        "fileduplicatesearch-legend": "අනුපිටපතක් සඳහා ගවේෂණය කරන්න",
index c609bb1..8f5acaa 100644 (file)
        "prefs-personal": "Podatki o uporabniku",
        "prefs-rc": "Zadnje spremembe",
        "prefs-watchlist": "Spisek nadzorov",
+       "prefs-editwatchlist": "Uredi spisek nadzorov",
+       "prefs-editwatchlist-label": "Uredite vnose na svojem spisku nadzorov:",
+       "prefs-editwatchlist-edit": "Preglejte in odstranite naslove s svojega spiska nadzorov",
+       "prefs-editwatchlist-raw": "Uredite gol spisek nadzorov",
+       "prefs-editwatchlist-clear": "Počistite svoj spisek nadzorov",
        "prefs-watchlist-days": "Število dni za prikaz na spisku nadzorov:",
        "prefs-watchlist-days-max": "Največ $1 {{PLURAL:$1|dan|dneva|dni}}",
        "prefs-watchlist-edits": "Število urejanj za prikaz na razširjenem spisku nadzorov:",
        "uploaderror": "Napaka",
        "upload-recreate-warning": "'''Opozorilo: Datoteka s tem imenom je bila izbrisana ali prestavljena.'''\n\nDnevnik brisanja in prestavitev za to stran sta navedena tukaj:",
        "uploadtext": "Spodnji obrazec lahko uporabite za nalaganje datotek.\nZa ogled ali iskanje že naloženih pojdite na [[Special:FileList|seznam naloženih datotek]]; ponovna nalaganja so zabeležena tudi v [[Special:Log/upload|dnevniku nalaganja]], izbrisi pa v [[Special:Log/delete|dnevniku brisanja]].\n\nDatoteko lahko na želeno stran vključite na naslednje načine:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg]]</nowiki></code>''' (polna velikost)\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg|200px|thumb|left|opisno besedilo]]</nowiki></code>''' (slika pomanjšana na 200 slikovnih pik širine, uokvirjena, z levo poravnavo in opisom »opisno besedilo«)\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></code>''' (neposredna povezava z datoteko)",
-       "upload-permitted": "Dovoljene vrste datotek: $1.",
-       "upload-preferred": "Priporočene vrste datotek: $1.",
-       "upload-prohibited": "Prepovedane vrste datotek: $1.",
+       "upload-permitted": "{{PLURAL:$2|Dovoljena vrsta|Dovoljeni vrsti|Dovoljene vrste}} datotek: $1.",
+       "upload-preferred": "{{PLURAL:$2|Priporočena vrsta|Priporočeni vrsti|Priporočene vrste}} datotek: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Prepovedana vrsta|Prepovedani vrsti|Prepovedane vrste}} datotek: $1.",
        "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",
index 7d729fb..6253392 100644 (file)
@@ -38,7 +38,7 @@
        "tog-shownumberswatching": "Témbongkeun jumlah nu ngawaskeun",
        "tog-oldsig": "Paraf nu geus aya:",
        "tog-fancysig": "Témbongkeun paraf salaku wikitext (tanpa tumbu otomatis)",
-       "tog-uselivepreview": "Paké pramidang saharita (ujicoba)",
+       "tog-uselivepreview": "Paké pratayang langsung",
        "tog-forceeditsummary": "Mun kotak ringkesan éditan masih kosong, béjaan!",
        "tog-watchlisthideown": "Sumputkeun éditan kuring dina daptar awaskeuneun",
        "tog-watchlisthidebots": "Sumputkeun éditan bot dina daptar awaskeuneun",
        "delete-toobig": "Jujutan édit ieu kaca panjang pisan, leuwih ti {{PLURAL:$1|révisi|révisi}}.\nHal ieu teu diwenangkeun pikeun nyegah karuksakan {{SITENAME}} nu teu dihaja.",
        "delete-warning-toobig": "Jujutan ieu kaca panjang pisan, leuwih ti{{PLURAL:$1|révisi|révisi}}. Dihapusna ieu kaca bisa ngaruksak jalanna pangkalan data {{SITENAME}}; sing ati-ati.",
        "rollback": "Balikkeun éditan",
-       "rollback_short": "Balikkeun",
        "rollbacklink": "balikkeun",
        "rollbackfailed": "Gagal malikkeun",
        "cantrollback": "Éditan teu bisa dibalikkeun; kontribusi panungtung ngarupakeun hiji-hijina panulis kaca ieu.",
        "version-hook-subscribedby": "Didaptarkeun ku",
        "version-version": "(Vérsi $1)",
        "version-license": "Lisénsi MediaWiki",
+       "version-poweredby-translators": "darmamurcaya translatewiki.net",
        "version-software": "Sopwér nu geus diinstal",
        "version-software-product": "Produk",
        "version-software-version": "Vérsi",
index 6a5cb68..741f5ca 100644 (file)
@@ -61,7 +61,8 @@
                        "Abbedabb",
                        "Platinawolf",
                        "Albinomamba",
-                       "Stens51"
+                       "Stens51",
+                       "Boom"
                ]
        },
        "tog-underline": "Stryk under länkar:",
        "prefs-personal": "Mitt konto",
        "prefs-rc": "Senaste ändringar",
        "prefs-watchlist": "Bevakningslista",
+       "prefs-editwatchlist": "Redigera bevakningslistan",
+       "prefs-editwatchlist-label": "Redigera poster på din bevakningslista:",
+       "prefs-editwatchlist-edit": "Visa och ta bort titlar på din bevakningslista",
+       "prefs-editwatchlist-raw": "Redigera bevakningslistan i råformat",
+       "prefs-editwatchlist-clear": "Rensa din bevakningslista",
        "prefs-watchlist-days": "Antal dygn som skall visas i bevakningslistan:",
        "prefs-watchlist-days-max": "Maximalt $1 {{PLURAL:$1|dag|dygn}}",
        "prefs-watchlist-edits": "Maximalt antal redigeringar som visas i utökad bevakningslista:",
        "uploaderror": "Fel vid uppladdningen",
        "upload-recreate-warning": "'''Varning: En fil med det namnet har tagits bort eller flyttats.'''\n\nRaderings- och sidflyttningsloggen för denna sida återges här:",
        "uploadtext": "Använd formuläret nedan för att ladda upp filer.\nFör att titta på eller leta efter filer som redan har laddats upp, se [[Special:FileList|listan över uppladdade filer]]. Uppladdningar loggförs även i [[Special:Log/upload|uppladdningsloggen]], och raderingar i [[Special:Log/delete|raderingsloggen]].\n\nAnvänd en länk på något av följande format för att infoga en fil på en sida:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' för att visa filen i dess hela storlek\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alternativ text]]</nowiki></code>''' för att visa en rendering med bredden 200 pixel i en ruta till vänster med bildtexten 'alternativ text'\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' för att länka direkt till filen utan att visa den",
-       "upload-permitted": "Tillåtna filtyper: $1.",
-       "upload-preferred": "Föredragna filtyper: $1.",
-       "upload-prohibited": "Förbjudna filtyper: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tillåten filtyp|Tillåtna filtyper}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Föredragen filtyp|Föredragna filtyper}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Förbjuden filtyp|Förbjudna filtyper}}: $1.",
        "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",
        "filehist-comment": "Kommentar",
        "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]].",
+       "linkstoimage-more": "Mer än {{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]].",
        "nolinkstoimage": "Inga sidor länkar till den här filen.",
        "morelinkstoimage": "Visa [[Special:WhatLinksHere/$1|fler länkar]] till den här filen.",
        "linkstoimage-redirect": "$1 (filomdirigering) $2",
        "namespace": "Namnrymd:",
        "invert": "Invertera val",
        "tooltip-invert": "Markera denna ruta för att dölja ändringar på sidor inom det valda namnrymden (och tillhörande namnrymden om det är markerat)",
+       "tooltip-whatlinkshere-invert": "Markera denna ruta för att dölja länkar från sidor inom vald namnrymd.",
        "namespace_association": "Associerad namnrymd",
        "tooltip-namespace_association": "Markera denna ruta för att även inkludera diskussions- eller ämnesnamnrymden som är associerad med den valda namnrymden",
        "blanknamespace": "(Huvudnamnrymden)",
        "logentry-upload-revert": "$1 {{GENDER:$2|laddade upp}} $3",
        "rightsnone": "(inga)",
        "revdelete-summary": "sammanfattning",
-       "feedback-bugornote": "Om du är redo att beskriva ett tekniskt problem detaljerat, var god [$1 rapporterar en bugg].\nAnnars kan du använda det enkla formuläret nedan. Din kommentar kommer att läggas till på sidan \"[$3 $2]\", tillsammans med ditt användarnamn och vilken webbläsare du använder.",
+       "feedback-bugornote": "Om du har möjlighet att ge en detaljerad teknisk beskrivning av felet kan du lämna en [$1 buggrapport]. \nAnvänd annars formuläret nedan. Din kommentar kommer att läggas till på sidan \"[$3 $2]\", tillsammans med ditt användarnamn.",
        "feedback-subject": "Ämne:",
        "feedback-message": "Meddelande:",
        "feedback-cancel": "Avbryt",
index 9136117..44cf5e7 100644 (file)
        "deleteprotected": "Ви не можете видалити цю сторінку, тому що вона захищена.",
        "deleting-backlinks-warning": "'''Попередження:'''  [[Special:WhatLinksHere/{{FULLPAGENAME}}|інші сторінки]] посилаються або містять сторінку, яку ви маєте намір видалити.",
        "rollback": "Відкинуто редагування",
-       "rollback_short": "Відкинути",
        "rollbacklink": "відкинути",
        "rollbacklinkcount": "відкинути $1 {{PLURAL:$1|редагування|редагування|редагувань}}",
        "rollbacklinkcount-morethan": "відкинути понад $1 {{PLURAL:$1|редагування|редагування|редагувань}}",
        "revertmove": "відкинути",
        "delete_and_move": "Вилучити і перейменувати",
        "delete_and_move_text": "== Потрібне вилучення ==\nСторінка з назвою [[:$1|«$1»]] вже існує.\nБажаєте вилучити її для можливості перейменування?",
-       "delete_and_move_confirm": "Так, вилучити цю сторінку",
+       "delete_and_move_confirm": "Так, вилучити для перейменування",
        "delete_and_move_reason": "Вилучена для можливості перейменування сторінки «[[$1]]»",
        "selfmove": "Неможливо перейменувати сторінку: поточна й нова назви сторінки співпадають.",
        "immobile-source-namespace": "Не можна перейменовувати сторінки з простору назв «$1»",
        "thumbnail-temp-create": "Не вдалося створити тимчасовий файл мініатюри",
        "thumbnail-dest-create": "Не вдалося зберегти мініатюру до місця призначення",
        "thumbnail_invalid_params": "Помилковий параметр мініатюри",
+       "thumbnail_toobigimagearea": "Файл з розмірами більше, ніж $1",
        "thumbnail_dest_directory": "Неможливо створити цільову директорію",
        "thumbnail_image-type": "Тип зображення не підтримується",
        "thumbnail_gd-library": "Неповна конфігурація бібліотеки GD, відсутня функція $1",
        "import-logentry-interwiki": "«$1» — міжвікі імпорт",
        "import-logentry-interwiki-detail": "Імпортовано $1 {{PLURAL:$1|версія|версії|версій}} з $2",
        "javascripttest": "Тестування JavaScript",
-       "javascripttest-title": "Працює  $1  випробувань",
        "javascripttest-pagetext-noframework": "Ця сторінка призначений для тестування JavaScript.",
        "javascripttest-pagetext-unknownframework": "Невідоме середовище тестування \" $1 \".",
+       "javascripttest-pagetext-unknownaction": "невідома дія \"$1\".",
        "javascripttest-pagetext-frameworks": "Будь ласка, оберіть одне з наступних середовищ тестування: $1",
        "javascripttest-pagetext-skins": "Виберіть оформлення сторінки запуску тесту:",
        "javascripttest-qunit-intro": "Переглянути [ $1  тестування документації] на mediawiki.org.",
-       "javascripttest-qunit-heading": "Набір тестів MediaWiki JavaScript QUnit",
        "tooltip-pt-userpage": "Ваша сторінка користувача",
        "tooltip-pt-anonuserpage": "Сторінка користувача для вашої IP-адреси",
        "tooltip-pt-mytalk": "Ваша сторінка обговорення",
        "version-entrypoints-header-url": "URL",
        "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Шлях до статей]",
        "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Шлях до скриптів]",
+       "version-libraries": "Встановлені бібліотеки",
+       "version-libraries-library": "Бібліотека",
+       "version-libraries-version": "Версія",
        "redirect": "Перенаправлення за файлом, користувачем, сторінкою або ID версії",
        "redirect-legend": "Перенаправити на файл чи сторінку",
        "redirect-summary": "Ця спеціальна сторінка перенаправляє на файл (за поданою назвою файлу), сторінку (за поданим ID версії або сторінки) або сторінку користувача (за поданим числовим ID користувача). Використання: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]],[[{{#Special:Redirect}}/revision/328429]] або [[{{#Special:Redirect}}/user/101]].",
index ca9b49c..c508fed 100644 (file)
        "tog-numberheadings": "سرخیوں کو خودکار نمبر دیجئے",
        "tog-showtoolbar": "تدوینی اوزاردان دکھائیے",
        "tog-editondblclick": "طقین پر صفحات کی ترمیم کیجئے",
-       "tog-editsectiononrightclick": "سطری عنوانات پر دایاں طق کے ذریعے سطری ترمیم کاری فعال بناؤ",
+       "tog-editsectiononrightclick": "سطری عنوانات پر دایاں طق (رائیٹ کلک) کے ذریعے سطری ترمیم کاری فعال بناؤ",
        "tog-watchcreations": "میرے تخلیق کردہ صفحات اور میری زبر اثقال کردہ ملفات کو میری زیر نظر فہرست میں شامل کیا کیجئے",
        "tog-watchdefault": "میرے تدوین شدہ صفحات اور ملفات کو میری زیر نظر فہرست میں شامل کیا کیجئے",
        "tog-watchmoves": "میرے منتقل کردہ صفحات اور ملفات کو میری زیر نظر فہرست میں شامل کیا کیجئے",
        "tog-watchdeletion": "میرے حذف کردہ صفحات اور ملفات کو میری زیر نظر فہرست میں شامل کیا کیجئے",
+       "tog-watchrollback": "میں جن صفحات کو استرجع کروں وہ میری زیر نظر فہرست میں شامل کیا کریں",
        "tog-minordefault": "تمام ترمیمات کو ہمیشہ بطورِ معمولی ترمیم نشانزد کیا کرو",
        "tog-previewontop": "تدوینی خانہ سے پہلے نمائش دکھاؤ",
        "tog-previewonfirst": "پہلی ترمیم پر نمائش دکھاؤ",
        "hidden-category-category": "پوشیدہ زمرہ جات",
        "category-subcat-count": "{{PLURAL:$2|اِس زمرہ میں صرف درج ذیل ذیلی زمرہ ہے.|اِس زمرہ میں درج ذیل {{PLURAL:$1|ذیلی زمرہ|$1 ذیلی زمرہ جات}}, کل $2 میں سے.}}",
        "category-subcat-count-limited": "اِس زمرہ میں درج ذیل {{PLURAL:$1|ذیلی زمرہ ہے|$1 ذیلی زمرہ جات ہیں}}.",
-       "category-article-count": "{{PLURAL:$2|اس زمرہ میں صرف یہ درج ذیل صفحہ مشمول ہے۔|اس زمرہ کے کل $2 صفحات میں سے $1 {{PLURAL:$1|صفحہ|صفحات}} درج ذیل {{PLURAL:$1|ہے|ہیں}}۔",
+       "category-article-count": "{{PLURAL:$2|اس زمرہ میں صرف درج ذیل صفحہ شامل کیا گیا ہے۔|اس زمرہ کے کل $2 صفحات میں سے $1 {{PLURAL:$1|صفحہ|صفحات}} درج ذیل {{PLURAL:$1|ہے|ہیں}}۔",
        "category-article-count-limited": "یہ درج ذیل {{PLURAL:$1|صفحہ|$1 صفحات}} اس زمرہ میں مشمول {{PLURAL:$1|ہے|ہیں}}۔",
+       "category-file-count": "{{PLURAL:$2|اس زمرہ میں صرف درج ذیل ملف شامل کی گئی ہے۔|اس زمرہ کی کل $2 ملفات میں سے $1 {{PLURAL:$1|ملف|ملفات}} درج ذیل {{PLURAL:$1|ہے|ہیں}}۔",
        "category-file-count-limited": "یہ درج ذیل {{PLURAL:$1|صفحہ|$1 صفحات}} اس زمرہ میں شامل {{PLURAL:$1|ہے|ہیں}}۔",
        "listingcontinuesabbrev": "۔جاری",
        "index-category": "فہرست شدہ صفحات",
        "deletethispage": "یہ صفحہ حذف کریں",
        "undeletethispage": "یہ صفحہ بحال کریں",
        "undelete_short": "بحال {{PLURAL:$1|ایک ترمیم|$1 ترامیم}}",
+       "viewdeleted_short": "{{PLURAL:$1|ایک ترمیم حذف ہوچکی|$1 ترامیم حذف ہوچکیں}}",
        "protect": "محفوظ",
        "protect_change": "تبدیل کرو",
        "protectthispage": "اس صفحےکومحفوظ کریں",
        "articlepage": "مندرجاتی صفحہ دیکھیۓ",
        "talk": "تبادلہٴ خیال",
        "views": "خیالات",
-       "toolbox": "اÙ\88زارداÙ\86",
+       "toolbox": "Ø¢Ù\84ات",
        "userpage": "صفحۂ صارف دیکھئے",
        "projectpage": "صفحۂ منصوبہ دیکھئے",
        "imagepage": "صفحۂ مسل دیکھئے",
        "otherlanguages": "دیگر زبانوں میں",
        "redirectedfrom": "($1 سے پلٹایا گیا)",
        "redirectpagesub": "لوٹایا گیا صفحہ",
+       "redirectto": "لوٹایا گیا صفحہ:",
        "lastmodifiedat": "آخری بار تدوین $2, $1 کو کی گئی۔",
        "viewcount": "اِس صفحہ تک {{PLURAL:$1|ایک‌بار|$1 مرتبہ}} رسائی کی گئی",
        "protectedpage": "محفوظ شدہ صفحہ",
        "jumptonavigation": "رہنمائی",
        "jumptosearch": "تلاش",
        "view-pool-error": "معذرت کے ساتھ، تمام معیلات پر اِس وقت اِضافی بوجھ ہے.\nبہت زیادہ صارفین اِس وقت یہ صفحہ ملاحظہ کرنے کی کوشش کررہے ہیں.\nبرائے مہربانی! صفحہ دیکھنے کیلئے دوبارہ کوشش کرنے سے پہلے ذرا انتظار فرمالیجئے.\n\n$1",
+       "generic-pool-error": "ہم معذرت خواہ ہیں! معیلات (سرورز) پر اِس وقت اِضافی بوجھ ہے.\nصارفین کی کثیر تعداد اِس وقت یہی صفحہ ملاحظہ کرنے کی کوشش کررہی ہے.\nبرائے مہربانی!دوبارہ کوشش کرنے سے پہلے ذرا انتظار فرمائیے.",
        "pool-errorunknown": "نامعلوم خطا",
+       "poolcounter-usage-error": "استعمال میں خامی: $1",
        "aboutsite": "تعارف {{SITENAME}}",
        "aboutpage": "Project:تعارف",
-       "copyright": "تمام مواد $1 کے تحت میسر ہے۔",
+       "copyright": "تمام مواد $1 کے تحت میسر ہے، جب تک کوئی دوسری وجہ نا ہو۔",
        "copyrightpage": "{{ns:project}}:حقوق تصانیف",
        "currentevents": "حالیہ واقعات",
        "currentevents-url": "Project:حالیہ واقعات",
        "pagetitle-view-mainpage": "{{SITENAME}}",
        "retrievedfrom": "‘‘$1’’ مستعادہ منجانب",
        "youhavenewmessages": "آپکے لیۓ ایک $1 ہے۔ ($2)",
+       "newmessageslinkplural": "{{PLURAL:$1|نیا پیغام|999=نئے پیغاماتs}}",
        "newmessagesdifflinkplural": "آخری {{PLURAL:$1|تبدیلی|تبدیلیاں}}",
        "youhavenewmessagesmulti": "ء$1 پر آپ کیلئے نئے پیغامات ہیں",
        "editsection": "ترمیم",
        "toc": "فہرست",
        "showtoc": "دکھائیں",
        "hidetoc": "چھپائیں",
+       "collapsible-collapse": "خاتمے",
        "collapsible-expand": "توسیع",
+       "confirmable-confirm": "کیا {{GENDER:$1|آپ کو}} اس بات کا یقین ہے؟",
+       "confirmable-yes": "جی ہاں",
+       "confirmable-no": "جی نہیں",
        "thisisdeleted": "دیکھیں یا بحال کریں $1؟",
        "viewdeleted": "دیکھیں $1؟",
        "restorelink": "{{PLURAL:$1|ایک ترمیم حذف ہوچکی|$1 ترامیم حذف ہوچکیں}}",
        "nospecialpagetext": "<strong>آپ نے ایک ناقص خاص صفحہ کی درخواست کی ہے.</strong>\n\n{{درست خاص صفحات کی ایک فہرست [[Special:SpecialPages|{{int:specialpages}}]] پر دیکھی جاسکتی ہے}}.",
        "error": "خطاء",
        "databaseerror": "خطائے ڈیٹابیس",
+       "databaseerror-text": "ڈیٹا بیس کیوری میں خامی پیدا ہوگئی ہے.\nیہ سافٹ ویئر میں ایک مسئلے (بگ) کی نشاندہی کر سکتے ہیں.",
+       "databaseerror-textcl": "ڈیٹا بیس کیوری میں خامی پیدا ہوگئی ہے.",
+       "databaseerror-query": "کیوری: $1",
+       "databaseerror-function": "فنکشن: $ 1",
+       "databaseerror-error": "خرابی: $ 1",
        "laggedslavemode": "انتباہ: ممکن ہے کہ صفحہ میں حالیہ بتاریخہ جات شامل نہ ہوں.\n\nWarning: Page may not contain recent updates.",
        "readonly": "ڈیٹابیس مقفل ہے",
        "enterlockreason": "قفل کیلئے کوئی وجہ درج کیجئے، بشمولِ تخمینہ کہ قفل کب کھولا جائے گا.",
        "readonlytext": "ڈیٹابیس  شاید معمول کی اصلاح کیلئے نئے اندراجات اور دوسری ترمیمات کیلئے مقفل ہے، جس کے بعد یہ عام حالت پر آجائے گا.\nمنتظم، جس نے قفل لگایا، یہ تفصیل فراہم کی ہے: $1",
        "missing-article": "ڈیٹابیس نے کسی صفحے کا متن بنام \"$1\" $2  نہیں پایا جو اِسے پانا چاہئے تھا.\n\nیہ عموماً کسی صفحے کے تاریخی یا پرانے حذف شدہ ربط کی وجہ سے ہوسکتا ہے.\n\nاگر یہ وجہ نہیں، تو آپ نے مصنع‌لطیف میں کھٹمل پایا ہے.\nبرائے مہربانی، URL کی نشاندہی کرتے ہوئے کسی [[Special:ListUsers/sysop|منتظم]] کو اِس کا سندیس کیجئے.",
        "missingarticle-rev": "(نظرثانی#: $1)",
+       "missingarticle-diff": "(فرق: $1، $2)",
        "readonly_lag": "ڈیٹابیس خودکار طور پر مقفل ہوچکا ہے تاکہ ماتحت ڈیٹابیسی معیلات کا درجہ آقا کا ہوجائے.",
        "internalerror": "خطائے اندرونی",
        "internalerror_info": "خطائے اندرونی: $1",
        "filerenameerror": "مسل \"$1\" کو \"$2\" میں بازنام نہیں کیا جاسکا.",
        "filedeleteerror": "مسل \"$1\" کو حذف نہیں کیا جاسکا.",
        "directorycreateerror": "رہنامچہ \"$1\" تخلیق نہیں کیا جاسکا.",
+       "directoryreadonlyerror": "ڈائریکٹری \"$1\" صرف پڑھنے کے لیے.",
+       "directorynotreadableerror": "ڈائریکٹری \"$1\" پڑھنے کے قابل نہیں.",
        "filenotfound": "مسل \"$1\" ڈھونڈا نہ جاسکا.",
        "unexpected": "غیرمتوقع قدر: \"$1\"=\"$2\"",
        "formerror": "خطا: ورقہ بھیجا نہ جاسکا.",
        "cannotdelete-title": "صفحہ ھذف نہیں کیا جا سکتا \"$1\"",
        "badtitle": "خراب عنوان",
        "badtitletext": "درخواست شدہ صفحہ کا عنوان ناقص، خالی، یا کوئی غلط ربط شدہ بین لسانی یا بین ویکی عنوان ہے.\nشاید اِس میں ایک یا زیادہ ایسے حروف موجود ہوں جو عنوانات میں استعمال نہیں ہوسکتے.",
-       "perfcached": "ذیلی ڈیٹا ابطن شدہ ہے اور اِس کے پُرانے ہونے کا امکان ہے. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
-       "perfcachedts": "ذیلی ڈیٹا ابطن شدہ ہے اور آخری بار اِس کی بتاریخیت $1 کو ہوئی. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
+       "perfcached": "ذیلی ڈیٹا ابطن شدہ (cached) ہے اور اِس کے پُرانے ہونے کا امکان ہے. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
+       "perfcachedts": "ذیلی ڈیٹا ابطن شدہ ہے (cached) اور آخری بار اِس کی بتاریخیت $1 کو ہوئی. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
        "querypage-no-updates": "اِس صفحہ کیلئے بتاریخات فی الحال ناقابل بنائی گئی ہیں.\nیہاں کا ڈیٹا ابھی تازہ نہیں کیا جائے گا.",
        "viewsource": "مسودہ",
+       "actionthrottled": "Action throttled",
        "actionthrottledtext": "بطورِ ایک ضدسپم تدبیر، آپ کو مختصر وقت میں کئی بار یہ عمل بجا لانے سے محدود کیا گیا، اور آپ یہ حد پار کرچکے ہیں.\nبراہِ کرم، کچھ منٹ بعد کوشش کیجئے.",
        "protectedpagetext": "اس صفحہ کو تدوین سے محفوظ رکھنے کیلیے مقفل کر دیا گیا ہے۔",
        "viewsourcetext": "آپ صرف مسودہ دیکھ سکتے ہیں اور اسکی نقل اتار سکتے ہیں:",
-       "protectedinterface": "یہ صفحہ مصنع‌لطیف کیلئے سطح‌البینی متن فراہم کرتا ہے، اور ناجائزاستعمال کے سدِباب کیلئے اِسے مقفل کیا گیا ہے.",
-       "editinginterface": "'''انتباہ: ''' آپ ایک ایسا صفحہ تدوین کر رہے ہیں جو مصنع‌لطیف کیلئے سطح‌البینی متن فراہم کرتا ہے۔ اس صفحہ میں کی جانے والی ترمیم، دیگر صارفین کیلئے سطح‌البین کو تبدیل کردے گی۔\nبراہِ کرم، ترجمہ کیلئے [//translatewiki.net/wiki/Main_Page?setlang=en '''ٹرانسلیٹ ویکی.نیٹ'''] (میڈیاویکی مقامیانی منصوبہ) استعمال کیجئے.",
+       "viewyourtext": "آپ اس مواد کو دیکھ سکتے ہیں اور اٹھا (کاپی) سکتے ہیں <strong>آپ کی ترامیم </strong>اس صفحہ پر:",
+       "protectedinterface": "یہ صفحہ سوفٹ وئیر کے لیے انٹرفیس متن فراہم کرتا ہے، اور ناجائزاستعمال کے سدِباب کے لیے اِسے مقفل کیا گیا ہے.",
+       "editinginterface": "'''انتباہ: ''' آپ ایک ایسا صفحہ تدوین کر رہے ہیں جو سوفٹ ویئر کیلئے انٹرفیس متن فراہم کرتا ہے۔ اس صفحہ میں کی جانے والی ترمیم، دیگر صارفین کے لیے انٹرفیس کو تبدیل کردے گی۔\nبراہِ کرم، ترجمہ کے لیے [//translatewiki.net/wiki/Main_Page?setlang=en '''ٹرانسلیٹ ویکی.نیٹ'''] (میڈیا ویکی دارالترجمہ) استعمال کریں.",
+       "translateinterface": "تمام ویکیوں میں تبدیلی یا شامل کرنے کے لیے، اسے استعمال کریں [//translatewiki.net/ translatewiki.net]، میڈیا ویکی دارالترجمہ.",
        "namespaceprotected": "آپ کو '''$1''' فضائے نام میں صفحات تدوین کرنے کی اِجازت نہیں ہے.",
+       "mycustomcssprotected": "آپ اس سی ایس ایس (CSS) صفحہ میں ترمیم کرنے کا اختیار نہیں رکھتے۔",
+       "mycustomjsprotected": "آپ اس جاوا اسکپرٹ (JavaScript) صفحہ میں ترمیم کرنے کا اختیار نہیں رکھتے۔",
+       "myprivateinfoprotected": "آپ ان ذاتی معلوات (private information) میں ترمیم کرنے کا اختیار نہیں رکھتے۔",
+       "mypreferencesprotected": "آپ اپنی ان ترجیحات (preferences) میں ترمیم کرنے کا اختیار نہیں رکھتے۔",
        "ns-specialprotected": "خاص صفحات کی تدوین نہیں کی جاسکتی.",
        "titleprotected": "اس عنوان کو [[User:$1|$1]] نے تخلیق سے محفوظ کیا ہے.\nوجہ یہ بتائی گئی ہے: \"''$2''\"",
        "exception-nologin": "غیر داخل نوشتہ",
        "deleteotherreason": "دوسری/اِضافی وجہ:",
        "deletereasonotherlist": "دوسری وجہ",
        "rollback": "ترمیمات سابقہ حالت پرواپس",
-       "rollback_short": "واپس سابقہ حالت",
        "rollbacklink": "واپس سابقہ حالت",
        "rollbackfailed": "سابقہ حالت پر واپسی ناکام",
        "cantrollback": "تدوین ثانی کا اعادہ نہیں کیا جاسکتا؛ کیونکہ اس میں آخری بار حصہ لینے والا ہی اس صفحہ کا واحد کاتب ہے۔",
index f12520e..0c02aaf 100644 (file)
        "yourname": "Foydalanuvchi nomi:",
        "userlogin-yourname": "Foydalanuvchi nomi",
        "userlogin-yourname-ph": "Foydalanuvchi nomingizni kiriting",
-       "createacct-another-username-ph": "Foydalanuvchi nomingizni kiriting",
+       "createacct-another-username-ph": "Foydalanuvchi nomini kiriting",
        "yourpassword": "Maxfiy soʻz:",
        "userlogin-yourpassword": "Maxfiy soʻz",
        "userlogin-yourpassword-ph": "Maxfiy soʻzni kiriting",
        "gotaccount": "Hisobingiz bormi? '''$1'''.",
        "gotaccountlink": "Kirish",
        "userlogin-resetlink": "Kirish maʻlumotlaringiz esdan chiqdimi?",
-       "userlogin-resetpassword-link": "Unutib qoʻydingizmi?",
+       "userlogin-resetpassword-link": "Maxfiy so‘zni unutib qoʻydingizmi?",
        "userlogin-helplink2": "Kirish uchun yordam",
        "userlogin-loggedin": "Siz {{GENDER:$1|$1}} nomi bilan kirgansiz.\nBoshqa hisob raqami orqali kirish uchun quyidagi formadan foydalaning.",
        "userlogin-createanother": "Boshqa hisob yaratish",
        "createacct-another-submit": "Boshqa hisob yaratish",
        "createacct-benefit-heading": "{{SITENAME}} Sizga oʻxshagan odamlar tomonidan yaratiladi",
        "createacct-benefit-body1": "tahrirlar soni",
-       "createacct-benefit-body2": "maqolalar soni",
+       "createacct-benefit-body2": "sahifalar soni",
        "createacct-benefit-body3": "soʻnggi paytdagi ishtirokchilar soni",
        "badretype": "Siz tomondan kiritilgan maxfiy so'zlar mos kelmayapti.",
        "loginerror": "Foydalanuvchini aniqlashda xatolik",
        "changeemail-oldemail": "Joriy elektron pochta manzili",
        "changeemail-newemail": "Elektron pochtaning yangi manzili",
        "changeemail-none": "(yoʻq)",
+       "changeemail-password": "Sizning {{SITENAME}}dagi maxfiy so‘zingiz:",
        "changeemail-submit": "Manzilni o'zgartirish",
+       "resettokens": "So‘nggi paytdagi kalitlaringiz",
+       "resettokens-legend": "Kalitlaringizni tiklash",
+       "resettokens-tokens": "Kalitlar:",
+       "resettokens-token-label": "$1 (joriy qiymat: $2)",
+       "resettokens-done": "Kalitlar tiklandi.",
+       "resettokens-resetbutton": "Belgilangan kalitlarni tiklash",
        "bold_sample": "Qalin matn",
        "bold_tip": "Qalin matn",
        "italic_sample": "Yotiq matn",
        "subject": "Mavzu/sarlavha",
        "minoredit": "Bu kichik tahrir",
        "watchthis": "Sahifani kuzatish",
-       "savearticle": "Saqlash",
+       "savearticle": "Saqla",
        "preview": "Ko‘rib chiqish",
        "showpreview": "Koʻrib chiqish",
-       "showdiff": "O‘zgarishlarni ko‘rsatish",
+       "showdiff": "Kiritilgan o‘zgarishlar",
        "anoneditwarning": "'''Diqqat:''' Siz tizimga kirmagansiz. Ushbu sahifa tarixida Sizning IP manzilingiz yozib qolinadi.",
        "missingcommenttext": "Iltimos sharh qoldiring.",
        "summary-preview": "Tavsif bunday koʻrinishda boʻladi:",
        "editingsection": "$1 tahrirlanmoqda (boʻlim)",
        "editingcomment": "$1 tahrirlanmoqda (yangi mavzu)",
        "editconflict": "Tahrirlash toʻqnashuvi: $1",
+       "explainconflict": "Sahifani tahrirlayotgan mahalingizda boshqa birov unga oʻzgarish kiritib ulgurdi.\nYuqoridagi tahrir oynasida sahifaning joriy matnini koʻrishingiz mumkin.\nPastdagida esa siz kiritgan oʻzgarishlar koʻrsatilgan.\nKiritmoqchi boʻlgan oʻzgarishlaringizni pastdagi oynadan yuqoridagiga oʻtkazing.\n«{{int:savearticle}}» tugmasini bossangiz <strong>faqat</strong> yuqoridagi matn saqlanadi.",
        "yourtext": "Sizning matningiz",
        "editingold": "<strong>Ogohlantirish: Siz sahifaning eski nusxasini tahrirlayapsiz.</strong>\nUni shunday holicha saqlasangiz, keyingi nusxalardagi oʻzgarishlar yoʻqotiladi.",
        "yourdiff": "Farqlar",
        "post-expand-template-inclusion-warning": "'''Diqqat:''' Qo'llanilayotgan andozalarning jami hajmi juda katta.\nAyrim andozalar qo'shilmaydi.",
        "post-expand-template-inclusion-category": "Qo'llaniladigan andozalarning mumkin bo'lgan miqdoridan oshgan sahifalar",
        "post-expand-template-argument-category": "Andozalarning to'ldirilmagan o'zgaruvchilariga ega sahifalar",
+       "undo-success": "Tahrirni bekor qilish imkoniyati bor. Iltimos, solishtirish oynasini koʻrib chiqib, aynan shu oʻzgarishlarni bekor qilmoqchiligingizga ishonch hosil qiling va undan keyin «Saqla» tugmasini bosing.",
        "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|mun.]]) tomonidan qilingan $1-sonli tahrir qaytarildi",
        "viewpagelogs": "Ushbu sahifaga doir qaydlarni koʻrsat",
        "nohistory": "Ushbu sahifa uchun oʻzgarishlar tarixi mavjud emas.",
        "history-feed-item-nocomment": "$1 $2 da",
        "rev-deleted-comment": "(tahrir izohi o'chirildi)",
        "rev-deleted-user": "(muallif nomi oʻchirilgan)",
-       "rev-deleted-event": "(qayd yozuvi o'chirildi)",
+       "rev-deleted-event": "(qayd yozuvi ochirildi)",
        "rev-delundel": "koʻrsatish/yashirish",
        "rev-showdeleted": "koʻrsatish",
        "revdelete-show-file-submit": "Ha",
+       "revdelete-confirm": "Iltimos, haqiqatdan ham shu harakatni amalga oshirmoqchiligingizni, uning oqibatlarini tushunib turganingizni va harakatingiz [[{{MediaWiki:Policy-url}}|qoidalarga]] asosanlanganini tasdiqlang.",
        "revdelete-hide-text": "Sahifaning ushbu versiyasi matnini yashirish",
        "revdelete-radio-same": "(o'zgartirilmasin)",
        "revdelete-radio-set": "Ha",
        "difference-multipage": "(Sahifalar orasidagi farq)",
        "lineno": "Qator $1:",
        "compareselectedversions": "Tanlangan versiyalarni solishtir",
-       "showhideselectedversions": "Tanlangan versiyalarni koʻrsatish/yashirish",
-       "editundo": "qaytarish",
+       "showhideselectedversions": "Tanlangan versiyalarni oʻzgartirish",
+       "editundo": "bekor qilish",
        "searchresults": "Qidiruv natijalari",
        "searchresults-title": "\"$1\" uchun qidiruv natijalari",
        "titlematches": "Sahifalar nomlaridagi mos kelishlar",
        "prefs-labs": "Tajribaviy imkoniyatlar",
        "prefs-user-pages": "Foydalanuvchi sahifalari",
        "prefs-personal": "Shaxsiy ma’lumotlar",
-       "prefs-rc": "Yangi o‘zgartirishlar",
+       "prefs-rc": "Yangi o‘zgarishlar",
        "prefs-watchlist": "Kuzatuv roʻyxati",
        "prefs-watchlist-days": "Kunlar soni:",
        "prefs-watchlist-days-max": "Maksimum $1 kun",
        "prefs-displayrc": "Tasvirlash moslamalari",
        "prefs-displaywatchlist": "Tasvirlash moslamalari",
        "prefs-diffs": "Versiyalar farqi",
-       "userrights-user-editname": "Foydalanuvchi nomingizni kiriting:",
-       "editusergroup": "Foydalanuvchi guruxlarni taxrirlash",
+       "userrights-user-editname": "Foydalanuvchi nomi:",
+       "editusergroup": "Guruhlardagi aʼzoligini oʻzgartirish",
        "userrights-groupsmember": "Aʼzolik:",
-       "userrights-groupsmember-auto": "Noaniq a'zo",
+       "userrights-groupsmember-auto": "Quyidagi guruhlarga kiradi:",
        "userrights-reason": "Sabab:",
        "userrights-changeable-col": "Siz o'zgartirishingiz mumkin bo'lgan guruhlar",
        "userrights-unchangeable-col": "Siz o'zgartira olmaydigan guruhlar",
        "action-deletedhistory": "ushbu sahifaning oʻchirilgan tarixini koʻrish",
        "action-sendemail": "elektron xatlar jo'natish",
        "nchanges": "$1 {{PLURAL:$1|oʻzgarish|oʻzgarishlar}}",
+       "enhancedrc-history": "tarix",
        "recentchanges": "Yangi oʻzgarishlar",
        "recentchanges-legend": "Yangi oʻzgarishlar moslamalari",
        "recentchanges-summary": "Bu sahifada siz {{SITENAME}}da sodir boʻlgan soʻnggi oʻzgarishlarni koʻrishingiz mumkin.",
        "recentchanges-label-plusminus": "Sahifa vazni qanchaga oʻzgargani (bayt)",
        "recentchanges-legend-heading": "'''Izoh:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|alohida roʻyxat]])",
-       "rcnotefrom": "Quyida <strong>$2</strong> dan keyin amalga oshirilgan oʻzgarishlar keltirilgan (oxirgi <strong>$1</strong> tasi)",
-       "rclistfrom": "$3, $2 dan keyingi oʻzgarishlarni koʻrsat",
+       "rcnotefrom": "Quyida <strong>$3, $4</strong> dan keyin sodir boʻlgan oʻzgarishlar koʻrsatilgan (oxirgi <strong>$1</strong> tasi).",
+       "rclistfrom": "$3, $2 dan keyin sodir boʻlgan oʻzgarishlarni koʻrsat",
        "rcshowhideminor": "Kichik tahrirlarni $1",
        "rcshowhideminor-show": "koʻrsat",
        "rcshowhideminor-hide": "yashir",
        "alllogstext": "{{SITENAME}}dagi barcha jurnallar roʻyxati.\nNatijalarni jurnal nomi, foydalanuvchi nomi (harflar katta-kichikligi inobatga olinadi) yoki sahifa nomi boʻyicha saralashingiz mumkin.\n* Biror foydalanuvchi amalga oshirgan qaydni topish uchun uning foydalanuvchi nomini „Ijrochi“ oynasiga kiriting.\n* Biror foydalanuvchi yoki sahifaga nisbatan amalga oshirilgan qaydni topish uchun ulardan birining nomini „Moʻljal“ oynasiga kiriting.",
        "logempty": "Talabga mos yozuvlar mavjud emas.",
        "log-title-wildcard": "Shu matndan boshlanuvchi sarlavhalarni izlash",
+       "showhideselectedlogentries": "Tanlangan jurnal yozuvini oʻzgartirish",
        "allpages": "Barcha sahifalar",
        "nextpage": "Keyingi sahifa ($1)",
        "prevpage": "Avvalgi sahifa ($1)",
        "watchnologin": "Siz tizimda o'zingizni tanishtirmadingiz",
        "addwatch": "Kuzatuv ro'yxatiga qo'shish",
        "addedwatchtext": "\"[[:$1]]\" sahifasi sizning [[Special:Watchlist|kuzatuv roʻyxatingizga]] qoʻshildi. Bu sahifada va uning munozara sahifasida boʻladigan oʻzgarishlar u yerda koʻrsatiladi.",
-       "removewatch": "Kuzatuv ro'yxatidan o'chirish",
+       "removewatch": "Kuzatuv roʻyxatidan oʻchirish",
        "removedwatchtext": "\"[[:$1]]\" sahifasi [[Special:Watchlist|kuzatuv roʻyxatingizdan]] oʻchirildi.",
        "watch": "Kuzatish",
        "watchthispage": "Sahifani kuzatish",
        "notanarticle": "Maqola emas",
        "watchlist-details": "Sizning kuzatuv roʻyxatingizda hozirda {{PLURAL:$1|bitta sahifa|$1ta sahifa}} mavjud (munozara sahifalarini hisobga olmaganda).",
        "wlheader-showupdated": "Siz oxirgi marta kirganingizdan keyin oʻzgartirilgan sahifalar '''qalin''' yozuv bilan ajratib koʻrsatilgan.",
-       "wlnote": "Below {{PLURAL:$1|is the last change|are the last '''$1''' changes}} in the last {{PLURAL:$2|hour|'''$2''' hours}}, as of $3, $4.",
+       "wlnote": "Quyida oxirgi $2 soat ichida sodir boʻlgan {{PLURAL:$1|oxirgi oʻzgarish|<strong>$1</strong> ta oʻzgarishlar}} koʻrsatilgan. $3, $4.",
        "wlshowlast": "Oxirgi $1 soatdagi $2 kundagi tahrirlarni koʻrsatish",
        "watchlist-options": "Kuzatuv roʻyxati moslamalari",
        "watching": "Kuzatish...",
-       "unwatching": "Kuzatuv ro'yxatidan o'chirish...",
+       "unwatching": "Kuzatuv roʻyxatidan oʻchirilmoqda...",
        "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",
        "enotif_body": "Hurmatli $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nO‘zgarish bo‘yicha qisqacha izoh: $PAGESUMMARY $PAGEMINOREDIT\n\nTahrirlovchiga murojaat qilish:\nel. pochta: $PAGEEDITOR_EMAIL\nviki: $PAGEEDITOR_WIKI\n\nAgar siz sahifaga o‘tib ko‘rmasangiz, u holda uning keyingi o‘zgarishlari bo‘yicha boshqa bildirish xabarlari kelmaydi. Siz, shuningdek o‘z kuzatuv ro‘yxatingizda barcha sahifalar uchun xabar berish moslamasini o‘chirishingiz mumkin.\n\n{{SITENAME}}ning xabar berish tizimi\n\n--\nXabar berish moslamalarini o‘zgartirish uchun quyidagi havola bo‘yicha o‘ting\n{{canonicalurl:{{#special:Preferences}}}}\n\nOʻz kuzatuv roʻyxatingiz moslamalarini o‘zgartirish uchun quyidagi havola bo‘yicha o‘ting\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nOʻz kuzatuv roʻyxatingizdan sahifani o‘chirish uchun quyidagi havola bo‘yicha o‘ting\n$UNWATCHURL\n\nQayta aloqa va yordam\n$HELPPAGE",
        "created": "yaratildi",
        "changed": "o‘zgartirildi",
-       "deletepage": "Sahifani o'chirish",
+       "deletepage": "Sahifani oʻchirish",
        "confirm": "Tasdiqlash",
        "excontent": "tarkibi: „$1“",
        "excontentauthor": "tarkibi: „$1“ (faqat bitta muallifi bor edi: „[[Special:Contributions/$2|$2]]“)",
        "exbeforeblank": "tozalashdan oldingi tarkibi: „$1“",
        "delete-confirm": "$1 — oʻchirish",
        "delete-legend": "O‘chirish",
+       "historywarning": "<strong>Diqqat:</strong> Siz oʻchirmoqchi boʻlayotgan sahifaning tarixida $1 ta {{PLURAL:$1|versiyasi}} bor:",
+       "confirmdeletetext": "Siz ushbu sahifani (yoki faylni) va uning tarixini butunlay oʻchirib tashlashni talab qilyapsiz. Iltimos, haqiqatdan ham shu harakatni amalga oshirmoqchiligingizni, uning oqibatlarini tushunib turganingizni va harakatingiz [[{{MediaWiki:Policy-url}}|qoidalarga]] asosanlanganini tasdiqlang.",
        "actioncomplete": "Bajarildi",
        "actionfailed": "Jarayon amalga oshmadi",
        "deletedtext": "\"$1\" yoʻqotildi.\nYaqinda sodir etilgan yoʻqotishlar uchun $2ni koʻring.",
        "dellogpagetext": "Quyida oxirgi yoʻqotish qaydlari keltirilgan",
        "deletionlog": "yoʻqotish qaydlari",
        "reverted": "Eski holiga keltirildi",
-       "deletecomment": "Sabab:",
+       "deletecomment": "Sababi:",
        "deleteotherreason": "Boshqa/qoʻshimcha sabab:",
        "deletereasonotherlist": "Boshqa sabab",
        "delete-edit-reasonlist": "Sabablar roʻyxatini tahrirlash",
-       "rollback": "Oʻzgarishlarni eski holiga keltirish",
-       "rollbacklink": "eski holiga keltirish",
+       "deleting-backlinks-warning": "'''Ogohlantirish:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Baʼzi bir sahifalar]] siz oʻchirmoqchi boʻlayotgan sahifaga bogʻlangan.",
+       "rollback": "Oʻzgarishlarni ortga qaytarish",
+       "rollbacklink": "ortga qaytarish",
        "rollbacklinkcount": "$1 ta tahrirni ortga qaytarish",
-       "rollbacklinkcount-morethan": "$1 {{PLURAL:$1| tadan koʻp tahrir}}ni eski holiga keltirish",
+       "rollbacklinkcount-morethan": "$1 tadan koʻp tahrirni ortga qaytarish",
        "rollbackfailed": "Eski holiga keltirishda xatolik",
        "revertpage": "[[Special:Contributions/$2|$2]] tahrirlari [[User:$1|$1]] versiyasiga qaytarildi",
        "sessionfailure-title": "Seansda xatolik",
        "undeletelink": "ko‘rib chiqish/tiklash",
        "undeleteviewlink": "koʻrib chiqish",
        "undeleteinvert": "Tanlash tartibini almashtirish",
-       "undeletecomment": "Sabab:",
+       "undeletecomment": "Sababi:",
        "undelete-search-title": "O'chirilgan sahifalarni qidirish",
        "undelete-search-box": "O'chirilgan sahifalarni qidirish",
        "undelete-search-prefix": "Bundan boshlangan sahifalarni koʻrsatish:",
        "blocklist-nousertalk": "o‘zining munozara sahifasini tahrirlay olmaydi",
        "ipblocklist-empty": "Toʻsiqlar roʻyxati boʻsh.",
        "blocklink": "chetlashtirish",
-       "unblocklink": "muhosarani (to'sishni) bekor qilish",
-       "change-blocklink": "Muhosarani (to'siqni) o'zgartirmoq",
+       "unblocklink": "toʻsiqni olib tashlash",
+       "change-blocklink": "toʻsiqni oʻzgartirish",
        "contribslink": "hissa",
        "emaillink": "e-maktub jo‘natish",
        "blocklogpage": "Chetlatish qaydlari",
        "move-watch": "Ushbu sahifani kuzatuv roʻyxatingizga qoʻshish",
        "movepagebtn": "Sahifani koʻchirish",
        "pagemovedsub": "Sahifa qayta nomlandi",
-       "movepage-moved": "'''\"$1\" nomli sahifa \"$2\" nomli sahifaga koʻchirildi'''",
+       "movepage-moved": "'''Sahifa nomi «$1»dan «$2»ga koʻchirildi'''",
        "movepage-moved-redirect": "Qayta yo‘naltirish yaratildi.",
        "movetalk": "Mos munozara sahifasini qayta nomlash",
        "move-subpages": "Ostsahifalarni ham qayta nomlash ($1 gacha)",
        "move-talk-subpages": "Munozara sahifasining ostsahifalarini ham qayta nomlash ($1 gacha)",
+       "movepage-page-moved": "Sahifa nomi «$1»dan «$2»ga koʻchirilgan edi.",
        "movelogpage": "Koʻchirish qaydlari",
        "movesubpage": "{{PLURAL:$1|Ostsahifa|Ostsahifalar}}",
        "movesubpagetext": "Ushbu sahifaning $1 ta ostsahifasi bor.",
        "pageinfo-edits": "Jami tahrirlar soni",
        "pageinfo-toolboxlink": "Sahifa haqida maʼlumot",
        "pageinfo-redirectsto": "Qayta yoʻnaltirish",
+       "markaspatrolledtext": "Bu sahifani tekshirilgan deb belgilash",
        "patrol-log-page": "Patrullash qaydlari",
        "previousdiff": "← Avvalgi tahrir",
        "nextdiff": "Keyingi tahrir →",
        "logentry-delete-delete": "$1 $3 sahifasini {{GENDER:$2|oʻchirdi}}",
        "logentry-move-move": "$1 $3 sahifasini $4ga koʻchirdi",
        "logentry-move-move-noredirect": "$1 $3 sahifasini $4ga {{GENDER:$2|koʻchirdi}}",
+       "logentry-move-move_redir": "$1 sahifa nomini $3dan $4ga yoʻnaltirish ustidan {{GENDER:$2|koʻchirdi}}",
+       "logentry-move-move_redir-noredirect": "$1 sahifa nomini $3dan $4ga yoʻnaltirish ustidan {{GENDER:$2|koʻchirdi}} va yoʻnaltirish qoldirmadi",
        "logentry-patrol-patrol-auto": "$1 $3 sahifasining $4 versiyasini avtomatik patrulladi",
        "logentry-newusers-newusers": "$1 hisob yozuvi {{GENDER:$2|yaratildi}}",
        "logentry-newusers-create": "$1 hisob yozuvi {{GENDER:$2|yaratildi}}",
index 5fee5e9..3042aec 100644 (file)
@@ -26,7 +26,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Tranquanganh",
-                       "Max20091"
+                       "Max20091",
+                       "Dinhxuanduyet"
                ]
        },
        "tog-underline": "Gạch chân liên kết:",
        "uploaderror": "Lỗi khi tải lên",
        "upload-recreate-warning": "'''Cảnh báo: Một tập tin với tên này đã từng bị xóa hoặc di chuyển.'''\n\nNhật trình xóa và di chuyển của trang này được ghi ở dưới để bạn tiện theo dõi:",
        "uploadtext": "Hãy sử dụng mẫu sau để tải tập tin lên.\nĐể xem hoặc tìm kiếm những hình ảnh đã được tải lên trước đây, xin mời xem [[Special:FileList|danh sách các tập tin đã tải lên]].\nviệc tải lên và tải lên lại được ghi lại trong [[Special:Log/upload|nhật trình tải lên]], việc xóa đi được ghi trong [[Special:Log/delete|nhật trình xóa]].\n\nĐể đưa tập tin vào trang, hãy dùng liên kết có một trong các dạng sau:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Tập tin.jpg]]</nowiki></code>''' để phiên bản đầy đủ của tập tin\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Tập tin.png|200px|nhỏ|trái|văn bản thay thế]]</nowiki></code>''' để dùng hình đã được co lại còn 200 điểm ảnh chiều rộng đặt trong một hộp ở lề bên trái với 'văn bản thay thế' dùng để mô tả\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Tập tin.ogg]]</nowiki></code>''' để liên kết trực tiếp đến tập tin mà không hiển thị 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.",
+       "upload-permitted": "{{PLURAL:$2|Định dạng|Các định dạng}} tập tin được phép tải lên: $1.",
+       "upload-preferred": "{{PLURAL:$1|Định dạng|Các định dạng}} tập tin nên dùng: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Định dạng|Các định dạng}} tập tin bị cấm: $1.",
        "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",
        "deleteprotected": "Bạn không thể xóa trang này vì nó đã được khóa lại.",
        "deleting-backlinks-warning": "'''Cảnh báo:''' Có [[Special:WhatLinksHere/{{FULLPAGENAME}}|trang khác]] liên kết đến hoặc nhúng trang mà bạn sắp xóa.",
        "rollback": "Lùi tất cả sửa đổi",
-       "rollback_short": "Lùi tất cả",
        "rollbacklink": "lùi tất cả",
        "rollbacklinkcount": "lùi tất cả $1 sửa đổi",
        "rollbacklinkcount-morethan": "lùi tất cả hơn $1 sửa đổi",
        "namespace": "Không gian tên:",
        "invert": "Đảo ngược lựa chọn",
        "tooltip-invert": "Ẩn các thay đổi trong các không gian tên được chọn và tương ứng",
+       "tooltip-whatlinkshere-invert": "Đánh dấu hộp kiểm này để ẩn các liên kết từ các trang nằm trong không gian tên đã chọn.",
        "namespace_association": "Không gian tên cùng đôi",
        "tooltip-namespace_association": "Cũng ẩn không gian tên thảo luận hoặc nội dung ứng với không gian được chọn",
        "blanknamespace": "(Chính)",
        "import-logentry-interwiki": "đã nhập vào $1 từ wiki khác",
        "import-logentry-interwiki-detail": "Đã nhập $1 phiên bản từ $2",
        "javascripttest": "Kiểm thử JavaScript",
-       "javascripttest-title": "Đang chạy $1 ca kiểm thử",
        "javascripttest-pagetext-noframework": "Trang này dành cho việc chạy các ca kiểm thử JavaScript.",
        "javascripttest-pagetext-unknownframework": "Nền tảng kiểm thử không rõ “$1”.",
+       "javascripttest-pagetext-unknownaction": "Tác vụ không rõ “$1”.",
        "javascripttest-pagetext-frameworks": "Hãy chọn một trong những nền tảng kiểm thử sau: $1",
        "javascripttest-pagetext-skins": "Hãy chọn giao diện để sử dụng với các ca kiểm thử:",
        "javascripttest-qunit-intro": "Xem [$1 tài liệu kiểm thử] tại mediawiki.org.",
-       "javascripttest-qunit-heading": "Tập kiểm thử QUnit JavaScript MediaWiki",
        "tooltip-pt-userpage": "Trang cá nhân của tôi",
        "tooltip-pt-anonuserpage": "Trang của IP bạn đang dùng",
        "tooltip-pt-mytalk": "Thảo luận với tôi",
        "version-entrypoints-header-url": "URL",
        "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath?uselang=vi Đường dẫn bài]",
        "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath?uselang=vi Đường dẫn kịch bản]",
+       "version-libraries": "Các thư viện đã cài đặt",
+       "version-libraries-library": "Thư viện",
+       "version-libraries-version": "Phiên bản",
        "redirect": "Đổi hướng đến tập tin, người dùng, trang, hoặc số phiên bản",
        "redirect-legend": "Đổi hướng đến tập tin hoặc trang",
        "redirect-summary": "Trang đặc biệt này đổi hướng đến một tập tin (theo tên tập tin được cho vào), trang (theo số phiên bản hoặc số trang được cho vào), hoặc trang cá nhân (theo số thành viên). Cách sử dụng: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], hoặc [[{{#Special:Redirect}}/user/101]].",
        "dberr-problems": "Xin lỗi! Trang này đang gặp phải những khó khăn về kỹ thuật.",
        "dberr-again": "Xin thử đợi vài phút rồi tải lại trang.",
        "dberr-info": "(Không thể liên lạc với máy chủ cơ sở dữ liệu: $1)",
-       "dberr-info-hidden": "(Không thể liên lạc với máy chủ cơ sở dữ liệu)",
+       "dberr-info-hidden": "(Không thể liên lạc với cơ sở dữ liệu)",
        "dberr-usegoogle": "Bạn có thể thử tìm trên Google trong khi chờ đợi.",
        "dberr-outofdate": "Chú ý rằng các chỉ mục của Google có thể đã lỗi thời.",
        "dberr-cachederror": "Sau đây là bản sao được lưu bộ đệm của trang bạn muốn xem, và có thể đã lỗi thời.",
index 7b70bb8..7541c02 100644 (file)
@@ -8,7 +8,8 @@
                        "Reedy",
                        "Smeira",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Rachmat.Wahidi"
                ]
        },
        "tog-underline": "Dislienükön yümis:",
        "delete-toobig": "Pad at labon redakamajenotemi lunik ({{PLURAL:$1|revid|revids}} plu $1).\nMoükam padas somik pemiedükon ad vitön däropami pö {{SITENAME}}.",
        "delete-warning-toobig": "Pad at labon jenotemi lunik: {{PLURAL:$1|revid|revids}} plu $1.\nPrudö! Moükam onik ba osäkädükon jäfidi nünodema: {{SITENAME}}.",
        "rollback": "Sädunön redakamis",
-       "rollback_short": "Sädunön vali",
        "rollbacklink": "sädunön vali",
        "rollbackfailed": "Sädunam no eplöpon",
        "cantrollback": "Redakam no kanon pasädunön; keblünan lätik binon lautan teik pada at.",
        "protectedarticle": "ejelon padi: „[[$1]]“",
        "modifiedarticleprotection": "evotükon jelanivodi pada: „[[$1]]“",
        "unprotectedarticle": "esäjelon padi: \"[[$1]]\"",
-       "movedarticleprotection": "moved protection settings from „[[$2]]“ to „[[$1]]“",
+       "movedarticleprotection": "mengubah pengaturan perlindungan dari „[[$2]]“ ke „[[$1]]“",
        "protect-title": "lonon jelanivodi pada: „$1“",
        "prot_1movedto2": "[[$1]] petopätükon lü [[$2]]",
        "protect-legend": "Fümedolös jeli",
index 72ea504..e4c02cf 100644 (file)
@@ -25,6 +25,7 @@
        "tog-watchdefault": "Panõq perräkaemisnimekirjä muq muudõduq leheq ja teedüstüq",
        "tog-watchmoves": "Panõq muq ümbrenõstõduq leheq ja teedüstüq muq perräkaemisnimekirjä",
        "tog-watchdeletion": "Panõq mu kistutõduq leheküleq mu perräkaemisnimekirjä",
+       "tog-watchrollback": "Panõq perräkaemisnimekirjä mano leheq, kon ma olõ uma muutmisõ tagasi võtnuq.",
        "tog-minordefault": "Märgiq kõik parandusõq vaikimiisi väikeisis paranduisis",
        "tog-previewontop": "Näütäq proovikaehust inne, mitte perän toimõnduskasti",
        "tog-previewonfirst": "Näütäq edimädse toimõndusõ aigo proovikaehust",
@@ -35,7 +36,7 @@
        "tog-shownumberswatching": "Näütäq, ku pall'o pruukjit taa lehe perrä kaes",
        "tog-oldsig": "Parhillanõ alakirotus:",
        "tog-fancysig": "Pruugiq vikiteksti moodulist alakirotust (ilma automaatsõ lingildä)",
-       "tog-uselivepreview": "Pruugiq õkvakipõkaehust (proomivõimalus)",
+       "tog-uselivepreview": "Pruugiq õkvakipõkaehust",
        "tog-forceeditsummary": "Annaq teedäq, ku olõ-i kirotõt kokkovõtõt",
        "tog-watchlisthideown": "Näüdäku-i perräkaemisnimekirän mu hindä toimõnduisi",
        "tog-watchlisthidebots": "Näüdäku-i perräkaemisnimekirän robotidõ toimõnduisi",
        "permalink": "Püsülink",
        "print": "Trüküq vällä",
        "view": "Näütäq",
+       "view-foreign": "Kaeq $1 pääl",
        "edit": "Toimõndaq",
+       "edit-local": "Toimõndaq paigapäälist seletüst",
        "create": "Luuq leht",
+       "create-local": "Luuq paigapääline seletüs",
        "editthispage": "Toimõndaq seod artiklit",
        "create-this-page": "Luuq seo leht",
        "delete": "Kistudaq ärq",
        "otherlanguages": "Tõisin keelin",
        "redirectedfrom": "(Ümbre saadõt artiklist $1)",
        "redirectpagesub": "Ümbresaatmislehekülg",
+       "redirectto": "Ümbre saadõt lehele:",
        "lastmodifiedat": "Seo leht om viimäte muudõt $2, $1.",
        "viewcount": "Seo lehe pääl om käüt $1 {{PLURAL:$1|kõrd|kõrda}}.",
        "protectedpage": "Kaidsõt artikli",
        "jumptonavigation": "juhtminõ",
        "jumptosearch": "otsminõ",
        "view-pool-error": "Serveriq ommaq parhilla üle koormaduq.\nPall'o hulga pruukjit pruuv kõrraga seod lehte kaiaq.\nOlõq hää, oodaq vähäkese inne ku vahtsõst proomit.\n\n$1",
+       "generic-pool-error": "Serveriq ommaq parhilla üle koormaduq.\nPall'o hulga pruukjit pruuv kõrraga seod lehte kaiaq.\nOlõq hää, oodaq vähäkese inne ku vahtsõst proomit.",
        "pool-timeout": "Kinniqpidämise uutmisaig om läbi",
        "pool-queuefull": "Kinniqpandmiisi järekõrd om täüs",
        "pool-errorunknown": "Tiidmäldä hädä",
+       "pool-servererror": "Pool counter-teenüst saa-ai pruukiq ($1).",
+       "poolcounter-usage-error": "Pruukmisviga: $1",
        "aboutsite": "{{SITENAME}} tutvustus",
        "aboutpage": "Project:Pääteedüs",
        "copyright": "Teksti või vabalt pruukiq litsendsi $1 perrä, ku olõ-õi tõisildõ üteld.",
        "ok": "Hää külh",
        "retrievedfrom": "Vällä otsit teedüskogost \"$1\"",
        "youhavenewmessages": "Sul om $1 ($2).",
-       "youhavenewmessagesfromusers": "Sullõ om $1 {{PLURAL:$3|ütelt|$3}} pruukjalt ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Sullõ om}} $1 {{PLURAL:$3|ütelt|$3 pruukjalt}} ($2).",
        "youhavenewmessagesmanyusers": "Sullõ om $1 pall'odõlt pruukjilt ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|vahtsõnõ sõnnom|999=vahtsit sõnomit}}",
        "newmessagesdifflinkplural": "{{PLURAL:$1|viimäne muutminõ|999=viimädseq muutmisõq}}",
        "hidetoc": "käkiq",
        "collapsible-collapse": "Käkiq ärq",
        "collapsible-expand": "Näütäq",
+       "confirmable-confirm": "Kas {{GENDER:$1|olõt}} kimmäs?",
+       "confirmable-yes": "Jah",
+       "confirmable-no": "Ei",
        "thisisdeleted": "Kaeq vai tiiq tagasi $1?",
        "viewdeleted": "Näüdädäq $1?",
        "restorelink": "{{PLURAL:$1|üts kistutõt muutminõ|$1 kustutõdut muutmist}}",
        "filerenameerror": "Es saaq teedüstüt \"$1\" teedüstüs \"$2\" ümbre nimetäq.",
        "filedeleteerror": "Teedüstüt nimega \"$1\" saa-i ärq kistutaq.",
        "directorycreateerror": "Saa-s luvvaq kausta \"$1\".",
+       "directoryreadonlyerror": "Kataloog \"$1\" om kirotuskaidsõt.",
+       "directorynotreadableerror": "Kataloog \"$1\" olõ-õi loetav.",
        "filenotfound": "Lövvä es teedüstüt \"$1\".",
        "unexpected": "Uutmaldaq väärtüs: \"$1\"=\"$2\".",
        "formerror": "Viga: vormi saa es pästäq",
        "viewsourcetext": "Võit kaiaq ja kopidaq taa lehe lättekoodi:",
        "viewyourtext": "Saat kaiaq ja kopidaq noidõ muutmiisi lätteteksti, miä sa seo lehe pääle '''esiq''' tennüq olõt:",
        "protectedinterface": "Taa lehe pääl om tarkvara pruukjapalgõ tekst. Leht om lukku pant, et taad saasi-i ärq ts'urkiq. \nKu tahat tetäq ümbrepandmiisi (midä pruukvaq kõik vikiq) pruugiq tuus MediaWiki ümbrepandmisõ tüükeskkunda [//translatewiki.net/ translatewiki.net].",
-       "editinginterface": "'''Hoiatus:''' Sa toimõndat tarkvara pruukjapalgõ tekstiga lehte. Ku siin midä muudat, mõotas tuu pruukjapalõt. Ümbrepandmisõs tasos pruukiq MediaWiki ümbrepandmisõ tüükeskkunda [//translatewiki.net/ translatewiki.net].",
+       "editinginterface": "<strong>Hoiatus:</strong> Sa toimõndat tarkvara pruukjapalgõ tekstiga lehte. \nKu siin midä muudat, mõotas tuu pruukjapalõt.",
+       "translateinterface": "Et tetäq vai muutaq ümbrepandmiisi ütskõik määntse viki jaos, pruugiq MediaWiki ümbrepandmiskeskkunda [//translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Taa leht om kirotuskaidsõt, selle et taa {{PLURAL:$1|kuulus alanolõvidõ kaidsõtuidõ lehti hulka|kuulus alanolõvidõ kaidsõtuidõ lehti hulka}}:\n$2",
        "namespaceprotected": "Sul olõ-i lubat toimõndaq nimeruumi '''$1''' lehti.",
+       "myprivateinfoprotected": "Sul olõ-õi lubat ummi eräandmit muutaq.",
+       "mypreferencesprotected": "Sul olõ-õi lubat ummi säädmiisi muutaq.",
        "ns-specialprotected": "Tallituslehekülgi ei saaq toimõndaq.",
        "titleprotected": "Pruukja [[User:$1|$1]] om sääntse nimega lehe luumisõ ärq kiildnüq põhjusõga: ''$2''.",
+       "exception-nologin": "Olõ-i nimega sisse mint",
+       "exception-nologin-text": "Seo lehe vai tegemise mano päsemises piät nomega sisse minemä.",
+       "exception-nologin-text-manual": "Seolõ lehele vai tegemisele mano päsemises piät $1.",
        "virus-badscanner": "Viga säädmiisin: tundmalda viirusõkaidsõq: ''$1''",
        "virus-scanfailed": "viirusõotsminõ lää-s kõrda (viakuud $1)",
        "virus-unknownscanner": "tundmalda viirusõkaidsõq:",
-       "logouttext": "'''Olõt nime alt vällä lännüq.'''\n\nVõit {{SITENAME}}t ilma nimeldä edesi toimõndaq vai <span class='plainlinks'>[$1 vahtsõst sama vai tõõsõ nimega sisse minnäq]</span>.\nTähelepandmisõs: niikavva, ku sa olõ-i tühäs tennüq uma võrgokaeja vaihõmällo, võivaq mõnõq leheküleq iks viil näüdädäq, nigu sa olõsi nimega seen.",
+       "logouttext": "'''Olõt nime alt vällä lännüq.'''\n\nTähelepandmisõs: niikavva, ku sa olõ-i tühäs tennüq uma võrgokaeja vaihõmällo, võivaq mõnõq leheküleq iks viil näüdädäq, nigu sa olõsi nimega seen.",
+       "welcomeuser": "Olõq terveq tulõma, $1!",
+       "welcomecreation-msg": "Suq pruukjakonto om valmis.\nKu tahat, saat muutaq ummi {{SITENAME}} [[Special:Preferences|säädmiisi]].",
        "yourname": "Pruukjanimi",
+       "userlogin-yourname": "Pruukjanimi",
+       "userlogin-yourname-ph": "Kirodaq uma pruukjanimi",
+       "createacct-another-username-ph": "Kirodaq pruukjanimi",
        "yourpassword": "Salasõna",
+       "userlogin-yourpassword": "Salasõna",
+       "userlogin-yourpassword-ph": "Kirodaq uma salasõna",
+       "createacct-yourpassword-ph": "Kirodaq salasõna",
        "yourpasswordagain": "Kirodaq viilkõrd salasõna",
+       "createacct-yourpasswordagain": "Kinnüdäq uma salasõna",
+       "createacct-yourpasswordagain-ph": "Kirodaq salasõna vahtsõst",
        "remembermypassword": "Jätäq salasõna miilde (kooniq $1 {{PLURAL:$1|pääväs|pääväs}})",
+       "userlogin-remembermypassword": "Jääq uma nimega sisse",
+       "userlogin-signwithsecure": "Pruugiq kaidsõtut võrgoütistüst",
        "yourdomainname": "Võrgonimi",
+       "password-change-forbidden": "Seon vikin saa-ai salasõnno muutaq.",
        "externaldberror": "Välitsen kimmästegemisteedüskogon om viga vai olõ-i sul lubat umma pruukjanimme muutaq.",
        "login": "Nimega sisseminek",
        "nav-login-createaccount": "Mineq nimega sisse",
        "logout": "Nime alt välläminek",
        "userlogout": "Mineq nime alt vällä",
        "notloggedin": "Olõ-i nimega sisse mint",
+       "userlogin-noaccount": "Sul olõ-i viil pruukjanimme?",
+       "userlogin-joinproject": "Nakkaq {{SITENAME}} pruukjas!",
        "nologin": "Sul olõ-i viil pruukjanimme? '''$1'''.",
        "nologinlink": "Tiiq hindäle pruukjanimi",
        "createaccount": "Tiiq pruukjanimi ärq",
        "gotaccount": "Ku sul jo om uma pruukjanimi, sis '''$1'''.",
        "gotaccountlink": "võit nimega sisse minnäq",
        "userlogin-resetlink": "Kas olõt uma salasõna ärq unõhtanuq?",
-       "createaccountmail": "e-postiga",
+       "userlogin-resetpassword-link": "Kas salasõna läts' meelest ärq?",
+       "userlogin-helplink2": "Nimega sisseminemise abi",
+       "userlogin-createanother": "Luuq tõõnõ konto",
+       "createacct-emailrequired": "E-postiaadrõs",
+       "createacct-emailoptional": "E-postiaadrõs (või ka kirotamalda jättäq)",
+       "createacct-email-ph": "Kirodaq uma e-postiaadrõss",
+       "createacct-another-email-ph": "Kirodaq e-postiaadrõss",
+       "createaccountmail": "Pruugiq aotlist johuslist salasõnna ja saadaq tuu annõdu aadrõsi pääle",
+       "createacct-realname": "Peris nimi (või ka kirotamalda jättäq)",
        "createaccountreason": "Põhjus:",
+       "createacct-reason": "Põhjus",
+       "createacct-reason-ph": "Mille tahat luvvaq tõõsõ pruukjakonto?",
+       "createacct-captcha": "Kaitsõkontroll",
+       "createacct-imgcaptcha-ph": "Kirodaq seo tekst, midä tan näet",
+       "createacct-submit": "Luuq konto",
+       "createacct-another-submit": "Luuq tõõnõ konto",
+       "createacct-benefit-heading": "{{SITENAME}} um luud sääntsilsamol inemiisil, nigu saq.",
+       "createacct-benefit-body1": "{{PLURAL:$1|muutminõ|muutmist}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|lehekülg|lehekülge}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|ildaaigo toimõndanuq pruukja|ildaaigo toimõndanut pruukjat}}",
        "badretype": "Kirotõduq salasõnaq ei klapiq kokko.",
        "userexists": "Taad pruukjanimme jo pruugitas.\nValiq tõõnõ nimi.",
        "loginerror": "Sisseminemise viga",
+       "createacct-error": "Pruukjanome luumisõ viga",
        "createaccounterror": "Pruukjanime luuminõ lää-äs kõrda: $1",
        "nocookiesnew": "Pruukjakonto om valmis, a sa päse-s sisse, selle et {{SITENAME}} tarvitas pruukjidõ kimmästegemises valmistuisi. Suq võrgokaejan ommaq valmistusõq ärq keeledüq. Säeq valmistusõq lubatus ja mineq sis uma vahtsõ pruukjanime ja salasõnaga sisse.",
        "nocookieslogin": "{{SITENAME}} tarvitas pruukjidõ kimmästegemises valmistuisi. Suq võrgokaejan ommaq valmistusõq keeledüq. Säeq valmistusõq lubatus ja prooviq vahtsõst.",
+       "nocookiesfornew": "Pruukjanimme saa-as luvvaq, miiq saa-as kinnütüst tuu lätte kotsilõ.\nKaeq üle, kas sul ummaq lisaprogrammiq (cookie'q) lubaduq ja laadiq seo leht vahtsõst.",
        "noname": "Võlssi kirotõt pruukjanimi.",
        "loginsuccesstitle": "Sisseminek läts' kõrda",
        "loginsuccess": "Olõt nimega sisse lännüq. Suq pruukjanimi om \"$1\".",
        "nosuchuser": "\"$1\" nimelist pruukjat olõ-i olõman.\nKaeq kiräpilt üle vai [[Special:UserLogin/signup|luuq vahtsõnõ pruukjanimi]].",
        "nosuchusershort": "\"$1\" nimelist pruukjat olõ-i olõman. Kas kirotit iks nime õigõhe?",
        "nouserspecified": "Olõ-i kirotõt pruukjanimme.",
+       "login-userblocked": "Seo pruukja om kinniq peet. Nimega sisseminemine olõ-õi lubat.",
        "wrongpassword": "Kirotõt võlss salasõna. Prooviq vahtsõst.",
        "wrongpasswordempty": "Salasõna tohe-i tühi ollaq.",
-       "passwordtooshort": "Salasõna om viganõ vai pall'o lühkü. Taan piät olõma vähämbält {{PLURAL:$1|1 märk|$1 märki}} ja taa tohe-i ollaq sama, miä su pruukjanimi.",
+       "passwordtooshort": "Salasõna piät olõma vähämbält {{PLURAL:$1|1 märk|$1 märki}} pikk.",
+       "password-name-match": "Salasõna piät olõma midägi muud ku pruukjanimi..",
+       "password-login-forbidden": "Seo pruukjanime ja salasõna tarvitaminõ om keelet.",
        "mailmypassword": "Vahtsõndaq umma salasõnna",
        "passwordremindertitle": "{{SITENAME}} salasõna miildetulõtus",
        "passwordremindertext": "Kiäki (arvadaq saq esiq, puutri võrgonummõr $1),\npallõl' vahtsõt sisseminegi salasõnna {{SITENAME}} ($4) jaos.\nPruukja \"$2\" salasõna om noq \"$3\". Ku olõt nimega sisse lännüq, võit taa aotlidsõ salasõna ärq muutaq.\nAotlinõ salasõna lätt vanas {{PLURAL:$5|üte päävä|$5 päävä}} peräst.\n\nKu taa pallõmisõ om tennüq kiä tõõnõ vai ku olõt uma salasõna miilde tulõtanuq ja taha-i taad inämb muutaq,\nsis teku-i seost sõnomist vällä ja pruugiq umma vanna salasõnna edesi.",
        "noemail": "Kah'os olõ-i meil pruukja \"$1\" e-postiaadrõssit.",
+       "noemailcreate": "Pead kirotama kõrraligu e-postiaadrõsi",
        "passwordsent": "Vahtsõnõ salasõna om saadõt pruukja \"$1\" kirotõdu e-postiaadrõsi pääle. Ku olõt salasõna kätte saanuq, mineq nimega sisse.",
        "blocked-mailpassword": "Su võrgonumbrilõ om pant pääle toimõndamiskiild, miä lasõ-i salasõnna miilde tulõtaq.",
-       "eauthentsent": "Sullõ om saadõt kinnütüskiri. Muid kirjo saadõta-i inne, ku olõt tennüq nii, kuis kirän opat ja kinnütänüq, et taa om suq e-postiaadrõs.",
+       "eauthentsent": "Sullõ om saadõt kinnütüskiri. \nMuid kirjo saadõta-i inne, ku olõt tennüq nii, kuis kirän opat ja kinnütänüq, et taa om suq e-postiaadrõs.",
        "throttled-mailpassword": "{{PLURAL:$1|tunni|$1 tunni}} seen om saadõt salasõna miildetulõtus. Sääntsit miildetulõtuisi saadõtas õnnõ {{PLURAL:$1|tunni|$1 tunni}} takast.",
        "mailerror": "Kirä saatmisõ viga: $1",
        "acct_creation_throttle_hit": "Sa olõt tennüq jo {{PLURAL:$1|1 pruukjanime|$1 pruukjanimme}}. Rohkõmb ei saaq.",
        "emailauthenticated": "Su e-postiaadrõs kinnütedi ärq $2 kell $3.",
-       "emailnotauthenticated": "Su e-postiaadrõssit olõ-i viil kinnütet. Alanolõvi as'on e-kirjo ei saadõtaq.",
+       "emailnotauthenticated": "Su e-postiaadrõssit olõ-i viil kinnütet. \nAlanolõvidõ asjo kotsilõ sullõ e-kirjo ei saadõdaq.",
        "noemailprefs": "Olõ-i ant e-postiaadrõssit.",
        "emailconfirmlink": "Kinnüdäq uma e-postiaadrõs.",
        "invalidemailaddress": "Olõ-i kõrralik e-postiaadrõs, taa om võlss moodun.\nKirodaq õigõ e-postiaadrõs vai jätäq rivi rühäs.",
+       "cannotchangeemail": "Seon vikin saa-ai konto e-postiaadressit muutaq.",
+       "emaildisabled": "Seo võrgokotusõ kaudu saa-ai e-kirjo saataq.",
        "accountcreated": "Pruukjanimi luudi",
-       "accountcreatedtext": "Luudi pruukjanimi pruukjalõ $1.",
+       "accountcreatedtext": "Pruukja [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) konto om luud.",
        "createaccount-title": "Vahtsõ {{SITENAME}} pruukjanime luuminõ",
        "createaccount-text": "Kiäki om loonuq pruukjanime $2 lehistüle {{SITENAME}} ($4). Pruukjanime \"$2\" salasõna om \"$3\".\nMineq nimega sisse ja vaihtaq salasõna ärq.\n\nKu taa pruukjanimi om luud kogõmaldaq, olõ-i sul vaia taast sõnomist vällä tetäq.",
-       "login-throttled": "Olõt uma nime ala minekis pruuvnuq pall'o hulga esiqsugutsit salasõnno.\nOodaq vähä inne ku proovit vahtsõst.",
+       "login-throttled": "Olõt pall'o hulga kõrdo pruuvnuq uma nimega sisse minnäq.\nOodaq $1 inne ku proovit vahtsõst.",
+       "login-abort-generic": "Nimega sisseminek lää-äs kõrda – katski jätet",
+       "login-migrated-generic": "Su konto om ärq viid ja su pruukjanimme olõ-õi inämb seon vikin.",
        "loginlanguagelabel": "Kiil: $1",
+       "createacct-another-realname-tip": "Sa piä-äi umma peris nimme kirotama.\nKu otsustat tuu kirotaq, näüdätäs tuud pruukjanime asõmal lehe tegijide nimekirän.",
+       "pt-login": "Nimega sisseminek",
+       "pt-login-button": "Nimega sisseminek",
+       "pt-createaccount": "Tiiq hindäle pruukjanimi",
+       "pt-userlogout": "Mineq nime alt vällä",
        "changepassword": "Muudaq salasõnna",
-       "resetpass_announce": "Sa lätsit sisse e-postiga saadõdu aotlidsõ koodiga. Kõrdapiten sisseminekis tulõ sul siin tetäq hindäle  vahtsõnõ salasõna:",
+       "resetpass_announce": "Kõrdapiten sisseminekis tulõ sul tetäq hindäle vahtsõnõ salasõna.",
        "resetpass_text": "<!-- Kirodaq siiäq -->",
        "resetpass_header": "Muudaq pruukjanime salasõnna",
        "oldpassword": "Vana salasõna",
        "newpassword": "Vahtsõnõ salasõna",
        "retypenew": "Kirodaq viilkõrd vahtsõnõ salasõna",
        "resetpass_submit": "Kirodaq salasõna ja mineq nimega sisse",
-       "changepassword-success": "Salasõna vaihtaminõ läts kõrda.",
+       "changepassword-success": "Salasõna vaihtaminõ läts kõrda!",
+       "changepassword-throttled": "Olõt ildaaigo pruuvnuq pall'o hulga kõrdo nimega sisse minnäq.\nOlõq hää, oodaq $1, inne ku vahtsõst proovit.",
        "resetpass_forbidden": "Salasõnno saa-i muutaq.",
        "resetpass-no-info": "Taa lehe pääle päsemises piät olõma nimega sisse lännüq.",
        "resetpass-submit-loggedin": "Muudaq salasõnna",
        "resetpass-submit-cancel": "Jätäq katski",
        "resetpass-wrong-oldpass": "Viganõ aotlinõ vai parhillanõ salasõna.\nVõi-ollaq olõt jo uma salasõna ärq muutnuq vai küsünüq vahtsõ aotlidsõ salasõna.",
+       "resetpass-recycled": "Olõq hää, valiq umas salasõnas midägi muud, ku parhillanõ salasõna.",
        "resetpass-temp-password": "Aotlinõ salasõna:",
        "bold_sample": "Paks kiri",
        "bold_tip": "Paks kiri",
        "deletereasonotherlist": "Muu põhjus",
        "deletereason-dropdown": "*Hariliguq kistutamisõ põhjusõq\n** Kirotaja hindä palvõl\n** Tegijäõigusõ rikminõ\n** Lehe ts'urkminõ",
        "rollback": "Mineq tagasi vana kujo pääle",
-       "rollback_short": "Võtaq tagasi",
        "rollbacklink": "võtaq tagasi vana kujo",
        "rollbackfailed": "Muutmiisi tagasivõtminõ lää-s kõrda",
        "cantrollback": "Saa-i muutmiisi tagasi pöördäq; viimäne muutja om lehe ainugõnõ toimõndaja.",
index ea23d9f..b8f9930 100644 (file)
        "uploaderror": "אַרויפֿלאָדן פֿעלער",
        "upload-recreate-warning": "'''ווארענונג: א טעקע מיט דעם נאמען איז געווארן אויסגעמעקט אדער באוועגט.'''\n\nדאס אויסמעקן־ און באוועגן־לאגבוך פאר דעם בלאט זענען געוויזן דא:",
        "uploadtext": "באניצט דעם פֿארעם אַרויפֿצולאָדן טעקעס.\nכדי צו זען אדער זוכן טעקעס וואס זענען שוין אַרויפֿגעלאָדן ווענדט זיך צו דער [[Special:FileList|ליסטע פֿון אַרויפֿגעלאָדענע טעקעס]]; (ווידער)אַרויפֿלאָדונגען ווערן אויך לאגירט אינעם  [[Special:Log/upload| אַרויפֿלאָדן לאג-בוך]], אויסמעקונגען אינעם [[Special:Log/delete|אויסמעקן לאג-בוך]].\n\nכדי אײַנשליסן א טעקע אין א בלאַט, באניצט א לינק אין איינעם פון די פֿאלגנדע פֿארעמען:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' צו ניצן די פֿולע ווערסיע פֿון דער טעקע\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|טעקסט קעפל]]</nowiki></code>''' צו ניצן א 200 פיקסל ברייט ווערסיע אין א קעסטל אויף דער לינקער זײַט, מיט דער שילדערונג 'טעקסט קעפל'\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' פֿאר א גראָדער פֿאַרבינדונג צו דער טעקע אָן צו ווײַזן זי",
-       "upload-permitted": "ערלויבטע טעקע טיפן: $1.",
-       "upload-preferred": "פרעפֿרירטע טעקע טיפן: $1.",
-       "upload-prohibited": "פֿאַרווערענע טעקע טיפן: $1.",
+       "upload-permitted": "{{PLURAL:$2|ערלויבטער טעקע טיפ|ערלויבטע טעקע טיפן}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|פרעפֿערירטער טעקע טיפ|פרעפֿערירטע טעקע טיפן}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|פֿאַרווערענער טעקע טיפ|פֿאַרווערענע טעקע טיפן}}: $1.",
        "uploadlogpage": "ארויפֿלאדן לאג",
        "uploadlogpagetext": "פֿאָלגנד איז אַ ליסטע פֿון די לעצטע אַרױפֿגעלאָדענע טעקעס.\nזעט די  [[Special:NewFiles|גאלאריע פֿון נײַע טעקעס]] פֿאַר א מער וויזועלע איבערבליק.",
        "filename": "טעקע נאמען",
index 017f1d6..0924acb 100644 (file)
@@ -49,7 +49,7 @@
        "tog-shownumberswatching": "顯示有幾多人監視",
        "tog-oldsig": "現有簽名:",
        "tog-fancysig": "將簽名以維基字對待(冇自動連結)",
-       "tog-uselivepreview": "用即時預覽(實驗緊)",
+       "tog-uselivepreview": "用即時預覽",
        "tog-forceeditsummary": "我冇入修改註解時通知我",
        "tog-watchlisthideown": "響監視清單度隱藏我嘅編輯",
        "tog-watchlisthidebots": "響監視清單度隱藏機械人嘅編輯",
        "content-model-text": "純文字",
        "content-model-javascript": "JavaScript程式語言",
        "content-model-css": "層疊樣式表",
-       "duplicate-args-category": "爾版用徂幾個重複加類嘅模",
+       "duplicate-args-category": "模用重複參數嘅嘅版面",
        "expensive-parserfunction-warning": "警告: 呢一版有太多耗費嘅語法功能呼叫。\n\n佢應該少過$2次呼叫,佢而家係$1次呼叫。",
        "expensive-parserfunction-category": "響版度有太多嘅耗費嘅語法功能呼叫",
        "post-expand-template-inclusion-warning": "警告: 包含模大細太大。\n有啲模將唔會包含。",
        "currentrev": "最新嘅修訂",
        "currentrev-asof": "響 $1 嘅最新修訂",
        "revisionasof": "喺$1嘅修訂",
-       "revision-info": "喺$1嘅修訂;修訂自$2",
+       "revision-info": "喺$1由$2嘅修訂 $7",
        "previousrevision": "←之前嘅修訂",
        "nextrevision": "新啲嘅修訂→",
        "currentrevisionlink": "最新嘅修訂版本",
        "histlegend": "選擇唔同版本:響兩個唔同版本嘅圓框分別撳一下,再撳最底的「比較被選修訂」掣以作比較。<br />\n說明:'''({{int:cur}})'''= 同最新修訂版本嘅差別,'''({{int:last}})'''= 同前一個修訂版本嘅差別,'''{{int:minoreditletter}}''' = 小修改。",
        "history-fieldset-title": "瀏覽歷史",
        "history-show-deleted": "只顯示刪除咗嘅",
-       "histfirst": "最",
+       "histfirst": "最",
        "histlast": "最新",
        "historysize": "($1 {{PLURAL:$1|byte|bytes}})",
        "historyempty": "(空)",
        "history-feed-description": "響哩個wiki嘅哩一頁嘅修訂歷史",
        "history-feed-item-nocomment": "$1 響 $2",
        "history-feed-empty": "要求嘅頁面並唔存在。\n佢可能響哩個 wiki 度刪除咗或者改咗名。\n試吓[[Special:Search|響哩個wiki度搵]]有關新頁面嘅資料。",
-       "rev-deleted-comment": "(評論已經移除咗)",
+       "rev-deleted-comment": "(編輯摘要已經移除咗)",
        "rev-deleted-user": "(用戶名已經移除咗)",
-       "rev-deleted-event": "(日誌動作已經移除咗)",
+       "rev-deleted-event": "(日誌詳情已經移除咗)",
        "rev-deleted-user-contribs": "[用戶名或IP地址拎走咗 - 響貢獻度隱藏咗編輯]",
        "rev-deleted-text-permission": "呢頁嘅修訂已經被'''洗咗'''。\n喺[{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} 刪除日誌]裏面可以搵到更詳細嘅資料。",
-       "rev-deleted-text-unhide": "呢頁嘅修訂已經被'''洗咗'''。\n喺[{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} 刪除日誌]裏面可以搵到更詳細嘅資料。\n作為管理員,如果你想繼續嘅話,可以仍然[$1 睇番呢次修訂]。",
-       "rev-suppressed-text-unhide": "呢頁嘅修訂已經被'''廢止咗'''。\n喺[{{fullurl:{{#Special:Log}}/suppress|page={{PAGENAMEE}}}} 廢止日誌]裏面可以搵到更詳細嘅資料。\n作為管理員,如果你想繼續嘅話,可以仍然[$1 睇番呢次修訂]。",
-       "rev-deleted-text-view": "å\91¢é \81å\98\85ä¿®è¨\82å·²ç¶\93'''æ´\97å\92\97'''ã\80\82\nä½\9cç\82ºå\98\85管ç\90\86å\93¡ï¼\8cä½ å\8f¯ä»¥å\8e»ç\9d\87å\90\93ä½¢ï¼\9b\nå\96º[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} å\88ªé\99¤æ\97¥èª\8c]è£\8fé\9d¢å\8f¯ä»¥æ\90µå\88°æ\9b´è©³ç´°å\98\85è³\87æ\96\99ã\80\82",
-       "rev-suppressed-text-view": "å\91¢é \81å\98\85ä¿®è¨\82å·²ç¶\93'''廢止å\92\97'''ã\80\82\nä½\9cç\82ºå\98\85管ç\90\86å\93¡ï¼\8cä½ å\8f¯ä»¥å\8e»ç\9d\87å\90\93ä½¢ï¼\9b\nå\96º[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} å»¢æ­¢æ\97¥èª\8c]è£\8fé\9d¢å\8f¯ä»¥æ\90µå\88°æ\9b´è©³ç´°å\98\85è³\87æ\96\99ã\80\82",
+       "rev-deleted-text-unhide": "呢頁嘅修訂已經被'''洗咗'''。\n喺[{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} 刪除日誌]裏面可以搵到更詳細嘅資料。\n如果你想繼續嘅話,可以仍然[$1 睇番呢次修訂]。",
+       "rev-suppressed-text-unhide": "呢頁嘅修訂已經被'''廢止咗'''。\n喺[{{fullurl:{{#Special:Log}}/suppress|page={{PAGENAMEE}}}} 廢止日誌]裏面可以搵到更詳細嘅資料。\n如果你想繼續嘅話,可以仍然[$1 睇番呢次修訂]。",
+       "rev-deleted-text-view": "呢頁嘅修訂已經'''洗咗'''。\n你可以去睇吓佢;\n喺[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]裏面可以搵到更詳細嘅資料。",
+       "rev-suppressed-text-view": "呢頁嘅修訂已經'''廢止咗'''。\n你可以去睇吓佢;\n喺[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 廢止日誌]裏面可以搵到更詳細嘅資料。",
        "rev-deleted-no-diff": "因為其中一次修訂'''洗咗''',你唔可以睇呢個差異。\n響[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]度可以搵到更多嘅資料。",
        "rev-suppressed-no-diff": "由於呢頁嘅其中一次修訂已經'''刪除咗''',你唔可以睇呢次修訂。",
-       "rev-deleted-unhide-diff": "呢頁嘅其中一次修訂已經'''洗咗'''。\n喺[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]裏面可以搵到更詳細嘅資料。\n作為管理員,如果你想繼續嘅話,可以仍然[$1 睇番呢次修訂]。",
-       "rev-suppressed-unhide-diff": "呢頁嘅其中一次修訂已經'''廢止咗'''。\n喺[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 廢止日誌]裏面可以搵到更詳細嘅資料。\n作為管理員,如果你想繼續嘅話,可以仍然[$1 睇番呢次修訂]。",
-       "rev-deleted-diff-view": "å\91¢å\80\8bå·®ç\95°å\98\85å\85¶ä¸­ä¸\80次修è¨\82å·²ç¶\93'''å\88ªé\99¤å\92\97'''ã\80\82\nä½\9cç\82ºç®¡ç\90\86å\93¡ä½ å\8f¯ä»¥å\8e»ç\9d\87å\91¢å\80\8bå·®ç\95°ï¼\9bå\96º[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} å\88ªé\99¤æ\97¥èª\8c]è£\8fé\9d¢å\8f¯ä»¥æ\90µå\88°æ\9b´è©³ç´°å\98\85è³\87æ\96\99ã\80\82",
-       "rev-suppressed-diff-view": "å\91¢å\80\8bå·®ç\95°å\98\85å\85¶ä¸­ä¸\80次修è¨\82å·²ç¶\93'''廢止å\92\97'''ã\80\82\nä½\9cç\82ºç®¡ç\90\86å\93¡ä½ å\8f¯ä»¥å\8e»ç\9d\87å\91¢å\80\8bå·®ç\95°ï¼\9bå\96º[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} å»¢æ­¢æ\97¥èª\8c]è£\8fé\9d¢å\8f¯ä»¥æ\90µå\88°æ\9b´è©³ç´°å\98\85è³\87æ\96\99ã\80\82",
+       "rev-deleted-unhide-diff": "呢頁嘅其中一次修訂已經'''洗咗'''。\n喺[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]裏面可以搵到更詳細嘅資料。\n如果你想繼續嘅話,可以仍然[$1 睇番呢次修訂]。",
+       "rev-suppressed-unhide-diff": "呢頁嘅其中一次修訂已經'''廢止咗'''。\n喺[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 廢止日誌]裏面可以搵到更詳細嘅資料。\n如果你想繼續嘅話,可以仍然[$1 睇番呢次修訂]。",
+       "rev-deleted-diff-view": "呢個差異嘅其中一次修訂已經'''刪除咗'''。\n你可以去睇呢個差異;喺[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]裏面可以搵到更詳細嘅資料。",
+       "rev-suppressed-diff-view": "呢個差異嘅其中一次修訂已經'''廢止咗'''。\n你可以去睇呢個差異;喺[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 廢止日誌]裏面可以搵到更詳細嘅資料。",
        "rev-delundel": "顯示/隱藏",
        "rev-showdeleted": "顯示",
        "revisiondelete": "刪除/反刪除修訂",
        "revdelete-no-file": "指定嘅檔案未存在。",
        "revdelete-show-file-confirm": "你係咪真係想去睇響$2 $3刪咗 \"$1\" 嘅檔案修訂?",
        "revdelete-show-file-submit": "係",
-       "logdelete-selected": "揀[[:$1]]嘅日誌事件:",
+       "logdelete-selected": "揀嘅日誌事件:",
        "revdelete-confirm": "請確認你肯定去做嘅話,你就要明白到後果,同埋呢個程序符合[[{{MediaWiki:Policy-url}}|政策]]。",
-       "revdelete-suppress-text": "å£\93å\88¶'''å\8fª'''æ\87\89該é\9f¿ä¸\8bé\9d¢å\98\85æ\83\85æ³\81ä¹\8bä¸\8bé\80²è¡\8c:\n* å\94\94å\90\88é\81©å\98\85å\80\8b人è³\87æ\96\99\n*: ''å±\8bä¼\81å\9c°å\9d\80ã\80\81é\9b»è©±è\99\9f碼ã\80\81社群ä¿\9då®\89è\99\9f碼ç­\89ã\80\82''",
+       "revdelete-suppress-text": "å£\93å\88¶'''å\8fª'''æ\87\89該é\9f¿ä¸\8bé\9d¢å\98\85æ\83\85æ³\81ä¹\8bä¸\8bé\80²è¡\8c:\n* å\8f¯è\83½ä¿\82誹è¬\97å\98\85è³\87æ\96\99\n* å\94\94å\90\88é\81©å\98\85å\80\8b人è³\87æ\96\99\n*: ''å±\8bä¼\81å\9c°å\9d\80ã\80\81é\9b»è©±è\99\9f碼ã\80\81身份è­\89è\99\9f碼ç­\89ã\80\82''",
        "revdelete-legend": "設定可見性嘅限制",
-       "revdelete-hide-text": "隱藏修訂嘅文字",
+       "revdelete-hide-text": "修訂嘅文字",
        "revdelete-hide-image": "隱藏檔案內容",
-       "revdelete-hide-name": "隱藏動作同目標",
-       "revdelete-hide-comment": "隱藏編輯摘要",
-       "revdelete-hide-user": "隱藏編輯者嘅用戶名/IP地址",
+       "revdelete-hide-name": "隱藏目標同參數",
+       "revdelete-hide-comment": "隱藏摘要",
+       "revdelete-hide-user": "編輯者嘅用戶名/IP地址",
        "revdelete-hide-restricted": "同時壓制由操作員以及其他用戶的資料",
        "revdelete-radio-same": "(唔改)",
-       "revdelete-radio-set": "",
-       "revdelete-radio-unset": "唔好",
+       "revdelete-radio-set": "隱藏咗",
+       "revdelete-radio-unset": "顯示返",
        "revdelete-suppress": "同時壓制由操作員以及其他用戶的資料",
        "revdelete-unsuppress": "響已經恢復咗嘅修訂度移除限制",
        "revdelete-log": "原因:",
        "revdelete-no-change": "警告:響$1 $2嘅項目已經請求咗可見性設定。",
        "revdelete-concurrent-change": "改緊響$1 $2嘅項目錯誤:當我哋試吓改佢嘅設定嗰陣,已經畀另一啲人改過。請檢查紀錄。",
        "revdelete-only-restricted": "隱藏項目響$1 $2嘅項目:你唔可以廢止由管理員檢視,而唔同時再揀另外其中一個可見性選項。",
-       "revdelete-reason-dropdown": "*常用刪除原因\n** 侵犯版權\n** 唔合適嘅個人資料",
+       "revdelete-reason-dropdown": "*常用刪除原因\n** 侵犯版權\n** 唔合適嘅言論或者個人資料\n** 唔合適嘅用戶名\n** 可能係誹謗嘅資料",
        "revdelete-otherreason": "其它/附加的原因:",
        "revdelete-reasonotherlist": "其它原因",
        "revdelete-edit-reasonlist": "編輯刪除原因",
        "revdelete-offender": "修訂著者:",
        "suppressionlog": "廢止日誌",
-       "suppressionlogtext": "下面係刪除同埋由操作員牽涉到內容封鎖嘅一覽。\n睇吓[[Special:IPBlockList|IP封鎖一覽]]去睇現時進行緊嘅禁止同埋封鎖表。",
+       "suppressionlogtext": "下面係刪除同埋由操作員牽涉到內容封鎖嘅一覽。\n睇吓[[Special:BlockList|封鎖一覽]]去睇現時進行緊嘅禁止同埋封鎖表。",
        "mergehistory": "合併頁歷史",
        "mergehistory-header": "呢一版可以畀你去合併一個來源頁嘅修訂記錄到另一個新頁。\n請確認呢次更改會繼續保留嗰版之前嘅歷史版。",
        "mergehistory-box": "合併兩版嘅修訂:",
        "shown-title": "每版顯示$1項結果",
        "viewprevnext": "去睇 ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''響呢個wiki度有一版叫做\"[[:$1]]\"。'''",
-       "searchmenu-new": "'''響呢個wiki度開呢版\"[[:$1]]\"!'''",
+       "searchmenu-new": "<strong>響呢個wiki度開呢版「[[:$1]]」!</strong>睇埋搵到嘅結果。",
        "searchprofile-articles": "內容頁",
        "searchprofile-images": "多媒體",
        "searchprofile-everything": "全部嘢",
index 06d6c06..01fccfc 100644 (file)
        "tog-hideminor": "隐藏最近更改中的小编辑",
        "tog-hidepatrolled": "隐藏最近更改中的已巡查编辑",
        "tog-newpageshidepatrolled": "隐藏新页面列表中的已巡查页面",
-       "tog-extendwatchlist": "扩展监视列表以显示所有更改,而不仅限于最近更改",
+       "tog-extendwatchlist": "扩展监视列表以显示所有更改,而不仅是最近的更改",
        "tog-usenewrc": "按页面合并最近更改和监视列表中的更改",
        "tog-numberheadings": "自动编号标题",
        "tog-showtoolbar": "显示编辑工具栏",
        "tog-editondblclick": "双击编辑页面",
        "tog-editsectiononrightclick": "启用右击小节标题编辑段落",
-       "tog-watchcreations": "将我创建的页面和我上传的文件添加至我的监视列表",
-       "tog-watchdefault": "将我编辑的页面和文件添加至我的监视列表",
-       "tog-watchmoves": "将我移动的页面和文件添加至我的监视列表",
-       "tog-watchdeletion": "将我删除的页面和文件添加至我的监视列表",
-       "tog-watchrollback": "将我回退过的页面添加至我的监视列表",
-       "tog-minordefault": "将所有编辑默认标记为小编辑",
+       "tog-watchcreations": "添加我创建的页面和我上传的文件至我的监视列表",
+       "tog-watchdefault": "添加我编辑的页面和文件至我的监视列表",
+       "tog-watchmoves": "添加我移动的页面和文件至我的监视列表",
+       "tog-watchdeletion": "添加我删除的页面和文件至我的监视列表",
+       "tog-watchrollback": "添加我执行过回退的页面至我的监视列表",
+       "tog-minordefault": "默认标记所有编辑为小编辑",
        "tog-previewontop": "在编辑框上方显示预览",
        "tog-previewonfirst": "首次编辑时显示预览",
        "tog-enotifwatchlistpages": "当我的监视列表中的页面或文件更改时发送电子邮件通知我",
        "category_header": "分类“$1”中的页面",
        "subcategories": "子分类",
        "category-media-header": "分类“$1”中的媒体文件",
-       "category-empty": "<em>本分类目前没有包含任何页面或媒体文件。</em>",
+       "category-empty": "<em>本分类目前不含有任何页面或媒体文件。</em>",
        "hidden-categories": "{{PLURAL:$1|隐藏分类}}",
        "hidden-category-category": "隐藏分类",
        "category-subcat-count": "{{PLURAL:$2|本分类只有以下子分类。|本分类有以下$1个子分类,共有$2个子分类。}}",
        "category-subcat-count-limited": "本分类有以下{{PLURAL:$1|子分类|$1个子分类}}。",
-       "category-article-count": "{{PLURAL:$2|æ\9c¬å\88\86ç±»å\8fªå\8c\85å\90«ä»¥ä¸\8b页é\9d¢ã\80\82\9c¬å\88\86类中å\8c\85å\90«ä»¥ä¸\8b$1个页é\9d¢,共$2个页面。}}",
-       "category-article-count-limited": "当前分类包含以下$1个页面。",
-       "category-file-count": "{{PLURAL:$2|æ\9c¬å\88\86ç±»å\8fªå\8c\85å\90«ä»¥ä¸\8bä¸\80个æ\96\87件ã\80\82\9c¬å\88\86ç±»å\8c\85å\90«ä»¥ä¸\8b$1个æ\96\87件,共$2个文件。}}",
-       "category-file-count-limited": "当前分类包含以下$1个文件。",
+       "category-article-count": "{{PLURAL:$2|æ\9c¬å\88\86ç±»å\8fªå\90«æ\9c\89以ä¸\8b页é\9d¢ã\80\82|以ä¸\8b{{PLURAL:$1|页é\9d¢|$1个页é\9d¢}}å±\9eäº\8eæ\9c¬å\88\86ç±»,共$2个页面。}}",
+       "category-article-count-limited": "以下{{PLURAL:$1|页面|$1个页面}}属于当前分类。",
+       "category-file-count": "{{PLURAL:$2|æ\9c¬å\88\86ç±»å\8fªå\90«æ\9c\89以ä¸\8bæ\96\87件ã\80\82|以ä¸\8b{{PLURAL:$1|æ\96\87件|$1个æ\96\87件}}å±\9eäº\8eæ\9c¬å\88\86ç±»,共$2个文件。}}",
+       "category-file-count-limited": "以下{{PLURAL:$1|文件|$1个文件}}属于当前分类。",
        "listingcontinuesabbrev": "续",
        "index-category": "已索引页面",
        "noindex-category": "不可索引页面",
        "namespaces": "命名空间",
        "variants": "变种",
        "navigation-heading": "导航菜单",
-       "errorpagetitle": "错误",
+       "errorpagetitle": "出错",
        "returnto": "返回至$1。",
        "tagline": "来自{{SITENAME}}",
        "help": "帮助",
        "searcharticle": "前往",
        "history": "页面历史",
        "history_short": "历史",
-       "updatedmarker": "已于我上次访问之后更新",
+       "updatedmarker": "更新于我上次访问后",
        "printableversion": "打印版本",
        "permalink": "固定链接",
        "print": "打印",
        "deletethispage": "删除本页",
        "undeletethispage": "还原本页",
        "undelete_short": "还原$1次编辑",
-       "viewdeleted_short": "查看$1个已删除的编辑",
+       "viewdeleted_short": "查看{{PLURAL:$1|$1个被删除的编辑}}",
        "protect": "保护",
        "protect_change": "更改",
        "protectthispage": "保护本页",
        "userpage": "查看用户页面",
        "projectpage": "查看项目页面",
        "imagepage": "查看文件页面",
-       "mediawikipage": "查看息页面",
+       "mediawikipage": "查看息页面",
        "templatepage": "查看模板页面",
        "viewhelppage": "查看帮助页面",
        "categorypage": "查看分类页面",
        "portal": "社区门户",
        "portal-url": "Project:社区门户",
        "privacy": "隐私政策",
-       "privacypage": "Project:é\9a\90ç§\81æ\9d\83æ\94¿ç­\96",
+       "privacypage": "Project:隐私政策",
        "badaccess": "权限错误",
        "badaccess-group0": "不允许您执行您所请求的操作。",
        "badaccess-groups": "您所请求的操作仅限于{{PLURAL:$2|该|这些}}用户组的用户使用:$1",
        "nstab-special": "特殊页面",
        "nstab-project": "项目页面",
        "nstab-image": "文件",
-       "nstab-mediawiki": "息",
+       "nstab-mediawiki": "息",
        "nstab-template": "模板",
        "nstab-help": "帮助页面",
        "nstab-category": "分类",
        "nosuchaction": "无此操作",
-       "nosuchactiontext": "URLæ\89\80æ\8c\87å®\9aç\9a\84æ\93\8dä½\9cæ\97 æ\95\88ã\80\82ä½ æ\89\80è¾\93å\85¥ç\9a\84URLå\9c°å\9d\80å\8f¯è\83½æ\9c\89误ï¼\8cæ\88\96æ\98¯ä½¿ç\94¨äº\86é\94\99误ç\9a\84é\93¾æ\8e¥ã\80\82è¿\99ä¹\9få\8f¯è\83½è¡¨ç¤º{{SITENAME}}æ\89\80使ç\94¨è½¯ä»¶ä¹\8b中存在漏洞。",
+       "nosuchactiontext": "URLæ\8c\87å®\9aç\9a\84æ\93\8dä½\9cæ\97 æ\95\88ã\80\82æ\82¨å\8f¯è\83½è¾\93å\85¥äº\86é\94\99误ç\9a\84URLå\9c°å\9d\80ï¼\8cæ\88\96æ\98¯ç\82¹å\87»äº\86é\94\99误ç\9a\84é\93¾æ\8e¥ã\80\82è¿\99ä¹\9få\8f¯è\83½è¡¨æ\98\8e{{SITENAME}}使ç\94¨ç\9a\84软件存在漏洞。",
        "nosuchspecialpage": "此特殊页面不存在",
-       "nospecialpagetext": "<strong>您请求了一个无效的特殊页面。</strong>\n\n在[[Special:SpecialPages|{{int:specialpages}}]]可以找到有效的特殊页面的列表。",
-       "error": "错误",
+       "nospecialpagetext": "<strong>您请求了一个无效的特殊页面。</strong>\n\n有效的特殊页面的列表可以在[[Special:SpecialPages|{{int:specialpages}}]]找到。",
+       "error": "出错",
        "databaseerror": "数据库错误",
        "databaseerror-text": "出现数据库查询错误。这可能表示软件中存在漏洞。",
        "databaseerror-textcl": "出现数据库查询错误。",
        "databaseerror-function": "函数:$1",
        "databaseerror-error": "错误:$1",
        "laggedslavemode": "'''警告:'''页面中可能没有包含最近的更新。",
-       "readonly": "数据库锁定",
-       "enterlockreason": "请输入锁定原因,包括预计解锁的时间",
-       "readonlytext": "数据库当前被锁定,不能添加新条目或进行其他修改,锁定可能是因为例行的数据库维护,完成后即可恢复正常。\n\n锁定数据库的管理员提供的解释:$1",
+       "readonly": "数据库锁定",
+       "enterlockreason": "请输入锁定的原因,这包括预计解除锁定的时间",
+       "readonlytext": "数据库当前被锁定,不能添加新条目或进行其他修改,锁定可能是因为例行的数据库维护,完成后即可恢复正常。\n\n锁定数据库的管理员提供的解释:$1",
        "missing-article": "数据库找不到预期的页面文字:“$1”$2。\n\n这通常是由于点击了链向旧有差异或历史的链接,而原有版本已被删除导致的。\n\n如果情况不是这样,您可能找到了软件的一个内部错误。请记录下URL地址,并向[[Special:ListUsers/sysop|管理员]]报告。",
        "missingarticle-rev": "(版本#:$1)",
        "missingarticle-diff": "(差异:$1,$2)",
        "nosuchusershort": "没有名为“$1”的用户。请检查你的拼写。",
        "nouserspecified": "你必须指定用户名。",
        "login-userblocked": "该用户已被封禁,禁止登录。",
-       "wrongpassword": "输入的密码错误。请重试。",
+       "wrongpassword": "输入的密码错误。请重试。",
        "wrongpasswordempty": "密码输入为空。请重试。",
        "passwordtooshort": "您的密码至少需要$1个字符。",
        "password-name-match": "您的密码必须和您的用户名不相同。",
        "italic_tip": "斜体文字",
        "link_sample": "链接文字",
        "link_tip": "内部链接",
-       "extlink_sample": "http://www.example.com é\93¾æ\8e¥æ\96\87å­\97",
+       "extlink_sample": "http://www.example.com é\93¾æ\8e¥æ \87é¢\98",
        "extlink_tip": "外部链接(加前缀 http://)",
        "headline_sample": "大标题文字",
        "headline_tip": "2级标题",
        "accmailtitle": "密码已寄出",
        "accmailtext": "为[[User talk:$1|$1]]随机生成的密码已送至$2。登录后可以在''[[Special:ChangePassword|更改密码]]''页面中修改。",
        "newarticle": "(新页面)",
-       "newarticletext": "你点击了一个尚不存在的页面的链接。要创建该页面,请在下面的编辑框中输入内容(更多信息请见[$1 帮助页面])。如果你是错误地到达这里,请点击你的浏览器的'''返回'''按钮。",
+       "newarticletext": "你点击了一个尚不存在的页面的链接。要创建该页面,请在下面的编辑框中输入内容(更多信息请见[$1 帮助页面])。如果你是错误地到达这里,请点击您的浏览器的<strong>返回</strong>按钮。",
        "anontalkpagetext": "---- ''这是一个还未建立账户的匿名用户的讨论页, 因此我们只能用IP地址来与他或她联络。该IP地址可能由几名用户共享。如果您是一名匿名用户并认为此页上的评语与您无关,请[[Special:UserLogin/signup|创建新账户]]或[[Special:UserLogin|登录]]以避免在未来与其他匿名用户混淆。''",
        "noarticletext": "本页面目前没有内容。你可以在其他页面中[[Special:Search/{{PAGENAME}}|搜索本页标题]]、<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索相关日志]或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 编辑本页面]。</span>",
        "noarticletext-nopermission": "本页面目前没有内容。你可以在其他页面中[[Special:Search/{{PAGENAME}}|搜索本页标题]]或<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索相关日志]</span>,但你没有权限创建本页面。",
        "editingcomment": "编辑“$1”(新段落)",
        "editconflict": "编辑冲突:$1",
        "explainconflict": "其他用户在你开始编辑后更改了该页面。上面的文字区含有该页面当前的文字。下面的文字区显示你的更改。你必须把你的更改合并至现有文字。'''只有'''当你单击“{{int:savearticle}}”后,上面的文字区中的文字才会被保存。",
-       "yourtext": "的文字",
+       "yourtext": "的文字",
        "storedversion": "已保存的版本",
        "nonunicodebrowser": "'''警告:您的浏览器不兼容Unicode编码。'''这里有一个工作区将使您能安全地编辑页面:非ASCII字符将以十六进制编码方式出现在编辑框中。",
        "editingold": "'''警告:你正在编辑的是本页面的旧版本。'''如果你保存该编辑,该版本后的所有更改都会丢失。",
        "duplicate-args-category": "调用重复模板参数的页面",
        "duplicate-args-category-desc": "页面包含调用了重复参数的模板,例如<code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code>或<code><nowiki>{{foo|bar|1=baz}}</nowiki></code>。",
        "expensive-parserfunction-warning": "<strong>警告:</strong>这个页面有太多高昂的语法功能调用。\n\n它应该少过$2次呼叫,现在有$1次呼叫。",
-       "expensive-parserfunction-category": "页面中有太多耗费的语法功能呼叫",
+       "expensive-parserfunction-category": "有过多高开销解析器函数调用的页面",
        "post-expand-template-inclusion-warning": "'''警告:'''包含模板大小过大。\n一些模板将不会包含。",
        "post-expand-template-inclusion-category": "模板包含上限已经超过的页面",
        "post-expand-template-argument-warning": "<strong>警告:</strong>本页面包含至少一个模板参数有过大扩展大小。这些参数会被略过。",
        "prefs-personal": "用户资料",
        "prefs-rc": "最近更改",
        "prefs-watchlist": "监视列表",
+       "prefs-editwatchlist": "编辑监视列表",
+       "prefs-editwatchlist-label": "编辑您的监视列表中的记录:",
+       "prefs-editwatchlist-edit": "查看和移除您的监视列表中的标题",
+       "prefs-editwatchlist-raw": "编辑原始监视列表",
+       "prefs-editwatchlist-clear": "清空您的监视列表",
        "prefs-watchlist-days": "监视列表中显示的天数:",
        "prefs-watchlist-days-max": "最多$1天",
        "prefs-watchlist-edits": "在扩展监视列表中显示的更改的最大数目:",
        "uploaderror": "上传出错",
        "upload-recreate-warning": "'''警告:一个相同名字的文件曾经被删除或者移动至别处。'''\n\n这个页面的删除和移动日志在这里提供以便参考:",
        "uploadtext": "请使用下面的表格上传文件。要查看或搜索以往上传的文件,请前往[[Special:FileList|上传的文件的列表]],(重新)上传也将记录在[[Special:Log/upload|上传日志]]中,删除将记录在[[Special:Log/delete|删除日志]]中。\n\n要在页面中包含文件,请使用一种以下形式的链接:\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong>使用文件的完整版本\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|替代文字]]</nowiki></code></strong>使用位于页面左边的框内的200像素宽的图片,以“替代文字”作为说明\n* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong>直接链接到文件而不显示文件",
-       "upload-permitted": "允许的文件类型:$1。",
-       "upload-preferred": "建议的文件类型:$1。",
-       "upload-prohibited": "禁止的文件类型:$1。",
+       "upload-permitted": "允许的文件{{PLURAL:$2|类型}}:$1。",
+       "upload-preferred": "建议的文件{{PLURAL:$2|类型}}:$1。",
+       "upload-prohibited": "禁止的文件{{PLURAL:$2|类型}}:$1。",
        "uploadlogpage": "上传日志",
        "uploadlogpagetext": "下面是最近的文件上传的列表。图像概览请见[[Special:NewFiles|新文件图库]]。",
        "filename": "文件名",
        "uploadstash-nofiles": "你没有被隐藏的文件。",
        "uploadstash-badtoken": "该操作执行失败,可能是因为你的编辑凭证已过期。请重试。",
        "uploadstash-errclear": "清除文件不成功。",
-       "uploadstash-refresh": "更新文件清单",
+       "uploadstash-refresh": "更新文件列表",
        "invalid-chunk-offset": "无效区块偏移量",
        "img-auth-accessdenied": "拒绝访问",
        "img-auth-nopathinfo": "PATH_INFO缺失。\n您的服务器尚未设置传送该信息。\n它可能基于CGI,因而不支持img_auth。\n请参见 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization 图片授权]。",
        "namespace": "名字空间:",
        "invert": "反选",
        "tooltip-invert": "请选择该框以隐藏指定名字空间(及相关名字空间,若被选择)的页面更改",
+       "tooltip-whatlinkshere-invert": "勾选此框以隐藏来自选定名字空间内页面的链接。",
        "namespace_association": "关联的名字空间",
        "tooltip-namespace_association": "选中此复选框可包括与选定名字空间相关的讨论页或子页面",
        "blanknamespace": "(主)",
index e2777a8..3b1fa48 100644 (file)
        "qbedit": "編輯",
        "qbpageoptions": "此頁面",
        "qbmyoptions": "我的頁面",
-       "faq": "常見問",
+       "faq": "常見問",
        "faqpage": "Project:FAQ",
        "actions": "動作",
        "namespaces": "命名空間",
        "portal": "社群入口",
        "portal-url": "Project:Community portal",
        "privacy": "隱私政策",
-       "privacypage": "Project:Privacy policy",
+       "privacypage": "Project:隱私政策",
        "badaccess": "權限錯誤",
        "badaccess-group0": "系統不允許您執行這項操作。",
        "badaccess-groups": "您請求的操作只有{{PLURAL:$2|這個|這些}}群組的使用者能使用:$1",
        "nosuchusershort": "查無使用者 \"$1\",\n請檢查您拼寫是否正確。",
        "nouserspecified": "您必須指定一個使用者名稱。",
        "login-userblocked": "這位使用者已被封鎖,不允許登入。",
-       "wrongpassword": "您輸入的密碼錯誤,請再試一次。",
+       "wrongpassword": "您輸入的密碼有錯誤,請再嘗試一次。",
        "wrongpasswordempty": "輸入的密碼是空的。\n請再試一次。",
        "passwordtooshort": "您的密碼至少需要 $1 個字元。",
        "password-name-match": "您的密碼不可以跟使用者名稱相同。",
        "nowiki_tip": "忽略 Wiki 格式化語法",
        "image_sample": "範例.jpg",
        "image_tip": "附加檔案",
+       "media_sample": "範例.ogg",
        "media_tip": "檔案連結",
        "sig_tip": "您的簽名與日期時間",
        "hr_tip": "水平線 (少用)",
        "namespace": "命名空間:",
        "invert": "反向選擇",
        "tooltip-invert": "勾選此核選方塊以隱藏選擇命名空間中的頁面變更 (若勾選相關命名空間,則會同時隱藏相關命名空間)",
+       "tooltip-whatlinkshere-invert": "勾選此核選方塊以隱藏選擇命名空間中的頁面連結。",
        "namespace_association": "相關命名空間",
        "tooltip-namespace_association": "勾選此核選方塊以包含與選擇命名空間相關的對話或主題命名空間",
        "blanknamespace": "(主要)",
        "variantname-zh": "不轉換",
        "variantname-gan-hans": "‪中文(简体)",
        "variantname-gan-hant": "‪中文(繁體)",
-       "metadata": "資料定義",
+       "metadata": "後設資料",
        "metadata-help": "此檔案包含額外的資訊,可能由數位相機或掃描機所建立的。\n若修改此檔案,部份資訊將無法保留。",
        "metadata-expand": "顯示詳細資料",
        "metadata-collapse": "隱藏詳細資料",
        "version-entrypoints-header-url": "URL",
        "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath 文章路徑]",
        "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Script 路徑]",
-       "version-libraries": "已安裝的庫",
-       "version-libraries-library": "庫",
+       "version-libraries": "已安裝的程式庫",
+       "version-libraries-library": "程式庫",
        "version-libraries-version": "版本",
        "redirect": "重新導向至檔案、使用者、頁面或修訂 ID",
        "redirect-legend": "重新導向至檔案或頁面",
index 755a249..40627a2 100644 (file)
@@ -61,6 +61,10 @@ $namespaceAliases = array(
        'Gambar_Pembicaraan'    => NS_FILE_TALK,
 );
 
+$magicWords = array(
+       'redirect'                  => array( '0', '#PUPINAH', '#ALIH', '#REDIRECT' ),
+);
+
 $specialPageAliases = array(
        'Activeusers'               => array( 'UreuëngNguiUdép' ),
        'Allmessages'               => array( 'BanDumPeusan' ),
@@ -68,35 +72,34 @@ $specialPageAliases = array(
        'Allpages'                  => array( 'DapeutaLaman' ),
        'Ancientpages'              => array( 'TeunuléhAwai' ),
        'Badtitle'                  => array( 'NanBrôk' ),
-       'Blankpage'                 => array( 'LamaSoh' ),
+       'Blankpage'                 => array( 'LamanSoh' ),
        'Block'                     => array( 'TheunUreuëngNgui' ),
-       'Booksources'               => array( 'Ne_kitab' ),
-       'BrokenRedirects'           => array( 'Peuninah_reuloh' ),
-       'Categories'                => array( 'Dapeuta_kawan' ),
-       'ChangePassword'            => array( 'Gantoe_lageuem_rahsia' ),
-       'Confirmemail'              => array( 'Peunyo_surat-e' ),
-       'Contributions'             => array( 'Peuneugot_ureueng_nguy' ),
-       'CreateAccount'             => array( 'Peugot_nan' ),
-       'Deadendpages'              => array( 'On_mate' ),
-       'DeletedContributions'      => array( 'Peuneugot_nyang_geusampoh' ),
-       'DoubleRedirects'           => array( 'Peuninah_ganda' ),
-       'Emailuser'                 => array( 'Surat-e_ureueng_nguy' ),
-       'Export'                    => array( 'Peuteubiet' ),
-       'Fewestrevisions'           => array( 'Neuubah_paleng_dit' ),
-       'FileDuplicateSearch'       => array( 'Mita_beureukaih_saban' ),
-       'Filepath'                  => array( 'Neuduek_beureukaih' ),
-       'Import'                    => array( 'Peutamong' ),
-       'Invalidateemail'           => array( 'Peubateue_peusah_surat-e' ),
-       'BlockList'                 => array( 'Dapeuta_neutheun' ),
-       'LinkSearch'                => array( 'Mita_hubong' ),
-       'Listadmins'                => array( 'Dapeuta_ureueng_uroh' ),
-       'Listbots'                  => array( 'Dapeuta_bot' ),
-       'Listfiles'                 => array( 'Dapeuta_beureukaih' ),
-       'Listgrouprights'           => array( 'Dapeuta_khut_(hak)_kawan' ),
-       'Listredirects'             => array( 'Dapeuta_peuninah' ),
-       'Listusers'                 => array( 'Dapeuta_ureueng_nguy' ),
-       'Lockdb'                    => array( 'Gunci_basis_data' ),
-       'Log'                       => array( 'Ceunatat' ),
+       'Booksources'               => array( 'NèKitab' ),
+       'BrokenRedirects'           => array( 'PeuninahReuloh' ),
+       'Categories'                => array( 'DapeutaKawan' ),
+       'ChangePassword'            => array( 'GantoëLageuëmRahsia' ),
+       'Confirmemail'              => array( 'PeunyoSurat-e' ),
+       'Contributions'             => array( 'BeuneuriUreuëngNgui' ),
+       'CreateAccount'             => array( 'PeugötNan' ),
+       'Deadendpages'              => array( 'ÔnMaté' ),
+       'DeletedContributions'      => array( 'BeuneuriNyangGeusampôh' ),
+       'DoubleRedirects'           => array( 'PeuninahGanda' ),
+       'Emailuser'                 => array( 'Surat-eUreuëngNgui' ),
+       'Export'                    => array( 'Peuteubiët' ),
+       'Fewestrevisions'           => array( 'NeuubahPaléngDit' ),
+       'FileDuplicateSearch'       => array( 'MitaBeureukaihSaban' ),
+       'Filepath'                  => array( 'NeuduëkBeureukaih' ),
+       'Import'                    => array( 'Peutamöng' ),
+       'Invalidateemail'           => array( 'PeubateuëPeusahSurat-e' ),
+       'BlockList'                 => array( 'DapeutaTeuneuheun' ),
+       'LinkSearch'                => array( 'MitaPeunawôt' ),
+       'Listadmins'                => array( 'DapeutaUreuëngUrôh' ),
+       'Listbots'                  => array( 'DapeutaBot' ),
+       'Listfiles'                 => array( 'DapeutaBeureukaih' ),
+       'Listgrouprights'           => array( 'DapeutaHakKawan' ),
+       'Listredirects'             => array( 'DapeutaPeuninah' ),
+       'Listusers'                 => array( 'DapeutaUreuëngNgui' ),
+       'Lockdb'                    => array( 'GunciBasisData' ),
        'Lonelypages'               => array( 'On_hana_soe_po' ),
        'Longpages'                 => array( 'On_panyang' ),
        'MergeHistory'              => array( 'Riwayat_peusapat' ),
index 84eb922..7482841 100644 (file)
@@ -55,7 +55,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'AANTALGEBRUIKERS', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'AANTALAKTIEWEGEBRUIKERS', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'AANTALWYSIGINGS', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'AANTALKEERGESIEN', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'BLADSYNAAM', 'PAGENAME' ),
        'namespace'                 => array( '1', 'NAAMSPASIE', 'NAMESPACE' ),
        'talkspace'                 => array( '1', 'BESPREKINGSBLADSY', 'TALKSPACE' ),
@@ -96,14 +95,18 @@ $magicWords = array(
 $specialPageAliases = array(
        'Activeusers'               => array( 'AktieweGebruikers' ),
        'Allmessages'               => array( 'Stelselboodskappe', 'Alle_stelselboodskappe', 'Allestelselboodskappe', 'Boodskappe' ),
+       'AllMyUploads'              => array( 'AlMyOplaaie', 'AlMyLêers' ),
        'Allpages'                  => array( 'Alle_bladsye', 'Allebladsye' ),
        'Ancientpages'              => array( 'OuBladsye' ),
+       'Badtitle'                  => array( 'Slegtetitel' ),
        'Blankpage'                 => array( 'SkoonBladsy' ),
        'Block'                     => array( 'BlokIP' ),
        'Booksources'               => array( 'Boekbronne' ),
        'BrokenRedirects'           => array( 'Stukkende_aansture', 'Stukkendeaansture' ),
        'Categories'                => array( 'Kategorieë' ),
+       'ChangeEmail'               => array( 'VeranderEpos' ),
        'ChangePassword'            => array( 'HerstelWagwoord' ),
+       'ComparePages'              => array( 'VergelykBladsye' ),
        'Confirmemail'              => array( 'Bevestig_e-posadres', 'Bevestige-posadres', 'Bevestig_eposadres', 'Bevestigeposadres' ),
        'Contributions'             => array( 'Bydraes', 'Gebruikersbydraes' ),
        'CreateAccount'             => array( 'SkepRekening', 'MaakGebruiker' ),
@@ -117,6 +120,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( 'Lêerpad' ),
        'Import'                    => array( 'Importeer' ),
        'Invalidateemail'           => array( 'OngeldigeEpos' ),
+       'JavaScriptTest'            => array( 'JavaScriptToets' ),
        'BlockList'                 => array( 'IPBlokLys' ),
        'LinkSearch'                => array( 'SkakelSoektog' ),
        'Listadmins'                => array( 'LysAdministrateurs' ),
@@ -133,7 +137,8 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'MIME-soek', 'MIMEsoek', 'MIME_soek' ),
        'Mostcategories'            => array( 'MeesteKategorieë' ),
        'Mostimages'                => array( 'MeesteBeelde' ),
-       'Mostlinked'                => array( 'MeeteGeskakel' ),
+       'Mostinterwikis'            => array( 'MeesteInterwikis' ),
+       'Mostlinked'                => array( 'MeesteGeskakel' ),
        'Mostlinkedcategories'      => array( 'MeesGeskakeldeKategorieë' ),
        'Mostlinkedtemplates'       => array( 'MeesGeskakeldeSjablone' ),
        'Mostrevisions'             => array( 'MeesteWysigings' ),
@@ -142,8 +147,10 @@ $specialPageAliases = array(
        'MyLanguage'                => array( 'MyTaal' ),
        'Mypage'                    => array( 'MyBladsy' ),
        'Mytalk'                    => array( 'Mybespreking', 'Mybesprekings' ),
+       'Myuploads'                 => array( 'MyOplaaie', 'MyLêers' ),
        'Newimages'                 => array( 'Nuwe_beelde', 'Nuwebeelde', 'Nuwe_lêers', 'Nuwelêers' ),
        'Newpages'                  => array( 'Nuwe_bladsye', 'Nuwebladsye' ),
+       'PasswordReset'             => array( 'WagwoordHerstel' ),
        'Popularpages'              => array( 'PopulêreBladsye' ),
        'Preferences'               => array( 'Voorkeure' ),
        'Prefixindex'               => array( 'VoorvoegselIndeks' ),
@@ -153,6 +160,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'Lukrake_aanstuur', 'Lukrakeaanstuur' ),
        'Recentchanges'             => array( 'Onlangse_wysigings', 'Onlangsewysigings' ),
        'Recentchangeslinked'       => array( 'OnlangseVeranderingsMetSkakels', 'VerwanteVeranderings' ),
+       'Redirect'                  => array( 'Aanstuur' ),
        'Revisiondelete'            => array( 'WeergaweSkrap' ),
        'Search'                    => array( 'Soek' ),
        'Shortpages'                => array( 'KortBladsye' ),
@@ -177,7 +185,7 @@ $specialPageAliases = array(
        'Version'                   => array( 'Weergawe' ),
        'Wantedcategories'          => array( 'GesoekteKategorieë' ),
        'Wantedfiles'               => array( 'GesoekteLêers' ),
-       'Wantedpages'               => array( 'GesoekdeBladsye', 'GebreekteSkakels' ),
+       'Wantedpages'               => array( 'GesoekteBladsye', 'GebreekteSkakels' ),
        'Wantedtemplates'           => array( 'GesoekteSjablone' ),
        'Watchlist'                 => array( 'Dophoulys' ),
        'Whatlinkshere'             => array( 'Skakels_hierheen', 'Skakelshierheen' ),
index 3872f1c..7817990 100644 (file)
@@ -171,7 +171,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'عدد_المستخدمين', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'عدد_المستخدمين_النشطين', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'عدد_التعديلات', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'عدد_المشاهدات', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'اسم_الصفحة', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'عنوان_الصفحة', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'نطاق', 'NAMESPACE' ),
@@ -186,6 +185,7 @@ $magicWords = array(
        'subpagename'               => array( '1', 'اسم_الصفحة_الفرعي', 'SUBPAGENAME' ),
        'subpagenamee'              => array( '1', 'عنوان_الصفحة_الفرعي', 'SUBPAGENAMEE' ),
        'rootpagename'              => array( '1', 'جذر_اسم_الصفحة', 'ROOTPAGENAME' ),
+       'rootpagenamee'             => array( '1', 'عنوان_جذر_الصفحة', 'ROOTPAGENAMEE' ),
        'basepagename'              => array( '1', 'اسم_الصفحة_الأساسي', 'BASEPAGENAME' ),
        'basepagenamee'             => array( '1', 'عنوان_الصفحة_الأساسي', 'BASEPAGENAMEE' ),
        'talkpagename'              => array( '1', 'اسم_صفحة_النقاش', 'TALKPAGENAME' ),
@@ -261,6 +261,7 @@ $magicWords = array(
        'raw'                       => array( '0', 'خام:', 'RAW:' ),
        'displaytitle'              => array( '1', 'عرض_العنوان', 'DISPLAYTITLE' ),
        'rawsuffix'                 => array( '1', 'أر', 'آر', 'R' ),
+       'nocommafysuffix'           => array( '0', 'لا_سيب', 'NOSEP' ),
        'newsectionlink'            => array( '1', '__وصلة_قسم_جديد__', '__NEWSECTIONLINK__' ),
        'nonewsectionlink'          => array( '1', 'لا_وصلة_قسم_جديد__', '__NONEWSECTIONLINK__' ),
        'currentversion'            => array( '1', 'نسخة_حالية', 'CURRENTVERSION' ),
@@ -289,12 +290,15 @@ $magicWords = array(
        'numberingroup'             => array( '1', 'عدد_في_المجموعة', 'عدد_في_مجموعة', 'NUMBERINGROUP', 'NUMINGROUP' ),
        'staticredirect'            => array( '1', '__تحويلة_إستاتيكية__', '__تحويلة_ساكنة__', '__STATICREDIRECT__' ),
        'protectionlevel'           => array( '1', 'مستوى_الحماية', 'PROTECTIONLEVEL' ),
+       'cascadingsources'          => array( '1', 'مصادر_مضمنة', 'CASCADINGSOURCES' ),
        'formatdate'                => array( '0', 'تهيئة_التاريخ', 'تهيئة_تاريخ', 'formatdate', 'dateformat' ),
        'url_path'                  => array( '0', 'مسار', 'PATH' ),
        'url_wiki'                  => array( '0', 'ويكي', 'WIKI' ),
        'url_query'                 => array( '0', 'استعلام', 'QUERY' ),
        'defaultsort_noerror'       => array( '0', 'لاخطأ', 'noerror' ),
        'defaultsort_noreplace'     => array( '0', 'لاتستبدل', 'noreplace' ),
+       'displaytitle_noerror'      => array( '0', 'لا_خطأ', 'noerror' ),
+       'displaytitle_noreplace'    => array( '0', 'لااستبدال', 'noreplace' ),
        'pagesincategory_all'       => array( '0', 'كل', 'all' ),
        'pagesincategory_pages'     => array( '0', 'صفحات', 'pages' ),
        'pagesincategory_subcats'   => array( '0', 'تصنيفات_فرعية', 'subcats' ),
@@ -306,6 +310,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'كل_الرسائل' ),
        'AllMyUploads'              => array( 'كل_ملفاتي' ),
        'Allpages'                  => array( 'كل_الصفحات' ),
+       'ApiHelp'                   => array( 'مساعدة_إيه_بي_آي' ),
        'Ancientpages'              => array( 'صفحات_قديمة' ),
        'Badtitle'                  => array( 'عنوان_سيئ' ),
        'Blankpage'                 => array( 'صفحة_فارغة' ),
@@ -321,6 +326,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'إنشاء_حساب' ),
        'Deadendpages'              => array( 'صفحات_نهاية_مسدودة' ),
        'DeletedContributions'      => array( 'مساهمات_محذوفة' ),
+       'Diff'                      => array( 'فرق' ),
        'DoubleRedirects'           => array( 'تحويلات_مزدوجة' ),
        'EditWatchlist'             => array( 'تعديل_قائمة_المراقبة' ),
        'Emailuser'                 => array( 'مراسلة_المستخدم' ),
@@ -339,11 +345,13 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'عرض_الملفات', 'قائمة_الملفات', 'قائمة_الصور' ),
        'Listgrouprights'           => array( 'عرض_صلاحيات_المجموعات', 'صلاحيات_مجموعات_المستخدمين' ),
        'Listredirects'             => array( 'عرض_التحويلات' ),
+       'ListDuplicatedFiles'       => array( 'عرض_الملفات_المكررة', 'عرض_تكرار_الملفات' ),
        'Listusers'                 => array( 'عرض_المستخدمين', 'قائمة_المستخدمين' ),
        'Lockdb'                    => array( 'غلق_قب' ),
        'Log'                       => array( 'سجل', 'سجلات' ),
        'Lonelypages'               => array( 'صفحات_وحيدة', 'صفحات_يتيمة' ),
        'Longpages'                 => array( 'صفحات_طويلة' ),
+       'MediaStatistics'           => array( 'إحصاءات_الميديا' ),
        'MergeHistory'              => array( 'دمج_التاريخ' ),
        'MIMEsearch'                => array( 'بحث_ميم' ),
        'Mostcategories'            => array( 'الأكثر_تصنيفا' ),
@@ -355,13 +363,14 @@ $specialPageAliases = array(
        'Mostrevisions'             => array( 'الأكثر_تعديلا' ),
        'Movepage'                  => array( 'نقل_صفحة' ),
        'Mycontributions'           => array( 'مساهماتي' ),
+       'MyLanguage'                => array( 'لغتي' ),
        'Mypage'                    => array( 'صفحتي' ),
        'Mytalk'                    => array( 'نقاشي' ),
-       'MyLanguage'                => array( 'لغتي' ),
        'Myuploads'                 => array( 'رفوعاتي' ),
        'Newimages'                 => array( 'ملفات_جديدة', 'صور_جديدة' ),
        'Newpages'                  => array( 'صفحات_جديدة' ),
        'PagesWithProp'             => array( 'صفحات_بخاصية' ),
+       'PageLanguage'              => array( 'لغة_الصفحة' ),
        'PasswordReset'             => array( 'إعادة_ضبط_كلمة_السر' ),
        'PermanentLink'             => array( 'وصلة_دائمة', 'رابط_دائم' ),
        'Popularpages'              => array( 'صفحات_مشهورة' ),
@@ -377,11 +386,13 @@ $specialPageAliases = array(
        'Redirect'                  => array( 'تحويل' ),
        'ResetTokens'               => array( 'إعادة_ضبط_المفاتيح' ),
        'Revisiondelete'            => array( 'حذف_مراجعة', 'حذف_نسخة' ),
+       'RunJobs'                   => array( 'تشغيل_الوظائف' ),
        'Search'                    => array( 'بحث' ),
        'Shortpages'                => array( 'صفحات_قصيرة' ),
        'Specialpages'              => array( 'صفحات_خاصة' ),
        'Statistics'                => array( 'إحصاءات' ),
        'Tags'                      => array( 'وسوم' ),
+       'TrackingCategories'        => array( 'تصنيفات_التتبع' ),
        'Unblock'                   => array( 'رفع_منع' ),
        'Uncategorizedcategories'   => array( 'تصنيفات_غير_مصنفة' ),
        'Uncategorizedimages'       => array( 'ملفات_غير_مصنفة', 'صور_غير_مصنفة' ),
index 09fd319..4d0b3db 100644 (file)
@@ -40,27 +40,35 @@ $namespaceAliases = array(
 $specialPageAliases = array(
        'Activeusers'               => array( 'يوزرات_نشطا' ),
        'Allmessages'               => array( 'كل_الرسايل' ),
+       'AllMyUploads'              => array( 'كل_مرفوعاتى', 'كل_فايلاتى' ),
        'Allpages'                  => array( 'كل_الصفح' ),
        'Ancientpages'              => array( 'صفح_قديمه' ),
+       'Badtitle'                  => array( 'عنوان_وحش' ),
        'Blankpage'                 => array( 'صفحه_فارضيه' ),
        'Block'                     => array( 'بلوك', 'بلوك_IP', 'بلوك_يوزر' ),
        'Booksources'               => array( 'مصادر_كتاب' ),
        'BrokenRedirects'           => array( 'تحويلات_مكسوره' ),
        'Categories'                => array( 'تصانيف' ),
+       'ChangeEmail'               => array( 'تغيير_الميل' ),
        'ChangePassword'            => array( 'تغيير_الپاسوورد', 'ظبط_الپاسوورد' ),
+       'ComparePages'              => array( 'مقارنه_الصفحات' ),
        'Confirmemail'              => array( 'تأكيد_الايميل' ),
        'Contributions'             => array( 'مساهمات' ),
        'CreateAccount'             => array( 'ابتدى_حساب' ),
        'Deadendpages'              => array( 'صفح_نهايه_مسدوده' ),
        'DeletedContributions'      => array( 'مساهمات_ممسوحه' ),
+       'Diff'                      => array( 'فرق' ),
        'DoubleRedirects'           => array( 'تحويلات_دوبل' ),
+       'EditWatchlist'             => array( 'تغيير_قايمه_المراقبه' ),
        'Emailuser'                 => array( 'ابعت_ايميل_لليوزر' ),
+       'ExpandTemplates'           => array( 'فرد-القوالب' ),
        'Export'                    => array( 'تصدير' ),
        'Fewestrevisions'           => array( 'اقل_مراجعات' ),
        'FileDuplicateSearch'       => array( 'تدوير_فايل_متكرر' ),
        'Filepath'                  => array( 'مسار_ملف' ),
        'Import'                    => array( 'استوراد' ),
        'Invalidateemail'           => array( 'تعطيل_الايميل' ),
+       'JavaScriptTest'            => array( 'تجربه_جافا_سكريبت' ),
        'BlockList'                 => array( 'ليستة_البلوك', 'بيّن_البلوك', 'ليستة_بلوك_IP' ),
        'LinkSearch'                => array( 'تدوير_اللينكات' ),
        'Listadmins'                => array( 'عرض_الاداريين' ),
@@ -77,6 +85,7 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'تدوير_MIME' ),
        'Mostcategories'            => array( 'اكتر_تصانيف' ),
        'Mostimages'                => array( 'اكتر_فايلات_معمول_ليها_لينك', 'اكتر_فايلات', 'اكتر_صور' ),
+       'Mostinterwikis'            => array( 'اكتر_إنترويكى' ),
        'Mostlinked'                => array( 'اكتر_صفح_معمول_ليها_لينك' ),
        'Mostlinkedcategories'      => array( 'اكتر_تصانيف_معمول_ليها_لينك', 'اكتر_تصانيف_مستعمله' ),
        'Mostlinkedtemplates'       => array( 'اكتر_قوالب_معمول_ليها_لينك', 'اكتر_قوالب_مستعمله' ),
@@ -86,23 +95,33 @@ $specialPageAliases = array(
        'MyLanguage'                => array( 'اللغة_بتاعتى' ),
        'Mypage'                    => array( 'صفحتى' ),
        'Mytalk'                    => array( 'مناقشتى' ),
+       'Myuploads'                 => array( 'مرفوعاتى', 'فايلاتى' ),
        'Newimages'                 => array( 'فايلات_جديده', 'صور_جديده' ),
        'Newpages'                  => array( 'صفح_جديده' ),
+       'PagesWithProp'             => array( 'صفحات_بخاصيه' ),
+       'PageLanguage'              => array( 'لغه_الصفحه' ),
+       'PasswordReset'             => array( 'ضبط_الباسوورد' ),
+       'PermanentLink'             => array( 'وصله_دايمه' ),
        'Popularpages'              => array( 'صفح_مشهوره' ),
        'Preferences'               => array( 'تفضيلات' ),
        'Prefixindex'               => array( 'فهرس_بدايه' ),
        'Protectedpages'            => array( 'صفح_محميه' ),
        'Protectedtitles'           => array( 'عناوين_محميه' ),
        'Randompage'                => array( 'عشوائى', 'صفحه_عشوائيه' ),
+       'RandomInCategory'          => array( 'عشوائى_جوه_تصنيف' ),
        'Randomredirect'            => array( 'تحويله_عشوائيه' ),
        'Recentchanges'             => array( 'اخر_تعديلات' ),
        'Recentchangeslinked'       => array( 'اجدد_التغييرات_اللى_معمول_ليها_لينك', 'تغييرات_مرتبطه' ),
+       'Redirect'                  => array( 'تحويل' ),
+       'ResetTokens'               => array( 'ضبط_المفاتيح' ),
        'Revisiondelete'            => array( 'مسح_نسخه' ),
+       'RunJobs'                   => array( 'تشغيل_الوظايف' ),
        'Search'                    => array( 'تدوير' ),
        'Shortpages'                => array( 'صفح_قصيره' ),
        'Specialpages'              => array( 'صفح_مخصوصه' ),
        'Statistics'                => array( 'احصائيات' ),
        'Tags'                      => array( 'وسوم' ),
+       'TrackingCategories'        => array( 'تصنيفات_التتبع' ),
        'Unblock'                   => array( 'رفع_منع' ),
        'Uncategorizedcategories'   => array( 'تصانيف_مش_متصنفه' ),
        'Uncategorizedimages'       => array( 'فايلات_مش_متصنفه', 'صور_مش_متصنفه' ),
@@ -115,6 +134,7 @@ $specialPageAliases = array(
        'Unusedtemplates'           => array( 'قوالب_مش_مستعمله' ),
        'Unwatchedpages'            => array( 'صفح_مش_متراقبه' ),
        'Upload'                    => array( 'رفع' ),
+       'UploadStash'               => array( 'رفع_مخفى' ),
        'Userlogin'                 => array( 'دخول_اليوزر' ),
        'Userlogout'                => array( 'خروج_اليوزر' ),
        'Userrights'                => array( 'حقوق_اليوزر', 'ترقية_سيسوپ', 'ترقية_بوت' ),
@@ -130,11 +150,11 @@ $specialPageAliases = array(
 
 $magicWords = array(
        'redirect'                  => array( '0', '#تحويل', '#REDIRECT' ),
-       'notoc'                     => array( '0', '__لافهرس__', '__NOTOC__' ),
-       'nogallery'                 => array( '0', '__لامعرض__', '__NOGALLERY__' ),
+       'notoc'                     => array( '0', '__Ù\85Ù\86_غÙ\8aر_Ù\81Ù\87رس__', '__Ù\84اÙ\81Ù\87رس__', '__NOTOC__' ),
+       'nogallery'                 => array( '0', '__Ù\85Ù\86_غÙ\8aر_Ù\85عرض__', '__Ù\84اÙ\85عرض__', '__NOGALLERY__' ),
        'forcetoc'                  => array( '0', '__لصق_فهرس__', '__FORCETOC__' ),
        'toc'                       => array( '0', '__فهرس__', '__TOC__' ),
-       'noeditsection'             => array( '0', '__لاتحريرقسم__', '__NOEDITSECTION__' ),
+       'noeditsection'             => array( '0', '__Ù\85Ù\86_غÙ\8aر_تحرÙ\8aرÙ\82سÙ\85__', '__Ù\84اتحرÙ\8aرÙ\82سÙ\85__', '__NOEDITSECTION__' ),
        'currentmonth'              => array( '1', 'شهر_حالى', 'شهر_حالي2', 'شهر_حالي', 'CURRENTMONTH', 'CURRENTMONTH2' ),
        'currentmonth1'             => array( '1', 'شهر_حالي1', 'CURRENTMONTH1' ),
        'currentmonthname'          => array( '1', 'اسم_الشهر_الحالى', 'اسم_الشهر_الحالي', 'CURRENTMONTHNAME' ),
@@ -145,7 +165,7 @@ $magicWords = array(
        'currentdayname'            => array( '1', 'اسم_اليوم_الحالى', 'اسم_اليوم_الحالي', 'CURRENTDAYNAME' ),
        'currentyear'               => array( '1', 'عام_حالى', 'عام_حالي', 'CURRENTYEAR' ),
        'currenttime'               => array( '1', 'وقت_حالى', 'وقت_حالي', 'CURRENTTIME' ),
-       'currenthour'               => array( '1', 'ساعة_حالية', 'CURRENTHOUR' ),
+       'currenthour'               => array( '1', 'ساعه_حاليه', 'ساعة_حالية', 'CURRENTHOUR' ),
        'localmonth'                => array( '1', 'شهر_محلى', 'شهر_محلي2', 'شهر_محلي', 'LOCALMONTH', 'LOCALMONTH2' ),
        'localmonth1'               => array( '1', 'شهر_محلى1', 'شهر_محلي1', 'LOCALMONTH1' ),
        'localmonthname'            => array( '1', 'اسم_الشهر_المحلى', 'اسم_شهر_محلى', 'اسم_الشهر_المحلي', 'اسم_شهر_محلي', 'LOCALMONTHNAME' ),
@@ -156,36 +176,38 @@ $magicWords = array(
        'localdayname'              => array( '1', 'اسم_اليوم_المحلى', 'اسم_يوم_محلى', 'اسم_اليوم_المحلي', 'اسم_يوم_محلي', 'LOCALDAYNAME' ),
        'localyear'                 => array( '1', 'عام_محلى', 'عام_محلي', 'LOCALYEAR' ),
        'localtime'                 => array( '1', 'وقت_محلى', 'وقت_محلي', 'LOCALTIME' ),
-       'localhour'                 => array( '1', 'ساعة_محلية', 'LOCALHOUR' ),
+       'localhour'                 => array( '1', 'ساعه_محليه', 'ساعة_محلية', 'LOCALHOUR' ),
        'numberofpages'             => array( '1', 'عدد_الصفحات', 'NUMBEROFPAGES' ),
        'numberofarticles'          => array( '1', 'عدد_المقالات', 'NUMBEROFARTICLES' ),
        'numberoffiles'             => array( '1', 'عدد_الملفات', 'NUMBEROFFILES' ),
-       'numberofusers'             => array( '1', 'عدد_المستخدمين', 'NUMBEROFUSERS' ),
-       'numberofactiveusers'       => array( '1', 'عدد_المستخدمين_النشطين', 'NUMBEROFACTIVEUSERS' ),
+       'numberofusers'             => array( '1', 'عدد_اÙ\84Ù\8aÙ\88زرات', 'عدد_اÙ\84Ù\85ستخدÙ\85Ù\8aÙ\86', 'NUMBEROFUSERS' ),
+       'numberofactiveusers'       => array( '1', 'عدد_اÙ\84Ù\8aÙ\88زرات_اÙ\84Ù\86شطÙ\8aÙ\86', 'عدد_اÙ\84Ù\85ستخدÙ\85Ù\8aÙ\86_اÙ\84Ù\86شطÙ\8aÙ\86', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'عدد_التعديلات', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'عدد_المشاهدات', 'NUMBEROFVIEWS' ),
-       'pagename'                  => array( '1', 'اسم_الصفحة', 'PAGENAME' ),
-       'pagenamee'                 => array( '1', 'عنوان_الصفحة', 'PAGENAMEE' ),
+       'pagename'                  => array( '1', 'اسم_الصفحه', 'اسم_الصفحة', 'PAGENAME' ),
+       'pagenamee'                 => array( '1', 'عنوان_الصفحه', 'عنوان_الصفحة', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'نطاق', 'NAMESPACE' ),
        'namespacee'                => array( '1', 'عنوان_نطاق', 'NAMESPACEE' ),
-       'talkspace'                 => array( '1', 'نطاق_النقاش', 'TALKSPACE' ),
-       'talkspacee'                => array( '1', 'عنوان_النقاش', 'TALKSPACEE' ),
-       'subjectspace'              => array( '1', 'نطاق_الموضوع', 'نطاق_المقالة', 'SUBJECTSPACE', 'ARTICLESPACE' ),
-       'subjectspacee'             => array( '1', 'عنوان_نطاق_الموضوع', 'عنوان_نطاق_المقالة', 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
+       'namespacenumber'           => array( '1', 'عدد_نطاق', 'NAMESPACENUMBER' ),
+       'talkspace'                 => array( '1', 'نطاق_المناقشه', 'نطاق_النقاش', 'TALKSPACE' ),
+       'talkspacee'                => array( '1', 'عنوان_المناقشه', 'عنوان_النقاش', 'TALKSPACEE' ),
+       'subjectspace'              => array( '1', 'نطاق_الموضوع', 'نطاق_المقاله', 'نطاق_المقالة', 'SUBJECTSPACE', 'ARTICLESPACE' ),
+       'subjectspacee'             => array( '1', 'عنوان_نطاق_الموضوع', 'عنوان_نطاق_المقاله', 'عنوان_نطاق_المقالة', 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
        'fullpagename'              => array( '1', 'اسم_الصفحة_الكامل', 'اسم_صفحة_كامل', 'اسم_كامل', 'FULLPAGENAME' ),
-       'fullpagenamee'             => array( '1', 'عنوان_الصفحة_الكامل', 'عنوان_صفحة_كامل', 'عنوان_كامل', 'FULLPAGENAMEE' ),
-       'subpagename'               => array( '1', 'اسم_الصفحة_الفرعي', 'SUBPAGENAME' ),
-       'subpagenamee'              => array( '1', 'عنوان_الصفحة_الفرعى', 'عنوان_الصفحة_الفرعي', 'SUBPAGENAMEE' ),
-       'basepagename'              => array( '1', 'اسم_الصفحة_الأساسى', 'اسم_الصفحة_الأساسي', 'BASEPAGENAME' ),
-       'basepagenamee'             => array( '1', 'عنوان_الصفحة_الأساسى', 'عنوان_الصفحة_الأساسي', 'BASEPAGENAMEE' ),
-       'talkpagename'              => array( '1', 'اسم_صفحة_النقاش', 'TALKPAGENAME' ),
-       'talkpagenamee'             => array( '1', 'عنوان_صفحة_النقاش', 'TALKPAGENAMEE' ),
-       'subjectpagename'           => array( '1', 'اسم_صفحة_الموضوع', 'اسم_صفحة_المقالة', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
-       'subjectpagenamee'          => array( '1', 'عنوان_صفحة_الموضوع', 'عنوان_صفحة_المقالة', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
-       'msg'                       => array( '0', 'رسالة:', 'MSG:' ),
+       'fullpagenamee'             => array( '1', 'عنوان_الصفحه_الكامل', 'عنوان_صفحة_كامل', 'عنوان_كامل', 'عنوان_الصفحة_الكامل', 'FULLPAGENAMEE' ),
+       'subpagename'               => array( '1', 'اسم_الصفحه_الفرعي', 'اسم_الصفحة_الفرعي', 'SUBPAGENAME' ),
+       'subpagenamee'              => array( '1', 'عنوان_الصفحه_الفرعى', 'عنوان_الصفحه_الفرعي', 'عنوان_الصفحة_الفرعي', 'SUBPAGENAMEE' ),
+       'rootpagename'              => array( '1', 'جدر_اسم_الصفحه', 'جذر_اسم_الصفحة', 'ROOTPAGENAME' ),
+       'rootpagenamee'             => array( '1', 'عنوان_جدر_الصفحه', 'ROOTPAGENAMEE' ),
+       'basepagename'              => array( '1', 'اسم_الصفحه_الأساسى', 'اسم_الصفحة_الأساسي', 'BASEPAGENAME' ),
+       'basepagenamee'             => array( '1', 'عنوان_الصفحه_الأساسى', 'عنوان_الصفحة_الأساسي', 'BASEPAGENAMEE' ),
+       'talkpagename'              => array( '1', 'اسم_صفحه_المناقشه', 'اسم_صفحة_النقاش', 'TALKPAGENAME' ),
+       'talkpagenamee'             => array( '1', 'عنوان_صفحه_المناقشه', 'عنوان_صفحة_النقاش', 'TALKPAGENAMEE' ),
+       'subjectpagename'           => array( '1', 'اسم_صفحه_الموضوع', 'اسم_صفحه_المقاله', 'اسم_صفحة_الموضوع', 'اسم_صفحة_المقالة', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
+       'subjectpagenamee'          => array( '1', 'عنوان_صفحه_الموضوع', 'عنوان_صفحه_المقاله', 'عنوان_صفحة_الموضوع', 'عنوان_صفحة_المقالة', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
+       'msg'                       => array( '0', 'رساله:', 'رسالة:', 'MSG:' ),
        'subst'                     => array( '0', 'نسخ:', 'إحلال:', 'SUBST:' ),
        'safesubst'                 => array( '0', 'نسخ_آمن:', 'SAFESUBST:' ),
-       'msgnw'                     => array( '0', 'مصدر:', 'مصدر_قالب:', 'رسالة_بدون_تهيئة:', 'MSGNW:' ),
+       'msgnw'                     => array( '0', 'رسالة_من_غير_تهيئه:', 'رسالة_بدون_تهيئة:', 'MSGNW:' ),
        'img_thumbnail'             => array( '1', 'تصغير', 'مصغر', 'thumbnail', 'thumb' ),
        'img_manualthumb'           => array( '1', 'تصغير=$1', 'مصغر=$1', 'thumbnail=$1', 'thumb=$1' ),
        'img_right'                 => array( '1', 'يمين', 'right' ),
@@ -194,11 +216,12 @@ $magicWords = array(
        'img_width'                 => array( '1', '$1بك', '$1عن', '$1px' ),
        'img_center'                => array( '1', 'مركز', 'center', 'centre' ),
        'img_framed'                => array( '1', 'إطار', 'بإطار', 'framed', 'enframed', 'frame' ),
-       'img_frameless'             => array( '1', 'لاإطار', 'frameless' ),
-       'img_page'                  => array( '1', 'صفحة=$1', 'صفحة $1', 'صفحة_$1', 'page=$1', 'page $1' ),
-       'img_upright'               => array( '1', 'معدول', 'معدول=$1', 'معدول $1', 'معدول_$1', 'upright', 'upright=$1', 'upright $1' ),
+       'img_frameless'             => array( '1', 'من_غير_اطار', 'لاإطار', 'frameless' ),
+       'img_lang'                  => array( '1', 'لغه=$1', 'لغة=$1', 'lang=$1' ),
+       'img_page'                  => array( '1', 'صفح=$1', 'صفحه_$1', 'صفحة=$1', 'صفحة_$1', 'page=$1', 'page $1' ),
+       'img_upright'               => array( '1', 'معدول', 'معدول=$1', 'معدول_$1', 'upright', 'upright=$1', 'upright $1' ),
        'img_border'                => array( '1', 'حد', 'حدود', 'border' ),
-       'img_baseline'              => array( '1', 'خط_Ø£ساسى', 'خط_أساسي', 'baseline' ),
+       'img_baseline'              => array( '1', 'خط_اساسى', 'خط_أساسي', 'baseline' ),
        'img_sub'                   => array( '1', 'فرعى', 'فرعي', 'sub' ),
        'img_super'                 => array( '1', 'سوبر', 'سب', 'super', 'sup' ),
        'img_top'                   => array( '1', 'أعلى', 'top' ),
@@ -208,35 +231,41 @@ $magicWords = array(
        'img_text_bottom'           => array( '1', 'نص_أسفل', 'text-bottom' ),
        'img_link'                  => array( '1', 'وصلة=$1', 'رابط=$1', 'link=$1' ),
        'img_alt'                   => array( '1', 'بديل=$1', 'alt=$1' ),
+       'img_class'                 => array( '1', 'رتبه=$1', 'رتبة=$1', 'class=$1' ),
        'int'                       => array( '0', 'محتوى:', 'INT:' ),
        'sitename'                  => array( '1', 'اسم_الموقع', 'اسم_موقع', 'SITENAME' ),
        'ns'                        => array( '0', 'نط:', 'NS:' ),
        'nse'                       => array( '0', 'نطم:', 'NSE:' ),
        'localurl'                  => array( '0', 'مسار_محلى:', 'مسار_محلي:', 'LOCALURL:' ),
        'localurle'                 => array( '0', 'عنوان_المسار_المحلى:', 'عنوان_المسار_المحلي:', 'LOCALURLE:' ),
+       'articlepath'               => array( '0', 'مسار_المقاله', 'مسار_المقالة', 'ARTICLEPATH' ),
+       'pageid'                    => array( '0', 'رقم_صفحه', 'رقم_صفحة', 'PAGEID' ),
        'server'                    => array( '0', 'خادم', 'SERVER' ),
        'servername'                => array( '0', 'اسم_الخادم', 'SERVERNAME' ),
        'scriptpath'                => array( '0', 'مسار_السكريبت', 'مسار_سكريبت', 'SCRIPTPATH' ),
        'stylepath'                 => array( '0', 'مسار_الهيئة', 'STYLEPATH' ),
        'grammar'                   => array( '0', 'قواعد_اللغة:', 'GRAMMAR:' ),
        'gender'                    => array( '0', 'نوع:', 'GENDER:' ),
-       'notitleconvert'            => array( '0', '__Ù\84اتحÙ\88Ù\8aÙ\84_عÙ\86Ù\88اÙ\86__', '__Ù\84اتع__', '__NOTITLECONVERT__', '__NOTC__' ),
-       'nocontentconvert'          => array( '0', '__Ù\84اتحÙ\88Ù\8aÙ\84\85حتÙ\88Ù\89__', '__Ù\84اتÙ\85__', '__NOCONTENTCONVERT__', '__NOCC__' ),
+       'notitleconvert'            => array( '0', '__Ù\85Ù\86_غÙ\8aرتحÙ\88Ù\8aÙ\84_عÙ\86Ù\88اÙ\86__', '__Ù\84اتع__', '__Ù\84اتحÙ\88Ù\8aÙ\84_عÙ\86Ù\88اÙ\86__', '__NOTITLECONVERT__', '__NOTC__' ),
+       'nocontentconvert'          => array( '0', '__Ù\85Ù\86_غÙ\8aر_تحÙ\88Ù\8aÙ\84\85حتÙ\88Ù\89__', '__Ù\84اتÙ\85__', '__Ù\84اتحÙ\88Ù\8aÙ\84\85حتÙ\88Ù\89__', '__NOCONTENTCONVERT__', '__NOCC__' ),
        'currentweek'               => array( '1', 'أسبوع_حالى', 'أسبوع_حالي', 'CURRENTWEEK' ),
        'currentdow'                => array( '1', 'يوم_حالى_مأ', 'يوم_حالي_مأ', 'CURRENTDOW' ),
        'localweek'                 => array( '1', 'أسبوع_محلى', 'أسبوع_محلي', 'LOCALWEEK' ),
        'localdow'                  => array( '1', 'يوم_محلى_مأ', 'يوم_محلي_مأ', 'LOCALDOW' ),
-       'revisionid'                => array( '1', 'رقم_المراجعة', 'REVISIONID' ),
-       'revisionday'               => array( '1', 'يوم_المراجعة', 'REVISIONDAY' ),
-       'revisionday2'              => array( '1', 'يوم_المراجعة2', 'REVISIONDAY2' ),
-       'revisionmonth'             => array( '1', 'شهر_المراجعة', 'REVISIONMONTH' ),
-       'revisionmonth1'            => array( '1', 'شهر_المراجعة1', 'REVISIONMONTH1' ),
-       'revisionyear'              => array( '1', 'عام_المراجعة', 'REVISIONYEAR' ),
-       'revisiontimestamp'         => array( '1', 'طابع_وقت_المراجعة', 'REVISIONTIMESTAMP' ),
-       'revisionuser'              => array( '1', 'مستخدم_المراجعة', 'REVISIONUSER' ),
+       'revisionid'                => array( '1', 'رقم_المراجعه', 'رقم_المراجعة', 'REVISIONID' ),
+       'revisionday'               => array( '1', 'يوم_المراجعه', 'يوم_المراجعة', 'REVISIONDAY' ),
+       'revisionday2'              => array( '1', 'يوم_المراجعه2', 'يوم_المراجعة2', 'REVISIONDAY2' ),
+       'revisionmonth'             => array( '1', 'شهر_المراجعه', 'شهر_المراجعة', 'REVISIONMONTH' ),
+       'revisionmonth1'            => array( '1', 'شهر_المراجعه1', 'شهر_المراجعة1', 'REVISIONMONTH1' ),
+       'revisionyear'              => array( '1', 'عام_المراجعه', 'عام_المراجعة', 'REVISIONYEAR' ),
+       'revisiontimestamp'         => array( '1', 'طابع_وقت_المراجعه', 'طابع_وقت_المراجعة', 'REVISIONTIMESTAMP' ),
+       'revisionuser'              => array( '1', 'مستخدم_المراجعه', 'مستخدم_المراجعة', 'REVISIONUSER' ),
+       'revisionsize'              => array( '1', 'حجم_المراجعه', 'حجم_المراجعة', 'REVISIONSIZE' ),
        'plural'                    => array( '0', 'جمع:', 'PLURAL:' ),
        'fullurl'                   => array( '0', 'عنوان_كامل:', 'FULLURL:' ),
        'fullurle'                  => array( '0', 'مسار_كامل:', 'FULLURLE:' ),
+       'canonicalurl'              => array( '0', 'عنوان_قاعده:', 'عنوان_قاعدة:', 'CANONICALURL:' ),
+       'canonicalurle'             => array( '0', 'مسار_قاعده:', 'مسار_قاعدة:', 'CANONICALURLE:' ),
        'lcfirst'                   => array( '0', 'عنوان_كبير:', 'LCFIRST:' ),
        'ucfirst'                   => array( '0', 'عنوان_صغير:', 'UCFIRST:' ),
        'lc'                        => array( '0', 'صغير:', 'LC:' ),
@@ -244,9 +273,10 @@ $magicWords = array(
        'raw'                       => array( '0', 'خام:', 'RAW:' ),
        'displaytitle'              => array( '1', 'عرض_العنوان', 'DISPLAYTITLE' ),
        'rawsuffix'                 => array( '1', 'أر', 'آر', 'R' ),
+       'nocommafysuffix'           => array( '0', 'من-غير_سيب', 'NOSEP' ),
        'newsectionlink'            => array( '1', '__وصلة_قسم_جديد__', '__NEWSECTIONLINK__' ),
-       'nonewsectionlink'          => array( '1', '__Ù\84ا_وصلة_قسم_جديد__', 'لا_وصلة_قسم_جديد__', '__NONEWSECTIONLINK__' ),
-       'currentversion'            => array( '1', 'نسخة_حالية', 'CURRENTVERSION' ),
+       'nonewsectionlink'          => array( '1', '__Ù\85Ù\86_غÙ\8aر_Ù\88صÙ\84Ø©_Ù\82سÙ\85_جدÙ\8aد__', 'Ù\85Ù\86_غÙ\8aر_وصلة_قسم_جديد__', 'لا_وصلة_قسم_جديد__', '__NONEWSECTIONLINK__' ),
+       'currentversion'            => array( '1', 'نسخه_حاليه', 'نسخة_حالية', 'CURRENTVERSION' ),
        'urlencode'                 => array( '0', 'كود_المسار:', 'URLENCODE:' ),
        'anchorencode'              => array( '0', 'كود_الأنكور', 'ANCHORENCODE' ),
        'currenttimestamp'          => array( '1', 'طابع_الوقت_الحالي', 'CURRENTTIMESTAMP' ),
@@ -260,6 +290,7 @@ $magicWords = array(
        'padleft'                   => array( '0', 'باد_يسار', 'PADLEFT' ),
        'padright'                  => array( '0', 'باد_يمين', 'PADRIGHT' ),
        'special'                   => array( '0', 'خاص', 'special' ),
+       'speciale'                  => array( '0', 'عنوان_خاص', 'speciale' ),
        'defaultsort'               => array( '1', 'ترتيب_قياسى:', 'ترتيب_افتراضى:', 'مفتاح_ترتيب_قياسى:', 'مفتاح_ترتيب_افتراضى:', 'ترتيب_تصنيف_قياسى:', 'ترتيب_تصنيف_افتراضى:', 'ترتيب_قياسي:', 'ترتيب_افتراضي:', 'مفتاح_ترتيب_قياسي:', 'مفتاح_ترتيب_افتراضي:', 'ترتيب_تصنيف_قياسي:', 'ترتيب_تصنيف_افتراضي:', 'ترتيب_غيابي:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                  => array( '0', 'مسار_الملف:', 'FILEPATH:' ),
        'tag'                       => array( '0', 'وسم', 'tag' ),
@@ -268,13 +299,22 @@ $magicWords = array(
        'pagesize'                  => array( '1', 'حجم_الصفحة', 'PAGESIZE' ),
        'index'                     => array( '1', '__فهرسة__', '__INDEX__' ),
        'noindex'                   => array( '1', '__لافهرسة__', '__NOINDEX__' ),
-       'numberingroup'             => array( '1', 'عدد_فى_المجموعة', 'عدد_فى_مجموعة', 'عدد_في_المجموعة', 'عدد_في_مجموعة', 'NUMBERINGROUP', 'NUMINGROUP' ),
-       'staticredirect'            => array( '1', '__تحويلة_إستاتيكية__', '__تحويلة_ساكنة__', '__STATICREDIRECT__' ),
-       'protectionlevel'           => array( '1', 'مستوى_الحماية', 'PROTECTIONLEVEL' ),
-       'formatdate'                => array( '0', 'تهيئة_التاريخ', 'تهيئة_تاريخ', 'formatdate', 'dateformat' ),
+       'numberingroup'             => array( '1', 'عدد_فى_المجموعه', 'عدد_فى_مجموعه', 'عدد_في_المجموعه', 'عدد_في_مجموعة', 'عدد_في_المجموعة', 'NUMBERINGROUP', 'NUMINGROUP' ),
+       'staticredirect'            => array( '1', '__تحويله_إستاتيكيه__', '__تحويله_ساكنه__', '__تحويلة_إستاتيكية__', '__تحويلة_ساكنة__', '__STATICREDIRECT__' ),
+       'protectionlevel'           => array( '1', 'مستوى_الحمايه', 'مستوى_الحماية', 'PROTECTIONLEVEL' ),
+       'cascadingsources'          => array( '1', 'مصادر_متضمنه', 'CASCADINGSOURCES' ),
+       'formatdate'                => array( '0', 'تهيئه_التاريخ', 'تهيئه_تاريخ', 'تهيئة_التاريخ', 'تهيئة_تاريخ', 'formatdate', 'dateformat' ),
        'url_path'                  => array( '0', 'مسار', 'PATH' ),
        'url_wiki'                  => array( '0', 'ويكى', 'ويكي', 'WIKI' ),
        'url_query'                 => array( '0', 'استعلام', 'QUERY' ),
+       'defaultsort_noerror'       => array( '0', 'من_غير_غلط', 'لاخطأ', 'noerror' ),
+       'defaultsort_noreplace'     => array( '0', 'ماتستبدلش', 'لاتستبدل', 'noreplace' ),
+       'displaytitle_noerror'      => array( '0', 'لا_غلطه', 'noerror' ),
+       'displaytitle_noreplace'    => array( '0', 'لا_استبدال', 'noreplace' ),
+       'pagesincategory_all'       => array( '0', 'كل', 'all' ),
+       'pagesincategory_pages'     => array( '0', 'صفحات', 'pages' ),
+       'pagesincategory_subcats'   => array( '0', 'تصنيفات_فرعيه', 'تصنيفات_فرعية', 'subcats' ),
+       'pagesincategory_files'     => array( '0', 'فايلات', 'ملفات', 'files' ),
 );
 
 // (bug 16469) Override Eastern Arabic numberals, use Western
index 824242b..a584ba5 100644 (file)
@@ -49,6 +49,7 @@ $namespaceAliases = array(
 $specialPageAliases = array(
        'Block'                     => array( 'Bloquiar', 'BloquiarIP', 'BloquiarUsuariu' ),
        'Log'                       => array( 'Rexistru', 'Rexistros' ),
+       'Recentchanges'             => array( 'CambeosRecientes' ),
        'Search'                    => array( 'Gueta' ),
        'Statistics'                => array( 'Estadístiques' ),
 );
index d3e5134..ea64271 100644 (file)
 
 $fallback = 'ru';
 
+$specialPageAliases = array(
+       'Activeusers'               => array( 'ХІаракатчилъи_бугел_гІахьалчагІи' ),
+       'Allmessages'               => array( 'Системаялъулал_баян_кьеял' ),
+       'AllMyUploads'              => array( 'Киналго_дир_файлал' ),
+       'Allpages'                  => array( 'Киналго_гьумерал' ),
+       'Badtitle'                  => array( 'БукІине_бегьулареб_цІар' ),
+       'Blankpage'                 => array( 'ЧІобогояб_гьумер' ),
+       'Block'                     => array( 'Блокалада_лъезе' ),
+       'Booksources'               => array( 'ТІахьазул_иццал' ),
+       'BrokenRedirects'           => array( 'Рек-рекарал_цоги_бакІалде_руссинариял' ),
+       'Categories'                => array( 'Категориял' ),
+       'ChangeEmail'               => array( 'e-mail_хисизе', 'Почта_хисизе' ),
+       'ChangePassword'            => array( 'Балъгояб_рагІи_хисизе' ),
+       'ComparePages'              => array( 'Гьумеразул_дандекквей' ),
+       'Confirmemail'              => array( 'E-mail_битІухъ_гьаби', 'почта_битІухъ_гьаби' ),
+       'Contributions'             => array( 'Хазина' ),
+       'CreateAccount'             => array( 'Учёталъулаб_Хъвай-хъвагІай_гІуцІцІизе', 'ГІахьалчи_гІуцІцІизе', 'Регистрация_гьабизе' ),
+       'Deadendpages'              => array( 'Нух_къарал_гьумерал' ),
+       'DeletedContributions'      => array( 'Нахъе_гьабураб_хазина' ),
+       'Diff'                      => array( 'Хиса-басиял' ),
+       'DoubleRedirects'           => array( 'КІицІулго_цоги_бакІалде_руссинариял' ),
+       'EditWatchlist'             => array( 'Халкквеялъул_сияхІ_хисизабизе' ),
+       'Emailuser'                 => array( 'ГІахьалчиясухъе_кагъат', 'Кагъат_битІизе' ),
+       'ExpandTemplates'           => array( 'Шаблонал_кколе-кколелъуре_ккезари' ),
+       'Export'                    => array( 'КъватІибе_битІи', 'ЧIехьей' ),
+       'Fewestrevisions'           => array( 'КъанагІат_хиса-баси_гьарулел' ),
+       'FileDuplicateSearch'       => array( 'Релъарал_файлал_хъирщи' ),
+       'Filepath'                  => array( 'Файлалде_нух' ),
+       'Import'                    => array( 'Импорт' ),
+       'Invalidateemail'           => array( 'Адрес_битІухъ_гьаби_нахъ_чІвазе' ),
+       'JavaScriptTest'            => array( 'JavaScript_хІалбихьи' ),
+       'BlockList'                 => array( 'Блокалда_лъеялъул_сияхІ', 'Блокалда_лъеял' ),
+       'LinkSearch'                => array( 'Ссылкаби_хъирщи' ),
+       'Listbots'                  => array( 'Ботазул_сияхІ' ),
+       'Listfiles'                 => array( 'Файлазул_сияхІ', 'Суратазул_сияхІ' ),
+       'Listgrouprights'           => array( 'ГІахьалчагІазул_группабазул_ихтиярал', 'Группабазул_ихтияразул_сияхІ' ),
+       'Listredirects'             => array( 'Цоги_бакІалде_руссинабиязул_сияхІ' ),
+       'ListDuplicatedFiles'       => array( 'Релъарал_файлазул_сияхІ' ),
+       'Listusers'                 => array( 'ГІахьалчагІазул_сияхІ' ),
+       'Lockdb'                    => array( 'ХІБ_блокалда_лъезе', 'ХІужжабазул_база_блокалда_лъезе' ),
+       'Log'                       => array( 'Журналал', 'Журнал' ),
+       'Lonelypages'               => array( 'БатІатІурал_гьумерал' ),
+       'Longpages'                 => array( 'Халатал_гьумерал' ),
+       'MergeHistory'              => array( 'Тарихал_цо_гьари' ),
+       'MIMEsearch'                => array( 'MIME_ялдалъул_хъирщи' ),
+       'Mostcategories'            => array( 'Бищунго_категориял_цІикІкІарал' ),
+       'Mostimages'                => array( 'Бищунго_хІалтІизарулел_файлал' ),
+       'Mostinterwikis'            => array( 'Интервики-ссылкабазул_бищун_цІикІкІараб_къадар' ),
+       'Mostlinked'                => array( 'Бищунго_хІалтІизарулел_гьумерал' ),
+       'Mostlinkedcategories'      => array( 'Бищунго_хІалтІизарулел_категориял' ),
+       'Mostlinkedtemplates'       => array( 'Бищунго_хІалтІизарулел_шаблонал' ),
+       'Mostrevisions'             => array( 'Сверелазул_бищун_цІикІкІараб_къадар' ),
+       'Movepage'                  => array( 'Гьумералда_цІар_хисизабизе', 'ЦІар_хисизаби', 'ЦІар_хисизе' ),
+       'Mycontributions'           => array( 'Дир_хазина' ),
+       'MyLanguage'                => array( 'Дир_мацІ' ),
+       'Mypage'                    => array( 'Дир_гьумер' ),
+       'Mytalk'                    => array( 'Дир_бахІс' ),
+       'Myuploads'                 => array( 'Дица_жанире_цІарал_жал' ),
+       'Newimages'                 => array( 'ЦІиял_файлал' ),
+       'Newpages'                  => array( 'ЦІиял_гьумерал' ),
+       'PasswordReset'             => array( 'Сброс_пароля' ),
+       'PermanentLink'             => array( 'Даимаб_ссылка' ),
+       'Popularpages'              => array( 'Машгьурал_гьумерал' ),
+       'Preferences'               => array( 'Рекъезабиял' ),
+       'Prefixindex'               => array( 'ЦІаразул_бетІералде_бихьизаби' ),
+       'Protectedpages'            => array( 'ЦІунарал_гьумерал' ),
+       'Protectedtitles'           => array( 'ЦІунарал_цІарал' ),
+       'Randompage'                => array( 'Цебе_ккараб_гьумер', 'Цебе_ккараб' ),
+       'Randomredirect'            => array( 'Цебе_ккараб_цоги_бакІалде_руссинаби' ),
+       'Recentchanges'             => array( 'ЦІиял_хиса-басиял' ),
+       'Recentchangeslinked'       => array( 'Хурхинарурал_хиса-басиял' ),
+       'Revisiondelete'            => array( 'Хиса-баси_нахъе_бацІцІи' ),
+       'Search'                    => array( 'Хъирщи' ),
+       'Shortpages'                => array( 'Къокъал_гьумерал' ),
+       'Specialpages'              => array( 'Хассал_гьумерал' ),
+       'Statistics'                => array( 'Статистика' ),
+       'Tags'                      => array( 'ГІужал' ),
+       'Unblock'                   => array( 'Блокалдаса_бахъи' ),
+       'Uncategorizedcategories'   => array( 'Категориял_гьечІел_категориял' ),
+       'Uncategorizedimages'       => array( 'Категориял_гьечІел_файлал' ),
+       'Uncategorizedpages'        => array( 'Категориял_гьечІел_гьумерал' ),
+       'Uncategorizedtemplates'    => array( 'Категориял_гьечІе_шаблонал' ),
+       'Undelete'                  => array( 'ТІадбуссинабизе', 'ТІадбуссинаби' ),
+       'Unlockdb'                  => array( 'ХІБ_блокалдаса_бахъи' ),
+       'Unusedcategories'          => array( 'ХІалтІизаруларел_категориял' ),
+       'Unusedimages'              => array( 'ХІалтІизаруларел_файлал' ),
+       'Unusedtemplates'           => array( 'ХІалтІизаруларел_шаблонал' ),
+       'Upload'                    => array( 'Загрузка' ),
+       'UploadStash'               => array( 'Бахчараб_загрузка' ),
+       'Userlogin'                 => array( 'Жаниве_лъугьин' ),
+       'Userlogout'                => array( 'Сеанс_лъугІи', 'КъватІиве_лъугьин' ),
+       'Userrights'                => array( 'Ихтиярал_рилълъинари' ),
+       'Version'                   => array( 'Сверел', 'Версия' ),
+       'Wantedcategories'          => array( 'ХІажатал_категориял' ),
+       'Wantedfiles'               => array( 'ХІажатал_файлал' ),
+       'Wantedpages'               => array( 'ХІажатал_гьумерал' ),
+       'Wantedtemplates'           => array( 'ХІажатал_шаблонал' ),
+       'Watchlist'                 => array( 'Халкквеялъул_сияхІ' ),
+       'Whatlinkshere'             => array( 'Ссылкаби_гьанире' ),
+       'Withoutinterwiki'          => array( 'Интервики_гьечІого' ),
+);
index 6ff8220..5a2a7a0 100644 (file)
@@ -130,7 +130,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'КОЛЬКАСЬЦЬ_УДЗЕЛЬНІКАЎ', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'КОЛЬКАСЬЦЬ_АКТЫЎНЫХ_УДЗЕЛЬНІКАЎ', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'КОЛЬКАСЬЦЬ_РЭДАГАВАНЬНЯЎ', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'КОЛЬКАСЬЦЬ_ПРАГЛЯДАЎ', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'НАЗВА_СТАРОНКІ', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'НАЗВА_СТАРОНКІ_2', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ПРАСТОРА_НАЗВАЎ', 'NAMESPACE' ),
index 3fb3606..afe608d 100644 (file)
@@ -150,7 +150,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'БРОЙПОТРЕБИТЕЛИ', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'БРОЙАКТИВНИПОТРЕБИТЕЛИ', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'БРОЙРЕДАКЦИИ', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'БРОЙПРЕГЛЕДИ', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'СТРАНИЦА', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'СТРАНИЦАИ', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ИМЕННОПРОСТРАНСТВО', 'NAMESPACE' ),
diff --git a/languages/messages/MessagesBgn.php b/languages/messages/MessagesBgn.php
new file mode 100644 (file)
index 0000000..5c01273
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+/** Western Balochi
+ *
+ * To improve a translation please visit https://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ *
+ */
+
+$fallback = 'fa';
+$rtl = true;
index e90797a..4c1962a 100644 (file)
@@ -27,6 +27,30 @@ $namespaceNames = array(
        NS_CATEGORY_TALK    => 'श्रेणी_वार्ता',
 );
 
+$specialPageAliases = array(
+       'Activeusers'               => array( 'सक्रिय_सदस्य' ),
+       'Allmessages'               => array( 'सारा_संदेस' ),
+       'Allpages'                  => array( 'सारा_पन्ना' ),
+       'Ancientpages'              => array( 'पुरान_पन्ना' ),
+       'Badtitle'                  => array( 'खराब_टाइटिल' ),
+       'Blankpage'                 => array( 'खाली_पन्ना' ),
+       'Categories'                => array( 'श्रेणी_सब' ),
+       'Contributions'             => array( 'योगदान' ),
+       'Export'                    => array( 'निर्यात' ),
+       'Import'                    => array( 'आयात' ),
+       'Log'                       => array( 'लॉग' ),
+       'Lonelypages'               => array( 'असंयुक्त' ),
+       'Longpages'                 => array( 'लम्बा_पन्ना' ),
+       'Mypage'                    => array( 'हमार_पन्ना' ),
+       'Mytalk'                    => array( 'हमार_बात' ),
+       'Newpages'                  => array( 'नया_पन्ना' ),
+       'Recentchangeslinked'       => array( 'तुरंत_भइल_परिवर्तन' ),
+       'Shortpages'                => array( 'छोटा_पन्ना' ),
+       'Specialpages'              => array( 'ख़ाश_पन्ना' ),
+       'TrackingCategories'        => array( 'बिनावर्गीकृत_श्रेणी' ),
+       'Uncategorizedpages'        => array( 'बिनावर्गीकृत' ),
+);
+
 $digitTransformTable = array(
        '0' => '०', # &#x0966;
        '1' => '१', # &#x0967;
@@ -39,4 +63,3 @@ $digitTransformTable = array(
        '8' => '८', # &#x096e;
        '9' => '९', # &#x096f;
 );
-
index 222399e..66cef9e 100644 (file)
@@ -115,7 +115,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NIVERAIMPLIJERIEN', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NIVERAIMPLIJERIENOBERIANT', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NIVERAZEGASEDENNOU', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NIVERALENNADENNOU', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'ANVPAJENN', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'ANVPAJENNSK', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ESAOUENNANV', 'NAMESPACE' ),
index 57413ac..6fda808 100644 (file)
@@ -166,7 +166,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'BROJKORISNIKA', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'BROJAKTIVNIHKORISNIKA', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'BROJPROMJENA', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'BROJPREGLEDA', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'STRANICA', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'STRANICE', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'IMENSKIPROSTOR', 'NAMESPACE' ),
index 6cfb988..29c9a16 100644 (file)
@@ -60,7 +60,7 @@ $specialPageAliases = array(
        'LinkSearch'                => array( 'Enllaços_web', 'Busca_enllaços', 'Recerca_d\'enllaços_web' ),
        'Listadmins'                => array( 'Administradors' ),
        'Listbots'                  => array( 'Bots' ),
-       'Listfiles'                 => array( 'Imatges' ),
+       'Listfiles'                 => array( 'Imatges', 'Fitxers' ),
        'Listgrouprights'           => array( 'Drets_dels_grups_d\'usuaris' ),
        'Listredirects'             => array( 'Redireccions' ),
        'Listusers'                 => array( 'Usuaris' ),
@@ -80,7 +80,7 @@ $specialPageAliases = array(
        'Mycontributions'           => array( 'Contribucions_pròpies' ),
        'Mypage'                    => array( 'Pàgina_personal' ),
        'Mytalk'                    => array( 'Discussió_personal' ),
-       'Newimages'                 => array( 'Imatges_noves' ),
+       'Newimages'                 => array( 'Imatges_noves', 'Fitxers_nous' ),
        'Newpages'                  => array( 'Pàgines_noves' ),
        'Popularpages'              => array( 'Pàgines_populars' ),
        'Preferences'               => array( 'Preferències' ),
index fb61b4a..1bc4385 100644 (file)
@@ -46,7 +46,7 @@ $specialPageAliases = array(
        'Confirmemail'              => array( '確認電子郵件' ),
        'Contributions'             => array( '貢獻' ),
        'CreateAccount'             => array( '開賬戶' ),
-       'DeletedContributions'      => array( '刪其貢獻' ),
+       'DeletedContributions'      => array( '刪其貢獻' ),
        'DoubleRedirects'           => array( '雙重重定向' ),
        'EditWatchlist'             => array( '修改監視單' ),
        'Emailuser'                 => array( '共用戶發送電子郵件' ),
@@ -125,7 +125,7 @@ $specialPageAliases = array(
        'Wantedpages'               => array( '卜挃其頁面' ),
        'Wantedtemplates'           => array( '卜挃其模板' ),
        'Watchlist'                 => array( '監視單' ),
-       'Whatlinkshere'             => array( '乇鏈遘嚽塊' ),
+       'Whatlinkshere'             => array( '乇鏈遘嚽塊' ),
        'Withoutinterwiki'          => array( '無跨維基' ),
 );
 
index 2babb83..7ee29c1 100644 (file)
@@ -67,8 +67,9 @@ $namespaceGenderAliases = array();
 $specialPageAliases = array(
        'Activeusers'               => array( 'Жигара_декъашхой' ),
        'Allmessages'               => array( 'ГӀирса_хаамаш' ),
+       'AllMyUploads'              => array( 'Сан_массо_файлаш' ),
        'Allpages'                  => array( 'Массо_агӀонаш' ),
-       'Ancientpages'              => array( 'ЯззамаÑ\88_оÑ\86Ñ\83\82еÑ\80аÑ\85Ñ\8cÑ\86а_Ñ\82Ó\80аÑ\8cÑ\85Ñ\85Ñ\8cаÑ\80а_Ñ\82адаÑ\80_дина_долÑ\83' ),
+       'Ancientpages'              => array( 'ТÓ\80аÑ\8cÑ\85Ñ\8cаÑ\80леÑ\80аÑ\87Ñ\83\85енаÑ\86а_ниÑ\81бина_Ñ\8fззамаÑ\88' ),
        'Badtitle'                  => array( 'Хилийта_йиш_йоцу_цӀе' ),
        'Blankpage'                 => array( 'Еса_агӀо' ),
        'Block'                     => array( 'Блоктоха' ),
@@ -95,9 +96,9 @@ $specialPageAliases = array(
        'Invalidateemail'           => array( 'Адрес_бакъдар_юхадаккха' ),
        'JavaScriptTest'            => array( 'JavaScript_тестировать_ян' ),
        'BlockList'                 => array( 'Блоктоьхнарш' ),
-       'LinkSearch'                => array( 'Ð¥Ñ\8cажоÑ\80агаÑ\88_лаÑ\85аÑ\80' ),
+       'LinkSearch'                => array( 'Хьажоргаш_лахар' ),
        'Listadmins'                => array( 'Куьйгалхойн_могӀам' ),
-       'Listbots'                  => array( 'ШаболÑ\85_беÑ\87аÑ\80а_могӀам' ),
+       'Listbots'                  => array( 'Ð\91оÑ\82Ñ\82ийн_могӀам' ),
        'Listfiles'                 => array( 'Файлаш' ),
        'Listgrouprights'           => array( 'Декъашхойн_бакъонаш' ),
        'Listredirects'             => array( 'ДIасахьажоран_могIам' ),
@@ -110,8 +111,8 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'MIME_чухула_лахар' ),
        'Mostcategories'            => array( 'Дуккха_категореш_тӀе_тоьхна_йолу_агӀонаш' ),
        'Mostimages'                => array( 'Массарел_дуккха_лелайо_файлаш' ),
-       'Mostinterwikis'            => array( 'Ð\94Ñ\83кÑ\85а_Ñ\8eкÑ\8aаÑ\80вики_Ñ\85Ñ\8cажоÑ\80агаÑ\88' ),
-       'Mostlinked'                => array( 'Ð\94Ñ\83ккÑ\85а_Ñ\85Ñ\8cажоÑ\80агаÑ\88\82Ó\80е_Ñ\82оÑ\8cÑ\85на_йолÑ\83_агÓ\80онаÑ\88' ),
+       'Mostinterwikis'            => array( 'Дукха_юкъарвики_хьажоргаш' ),
+       'Mostlinked'                => array( 'Дуккха_хьажоргаш_тӀе_тоьхна_йолу_агӀонаш' ),
        'Mostlinkedcategories'      => array( 'Дуккха_тӀе_хьажораш_йолу_категореш' ),
        'Mostlinkedtemplates'       => array( 'Массарел_дуккха_а_леладо_кепаш' ),
        'Mostrevisions'             => array( 'Сих_сиха_нисйина_йолу_агӀонаш' ),
@@ -124,7 +125,7 @@ $specialPageAliases = array(
        'Newimages'                 => array( 'Керла_файлаш' ),
        'Newpages'                  => array( 'Керла_агӀонаш' ),
        'PasswordReset'             => array( 'Пароль_кхоссар' ),
-       'PermanentLink'             => array( 'Ð\93Ñ\83Ñ\82Ñ\82аÑ\80леÑ\80а_Ñ\85Ñ\8cажоÑ\80аг' ),
+       'PermanentLink'             => array( 'Гуттарлера_хьажорг' ),
        'Popularpages'              => array( 'ГӀараяьлла_агӀонаш' ),
        'Preferences'               => array( 'ГӀирсаш' ),
        'Prefixindex'               => array( 'Хьалха_агӀонийн_цӀераш_хӀотто_еза' ),
@@ -134,11 +135,11 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'Цахууш_нисделла_дIасахьажор' ),
        'Recentchanges'             => array( 'Керла_нисдарш' ),
        'Recentchangeslinked'       => array( 'Кхуьнца_долу_нисдарш' ),
-       'Revisiondelete'            => array( 'Ð\94Ó\80адÑ\8fÑ\85на_ниÑ\81даÑ\80Ñ\88' ),
+       'Revisiondelete'            => array( 'Ð\9dиÑ\81даÑ\80_дÓ\80адаккÑ\85аÑ\80' ),
        'Search'                    => array( 'Лахар' ),
        'Shortpages'                => array( 'Боца_яззамаш' ),
        'Specialpages'              => array( 'Леррина_агӀонаш' ),
-       'Statistics'                => array( 'Ð\91Ñ\83Ñ\85еÑ\85Ñ\8cдеÑ\80г' ),
+       'Statistics'                => array( 'СÑ\82аÑ\82иÑ\81Ñ\82ика' ),
        'Tags'                      => array( 'Билгалонаш' ),
        'Unblock'                   => array( 'БлокдӀаяккхар' ),
        'Uncategorizedcategories'   => array( 'Категореш_йоцу_категореш' ),
@@ -162,24 +163,24 @@ $specialPageAliases = array(
        'Wantedtemplates'           => array( 'Оьшуш_йолу_кепаш' ),
        'Watchlist'                 => array( 'Тергаме_могӀам' ),
        'Whatlinkshere'             => array( 'Хьажоригаш_кхузе' ),
-       'Withoutinterwiki'          => array( 'ЮкÑ\8aаÑ\80вики_Ñ\85Ñ\8cажоÑ\80агаÑ\88_йоÑ\86Ñ\83_агÓ\80онаÑ\88' ),
+       'Withoutinterwiki'          => array( 'Юкъарвики_хьажоргаш_йоцу_агӀонаш' ),
 );
 
 $magicWords = array(
-       'redirect'                  => array( '0', '#дlасахьажайар\'', '\'#хьажайо\'', '\'#REDIRECT', '#перенаправление', '#перенапр', '#REDIRECT' ),
+       'redirect'                  => array( '0', '#дӀасахьажор\'', '\'#хьажайо\'', '\'#REDIRECT', '#перенаправление', '#перенапр', '#REDIRECT' ),
        'notoc'                     => array( '0', '__БАЦ_ЧУЛАЦАМ__', '__БАЦ_ЧУЛ__', '__БЕЗ_ОГЛАВЛЕНИЯ__', '__БЕЗ_ОГЛ__', '__NOTOC__' ),
        'nogallery'                 => array( '0', '__ЙАЦ_УЧЕ__', '__БЕЗ_ГАЛЕРЕИ__', '__NOGALLERY__' ),
        'forcetoc'                  => array( '0', '__ТlЕДУЬЛЛУ_ЧУЛАЦАМБАР__', '__ТlЕДУЬЛ_ЧУЛ__', '__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__', '__ОБЯЗ_ОГЛ__', '__FORCETOC__' ),
        'toc'                       => array( '0', '__ЧУЛАЦАМ__', '__ЧУЛ__', '__ОГЛАВЛЕНИЕ__', '__ОГЛ__', '__TOC__' ),
-       'noeditsection'             => array( '0', '__ЦÐ\90Ð\9cÐ\95Ð\93_РÐ\95Ð\94Ð\90Ð\9aÐ\9aÐ¥Ð\90\90Ð\93\9eÐ\9d__', '__БЕЗ_РЕДАКТИРОВАНИЯ_РАЗДЕЛА__', '__NOEDITSECTION__' ),
+       'noeditsection'             => array( '0', '__Ð\90Ð\93Ó\80Ð\9e_ТÐ\90_ЦÐ\90\95Ш__', '__БЕЗ_РЕДАКТИРОВАНИЯ_РАЗДЕЛА__', '__NOEDITSECTION__' ),
        'currentmonth'              => array( '1', 'КАРАРА_БУТТ', 'КАРАРА_БУТТ_2', 'ТЕКУЩИЙ_МЕСЯЦ', 'ТЕКУЩИЙ_МЕСЯЦ_2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
        'currentmonth1'             => array( '1', 'КАРАРА_БУТТ_1', 'ТЕКУЩИЙ_МЕСЯЦ_1', 'CURRENTMONTH1' ),
-       'currentmonthname'          => array( '1', 'КАРАРАЧУ_БЕТТА_ЦlЕ', 'НАЗВАНИЕ_ТЕКУЩЕГО_МЕСЯЦА', 'CURRENTMONTHNAME' ),
-       'currentmonthnamegen'       => array( '1', 'КАРАРАЧУ_БЕТТА_ЦlЕ_МУХ', 'НАЗВАНИЕ_ТЕКУЩЕГО_МЕСЯЦА_РОД', 'CURRENTMONTHNAMEGEN' ),
-       'currentmonthabbrev'        => array( '1', 'КАРАРАЧУ_БЕТТА_ЦlЕ_АБР', 'НАЗВАНИЕ_ТЕКУЩЕГО_МЕСЯЦА_АБР', 'CURRENTMONTHABBREV' ),
+       'currentmonthname'          => array( '1', 'КАРАРАЧУ_БЕТТА_ЦӀЕ', 'НАЗВАНИЕ_ТЕКУЩЕГО_МЕСЯЦА', 'CURRENTMONTHNAME' ),
+       'currentmonthnamegen'       => array( '1', 'КАРАРАЧУ_БЕТТА_ЦӀЕ_МУХ', 'НАЗВАНИЕ_ТЕКУЩЕГО_МЕСЯЦА_РОД', 'CURRENTMONTHNAMEGEN' ),
+       'currentmonthabbrev'        => array( '1', 'КАРАРАЧУ_БЕТТА_ЦӀЕ_АБР', 'НАЗВАНИЕ_ТЕКУЩЕГО_МЕСЯЦА_АБР', 'CURRENTMONTHABBREV' ),
        'currentday'                => array( '1', 'КАРАРА_ДЕ', 'ТЕКУЩИЙ_ДЕНЬ', 'CURRENTDAY' ),
        'currentday2'               => array( '1', 'КАРАРА_ДЕ_2', 'ТЕКУЩИЙ_ДЕНЬ_2', 'CURRENTDAY2' ),
-       'currentdayname'            => array( '1', 'КАРАРАЧУ_ДЕ_ЦlЕ', 'НАЗВАНИЕ_ТЕКУЩЕГО_ДНЯ', 'CURRENTDAYNAME' ),
+       'currentdayname'            => array( '1', 'КАРАРАЧУ_ДЕ_ЦӀЕ', 'НАЗВАНИЕ_ТЕКУЩЕГО_ДНЯ', 'CURRENTDAYNAME' ),
        'currentyear'               => array( '1', 'КАРАРА_ШО', 'ТЕКУЩИЙ_ГОД', 'CURRENTYEAR' ),
        'currenttime'               => array( '1', 'КАРАРА_ХАН', 'ТЕКУЩЕЕ_ВРЕМЯ', 'CURRENTTIME' ),
        'currenthour'               => array( '1', 'КАРАРА_САХЬТ', 'ТЕКУЩИЙ_ЧАС', 'CURRENTHOUR' ),
@@ -190,37 +191,36 @@ $magicWords = array(
        'localmonthabbrev'          => array( '1', 'МЕТТИГАН_БЕТТА_ЦlЕ_АБР', 'НАЗВАНИЕ_МЕСТНОГО_МЕСЯЦА_АБР', 'LOCALMONTHABBREV' ),
        'localday'                  => array( '1', 'МЕТТИГАН_ДЕ', 'МЕСТНЫЙ_ДЕНЬ', 'LOCALDAY' ),
        'localday2'                 => array( '1', 'МЕТТИГАН_ДЕ_2', 'МЕСТНЫЙ_ДЕНЬ_2', 'LOCALDAY2' ),
-       'localdayname'              => array( '1', 'МЕТТИГАН_ДЕ_ЦlЕ', 'НАЗВАНИЕ_МЕСТНОГО_ДНЯ', 'LOCALDAYNAME' ),
+       'localdayname'              => array( '1', 'МЕТТИГАН_ДЕ_ЦӀЕ', 'НАЗВАНИЕ_МЕСТНОГО_ДНЯ', 'LOCALDAYNAME' ),
        'localyear'                 => array( '1', 'МЕТТИГАН_ШО', 'МЕСТНЫЙ_ГОД', 'LOCALYEAR' ),
        'localtime'                 => array( '1', 'МЕТТИГАН_ХАН', 'МЕСТНОЕ_ВРЕМЯ', 'LOCALTIME' ),
        'localhour'                 => array( '1', 'МЕТТИГАН_САХЬТ', 'МЕСТНЫЙ_ЧАС', 'LOCALHOUR' ),
        'numberofpages'             => array( '1', 'АГlОНИЙ_ДУКХАЛЛА', 'КОЛИЧЕСТВО_СТРАНИЦ', 'NUMBEROFPAGES' ),
        'numberofarticles'          => array( '1', 'ЯЗЗАМАШИ_ДУКХАЛЛА', 'КОЛИЧЕСТВО_СТАТЕЙ', 'NUMBEROFARTICLES' ),
-       'numberoffiles'             => array( '1', 'ФÐ\90Ð\99Ð\9bÐ\90Ð\9dШÐ\98_ДУКХАЛЛА', 'КОЛИЧЕСТВО_ФАЙЛОВ', 'NUMBEROFFILES' ),
+       'numberoffiles'             => array( '1', 'ФÐ\90Ð\99Ð\9bÐ\98Ð\99Ð\9d_ДУКХАЛЛА', 'КОЛИЧЕСТВО_ФАЙЛОВ', 'NUMBEROFFILES' ),
        'numberofusers'             => array( '1', 'ДЕКЪАШХОЙ_ДУКХАЛЛА', 'КОЛИЧЕСТВО_УЧАСТНИКОВ', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'ДУКХАЛЛА_ЖИГАРА_ДЕКЪАШХОЙ', 'КОЛИЧЕСТВО_АКТИВНЫХ_УЧАСТНИКОВ', 'NUMBEROFACTIVEUSERS' ),
-       'numberofedits'             => array( '1', 'НИСДАРШИЙ_ДУКХАЛЛА', 'КОЛИЧЕСТВО_ПРАВОК', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'ХЬАЖАРИЙ_ДУКХАЛЛА', 'КОЛИЧЕСТВО_ПРОСМОТРОВ', 'NUMBEROFVIEWS' ),
-       'pagename'                  => array( '1', 'АГlОН_ЦlЕ', 'НАЗВАНИЕ_СТРАНИЦЫ', 'PAGENAME' ),
-       'pagenamee'                 => array( '1', 'АГlОН_ЦlЕ_2', 'НАЗВАНИЕ_СТРАНИЦЫ_2', 'PAGENAMEE' ),
-       'namespace'                 => array( '1', 'ЦlЕРИ_АНА', 'ПРОСТРАНСТВО_ИМЁН', 'NAMESPACE' ),
-       'namespacee'                => array( '1', 'ЦlЕРИ_АНА_2', 'ПРОСТРАНСТВО_ИМЁН_2', 'NAMESPACEE' ),
-       'talkspace'                 => array( '1', 'ДИЙЦАРШИ_АНА', 'ПРОСТРАНСТВО_ОБСУЖДЕНИЙ', 'TALKSPACE' ),
-       'talkspacee'                => array( '1', 'ДИЙЦАРШИ_АНА_2', 'ПРОСТРАНСТВО_ОБСУЖДЕНИЙ_2', 'TALKSPACEE' ),
-       'subjectspace'              => array( '1', 'ЯЗЗАМАШИ_АНА', 'ПРОСТРАНСТВО_СТАТЕЙ', 'SUBJECTSPACE', 'ARTICLESPACE' ),
-       'subjectspacee'             => array( '1', 'ЯЗЗАМАШИ_АНА_2', 'ПРОСТРАНСТВО_СТАТЕЙ_2', 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
-       'fullpagename'              => array( '1', 'ЮЬЗЗИНА_АГlОН_ЦlЕ', 'ПОЛНОЕ_НАЗВАНИЕ_СТРАНИЦЫ', 'FULLPAGENAME' ),
-       'fullpagenamee'             => array( '1', 'ЮЬЗЗИНА_АГlОН_ЦlЕ_2', 'ПОЛНОЕ_НАЗВАНИЕ_СТРАНИЦЫ_2', 'FULLPAGENAMEE' ),
-       'subpagename'               => array( '1', 'АГlОН_КlЕЛАРА_ЦlЕ', 'НАЗВАНИЕ_ПОДСТРАНИЦЫ', 'SUBPAGENAME' ),
-       'subpagenamee'              => array( '1', 'АГlОН_КlЕЛАРА_ЦlЕ_2', 'НАЗВАНИЕ_ПОДСТРАНИЦЫ_2', 'SUBPAGENAMEE' ),
-       'basepagename'              => array( '1', 'АГlОН_ЦlЕРА_БУХ', 'ОСНОВА_НАЗВАНИЯ_СТРАНИЦЫ', 'BASEPAGENAME' ),
-       'basepagenamee'             => array( '1', 'АГlОН_ЦlЕРА_БУХ_2', 'ОСНОВА_НАЗВАНИЯ_СТРАНИЦЫ_2', 'BASEPAGENAMEE' ),
-       'talkpagename'              => array( '1', 'ДИЙЦАРЕ_АГlОН_ЦlЕ', 'НАЗВАНИЕ_СТРАНИЦЫ_ОБСУЖДЕНИЯ', 'TALKPAGENAME' ),
-       'talkpagenamee'             => array( '1', 'ДИЙЦАРЕ_АГlОН_ЦlЕ_2', 'НАЗВАНИЕ_СТРАНИЦЫ_ОБСУЖДЕНИЯ_2', 'TALKPAGENAMEE' ),
-       'subjectpagename'           => array( '1', 'АГlОН_ЯЗЗАМАН_ЦlЕ', 'НАЗВАНИЕ_СТРАНИЦЫ_СТАТЬИ', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
-       'subjectpagenamee'          => array( '1', 'АГlОН_ЯЗЗАМАН_ЦlЕ_2', 'НАЗВАНИЕ_СТРАНИЦЫ_СТАТЬИ_2', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
+       'numberofedits'             => array( '1', 'НИСДАРИЙН_ДУКХАЛЛА', 'КОЛИЧЕСТВО_ПРАВОК', 'NUMBEROFEDITS' ),
+       'pagename'                  => array( '1', 'АГӀОН_ЦӀЕ', 'НАЗВАНИЕ_СТРАНИЦЫ', 'PAGENAME' ),
+       'pagenamee'                 => array( '1', 'АГӀОН_ЦӀЕ_2', 'НАЗВАНИЕ_СТРАНИЦЫ_2', 'PAGENAMEE' ),
+       'namespace'                 => array( '1', 'ЦӀЕРИЙН_АНА', 'ПРОСТРАНСТВО_ИМЁН', 'NAMESPACE' ),
+       'namespacee'                => array( '1', 'ЦӀЕРИЙН_АНА_2', 'ПРОСТРАНСТВО_ИМЁН_2', 'NAMESPACEE' ),
+       'talkspace'                 => array( '1', 'ДИЙЦАРИЙН_АНА', 'ПРОСТРАНСТВО_ОБСУЖДЕНИЙ', 'TALKSPACE' ),
+       'talkspacee'                => array( '1', 'ДИЙЦАРИЙН_АНА_2', 'ПРОСТРАНСТВО_ОБСУЖДЕНИЙ_2', 'TALKSPACEE' ),
+       'subjectspace'              => array( '1', 'ЯЗЗАМИЙН_АНА', 'ПРОСТРАНСТВО_СТАТЕЙ', 'SUBJECTSPACE', 'ARTICLESPACE' ),
+       'subjectspacee'             => array( '1', 'ЯЗЗАМИЙН_АНА_2', 'ПРОСТРАНСТВО_СТАТЕЙ_2', 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
+       'fullpagename'              => array( '1', 'ЮЬЗЗИНА_АГӀОН_ЦӀЕ', 'ПОЛНОЕ_НАЗВАНИЕ_СТРАНИЦЫ', 'FULLPAGENAME' ),
+       'fullpagenamee'             => array( '1', 'ЮЬЗЗИНА_АГӀОН_ЦӀЕ_2', 'ПОЛНОЕ_НАЗВАНИЕ_СТРАНИЦЫ_2', 'FULLPAGENAMEE' ),
+       'subpagename'               => array( '1', 'АГӀОН_КӀЕЛАРА_ЦӀЕ', 'НАЗВАНИЕ_ПОДСТРАНИЦЫ', 'SUBPAGENAME' ),
+       'subpagenamee'              => array( '1', 'АГӀОН_КӀЕЛАРА_ЦӀЕ_2', 'НАЗВАНИЕ_ПОДСТРАНИЦЫ_2', 'SUBPAGENAMEE' ),
+       'basepagename'              => array( '1', 'АГӀОН_ЦӀЕРА_БУХ', 'ОСНОВА_НАЗВАНИЯ_СТРАНИЦЫ', 'BASEPAGENAME' ),
+       'basepagenamee'             => array( '1', 'АГӀОН_ЦӀЕРА_БУХ_2', 'ОСНОВА_НАЗВАНИЯ_СТРАНИЦЫ_2', 'BASEPAGENAMEE' ),
+       'talkpagename'              => array( '1', 'ДИЙЦАРЕ_АГӀОН_ЦӀЕ', 'НАЗВАНИЕ_СТРАНИЦЫ_ОБСУЖДЕНИЯ', 'TALKPAGENAME' ),
+       'talkpagenamee'             => array( '1', 'ДИЙЦАРЕ_АГӀОН_ЦӀЕ_2', 'НАЗВАНИЕ_СТРАНИЦЫ_ОБСУЖДЕНИЯ_2', 'TALKPAGENAMEE' ),
+       'subjectpagename'           => array( '1', 'АГӀОН_ЯЗЗАМАН_ЦӀЕ', 'НАЗВАНИЕ_СТРАНИЦЫ_СТАТЬИ', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
+       'subjectpagenamee'          => array( '1', 'АГӀОН_ЯЗЗАМАН_ЦӀЕ_2', 'НАЗВАНИЕ_СТРАНИЦЫ_СТАТЬИ_2', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
        'msg'                       => array( '0', 'ХААМ:', 'СООБЩЕНИЕ:', 'СООБЩ:', 'MSG:' ),
-       'subst'                     => array( '0', 'ХlОТТОР:', 'ХlОТТ:', 'ПОДСТАНОВКА:', 'ПОДСТ:', 'SUBST:' ),
+       'subst'                     => array( '0', 'ХӀОТТОР:', 'ХӀОТТ:', 'ПОДСТАНОВКА:', 'ПОДСТ:', 'SUBST:' ),
        'msgnw'                     => array( '0', 'ВИКИ_ХААМ_БОЦАШ:', 'СООБЩ_БЕЗ_ВИКИ:', 'MSGNW:' ),
        'img_thumbnail'             => array( '1', 'жима', 'жимо', 'мини', 'миниатюра', 'thumbnail', 'thumb' ),
        'img_manualthumb'           => array( '1', 'жима=$1', 'жимо=$1', 'мини=$1', 'миниатюра=$1', 'thumbnail=$1', 'thumb=$1' ),
@@ -236,32 +236,32 @@ $magicWords = array(
        'img_border'                => array( '1', 'доза', 'граница', 'border' ),
        'img_baseline'              => array( '1', 'бух', 'основание', 'baseline' ),
        'img_sub'                   => array( '1', 'буха', 'под', 'sub' ),
-       'img_super'                 => array( '1', 'тlе', 'над', 'super', 'sup' ),
+       'img_super'                 => array( '1', 'тӀе', 'над', 'super', 'sup' ),
        'img_top'                   => array( '1', 'лакхахь', 'сверху', 'top' ),
        'img_text_top'              => array( '1', 'лакххьара-йоза', 'текст-сверху', 'text-top' ),
        'img_middle'                => array( '1', 'юккъе', 'посередине', 'middle' ),
        'img_bottom'                => array( '1', 'бухар', 'снизу', 'bottom' ),
        'img_text_bottom'           => array( '1', 'бухара-йоза', 'текст-снизу', 'text-bottom' ),
-       'img_link'                  => array( '1', 'Ñ\85Ñ\8cажоÑ\80иг=$1', 'Ñ\81Ñ\81Ñ\8bлка=$1', 'link=$1' ),
+       'img_link'                  => array( '1', 'хьажорг=$1', 'ссылка=$1', 'link=$1' ),
        'img_alt'                   => array( '1', 'альт=$1', 'alt=$1' ),
        'int'                       => array( '0', 'ЧУЬРА:', 'ВНУТР:', 'INT:' ),
        'sitename'                  => array( '1', 'МЕТТИГ_ЦlЕ', 'НАЗВАНИЕ_САЙТА', 'SITENAME' ),
        'ns'                        => array( '0', 'БО:', 'ПИ:', 'NS:' ),
        'nse'                       => array( '0', 'БОХЬ:', 'ПИК:', 'NSE:' ),
-       'localurl'                  => array( '0', 'ХlОТТАЕЛЛА_МЕТТИГ:', 'ЛОКАЛЬНЫЙ_АДРЕС:', 'LOCALURL:' ),
-       'localurle'                 => array( '0', 'ХlОТТАЕЛЛА_МЕТТИГ_2:', 'ЛОКАЛЬНЫЙ_АДРЕС_2:', 'LOCALURLE:' ),
+       'localurl'                  => array( '0', 'ХӀОТТАЕЛЛА_МЕТТИГ:', 'ЛОКАЛЬНЫЙ_АДРЕС:', 'LOCALURL:' ),
+       'localurle'                 => array( '0', 'ХӀОТТАЕЛЛА_МЕТТИГ_2:', 'ЛОКАЛЬНЫЙ_АДРЕС_2:', 'LOCALURLE:' ),
        'server'                    => array( '0', 'ГlУЛКХДИРИГ', 'СЕРВЕР', 'SERVER' ),
        'servername'                => array( '0', 'ГlУЛКХДЕЧУЬНА_ЦlЕ', 'НАЗВАНИЕ_СЕРВЕРА', 'SERVERNAME' ),
        'scriptpath'                => array( '0', 'НЕКЪ_ОЦ_МЕТТАКЕПА', 'ПУТЬ_К_СКРИПТУ', 'SCRIPTPATH' ),
-       'stylepath'                 => array( '0', 'ЙОМАНХАТl', 'ПУТЬ_К_СТИЛЮ', 'STYLEPATH' ),
+       'stylepath'                 => array( '0', 'ЙОМАНХАТӀ', 'ПУТЬ_К_СТИЛЮ', 'STYLEPATH' ),
        'grammar'                   => array( '0', 'ДОЖАР:', 'ПАДЕЖ:', 'GRAMMAR:' ),
        'gender'                    => array( '0', 'ВУ_ЙУ:', 'GENDER', 'ПОЛ:', 'GENDER:' ),
        'notitleconvert'            => array( '0', '__ХИЙЦАР_ДОЦУШ_КОЬРТЕ__', '__БЕЗ_ПРЕОБРАЗОВАНИЯ_ЗАГОЛОВКА__', '__NOTITLECONVERT__', '__NOTC__' ),
        'nocontentconvert'          => array( '0', '__ЙОЗА_ХИЙЦАР_ДОЦУШ__', '__БЕЗ_ПРЕОБРАЗОВАНИЯ_ТЕКСТА__', '__NOCONTENTCONVERT__', '__NOCC__' ),
-       'currentweek'               => array( '1', 'КАРАРА_КlИР', 'ТЕКУЩАЯ_НЕДЕЛЯ', 'CURRENTWEEK' ),
-       'currentdow'                => array( '1', 'КАРАРА_КlИРАН_ДЕ', 'ТЕКУЩИЙ_ДЕНЬ_НЕДЕЛИ', 'CURRENTDOW' ),
-       'localweek'                 => array( '1', 'МЕТТИГЕРА_КlИРА', 'МЕСТНАЯ_НЕДЕЛЯ', 'LOCALWEEK' ),
-       'localdow'                  => array( '1', 'МЕТТИГАН_КlИРАН_ДЕ', 'МЕСТНЫЙ_ДЕНЬ_НЕДЕЛИ', 'LOCALDOW' ),
+       'currentweek'               => array( '1', 'КАРАРА_КӀИРА', 'ТЕКУЩАЯ_НЕДЕЛЯ', 'CURRENTWEEK' ),
+       'currentdow'                => array( '1', 'КАРАРА_КӀИРАН_ДЕ', 'ТЕКУЩИЙ_ДЕНЬ_НЕДЕЛИ', 'CURRENTDOW' ),
+       'localweek'                 => array( '1', 'МЕТТИГЕРА_КӀИРА', 'МЕСТНАЯ_НЕДЕЛЯ', 'LOCALWEEK' ),
+       'localdow'                  => array( '1', 'МЕТТИГАН_КӀИРАН_ДЕ', 'МЕСТНЫЙ_ДЕНЬ_НЕДЕЛИ', 'LOCALDOW' ),
        'revisionid'                => array( '1', 'ЦУЬНА_БАШХО', 'ИД_ВЕРСИИ', 'REVISIONID' ),
        'revisionday'               => array( '1', 'ДЕ_БАШХО', 'ДЕНЬ_ВЕРСИИ', 'REVISIONDAY' ),
        'revisionday2'              => array( '1', 'ДЕ_БАШХО_2', 'ДЕНЬ_ВЕРСИИ_2', 'REVISIONDAY2' ),
@@ -279,8 +279,8 @@ $magicWords = array(
        'raw'                       => array( '0', 'ТАЙАНЗА:', 'НЕОБРАБ:', 'RAW:' ),
        'displaytitle'              => array( '1', 'ГАЙТА_КОЬРТАМОГl', 'ПОКАЗАТЬ_ЗАГОЛОВОК', 'DISPLAYTITLE' ),
        'rawsuffix'                 => array( '1', 'Т', 'Н', 'R' ),
-       'newsectionlink'            => array( '1', '__ХЬÐ\90Ð\96Ð\9eРÐ\90Ð\93\9eЦ_Ð\9aÐ\95РÐ\9bÐ\90ЧУ_Ð\94Ð\95Ð\9aЪÐ\90Ð\9d__', '__ССЫÐ\9bÐ\9aÐ\90\9dÐ\90\9dÐ\9eÐ\92ЫÐ\99_РÐ\90Ð\97Ð\94Ð\95Ð\9b__', '__NEWSECTIONLINK__' ),
-       'nonewsectionlink'          => array( '1', '__Ð\99Ð\9eЦÐ\90Ш_ХЬÐ\90Ð\96Ð\9eРÐ\90Ð\93\9eЦ_Ð\9aÐ\95РÐ\9bÐ\90ЧУ_Ð\94Ð\95Ð\9aЪÐ\90Ð\9d__', '__Ð\91Ð\95Ð\97_ССЫÐ\9bÐ\9aÐ\98\9dÐ\90\9dÐ\9eÐ\92ЫÐ\99_РÐ\90Ð\97Ð\94Ð\95Ð\9b__', '__NONEWSECTIONLINK__' ),
+       'newsectionlink'            => array( '1', '__ХЬАЖОРГ_ОЦ_КЕРЛАЧУ_ДЕКЪАН__', '__ССЫЛКА_НА_НОВЫЙ_РАЗДЕЛ__', '__NEWSECTIONLINK__' ),
+       'nonewsectionlink'          => array( '1', '__ЙОЦАШ_ХЬАЖОРГ_ОЦ_КЕРЛАЧУ_ДЕКЪАН__', '__БЕЗ_ССЫЛКИ_НА_НОВЫЙ_РАЗДЕЛ__', '__NONEWSECTIONLINK__' ),
        'currentversion'            => array( '1', 'ЙОЛШЙОЛУ_БАШХО', 'ТЕКУЩАЯ_ВЕРСИЯ', 'CURRENTVERSION' ),
        'urlencode'                 => array( '0', 'ИШАРЙИНА_МЕТТИГ:', 'ЗАКОДИРОВАННЫЙ_АДРЕС:', 'URLENCODE:' ),
        'anchorencode'              => array( '0', 'ИШАРЙАР_МЕТТИГАН', 'КОДИРОВАТЬ_МЕТКУ', 'ANCHORENCODE' ),
@@ -289,23 +289,23 @@ $magicWords = array(
        'directionmark'             => array( '1', 'ХЬАЖОЧЕ_ХААМ', 'НАПРАВЛЕНИЕ_ПИСЬМА', 'DIRECTIONMARK', 'DIRMARK' ),
        'language'                  => array( '0', '#МОТТ', '#ЯЗЫК:', '#LANGUAGE:' ),
        'contentlanguage'           => array( '1', 'МОТТ_ЧУЛАЦАМ', 'ЯЗЫК_СОДЕРЖАНИЯ', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
-       'pagesinnamespace'          => array( '1', 'АГlОНАШ_ОЦ_ЦlЕРАШКАХЬ:', 'СТРАНИЦ_В_ПРОСТРАНСТВЕ_ИМЁН:', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
+       'pagesinnamespace'          => array( '1', 'АГӀОНАШ_ОЦ_ЦӀЕРАШКАХЬ:', 'СТРАНИЦ_В_ПРОСТРАНСТВЕ_ИМЁН:', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
        'numberofadmins'            => array( '1', 'КУЬГАЛХОЙ_ДУКХАЛЛА', 'КОЛИЧЕСТВО_АДМИНИСТРАТОРОВ', 'NUMBEROFADMINS' ),
        'formatnum'                 => array( '0', 'ТЕРАХЬАН_БАРАМХlОТТОР', 'ФОРМАТИРОВАТЬ_ЧИСЛО', 'FORMATNUM' ),
        'padleft'                   => array( '0', 'ЙУЗА_ХАРЦЕ', 'ЗАПОЛНИТЬ_СЛЕВА', 'PADLEFT' ),
        'padright'                  => array( '0', 'ЙУЗА_БАКЪЕ', 'ЗАПОЛНИТЬ_СПРАВА', 'PADRIGHT' ),
-       'special'                   => array( '0', 'белхан', 'гlуллакхан', 'служебная', 'special' ),
+       'special'                   => array( '0', 'белхан', 'гӀуллакхан', 'служебная', 'special' ),
        'defaultsort'               => array( '1', 'ЛИСТАР_ЦАХЬЕХОР', 'ДОГlА_ЛИСТАРАН', 'СОРТИРОВКА_ПО_УМОЛЧАНИЮ', 'КЛЮЧ_СОРТИРОВКИ', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
-       'filepath'                  => array( '0', 'Ð\9eЦ_Ð¥lУÐ\9cÐ\90Ð\9dТlЕ_НЕКЪ:', 'ПУТЬ_К_ФАЙЛУ:', 'FILEPATH:' ),
+       'filepath'                  => array( '0', 'ФÐ\90Ð\99Ð\9bÐ\90Ð\9d_ТÓ\80Е_НЕКЪ:', 'ПУТЬ_К_ФАЙЛУ:', 'FILEPATH:' ),
        'tag'                       => array( '0', 'къастам', 'къасто', 'къаст', 'метка', 'тег', 'тэг', 'tag' ),
-       'hiddencat'                 => array( '1', '__Ð\9aЪÐ\90Ð\99Ð\9bÐ\90Ð¥Ð\99Ð\9eÐ\9bУ_Ð\9aÐ\90Ð\94Ð\95Ð\93Ð\90Р__', '__СКРЫТАЯ_КАТЕГОРИЯ__', '__HIDDENCAT__' ),
-       'pagesincategory'           => array( '1', 'Ð\90Ð\93\9eÐ\9dÐ\90Ш_Ð\9eЦУ_Ð\9aÐ\90Ð\94Ð\95Ð\93Ð\90РШЧÐ\9eХЬ', 'СТРАНИЦ_В_КАТЕГОРИИ', 'PAGESINCATEGORY', 'PAGESINCAT' ),
+       'hiddencat'                 => array( '1', '__Ð\9aЪÐ\90Ð\99Ð\9bÐ\90Ð¥Ð\90\99Ð\9eÐ\9bУ_Ð\9aÐ\90ТÐ\95Ð\93Ð\9eРÐ\98__', '__СКРЫТАЯ_КАТЕГОРИЯ__', '__HIDDENCAT__' ),
+       'pagesincategory'           => array( '1', 'Ð\9aÐ\90ТÐ\95Ð\93Ð\9eРÐ\98_ЧÐ\9eХЬ_Ð\90Ð\93Ó\80Ð\9eÐ\9dÐ\90Ш_', 'СТРАНИЦ_В_КАТЕГОРИИ', 'PAGESINCATEGORY', 'PAGESINCAT' ),
        'pagesize'                  => array( '1', 'АГlОН_БАРАМ', 'РАЗМЕР_СТРАНИЦЫ', 'PAGESIZE' ),
        'index'                     => array( '1', '__МЕТТИГТЕРАХЬ__', '__ИНДЕКС__', '__INDEX__' ),
        'noindex'                   => array( '1', '__МЕТТИГТЕРАХЬ_ЙОЦАШ__', '__БЕЗ_ИНДЕКСА__', '__NOINDEX__' ),
        'numberingroup'             => array( '1', 'ТЕРАХЬ_ОЦ_ТОБАНЦА', 'ЧИСЛО_В_ГРУППЕ', 'NUMBERINGROUP', 'NUMINGROUP' ),
-       'staticredirect'            => array( '1', '__Ð\91УХÐ\95ХЬÐ\94Ð\95РÐ\93\94\90СХЬÐ\90Ð\96Ð\90Ð\99Ð\90Р__', '__СТАТИЧЕСКОЕ_ПЕРЕНАПРАВЛЕНИЕ__', '__STATICREDIRECT__' ),
-       'protectionlevel'           => array( '1', 'ГlАРОЛЛИ_БАРАМ', 'УРОВЕНЬ_ЗАЩИТЫ', 'PROTECTIONLEVEL' ),
+       'staticredirect'            => array( '1', '__СТÐ\90ТÐ\98СТÐ\98Ð\9aÐ\98Ð\9d\94Ó\80Ð\90СХЬÐ\90Ð\96Ð\9eРÐ\93__', '__СТАТИЧЕСКОЕ_ПЕРЕНАПРАВЛЕНИЕ__', '__STATICREDIRECT__' ),
+       'protectionlevel'           => array( '1', 'ГӀАРОЛЛИ_БАРАМ', 'УРОВЕНЬ_ЗАЩИТЫ', 'PROTECTIONLEVEL' ),
        'formatdate'                => array( '0', 'терахьибарам', 'форматдаты', 'formatdate', 'dateformat' ),
        'url_path'                  => array( '0', 'ЙОМА', 'ПУТЬ', 'PATH' ),
        'url_wiki'                  => array( '0', 'ЧЕХКА', 'ВИКИ', 'WIKI' ),
index 6595543..a7267dd 100644 (file)
@@ -52,7 +52,7 @@ $specialPageAliases = array(
        'Booksources'               => array( 'سەرچاوەکانی_کتێب' ),
        'BrokenRedirects'           => array( 'ڕەوانکەرە_شکاوەکان' ),
        'Categories'                => array( 'پۆلەکان' ),
-       'ChangePassword'            => array( 'تێپەڕوشەگۆڕان،_تێپەڕەوشە_ڕێکخستنەوە' ),
+       'ChangePassword'            => array( 'تێپەڕوشەگۆڕان،ڕێکخستنەوەی_تێپەڕوشە' ),
        'Confirmemail'              => array( 'بڕواکردن_ئیمەیل' ),
        'Contributions'             => array( 'بەشدارییەکان' ),
        'CreateAccount'             => array( 'دروستکردنی_ھەژمار' ),
@@ -69,6 +69,7 @@ $specialPageAliases = array(
        'Log'                       => array( 'لۆگ' ),
        'Lonelypages'               => array( 'پەڕە_تاکەکان،_پەڕە_ھەتیوکراوەکان' ),
        'Longpages'                 => array( 'پەڕە_درێژەکان' ),
+       'MergeHistory'              => array( 'کردنەیەکی_مێژوو' ),
        'Mostcategories'            => array( 'زیاترین_پۆلەکان' ),
        'Mostimages'                => array( 'پەڕگەکانی_زیاترین_بەستەردراون،_زیاترین_پەڕگەکان،_زیاترین_وێنەکان' ),
        'Mostlinked'                => array( 'پەڕەکانی_زیاترین_بەستەردراون،_زیاترین_بەستەردراون' ),
@@ -78,7 +79,7 @@ $specialPageAliases = array(
        'Movepage'                  => array( 'گواستنەوەی_پەڕە' ),
        'Mycontributions'           => array( 'بەشدارییەکانم' ),
        'Mypage'                    => array( 'پەڕەکەم' ),
-       'Mytalk'                    => array( 'لێدوانەکانم' ),
+       'Mytalk'                    => array( 'لێدوانەکەم' ),
        'Newimages'                 => array( 'پەڕگە_نوێکان' ),
        'Newpages'                  => array( 'پەڕە_نوێکان' ),
        'Popularpages'              => array( 'پەڕە_ناودارەکان' ),
index 95f1719..e0848d0 100644 (file)
@@ -42,6 +42,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'MediaWiki-Systemnachrichten', 'Systemnachrichten' ),
        'AllMyUploads'              => array( 'Alle_meine_Dateien' ),
        'Allpages'                  => array( 'Alle_Seiten' ),
+       'ApiHelp'                   => array( 'API-Hilfe' ),
        'Ancientpages'              => array( 'Älteste_Seiten' ),
        'Badtitle'                  => array( 'Ungültiger_Seitenname' ),
        'Blankpage'                 => array( 'Leerseite', 'Leere_Seite' ),
@@ -57,6 +58,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'Benutzerkonto_anlegen' ),
        'Deadendpages'              => array( 'Sackgassenseiten' ),
        'DeletedContributions'      => array( 'Gelöschte_Beiträge' ),
+       'Diff'                      => array( 'Unterschied' ),
        'DoubleRedirects'           => array( 'Doppelte_Weiterleitungen' ),
        'EditWatchlist'             => array( 'Beobachtungsliste_bearbeiten' ),
        'Emailuser'                 => array( 'E-Mail_senden', 'Mailen', 'E-Mail' ),
@@ -75,11 +77,13 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'Dateien', 'Dateiliste' ),
        'Listgrouprights'           => array( 'Gruppenrechte' ),
        'Listredirects'             => array( 'Weiterleitungen' ),
+       'ListDuplicatedFiles'       => array( 'Dateiduplikate' ),
        'Listusers'                 => array( 'Benutzer', 'Benutzerliste' ),
        'Lockdb'                    => array( 'Datenbank_sperren' ),
        'Log'                       => array( 'Logbuch' ),
        'Lonelypages'               => array( 'Verwaiste_Seiten' ),
        'Longpages'                 => array( 'Längste_Seiten' ),
+       'MediaStatistics'           => array( 'Medienstatistiken' ),
        'MergeHistory'              => array( 'Versionsgeschichten_vereinen' ),
        'MIMEsearch'                => array( 'MIME-Typ-Suche' ),
        'Mostcategories'            => array( 'Meistkategorisierte_Seiten' ),
@@ -98,6 +102,7 @@ $specialPageAliases = array(
        'Newimages'                 => array( 'Neue_Dateien' ),
        'Newpages'                  => array( 'Neue_Seiten' ),
        'PagesWithProp'             => array( 'Seiten_mit_Eigenschaften' ),
+       'PageLanguage'              => array( 'Seitensprache' ),
        'PasswordReset'             => array( 'Passwort_neu_vergeben' ),
        'PermanentLink'             => array( 'Permanenter_Link', 'Permalink' ),
        'Popularpages'              => array( 'Beliebteste_Seiten' ),
@@ -106,18 +111,20 @@ $specialPageAliases = array(
        'Protectedpages'            => array( 'Geschützte_Seiten' ),
        'Protectedtitles'           => array( 'Geschützte_Titel', 'Gesperrte_Titel' ),
        'Randompage'                => array( 'Zufällige_Seite' ),
-       'RandomInCategory'          => array( 'Zufällige_Seite_in_Kategorie' ),
+       'RandomInCategory'          => array( 'Zufällig_in_Kategorie' ),
        'Randomredirect'            => array( 'Zufällige_Weiterleitung' ),
        'Recentchanges'             => array( 'Letzte_Änderungen' ),
        'Recentchangeslinked'       => array( 'Änderungen_an_verlinkten_Seiten' ),
        'Redirect'                  => array( 'Weiterleitung' ),
        'ResetTokens'               => array( 'Tokens_zurücksetzen' ),
        'Revisiondelete'            => array( 'Versionslöschung' ),
+       'RunJobs'                   => array( 'Aufträge_ausführen' ),
        'Search'                    => array( 'Suche' ),
        'Shortpages'                => array( 'Kürzeste_Seiten' ),
        'Specialpages'              => array( 'Spezialseiten' ),
        'Statistics'                => array( 'Statistik' ),
        'Tags'                      => array( 'Markierungen' ),
+       'TrackingCategories'        => array( 'Tracking-Kategorien' ),
        'Unblock'                   => array( 'Freigeben' ),
        'Uncategorizedcategories'   => array( 'Nicht_kategorisierte_Kategorien' ),
        'Uncategorizedimages'       => array( 'Nicht_kategorisierte_Dateien' ),
@@ -178,7 +185,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'BENUTZERANZAHL', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'AKTIVE_BENUTZER', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'BEARBEITUNGSANZAHL', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'BETRACHTUNGEN', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'SEITENNAME', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'SEITENNAME_URL', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'NAMENSRAUM', 'NAMESPACE' ),
@@ -290,6 +296,7 @@ $magicWords = array(
        'numberingroup'             => array( '1', 'BENUTZER_IN_GRUPPE', 'NUMBERINGROUP', 'NUMINGROUP' ),
        'staticredirect'            => array( '1', '__PERMANENTE_WEITERLEITUNG__', '__STATICREDIRECT__' ),
        'protectionlevel'           => array( '1', 'SCHUTZSTATUS', 'PROTECTIONLEVEL' ),
+       'cascadingsources'          => array( '1', 'KASKADENQUELLEN', 'CASCADINGSOURCES' ),
        'formatdate'                => array( '0', 'DATUMSFORMAT', 'formatdate', 'dateformat' ),
        'url_path'                  => array( '0', 'PFAD', 'PATH' ),
        'url_query'                 => array( '0', 'ABFRAGE', 'QUERY' ),
index 70e4de3..445aba0 100644 (file)
@@ -54,87 +54,94 @@ $namespaceAliases = array(
 );
 
 $specialPageAliases = array(
-       'Activeusers'               => array( 'KarberéAktivi' ),
-       'Allmessages'               => array( 'MesaciPéro' ),
-       'AllMyUploads'              => array( 'DosyeyMı' ),
-       'Allpages'                  => array( 'PeriPéro' ),
-       'Ancientpages'              => array( 'PeKehani' ),
-       'Badtitle'                  => array( 'SernameyoXirab' ),
-       'Blankpage'                 => array( 'PeréVengi' ),
-       'Block'                     => array( 'Bloke', 'BlokeIP', 'BlokeyéKarberi' ),
-       'Booksources'               => array( 'Ã\87ımeyéKıtabi' ),
-       'BrokenRedirects'           => array( 'HetenayışoXırab' ),
+       'Activeusers'               => array( 'KarberêAktifi' ),
+       'Allmessages'               => array( 'MesaciPêro' ),
+       'AllMyUploads'              => array( 'BarkerdışêMıPêro', 'DosyeyêMıPêro' ),
+       'Allpages'                  => array( 'PeliPêro' ),
+       'Ancientpages'              => array( 'PeKehani' ),
+       'Badtitle'                  => array( 'SernameyoXırabın' ),
+       'Blankpage'                 => array( 'PelaVenge' ),
+       'Block'                     => array( 'KılitKe', 'IPyKılitKe', 'KarberiKılitKe' ),
+       'Booksources'               => array( 'Ã\87ımeyêKıtabi' ),
+       'BrokenRedirects'           => array( 'SerberdışêXırabıni' ),
        'Categories'                => array( 'Kategoriy' ),
-       'ChangeEmail'               => array( 'EpostaVurnayış' ),
-       'ChangePassword'            => array( 'ParolaBıvırn', 'ParolaResetk' ),
-       'ComparePages'              => array( 'PeraAteberd' ),
-       'Confirmemail'              => array( 'EpostaAraştk' ),
-       'Contributions'             => array( 'Dekerdışi' ),
-       'CreateAccount'             => array( 'HesabVıraz' ),
-       'Deadendpages'              => array( 'PeréMerdey' ),
-       'DeletedContributions'      => array( 'DekerdışékBesterneyayé' ),
-       'DoubleRedirects'           => array( 'HetenayışoDilet' ),
-       'EditWatchlist'             => array( 'VırnayışanéListeyaTemaşek' ),
-       'Emailuser'                 => array( 'EpostayaKarberi' ),
-       'ExpandTemplates'           => array( 'ŞablonaHerake' ),
-       'Export'                    => array( 'Ateberd' ),
-       'Fewestrevisions'           => array( 'TewrtaynRewizyoni' ),
-       'FileDuplicateSearch'       => array( 'KopyadosyaCigérayış', 'DiletdosyaCigérayış' ),
-       'Filepath'                  => array( 'RayaDosya', 'CayDosya' ),
-       'Import'                    => array( 'Azerek' ),
-       'Invalidateemail'           => array( 'EpostayaBetale' ),
-       'BlockList'                 => array( 'ListeyaBloki', 'ListeyaBlokan', 'ListeyaBlokeyéIPi' ),
-       'LinkSearch'                => array( 'GireCıgeyrayış' ),
-       'Listadmins'                => array( 'ListeyaHeténkaran' ),
-       'Listbots'                  => array( 'ListeyaBotan' ),
-       'Listfiles'                 => array( 'ListeyDosyayan', 'DosyayaListek', 'ListeyResiman' ),
-       'Listgrouprights'           => array( 'ListeyaHeqanéGruban', 'HeqéGrubéKarberan' ),
-       'Listredirects'             => array( 'ListeyaArézekerdışan' ),
-       'Listusers'                 => array( 'ListeyaKarberan', 'KarberaListek' ),
+       'ChangeEmail'               => array( 'EposteBıvurne' ),
+       'ChangePassword'            => array( 'ParolaBıvurne', 'ParolaEyarKe' ),
+       'ComparePages'              => array( 'PerranTêverşane' ),
+       'Confirmemail'              => array( 'EposteQebulKe' ),
+       'Contributions'             => array( 'İştıraki' ),
+       'CreateAccount'             => array( 'HesabVıraze' ),
+       'Deadendpages'              => array( 'PelêBêgırey' ),
+       'DeletedContributions'      => array( 'İştırakêEsteriyay' ),
+       'Diff'                      => array( 'Ferq' ),
+       'DoubleRedirects'           => array( 'SerberdışoDılet' ),
+       'EditWatchlist'             => array( 'ListaSeyrkerdışiBıvurne' ),
+       'Emailuser'                 => array( 'EposteBırışe' ),
+       'ExpandTemplates'           => array( 'ŞablonanHeraKe' ),
+       'Export'                    => array( 'BereTeber' ),
+       'Fewestrevisions'           => array( 'TewrŞenıkÇımraviyarnayışi' ),
+       'FileDuplicateSearch'       => array( 'CıgeyrayışêDosyayaKopyakerdiye', 'CıgeyrayışêDosyayaDılete' ),
+       'Filepath'                  => array( 'RayaDosya', 'CayêDosya' ),
+       'Import'                    => array( 'BiyaZerre' ),
+       'Invalidateemail'           => array( 'EposteyBıtexelne' ),
+       'JavaScriptTest'            => array( 'TestêJavaScripti' ),
+       'BlockList'                 => array( 'ListaKılitkerdışi', 'ListaKılitkerdışan', 'ListaKılitkerdışêIPyan' ),
+       'LinkSearch'                => array( 'CıgeyrayışêGırey' ),
+       'Listadmins'                => array( 'İdarekaranListeKe' ),
+       'Listbots'                  => array( 'BotanListeKe' ),
+       'Listfiles'                 => array( 'DosyeyanListeKe', 'ListaDosya', 'ListaResıman' ),
+       'Listgrouprights'           => array( 'HeqanêGrubanListeKe', 'HeqêGrubaKarberan' ),
+       'Listredirects'             => array( 'ListaSerberdışan' ),
+       'ListDuplicatedFiles'       => array( 'KopyayaListanêDosyeyan' ),
+       'Listusers'                 => array( 'ListaKarberan', 'KarberanListeKe' ),
        'Lockdb'                    => array( 'DBKilitk' ),
        'Log'                       => array( 'Qeyd', 'Qeydi' ),
-       'Lonelypages'               => array( 'PeréBéwayıri' ),
-       'Longpages'                 => array( 'PeréDergi' ),
-       'MergeHistory'              => array( 'VerénanPétewrke' ),
-       'MIMEsearch'                => array( 'NIMECıgeyrayış' ),
-       'Mostcategories'            => array( 'TewrvéşiKategoriyıni' ),
-       'Mostimages'                => array( 'DosyeyékeCırévéşiGreDeyayo' ),
-       'Mostinterwikis'            => array( 'TewrvéşiTeberwiki' ),
-       'Mostlinked'                => array( 'PerékeCırévéşiGreDeyayo' ),
-       'Mostlinkedcategories'      => array( 'KategoriyayékeCırévéşiGreDeyayo' ),
-       'Mostlinkedtemplates'       => array( 'ŞablonékeCırévéşiGreDeyayo' ),
-       'Mostrevisions'             => array( 'TewrvéşiRevizyon' ),
-       'Movepage'                  => array( 'PelerBeré' ),
-       'Mycontributions'           => array( 'DekerdenéMe' ),
-       'MyLanguage'                => array( 'ZıwaneMe' ),
-       'Mypage'                    => array( 'PeréMe' ),
-       'Mytalk'                    => array( 'VatenayışéMe' ),
-       'Myuploads'                 => array( 'BarkerdışéMe' ),
-       'Newimages'                 => array( 'DosyeyéNewey', 'ResiméNewey' ),
-       'Newpages'                  => array( 'PeréNewey' ),
-       'PasswordReset'             => array( 'ParolaResetkerdış' ),
-       'PermanentLink'             => array( 'GreyoDaimi' ),
-       'Popularpages'              => array( 'PeréPopuleri' ),
+       'Lonelypages'               => array( 'PelêBêwayıri' ),
+       'Longpages'                 => array( 'PelêDergi' ),
+       'MergeHistory'              => array( 'VerênanPêtewrKe' ),
+       'MIMEsearch'                => array( 'MIMECıgeyrayış' ),
+       'Mostcategories'            => array( 'TewrvêşiKategoriy' ),
+       'Mostimages'                => array( 'DosyeyêKeCırêvêşiGıredayiyê' ),
+       'Mostinterwikis'            => array( 'TewrvêşiTeberwikiy' ),
+       'Mostlinked'                => array( 'PelêKeCırêvêşiGıredayiyê' ),
+       'Mostlinkedcategories'      => array( 'KategoriyêKeCırêvêşiGıredayiyê' ),
+       'Mostlinkedtemplates'       => array( 'ŞablonêKeCırêvêşiGıredayiyê' ),
+       'Mostrevisions'             => array( 'TewrvêşiÇımraviyarnayışi' ),
+       'Movepage'                  => array( 'PeleBere' ),
+       'Mycontributions'           => array( 'İştırakêMı' ),
+       'MyLanguage'                => array( 'ZıwanêMı' ),
+       'Mypage'                    => array( 'PelaMı' ),
+       'Mytalk'                    => array( 'WerênayışêMı' ),
+       'Myuploads'                 => array( 'BarkerdışêMı' ),
+       'Newimages'                 => array( 'DosyeyêNewey', 'ResımêNewey' ),
+       'Newpages'                  => array( 'PelêNewey' ),
+       'PageLanguage'              => array( 'Zıwanê_Pele' ),
+       'PasswordReset'             => array( 'ParolaPeysereştış' ),
+       'PermanentLink'             => array( 'GıreyoDaimi' ),
+       'Popularpages'              => array( 'PelêPopuleri' ),
        'Preferences'               => array( 'Tercihi' ),
-       'Prefixindex'               => array( 'SerVerole' ),
-       'Protectedpages'            => array( 'PerékeStaryayé' ),
-       'Protectedtitles'           => array( 'SernameyékeStaryayé' ),
-       'Randompage'                => array( 'Raştameye', 'PelayakeRaştamé' ),
-       'RandomInCategory'          => array( 'KategoriyaXoseri' ),
-       'Randomredirect'            => array( 'HetenayışoRaştameye' ),
-       'Recentchanges'             => array( 'VırnayışéPeyéni' ),
-       'Recentchangeslinked'       => array( 'GreyéVırnayışéPeyénan' ),
-       'Redirect'                  => array( 'Hetenayış' ),
-       'Revisiondelete'            => array( 'RewizyoniBesterne' ),
+       'Prefixindex'               => array( 'VerbendZerrek' ),
+       'Protectedpages'            => array( 'PelêKeŞevekiyayiyé' ),
+       'Protectedtitles'           => array( 'SernameyêKeŞevekiyayiyê' ),
+       'Randompage'                => array( 'Raştameye', 'PelaRaştameyiye' ),
+       'RandomInCategory'          => array( 'KategoriyaRaştameyiye' ),
+       'Randomredirect'            => array( 'SerberdışoRaştameye' ),
+       'Recentchanges'             => array( 'VurnayışêPeyêni' ),
+       'Recentchangeslinked'       => array( 'GıreyêVurnayışêPeyênan' ),
+       'Redirect'                  => array( 'Serberdış' ),
+       'ResetTokens'               => array( 'SimgeyanPeyserberze' ),
+       'Revisiondelete'            => array( 'ÇımraviyarnayışiBestere' ),
+       'RunJobs'                   => array( 'KariBıgurene' ),
        'Search'                    => array( 'Cıgeyre' ),
-       'Shortpages'                => array( 'PeleyéKılmi' ),
-       'Specialpages'              => array( 'PeréBexsey' ),
+       'Shortpages'                => array( 'PelêKılmi' ),
+       'Specialpages'              => array( 'PelêXısusiy' ),
        'Statistics'                => array( 'İstatistiki' ),
        'Tags'                      => array( 'Etiketi' ),
+       'TrackingCategories'        => array( 'KategoriyêKeTeqibBenê' ),
        'Unblock'                   => array( 'BloqiWedarne' ),
        'Uncategorizedcategories'   => array( 'KategoriyayékeKategoriyanébiyé' ),
        'Uncategorizedimages'       => array( 'DosyeyékeKategoriyanébiyé' ),
-       'Uncategorizedpages'        => array( 'PeleyékeKategoriyanébiyé' ),
+       'Uncategorizedpages'        => array( 'PerreyékeKategoriyanébiyé' ),
        'Uncategorizedtemplates'    => array( 'ŞablonékeKategoriyanébiyé' ),
        'Undelete'                  => array( 'Peyserbiya' ),
        'Unlockdb'                  => array( 'DBKılitiAk' ),
@@ -150,10 +157,10 @@ $specialPageAliases = array(
        'Version'                   => array( 'Versiyon' ),
        'Wantedcategories'          => array( 'KategoriyayékeWazéné' ),
        'Wantedfiles'               => array( 'DosyeyékeWazéné' ),
-       'Wantedpages'               => array( 'PerékeWazéné' ),
+       'Wantedpages'               => array( 'PerrékeWazéné' ),
        'Wantedtemplates'           => array( 'ŞablonékeWazéné' ),
        'Watchlist'                 => array( 'ListeySeyran' ),
-       'Whatlinkshere'             => array( 'PerarêGre' ),
+       'Whatlinkshere'             => array( 'GreyNaySeraşıno' ),
        'Withoutinterwiki'          => array( 'Béİnterwiki' ),
 );
 
@@ -171,18 +178,18 @@ $magicWords = array(
        'currentmonthabbrev'        => array( '1', 'AŞMİYANEWKİKILMKERDIŞ', 'CURRENTMONTHABBREV' ),
        'currentday'                => array( '1', 'ROCENEWKİ', 'CURRENTDAY' ),
        'currentday2'               => array( '1', 'ROCENEWKİ2', 'CURRENTDAY2' ),
-       'currentdayname'            => array( '1', 'NAMEYÃ\8aROCENEWKİ', 'CURRENTDAYNAME' ),
+       'currentdayname'            => array( '1', 'NAMEYÃ\89ROCENEWKİ', 'CURRENTDAYNAME' ),
        'currentyear'               => array( '1', 'SERRENEWKİ', 'CURRENTYEAR' ),
        'currenttime'               => array( '1', 'DEMENEWKİ', 'CURRENTTIME' ),
        'currenthour'               => array( '1', 'SEHATNEWKİ', 'CURRENTHOUR' ),
        'localmonth'                => array( '1', 'WAREYAŞMİ', 'WAREYAŞMİ2', 'LOCALMONTH', 'LOCALMONTH2' ),
        'localmonth1'               => array( '1', 'WAREYAŞMİ1', 'LOCALMONTH1' ),
-       'localmonthname'            => array( '1', 'NAMEYÃ\8aWAREYAŞMİ', 'LOCALMONTHNAME' ),
-       'localmonthnamegen'         => array( '1', 'NAMEYWAREDÃ\8aAŞMİDACI', 'LOCALMONTHNAMEGEN' ),
+       'localmonthname'            => array( '1', 'NAMEYÃ\89WAREYAŞMİ', 'LOCALMONTHNAME' ),
+       'localmonthnamegen'         => array( '1', 'NAMEYWAREDÃ\89AŞMİDACI', 'LOCALMONTHNAMEGEN' ),
        'localmonthabbrev'          => array( '1', 'WAREYAŞMİKILMKERDIŞ', 'LOCALMONTHABBREV' ),
        'localday'                  => array( '1', 'WAREYROCE', 'LOCALDAY' ),
        'localday2'                 => array( '1', 'WAREYROCE2', 'LOCALDAY2' ),
-       'localdayname'              => array( '1', 'NAMEYÃ\8aWAREYROCE', 'LOCALDAYNAME' ),
+       'localdayname'              => array( '1', 'NAMEYÃ\89WAREYROCE', 'LOCALDAYNAME' ),
        'localyear'                 => array( '1', 'WAREYSERRE', 'LOCALYEAR' ),
        'localtime'                 => array( '1', 'WAREYDEME', 'LOCALTIME' ),
        'localhour'                 => array( '1', 'WAREYSEHAT', 'LOCALHOUR' ),
@@ -192,30 +199,31 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'AMARİYAKARBERAN', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'AMARİYAAKTİVKARBERAN', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'AMARİYAVURNAYIŞAN', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'AMARİYAMOCNAYIŞAN', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'NAMEYPELA', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'NAMEYPELAA', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'CANAME', 'NAMESPACE' ),
        'namespacee'                => array( '1', 'CANAMEE', 'NAMESPACEE' ),
        'namespacenumber'           => array( '1', 'AMARİYACANAME', 'NAMESPACENUMBER' ),
-       'talkspace'                 => array( '1', 'CAYÊWERÊNAYIŞİ', 'TALKSPACE' ),
-       'talkspacee'                => array( '1', 'CAYÊWERÊNAYIŞAN', 'TALKSPACEE' ),
-       'subjectspace'              => array( '1', 'CAYÊMESEL', 'CAYÊWESİQE', 'SUBJECTSPACE', 'ARTICLESPACE' ),
-       'subjectspacee'             => array( '1', 'CAYÊMESELAN', 'CAYÊWESİQAN', 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
-       'fullpagename'              => array( '1', 'NAMEYPELAPÊRO', 'FULLPAGENAME' ),
-       'fullpagenamee'             => array( '1', 'NAMEYPELAPÊRON', 'FULLPAGENAMEE' ),
-       'subpagename'               => array( '1', 'NAMEYBINPELA', 'SUBPAGENAME' ),
-       'subpagenamee'              => array( '1', 'NAMEYBINPELAA', 'SUBPAGENAMEE' ),
-       'basepagename'              => array( '1', 'NAMEYSERPELA', 'BASEPAGENAME' ),
-       'basepagenamee'             => array( '1', 'NAMEYSERPELAA', 'BASEPAGENAMEE' ),
-       'talkpagename'              => array( '1', 'NAMEYPELAWERÊNAYIŞ', 'TALKPAGENAME' ),
-       'talkpagenamee'             => array( '1', 'NAMEYPELAWERÊNAYIŞAN', 'TALKPAGENAMEE' ),
-       'subjectpagename'           => array( '1', 'NAMEYPELAMESEL', 'NAMEYPELAWESİQE', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
-       'subjectpagenamee'          => array( '1', 'NAMEYPELAMESELER', 'NAMEYPELAQESİQER', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
+       'talkspace'                 => array( '1', 'CAYÉVATENAYIŞİ', 'TALKSPACE' ),
+       'talkspacee'                => array( '1', 'CAYÉVATENAYIŞAN', 'TALKSPACEE' ),
+       'subjectspace'              => array( '1', 'CAYÉMESEL', 'CAYÉWESİQE', 'SUBJECTSPACE', 'ARTICLESPACE' ),
+       'subjectspacee'             => array( '1', 'CAYÉMESELAN', 'CAYÉWESİQAN', 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
+       'fullpagename'              => array( '1', 'NAMEYPERERPÉRO', 'FULLPAGENAME' ),
+       'fullpagenamee'             => array( '1', 'NAMEYPERERPÉRON', 'FULLPAGENAMEE' ),
+       'subpagename'               => array( '1', 'NAMEYBINPERER', 'SUBPAGENAME' ),
+       'subpagenamee'              => array( '1', 'NAMEYBINPERERAN', 'SUBPAGENAMEE' ),
+       'rootpagename'              => array( '1', 'NAMEYRÉÇERDAPERER', 'ROOTPAGENAME' ),
+       'rootpagenamee'             => array( '1', 'NAMEYRÉÇERDAPERAN', 'ROOTPAGENAMEE' ),
+       'basepagename'              => array( '1', 'NAMEYESASPERER', 'BASEPAGENAME' ),
+       'basepagenamee'             => array( '1', 'NAMEYESASPERAN', 'BASEPAGENAMEE' ),
+       'talkpagename'              => array( '1', 'NAMEYPERAVATENAYIŞİ', 'TALKPAGENAME' ),
+       'talkpagenamee'             => array( '1', 'NAMEYPERAVATENAYIŞAN', 'TALKPAGENAMEE' ),
+       'subjectpagename'           => array( '1', 'NAMEYPERDAMESEL', 'NAMEYPERDAWESİQE', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
+       'subjectpagenamee'          => array( '1', 'NAMEYPERDAMESELER', 'NAMEYPERDAWESİQER', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
        'msg'                       => array( '0', 'MSC', 'MSG:' ),
        'subst'                     => array( '0', 'KOPYAKE', 'ATEBERDE', 'SUBST:' ),
        'safesubst'                 => array( '0', 'EMELEYATEBERDE', 'SAFESUBST:' ),
-       'msgnw'                     => array( '0', 'MSJNW:', 'MSGNW:' ),
+       'msgnw'                     => array( '0', 'MSCNW:', 'MSGNW:' ),
        'img_thumbnail'             => array( '1', 'resmoqıckek', 'qıckek', 'thumbnail', 'thumb' ),
        'img_manualthumb'           => array( '1', 'resmoqıckek=$1', 'qıckek=$1', 'thumbnail=$1', 'thumb=$1' ),
        'img_right'                 => array( '1', 'raşt', 'right' ),
@@ -223,32 +231,35 @@ $magicWords = array(
        'img_none'                  => array( '1', 'çıniyo', 'none' ),
        'img_width'                 => array( '1', '$1pik', '$1piksel', '$1px' ),
        'img_center'                => array( '1', 'werte', 'miyan', 'center', 'centre' ),
-       'img_framed'                => array( '1', 'çerçeweya', 'çerçeweniyo', 'çerçewe', 'framed', 'enframed', 'frame' ),
-       'img_frameless'             => array( '1', 'bêçerçewe', 'frameless' ),
-       'img_page'                  => array( '1', 'pela=$1', 'pela_$1', 'page=$1', 'page $1' ),
+       'img_framed'                => array( '1', 'çerçeweyın', 'çerçewekerden', 'çerçewe', 'framed', 'enframed', 'frame' ),
+       'img_frameless'             => array( '1', 'béçerçewe', 'frameless' ),
+       'img_lang'                  => array( '1', 'zuwan=1$', 'lang=$1' ),
+       'img_page'                  => array( '1', 'pera=$1', 'pera_$1', 'page=$1', 'page $1' ),
        'img_upright'               => array( '1', 'disleg', 'disleg=$1', 'disleg_$1', 'upright', 'upright=$1', 'upright $1' ),
        'img_border'                => array( '1', 'sinor', 'border' ),
-       'img_baseline'              => array( '1', 'Sinorêerdi', 'baseline' ),
-       'img_sub'                   => array( '1', 'bın', 'sub' ),
-       'img_super'                 => array( '1', 'corên', 'cor', 'super', 'sup' ),
+       'img_baseline'              => array( '1', 'Sinoréerdi', 'baseline' ),
+       'img_sub'                   => array( '1', 'anvar', 'sub' ),
+       'img_super'                 => array( '1', 'corén', 'cor', 'super', 'sup' ),
        'img_top'                   => array( '1', 'gedug', 'top' ),
        'img_text_top'              => array( '1', 'gedug-metin', 'text-top' ),
        'img_middle'                => array( '1', 'merkez', 'middle' ),
        'img_bottom'                => array( '1', 'erd', 'bottom' ),
        'img_text_bottom'           => array( '1', 'erd-metin', 'text-bottom' ),
        'img_link'                  => array( '1', 'gre=$1', 'link=$1' ),
+       'img_alt'                   => array( '1', 'klik=$1', 'alt=$1' ),
+       'img_class'                 => array( '1', 'sınıf=$1', 'class=$1' ),
        'int'                       => array( '0', 'İNT:', 'INT:' ),
        'sitename'                  => array( '1', 'NAMEYSİTA', 'SITENAME' ),
        'ns'                        => array( '0', 'CN', 'NS:' ),
        'nse'                       => array( '0', 'CNV', 'NSE:' ),
        'localurl'                  => array( '0', 'LOKALGRE', 'LOCALURL:' ),
        'localurle'                 => array( '0', 'LOKALGREV', 'LOCALURLE:' ),
-       'articlepath'               => array( '0', 'SOPAWESİQAN', 'ARTICLEPATH' ),
-       'pageid'                    => array( '0', 'NIMREYPELA', 'PAGEID' ),
+       'articlepath'               => array( '0', 'SOPAPERAN', 'ARTICLEPATH' ),
+       'pageid'                    => array( '0', 'NIMREYPERER', 'PAGEID' ),
        'server'                    => array( '0', 'ARDEN', 'SERVER' ),
        'servername'                => array( '0', 'NAMEYARDEN', 'SERVERNAME' ),
        'scriptpath'                => array( '0', 'RAYASCRIPTİ', 'SCRIPTPATH' ),
-       'stylepath'                 => array( '0', 'TERZÃ\8aTEWRİ', 'STYLEPATH' ),
+       'stylepath'                 => array( '0', 'TERZÃ\89TEWRİ', 'STYLEPATH' ),
        'grammar'                   => array( '0', 'GRAMER:', 'GRAMMAR:' ),
        'gender'                    => array( '0', 'CİNSİYET:', 'GENDER:' ),
        'notitleconvert'            => array( '0', '__SERNAMEVURNAYIŞÇINO__', '__SVÇ__', '__NOTITLECONVERT__', '__NOTC__' ),
@@ -259,58 +270,59 @@ $magicWords = array(
        'localdow'                  => array( '1', 'WAREYROCAHEFTİ', 'LOCALDOW' ),
        'revisionid'                => array( '1', 'NIMREYREVİZYONİ', 'REVISIONID' ),
        'revisionday'               => array( '1', 'ROCAREVİZYONİ', 'REVISIONDAY' ),
-       'revisionday2'              => array( '1', 'ROCAREVİZYON1', 'REVISIONDAY2' ),
+       'revisionday2'              => array( '1', 'ROCAREVİZYON2', 'REVISIONDAY2' ),
        'revisionmonth'             => array( '1', 'AŞMAREVİZYONİ', 'REVISIONMONTH' ),
        'revisionmonth1'            => array( '1', 'AŞMAREVİZYONİ1', 'REVISIONMONTH1' ),
        'revisionyear'              => array( '1', 'SERRAREVİZYONİ', 'REVISIONYEAR' ),
-       'revisiontimestamp'         => array( '1', 'MELUMATÊREVİZYONÊDEMİ', 'REVISIONTIMESTAMP' ),
-       'revisionuser'              => array( '1', 'REVİZYONKARBER', 'REVISIONUSER' ),
+       'revisiontimestamp'         => array( '1', 'MALUMATAREVİZYONDADEMİ', 'REVISIONTIMESTAMP' ),
+       'revisionuser'              => array( '1', 'REVİZYONAKARBERİ', 'REVISIONUSER' ),
+       'revisionsize'              => array( '1', 'EBATAREVİZYONİ', 'REVISIONSIZE' ),
        'plural'                    => array( '0', 'ZAFEN:', 'PLURAL:' ),
-       'fullurl'                   => array( '0', 'GREPÊRO:', 'FULLURL:' ),
-       'fullurle'                  => array( '0', 'GREYOPÊRON:', 'FULLURLE:' ),
-       'canonicalurl'              => array( '0', 'GREYÃ\8aKANONİK:', 'CANONICALURL:' ),
+       'fullurl'                   => array( '0', 'GREHEME:', 'FULLURL:' ),
+       'fullurle'                  => array( '0', 'GREYHEME:', 'FULLURLE:' ),
+       'canonicalurl'              => array( '0', 'GREYÃ\89KANONİK:', 'CANONICALURL:' ),
        'canonicalurle'             => array( '0', 'GREYOKANONİK:', 'CANONICALURLE:' ),
        'lcfirst'                   => array( '0', 'KHİLK:', 'LCFIRST:' ),
        'ucfirst'                   => array( '0', 'BHİLK:', 'UCFIRST:' ),
        'lc'                        => array( '0', 'KH:', 'LC:' ),
        'uc'                        => array( '0', 'BH:', 'UC:' ),
-       'raw'                       => array( '0', 'XAM:', 'RAW:' ),
-       'displaytitle'              => array( '1', 'SERNAMİBIMOCNE', 'DISPLAYTITLE' ),
-       'newsectionlink'            => array( '1', '__GREYÃ\8aSERNAMEDÃ\8aNEWİ__', '__NEWSECTIONLINK__' ),
-       'nonewsectionlink'          => array( '1', '__GREYÃ\8aSERNAMEDÃ\8aNEWİÇINO__', '__NONEWSECTIONLINK__' ),
-       'currentversion'            => array( '1', 'VERSİYONÊNEWKİ', 'CURRENTVERSION' ),
-       'currenttimestamp'          => array( '1', 'WAREYSEHATÃ\8aNEWKİ', 'CURRENTTIMESTAMP' ),
-       'localtimestamp'            => array( '1', 'MALUMATÃ\8aWAREYSEHAT', 'LOCALTIMESTAMP' ),
+       'raw'                       => array( '0', 'TEZE:', 'RAW:' ),
+       'displaytitle'              => array( '1', 'SERNAMİBASNI', 'DISPLAYTITLE' ),
+       'newsectionlink'            => array( '1', '__GREYÃ\89SERNAMEDÃ\89NEWİ__', '__NEWSECTIONLINK__' ),
+       'nonewsectionlink'          => array( '1', '__GREYÃ\89SERNAMEDÃ\89NEWİÇINO__', '__NONEWSECTIONLINK__' ),
+       'currentversion'            => array( '1', 'VERSİYONVNEWKİ', 'CURRENTVERSION' ),
+       'currenttimestamp'          => array( '1', 'WAREYSEHATÃ\89NEWKİ', 'CURRENTTIMESTAMP' ),
+       'localtimestamp'            => array( '1', 'MALUMATÃ\89WAREYSEHAT', 'LOCALTIMESTAMP' ),
        'directionmark'             => array( '1', 'HETANIŞANKERDIŞ', 'HETNIŞAN', 'DIRECTIONMARK', 'DIRMARK' ),
-       'language'                  => array( '0', '#ZIWAN', '#LANGUAGE:' ),
-       'contentlanguage'           => array( '1', 'ZIWANÊESTİN', 'ZIWESTEN', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
-       'pagesinnamespace'          => array( '1', 'PELEYÊKECADÊNAMİDEYÊ', 'PELECN', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
-       'numberofadmins'            => array( '1', 'AMARİYAXİZMETKARAN', 'NUMBEROFADMINS' ),
+       'language'                  => array( '0', '#ZIWAN:', '#LANGUAGE:' ),
+       'contentlanguage'           => array( '1', 'ZUWANÉKESTÉ', 'ZUWESTEN', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
+       'pagesinnamespace'          => array( '1', 'PERÉKCADÉNAMİDEYÉ', 'PELECN', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
+       'numberofadmins'            => array( '1', 'AMARİYAADMİNAN', 'NUMBEROFADMINS' ),
        'formatnum'                 => array( '0', 'BABETNAYIŞ', 'FORMATNUM' ),
-       'padleft'                   => array( '0', 'ÇEPİPIRKE', 'PADLEFT' ),
-       'padright'                  => array( '0', 'RAŞTİPIRKE', 'PADRIGHT' ),
-       'special'                   => array( '0', 'xısusi', 'special' ),
-       'speciale'                  => array( '0', 'xısusiye', 'speciale' ),
+       'padleft'                   => array( '0', 'ÇEPİPIRK', 'PADLEFT' ),
+       'padright'                  => array( '0', 'RAŞTİPIRK', 'PADRIGHT' ),
+       'special'                   => array( '0', 'bağse', 'special' ),
+       'speciale'                  => array( '0', 'bağsiye', 'speciale' ),
        'defaultsort'               => array( '1', 'RATNAYIŞOHESBNAYIŞ', 'SIRMEYRATNAYIŞOHESBNAYIŞ', 'KATEGORİYARATNAYIŞOHESBNAYIŞ', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                  => array( '0', 'RAYADOSYA:', 'FILEPATH:' ),
        'tag'                       => array( '0', 'etiket', 'tag' ),
        'hiddencat'                 => array( '1', '__KATEGORİYANIMITİ__', '__HIDDENCAT__' ),
-       'pagesincategory'           => array( '1', 'PELEYÊKEKATEGORİDEYÊ', 'KATDÊPELEY', 'PAGESINCATEGORY', 'PAGESINCAT' ),
-       'pagesize'                  => array( '1', 'EBATÊPELA', 'PAGESIZE' ),
+       'pagesincategory'           => array( '1', 'PERÉKKATEGORİDEYÉ', 'PERKATMİYAN', 'PAGESINCATEGORY', 'PAGESINCAT' ),
+       'pagesize'                  => array( '1', 'EBATAPERER', 'PAGESIZE' ),
        'index'                     => array( '1', '__SERSIQ__', '__INDEX__' ),
        'noindex'                   => array( '1', '__SERSIQÇINYO__', '__NOINDEX__' ),
-       'numberingroup'             => array( '1', 'GRUBDEAMARE', 'AMARİYAGRUBER', 'NUMBERINGROUP', 'NUMINGROUP' ),
+       'numberingroup'             => array( '1', 'AMARİYAGRUBER', 'AMARGRUB', 'NUMBERINGROUP', 'NUMINGROUP' ),
        'staticredirect'            => array( '1', '__STATİKHETENAYIŞ__', '__STATICHETENAYIŞ__', '__STATICREDIRECT__' ),
-       'protectionlevel'           => array( '1', 'SEWİYEYÊSTARE', 'PROTECTIONLEVEL' ),
-       'formatdate'                => array( '0', 'demêformati', 'formatdate', 'dateformat' ),
+       'protectionlevel'           => array( '1', 'SEWİYEYASTARAN', 'PROTECTIONLEVEL' ),
+       'formatdate'                => array( '0', 'deméformati', 'formatdate', 'dateformat' ),
        'url_path'                  => array( '0', 'RAY', 'PATH' ),
        'url_wiki'                  => array( '0', 'WİKİ', 'WIKI' ),
        'url_query'                 => array( '0', 'PERSİYE', 'QUERY' ),
-       'defaultsort_noerror'       => array( '0', 'xırabinçıniya', 'noerror' ),
+       'defaultsort_noerror'       => array( '0', 'Ğırabinçıniya', 'noerror' ),
        'defaultsort_noreplace'     => array( '0', 'cewabçıniyo', 'noreplace' ),
-       'pagesincategory_all'       => array( '0', 'pêro', 'all' ),
-       'pagesincategory_pages'     => array( '0', 'peley', 'pages' ),
-       'pagesincategory_subcats'   => array( '0', 'bınkati', 'subcats' ),
+       'pagesincategory_all'       => array( '0', 'péro', 'all' ),
+       'pagesincategory_pages'     => array( '0', 'peri', 'pages' ),
+       'pagesincategory_subcats'   => array( '0', 'bınkatategori', 'subcats' ),
        'pagesincategory_files'     => array( '0', 'dosyey', 'files' ),
 );
 
index a6a64f6..0334344 100644 (file)
@@ -61,6 +61,7 @@ $namespaceAliases = array(
 $specialPageAliases = array(
        'Activeusers'               => array( 'ΕνεργοίΧρήστες' ),
        'Allmessages'               => array( 'ΌλαΤαΜηνύματα' ),
+       'AllMyUploads'              => array( 'ΌλαΤαΑρχείαΜου' ),
        'Allpages'                  => array( 'ΌλεςΟιΣελίδες' ),
        'Ancientpages'              => array( 'ΑρχαίεςΣελίδες' ),
        'Badtitle'                  => array( 'ΚακόςΤίτλος' ),
@@ -77,7 +78,9 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'ΔημιουργίαΛογαριασμού' ),
        'Deadendpages'              => array( 'ΑδιέξοδεςΣελίδες' ),
        'DeletedContributions'      => array( 'ΔιαγραμμένεςΣυνεισφορές' ),
+       'Diff'                      => array( 'Διαφορά' ),
        'DoubleRedirects'           => array( 'ΔιπλέςΑνακατευθύνσεις' ),
+       'EditWatchlist'             => array( 'ΕπεξεργασίαΛίσταςΠαρακολούθησης' ),
        'Emailuser'                 => array( 'EmailΧρήστη' ),
        'ExpandTemplates'           => array( 'ΕπέκτασηΠροτύπων' ),
        'Export'                    => array( 'Εξαγωγή' ),
@@ -111,15 +114,16 @@ $specialPageAliases = array(
        'MyLanguage'                => array( 'ΗΓλώσσαΜου' ),
        'Mypage'                    => array( 'ΗΣελίδαΜου' ),
        'Mytalk'                    => array( 'ΗΣυζήτησήΜου' ),
-       'Myuploads'                 => array( 'ΟιΕπιφορτώσειςΜου' ),
+       'Myuploads'                 => array( 'ΤαÎ\91Ï\81Ï\87είαÎ\9cοÏ\85', 'ΤαÎ\91νεβάÏ\83μαÏ\84άÎ\9cοÏ\85', 'Î\9fιÎ\95Ï\80ιÏ\86οÏ\81Ï\84Ï\8eÏ\83ειÏ\82Î\9cοÏ\85' ),
        'Newimages'                 => array( 'ΝέαΑρχεία', 'ΝέεςΕικόνες' ),
        'Newpages'                  => array( 'ΝέεςΣελίδες' ),
        'Popularpages'              => array( 'ΔημοφιλείςΣελίδες' ),
        'Preferences'               => array( 'Προτιμήσεις' ),
        'Prefixindex'               => array( 'ΕυρετήριοΠροθεμάτων' ),
        'Protectedpages'            => array( 'ΠροστατευμένεςΣελίδες' ),
-       'Protectedtitles'           => array( 'ΠροστετευμένοιΤίτλοι' ),
-       'Randompage'                => array( 'Τυχαία', 'ΤυχαίαΣελίδα' ),
+       'Protectedtitles'           => array( 'ΠροστατευμένοιΤίτλοι' ),
+       'Randompage'                => array( 'Τυχαία', 'ΤυχαίαΣελίδα', 'Τυχαίο' ),
+       'RandomInCategory'          => array( 'ΤυχαίαΣτηνΚατηγορία', 'ΤυχαίοΣτηνΚατηγορία' ),
        'Randomredirect'            => array( 'ΤυχαίαΑνακατεύθυνση' ),
        'Recentchanges'             => array( 'ΠρόσφατεςΑλλαγές' ),
        'Recentchangeslinked'       => array( 'ΣυνδεδεμένεςΠρόσφατεςΑλλαγές', 'ΣχετικέςΑλλαγές' ),
@@ -130,6 +134,7 @@ $specialPageAliases = array(
        'Specialpages'              => array( 'ΕιδικέςΣελίδες' ),
        'Statistics'                => array( 'Στατιστικά' ),
        'Tags'                      => array( 'Ετικέτες' ),
+       'TrackingCategories'        => array( 'ΚατηγορίεςΑνίχνευσης' ),
        'Uncategorizedcategories'   => array( 'ΑκατηγοριοποίητεςΚατηγορίες' ),
        'Uncategorizedimages'       => array( 'ΑκατηγοριοποίηταΑρχεία', 'ΑκατηγοριοποίητεςΕικόνες' ),
        'Uncategorizedpages'        => array( 'ΑκατηγοριοποίητεςΣελίδες' ),
@@ -140,7 +145,7 @@ $specialPageAliases = array(
        'Unusedimages'              => array( 'ΑχρησιμοποίηταΑρχεία' ),
        'Unusedtemplates'           => array( 'ΜηΧρησιμοποιούμεναΠρότυπα' ),
        'Unwatchedpages'            => array( 'ΜηΠαρακολουθούμενεςΣελίδες' ),
-       'Upload'                    => array( 'Επιφόρτωση' ),
+       'Upload'                    => array( 'Î\91νέβαÏ\83μα', 'Î\95Ï\80ιÏ\86Ï\8cÏ\81Ï\84Ï\89Ï\83η' ),
        'Userlogin'                 => array( 'ΣύνδεσηΧρήστη' ),
        'Userlogout'                => array( 'ΑποσύνδεσηΧρήστη' ),
        'Userrights'                => array( 'ΔικαιώματαΧρηστών' ),
@@ -189,7 +194,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'ΑΡΙΘΜΟΣΧΡΗΣΤΩΝ', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'ΕΝΕΡΓΟΙΧΡΗΣΤΕΣ', 'ΑΡΙΘΜΟΣΕΝΕΡΓΩΝΧΡΗΣΤΩΝ', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'ΑΡΙΘΜΟΣΕΠΕΞΕΡΓΑΣΙΩΝ', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'ΑΡΙΘΜΟΣΕΜΦΑΝΙΣΕΩΝ', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'ΟΝΟΜΑΣΕΛΙΔΑΣ', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'ΟΝΟΜΑΣΕΛΙΔΑΣΚ', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ΠΕΡΙΟΧΗ', 'NAMESPACE' ),
index 05f3be8..e31710b 100644 (file)
@@ -184,7 +184,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NOMBRODEUZANTOJ', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NOMBRODEAKTIVAJUZANTOJ', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NOMBRODEREDAKTOJ', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NOMBRODEVIZITOJ', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'PAĜONOMO', 'PAGXONOMO', 'PAĜNOMO', 'PAGXNOMO', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'PAĜONOMOO', 'PAGXONOMOO', 'PAĜNOMOO', 'PAGXNOMOO', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'NOMSPACO', 'NAMESPACE' ),
index e872d4e..52e363c 100644 (file)
@@ -39,12 +39,12 @@ $namespaceGenderAliases = array(
 
 $specialPageAliases = array(
        'Activeusers'               => array( 'UsuariosActivos' ),
-       'Allmessages'               => array( 'TodosLosMensajes' ),
-       'AllMyUploads'              => array( 'TodasMisSubidas', 'TodosMisArchivos' ),
+       'Allmessages'               => array( 'TodosLosMensajes', 'Todos_los_mensajes' ),
+       'AllMyUploads'              => array( 'TodasMisSubidas', 'Todas_mis_subidas', 'TodosMisArchivos', 'Todos_mis_archivos' ),
        'Allpages'                  => array( 'Todas', 'Todas_las_páginas' ),
        'Ancientpages'              => array( 'PáginasAntiguas', 'Páginas_antiguas' ),
        'Badtitle'                  => array( 'Título_incorrecto' ),
-       'Blankpage'                 => array( 'PáginaEnBlanco', 'BlanquearPágina', 'Blanquear_página', 'Página_en_blanco' ),
+       'Blankpage'                 => array( 'Blanquear_página', 'PáginaEnBlanco', 'BlanquearPágina', 'Página_en_blanco' ),
        'Block'                     => array( 'Bloquear' ),
        'Booksources'               => array( 'FuentesDeLibros', 'Fuentes_de_libros' ),
        'BrokenRedirects'           => array( 'RedireccionesRotas', 'Redirecciones_rotas' ),
@@ -56,7 +56,7 @@ $specialPageAliases = array(
        'Contributions'             => array( 'Contribuciones' ),
        'CreateAccount'             => array( 'Crear_una_cuenta', 'CrearCuenta' ),
        'Deadendpages'              => array( 'PáginasSinSalida', 'Páginas_sin_salida' ),
-       'DeletedContributions'      => array( 'ContribucionesBorradas', 'Contribuciones_Borradas' ),
+       'DeletedContributions'      => array( 'ContribucionesBorradas', 'Contribuciones_borradas', 'Contribuciones_Borradas' ),
        'DoubleRedirects'           => array( 'RedireccionesDobles', 'Redirecciones_dobles' ),
        'EditWatchlist'             => array( 'EditarSeguimiento' ),
        'Emailuser'                 => array( 'Enviar_correo_electrónico', 'MandarEmailUsuario' ),
@@ -66,7 +66,8 @@ $specialPageAliases = array(
        'FileDuplicateSearch'       => array( 'BuscarArchivosDuplicados', 'Buscar_archivos_duplicados' ),
        'Filepath'                  => array( 'RutaDeArchivo', 'Ruta_de_archivo' ),
        'Import'                    => array( 'Importar' ),
-       'Invalidateemail'           => array( 'InvalidarEmail', 'Invalidar_correo_electrónico' ),
+       'Invalidateemail'           => array( 'Invalidar_correo_electrónico', 'InvalidarEmail' ),
+       'JavaScriptTest'            => array( 'PruebaJavaScript' ),
        'BlockList'                 => array( 'UsuariosBloqueados', 'Lista_de_usuarios_bloqueados' ),
        'LinkSearch'                => array( 'BúsquedaDeEnlaces', 'Búsqueda_de_enlaces' ),
        'Listadmins'                => array( 'ListaDeAdministradores', 'Lista_de_administradores' ),
@@ -83,6 +84,7 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'BuscarPorMIME', 'Buscar_por_MIME' ),
        'Mostcategories'            => array( 'MásCategorizadas', 'Más_categorizadas' ),
        'Mostimages'                => array( 'MásImágenes', 'Con_más_imágenes' ),
+       'Mostinterwikis'            => array( 'MásInterwikis' ),
        'Mostlinked'                => array( 'MásEnlazados', 'Más_enlazados', 'MásEnlazadas' ),
        'Mostlinkedcategories'      => array( 'CategoríasMásUsadas', 'Categorías_más_usadas' ),
        'Mostlinkedtemplates'       => array( 'PlantillasMásUsadas', 'Plantillas_más_usadas' ),
@@ -103,7 +105,7 @@ $specialPageAliases = array(
        'Protectedpages'            => array( 'PáginasProtegidas', 'Páginas_protegidas' ),
        'Protectedtitles'           => array( 'TítulosProtegidos', 'Títulos_protegidos' ),
        'Randompage'                => array( 'Aleatoria', 'Aleatorio', 'Página_aleatoria' ),
-       'RandomInCategory'          => array( 'Aleatorio_en_categoría' ),
+       'RandomInCategory'          => array( 'Aleatorio_en_categoría', 'Aleatoria_en_categoría' ),
        'Randomredirect'            => array( 'RedirecciónAleatoria', 'Redirección_aleatoria' ),
        'Recentchanges'             => array( 'CambiosRecientes', 'Cambios_recientes' ),
        'Recentchangeslinked'       => array( 'CambiosEnEnlazadas', 'Cambios_en_enlazadas' ),
@@ -115,6 +117,7 @@ $specialPageAliases = array(
        'Specialpages'              => array( 'PáginasEspeciales', 'Páginas_especiales' ),
        'Statistics'                => array( 'Estadísticas' ),
        'Tags'                      => array( 'Etiquetas' ),
+       'TrackingCategories'        => array( 'CategoríasDeSeguimiento' ),
        'Unblock'                   => array( 'Desbloquear' ),
        'Uncategorizedcategories'   => array( 'CategoríasSinCategorizar', 'Categorías_sin_categorizar' ),
        'Uncategorizedimages'       => array( 'ImágenesSinCategorizar', 'Imágenes_sin_categorizar' ),
@@ -176,7 +179,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NÚMERODEUSUARIOS', 'NUMERODEUSUARIOS', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NÚMERODEUSUARIOSACTIVOS', 'NUMERODEUSUARIOSACTIVOS', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NÚMERODEEDICIONES', 'NUMERODEEDICIONES', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NÚMERODEVISTAS', 'NUMERODEVISTAS', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'NOMBREDEPAGINA', 'NOMBREDEPÁGINA', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'NOMBREDEPAGINAC', 'NOMBREDEPÁGINAC', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ESPACIODENOMBRE', 'NAMESPACE' ),
@@ -208,13 +210,19 @@ $magicWords = array(
        'img_center'                => array( '1', 'centro', 'centrado', 'centrada', 'centrar', 'center', 'centre' ),
        'img_framed'                => array( '1', 'marco', 'enmarcado', 'enmarcada', 'framed', 'enframed', 'frame' ),
        'img_frameless'             => array( '1', 'sinmarco', 'sin_enmarcar', 'sinenmarcar', 'frameless' ),
+       'img_lang'                  => array( '1', 'idioma=$1', 'lang=$1' ),
        'img_page'                  => array( '1', 'pagina=$1', 'página=$1', 'pagina_$1', 'página_$1', 'page=$1', 'page $1' ),
        'img_border'                => array( '1', 'borde', 'border' ),
+       'img_top'                   => array( '1', 'arriba', 'top' ),
+       'img_middle'                => array( '1', 'medio', 'middle' ),
+       'img_bottom'                => array( '1', 'abajo', 'bottom' ),
        'img_link'                  => array( '1', 'vínculo=$1', 'vinculo=$1', 'enlace=$1', 'link=$1' ),
        'sitename'                  => array( '1', 'NOMBREDELSITIO', 'SITENAME' ),
        'ns'                        => array( '0', 'EN:', 'NS:' ),
        'localurl'                  => array( '0', 'URLLOCAL:', 'LOCALURL:' ),
        'localurle'                 => array( '0', 'URLLOCALC:', 'LOCALURLE:' ),
+       'articlepath'               => array( '0', 'RUTAARTÍCULO', 'RUTAARTICULO', 'ARTICLEPATH' ),
+       'pageid'                    => array( '0', 'IDDEPÁGINA', 'IDPÁGINA', 'IDDEPAGINA', 'IDPAGINA', 'PAGEID' ),
        'server'                    => array( '0', 'SERVIDOR', 'SERVER' ),
        'servername'                => array( '0', 'NOMBRESERVIDOR', 'SERVERNAME' ),
        'scriptpath'                => array( '0', 'RUTASCRIPT', 'RUTADESCRIPT', 'SCRIPTPATH' ),
@@ -231,9 +239,11 @@ $magicWords = array(
        'revisionday'               => array( '1', 'DIADEREVISION', 'DIAREVISION', 'DÍADEREVISIÓN', 'DÍAREVISIÓN', 'REVISIONDAY' ),
        'revisionday2'              => array( '1', 'DIADEREVISION2', 'DIAREVISION2', 'DÍADEREVISIÓN2', 'DÍAREVISIÓN2', 'REVISIONDAY2' ),
        'revisionmonth'             => array( '1', 'MESDEREVISION', 'MESDEREVISIÓN', 'MESREVISION', 'MESREVISIÓN', 'REVISIONMONTH' ),
+       'revisionmonth1'            => array( '1', 'MESDEREVISION1', 'MESDEREVISIÓN1', 'MESREVISION1', 'MESREVISIÓN1', 'REVISIONMONTH1' ),
        'revisionyear'              => array( '1', 'AÑODEREVISION', 'AÑODEREVISIÓN', 'AÑOREVISION', 'AÑOREVISIÓN', 'REVISIONYEAR' ),
        'revisiontimestamp'         => array( '1', 'MARCADEHORADEREVISION', 'MARCADEHORADEREVISIÓN', 'REVISIONTIMESTAMP' ),
        'revisionuser'              => array( '1', 'USUARIODEREVISION', 'USUARIODEREVISIÓN', 'REVISIONUSER' ),
+       'revisionsize'              => array( '1', 'TAMAÑODEREVISIÓN', 'TAMAÑODEREVISION', 'REVISIONSIZE' ),
        'fullurl'                   => array( '0', 'URLCOMPLETA:', 'FULLURL:' ),
        'fullurle'                  => array( '0', 'URLCOMPLETAC:', 'FULLURLE:' ),
        'canonicalurl'              => array( '0', 'URLCANONICA:', 'CANONICALURL:' ),
@@ -256,7 +266,10 @@ $magicWords = array(
        'pagesinnamespace'          => array( '1', 'PÁGINASENESPACIO', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
        'numberofadmins'            => array( '1', 'NÚMEROADMINIISTRADORES', 'NÚMEROADMINS', 'NUMEROADMINS', 'NUMEROADMINISTRADORES', 'NUMERODEADMINISTRADORES', 'NUMERODEADMINS', 'NÚMERODEADMINISTRADORES', 'NÚMERODEADMINS', 'NUMBEROFADMINS' ),
        'formatnum'                 => array( '0', 'FORMATONÚMERO', 'FORMATONUMERO', 'FORMATNUM' ),
+       'padleft'                   => array( '0', 'RELLENARIZQUIERDA', 'RELLENARIZQ', 'PADLEFT' ),
+       'padright'                  => array( '0', 'RELLENARDERECHA', 'RELLENARDER', 'PADRIGHT' ),
        'special'                   => array( '0', 'especial', 'special' ),
+       'speciale'                  => array( '0', 'especialc', 'speciale' ),
        'defaultsort'               => array( '1', 'ORDENAR:', 'CLAVEDEORDENPREDETERMINADO:', 'ORDENDECATEGORIAPREDETERMINADO:', 'ORDENDECATEGORÍAPREDETERMINADO:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                  => array( '0', 'RUTAARCHIVO:', 'RUTARCHIVO:', 'RUTADEARCHIVO:', 'FILEPATH:' ),
        'tag'                       => array( '0', 'etiqueta', 'tag' ),
@@ -266,9 +279,16 @@ $magicWords = array(
        'index'                     => array( '1', '__INDEXAR__', '__INDEX__' ),
        'noindex'                   => array( '1', '__NOINDEXAR__', '__NOINDEX__' ),
        'numberingroup'             => array( '1', 'NÚMEROENGRUPO', 'NUMEROENGRUPO', 'NUMENGRUPO', 'NÚMENGRUPO', 'NUMBERINGROUP', 'NUMINGROUP' ),
-       'staticredirect'            => array( '1', '__REDIRECCIONESTATICA__', '__REDIRECCIÓNESTÁTICA__', '__STATICREDIRECT__' ),
-       'protectionlevel'           => array( '1', 'NIVELDEPROTECCIÓN', 'PROTECTIONLEVEL' ),
+       'staticredirect'            => array( '1', '__REDIRECCIÓNESTÁTICA__', '__REDIRECCIONESTATICA__', '__STATICREDIRECT__' ),
+       'protectionlevel'           => array( '1', 'NIVELDEPROTECCIÓN', 'NIVELDEPROTECCION', 'PROTECTIONLEVEL' ),
        'formatdate'                => array( '0', 'formatodefecha', 'formatearfecha', 'formatdate', 'dateformat' ),
+       'url_path'                  => array( '0', 'RUTA', 'PATH' ),
+       'url_query'                 => array( '0', 'BÚSQUEDA', 'QUERY' ),
+       'defaultsort_noreplace'     => array( '0', 'noreemplazar', 'noreplace' ),
+       'pagesincategory_all'       => array( '0', 'todo', 'all' ),
+       'pagesincategory_pages'     => array( '0', 'páginas', 'pages' ),
+       'pagesincategory_subcats'   => array( '0', 'subcategorías', 'subcats' ),
+       'pagesincategory_files'     => array( '0', 'archivos', 'files' ),
 );
 
 $datePreferences = false;
index e30b242..1aaabd6 100644 (file)
@@ -50,6 +50,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'Konto_loomine' ),
        'Deadendpages'              => array( 'Edasipääsuta_leheküljed' ),
        'DeletedContributions'      => array( 'Kustutatud_kaastöö' ),
+       'Diff'                      => array( 'Erin' ),
        'DoubleRedirects'           => array( 'Kahekordsed_ümbersuunamised' ),
        'EditWatchlist'             => array( 'Jälgimisloendi_redigeerimine' ),
        'Emailuser'                 => array( 'E-kirja_saatmine' ),
@@ -68,12 +69,13 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'Failide_loend' ),
        'Listgrouprights'           => array( 'Kasutajarühma_õigused' ),
        'Listredirects'             => array( 'Ümbersuunamised' ),
+       'ListDuplicatedFiles'       => array( 'Duplikaatfailide_loend' ),
        'Listusers'                 => array( 'Kasutajate_loend' ),
        'Lockdb'                    => array( 'Andmebaasi_lukustamine', 'Lukusta_andmebaas' ),
        'Log'                       => array( 'Logid' ),
        'Lonelypages'               => array( 'Viitamata_leheküljed' ),
        'Longpages'                 => array( 'Pikad_leheküljed' ),
-       'MergeHistory'              => array( 'Liitmisajalugu' ),
+       'MergeHistory'              => array( 'Ajaloo_liitmine' ),
        'MIMEsearch'                => array( 'MIME_otsing' ),
        'Mostcategories'            => array( 'Enim_kategoriseeritud' ),
        'Mostimages'                => array( 'Kõige_kasutatumad_failid' ),
@@ -110,6 +112,7 @@ $specialPageAliases = array(
        'Specialpages'              => array( 'Erileheküljed' ),
        'Statistics'                => array( 'Arvandmestik' ),
        'Tags'                      => array( 'Märgised' ),
+       'TrackingCategories'        => array( 'Süsteemikategooriad' ),
        'Unblock'                   => array( 'Blokeerimise_eemaldamine' ),
        'Uncategorizedcategories'   => array( 'Kategoriseerimata_kategooriad' ),
        'Uncategorizedimages'       => array( 'Kategoriseerimata_failid' ),
@@ -156,6 +159,8 @@ $magicWords = array(
        'currentmonth'              => array( '1', 'HETKEKUU', 'CURRENTMONTH', 'CURRENTMONTH2' ),
        'currentmonth1'             => array( '1', 'HETKEKUU1', 'CURRENTMONTH1' ),
        'currentmonthname'          => array( '1', 'HETKEKUUNIMETUS', 'CURRENTMONTHNAME' ),
+       'currentmonthnamegen'       => array( '1', 'HETKEKUUOM', 'CURRENTMONTHNAMEGEN' ),
+       'currentmonthabbrev'        => array( '1', 'HETKEKUULÜH', 'CURRENTMONTHABBREV' ),
        'currentday'                => array( '1', 'HETKEKUUPÄEV', 'CURRENTDAY' ),
        'currentday2'               => array( '1', 'HETKEKUUPÄEV2', 'CURRENTDAY2' ),
        'currentdayname'            => array( '1', 'HETKENÄDALAPÄEV', 'CURRENTDAYNAME' ),
@@ -165,6 +170,8 @@ $magicWords = array(
        'localmonth'                => array( '1', 'KOHALIKKUU', 'LOCALMONTH', 'LOCALMONTH2' ),
        'localmonth1'               => array( '1', 'KOHALIKKUU1', 'LOCALMONTH1' ),
        'localmonthname'            => array( '1', 'KOHALIKKUUNIMETUS', 'LOCALMONTHNAME' ),
+       'localmonthnamegen'         => array( '1', 'KOHALIKKUUOM', 'LOCALMONTHNAMEGEN' ),
+       'localmonthabbrev'          => array( '1', 'KOHALIKKUULÜH', 'LOCALMONTHABBREV' ),
        'localday'                  => array( '1', 'KOHALIKKUUPÄEV', 'LOCALDAY' ),
        'localday2'                 => array( '1', 'KOHALIKKUUPÄEV2', 'LOCALDAY2' ),
        'localdayname'              => array( '1', 'KOHALIKNÄDALAPÄEV', 'LOCALDAYNAME' ),
@@ -177,7 +184,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'KASUTAJAMÄÄR', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'TEGUSKASUTAJAMÄÄR', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'REDIGEERIMISMÄÄR', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'VAATAMISTEARV', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'LEHEKÜLJENIMI', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'LEHEKÜLJENIMI1', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'NIMERUUM', 'NAMESPACE' ),
@@ -206,7 +212,9 @@ $magicWords = array(
        'img_center'                => array( '1', 'keskel', 'center', 'centre' ),
        'img_framed'                => array( '1', 'raam', 'framed', 'enframed', 'frame' ),
        'img_frameless'             => array( '1', 'raamita', 'frameless' ),
+       'img_lang'                  => array( '1', 'keel=$1', 'lang=$1' ),
        'img_page'                  => array( '1', 'lehekülg=$1', 'lehekülg_$1', 'page=$1', 'page $1' ),
+       'img_upright'               => array( '1', 'püsti', 'püsti=$1', 'upright', 'upright=$1', 'upright $1' ),
        'img_border'                => array( '1', 'ääris', 'border' ),
        'sitename'                  => array( '1', 'KOHANIMI', 'SITENAME' ),
        'ns'                        => array( '0', 'NR:', 'NS:' ),
index 9fd3123..6c03f1d 100644 (file)
@@ -43,44 +43,48 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'تمام_پیغام‌ها' ),
        'AllMyUploads'              => array( 'همهٔ_بارگذاری‌های_من', 'همه_بارگذاری‌های_من' ),
        'Allpages'                  => array( 'تمام_صفحه‌ها' ),
+       'ApiHelp'                   => array( 'راهنمای_ای‌پی‌آی' ),
        'Ancientpages'              => array( 'صفحه‌های_قدیمی' ),
        'Badtitle'                  => array( 'عنوان_بد' ),
-       'Blankpage'                 => array( 'صفحه_خالی' ),
+       'Blankpage'                 => array( 'صفحهٔ_خالی', 'صفحه_خالی' ),
        'Block'                     => array( 'بستن_نشانی_آی‌پی' ),
        'Booksources'               => array( 'منابع_کتاب' ),
        'BrokenRedirects'           => array( 'تغییرمسیرهای_خراب' ),
        'Categories'                => array( 'رده‌ها' ),
        'ChangeEmail'               => array( 'تغییر_رایانامه' ),
        'ChangePassword'            => array( 'از_نو_کردن_گذرواژه' ),
-       'ComparePages'              => array( 'مقایسه_صفحات' ),
+       'ComparePages'              => array( 'مقایسهٔ_صفحات' ),
        'Confirmemail'              => array( 'تأیید_رایانامه' ),
        'Contributions'             => array( 'مشارکت‌ها' ),
        'CreateAccount'             => array( 'ایجاد_حساب_کاربری' ),
        'Deadendpages'              => array( 'صفحه‌های_بن‌بست' ),
        'DeletedContributions'      => array( 'مشارکت‌های_حذف_شده' ),
+       'Diff'                      => array( 'تفاوت' ),
        'DoubleRedirects'           => array( 'تغییرمسیرهای_دوتایی' ),
        'EditWatchlist'             => array( 'ویرایش_فهرست_پی‌گیری‌ها' ),
        'Emailuser'                 => array( 'نامه_به_کاربر' ),
        'ExpandTemplates'           => array( 'گسترش_الگوها' ),
-       'Export'                    => array( 'برون_بری_صفحه' ),
+       'Export'                    => array( 'برونبری_صفحه' ),
        'Fewestrevisions'           => array( 'کمترین_نسخه' ),
-       'FileDuplicateSearch'       => array( 'جستجوی_پرونده_تکراری' ),
+       'FileDuplicateSearch'       => array( 'جستجوی_پروندهٔ_تکراری' ),
        'Filepath'                  => array( 'مسیر_پرونده' ),
        'Import'                    => array( 'درون‌ریزی_صفحه' ),
        'Invalidateemail'           => array( 'باطل‌کردن_رایانامه' ),
        'JavaScriptTest'            => array( 'تست_جاوااسکریپت' ),
-       'BlockList'                 => array( 'فهرست_بستن_نشانی_آی‌پی' ),
+       'BlockList'                 => array( 'Ù\81Ù\87رست_بستÙ\87â\80\8cشدÙ\87â\80\8cÙ\87ا', 'Ù\81Ù\87رست_بستÙ\86\86شاÙ\86Û\8c_Ø¢Û\8câ\80\8cÙ¾Û\8c' ),
        'LinkSearch'                => array( 'جستجوی_پیوند' ),
        'Listadmins'                => array( 'فهرست_مدیران' ),
        'Listbots'                  => array( 'فهرست_ربات‌ها' ),
        'Listfiles'                 => array( 'فهرست_پرونده‌ها', 'فهرست_تصاویر' ),
        'Listgrouprights'           => array( 'اختیارات_گروه‌های_کاربری' ),
        'Listredirects'             => array( 'فهرست_تغییرمسیرها' ),
+       'ListDuplicatedFiles'       => array( 'فهرست_پرونده‌های_تکراری' ),
        'Listusers'                 => array( 'فهرست_کاربران' ),
-       'Lockdb'                    => array( 'قفل_کردن_پایگاه_داده' ),
+       'Lockdb'                    => array( 'قفل‌کردن_پایگاه_داده‌ها' ),
        'Log'                       => array( 'سیاهه‌ها' ),
        'Lonelypages'               => array( 'صفحه‌های_یتیم' ),
        'Longpages'                 => array( 'صفحه‌های_بلند' ),
+       'MediaStatistics'           => array( 'آمار_رسانه‌ها' ),
        'MergeHistory'              => array( 'ادغام_تاریخچه' ),
        'MIMEsearch'                => array( 'جستجوی_MIME' ),
        'Mostcategories'            => array( 'بیشترین_رده' ),
@@ -93,19 +97,20 @@ $specialPageAliases = array(
        'Movepage'                  => array( 'انتقال_صفحه' ),
        'Mycontributions'           => array( 'مشارکت‌های_من' ),
        'MyLanguage'                => array( 'زبان‌های_من' ),
-       'Mypage'                    => array( 'صفحه_من' ),
+       'Mypage'                    => array( 'صفحهٔ_من', 'صفحه_من' ),
        'Mytalk'                    => array( 'بحث_من' ),
        'Myuploads'                 => array( 'بارگذاری‌های_من' ),
        'Newimages'                 => array( 'تصاویر_جدید' ),
        'Newpages'                  => array( 'صفحه‌های_تازه' ),
        'PagesWithProp'             => array( 'صفحه‌های_با_خاصیت' ),
+       'PageLanguage'              => array( 'زبان_صفحه' ),
        'PasswordReset'             => array( 'بازنشاندن_گذرواژه' ),
        'PermanentLink'             => array( 'پیوند_دائمی' ),
        'Popularpages'              => array( 'صفحه‌های_محبوب' ),
        'Preferences'               => array( 'ترجیحات' ),
        'Prefixindex'               => array( 'نمایه_پیشوندی' ),
-       'Protectedpages'            => array( 'صفحه‌های_محافظت_شده' ),
-       'Protectedtitles'           => array( 'عنوان‌های_محافظت_شده' ),
+       'Protectedpages'            => array( 'صفحه‌های_محافظتشده' ),
+       'Protectedtitles'           => array( 'عنوان‌های_محافظتشده' ),
        'Randompage'                => array( 'صفحهٔ_تصادفی' ),
        'RandomInCategory'          => array( 'تصادفی_در_رده' ),
        'Randomredirect'            => array( 'تغییرمسیر_تصادفی' ),
@@ -114,18 +119,20 @@ $specialPageAliases = array(
        'Redirect'                  => array( 'تغییرمسیر' ),
        'ResetTokens'               => array( 'بازنشانی_نشانه‌ها' ),
        'Revisiondelete'            => array( 'حذف_نسخه' ),
+       'RunJobs'                   => array( 'اجرای_کارها' ),
        'Search'                    => array( 'جستجو' ),
        'Shortpages'                => array( 'صفحه‌های_کوتاه' ),
        'Specialpages'              => array( 'صفحه‌های_ویژه' ),
        'Statistics'                => array( 'آمار' ),
        'Tags'                      => array( 'برچسب‌ها' ),
+       'TrackingCategories'        => array( 'رده‌های_ردیابی' ),
        'Unblock'                   => array( 'باز_کردن' ),
-       'Uncategorizedcategories'   => array( 'رده‌های_رده‌بندی_نشده' ),
-       'Uncategorizedimages'       => array( 'تصویرهای_رده‌بندی_‌نشده' ),
-       'Uncategorizedpages'        => array( 'صفحه‌های_رده‌بندی_نشده' ),
-       'Uncategorizedtemplates'    => array( 'الگوهای_رده‌بندی_نشده' ),
+       'Uncategorizedcategories'   => array( 'رده‌های_رده‌بندینشده' ),
+       'Uncategorizedimages'       => array( 'تصویرهای_رده‌بندی‌نشده' ),
+       'Uncategorizedpages'        => array( 'صفحه‌های_رده‌بندینشده' ),
+       'Uncategorizedtemplates'    => array( 'الگوهای_رده‌بندینشده' ),
        'Undelete'                  => array( 'احیای_صفحهٔ_حذف‌شده' ),
-       'Unlockdb'                  => array( 'باز_کردن_پایگاه_داده' ),
+       'Unlockdb'                  => array( 'قفل‌گشایی_پایگاه_داده‌ها' ),
        'Unusedcategories'          => array( 'رده‌های_استفاده_نشده' ),
        'Unusedimages'              => array( 'تصاویر_استفاده_نشده' ),
        'Unusedtemplates'           => array( 'الگوهای_استفاده_نشده' ),
@@ -180,7 +187,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'تعدادکاربران', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'کاربران‌فعال', 'کاربران_فعال', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'تعدادویرایش‌ها', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'تعدادبازدید', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'نام‌صفحه', 'نام_صفحه', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'نام‌صفحه‌کد', 'نام_صفحه_کد', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'فضای‌نام', 'فضای_نام', 'NAMESPACE' ),
@@ -258,10 +264,12 @@ $magicWords = array(
        'revisionyear'              => array( '1', 'سال‌نسخه', 'سال_نسخه', 'REVISIONYEAR' ),
        'revisiontimestamp'         => array( '1', 'زمان‌یونیکسی‌نسخه', 'زمان‌نسخه', 'زمان_یونیکسی_نسخه', 'زمان_نسخه', 'REVISIONTIMESTAMP' ),
        'revisionuser'              => array( '1', 'کاربرنسخه', 'کاربر_نسخه', 'REVISIONUSER' ),
+       'revisionsize'              => array( '1', 'اندازهٔ‌نسخه', 'اندازهٔ_نسخه', 'REVISIONSIZE' ),
        'plural'                    => array( '0', 'جمع:', 'PLURAL:' ),
        'fullurl'                   => array( '0', 'نشانی‌کامل:', 'نشانی_کامل:', 'FULLURL:' ),
        'fullurle'                  => array( '0', 'نشانی‌کامل‌کد:', 'نشانی_کامل_کد:', 'FULLURLE:' ),
        'canonicalurl'              => array( '0', 'نشانی_استاندارد:', 'نشانی‌استاندارد:', 'CANONICALURL:' ),
+       'canonicalurle'             => array( '0', 'نشانی_استاندارد_کد:', 'نشانی‌استانداردکد:', 'CANONICALURLE:' ),
        'lcfirst'                   => array( '0', 'ابتداکوچک:', 'ابتدا_کوچک:', 'LCFIRST:' ),
        'ucfirst'                   => array( '0', 'ابتدابزرگ:', 'ابتدا_بزرگ:', 'UCFIRST:' ),
        'lc'                        => array( '0', 'ک:', 'LC:' ),
@@ -269,6 +277,7 @@ $magicWords = array(
        'raw'                       => array( '0', 'خام:', 'RAW:' ),
        'displaytitle'              => array( '1', 'عنوان‌ظاهری', 'عنوان_ظاهری', 'DISPLAYTITLE' ),
        'rawsuffix'                 => array( '1', 'ن', 'R' ),
+       'nocommafysuffix'           => array( '0', 'جداکننده‌خیر', 'NOSEP' ),
        'newsectionlink'            => array( '1', '__بخش‌جدید__', '__NEWSECTIONLINK__' ),
        'nonewsectionlink'          => array( '1', '__بی‌پیوندبخش__', '__بی‌پیوند‌بخش‌جدید__', '__NONEWSECTIONLINK__' ),
        'currentversion'            => array( '1', 'نسخه‌کنونی', 'نسخه_کنونی', 'CURRENTVERSION' ),
index ed4c90a..1219911 100644 (file)
@@ -35,6 +35,7 @@ $namespaceAliases = array(
 $specialPageAliases = array(
        'Activeusers'               => array( 'Aktiiviset_käyttäjät' ),
        'Allmessages'               => array( 'Järjestelmäviestit' ),
+       'AllMyUploads'              => array( 'Kaikki_tallennukseni' ),
        'Allpages'                  => array( 'Kaikki_sivut' ),
        'Ancientpages'              => array( 'Kuolleet_sivut' ),
        'Badtitle'                  => array( 'Kelpaamaton_otsikko' ),
@@ -51,6 +52,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'Luo_tunnus' ),
        'Deadendpages'              => array( 'Linkittömät_sivut' ),
        'DeletedContributions'      => array( 'Poistetut_muokkaukset' ),
+       'Diff'                      => array( 'Ero' ),
        'DoubleRedirects'           => array( 'Kaksinkertaiset_ohjaukset', 'Kaksinkertaiset_uudelleenohjaukset' ),
        'EditWatchlist'             => array( 'Muokkaa_tarkkailulistaa' ),
        'Emailuser'                 => array( 'Lähetä_sähköpostia' ),
@@ -61,6 +63,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( 'Tiedostopolku' ),
        'Import'                    => array( 'Tuo_sivuja' ),
        'Invalidateemail'           => array( 'Hylkää_sähköpostiosoite' ),
+       'JavaScriptTest'            => array( 'JavaScriptTesti' ),
        'BlockList'                 => array( 'Muokkausestot' ),
        'LinkSearch'                => array( 'Linkkihaku' ),
        'Listadmins'                => array( 'Ylläpitäjät' ),
@@ -68,11 +71,13 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'Tiedostoluettelo' ),
        'Listgrouprights'           => array( 'Käyttäjäryhmien_oikeudet' ),
        'Listredirects'             => array( 'Ohjaukset', 'Ohjaussivut', 'Uudelleenohjaukset' ),
+       'ListDuplicatedFiles'       => array( 'Listaa_tuplatiedostot' ),
        'Listusers'                 => array( 'Käyttäjät' ),
        'Lockdb'                    => array( 'Lukitse_tietokanta' ),
        'Log'                       => array( 'Loki', 'Lokit' ),
        'Lonelypages'               => array( 'Yksinäiset_sivut' ),
        'Longpages'                 => array( 'Pitkät_sivut' ),
+       'MediaStatistics'           => array( 'Median_tiedot' ),
        'MergeHistory'              => array( 'Liitä_muutoshistoria' ),
        'MIMEsearch'                => array( 'MIME-haku' ),
        'Mostcategories'            => array( 'Luokitelluimmat_sivut' ),
@@ -90,6 +95,7 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'Omat_tiedostot' ),
        'Newimages'                 => array( 'Uudet_tiedostot', 'Uudet_kuvat' ),
        'Newpages'                  => array( 'Uudet_sivut' ),
+       'PageLanguage'              => array( 'Sivun_kieli' ),
        'PasswordReset'             => array( 'Unohtuneen_salasanan_vaihto' ),
        'PermanentLink'             => array( 'Ikilinkki' ),
        'Popularpages'              => array( 'Suositut_sivut' ),
@@ -98,16 +104,18 @@ $specialPageAliases = array(
        'Protectedpages'            => array( 'Suojatut_sivut' ),
        'Protectedtitles'           => array( 'Suojatut_sivunimet' ),
        'Randompage'                => array( 'Satunnainen_sivu' ),
-       'RandomInCategory'          => array( 'Satunnainen_sivu_luokasta' ),
+       'RandomInCategory'          => array( 'Satunnainen_kohde_luokasta' ),
        'Randomredirect'            => array( 'Satunnainen_ohjaus', 'Satunnainen_uudelleenohjaus' ),
        'Recentchanges'             => array( 'Tuoreet_muutokset' ),
        'Recentchangeslinked'       => array( 'Linkitetyt_muutokset' ),
-       'Revisiondelete'            => array( 'Poista_muokkaus' ),
+       'Redirect'                  => array( 'Ohjaus' ),
+       'Revisiondelete'            => array( 'Poista_versio' ),
        'Search'                    => array( 'Haku' ),
        'Shortpages'                => array( 'Lyhyet_sivut' ),
        'Specialpages'              => array( 'Toimintosivut' ),
        'Statistics'                => array( 'Tilastot' ),
-       'Tags'                      => array( 'Merkinnät' ),
+       'Tags'                      => array( 'Merkkaukset' ),
+       'TrackingCategories'        => array( 'Tarkkailuluokat' ),
        'Unblock'                   => array( 'Poista_esto' ),
        'Uncategorizedcategories'   => array( 'Luokittelemattomat_luokat' ),
        'Uncategorizedimages'       => array( 'Luokittelemattomat_tiedostot' ),
@@ -124,10 +132,10 @@ $specialPageAliases = array(
        'Userlogout'                => array( 'Kirjaudu_ulos' ),
        'Userrights'                => array( 'Käyttöoikeudet' ),
        'Version'                   => array( 'Versio' ),
-       'Wantedcategories'          => array( 'Halutuimmat_luokat' ),
-       'Wantedfiles'               => array( 'Halutuimmat_tiedostot' ),
-       'Wantedpages'               => array( 'Halutuimmat_sivut' ),
-       'Wantedtemplates'           => array( 'Halutuimmat_mallineet' ),
+       'Wantedcategories'          => array( 'Halutut_luokat' ),
+       'Wantedfiles'               => array( 'Halutut_tiedostot' ),
+       'Wantedpages'               => array( 'Halutut_sivut' ),
+       'Wantedtemplates'           => array( 'Halutut_mallineet' ),
        'Watchlist'                 => array( 'Tarkkailulista' ),
        'Whatlinkshere'             => array( 'Tänne_viittaavat_sivut' ),
        'Withoutinterwiki'          => array( 'Kielilinkittömät_sivut' ),
@@ -164,7 +172,6 @@ $magicWords = array(
        'numberoffiles'             => array( '1', 'TIEDOSTOMÄÄRÄ', 'NUMBEROFFILES' ),
        'numberofusers'             => array( '1', 'KÄYTTÄJÄMÄÄRÄ', 'NUMBEROFUSERS' ),
        'numberofedits'             => array( '1', 'MUOKKAUSMÄÄRÄ', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'SIVUHAKUMÄÄRÄ', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'SIVUNIMI', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'SIVUNIMIE', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'NIMIAVARUUS', 'NAMESPACE' ),
index 5e406da..b9e8b54 100644 (file)
@@ -176,7 +176,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NOMBREUTILISATEURS', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NOMBREUTILISATEURSACTIFS', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NOMBREMODIFS', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NOMBREVUES', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'NOMPAGE', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'NOMPAGEX', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ESPACENOMMAGE', 'NAMESPACE' ),
index 8682ab0..51a0e13 100644 (file)
@@ -177,7 +177,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NOMBRO_D_USANCIÉRS', 'NOMBREUTILISATEURS', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NOMBRO_D_USANCIÉRS_ACTIFS', 'NOMBREUTILISATEURSACTIFS', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NOMBRO_DE_CHANGEMENTS', 'NOMBREMODIFS', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NOMBRO_DE_VUES', 'NOMBREVUES', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'NOM_DE_LA_PÂGE', 'NOMPAGE', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'NOM_DE_LA_PÂGE_URL', 'NOMPAGEX', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ÈSPÂÇO_DE_NOMS', 'ESPACENOMMAGE', 'NAMESPACE' ),
@@ -207,9 +206,9 @@ $magicWords = array(
        'img_framed'                => array( '1', 'encâdrâ', 'câdro', 'cadre', 'encadré', 'encadre', 'framed', 'enframed', 'frame' ),
        'img_frameless'             => array( '1', 'sen_câdro', 'pas_encâdrâ', 'sans_cadre', 'non_encadré', 'non_encadre', 'frameless' ),
        'img_page'                  => array( '1', 'pâge=$1', 'pâge $1', 'page=$1', 'page $1' ),
-       'img_upright'               => array( '1', 'drêt', 'drêt=$1', 'drêt $1', 'redresse', 'redresse=$1', 'redresse $1', 'upright', 'upright=$1', 'upright $1' ),
+       'img_upright'               => array( '1', 'drêt', 'drêt=$1', 'drêt $1', 'redresse', 'redresse=$1', 'redresse $1', 'redresse_$1', 'upright', 'upright=$1', 'upright $1' ),
        'img_border'                => array( '1', 'bordura', 'bordure', 'border' ),
-       'img_baseline'              => array( '1', 'legne_de_bâsa', 'ligne_de_base', 'base', 'baseline' ),
+       'img_baseline'              => array( '1', 'legne_de_bâsa', 'ligne_de_base', 'base', 'ligne-de-base', 'baseline' ),
        'img_sub'                   => array( '1', 'segno', 'indice', 'ind', 'sub' ),
        'img_super'                 => array( '1', 'èxposent', 'èxp', 'exposant', 'exp', 'super', 'sup' ),
        'img_top'                   => array( '1', 'd\'amont', 'haut', 'top' ),
index e30f724..8ab5bcc 100644 (file)
@@ -54,7 +54,7 @@ $dateFormats = array(
 $specialPageAliases = array(
        'Activeusers'               => array( 'Usuarios_activos' ),
        'Allmessages'               => array( 'Todas_as_mensaxes' ),
-       'AllMyUploads'              => array( 'Todas_as_miñas_cargas', 'Todos_os_meus_ficheiros' ),
+       'AllMyUploads'              => array( 'Todas_as_miñas_subidas', 'Todas_as_miñas_cargas', 'Todos_os_meus_ficheiros' ),
        'Allpages'                  => array( 'Todas_as_páxinas' ),
        'Ancientpages'              => array( 'Páxinas_máis_antigas' ),
        'Badtitle'                  => array( 'Título_incorrecto' ),
@@ -63,24 +63,24 @@ $specialPageAliases = array(
        'Booksources'               => array( 'Fontes_bibliográficas' ),
        'BrokenRedirects'           => array( 'Redireccións_rotas' ),
        'Categories'                => array( 'Categorías' ),
-       'ChangeEmail'               => array( 'Cambiar_o_correo_electrónico' ),
-       'ChangePassword'            => array( 'Cambiar_o_contrasinal' ),
+       'ChangeEmail'               => array( 'Cambiar_o_correo_electrónico', 'Cambiar_correo_electrónico' ),
+       'ChangePassword'            => array( 'Cambiar_o_contrasinal', 'Cambiar_contrasinal' ),
        'ComparePages'              => array( 'Comparar_as_páxinas' ),
-       'Confirmemail'              => array( 'Confirmar_o_correo_electrónico' ),
+       'Confirmemail'              => array( 'Confirmar_o_correo_electrónico', 'Confirmar_correo_electrónico' ),
        'Contributions'             => array( 'Contribucións' ),
        'CreateAccount'             => array( 'Crear_unha_conta' ),
        'Deadendpages'              => array( 'Páxinas_mortas' ),
        'DeletedContributions'      => array( 'Contribucións_borradas' ),
        'DoubleRedirects'           => array( 'Redireccións_dobres' ),
        'EditWatchlist'             => array( 'Editar_a_lista_de_vixilancia' ),
-       'Emailuser'                 => array( 'Correo_electrónico' ),
+       'Emailuser'                 => array( 'Enviar_correo_electrónico', 'Correo_electrónico', 'Enviar_correo_electrónico_usuario', 'Enviar_correo_electrónico_usuaria' ),
        'ExpandTemplates'           => array( 'Expandir_os_modelos' ),
        'Export'                    => array( 'Exportar' ),
        'Fewestrevisions'           => array( 'Páxinas_con_menos_revisións' ),
-       'FileDuplicateSearch'       => array( 'Procura_de_ficheiros_duplicados' ),
+       'FileDuplicateSearch'       => array( 'Procura_de_ficheiros_duplicados', 'Busca_de_ficheiros_duplicados', 'Busca_de_arquivos_duplicados' ),
        'Filepath'                  => array( 'Ruta_do_ficheiro' ),
        'Import'                    => array( 'Importar' ),
-       'Invalidateemail'           => array( 'Invalidar_o_enderezo_de_correo_electrónico' ),
+       'Invalidateemail'           => array( 'Invalidar_o_enderezo_de_correo_electrónico', 'Invalidar_correo_electrónico', 'Invalidar_enderezo_de_correo_electrónico', 'Invalidar_enderezo_correo_electrónico' ),
        'JavaScriptTest'            => array( 'Proba_do_JavaScript' ),
        'BlockList'                 => array( 'Lista_de_bloqueos', 'Lista_dos_bloqueos_a_enderezos_IP' ),
        'LinkSearch'                => array( 'Buscar_ligazóns_web' ),
@@ -94,55 +94,57 @@ $specialPageAliases = array(
        'Log'                       => array( 'Rexistros' ),
        'Lonelypages'               => array( 'Páxinas_orfas' ),
        'Longpages'                 => array( 'Páxinas_longas' ),
-       'MergeHistory'              => array( 'Fusionar_os_historiais' ),
+       'MergeHistory'              => array( 'Fusionar_os_historiais', 'Fusionar_historiais' ),
        'MIMEsearch'                => array( 'Procura_MIME' ),
        'Mostcategories'            => array( 'Páxinas_con_máis_categorías' ),
-       'Mostimages'                => array( 'Ficheiros_máis_ligados' ),
+       'Mostimages'                => array( 'Ficheiros_máis_ligados', 'Arquivos_máis_ligados' ),
        'Mostinterwikis'            => array( 'Páxinas_con_máis_interwikis' ),
        'Mostlinked'                => array( 'Páxinas_máis_ligadas' ),
        'Mostlinkedcategories'      => array( 'Categorías_máis_ligadas' ),
        'Mostlinkedtemplates'       => array( 'Modelos_máis_ligados' ),
        'Mostrevisions'             => array( 'Páxinas_con_máis_revisións' ),
-       'Movepage'                  => array( 'Mover_a_páxina' ),
-       'Mycontributions'           => array( 'As_miñas_contribucións' ),
-       'Mypage'                    => array( 'A_miña_páxina_de_usuario' ),
-       'Mytalk'                    => array( 'A_miña_conversa' ),
+       'Movepage'                  => array( 'Mover_a_páxina', 'Mover_páxina', 'Mover_o_artigo', 'Mover_artigo' ),
+       'Mycontributions'           => array( 'As_miñas_contribucións', 'Miñas_contribucións' ),
+       'Mypage'                    => array( 'A_miña_páxina_de_usuario', 'A_miña_páxina', 'Miña_páxina_de_usuario', 'Miña_páxina' ),
+       'Mytalk'                    => array( 'A_miña_conversa', 'Miña_conversa' ),
        'Myuploads'                 => array( 'As_miñas_subidas' ),
        'Newimages'                 => array( 'Imaxes_novas' ),
        'Newpages'                  => array( 'Páxinas_novas' ),
        'PagesWithProp'             => array( 'Páxinas_con_propiedades' ),
-       'PasswordReset'             => array( 'Restablecer_o_contrasinal' ),
+       'PasswordReset'             => array( 'Restablecer_o_contrasinal', 'Restablecer_contrasinal' ),
        'PermanentLink'             => array( 'Ligazón_permanente' ),
        'Popularpages'              => array( 'Páxinas_populares' ),
        'Preferences'               => array( 'Preferencias' ),
        'Prefixindex'               => array( 'Índice_de_prefixos' ),
        'Protectedpages'            => array( 'Páxinas_protexidas' ),
        'Protectedtitles'           => array( 'Títulos_protexidos' ),
-       'Randompage'                => array( 'Ao_chou', 'Páxina_aleatoria' ),
+       'Randompage'                => array( 'Ao_chou', 'Páxina_aleatoria', 'Aleatoria', 'Aleatorio' ),
+       'RandomInCategory'          => array( 'Aleatoria_na_categoría', 'Aleatorio_na_categoría' ),
        'Randomredirect'            => array( 'Redirección_aleatoria' ),
        'Recentchanges'             => array( 'Cambios_recentes' ),
        'Recentchangeslinked'       => array( 'Cambios_relacionados' ),
        'Redirect'                  => array( 'Redirección' ),
        'ResetTokens'               => array( 'Restablecer_os_pases' ),
        'Revisiondelete'            => array( 'Revisións_borradas' ),
-       'Search'                    => array( 'Procurar' ),
+       'Search'                    => array( 'Procurar', 'Buscar' ),
        'Shortpages'                => array( 'Páxinas_curtas' ),
        'Specialpages'              => array( 'Páxinas_especiais' ),
-       'Statistics'                => array( 'Estatísticas' ),
+       'Statistics'                => array( 'Estatísticas', 'Estadísticas' ),
        'Tags'                      => array( 'Etiquetas' ),
        'Unblock'                   => array( 'Desbloquear' ),
-       'Uncategorizedcategories'   => array( 'Categorías_sen_categoría' ),
+       'Uncategorizedcategories'   => array( 'Categorías_sen_categoría', 'Categorías_non_categorizadas' ),
        'Uncategorizedimages'       => array( 'Imaxes_sen_categoría' ),
        'Uncategorizedpages'        => array( 'Páxinas_sen_categoría' ),
        'Uncategorizedtemplates'    => array( 'Modelos_sen_categoría' ),
        'Undelete'                  => array( 'Restaurar' ),
        'Unlockdb'                  => array( 'Abrir_a_base_de_datos' ),
-       'Unusedcategories'          => array( 'Categorías_sen_uso' ),
-       'Unusedimages'              => array( 'Imaxes_sen_uso' ),
-       'Unusedtemplates'           => array( 'Modelos_non_usados' ),
-       'Unwatchedpages'            => array( 'Páxinas_sen_vixiar' ),
-       'Upload'                    => array( 'Cargar' ),
-       'Userlogin'                 => array( 'Rexistro' ),
+       'Unusedcategories'          => array( 'Categorías_sen_uso', 'Categorías_non_utilizadas' ),
+       'Unusedimages'              => array( 'Ficheiros_sen_uso', 'Imaxes_sen_uso', 'Ficheiros_non_usados', 'Imaxes_non_usadas' ),
+       'Unusedtemplates'           => array( 'Modelos_non_usados', 'Modelos_sen_uso' ),
+       'Unwatchedpages'            => array( 'Páxinas_sen_vixiar', 'Páxinas_non_vixiadas' ),
+       'Upload'                    => array( 'Subir', 'Cargar' ),
+       'UploadStash'               => array( 'Ficheiros_agochados', 'Arquivos_agochados', 'Subidas_agochadas' ),
+       'Userlogin'                 => array( 'Iniciar_sesión', 'Iniciar_a_sesión', 'Acceder_ao_sistema', 'Acceder_ó_sistema' ),
        'Userlogout'                => array( 'Saír_ao_anonimato' ),
        'Userrights'                => array( 'Dereitos_de_usuario' ),
        'Version'                   => array( 'Versión' ),
@@ -151,8 +153,8 @@ $specialPageAliases = array(
        'Wantedpages'               => array( 'Páxinas_requiridas', 'Ligazóns_rotas' ),
        'Wantedtemplates'           => array( 'Modelos_requiridos' ),
        'Watchlist'                 => array( 'Lista_de_vixilancia' ),
-       'Whatlinkshere'             => array( 'Páxinas_que_ligan_con_esta' ),
-       'Withoutinterwiki'          => array( 'Sen_interwiki' ),
+       'Whatlinkshere'             => array( 'Páxinas_que_ligan_con_esta', 'O_que_liga_aquí' ),
+       'Withoutinterwiki'          => array( 'Sen_interwiki', 'Sen_interwikis' ),
 );
 
 $magicWords = array(
@@ -188,7 +190,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NÚMERODEUSUARIOS', 'NUMERODEUSUARIOS', 'NÚMERODEUSUÁRIOS', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NÚMERODEUSUARIOSACTIVOS', 'NUMERODEUSUARIOSATIVOS', 'NÚMERODEUSUÁRIOSATIVOS', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NÚMERODEEDICIÓNS', 'NUMERODEEDICOES', 'NÚMERODEEDIÇÕES', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NÚMERODEVISITAS', 'NUMERODEEXIBICOES', 'NÚMERODEEXIBIÇÕES', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'NOMEDAPÁXINA', 'NOMEDAPAGINA', 'NOMEDAPÁGINA', 'PAGENAME' ),
        'namespace'                 => array( '1', 'ESPAZODENOMES', 'DOMINIO', 'DOMÍNIO', 'ESPACONOMINAL', 'ESPAÇONOMINAL', 'NAMESPACE' ),
        'namespacenumber'           => array( '1', 'NÚMERODOESPAZODENOMES', 'NAMESPACENUMBER' ),
@@ -208,8 +209,8 @@ $magicWords = array(
        'img_center'                => array( '1', 'centro', 'center', 'centre' ),
        'img_framed'                => array( '1', 'conmarco', 'conbordo', 'marco', 'commoldura', 'comborda', 'framed', 'enframed', 'frame' ),
        'img_frameless'             => array( '1', 'senmarco', 'senbordo', 'semmoldura', 'semborda', 'frameless' ),
-       'img_page'                  => array( '1', 'páxina=$1', 'páxina_$1', 'página=$1', 'página $1', 'page=$1', 'page $1' ),
-       'img_upright'               => array( '1', 'arribaádereita', 'arribaádereita=$1', 'arribaádereita_$1', 'superiordireito', 'superiordireito=$1', 'superiordireito $1', 'upright', 'upright=$1', 'upright $1' ),
+       'img_page'                  => array( '1', 'páxina=$1', 'páxina_$1', 'página=$1', 'página_$1', 'página $1', 'page=$1', 'page $1' ),
+       'img_upright'               => array( '1', 'arribaádereita', 'arribaádereita=$1', 'arribaádereita_$1', 'superiordireito', 'superiordireito=$1', 'superiordireito_$1', 'superiordireito $1', 'upright', 'upright=$1', 'upright $1' ),
        'img_border'                => array( '1', 'bordo', 'borda', 'border' ),
        'img_baseline'              => array( '1', 'liñadebase', 'linhadebase', 'baseline' ),
        'img_top'                   => array( '1', 'arriba', 'acima', 'top' ),
@@ -257,10 +258,16 @@ $magicWords = array(
        'defaultsort'               => array( '1', 'ORDENAR:', 'ORDENACAOPADRAO', 'ORDENAÇÃOPADRÃO', 'ORDEMPADRAO', 'ORDEMPADRÃO', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'tag'                       => array( '0', 'etiqueta', 'tag' ),
        'hiddencat'                 => array( '1', '__CATEGORÍAOCULTA__', '__CATEGORIAOCULTA__', '__CATOCULTA__', '__HIDDENCAT__' ),
-       'pagesincategory'           => array( '1', 'PÁXINASNACATEGORÍA', 'PAGINASNACATEGORIA', 'PÁGINASNACATEGORIA', 'PAGINASNACAT', 'PÁGINASNACAT', 'PAGESINCATEGORY', 'PAGESINCAT' ),
-       'pagesize'                  => array( '1', 'TAMAÑODAPÁXINA', 'TAMANHODAPAGINA', 'TAMANHODAPÁGINA', 'PAGESIZE' ),
+       'pagesincategory'           => array( '1', 'PÁXINASNACATEGORÍA', 'PAXINASNACATEGORIA', 'PAGINASNACATEGORIA', 'PÁGINASNACATEGORIA', 'PAGINASNACAT', 'PÁGINASNACAT', 'PAGESINCATEGORY', 'PAGESINCAT' ),
+       'pagesize'                  => array( '1', 'TAMAÑODAPÁXINA', 'TAMAÑODAPAXINA', 'TAMANHODAPAGINA', 'TAMANHODAPÁGINA', 'PAGESIZE' ),
+       'index'                     => array( '1', '__INDEXAR__', '__INDEX__' ),
+       'noindex'                   => array( '1', '__NONINDEXAR__', '__NAOINDEXAR__', '__NÃOINDEXAR__', '__NOINDEX__' ),
+       'numberingroup'             => array( '1', 'NÚMEROENGRUPO', 'NUMEROENGRUPO', 'NUMERONOGRUPO', 'NÚMERONOGRUPO', 'NUMBERINGROUP', 'NUMINGROUP' ),
+       'staticredirect'            => array( '1', '__REDIRECCIÓNESTÁTICA__', '__REDIRECCIONESTATICA__', '__REDIRECIONAMENTOESTATICO__', '__REDIRECIONAMENTOESTÁTICO__', '__STATICREDIRECT__' ),
+       'protectionlevel'           => array( '1', 'NIVELDEPROTECCIÓN', 'NIVELDEPROTECCION', 'NIVELDEPROTECAO', 'NÍVELDEPROTEÇÃO', 'PROTECTIONLEVEL' ),
+       'formatdate'                => array( '0', 'formatodadata', 'formateardata', 'formatdate', 'dateformat' ),
        'url_path'                  => array( '0', 'RUTA', 'PATH' ),
-       'url_query'                 => array( '0', 'PESCUDA', 'QUERY' ),
+       'url_query'                 => array( '0', 'PESCUDA', 'BUSCA', 'QUERY' ),
        'pagesincategory_all'       => array( '0', 'todos', 'all' ),
        'pagesincategory_pages'     => array( '0', 'páxinas', 'pages' ),
        'pagesincategory_subcats'   => array( '0', 'subcategorías', 'subcats' ),
index 723eac8..f8268dd 100644 (file)
@@ -33,29 +33,51 @@ $namespaceAliases = array(
 );
 
 $specialPageAliases = array(
+       'Activeusers'               => array( 'MeaHoʻohanaNei', 'MeaHoohanaNei' ),
+       'Allmessages'               => array( 'PūlonoApau', 'PulonoApau' ),
        'Ancientpages'              => array( 'ʻAoʻaoKahiko', 'AoaoKahiko' ),
+       'Blankpage'                 => array( 'ʻAoʻaoHakahaka', 'AoaoHakahaka' ),
        'Categories'                => array( 'Māhele', 'Mahele' ),
+       'ChangeEmail'               => array( 'LoliLekauila' ),
+       'Confirmemail'              => array( 'HōʻoiaLekauila', 'HōoiaLekauila', 'HoʻoiaLekauila', 'HooiaLekauila' ),
        'Contributions'             => array( 'Haʻawina', 'Haawina' ),
        'CreateAccount'             => array( 'Kāinoa', 'Kainoa' ),
+       'Diff'                      => array( 'ʻOkoʻa', 'Okoa' ),
        'Emailuser'                 => array( 'LekaUila' ),
+       'Export'                    => array( 'Kāpuka', 'Kapuka' ),
+       'Filepath'                  => array( 'AlaWaihona' ),
+       'Import'                    => array( 'Kākomo', 'Kakomo' ),
+       'LinkSearch'                => array( 'HuliLoulou' ),
+       'Listadmins'                => array( 'HeluKahu' ),
+       'Listbots'                  => array( 'HeluLōpako', 'HeluLopako' ),
+       'Listredirects'             => array( 'HeluKiahou' ),
+       'Listusers'                 => array( 'HeluMeaHoʻohana', 'HeluMeaHoohana' ),
+       'Log'                       => array( 'Moʻolelo', 'Moolelo' ),
        'Longpages'                 => array( 'ʻAoʻaoLoa', 'AoaoLoa' ),
+       'MIMEsearch'                => array( 'HuliMIME' ),
        'Movepage'                  => array( 'HoʻoneʻeʻAoʻao', 'HooneeAoao' ),
        'Mycontributions'           => array( 'KaʻuHaʻawina', 'KauHaawina' ),
        'Mypage'                    => array( 'KaʻuʻAoʻao', 'KauAoao' ),
-       'Mytalk'                    => array( 'KaʻuKūkākūkā', 'KauKukakuka' ),
+       'Mytalk'                    => array( 'KaʻuWalaʻau', 'KauWalaau' ),
        'Newpages'                  => array( 'ʻAoʻaoHou', 'AoaoHou' ),
        'Preferences'               => array( 'Makemake' ),
        'Randompage'                => array( 'Kaulele' ),
        'Recentchanges'             => array( 'NāLoliHou', 'NaLoliHou' ),
+       'Redirect'                  => array( 'Kiahou' ),
        'Search'                    => array( 'Huli' ),
        'Shortpages'                => array( 'ʻAoʻaoPōkole', 'AoaoPokole' ),
        'Specialpages'              => array( 'PapaNui' ),
+       'Statistics'                => array( 'ʻIkehelupili', 'Ikehelupili' ),
+       'Tags'                      => array( 'Lepili' ),
        'Upload'                    => array( 'Hoʻouka', 'Hoouka' ),
+       'Userlogin'                 => array( 'ʻEʻe', 'Ee' ),
        'Userlogout'                => array( 'Haʻalele', 'Haalele' ),
-       'Watchlist'                 => array( 'PapaNānāPono', 'PapaNanaPono' ),
+       'Version'                   => array( 'Mana' ),
+       'Watchlist'                 => array( 'PapaKiaʻi', 'PapaKiai' ),
 );
 
 $magicWords = array(
+       'redirect'                  => array( '0', '#KIAHOU', '#REDIRECT' ),
        'currentmonth'              => array( '1', 'KĒIAMAHINA', 'KEIAMAHINA', 'CURRENTMONTH', 'CURRENTMONTH2' ),
        'currentmonthname'          => array( '1', 'KĒIAINOAMAHINA', 'KEIAINOAMAHINA', 'CURRENTMONTHNAME' ),
        'currentday'                => array( '1', 'KĒIALĀ', 'KEIALA', 'CURRENTDAY' ),
@@ -68,14 +90,31 @@ $magicWords = array(
        'numberofarticles'          => array( '1', 'HELUMEA', 'NUMBEROFARTICLES' ),
        'numberoffiles'             => array( '1', 'HELUWAIHONA', 'NUMBEROFFILES' ),
        'numberofusers'             => array( '1', 'HELUMEAHOʻOHANA', 'HELUMEAHOOHANA', 'NUMBEROFUSERS' ),
+       'numberofactiveusers'       => array( '1', 'HELUMEAHOʻOHANANEI', 'HELUMEAHOOHANANEI', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'HELULOLI', 'NUMBEROFEDITS' ),
        'pagename'                  => array( '1', 'INOAʻAOʻAO', 'INOAAOAO', 'PAGENAME' ),
+       'namespace'                 => array( '1', 'LEWAINOA', 'NAMESPACE' ),
+       'namespacenumber'           => array( '1', 'HELULEWAINOA', 'NAMESPACENUMBER' ),
        'img_right'                 => array( '1', 'ʻākau', 'ākau', 'akau', 'right' ),
        'img_left'                  => array( '1', 'hema', 'left' ),
        'img_none'                  => array( '1', 'ʻaʻohe', 'aohe', 'none' ),
+       'img_middle'                => array( '1', 'waena', 'middle' ),
        'img_link'                  => array( '1', 'loulou=$1', 'link=$1' ),
+       'sitename'                  => array( '1', 'INOAKAHUA', 'SITENAME' ),
+       'pageid'                    => array( '0', 'IDʻAOʻAO', 'IDAOAO', 'PAGEID' ),
+       'server'                    => array( '0', 'KIKOWAENAPŪNAEWELE', 'KIKOWAENAPUNAEWELE', 'SERVER' ),
+       'servername'                => array( '0', 'INOAKIKOWAENAPŪNAEWELE', 'INOAKIKOWAENAPUNAEWELE', 'SERVERNAME' ),
+       'grammar'                   => array( '0', 'PILINAʻŌLELO', 'PILINAŌLELO', 'PILINAOLELO', 'GRAMMAR:' ),
+       'gender'                    => array( '0', 'KEKA', 'GENDER:' ),
        'currentweek'               => array( '1', 'KĒIAPULE', 'KEIAPULE', 'CURRENTWEEK' ),
+       'raw'                       => array( '0', 'MAKA:', 'RAW:' ),
        'language'                  => array( '0', '#ʻŌLELO', '#ŌLELO', '#OLELO', '#LANGUAGE:' ),
        'numberofadmins'            => array( '1', 'HELUKAHU', 'NUMBEROFADMINS' ),
+       'special'                   => array( '0', 'kūikawā', 'special' ),
+       'filepath'                  => array( '0', 'ALAWAIHONA:', 'FILEPATH:' ),
+       'url_query'                 => array( '0', 'NĪNAU', 'NINAU', 'QUERY' ),
+       'pagesincategory_all'       => array( '0', 'apau', 'all' ),
+       'pagesincategory_pages'     => array( '0', 'ʻaoʻao', 'aoao', 'pages' ),
+       'pagesincategory_files'     => array( '0', 'waihona', 'files' ),
 );
 
index 3c99df0..1f578a3 100644 (file)
@@ -46,6 +46,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'הודעות_המערכת' ),
        'AllMyUploads'              => array( 'כל_ההעלאות_שלי' ),
        'Allpages'                  => array( 'כל_הדפים' ),
+       'ApiHelp'                   => array( 'עזרת_API' ),
        'Ancientpages'              => array( 'דפים_מוזנחים' ),
        'Badtitle'                  => array( 'כותרת_שגויה' ),
        'Blankpage'                 => array( 'דף_ריק' ),
@@ -53,7 +54,7 @@ $specialPageAliases = array(
        'Booksources'               => array( 'משאבי_ספרות', 'משאבי_ספרות_חיצוניים' ),
        'BrokenRedirects'           => array( 'הפניות_לא_תקינות', 'הפניות_שבורות' ),
        'Categories'                => array( 'קטגוריות', 'רשימת_קטגוריות' ),
-       'ChangeEmail'               => array( 'שינוי_דואר_אלקטרוני', 'שינוי_דואל' ),
+       'ChangeEmail'               => array( 'שינוי_דואר_אלקטרוני', 'שינוי_דוא"ל' ),
        'ChangePassword'            => array( 'שינוי_סיסמה' ),
        'ComparePages'              => array( 'השוואת_דפים' ),
        'Confirmemail'              => array( 'אימות_כתובת_דואר' ),
@@ -61,6 +62,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'הרשמה_לחשבון' ),
        'Deadendpages'              => array( 'דפים_ללא_קישורים' ),
        'DeletedContributions'      => array( 'תרומות_מחוקות' ),
+       'Diff'                      => array( 'הבדלים', 'הבדל' ),
        'DoubleRedirects'           => array( 'הפניות_כפולות' ),
        'EditWatchlist'             => array( 'עריכת_רשימת_המעקב' ),
        'Emailuser'                 => array( 'שליחת_דואר_למשתמש' ),
@@ -79,12 +81,13 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'רשימת_קבצים', 'רשימת_תמונות', 'קבצים', 'תמונות' ),
        'Listgrouprights'           => array( 'רשימת_הרשאות_לקבוצה' ),
        'Listredirects'             => array( 'רשימת_הפניות', 'הפניות' ),
-       'Listusers'                 => array( 'רשימת_משתמשים', 'משתמשים' ),
        'ListDuplicatedFiles'       => array( 'רשימת_קבצים_כפולים' ),
+       'Listusers'                 => array( 'רשימת_משתמשים', 'משתמשים' ),
        'Lockdb'                    => array( 'נעילת_בסיס_הנתונים' ),
        'Log'                       => array( 'יומנים' ),
        'Lonelypages'               => array( 'דפים_יתומים' ),
        'Longpages'                 => array( 'דפים_ארוכים' ),
+       'MediaStatistics'           => array( 'סטטיסטיקות_מדיה' ),
        'MergeHistory'              => array( 'מיזוג_גרסאות' ),
        'MIMEsearch'                => array( 'חיפוש_MIME' ),
        'Mostcategories'            => array( 'הקטגוריות_הרבות_ביותר', 'הדפים_מרובי-הקטגוריות_ביותר' ),
@@ -103,6 +106,7 @@ $specialPageAliases = array(
        'Newimages'                 => array( 'קבצים_חדשים', 'תמונות_חדשות', 'גלריית_קבצים_חדשים', 'גלריית_תמונות_חדשות' ),
        'Newpages'                  => array( 'דפים_חדשים' ),
        'PagesWithProp'             => array( 'דפים_עם_מאפיינים', 'דפים_לפי_מאפיינים' ),
+       'PageLanguage'              => array( 'שפת_הדף' ),
        'PasswordReset'             => array( 'איפוס_סיסמה' ),
        'PermanentLink'             => array( 'קישור_קבוע' ),
        'Popularpages'              => array( 'הדפים_הנצפים_ביותר', 'דפים_פופולריים' ),
@@ -118,11 +122,12 @@ $specialPageAliases = array(
        'Redirect'                  => array( 'הפניה' ),
        'ResetTokens'               => array( 'איפוס_אסימונים' ),
        'Revisiondelete'            => array( 'מחיקת_ושחזור_גרסאות' ),
+       'RunJobs'                   => array( 'הרצת_משימות' ),
        'Search'                    => array( 'חיפוש' ),
        'Shortpages'                => array( 'דפים_קצרים' ),
        'Specialpages'              => array( 'דפים_מיוחדים' ),
        'Statistics'                => array( 'סטטיסטיקות' ),
-       'Tags'                      => array( 'תגיות' ),
+       'Tags'                      => array( 'תגיות', 'תגים' ),
        'TrackingCategories'        => array( 'קטגוריות_מעקב' ),
        'Unblock'                   => array( 'שחרור_חסימה' ),
        'Uncategorizedcategories'   => array( 'קטגוריות_חסרות_קטגוריה' ),
@@ -185,7 +190,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'מספר משתמשים', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'מספר משתמשים פעילים', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'מספר עריכות', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'מספר צפיות', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'שם הדף', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'שם הדף מקודד', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'מרחב השם', 'NAMESPACE' ),
index 9abd595..d9d3ea4 100644 (file)
@@ -120,7 +120,168 @@ $specialPageAliases = array(
 );
 
 $magicWords = array(
-       'redirect'                  => array( '0', '#अनुप्रेषित', '#REDIRECT' ),
+       'redirect'                  => array( '0', '#पुनर्प्रेषित', '#अनुप्रेषित', '#REDIRECT' ),
+       'notoc'                     => array( '0', '__बिना_अनुक्रम__', '__विषय_सूची_हीन__', '__NOTOC__' ),
+       'nogallery'                 => array( '0', '__गैलरी_नहीं__', '__NOGALLERY__' ),
+       'forcetoc'                  => array( '0', '__अनुक्रम_दिखाएँ__', '__विषय_सूची_दिखाएँ__', '__विषय_सूची_दिखायें__', '__FORCETOC__' ),
+       'toc'                       => array( '0', '__अनुक्रम__', '__विषय_सूची__', '__TOC__' ),
+       'noeditsection'             => array( '0', '__अनुभाग_सम्पादन_नहीं__', '__NOEDITSECTION__' ),
+       'currentmonth'              => array( '1', 'वर्तमान_माह', 'वर्तमान_माह2', 'वर्तमान_माह२', 'CURRENTMONTH', 'CURRENTMONTH2' ),
+       'currentmonth1'             => array( '1', 'वर्तमान_माह1', 'वर्तमान_माह१', 'CURRENTMONTH1' ),
+       'currentmonthname'          => array( '1', 'वर्तमान_माह_नाम', 'CURRENTMONTHNAME' ),
+       'currentmonthnamegen'       => array( '1', 'वर्तमान_माह_सम्बन्ध', 'CURRENTMONTHNAMEGEN' ),
+       'currentmonthabbrev'        => array( '1', 'वर्तमान_माह_संक्षेप', 'CURRENTMONTHABBREV' ),
+       'currentday'                => array( '1', 'वर्तमान_दिन', 'CURRENTDAY' ),
+       'currentday2'               => array( '1', 'वर्तमान_दिन2', 'वर्तमान_दिन२', 'CURRENTDAY2' ),
+       'currentdayname'            => array( '1', 'वर्तमान_दिन_नाम', 'CURRENTDAYNAME' ),
+       'currentyear'               => array( '1', 'वर्तमान_वर्ष', 'CURRENTYEAR' ),
+       'currenttime'               => array( '1', 'वर्तमान_समय', 'CURRENTTIME' ),
+       'currenthour'               => array( '1', 'वर्तमान_घंटा', 'CURRENTHOUR' ),
+       'localmonth'                => array( '1', 'स्थानीय_माह', 'स्थानीय_माह2', 'स्थानीय_माह२', 'LOCALMONTH', 'LOCALMONTH2' ),
+       'localmonth1'               => array( '1', 'स्थानीय_माह1', 'स्थानीय_माह१', 'LOCALMONTH1' ),
+       'localmonthname'            => array( '1', 'स्थानीय_माह_नाम', 'LOCALMONTHNAME' ),
+       'localmonthnamegen'         => array( '1', 'स्थानीय_माह_सम्बन्ध', 'LOCALMONTHNAMEGEN' ),
+       'localmonthabbrev'          => array( '1', 'स्थानीय_माह_संक्षेप', 'LOCALMONTHABBREV' ),
+       'localday'                  => array( '1', 'स्थानीय_दिन', 'LOCALDAY' ),
+       'localday2'                 => array( '1', 'स्थानीय_दिन2', 'स्थानीय_दिन२', 'LOCALDAY2' ),
+       'localdayname'              => array( '1', 'स्थानीय_दिन_नाम', 'LOCALDAYNAME' ),
+       'localyear'                 => array( '1', 'स्थानीय_वर्ष', 'LOCALYEAR' ),
+       'localtime'                 => array( '1', 'स्थानीय_समय', 'LOCALTIME' ),
+       'localhour'                 => array( '1', 'स्थानीय_घंटा', 'LOCALHOUR' ),
+       'numberofpages'             => array( '1', 'पृष्ठ_संख्या', 'NUMBEROFPAGES' ),
+       'numberofarticles'          => array( '1', 'लेख_संख्या', 'NUMBEROFARTICLES' ),
+       'numberoffiles'             => array( '1', 'फ़ाइल_संख्या', 'फाइल_संख्या', 'NUMBEROFFILES' ),
+       'numberofusers'             => array( '1', 'सदस्य_संख्या', 'NUMBEROFUSERS' ),
+       'numberofactiveusers'       => array( '1', 'सक्रिय_सदस्य_संख्या', 'NUMBEROFACTIVEUSERS' ),
+       'numberofedits'             => array( '1', 'सम्पादन_संख्या', 'NUMBEROFEDITS' ),
+       'pagename'                  => array( '1', 'पृष्ठ_नाम', 'PAGENAME' ),
+       'pagenamee'                 => array( '1', 'पृष्ठ_नाम_कोड', 'PAGENAMEE' ),
+       'namespace'                 => array( '1', 'नामस्थान', 'NAMESPACE' ),
+       'namespacee'                => array( '1', 'नामस्थान_कोड', 'NAMESPACEE' ),
+       'namespacenumber'           => array( '1', 'नामस्थान_संख्या', 'NAMESPACENUMBER' ),
+       'talkspace'                 => array( '1', 'चर्चा_स्थान', 'TALKSPACE' ),
+       'talkspacee'                => array( '1', 'चर्चा_स्थान_कोड', 'TALKSPACEE' ),
+       'subjectspace'              => array( '1', 'सामग्री_स्थान', 'लेख_स्थान', 'SUBJECTSPACE', 'ARTICLESPACE' ),
+       'subjectspacee'             => array( '1', 'सामग्री_स्थान_कोड', 'लेख_स्थान_कोड', 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
+       'fullpagename'              => array( '1', 'पूर्ण_पृष्ठ_नाम', 'FULLPAGENAME' ),
+       'fullpagenamee'             => array( '1', 'पूर्ण_पृष्ठ_नाम_कोड', 'FULLPAGENAMEE' ),
+       'subpagename'               => array( '1', 'उपपृष्ठ_नाम', 'SUBPAGENAME' ),
+       'subpagenamee'              => array( '1', 'उपपृष्ठ_नाम_कोड', 'SUBPAGENAMEE' ),
+       'rootpagename'              => array( '1', 'मूल_पृष्ठ_नाम', 'ROOTPAGENAME' ),
+       'rootpagenamee'             => array( '1', 'मूल_पृष्ठ_नाम_कोड', 'ROOTPAGENAMEE' ),
+       'basepagename'              => array( '1', 'तल_पृष्ठ_नाम', 'BASEPAGENAME' ),
+       'basepagenamee'             => array( '1', 'तल_पृष्ठ_नाम_कोड', 'BASEPAGENAMEE' ),
+       'talkpagename'              => array( '1', 'चर्चा_पृष्ठ_नाम', 'TALKPAGENAME' ),
+       'talkpagenamee'             => array( '1', 'चर्चा_पृष्ठ_नाम_कोड', 'TALKPAGENAMEE' ),
+       'subjectpagename'           => array( '1', 'सामग्री_पृष्ठ_नाम', 'लेख_पृष्ठ_नाम', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
+       'subjectpagenamee'          => array( '1', 'सामग्री_पृष्ठ_नाम_कोड', 'लेख_पृष्ठ_नाम_कोड', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
+       'msg'                       => array( '0', 'सन्देश:', 'संदेश:', 'MSG:' ),
+       'subst'                     => array( '0', 'प्रति:', 'SUBST:' ),
+       'safesubst'                 => array( '0', 'सुरक्षित_प्रति:', 'SAFESUBST:' ),
+       'msgnw'                     => array( '0', 'सन्देश_नोविकी:', 'संदेश_नोविकी:', 'MSGNW:' ),
+       'img_thumbnail'             => array( '1', 'अंगूठाकार', 'अंगूठा', 'thumbnail', 'thumb' ),
+       'img_manualthumb'           => array( '1', 'अंगूठाकार=$1', 'अंगूठा=$1', 'thumbnail=$1', 'thumb=$1' ),
+       'img_right'                 => array( '1', 'दाएँ', 'दायें', 'दाएं', 'right' ),
+       'img_left'                  => array( '1', 'बाएँ', 'बायें', 'बाएं', 'left' ),
+       'img_none'                  => array( '1', 'कोई_नहीं', 'none' ),
+       'img_width'                 => array( '1', '$1पिक्सेल', '$1px' ),
+       'img_center'                => array( '1', 'केन्द्र', 'केंद्र', 'केन्द्रित', 'केंद्रित', 'center', 'centre' ),
+       'img_framed'                => array( '1', 'फ़्रेम', 'फ्रेम', 'framed', 'enframed', 'frame' ),
+       'img_frameless'             => array( '1', 'फ़्रेमहीन', 'फ्रेमहीन', 'frameless' ),
+       'img_lang'                  => array( '1', 'भाषा=$1', 'lang=$1' ),
+       'img_page'                  => array( '1', 'पृष्ठ=$1', 'पृष्ठ_$1', 'page=$1', 'page $1' ),
+       'img_upright'               => array( '1', 'खड़ी', 'खड़ी=$1', 'खड़ी_$1', 'upright', 'upright=$1', 'upright $1' ),
+       'img_border'                => array( '1', 'किनारा', 'बॉर्डर', 'border' ),
+       'img_baseline'              => array( '1', 'आधार_रेखा', 'baseline' ),
+       'img_sub'                   => array( '1', 'पद', 'sub' ),
+       'img_super'                 => array( '1', 'मूर्ध', 'super', 'sup' ),
+       'img_top'                   => array( '1', 'शीर्ष', 'top' ),
+       'img_text_top'              => array( '1', 'पाठ-शीर्ष', 'text-top' ),
+       'img_middle'                => array( '1', 'मध्य', 'middle' ),
+       'img_bottom'                => array( '1', 'तल', 'bottom' ),
+       'img_text_bottom'           => array( '1', 'पाठ-तल', 'text-bottom' ),
+       'img_link'                  => array( '1', 'कड़ी=$1', 'link=$1' ),
+       'img_alt'                   => array( '1', 'पाठ=$1', 'alt=$1' ),
+       'img_class'                 => array( '1', 'वर्ग=$1', 'class=$1' ),
+       'int'                       => array( '0', 'विश्व:', 'INT:' ),
+       'sitename'                  => array( '1', 'साइट_नाम', 'SITENAME' ),
+       'ns'                        => array( '0', 'नामस्थान:', 'NS:' ),
+       'nse'                       => array( '0', 'नामस्थान_कोड:', 'NSE:' ),
+       'localurl'                  => array( '0', 'स्थानीय_यू_आर_एल:', 'LOCALURL:' ),
+       'localurle'                 => array( '0', 'स्थानीय_यू_आर_एल_कोड:', 'LOCALURLE:' ),
+       'articlepath'               => array( '0', 'लेख_पथ', 'ARTICLEPATH' ),
+       'pageid'                    => array( '0', 'पृष्ठ_आइ_डी', 'PAGEID' ),
+       'server'                    => array( '0', 'सर्वर', 'SERVER' ),
+       'servername'                => array( '0', 'सर्वर_नाम', 'SERVERNAME' ),
+       'scriptpath'                => array( '0', 'स्क्रिप्ट_पथ', 'SCRIPTPATH' ),
+       'stylepath'                 => array( '0', 'स्टाइल_पथ', 'STYLEPATH' ),
+       'grammar'                   => array( '0', 'व्याकरण:', 'GRAMMAR:' ),
+       'gender'                    => array( '0', 'लिंग:', 'GENDER:' ),
+       'currentweek'               => array( '1', 'वर्तमान_सप्ताह', 'CURRENTWEEK' ),
+       'currentdow'                => array( '1', 'वर्तमान_सप्ताह_का_दिन', 'CURRENTDOW' ),
+       'localweek'                 => array( '1', 'स्थानीय_सप्ताह', 'LOCALWEEK' ),
+       'localdow'                  => array( '1', 'स्थानीय_सप्ताह_का_दिन', 'LOCALDOW' ),
+       'revisionid'                => array( '1', 'अवतरण_संख्या', 'REVISIONID' ),
+       'revisionday'               => array( '1', 'अवतरण_दिन', 'REVISIONDAY' ),
+       'revisionday2'              => array( '1', 'अवतरण_दिन2', 'अवतरण_दिन२', 'REVISIONDAY2' ),
+       'revisionmonth'             => array( '1', 'अवतरण_माह', 'REVISIONMONTH' ),
+       'revisionmonth1'            => array( '1', 'अवतरण_माह1', 'अवतरण_माह१', 'REVISIONMONTH1' ),
+       'revisionyear'              => array( '1', 'अवतरण_वर्ष', 'REVISIONYEAR' ),
+       'revisiontimestamp'         => array( '1', 'अवतरण_समय', 'REVISIONTIMESTAMP' ),
+       'revisionuser'              => array( '1', 'अवतरण_सदस्य', 'REVISIONUSER' ),
+       'revisionsize'              => array( '1', 'अवतरण_आकार', 'REVISIONSIZE' ),
+       'plural'                    => array( '0', 'वचन:', 'PLURAL:' ),
+       'fullurl'                   => array( '0', 'पूर्ण_यू_आर_एल:', 'FULLURL:' ),
+       'fullurle'                  => array( '0', 'पूर्ण_यू_आर_एल_कोड:', 'FULLURLE:' ),
+       'canonicalurl'              => array( '0', 'मानक_यू_आर_एल:', 'CANONICALURL:' ),
+       'canonicalurle'             => array( '0', 'मानक_यू_आर_एल_कोड:', 'CANONICALURLE:' ),
+       'lcfirst'                   => array( '0', 'छोटे_अक्षर_से_शुरू:', 'LCFIRST:' ),
+       'ucfirst'                   => array( '0', 'बड़े_अक्षर_से_शुरू:', 'UCFIRST:' ),
+       'lc'                        => array( '0', 'छोटे_अक्षर:', 'LC:' ),
+       'uc'                        => array( '0', 'बड़े_अक्षर:', 'UC:' ),
+       'raw'                       => array( '0', 'सादा:', 'RAW:' ),
+       'displaytitle'              => array( '1', 'दृश्य_शीर्षक', 'DISPLAYTITLE' ),
+       'rawsuffix'                 => array( '1', 'उ', 'R' ),
+       'nocommafysuffix'           => array( '0', 'वि_नहीं', 'NOSEP' ),
+       'newsectionlink'            => array( '1', '__विषय_जोड़ें_कड़ी__', '__NEWSECTIONLINK__' ),
+       'nonewsectionlink'          => array( '1', '__विषय_जोड़े_कड़ी_रहित__', '__NONEWSECTIONLINK__' ),
+       'currentversion'            => array( '1', 'वर्तमान_अवतरण', 'CURRENTVERSION' ),
+       'urlencode'                 => array( '0', 'यू_आर_एल_कोड:', 'URLENCODE:' ),
+       'anchorencode'              => array( '0', 'ऐंकर_कोड', 'ANCHORENCODE' ),
+       'currenttimestamp'          => array( '1', 'वर्तमान_समय_मुहर', 'CURRENTTIMESTAMP' ),
+       'localtimestamp'            => array( '1', 'स्थानीय_समय_मुहर', 'LOCALTIMESTAMP' ),
+       'directionmark'             => array( '1', 'दिशा_चिन्ह', 'DIRECTIONMARK', 'DIRMARK' ),
+       'language'                  => array( '0', '#भाषा:', '#LANGUAGE:' ),
+       'contentlanguage'           => array( '1', 'सामग्री_भाषा', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
+       'pagesinnamespace'          => array( '1', 'नामस्थान_में_पृष्ठ:', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
+       'numberofadmins'            => array( '1', 'प्रबन्धक_संख्या', 'प्रबंधक_संख्या', 'NUMBEROFADMINS' ),
+       'formatnum'                 => array( '0', 'संख्या_रूप', 'FORMATNUM' ),
+       'padleft'                   => array( '0', 'बाएँ_जोड़ें', 'बायें_जोड़ें', 'PADLEFT' ),
+       'padright'                  => array( '0', 'दाएँ_जोड़ें', 'दायें_जोड़ें', 'PADRIGHT' ),
+       'special'                   => array( '0', 'विशेष', 'special' ),
+       'speciale'                  => array( '0', 'विशेष_कोड', 'speciale' ),
+       'defaultsort'               => array( '1', 'मूल_सॉर्ट:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
+       'filepath'                  => array( '0', 'फ़ाइल_पथ:', 'FILEPATH:' ),
+       'tag'                       => array( '0', 'टैग', 'tag' ),
+       'hiddencat'                 => array( '1', '__छुपी_श्रेणी__', '__छिपी_श्रेणी__', '__HIDDENCAT__' ),
+       'pagesincategory'           => array( '1', 'श्रेणी_में_पृष्ठ', 'PAGESINCATEGORY', 'PAGESINCAT' ),
+       'pagesize'                  => array( '1', 'पृष्ठ_आकार', 'PAGESIZE' ),
+       'index'                     => array( '1', '__सूचीबद्ध__', '__INDEX__' ),
+       'noindex'                   => array( '1', '__असूचीबद्ध__', '__NOINDEX__' ),
+       'numberingroup'             => array( '1', 'समूह_संख्या', 'NUMBERINGROUP', 'NUMINGROUP' ),
+       'staticredirect'            => array( '1', '__स्थिर_पुनर्प्रेषण__', '__स्थिर_अनुप्रेषण__', '__STATICREDIRECT__' ),
+       'protectionlevel'           => array( '1', 'सुरक्षा_स्तर', 'PROTECTIONLEVEL' ),
+       'cascadingsources'          => array( '1', 'सीढ़ी_सुरक्षा_स्रोत', 'CASCADINGSOURCES' ),
+       'formatdate'                => array( '0', 'तिथि_रूप', 'formatdate', 'dateformat' ),
+       'url_path'                  => array( '0', 'पथ', 'PATH' ),
+       'url_wiki'                  => array( '0', 'विकी', 'WIKI' ),
+       'url_query'                 => array( '0', 'पाठ', 'QUERY' ),
+       'defaultsort_noerror'       => array( '0', 'त्रुटि_नहीं', 'noerror' ),
+       'defaultsort_noreplace'     => array( '0', 'बदलें_नहीं', 'noreplace' ),
+       'pagesincategory_all'       => array( '0', 'सभी', 'all' ),
+       'pagesincategory_pages'     => array( '0', 'पृष्ठ', 'pages' ),
+       'pagesincategory_subcats'   => array( '0', 'श्रेणियाँ', 'subcats' ),
+       'pagesincategory_files'     => array( '0', 'फ़ाइलें', 'फाइलें', 'files' ),
 );
 
 $digitTransformTable = array(
index 53cbf54..65077c1 100644 (file)
@@ -85,6 +85,7 @@ $specialPageAliases = array(
        'Mycontributions'           => array( 'Moji_doprinosi' ),
        'Mypage'                    => array( 'Moja_stranica' ),
        'Mytalk'                    => array( 'Moj_razgovor' ),
+       'Myuploads'                 => array( 'Moje_datoteke' ),
        'Newimages'                 => array( 'Nove_datoteke', 'Nove_slike' ),
        'Newpages'                  => array( 'Nove_stranice' ),
        'Popularpages'              => array( 'Popularne_stranice' ),
@@ -117,7 +118,7 @@ $specialPageAliases = array(
        'Userlogin'                 => array( 'Prijava' ),
        'Userlogout'                => array( 'Odjava' ),
        'Userrights'                => array( 'Suradnička_prava' ),
-       'Version'                   => array( 'Verzija' ),
+       'Version'                   => array( 'Verzija', 'Inačica' ),
        'Wantedcategories'          => array( 'Tražene_kategorije' ),
        'Wantedfiles'               => array( 'Tražene_datoteke' ),
        'Wantedpages'               => array( 'Tražene_stranice' ),
@@ -128,7 +129,7 @@ $specialPageAliases = array(
 );
 
 $magicWords = array(
-       'redirect'                  => array( '0', '#PREUSMJERI', '#REDIRECT' ),
+       'redirect'                  => array( '0', '#Preusmjeri', '#PREUSMJERI', '#REDIRECT' ),
        'notoc'                     => array( '0', '__BEZSADRŽAJA__', '__NOTOC__' ),
        'nogallery'                 => array( '0', '__BEZGALERIJE__', '__NOGALLERY__' ),
        'forcetoc'                  => array( '0', '__UKLJUČISADRŽAJ__', '__FORCETOC__' ),
@@ -162,7 +163,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'BROJSURADNIKA', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'BROJAKTIVNIHSURADNIKA', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'BROJUREĐIVANJA', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'BROJPREGLEDA', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'IMESTRANICE', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'IMESTRANICEE', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'IMENSKIPROSTOR', 'NAMESPACE' ),
@@ -190,6 +190,7 @@ $magicWords = array(
        'img_center'                => array( '1', 'središte', 'center', 'centre' ),
        'img_framed'                => array( '1', 'okvir', 'framed', 'enframed', 'frame' ),
        'img_frameless'             => array( '1', 'bezokvira', 'frameless' ),
+       'img_lang'                  => array( '1', 'jezik=$1', 'lang=$1' ),
        'img_page'                  => array( '1', 'stranica=$1', 'stranica $1', 'page=$1', 'page $1' ),
        'img_upright'               => array( '1', 'uspravno=$1', 'uspravno $1', 'upright', 'upright=$1', 'upright $1' ),
        'img_border'                => array( '1', 'obrub', 'border' ),
@@ -201,6 +202,7 @@ $magicWords = array(
        'img_middle'                => array( '1', 'pola', 'middle' ),
        'img_bottom'                => array( '1', 'dno', 'bottom' ),
        'img_text_bottom'           => array( '1', 'tekst-dno', 'text-bottom' ),
+       'img_link'                  => array( '1', 'poveznica=$1', 'link=$1' ),
        'sitename'                  => array( '1', 'IMEPROJEKTA', 'SITENAME' ),
        'ns'                        => array( '0', 'IMP:', 'NS:' ),
        'localurl'                  => array( '0', 'MJESNIURL:', 'LOCALURL:' ),
index 22219b2..fb8fdb3 100644 (file)
@@ -70,6 +70,7 @@ $specialPageAliases = array(
        'Deadendpages'              => array( 'Strony_bjez_wotkazow' ),
        'DeletedContributions'      => array( 'Zničene_přinoški' ),
        'DoubleRedirects'           => array( 'Dwójne_daleposrědkowanja' ),
+       'EditWatchlist'             => array( 'Wobkedźbowanki_wobdźěłać' ),
        'Emailuser'                 => array( 'E-Mejl' ),
        'Export'                    => array( 'Eksport' ),
        'Fewestrevisions'           => array( 'Strony_z_najmjenje_wersijemi' ),
@@ -104,6 +105,7 @@ $specialPageAliases = array(
        'Mytalk'                    => array( 'Moja_diskusijna_strona' ),
        'Newimages'                 => array( 'Nowe_dataje' ),
        'Newpages'                  => array( 'Nowe_strony' ),
+       'PermanentLink'             => array( 'Trajny_wotkaz' ),
        'Popularpages'              => array( 'Najwoblubowaniše_strony' ),
        'Preferences'               => array( 'Nastajenja' ),
        'Prefixindex'               => array( 'Prefiksindeks' ),
@@ -113,6 +115,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'Připadne_daleposrědkowanje' ),
        'Recentchanges'             => array( 'Aktualne_změny' ),
        'Recentchangeslinked'       => array( 'Změny_zwjazanych_stronow' ),
+       'Redirect'                  => array( 'Dalesposrědkowanje' ),
        'Revisiondelete'            => array( 'Wušmórnjenje_wersijow' ),
        'Search'                    => array( 'Pytać' ),
        'Shortpages'                => array( 'Najkrótše_strony' ),
index eca285e..0019a4b 100644 (file)
@@ -188,7 +188,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'SZERKESZTŐKSZÁMA', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'AKTÍVSZERKESZTŐKSZÁMA', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'SZERKESZTÉSEKSZÁMA', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'MEGTEKINTÉSEKSZÁMA', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'OLDALNEVE', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'OLDALNEVEE', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'NÉVTERE', 'NAMESPACE' ),
index dc2ea35..3510931 100644 (file)
@@ -84,7 +84,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'JUMLAHPENGGUNA', 'JUMPENG', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'JUMLAHPENGGUNAAKTIF', 'JUMPENGTIF', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'JUMLAHSUNTINGAN', 'JUMTING', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'JUMLAHTAMPILAN', 'JUMTAM', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'NAMAHALAMAN', 'NAMMAN', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'NAMAHALAMANE', 'NAMMANE', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'RUANGNAMA', 'RUNAM', 'NAMESPACE' ),
index 7c0f1a7..27bbe78 100644 (file)
@@ -62,21 +62,21 @@ $specialPageAliases = array(
        'ChangeEmail'               => array( 'CambiaEmail' ),
        'ChangePassword'            => array( 'CambiaPassword' ),
        'ComparePages'              => array( 'ComparaPagine' ),
-       'Confirmemail'              => array( 'ConfermaEMail' ),
+       'Confirmemail'              => array( 'ConfermaEmail' ),
        'Contributions'             => array( 'Contributi', 'ContributiUtente', 'Edit' ),
-       'CreateAccount'             => array( 'CreaAccount' ),
+       'CreateAccount'             => array( 'CreaUtenza', 'CreaAccount' ),
        'Deadendpages'              => array( 'PagineSenzaUscita' ),
        'DeletedContributions'      => array( 'ContributiCancellati' ),
        'DoubleRedirects'           => array( 'RedirectDoppi' ),
        'EditWatchlist'             => array( 'ModificaOsservati', 'ModificaOsservatiSpeciali', 'ModificaListaSeguiti' ),
-       'Emailuser'                 => array( 'InviaEMail' ),
+       'Emailuser'                 => array( 'InviaEmail' ),
        'ExpandTemplates'           => array( 'EspandiTemplate' ),
        'Export'                    => array( 'Esporta' ),
        'Fewestrevisions'           => array( 'PagineConMenoRevisioni' ),
        'FileDuplicateSearch'       => array( 'CercaFileDuplicati' ),
        'Filepath'                  => array( 'Percorso' ),
        'Import'                    => array( 'Importa' ),
-       'Invalidateemail'           => array( 'InvalidaEMail' ),
+       'Invalidateemail'           => array( 'InvalidaEmail' ),
        'JavaScriptTest'            => array( 'TestJavaScript' ),
        'BlockList'                 => array( 'IPBloccati', 'ElencoBlocchi', 'Blocchi' ),
        'LinkSearch'                => array( 'CercaCollegamenti', 'CercaLink' ),
@@ -84,13 +84,14 @@ $specialPageAliases = array(
        'Listbots'                  => array( 'Bot', 'ElencoBot' ),
        'Listfiles'                 => array( 'File', 'Immagini' ),
        'Listgrouprights'           => array( 'ElencoPermessiGruppi', 'Privilegi' ),
-       'Listredirects'             => array( 'Redirect', 'ElencoRedirect' ),
+       'Listredirects'             => array( 'ElencoRedirect' ),
+       'ListDuplicatedFiles'       => array( 'ElencoFileDuplicati' ),
        'Listusers'                 => array( 'Utenti', 'ElencoUtenti' ),
        'Lockdb'                    => array( 'BloccaDB' ),
        'Log'                       => array( 'Registri', 'Registro' ),
        'Lonelypages'               => array( 'PagineOrfane' ),
        'Longpages'                 => array( 'PaginePiùLunghe' ),
-       'MergeHistory'              => array( 'FondiCronologia', 'UnificaCronologia' ),
+       'MergeHistory'              => array( 'UnisciCronologia' ),
        'MIMEsearch'                => array( 'RicercaMIME' ),
        'Mostcategories'            => array( 'PagineConPiùCategorie' ),
        'Mostimages'                => array( 'ImmaginiPiùRichiamate' ),
@@ -107,6 +108,7 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'MieiUpload', 'MieiEdit' ),
        'Newimages'                 => array( 'ImmaginiRecenti' ),
        'Newpages'                  => array( 'PaginePiùRecenti' ),
+       'PagesWithProp'             => array( 'PagineConProprietà' ),
        'PasswordReset'             => array( 'ReimpostaPassword' ),
        'PermanentLink'             => array( 'LinkPermanente' ),
        'Popularpages'              => array( 'PaginePiùVisitate' ),
@@ -119,12 +121,14 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'RedirectCasuale' ),
        'Recentchanges'             => array( 'UltimeModifiche' ),
        'Recentchangeslinked'       => array( 'ModificheCorrelate' ),
+       'ResetTokens'               => array( 'ReimpostaToken' ),
        'Revisiondelete'            => array( 'CancellaRevisione' ),
        'Search'                    => array( 'Ricerca', 'Cerca', 'Trova' ),
        'Shortpages'                => array( 'PaginePiùCorte' ),
        'Specialpages'              => array( 'PagineSpeciali' ),
        'Statistics'                => array( 'Statistiche' ),
        'Tags'                      => array( 'Etichette', 'Tag' ),
+       'TrackingCategories'        => array( 'CategorieMonitoraggio' ),
        'Unblock'                   => array( 'ElencoSblocchi', 'Sblocchi' ),
        'Uncategorizedcategories'   => array( 'CategorieSenzaCategorie' ),
        'Uncategorizedimages'       => array( 'ImmaginiSenzaCategorie' ),
@@ -180,7 +184,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NUMEROUTENTI', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NUMEROUTENTIATTIVI', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NUMEROMODIFICHE', 'NUMEROEDIT', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NUMEROVISITE', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'TITOLOPAGINA', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'TITOLOPAGINAE', 'PAGENAMEE' ),
        'subpagename'               => array( '1', 'NOMESOTTOPAGINA', 'SUBPAGENAME' ),
index aef8dad..caca23d 100644 (file)
@@ -60,7 +60,8 @@ $namespaceAliases = array(
 
 $specialPageAliases = array(
        'Activeusers'               => array( '活動中の利用者', '活動中の利用者一覧' ),
-       'Allmessages'               => array( 'メッセージ一覧', 'システムメッセージの一覧', '表示メッセージの一覧' ),
+       'Allmessages'               => array( 'メッセージ一覧', 'システムメッセージの一覧', '表示メッセージの一覧', '全メッセージ' ),
+       'AllMyUploads'              => array( '自分の全アップロード' ),
        'Allpages'                  => array( 'ページ一覧', '全ページ' ),
        'Ancientpages'              => array( '更新されていないページ' ),
        'Badtitle'                  => array( '不正なページ名' ),
@@ -77,6 +78,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'アカウント作成', 'アカウントの作成' ),
        'Deadendpages'              => array( '有効なページへのリンクがないページ', '行き止まりページ' ),
        'DeletedContributions'      => array( '削除された投稿記録', '削除された投稿履歴', '削除歴' ),
+       'Diff'                      => array( '差分' ),
        'DoubleRedirects'           => array( '二重リダイレクト', '二重転送' ),
        'EditWatchlist'             => array( 'ウォッチリストの編集', 'ウォッチリスト編集' ),
        'Emailuser'                 => array( 'メール送信', 'ウィキメール' ),
@@ -95,11 +97,13 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'ファイル一覧', 'ファイルリスト' ),
        'Listgrouprights'           => array( '利用者グループ権限', '利用者グループの権限一覧', '利用者権限一覧' ),
        'Listredirects'             => array( 'リダイレクト一覧', 'リダイレクトの一覧', 'リダイレクトリスト' ),
+       'ListDuplicatedFiles'       => array( '重複ファイル一覧' ),
        'Listusers'                 => array( '登録利用者一覧', '登録利用者の一覧' ),
        'Lockdb'                    => array( 'データベースロック' ),
        'Log'                       => array( 'ログ', '記録' ),
        'Lonelypages'               => array( '孤立しているページ' ),
        'Longpages'                 => array( '長いページ' ),
+       'MediaStatistics'           => array( 'メディア統計' ),
        'MergeHistory'              => array( '履歴統合' ),
        'MIMEsearch'                => array( 'MIME検索', 'MIMEタイプ検索' ),
        'Mostcategories'            => array( 'カテゴリの多いページ', 'カテゴリの多い項目' ),
@@ -118,6 +122,7 @@ $specialPageAliases = array(
        'Newimages'                 => array( '新着ファイル', '新しいファイルの一覧', '新着画像展示室' ),
        'Newpages'                  => array( '新しいページ' ),
        'PagesWithProp'             => array( 'プロパティがあるページ' ),
+       'PageLanguage'              => array( 'ページ言語' ),
        'PasswordReset'             => array( 'パスワード再設定', 'パスワードの再設定', 'パスワードのリセット', 'パスワードリセット' ),
        'PermanentLink'             => array( '固定リンク', 'パーマリンク' ),
        'Popularpages'              => array( '人気ページ' ),
@@ -126,7 +131,7 @@ $specialPageAliases = array(
        'Protectedpages'            => array( '保護されているページ' ),
        'Protectedtitles'           => array( '作成保護されているページ名' ),
        'Randompage'                => array( 'おまかせ表示' ),
-       'RandomInCategory'          => array( 'カテゴリ内おまかせ表示', 'カテゴリ中のランダムなページ' ),
+       'RandomInCategory'          => array( 'カテゴリ内おまかせ表示' ),
        'Randomredirect'            => array( 'おまかせリダイレクト', 'おまかせ転送' ),
        'Recentchanges'             => array( '最近の更新', '最近更新したページ' ),
        'Recentchangeslinked'       => array( '関連ページの更新状況', 'リンク先の更新状況' ),
@@ -138,6 +143,7 @@ $specialPageAliases = array(
        'Specialpages'              => array( '特別ページ一覧' ),
        'Statistics'                => array( '統計' ),
        'Tags'                      => array( 'タグ一覧' ),
+       'TrackingCategories'        => array( '追跡カテゴリ' ),
        'Unblock'                   => array( 'ブロック解除' ),
        'Uncategorizedcategories'   => array( 'カテゴリ未導入のカテゴリ' ),
        'Uncategorizedimages'       => array( 'カテゴリ未導入のファイル' ),
@@ -199,19 +205,21 @@ $magicWords = array(
        'numberofusers'             => array( '1', '利用者数', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', '活動利用者数', '有効な利用者数', '有効利用者数', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', '編集回数', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', '閲覧回数', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'ページ名', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'ページ名E', 'ページ名E', 'PAGENAMEE' ),
        'namespace'                 => array( '1', '名前空間', 'NAMESPACE' ),
        'namespacee'                => array( '1', '名前空間E', '名前空間E', 'NAMESPACEE' ),
+       'namespacenumber'           => array( '1', '名前空間番号', 'NAMESPACENUMBER' ),
        'talkspace'                 => array( '1', 'トーク空間', 'ノート空間', '会話空間', 'トークスペース', 'TALKSPACE' ),
        'talkspacee'                => array( '1', 'トーク空間E', 'トーク空間E', 'ノート空間E', '会話空間E', 'ノート空間E', '会話空間E', 'トークスペースE', 'トークスペースE', 'TALKSPACEE' ),
        'subjectspace'              => array( '1', '主空間', '標準空間', '記事空間', 'SUBJECTSPACE', 'ARTICLESPACE' ),
        'subjectspacee'             => array( '1', '主空間E', '標準空間E', '標準空間E', '記事空間E', '記事空間E', 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
        'fullpagename'              => array( '1', '完全なページ名', 'フルページ名', '完全な記事名', '完全記事名', 'FULLPAGENAME' ),
        'fullpagenamee'             => array( '1', '完全なページ名E', 'フルページ名E', 'フルページ名E', '完全なページ名E', 'FULLPAGENAMEE' ),
-       'subpagename'               => array( '1', 'サブページ名', 'SUBPAGENAME' ),
-       'subpagenamee'              => array( '1', 'サブページ名E', 'サブページ名E', 'SUBPAGENAMEE' ),
+       'subpagename'               => array( '1', 'サブページ名', '下位ページ名', 'SUBPAGENAME' ),
+       'subpagenamee'              => array( '1', 'サブページ名E', 'サブページ名E', '下位ページ名E', '下位ページ名E', 'SUBPAGENAMEE' ),
+       'rootpagename'              => array( '1', 'ルートページ名', 'ROOTPAGENAME' ),
+       'rootpagenamee'             => array( '1', 'ルートページ名E', 'ルートページ名E', 'ROOTPAGENAMEE' ),
        'basepagename'              => array( '1', '親ページ名', 'BASEPAGENAME' ),
        'basepagenamee'             => array( '1', '親ページ名E', '親ページ名E', 'BASEPAGENAMEE' ),
        'talkpagename'              => array( '1', 'トークページ名', '会話ページ名', 'TALKPAGENAME' ),
@@ -251,6 +259,7 @@ $magicWords = array(
        'localurl'                  => array( '0', 'ローカルURL:', 'ローカルURL:', 'LOCALURL:' ),
        'localurle'                 => array( '0', 'ローカルURLE:', 'ローカルURLE:', 'LOCALURLE:' ),
        'articlepath'               => array( '0', '記事パス', 'ARTICLEPATH' ),
+       'pageid'                    => array( '0', 'ページID', 'ページID', 'PAGEID' ),
        'server'                    => array( '0', 'サーバー', 'サーバ', 'SERVER' ),
        'servername'                => array( '0', 'サーバー名', 'サーバーネーム', 'サーバ名', 'サーバネーム', 'SERVERNAME' ),
        'scriptpath'                => array( '0', 'スクリプトパス', 'SCRIPTPATH' ),
@@ -300,7 +309,7 @@ $magicWords = array(
        'defaultsort'               => array( '1', 'デフォルトソート:', 'デフォルトソート:', 'デフォルトソートキー:', 'デフォルトカテゴリソート:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                  => array( '0', 'ファイルパス:', 'ファイルパス:', 'FILEPATH:' ),
        'tag'                       => array( '0', 'タグ', 'tag' ),
-       'hiddencat'                 => array( '1', '__カテゴリ非表示__', '__カテ非表示__', '__非表示カテ__', '__HIDDENCAT__' ),
+       'hiddencat'                 => array( '1', '__カテゴリ非表示__', '__カテ非表示__', '__非表示カテ__', '__隠しカテゴリ__', '__HIDDENCAT__' ),
        'pagesincategory'           => array( '1', 'カテゴリ内ページ数', 'PAGESINCATEGORY', 'PAGESINCAT' ),
        'pagesize'                  => array( '1', 'ページサイズ', 'PAGESIZE' ),
        'index'                     => array( '1', '__インデックス__', '__インデックス__', '__INDEX__' ),
index 4e83fe3..d34e249 100644 (file)
@@ -76,6 +76,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( '모든메시지' ),
        'AllMyUploads'              => array( '모든내올린파일', '모든내파일' ),
        'Allpages'                  => array( '모든문서' ),
+       'ApiHelp'                   => array( 'Api도움말' ),
        'Ancientpages'              => array( '오래된문서' ),
        'Badtitle'                  => array( '잘못된제목', '인식불가제목', '잘못된이름', '인식불가이름' ),
        'Blankpage'                 => array( '빈문서' ),
@@ -84,16 +85,17 @@ $specialPageAliases = array(
        'BrokenRedirects'           => array( '끊긴넘겨주기' ),
        'Categories'                => array( '분류' ),
        'ChangeEmail'               => array( '이메일바꾸기', '이메일변경' ),
-       'ChangePassword'            => array( '비밀번호바꾸기', '비밀번호변경', '비밀단어바꾸기', '비밀단어변경' ),
+       'ChangePassword'            => array( '비밀번호바꾸기', '비밀번호변경' ),
        'ComparePages'              => array( '문서비교' ),
-       'Confirmemail'              => array( '이메일인증' ),
+       'Confirmemail'              => array( '이메일확인', '이메일인증' ),
        'Contributions'             => array( '기여', '기여목록' ),
        'CreateAccount'             => array( '계정만들기', '가입' ),
        'Deadendpages'              => array( '막다른문서' ),
        'DeletedContributions'      => array( '삭제된기여' ),
+       'Diff'                      => array( '차이' ),
        'DoubleRedirects'           => array( '이중넘겨주기' ),
        'EditWatchlist'             => array( '주시문서목록편집' ),
-       'Emailuser'                 => array( '이메일보내기' ),
+       'Emailuser'                 => array( '이메일보내기', '이메일' ),
        'ExpandTemplates'           => array( '틀전개' ),
        'Export'                    => array( '내보내기' ),
        'Fewestrevisions'           => array( '역사짧은문서' ),
@@ -109,11 +111,13 @@ $specialPageAliases = array(
        'Listfiles'                 => array( '파일', '그림', '파일목록', '그림목록' ),
        'Listgrouprights'           => array( '사용자권한', '권한목록' ),
        'Listredirects'             => array( '넘겨주기목록' ),
+       'ListDuplicatedFiles'       => array( '중복된파일목록' ),
        'Listusers'                 => array( '사용자', '사용자목록' ),
        'Lockdb'                    => array( 'DB잠금', 'DB잠그기' ),
        'Log'                       => array( '기록', '로그' ),
        'Lonelypages'               => array( '외톨이문서', '홀로된문서' ),
        'Longpages'                 => array( '긴문서' ),
+       'MediaStatistics'           => array( '미디어통계' ),
        'MergeHistory'              => array( '역사합치기' ),
        'MIMEsearch'                => array( 'MIME검색', 'MIME찾기' ),
        'Mostcategories'            => array( '많이분류된문서' ),
@@ -132,7 +136,8 @@ $specialPageAliases = array(
        'Newimages'                 => array( '새파일', '새그림' ),
        'Newpages'                  => array( '새문서' ),
        'PagesWithProp'             => array( '속성별문서' ),
-       'PasswordReset'             => array( '비밀번호재설정', '비밀단어재설정', '비밀번호초기화', '비밀단어초기화' ),
+       'PageLanguage'              => array( '문서언어' ),
+       'PasswordReset'             => array( '비밀번호재설정', '비밀번호초기화' ),
        'PermanentLink'             => array( '고유링크', '영구링크' ),
        'Popularpages'              => array( '인기있는문서' ),
        'Preferences'               => array( '환경설정' ),
@@ -140,18 +145,20 @@ $specialPageAliases = array(
        'Protectedpages'            => array( '보호된문서' ),
        'Protectedtitles'           => array( '만들기보호된문서', '생성보호된문서' ),
        'Randompage'                => array( '임의문서' ),
-       'RandomInCategory'          => array( 'ë¶\84ë¥\98ì\97\90ì\9e\88ë\8a\94임의문서' ),
+       'RandomInCategory'          => array( 'ë¶\84ë¥\98ì\95\88ì\9d\98임의문서' ),
        'Randomredirect'            => array( '임의넘겨주기' ),
        'Recentchanges'             => array( '최근바뀜' ),
        'Recentchangeslinked'       => array( '링크최근바뀜' ),
        'Redirect'                  => array( '넘겨주기' ),
        'ResetTokens'               => array( '토큰재설정' ),
        'Revisiondelete'            => array( '특정판삭제' ),
+       'RunJobs'                   => array( '작업실행' ),
        'Search'                    => array( '검색', '찾기' ),
        'Shortpages'                => array( '짧은문서' ),
        'Specialpages'              => array( '특수문서', '특수기능' ),
        'Statistics'                => array( '통계' ),
        'Tags'                      => array( '태그' ),
+       'TrackingCategories'        => array( '추적용분류' ),
        'Unblock'                   => array( '차단해제' ),
        'Uncategorizedcategories'   => array( '분류안된분류' ),
        'Uncategorizedimages'       => array( '분류안된파일', '분류안된그림' ),
@@ -165,8 +172,8 @@ $specialPageAliases = array(
        'Unwatchedpages'            => array( '주시안되는문서' ),
        'Upload'                    => array( '올리기', '파일올리기', '그림올리기', '업로드' ),
        'UploadStash'               => array( '올린비공개파일', '비공개로올린파일' ),
-       'Userlogin'                 => array( '로그인' ),
-       'Userlogout'                => array( '로그아웃' ),
+       'Userlogin'                 => array( '로그인', '사용자로그인' ),
+       'Userlogout'                => array( '로그아웃', '사용자로그아웃' ),
        'Userrights'                => array( '권한조정', '관리자하기', '봇하기' ),
        'Version'                   => array( '버전' ),
        'Wantedcategories'          => array( '필요한분류' ),
@@ -213,7 +220,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', '사용자수', '계정수', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', '활동중인사용자수', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', '편집수', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', '조회수', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', '문서이름', 'PAGENAME' ),
        'pagenamee'                 => array( '1', '문서이름E', 'PAGENAMEE' ),
        'namespace'                 => array( '1', '이름공간', 'NAMESPACE' ),
@@ -263,7 +269,7 @@ $magicWords = array(
        'img_link'                  => array( '1', '링크=$1', 'link=$1' ),
        'img_alt'                   => array( '1', '대체글=$1', 'alt=$1' ),
        'img_class'                 => array( '1', '클래스=$1', 'class=$1' ),
-       'int'                       => array( '0', 'ì \95ì\88\98:', 'INT:' ),
+       'int'                       => array( '0', 'ì\9d¸í\84°í\8e\98ì\9d´ì\8a¤:', 'INT:' ),
        'sitename'                  => array( '1', '사이트이름', 'SITENAME' ),
        'ns'                        => array( '0', '이름:', '이름공간:', 'NS:' ),
        'nse'                       => array( '0', '이름E:', '이름공간E:', 'NSE:' ),
@@ -302,7 +308,7 @@ $magicWords = array(
        'lc'                        => array( '0', '소문자:', 'LC:' ),
        'uc'                        => array( '0', '대문자:', 'UC:' ),
        'raw'                       => array( '0', '원본:', 'RAW:' ),
-       'displaytitle'              => array( '1', '제목보이기', '제목표시', 'DISPLAYTITLE' ),
+       'displaytitle'              => array( '1', '보일제목', '표시제목', 'DISPLAYTITLE' ),
        'rawsuffix'                 => array( '1', '원', 'R' ),
        'nocommafysuffix'           => array( '0', '구분자없음', 'NOSEP' ),
        'newsectionlink'            => array( '1', '__새글쓰기__', '__NEWSECTIONLINK__' ),
@@ -333,6 +339,7 @@ $magicWords = array(
        'numberingroup'             => array( '1', '권한별사용자수', '그룹별사용자수', 'NUMBERINGROUP', 'NUMINGROUP' ),
        'staticredirect'            => array( '1', '__넘겨주기고정__', '__STATICREDIRECT__' ),
        'protectionlevel'           => array( '1', '보호수준', 'PROTECTIONLEVEL' ),
+       'cascadingsources'          => array( '1', '계단식원본', 'CASCADINGSOURCES' ),
        'formatdate'                => array( '0', '날짜형식', 'formatdate', 'dateformat' ),
        'url_path'                  => array( '0', '경로', 'PATH' ),
        'url_wiki'                  => array( '0', '위키', 'WIKI' ),
index e338b42..b1c9d3b 100644 (file)
@@ -125,7 +125,7 @@ $specialPageAliases = array(
        'Deadendpages'              => array( 'Sigge_ohne_Links_dren' ),
        'DeletedContributions'      => array( 'Fotjeschmeße' ),
        'DoubleRedirects'           => array( 'Ömleitunge_op_Ömleitunge' ),
-       'Emailuser'                 => array( 'Email', 'E-mail' ),
+       'Emailuser'                 => array( 'E-mail' ),
        'Export'                    => array( 'Expocht' ),
        'Fewestrevisions'           => array( 'Winnig_beärbeit', 'Winnish_beärbeidt', 'Winnich_bearbeit' ),
        'FileDuplicateSearch'       => array( 'Dubbel_Dateie' ),
index ea7384a..b093b58 100644 (file)
@@ -165,7 +165,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NIVERADHEVNYDHYORYON', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NIVERADHEVNYDHYORYONVYW', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NIVERAJANJYOW', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NIVERAWELYANSOW', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'HANOWANFOLEN', 'PAGENAME' ),
        'fullpagename'              => array( '1', 'HANOWLEUNANFOLEN', 'FULLPAGENAME' ),
        'img_thumbnail'             => array( '1', 'skeusennik', 'thumbnail', 'thumb' ),
index 02fdb1c..203788c 100644 (file)
@@ -54,6 +54,7 @@ $namespaceGenderAliases = array();
 $specialPageAliases = array(
        'Activeusers'               => array( 'Aktiv_Benotzer' ),
        'Allmessages'               => array( 'All_Systemmessagen' ),
+       'AllMyUploads'              => array( 'All_meng_Fichieren' ),
        'Allpages'                  => array( 'All_Säiten' ),
        'Ancientpages'              => array( 'Al_Säiten' ),
        'Badtitle'                  => array( 'Falschen_Titel' ),
@@ -64,19 +65,19 @@ $specialPageAliases = array(
        'Categories'                => array( 'Kategorien' ),
        'ChangeEmail'               => array( 'E-Mailadress_änneren' ),
        'ChangePassword'            => array( 'Passwuert_zrécksetzen' ),
-       'ComparePages'              => array( 'Säite_vergkäichen' ),
+       'ComparePages'              => array( 'Säite_vergläichen' ),
        'Confirmemail'              => array( 'E-Mail_confirméieren' ),
        'Contributions'             => array( 'Kontributiounen' ),
        'CreateAccount'             => array( 'Benotzerkont_opmaachen' ),
        'Deadendpages'              => array( 'Sakgaasse-Säiten' ),
-       'DeletedContributions'      => array( 'Geläschte_Kontributiounen' ),
+       'DeletedContributions'      => array( 'Geläscht_Kontributiounen' ),
        'DoubleRedirects'           => array( 'Duebel_Viruleedungen' ),
        'EditWatchlist'             => array( 'Iwwerwaachungslëscht_änneren' ),
        'Emailuser'                 => array( 'Dësem_Benotzer_eng_E-Mail_schécken' ),
        'ExpandTemplates'           => array( 'Schablounen_erweideren' ),
        'Export'                    => array( 'Exportéieren' ),
        'Fewestrevisions'           => array( 'Säite_mat_de_mannsten_Ännerungen' ),
-       'FileDuplicateSearch'       => array( 'No_duebele_Fichieren_sichen' ),
+       'FileDuplicateSearch'       => array( 'No_duebele_Fichiere_sichen' ),
        'Filepath'                  => array( 'Pad_bäi_de_Fichier' ),
        'Import'                    => array( 'Importéieren' ),
        'Invalidateemail'           => array( 'E-Mailadress_net_confirméieren' ),
@@ -88,6 +89,7 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'Billerlëscht' ),
        'Listgrouprights'           => array( 'Lëscht_vun_de_Grupperechter' ),
        'Listredirects'             => array( 'Viruleedungen' ),
+       'ListDuplicatedFiles'       => array( 'Lëscht_vun_den_duebele_Fichieren' ),
        'Listusers'                 => array( 'Lëscht_vun_de_Benotzer' ),
        'Lockdb'                    => array( 'Datebank_spären' ),
        'Log'                       => array( 'Logbicher' ),
@@ -96,11 +98,11 @@ $specialPageAliases = array(
        'MergeHistory'              => array( 'Versiounen_zesummeleeën' ),
        'MIMEsearch'                => array( 'No_MIME-Zorte_sichen' ),
        'Mostcategories'            => array( 'Säite_mat_de_meeschte_Kategorien' ),
-       'Mostimages'                => array( 'Dacks_benotzte_Biller' ),
+       'Mostimages'                => array( 'Dacks_benotzt_Biller' ),
        'Mostinterwikis'            => array( 'Meescht_Interwikien' ),
-       'Mostlinked'                => array( 'Dacks_verlinkte_Säiten' ),
-       'Mostlinkedcategories'      => array( 'Dacks_benotzte_Kategorien' ),
-       'Mostlinkedtemplates'       => array( 'Dacks_benotzte_Schablounen' ),
+       'Mostlinked'                => array( 'Dacks_verlinkt_Säiten' ),
+       'Mostlinkedcategories'      => array( 'Dacks_benotzt_Kategorien' ),
+       'Mostlinkedtemplates'       => array( 'Dacks_benotzt_Schablounen' ),
        'Mostrevisions'             => array( 'Säite_mat_de_meeschten_Ännerungen' ),
        'Movepage'                  => array( 'Säit_réckelen' ),
        'Mycontributions'           => array( 'Meng_Kontributiounen' ),
@@ -110,19 +112,22 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'Meng_eropgeluede_Fichieren' ),
        'Newimages'                 => array( 'Nei_Biller' ),
        'Newpages'                  => array( 'Nei_Säiten' ),
+       'PagesWithProp'             => array( 'Säite_mat_Eegeschaften' ),
+       'PageLanguage'              => array( 'Sprooch_vun_der_Säit' ),
        'PasswordReset'             => array( 'Zrécksetze_vum_Passwuert' ),
        'PermanentLink'             => array( 'Permanente_Link' ),
-       'Popularpages'              => array( 'Beléifste_Säiten' ),
+       'Popularpages'              => array( 'Beléifst_Säiten' ),
        'Preferences'               => array( 'Astellungen' ),
        'Prefixindex'               => array( 'Indexsich' ),
        'Protectedpages'            => array( 'Protegéiert_Säiten' ),
-       'Protectedtitles'           => array( 'Gespaarte_Säiten' ),
+       'Protectedtitles'           => array( 'Gespaart_Säiten' ),
        'Randompage'                => array( 'Zoufälleg_Säit' ),
-       'RandomInCategory'          => array( 'Zoufälleg_Säit_aus_der_Kategorie' ),
+       'RandomInCategory'          => array( 'Zoufälleg_Säit_an_der_Kategorie' ),
        'Randomredirect'            => array( 'Zoufälleg_Viruleedung' ),
        'Recentchanges'             => array( 'Rezent_Ännerungen' ),
        'Recentchangeslinked'       => array( 'Ännerungen_op_verlinkte_Säiten' ),
        'Redirect'                  => array( 'Viruleedung' ),
+       'ResetTokens'               => array( 'Token_zrécksetzen' ),
        'Revisiondelete'            => array( 'Versioun_läschen' ),
        'Search'                    => array( 'Sichen' ),
        'Shortpages'                => array( 'Kuerz_Säiten' ),
@@ -136,19 +141,19 @@ $specialPageAliases = array(
        'Uncategorizedtemplates'    => array( 'Schablounen_ouni_Kategorie' ),
        'Undelete'                  => array( 'Restauréieren' ),
        'Unlockdb'                  => array( 'Spär_vun_der_Datebank_ophiewen' ),
-       'Unusedcategories'          => array( 'Onbenotze_Kategorien' ),
-       'Unusedimages'              => array( 'Onbenotzte_Biller' ),
-       'Unusedtemplates'           => array( 'Onbenotzte_Schablounen' ),
+       'Unusedcategories'          => array( 'Onbenotz_Kategorien' ),
+       'Unusedimages'              => array( 'Onbenotzt_Biller' ),
+       'Unusedtemplates'           => array( 'Onbenotzt_Schablounen' ),
        'Unwatchedpages'            => array( 'Säiten_déi_net_iwwerwaacht_ginn' ),
        'Upload'                    => array( 'Eroplueden' ),
        'Userlogin'                 => array( 'Umellen' ),
        'Userlogout'                => array( 'Ofmellen' ),
        'Userrights'                => array( 'Benotzerrechter' ),
        'Version'                   => array( 'Versioun' ),
-       'Wantedcategories'          => array( 'Gewënschte_Kategorien' ),
-       'Wantedfiles'               => array( 'Gewënschte_Fichieren' ),
-       'Wantedpages'               => array( 'Gewënschte_Säiten' ),
-       'Wantedtemplates'           => array( 'Gewënschte_Schablounen' ),
+       'Wantedcategories'          => array( 'Gewënscht_Kategorien' ),
+       'Wantedfiles'               => array( 'Gewënscht_Fichieren' ),
+       'Wantedpages'               => array( 'Gewënscht_Säiten' ),
+       'Wantedtemplates'           => array( 'Gewënscht_Schablounen' ),
        'Watchlist'                 => array( 'Iwwerwaachungslëscht' ),
        'Whatlinkshere'             => array( 'Linken_op_dës_Säit' ),
        'Withoutinterwiki'          => array( 'Säiten_ouni_Interwiki-Linken' ),
@@ -175,6 +180,7 @@ $magicWords = array(
        'img_page'                  => array( '1', 'Säit=$1', 'Säit_$1', 'seite=$1', 'seite $1', 'page=$1', 'page $1' ),
        'img_border'                => array( '1', 'bord', 'rand', 'border' ),
        'img_top'                   => array( '1', 'uewen', 'oben', 'top' ),
+       'img_middle'                => array( '1', 'mëtt', 'mitte', 'middle' ),
        'img_bottom'                => array( '1', 'ënnen', 'unten', 'bottom' ),
        'grammar'                   => array( '0', 'GRAMMAIRE', 'GRAMMATIK:', 'GRAMMAR:' ),
        'plural'                    => array( '0', 'PLURAL', 'PLURAL:' ),
index 85c0c26..45c3216 100644 (file)
@@ -27,6 +27,7 @@ $specialPageAliases = array(
        'Booksources'               => array( '書海' ),
        'BrokenRedirects'           => array( '斷渡' ),
        'Categories'                => array( '類' ),
+       'ChangeEmail'               => array( '易郵' ),
        'ChangePassword'            => array( '易符節' ),
        'ComparePages'              => array( '較頁' ),
        'Confirmemail'              => array( '核郵驛' ),
@@ -34,6 +35,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( '增簿' ),
        'Deadendpages'              => array( '此無路也' ),
        'DeletedContributions'      => array( '已刪之積' ),
+       'Diff'                      => array( '異' ),
        'DoubleRedirects'           => array( '窮渡' ),
        'EditWatchlist'             => array( '治哨站' ),
        'Emailuser'                 => array( '遺書' ),
@@ -63,6 +65,8 @@ $specialPageAliases = array(
        'Mostrevisions'             => array( '屢審' ),
        'Movepage'                  => array( '遷' ),
        'Mycontributions'           => array( '吾績' ),
+       'Mypage'                    => array( '吾頁' ),
+       'Mytalk'                    => array( '吾書房' ),
        'Newimages'                 => array( '新圖之廊' ),
        'Newpages'                  => array( '新灶' ),
        'Preferences'               => array( '簿註' ),
index 1153500..4c962ad 100644 (file)
@@ -49,7 +49,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'ISAMPIKAMBANA', 'NOMBREUTILISATEURS', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'ISAMPIKAMBANAMANOVA', 'NOMBREUTILISATEURSACTIFS', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'ISAFANOVANA', 'NOMBREMODIFS', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'ISATOPIMASO', 'NOMBREVUES', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'ANARAMPEJY', 'ANARANAPEJY', 'NOMPAGE', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'ANARAMPEJYX', 'ANARANAPEJYX', 'NOMPAGEX', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ANARANTSEHATRA', 'ANARANASEHATRA', 'ESPACENOMMAGE', 'NAMESPACE' ),
@@ -126,40 +125,47 @@ $namespaceAliases = array(
 $namespaceGenderAliases = array();
 
 $specialPageAliases = array(
-       'Activeusers'               => array( 'Mpikambana_mavitrika' ),
-       'Allmessages'               => array( 'Hafatra_rehetra' ),
-       'Allpages'                  => array( 'Pejy_rehetra' ),
-       'Ancientpages'              => array( 'Pejy_antitra' ),
-       'Blankpage'                 => array( 'Pejy_fotsy' ),
-       'Block'                     => array( 'Hanakana' ),
-       'Booksources'               => array( 'Boky_loharano' ),
-       'BrokenRedirects'           => array( 'Fihodinana_tapaka' ),
+       'Activeusers'               => array( 'Mpikambana_mavitrika', 'MpikambanaMavitrika' ),
+       'Allmessages'               => array( 'Hafatra_rehetra', 'HafatraRehetra' ),
+       'AllMyUploads'              => array( 'Fanondranana_rehetra', 'FanondrananaRehetra' ),
+       'Allpages'                  => array( 'Pejy_rehetra', 'PejyRehetra' ),
+       'Ancientpages'              => array( 'Pejy_antitra', 'PejyAntitra' ),
+       'Badtitle'                  => array( 'LohatenyDiso', 'Lohateny_diso' ),
+       'Blankpage'                 => array( 'Pejy_fotsy', 'PejyFotsy' ),
+       'Block'                     => array( 'Hanakana', 'Fanakanana', 'Sakana' ),
+       'Booksources'               => array( 'Boky_loharano', 'BokyLoharano', 'BokyLoharanon-torohay' ),
+       'BrokenRedirects'           => array( 'Fihodinana_tapaka', 'Fihodinana_vaky', 'FihodinanaTapaka', 'FihodinanaVaky' ),
        'Categories'                => array( 'Sokajy' ),
-       'ChangePassword'            => array( 'Hiova_tenimiafina' ),
-       'ComparePages'              => array( 'Fampitaha_pejy' ),
-       'Confirmemail'              => array( 'Fankatoavana_ny_adiresy_imailaka' ),
-       'Contributions'             => array( 'Fandraisan\'anjara' ),
-       'CreateAccount'             => array( 'Hamorona_kaonty' ),
-       'Deadendpages'              => array( 'Pejy_tsy_misy_rohy' ),
-       'DeletedContributions'      => array( 'Fandraisan\'anjara_voafafa' ),
+       'ChangeEmail'               => array( 'HanovaNyMailaka', 'Hanova_ny_mailaka' ),
+       'ChangePassword'            => array( 'Hiova_tenimiafina', 'HiovaTenimiafina', 'Fiovantenimiafina' ),
+       'ComparePages'              => array( 'Fampitaham-pejy', 'Fampitahampejy', 'HampitahaPejy', 'Hampitaha_pejy' ),
+       'Confirmemail'              => array( 'FanamarinanaAdiresyMailaka', 'Fanamarinana_adiresy_mailaka' ),
+       'Contributions'             => array( 'Fandraisan\'anjara', 'Fandraisananjara' ),
+       'CreateAccount'             => array( 'Hamorona_kaonty', 'HamoronaKaonty' ),
+       'Deadendpages'              => array( 'Pejy_tsy_misy_rohy', 'Pejy_tsy_mandrohy' ),
+       'DeletedContributions'      => array( 'Fandraisan\'anjara_voafafa', 'FandraisananjaraVoafafa' ),
+       'Diff'                      => array( 'Fahasmhf.' ),
        'DoubleRedirects'           => array( 'Fihodinana_miroa' ),
-       'EditWatchlist'             => array( 'Hanova_ny_pejy_arahana' ),
-       'Emailuser'                 => array( 'Handefa_imailaka' ),
-       'Export'                    => array( 'Hamoa-pejy' ),
+       'EditWatchlist'             => array( 'Hanova_ny_pejy_arahana', 'HanovaPejyArahana' ),
+       'Emailuser'                 => array( 'Handefa_mailaka', 'HandefaMailaka' ),
+       'ExpandTemplates'           => array( 'Hamelatra_endrika', 'HamelatraEndrika' ),
+       'Export'                    => array( 'Hanondrana_pejy', 'HanondranaPejy' ),
        'Fewestrevisions'           => array( 'Pejy_vitsy_mpanova_indrindra' ),
        'FileDuplicateSearch'       => array( 'Fikarohan-drakitra_miroa' ),
        'Filepath'                  => array( 'Lalan-drakitra' ),
        'Import'                    => array( 'Hampidi-pejy' ),
-       'BlockList'                 => array( 'Lisitry_ny_fanakanana' ),
+       'Invalidateemail'           => array( 'Hampandiso_ny_mailaka', 'HampandisoMailaka' ),
+       'JavaScriptTest'            => array( 'AndranaJavaScript' ),
+       'BlockList'                 => array( 'Lisitry_ny_sakana', 'Lisi-tsakana' ),
        'LinkSearch'                => array( 'Fikarohan-drohy' ),
-       'Listadmins'                => array( 'Lisitry_ny_mpandrindra' ),
-       'Listbots'                  => array( 'Lisitry_ny_rôbô' ),
-       'Listfiles'                 => array( 'Lisitran\'ny_rakitra' ),
+       'Listadmins'                => array( 'Lisitry_ny_mpandrindra', 'LisitraMpandrindra' ),
+       'Listbots'                  => array( 'Lisitry_ny_rôbô', 'LisitraRôbô', 'LisitraRobo' ),
+       'Listfiles'                 => array( 'Lisitry_ny_rakitra', 'LisitraRakitra' ),
        'Listgrouprights'           => array( 'Lisitry_ny_satam-pikambana' ),
        'Listredirects'             => array( 'Lisitry_ny_fihodinana' ),
        'Listusers'                 => array( 'Lisitran\'ny_mpikambana' ),
        'Lockdb'                    => array( 'Hanidy_ny_database' ),
-       'Log'                       => array( 'Tatitr\'asa' ),
+       'Log'                       => array( 'Laogy' ),
        'Lonelypages'               => array( 'Pejy_manirery' ),
        'Longpages'                 => array( 'Pejy_lavabe' ),
        'MergeHistory'              => array( 'Hampiaraka_ny_tantaram-pejy' ),
@@ -174,23 +180,33 @@ $specialPageAliases = array(
        'Mycontributions'           => array( 'Fandraisan\'anjarako' ),
        'Mypage'                    => array( 'Pejiko' ),
        'Mytalk'                    => array( 'Pejin-dresako' ),
+       'Myuploads'                 => array( 'Fanondranako' ),
        'Newimages'                 => array( 'Sary_vaovao' ),
        'Newpages'                  => array( 'Pejy_vaovao' ),
+       'PagesWithProp'             => array( 'Pejy_misy_tondro', 'PejyMisyTondro' ),
+       'PageLanguage'              => array( 'Fitenim-pejy', 'Fitenimpejy' ),
+       'PasswordReset'             => array( 'Famerenan-tenimiafina', 'Famerenantenimiafina' ),
+       'PermanentLink'             => array( 'Rohy_maharitra', 'RohyMaharitra' ),
        'Popularpages'              => array( 'Pejy_be_mpitsidika_indrindra' ),
        'Preferences'               => array( 'Safidy' ),
        'Prefixindex'               => array( 'Index' ),
        'Protectedpages'            => array( 'Pejy_voaaro' ),
        'Protectedtitles'           => array( 'Lohateny_voaaro' ),
        'Randompage'                => array( 'Kisendra' ),
-       'Randomredirect'            => array( 'Fihodinana_kisendta' ),
-       'Recentchanges'             => array( 'Fanovàna_farany' ),
-       'Recentchangeslinked'       => array( 'Fanarahana_ny_rohy' ),
-       'Revisiondelete'            => array( 'Santiôna_voafafa' ),
-       'Search'                    => array( 'Fikarohana' ),
-       'Shortpages'                => array( 'Pejy_fohy' ),
-       'Specialpages'              => array( 'Pejy_manokana' ),
+       'RandomInCategory'          => array( 'Pejy_kisendra_anaty_sokajy_iray', 'PejyKisendraAnatySokajy' ),
+       'Randomredirect'            => array( 'Fihodinana_kisendra', 'FihodinanaKisendra' ),
+       'Recentchanges'             => array( 'Fiovana_farany', 'FiovanaFarany' ),
+       'Recentchangeslinked'       => array( 'Fanarahana_ny_rohy', 'FanarahanaRohy' ),
+       'Redirect'                  => array( 'Fihodinana' ),
+       'ResetTokens'               => array( 'HamerinaToken' ),
+       'Revisiondelete'            => array( 'Versiona_voafafa', 'VersionaVoafafa' ),
+       'RunJobs'                   => array( 'Runjob' ),
+       'Search'                    => array( 'Fikarohana', 'Karoka' ),
+       'Shortpages'                => array( 'Pejy_fohy', 'PejyFohy' ),
+       'Specialpages'              => array( 'Pejy_manokana', 'PejyManokana' ),
        'Statistics'                => array( 'Statistika' ),
        'Tags'                      => array( 'Balizy' ),
+       'TrackingCategories'        => array( 'Sokajy_fanarahana', 'SokajyFanarahana' ),
        'Unblock'                   => array( 'Hanala_ny_fanakanana' ),
        'Uncategorizedcategories'   => array( 'Sokajy_tsy_misy_sokajy' ),
        'Uncategorizedimages'       => array( 'Sary_tsy_misy_sokajy', 'Rakitra_tsy_misy_sokajy' ),
@@ -203,6 +219,7 @@ $specialPageAliases = array(
        'Unusedtemplates'           => array( 'Endrika_tsy_misy_mpampiasa' ),
        'Unwatchedpages'            => array( 'Pejy_tsy_misy_mpanaraka' ),
        'Upload'                    => array( 'Hanafatra' ),
+       'UploadStash'               => array( 'Fanondranana_stash' ),
        'Userlogin'                 => array( 'Fidirana' ),
        'Userlogout'                => array( 'Fialàna' ),
        'Userrights'                => array( 'Fahefana' ),
index 5ab67ae..8a249e1 100644 (file)
@@ -156,8 +156,8 @@ $specialPageAliases = array(
 
 $magicWords = array(
        'redirect'                  => array( '0', '#ALIAH', '#ALIH', '#REDIRECT' ),
-       'pagesincategory_all'       => array( '0', 'sado', 'all' ),
-       'pagesincategory_pages'     => array( '0', 'laman', 'pages' ),
+       'pagesincategory_all'       => array( '0', 'sado', 'semua', 'all' ),
+       'pagesincategory_pages'     => array( '0', 'laman', 'halaman', 'pages' ),
        'pagesincategory_files'     => array( '0', 'berkas', 'files' ),
 );
 
index 3d29b6b..9f74d16 100644 (file)
@@ -96,6 +96,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'СитеПораки' ),
        'AllMyUploads'              => array( 'СитеМоиПодигања' ),
        'Allpages'                  => array( 'СитеСтраници' ),
+       'ApiHelp'                   => array( 'ИзвршникПомош' ),
        'Ancientpages'              => array( 'НајстариСтраници' ),
        'Badtitle'                  => array( 'Лошнаслов' ),
        'Blankpage'                 => array( 'ПразнаСтраница' ),
@@ -109,14 +110,15 @@ $specialPageAliases = array(
        'Confirmemail'              => array( 'Потврди_е-пошта' ),
        'Contributions'             => array( 'Придонеси' ),
        'CreateAccount'             => array( 'СоздајКорисничкаСметка' ),
-       'Deadendpages'              => array( 'Ð\8cоÑ\80Ñ\81окакСтраници' ),
+       'Deadendpages'              => array( 'СлепиСтраници' ),
        'DeletedContributions'      => array( 'ИзбришаниПридонеси' ),
+       'Diff'                      => array( 'Разлики' ),
        'DoubleRedirects'           => array( 'ДвојниПренасочувања' ),
        'EditWatchlist'             => array( 'УредиНабљудувања' ),
        'Emailuser'                 => array( 'Пиши_е-пошта_на_корисникот' ),
        'ExpandTemplates'           => array( 'ПрошириШаблони' ),
        'Export'                    => array( 'Извоз' ),
-       'Fewestrevisions'           => array( 'Ð\9dаÑ\98малкÑ\83Ревизии' ),
+       'Fewestrevisions'           => array( 'Ð\9dаÑ\98малкÑ\83Ð\9fÑ\80еÑ\80абоÑ\82ки' ),
        'FileDuplicateSearch'       => array( 'ПребарувањеДупликатПодатотека' ),
        'Filepath'                  => array( 'ПатДоПодатотека' ),
        'Import'                    => array( 'Увоз' ),
@@ -129,11 +131,13 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'СписокНаПодатотеки', 'СписокНаСлики' ),
        'Listgrouprights'           => array( 'СписокНаГрупниПрава' ),
        'Listredirects'             => array( 'СписокНаПренасочувања' ),
+       'ListDuplicatedFiles'       => array( 'ИспишиДуплираниПодатотеки' ),
        'Listusers'                 => array( 'СписокНаКорисници', 'СписокКорисници' ),
        'Lockdb'                    => array( 'ЗаклучиБаза' ),
        'Log'                       => array( 'Дневник', 'Дневници' ),
        'Lonelypages'               => array( 'ОсамениСтраници', 'СтранциСирачиња' ),
        'Longpages'                 => array( 'ДолгиСтраници' ),
+       'MediaStatistics'           => array( 'МедиумскиСтатистики' ),
        'MergeHistory'              => array( 'СпојувањеИсторија' ),
        'MIMEsearch'                => array( 'MIMEПребарување' ),
        'Mostcategories'            => array( 'НајмногуКатегории' ),
@@ -142,7 +146,7 @@ $specialPageAliases = array(
        'Mostlinked'                => array( 'СоНајмногуВрски', 'СтранициСоНајмногуВрски' ),
        'Mostlinkedcategories'      => array( 'НајупотребуваниКатегории' ),
        'Mostlinkedtemplates'       => array( 'НајупотребуваниШаблони' ),
-       'Mostrevisions'             => array( 'Ð\9dаÑ\98многÑ\83Ревизии' ),
+       'Mostrevisions'             => array( 'Ð\9dаÑ\98многÑ\83Ð\9fÑ\80еÑ\80абоÑ\82ки' ),
        'Movepage'                  => array( 'ПреместиСтраница' ),
        'Mycontributions'           => array( 'МоиПридонеси' ),
        'MyLanguage'                => array( 'МојЈазик' ),
@@ -152,6 +156,7 @@ $specialPageAliases = array(
        'Newimages'                 => array( 'НовиСлики', 'НовиПодатотеки' ),
        'Newpages'                  => array( 'НовиСтраници' ),
        'PagesWithProp'             => array( 'СтранициСоСвојство' ),
+       'PageLanguage'              => array( 'ЈазикНаСтраницата' ),
        'PasswordReset'             => array( 'ПроменаНаЛозинка' ),
        'PermanentLink'             => array( 'ПостојанаВрска' ),
        'Popularpages'              => array( 'ПопуларниСтраници' ),
@@ -166,12 +171,14 @@ $specialPageAliases = array(
        'Recentchangeslinked'       => array( 'ПоврзаниПромени' ),
        'Redirect'                  => array( 'Пренасочување' ),
        'ResetTokens'               => array( 'ВратиОдновоЗнаци' ),
-       'Revisiondelete'            => array( 'БришењеРевизија' ),
+       'Revisiondelete'            => array( 'БришењеПреработка' ),
+       'RunJobs'                   => array( 'ПуштиЗадачи' ),
        'Search'                    => array( 'Барај' ),
        'Shortpages'                => array( 'КраткиСтраници' ),
-       'Specialpages'              => array( 'СпеÑ\86иÑ\98алниСтраници' ),
+       'Specialpages'              => array( 'СлÑ\83жбениСтраници' ),
        'Statistics'                => array( 'Статистики' ),
        'Tags'                      => array( 'Oзнаки', 'Приврзоци' ),
+       'TrackingCategories'        => array( 'КатегорииЗаСледење' ),
        'Unblock'                   => array( 'Одблокирај' ),
        'Uncategorizedcategories'   => array( 'НекатегоризираниКатегории' ),
        'Uncategorizedimages'       => array( 'НекатегоризираниСлики' ),
@@ -191,7 +198,7 @@ $specialPageAliases = array(
        'Version'                   => array( 'Верзија' ),
        'Wantedcategories'          => array( 'ПотребниКатегории' ),
        'Wantedfiles'               => array( 'ПотребниПодатотеки' ),
-       'Wantedpages'               => array( 'ПрекинатиВрски' ),
+       'Wantedpages'               => array( 'ПотребниСтраници' ),
        'Wantedtemplates'           => array( 'ПотребниШаблони' ),
        'Watchlist'                 => array( 'СписокНаНабљудувања' ),
        'Whatlinkshere'             => array( 'ШтоВодиОвде' ),
@@ -233,7 +240,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'БРОЈНАКОРИСНИЦИ', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'БРОЈНААКТИВНИКОРИСНИЦИ', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'БРОЈНАУРЕДУВАЊА', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'БРОЈНАПРЕГЛЕДУВАЊА', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'СТРАНИЦА', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'СТРАНИЦАИ', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ИМЕПРОСТОР', 'ИМЕНСКИПРОСТОР', 'NAMESPACE' ),
@@ -288,15 +294,15 @@ $magicWords = array(
        'currentdow'                => array( '1', 'ТЕКОВЕНДЕНВОСЕДМИЦАТА', 'CURRENTDOW' ),
        'localweek'                 => array( '1', 'СЕДМИЦА_ЛОКАЛНО', 'LOCALWEEK' ),
        'localdow'                  => array( '1', 'ЛОКАЛЕНДЕНВОСЕДМИЦАТА', 'LOCALDOW' ),
-       'revisionid'                => array( '1', 'Ð\9dÐ\90Ð\97Ð\9dÐ\90Ð\9aÐ\90Ð\9dÐ\90РÐ\95Ð\92Ð\98Ð\97Ð\98Ð\88А', 'REVISIONID' ),
-       'revisionday'               => array( '1', 'Ð\94Ð\95Ð\9dÐ\9dÐ\90РÐ\95Ð\92Ð\98Ð\97Ð\98Ð\88А', 'REVISIONDAY' ),
-       'revisionday2'              => array( '1', 'Ð\94Ð\95Ð\9dÐ\9dÐ\90РÐ\95Ð\92Ð\98Ð\97Ð\98Ð\88А2', 'REVISIONDAY2' ),
-       'revisionmonth'             => array( '1', 'Ð\9cÐ\95СÐ\95ЦÐ\9dÐ\90РÐ\95Ð\92Ð\98Ð\97Ð\98Ð\88А', 'REVISIONMONTH' ),
-       'revisionmonth1'            => array( '1', 'Ð\9cÐ\95СÐ\95ЦÐ\9dÐ\90РÐ\95Ð\92Ð\98Ð\97Ð\98Ð\88А1', 'REVISIONMONTH1' ),
-       'revisionyear'              => array( '1', 'Ð\93Ð\9eÐ\94Ð\98Ð\9dÐ\90Ð\9dÐ\90РÐ\95Ð\92Ð\98Ð\97Ð\98Ð\88А', 'REVISIONYEAR' ),
-       'revisiontimestamp'         => array( '1', 'Ð\92РÐ\95Ð\9cÐ\95Ð\9dÐ\90РÐ\95Ð\92Ð\98Ð\97Ð\98Ð\88А', 'REVISIONTIMESTAMP' ),
-       'revisionuser'              => array( '1', 'Ð\9aÐ\9eРÐ\98СÐ\9dÐ\98Ð\9aÐ\9dÐ\90Ð\9dÐ\90РÐ\95Ð\92Ð\98Ð\97Ð\98Ð\88А', 'REVISIONUSER' ),
-       'revisionsize'              => array( '1', 'Ð\93Ð\9eÐ\9bÐ\95Ð\9cÐ\98Ð\9dÐ\90Ð\9dÐ\90РÐ\95Ð\92Ð\98Ð\97Ð\98Ð\88А', 'REVISIONSIZE' ),
+       'revisionid'                => array( '1', 'Ð\9dÐ\90Ð\97Ð\9dÐ\90Ð\9aÐ\90Ð\9dÐ\90Ð\9fРÐ\95РÐ\90Ð\91Ð\9eТÐ\9aА', 'REVISIONID' ),
+       'revisionday'               => array( '1', 'Ð\94Ð\95Ð\9dÐ\9dÐ\90Ð\9fРÐ\95РÐ\90Ð\91Ð\9eТÐ\9aА', 'REVISIONDAY' ),
+       'revisionday2'              => array( '1', 'Ð\94Ð\95Ð\9dÐ\9dÐ\90Ð\9fРÐ\95РÐ\90Ð\91Ð\9eТÐ\9aА2', 'REVISIONDAY2' ),
+       'revisionmonth'             => array( '1', 'Ð\9cÐ\95СÐ\95ЦÐ\9dÐ\90Ð\9fРÐ\95РÐ\90Ð\91Ð\9eТÐ\9aА', 'REVISIONMONTH' ),
+       'revisionmonth1'            => array( '1', 'Ð\9cÐ\95СÐ\95ЦÐ\9dÐ\90Ð\9fРÐ\95РÐ\90Ð\91Ð\9eТÐ\9aА1', 'REVISIONMONTH1' ),
+       'revisionyear'              => array( '1', 'Ð\93Ð\9eÐ\94Ð\98Ð\9dÐ\90Ð\9dÐ\90Ð\9fРÐ\95РÐ\90Ð\91Ð\9eТÐ\9aА', 'REVISIONYEAR' ),
+       'revisiontimestamp'         => array( '1', 'Ð\92РÐ\95Ð\9cÐ\95Ð\9dÐ\90Ð\9fРÐ\95РÐ\90Ð\91Ð\9eТÐ\9aА', 'REVISIONTIMESTAMP' ),
+       'revisionuser'              => array( '1', 'Ð\9aÐ\9eРÐ\98СÐ\9dÐ\98Ð\9aÐ\9dÐ\90Ð\9dÐ\90Ð\9fРÐ\95РÐ\90Ð\91Ð\9eТÐ\9aА', 'REVISIONUSER' ),
+       'revisionsize'              => array( '1', 'Ð\93Ð\9eÐ\9bÐ\95Ð\9cÐ\98Ð\9dÐ\90Ð\9dÐ\90Ð\9fРÐ\95РÐ\90Ð\91Ð\9eТÐ\9aА', 'REVISIONSIZE' ),
        'plural'                    => array( '0', 'МНОЖИНА:', 'PLURAL:' ),
        'fullurl'                   => array( '0', 'ПОЛНАURL:', 'FULLURL:' ),
        'fullurle'                  => array( '0', 'ПОЛНАURLE:', 'FULLURLE:' ),
@@ -325,7 +331,7 @@ $magicWords = array(
        'formatnum'                 => array( '0', 'ФОРМАТБРОЈ', 'FORMATNUM' ),
        'padleft'                   => array( '0', 'ПОСТАВИЛЕВО', 'PADLEFT' ),
        'padright'                  => array( '0', 'ПОСТАВИДЕСНО', 'PADRIGHT' ),
-       'special'                   => array( '0', 'Ñ\81пеÑ\86иÑ\98ална', 'Ñ\81пеÑ\86иÑ\98ални', 'special' ),
+       'special'                   => array( '0', 'Ñ\81лÑ\83жбена', 'Ñ\81лÑ\83жбени', 'special' ),
        'defaultsort'               => array( '1', 'ОСНОВНОПОДРЕДУВАЊЕ:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                  => array( '0', 'ПОДАТОТЕЧНАПАТЕКА:', 'FILEPATH:' ),
        'tag'                       => array( '0', 'ознака', 'tag' ),
@@ -337,12 +343,15 @@ $magicWords = array(
        'numberingroup'             => array( '1', 'БРОЈВОГРУПА', 'NUMBERINGROUP', 'NUMINGROUP' ),
        'staticredirect'            => array( '1', '__СТАТИЧНОПРЕНАСОЧУВАЊЕ__', '__STATICREDIRECT__' ),
        'protectionlevel'           => array( '1', 'НИВОНАЗАШТИТА', 'PROTECTIONLEVEL' ),
+       'cascadingsources'          => array( '1', 'КАСКАДНИИЗВОРИ', 'CASCADINGSOURCES' ),
        'formatdate'                => array( '0', 'форматдатум', 'formatdate', 'dateformat' ),
        'url_path'                  => array( '0', 'ПАТЕКА', 'PATH' ),
        'url_wiki'                  => array( '0', 'ВИКИ', 'WIKI' ),
        'url_query'                 => array( '0', 'БАРАЊЕ', 'QUERY' ),
        'defaultsort_noerror'       => array( '0', 'безгрешки', 'noerror' ),
        'defaultsort_noreplace'     => array( '0', 'беззамена', 'noreplace' ),
+       'displaytitle_noerror'      => array( '0', 'безгрешка', 'noerror' ),
+       'displaytitle_noreplace'    => array( '0', 'незаменувај', 'noreplace' ),
        'pagesincategory_all'       => array( '0', 'сите', 'all' ),
        'pagesincategory_pages'     => array( '0', 'страници', 'pages' ),
        'pagesincategory_subcats'   => array( '0', 'поткатегории', 'subcats' ),
index 5b87ace..39f48b2 100644 (file)
@@ -102,6 +102,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'അംഗത്വമെടുക്കൽ' ),
        'Deadendpages'              => array( 'അന്ത്യസ്ഥാനത്തുള്ള_താളുകൾ' ),
        'DeletedContributions'      => array( 'മായ്ച്ച_സേവനങ്ങൾ' ),
+       'Diff'                      => array( 'വ്യത്യാസം' ),
        'DoubleRedirects'           => array( 'ഇരട്ടത്തിരിച്ചുവിടലുകൾ' ),
        'EditWatchlist'             => array( 'ശ്രദ്ധിക്കുന്നവയുടെപട്ടികതിരുത്തുക' ),
        'Emailuser'                 => array( 'ഉപയോക്തൃഇമെയിൽ' ),
@@ -120,6 +121,7 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'പ്രമാണങ്ങളുടെ_പട്ടിക', 'ചിത്രങ്ങളുടെ_പട്ടിക' ),
        'Listgrouprights'           => array( 'സമൂഹത്തിന്റെ_അവകാശങ്ങളുടെ_പട്ടിക' ),
        'Listredirects'             => array( 'തിരിച്ചുവിടൽ‌പട്ടിക' ),
+       'ListDuplicatedFiles'       => array( 'അപരപ്രമാണപട്ടിക' ),
        'Listusers'                 => array( 'ഉപയോക്താക്കളുടെ_പട്ടിക' ),
        'Lockdb'                    => array( 'ഡി.ബി.ബന്ധിക്കുക' ),
        'Log'                       => array( 'രേഖ', 'രേഖകൾ' ),
@@ -143,6 +145,7 @@ $specialPageAliases = array(
        'Newimages'                 => array( 'പുതിയ_പ്രമാണങ്ങൾ', 'പുതിയ_ചിത്രങ്ങൾ' ),
        'Newpages'                  => array( 'പുതിയ_താളുകൾ' ),
        'PagesWithProp'             => array( 'താളുകളുടെഉള്ളടക്കപ്രത്യേകതകൾ' ),
+       'PageLanguage'              => array( 'താളിന്റെഭാഷ' ),
        'PasswordReset'             => array( 'രഹസ്യവാക്ക്‌‌പുനക്രമീകരണം' ),
        'PermanentLink'             => array( 'സ്ഥിരംകണ്ണി' ),
        'Popularpages'              => array( 'ജനപ്രിയതാളുകൾ' ),
@@ -158,11 +161,13 @@ $specialPageAliases = array(
        'Redirect'                  => array( 'തിരിച്ചുവിടൽ' ),
        'ResetTokens'               => array( 'ചീട്ട്പുനഃസജ്ജീകരിക്കുക' ),
        'Revisiondelete'            => array( 'നാൾപ്പതിപ്പ്_മായ്ക്കൽ' ),
+       'RunJobs'                   => array( 'പ്രവൃത്തിനടപ്പാക്കൽ' ),
        'Search'                    => array( 'അന്വേഷണം' ),
        'Shortpages'                => array( 'ചെറിയ_താളുകൾ' ),
        'Specialpages'              => array( 'പ്രത്യേകതാളുകൾ' ),
        'Statistics'                => array( 'സ്ഥിതിവിവരം' ),
        'Tags'                      => array( 'റ്റാഗുകൾ' ),
+       'TrackingCategories'        => array( 'പിന്തുടരൽവർഗ്ഗങ്ങൾ' ),
        'Unblock'                   => array( 'തടയൽനീക്കുക' ),
        'Uncategorizedcategories'   => array( 'വർഗ്ഗീകരിക്കാത്ത_വർഗ്ഗങ്ങൾ' ),
        'Uncategorizedimages'       => array( 'വർഗ്ഗീകരിക്കാത്ത_പ്രമാണങ്ങൾ' ),
@@ -224,7 +229,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'ഉപയോക്താക്കളുടെയെണ്ണം', 'അംഗങ്ങളുടെയെണ്ണം', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'സജീവോപയാക്താക്കളുടെയെണ്ണം', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'തിരുത്തലുകളുടെണ്ണം', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'എടുത്തുനോക്കലുകളുടെണ്ണം', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'താളിന്റെപേര്‌', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'താളിന്റെപേര്‌സമഗ്രം', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'നാമമേഖല', 'NAMESPACE' ),
@@ -302,6 +306,7 @@ $magicWords = array(
        'revisionyear'              => array( '1', 'തിരുത്തിയവർഷം', 'REVISIONYEAR' ),
        'revisiontimestamp'         => array( '1', 'തിരുത്തിയസമയമുദ്ര', 'REVISIONTIMESTAMP' ),
        'revisionuser'              => array( '1', 'അവസാനംതിരുത്തിയയാൾ', 'REVISIONUSER' ),
+       'revisionsize'              => array( '1', 'നാൾപ്പതിപ്പിന്റെവലിപ്പം', 'REVISIONSIZE' ),
        'plural'                    => array( '0', 'ബഹുവചനം:', 'PLURAL:' ),
        'fullurl'                   => array( '0', 'പൂർണ്ണവിലാസം:', 'FULLURL:' ),
        'fullurle'                  => array( '0', 'പൂർണ്ണവിലാസംസമഗ്രം:', 'FULLURLE:' ),
@@ -326,7 +331,7 @@ $magicWords = array(
        'padright'                  => array( '0', 'വലത്ത്നിറക്കുക', 'PADRIGHT' ),
        'special'                   => array( '0', 'പ്രത്യേകം', 'special' ),
        'speciale'                  => array( '0', 'സവിശേഷം', 'speciale' ),
-       'defaultsort'               => array( '1', 'à´¸àµ\8dവതവàµ\87à´¯àµ\81à´³àµ\8dà´³à´\95àµ\8dരമപàµ\8dà´ªàµ\86à´\9fàµ\81à´¤àµ\8dതൽ:', 'à´¸àµ\8dവതവàµ\87à´¯àµ\81à´³àµ\8dà´³à´\95àµ\8dരമപàµ\8dà´ªàµ\86à´\9fàµ\81à´¤àµ\8dതൽà´\9aാവി:', 'à´¸àµ\8dവതവേയുള്ളവർഗ്ഗക്രമപ്പെടുത്തൽ:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
+       'defaultsort'               => array( '1', 'à´¸àµ\8dവതàµ\87à´¯àµ\81à´³àµ\8dà´³à´\95àµ\8dരമപàµ\8dà´ªàµ\86à´\9fàµ\81à´¤àµ\8dതൽ:', 'à´¸àµ\8dവതàµ\87à´¯àµ\81à´³àµ\8dà´³à´\95àµ\8dരമപàµ\8dà´ªàµ\86à´\9fàµ\81à´¤àµ\8dതൽà´\9aാവി:', 'à´¸àµ\8dവതേയുള്ളവർഗ്ഗക്രമപ്പെടുത്തൽ:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                  => array( '0', 'പ്രമാണപഥം:', 'FILEPATH:' ),
        'tag'                       => array( '0', 'റ്റാഗ്', 'ടാഗ്', 'tag' ),
        'hiddencat'                 => array( '1', '‌‌__മറഞ്ഞിരിക്കുംവർഗ്ഗം__', '__HIDDENCAT__' ),
index 667108a..977ebae 100644 (file)
@@ -42,5 +42,9 @@ $namespaceAliases = array(
        'Зургийн_хэлэлцүүлэг' => NS_FILE_TALK,
 );
 
+$magicWords = array(
+       'redirect'                  => array( '0', '#ЧИГЛҮҮЛЭГ', '#REDIRECT' ),
+);
+
 $linkTrail = '/^([a-zабвгдеёжзийклмнопрстуфхцчшщъыьэюя“»]+)(.*)$/sDu';
 
index 6806443..4f9b0cd 100644 (file)
@@ -202,7 +202,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'सदस्यसंख्या', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'सक्रीयसदस्यसंख्या', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'संपादनसंख्या', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'धडकसंख्या', 'प्रेक्षासंख्या', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'लेखनाव', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'लेखानावव', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'नामविश्व', 'NAMESPACE' ),
index b6da373..fb972b0 100644 (file)
@@ -107,10 +107,13 @@ $magicWords = array(
 $specialPageAliases = array(
        'Activeusers'               => array( 'Pengguna_aktif' ),
        'Allmessages'               => array( 'Semua_pesanan', 'Semua_mesej' ),
+       'AllMyUploads'              => array( 'Semua_muat_naik_saya', 'Semua_fail_saya' ),
        'Allpages'                  => array( 'Semua_laman' ),
+       'ApiHelp'                   => array( 'Bantuan_API' ),
        'Ancientpages'              => array( 'Laman_lapuk' ),
+       'Badtitle'                  => array( 'Tajuk_salah' ),
        'Blankpage'                 => array( 'Laman_kosong' ),
-       'Block'                     => array( 'Sekat_IP' ),
+       'Block'                     => array( 'Sekat', 'Sekat_IP', 'Sekat_pengguna' ),
        'Booksources'               => array( 'Sumber_buku' ),
        'BrokenRedirects'           => array( 'Lencongan_rosak', 'Pelencongan_rosak' ),
        'Categories'                => array( 'Kategori' ),
@@ -122,7 +125,9 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'Buka_akaun' ),
        'Deadendpages'              => array( 'Laman_buntu' ),
        'DeletedContributions'      => array( 'Sumbangan_dihapuskan' ),
+       'Diff'                      => array( 'Beza' ),
        'DoubleRedirects'           => array( 'Lencongan_berganda', 'Pelencongan_berganda' ),
+       'EditWatchlist'             => array( 'Sunting_senarai_pantau' ),
        'Emailuser'                 => array( 'E-mel_pengguna' ),
        'ExpandTemplates'           => array( 'Kembangkan_templat' ),
        'Export'                    => array( 'Eksport' ),
@@ -130,47 +135,59 @@ $specialPageAliases = array(
        'FileDuplicateSearch'       => array( 'Cari_fail_berganda' ),
        'Filepath'                  => array( 'Laluan_fail' ),
        'Invalidateemail'           => array( 'Batalkan_pengesahan_e-mel' ),
+       'JavaScriptTest'            => array( 'Kaji_JavaScript' ),
        'BlockList'                 => array( 'Sekatan_IP' ),
        'LinkSearch'                => array( 'Cari_pautan' ),
        'Listadmins'                => array( 'Senarai_pentadbir' ),
        'Listbots'                  => array( 'Senarai_bot' ),
        'Listfiles'                 => array( 'Senarai_imej' ),
-       'Listgrouprights'           => array( 'Senarai_hak_kumpulan' ),
+       'Listgrouprights'           => array( 'Hak_kumpulan', 'Senarai_hak_kumpulan' ),
        'Listredirects'             => array( 'Senarai_lencongan', 'Senarai_pelencongan' ),
+       'ListDuplicatedFiles'       => array( 'Senarai_fail_disalin' ),
        'Listusers'                 => array( 'Senarai_pengguna' ),
        'Lockdb'                    => array( 'Kunci_pangkalan_data' ),
        'Lonelypages'               => array( 'Laman_yatim' ),
        'Longpages'                 => array( 'Laman_panjang' ),
+       'MediaStatistics'           => array( 'Statistik_media' ),
        'MergeHistory'              => array( 'Gabung_sejarah' ),
        'MIMEsearch'                => array( 'Gelintar_MIME' ),
        'Mostcategories'            => array( 'Kategori_terbanyak' ),
        'Mostimages'                => array( 'Imej_terbanyak' ),
+       'Mostinterwikis'            => array( 'Interwiki_terbanyak' ),
        'Mostlinked'                => array( 'Laman_dipaut_terbanyak' ),
        'Mostlinkedcategories'      => array( 'Kategori_dipaut_terbanyak' ),
        'Mostlinkedtemplates'       => array( 'Templat_dipaut_terbanyak' ),
        'Mostrevisions'             => array( 'Semakan_terbanyak' ),
        'Movepage'                  => array( 'Pindah_laman' ),
        'Mycontributions'           => array( 'Sumbangan_saya' ),
+       'MyLanguage'                => array( 'Bahasa_saya' ),
        'Mypage'                    => array( 'Laman_saya' ),
        'Mytalk'                    => array( 'Perbincangan_saya' ),
        'Myuploads'                 => array( 'Muat_naik_saya' ),
        'Newimages'                 => array( 'Imej_baru' ),
        'Newpages'                  => array( 'Laman_baru' ),
+       'PagesWithProp'             => array( 'Laman_dengan_sifat' ),
+       'PageLanguage'              => array( 'Bahasa_laman' ),
+       'PasswordReset'             => array( 'Tetap_semula_kata_kunci' ),
+       'PermanentLink'             => array( 'Pautan_kekal' ),
        'Popularpages'              => array( 'Laman_popular' ),
        'Preferences'               => array( 'Keutamaan' ),
        'Prefixindex'               => array( 'Indeks_awalan' ),
        'Protectedpages'            => array( 'Laman_dilindungi' ),
        'Protectedtitles'           => array( 'Tajuk_dilindungi' ),
-       'Randompage'                => array( 'Laman_rawak' ),
+       'Randompage'                => array( 'Rawak', 'Laman_rawak' ),
+       'RandomInCategory'          => array( 'Rawak_dalam_kategori' ),
        'Randomredirect'            => array( 'Lencongan_rawak', 'Pelencongan_rawak' ),
        'Recentchanges'             => array( 'Perubahan_terkini' ),
        'Recentchangeslinked'       => array( 'Perubahan_berkaitan' ),
+       'Redirect'                  => array( 'Lencong' ),
        'Revisiondelete'            => array( 'Hapus_semakan' ),
-       'Search'                    => array( 'Gelintar' ),
+       'Search'                    => array( 'Cari', 'Gelintar' ),
        'Shortpages'                => array( 'Laman_pendek' ),
        'Specialpages'              => array( 'Laman_khas' ),
        'Statistics'                => array( 'Statistik' ),
-       'Tags'                      => array( 'Label' ),
+       'Tags'                      => array( 'Teg', 'Label' ),
+       'TrackingCategories'        => array( 'Kategori_penjejak' ),
        'Unblock'                   => array( 'Nyahsekat' ),
        'Uncategorizedcategories'   => array( 'Kategori_tanpa_kategori' ),
        'Uncategorizedimages'       => array( 'Imej_tanpa_kategori' ),
@@ -192,7 +209,7 @@ $specialPageAliases = array(
        'Wantedpages'               => array( 'Laman_dikehendaki' ),
        'Wantedtemplates'           => array( 'Templat_dikehendaki' ),
        'Watchlist'                 => array( 'Senarai_pantau' ),
-       'Whatlinkshere'             => array( 'Pautan_ke' ),
+       'Whatlinkshere'             => array( 'Pautan_ke_sini', 'Pautan_ke' ),
        'Withoutinterwiki'          => array( 'Laman_tanpa_pautan_bahasa' ),
 );
 
index e5dd967..2529cc9 100644 (file)
@@ -173,7 +173,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NUMRUTA\'UTENTI', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NUMRUTA\'UTENTIATTIVI', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NUMBRUTA\'MODIFIKI', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NUMRUTA\'VISTI', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'ISEMTAL-PAĠNA', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'ISEMTAL-PAĠNAE', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'SPAZJUTAL-ISEM', 'NAMESPACE' ),
index ad73dc1..16ecac2 100644 (file)
@@ -107,7 +107,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'تعدادکارورون', 'تعدادکاربران', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'کارورون_فعال', 'کاربران_فعال', 'کاربران‌فعال', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'تعداددچی‌یه‌ئون', 'تعدادویرایش‌ها', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'تعدادبازدید', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'نام‌صفحه', 'نام_صفحه', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'نام‌صفحه‌کد', 'نام_صفحه_کد', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'فضای‌نام', 'فضای_نام', 'NAMESPACE' ),
index 9ac1332..10af14b 100644 (file)
@@ -51,14 +51,22 @@ $namespaceAliases = array(
        '分類討論' => NS_CATEGORY_TALK,
 );
 
+$specialPageAliases = array(
+       'Recentchangeslinked'       => array( 'Siong-koan_ê_kái-piàn' ),
+       'Specialpages'              => array( 'Te̍k-sû_ia̍h' ),
+       'Upload'                    => array( 'Kā_tóng-àn_chiūⁿ-bāng' ),
+       'Whatlinkshere'             => array( 'Tó-ūi_liân_kàu_chia' ),
+);
+
 $datePreferences = array(
        'default',
        'ISO 8601',
 );
+
 $defaultDateFormat = 'nan';
+
 $dateFormats = array(
        'nan time' => 'H:i',
        'nan date' => 'Y-"nî" n-"goe̍h" j-"ji̍t" (l)',
        'nan both' => 'Y-"nî" n-"goe̍h" j-"ji̍t" (D) H:i',
 );
-
index e53cefd..6f9cf1f 100644 (file)
@@ -100,6 +100,7 @@ $dateFormats = array(
 $specialPageAliases = array(
        'Activeusers'               => array( 'Aktive_brukere' ),
        'Allmessages'               => array( 'Alle_systembeskjeder' ),
+       'AllMyUploads'              => array( 'Alle_mine_opplastinger' ),
        'Allpages'                  => array( 'Alle_sider' ),
        'Ancientpages'              => array( 'Gamle_sider' ),
        'Badtitle'                  => array( 'Ugyldig_tittel' ),
@@ -126,6 +127,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( 'Filsti' ),
        'Import'                    => array( 'Importer' ),
        'Invalidateemail'           => array( 'Ugyldiggjøre_e-post' ),
+       'JavaScriptTest'            => array( 'Javascript-test' ),
        'BlockList'                 => array( 'Blokkeringsliste', 'IP-blokkeringsliste' ),
        'LinkSearch'                => array( 'Lenkesøk' ),
        'Listadmins'                => array( 'Administratorliste', 'Administratorer' ),
@@ -142,6 +144,7 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'MIME-søk' ),
        'Mostcategories'            => array( 'Flest_kategorier' ),
        'Mostimages'                => array( 'Mest_lenkede_filer', 'Flest_filer', 'Flest_bilder' ),
+       'Mostinterwikis'            => array( 'Flest_interrwikilenker' ),
        'Mostlinked'                => array( 'Mest_lenkede_sider', 'Mest_lenket' ),
        'Mostlinkedcategories'      => array( 'Mest_lenkede_kategorier', 'Mest_brukte_kategorier' ),
        'Mostlinkedtemplates'       => array( 'Mest_lenkede_maler', 'Mest_brukte_maler' ),
@@ -154,6 +157,7 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'Mine_opplastinger' ),
        'Newimages'                 => array( 'Nye_filer', 'Nye_bilder' ),
        'Newpages'                  => array( 'Nye_sider' ),
+       'PagesWithProp'             => array( 'Sider_med_egenskap' ),
        'PasswordReset'             => array( 'Nullstill_passord' ),
        'PermanentLink'             => array( 'Permanent_lenke' ),
        'Popularpages'              => array( 'Populære_sider' ),
@@ -166,6 +170,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'Tilfeldig_omdirigering' ),
        'Recentchanges'             => array( 'Siste_endringer' ),
        'Recentchangeslinked'       => array( 'Relaterte_endringer' ),
+       'Redirect'                  => array( 'Omdirigering' ),
        'Revisiondelete'            => array( 'Revisjonssletting' ),
        'Search'                    => array( 'Søk' ),
        'Shortpages'                => array( 'Korte_sider' ),
@@ -232,7 +237,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'ANTALLBRUKERE', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'ANTALLAKTIVEBRUKERE', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'ANTALLREDIGERINGER', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'ANTALLVISNINGER', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'SIDENAVN', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'SIDENAVNE', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'NAVNEROM', 'NAMESPACE' ),
index e78964e..5e82e82 100644 (file)
@@ -108,7 +108,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'ANTALGEBRUKERS', 'AANTALGEBRUIKERS', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'ANTALAKTIEVEGEBRUKERS', 'AANTALACTIEVEGEBRUIKERS', 'ACTIEVEGEBRUIKERS', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'ANTALBEWARKINGEN', 'AANTALBEWERKINGEN', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'ANTALKERENBEKEKEN', 'AANTALKERENBEKEKEN', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'ZIEDNAAM', 'PAGINANAAM', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'ZIEDNAAME', 'PAGINANAAME', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'NAAMRUUMTE', 'NAAMRUIMTE', 'NAMESPACE' ),
index 7184f6c..7142bb1 100644 (file)
@@ -40,6 +40,11 @@ $namespaceNames = array(
        NS_CATEGORY_TALK    => 'श्रेणी_वार्ता',
 );
 
+$specialPageAliases = array(
+       'Activeusers'               => array( 'सक्रिय_प्रयोगकर्ताहरु' ),
+       'Listgrouprights'           => array( 'प्रयोगकर्ता_समूह_अधिकार' ),
+);
+
 $digitTransformTable = array(
        '0' => '०', # &#x0966;
        '1' => '१', # &#x0967;
index 0132437..7d7fa05 100644 (file)
@@ -146,7 +146,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'AANTALGEBRUIKERS', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'AANTALACTIEVEGEBRUIKERS', 'ACTIEVEGEBRUIKERS', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'AANTALBEWERKINGEN', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'AANTALKERENBEKEKEN', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'PAGINANAAM', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'PAGINANAAME', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'NAAMRUIMTE', 'NAMESPACE' ),
@@ -275,6 +274,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'AlleBerichten', 'Systeemberichten' ),
        'AllMyUploads'              => array( 'AlMijnUploads' ),
        'Allpages'                  => array( 'AllePaginas', 'AllePagina’s', 'AllePagina\'s' ),
+       'ApiHelp'                   => array( 'ApiHulp' ),
        'Ancientpages'              => array( 'OudstePaginas', 'OudstePagina’s', 'OudstePagina\'s' ),
        'Badtitle'                  => array( 'OnjuistePaginanaam' ),
        'Blankpage'                 => array( 'LegePagina' ),
@@ -307,11 +307,13 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'Bestandenlijst', 'Afbeeldingenlijst' ),
        'Listgrouprights'           => array( 'GroepsrechtenWeergeven' ),
        'Listredirects'             => array( 'Doorverwijzinglijst', 'Redirectlijst' ),
+       'ListDuplicatedFiles'       => array( 'DuplicaatbestandenWeergeven' ),
        'Listusers'                 => array( 'Gebruikerslijst', 'Gebruikerlijst' ),
        'Lockdb'                    => array( 'DBblokkeren', 'DbBlokkeren', 'BlokkeerDB' ),
        'Log'                       => array( 'Logboeken', 'Logboek' ),
        'Lonelypages'               => array( 'Weespaginas', 'Weespagina\'s' ),
        'Longpages'                 => array( 'LangePaginas', 'LangePagina’s', 'LangePagina\'s' ),
+       'MediaStatistics'           => array( 'Mediastatistieken' ),
        'MergeHistory'              => array( 'GeschiedenisSamenvoegen' ),
        'MIMEsearch'                => array( 'MIMEzoeken', 'MIME-zoeken' ),
        'Mostcategories'            => array( 'MeesteCategorieën' ),
@@ -330,6 +332,7 @@ $specialPageAliases = array(
        'Newimages'                 => array( 'NieuweBestanden', 'NieuweAfbeeldingen' ),
        'Newpages'                  => array( 'NieuwePaginas', 'NieuwePagina’s', 'NieuwePagina\'s' ),
        'PagesWithProp'             => array( 'PaginasMetEigenschap', 'Pagina\'sMetEigenschap' ),
+       'PageLanguage'              => array( 'Paginataal' ),
        'PasswordReset'             => array( 'WachtwoordOpnieuwInstellen' ),
        'PermanentLink'             => array( 'PermanenteVerwijzing' ),
        'Popularpages'              => array( 'PopulairePaginas', 'PopulairePagina’s', 'PopulairePagina\'s' ),
@@ -345,11 +348,13 @@ $specialPageAliases = array(
        'Redirect'                  => array( 'Doorverwijzen' ),
        'ResetTokens'               => array( 'TokensOpnieuwInstellen' ),
        'Revisiondelete'            => array( 'VersieVerwijderen', 'HerzieningVerwijderen', 'RevisieVerwijderen' ),
+       'RunJobs'                   => array( 'TakenUitvoeren' ),
        'Search'                    => array( 'Zoeken' ),
        'Shortpages'                => array( 'KortePaginas', 'KortePagina’s', 'KortePagina\'s' ),
        'Specialpages'              => array( 'SpecialePaginas', 'SpecialePagina’s', 'SpecialePagina\'s' ),
        'Statistics'                => array( 'Statistieken' ),
        'Tags'                      => array( 'Labels' ),
+       'TrackingCategories'        => array( 'Trackingcategorieen' ),
        'Unblock'                   => array( 'Deblokkeren' ),
        'Uncategorizedcategories'   => array( 'NietGecategoriseerdeCategorieën', 'Niet-GecategoriseerdeCategorieën' ),
        'Uncategorizedimages'       => array( 'NietGecategoriseerdeBestanden', 'NietGecategoriseerdeAfbeeldingen', 'Niet-GecategoriseerdeAfbeeldingen' ),
index 991a513..606f720 100644 (file)
@@ -101,7 +101,7 @@ $bookstoreList = array(
 );
 
 $magicWords = array(
-       'redirect'                  => array( '0', '#omdiriger', '#REDIRECT' ),
+       'redirect'                  => array( '0', '#OMDIRIGER', '#omdiriger', '#REDIRECT' ),
        'notoc'                     => array( '0', '__INGAINNHALDSLISTE__', '__INGENINNHOLDSLISTE__', '__NOTOC__' ),
        'nogallery'                 => array( '0', '__INKJEGALLERI__', '__NOGALLERY__' ),
        'forcetoc'                  => array( '0', '__ALLTIDINNHALDSLISTE__', '__ALLTIDINNHOLDSLISTE__', '__FORCETOC__' ),
@@ -122,7 +122,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'BRUKARTAL', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'AKTIVEBRUKARAR', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'ENDRINGSTAL', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'VISINGSTAL', 'TALPÅVISINGAR', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'SIDENAMN', 'SIDENAVN', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'SIDENAMNE', 'SIDENAVNE', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'NAMNEROM', 'NAVNEROM', 'NAMESPACE' ),
@@ -143,6 +142,7 @@ $magicWords = array(
        'img_center'                => array( '1', 'sentrum', 'center', 'centre' ),
        'img_framed'                => array( '1', 'ramme', 'ramma', 'framed', 'enframed', 'frame' ),
        'img_frameless'             => array( '1', 'rammelaus', 'frameless' ),
+       'img_lang'                  => array( '1', 'språk=$1', 'lang=$1' ),
        'img_page'                  => array( '1', 'side=$1', 'side_$1', 'page=$1', 'page $1' ),
        'img_link'                  => array( '1', 'lenkje=$1', 'lenke=$1', 'link=$1' ),
        'sitename'                  => array( '1', 'NETTSTADNAMN', 'SITENAME' ),
@@ -280,15 +280,18 @@ $specialPageAliases = array(
        'Protectedpages'            => array( 'Verna_sider' ),
        'Protectedtitles'           => array( 'Verna_sidenamn' ),
        'Randompage'                => array( 'Tilfeldig_side' ),
+       'RandomInCategory'          => array( 'Tilfeldig_frå_kategori' ),
        'Randomredirect'            => array( 'Tilfeldig_omdirigering' ),
        'Recentchanges'             => array( 'Siste_endringar', 'Siste_endringane' ),
        'Recentchangeslinked'       => array( 'Relaterte_endringar' ),
+       'Redirect'                  => array( 'Omdiriger' ),
        'Revisiondelete'            => array( 'Versjonssletting' ),
        'Search'                    => array( 'Søk' ),
        'Shortpages'                => array( 'Korte_sider', 'Stutte_sider' ),
        'Specialpages'              => array( 'Spesialsider', 'Særsider' ),
        'Statistics'                => array( 'Statistikk' ),
        'Tags'                      => array( 'Merke' ),
+       'TrackingCategories'        => array( 'Sporingskategoriar' ),
        'Uncategorizedcategories'   => array( 'Ukategoriserte_kategoriar' ),
        'Uncategorizedimages'       => array( 'Ukategoriserte_filer' ),
        'Uncategorizedpages'        => array( 'Ukategoriserte_sider' ),
index 925513c..64220d8 100644 (file)
@@ -73,7 +73,7 @@ $specialPageAliases = array(
        'Deadendpages'              => array( 'Paginas_sul_camin_d\'enlòc' ),
        'DeletedContributions'      => array( 'Contribucions_escafadas', 'ContribucionsEscafadas' ),
        'DoubleRedirects'           => array( 'Redireccions_doblas', 'RedireccionsDoblas' ),
-       'Emailuser'                 => array( 'Corrièr_electronic', 'Email', 'Emèl', 'Emèil' ),
+       'Emailuser'                 => array( 'Corrièr_electronic', 'Emèl', 'Emèil' ),
        'Export'                    => array( 'Exportar', 'Exportacion' ),
        'Fewestrevisions'           => array( 'Mens_de_revisions' ),
        'FileDuplicateSearch'       => array( 'Recèrca_fichièr_en_doble', 'RecèrcaFichièrEnDoble' ),
@@ -177,7 +177,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NOMBREUTILIZAIRES', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NOMBREUTILIZAIRESACTIUS', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NOMBREEDICIONS', 'NOMBREMODIFS', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NOMBREVISTAS', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'NOMPAGINA', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'NOMPAGINAX', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ESPACINOMENATGE', 'NAMESPACE' ),
index db25e5a..f3bea17 100644 (file)
@@ -203,7 +203,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'ବ୍ୟବାହାରକାରୀ_ସଂଖ୍ୟା', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'ସଚଳ_ବ୍ୟବାହାରକାରୀଙ୍କ_ସଂଖ୍ୟା', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'ବଦଳ_ସଂଖ୍ୟା', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'କେତେଥର_ଦେଖାଯାଇଛି', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'ପୃଷ୍ଠା_ନାଆଁ', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'ପୃଷ୍ଠା_ନାମକାରଣକାରୀ', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ନେମସ୍ପେସ', 'NAMESPACE' ),
index 3412c80..3e3090c 100644 (file)
@@ -66,6 +66,7 @@ $namespaceAliases = array(
 $specialPageAliases = array(
        'Activeusers'               => array( 'ਸਰਗਰਮ_ਵਰਤੋਂਕਾਰ' ),
        'Allmessages'               => array( 'ਸਾਰੇ_ਸਨੇਹੇ' ),
+       'AllMyUploads'              => array( 'ਮੇਰੇ_ਸਾਰੇ_ਅੱਪਲੋਡ' ),
        'Allpages'                  => array( 'ਸਾਰੇ_ਸਫ਼ੇ' ),
        'Ancientpages'              => array( 'ਪੁਰਾਣੇ_ਸਫ਼ੇ' ),
        'Badtitle'                  => array( 'ਖ਼ਰਾਬ_ਸਿਰਲੇਖ' ),
@@ -73,38 +74,41 @@ $specialPageAliases = array(
        'Block'                     => array( 'ਪਾਬੰਦੀ_ਲਾਓ', 'IP_’ਤੇ_ਪਾਬੰਦੀ_ਲਾਓ', 'ਵਰਤੋਂਕਾਰ_’ਤੇ_ਪਾਬੰਦੀ_ਲਾਓ' ),
        'Booksources'               => array( 'ਕਿਤਾਬ_ਸਰੋਤ' ),
        'BrokenRedirects'           => array( 'ਟੁੱਟੇ_ਰੀਡਿਰੈਕਟ' ),
-       'Categories'                => array( 'ਸ਼੍ਰੇਣੀਆਂ' ),
-       'ChangeEmail'               => array( 'ਈ-ਮੇਲ_ਬਦਲੋ' ),
+       'Categories'                => array( 'ਸ਼੍ਰੇਣੀਆਂ', 'ਵਰਗ' ),
+       'ChangeEmail'               => array( 'ਈ-ਮੇਲ_ਬਦਲੋ', 'ਈਮੇਲ_ਬਦਲੋ' ),
        'ChangePassword'            => array( 'ਪਾਸਵਰਡ_ਬਦਲੋ', 'ਪਾਸਵਰਡ_ਰੀਸੈੱਟ_ਕਰੋ' ),
        'ComparePages'              => array( 'ਸਫ਼ਿਆਂ_ਦੀ_ਤੁਲਨਾ_ਕਰੋ' ),
-       'Confirmemail'              => array( 'ਈ-ਮੇਲ_ਤਸਦੀਕ_ਕਰੋ' ),
-       'Contributions'             => array( 'ਯੋਗਦਾਨ' ),
+       'Confirmemail'              => array( 'ਈ-ਮੇਲ_ਤਸਦੀਕ_ਕਰੋ', 'ਈਮੇਲ_ਤਸਦੀਕ_ਕਰੋ' ),
+       'Contributions'             => array( 'ਯੋਗਦਾਨ', 'ਹਿੱਸੇਦਾਰੀ' ),
        'CreateAccount'             => array( 'ਖਾਤਾ_ਬਣਾਓ' ),
        'Deadendpages'              => array( 'ਬੰਦ_ਸਫ਼ੇ' ),
        'DeletedContributions'      => array( 'ਮਿਟਾਏ_ਯੋਗਦਾਨ' ),
+       'Diff'                      => array( 'ਫ਼ਰਕ' ),
        'DoubleRedirects'           => array( 'ਦੂਹਰੇ_ਰੀਡਿਰੈਕਟ' ),
-       'EditWatchlist'             => array( 'ਨਿਗਰਾਨੀ-ਲਿਸਟ_ਸੋਧੋ' ),
+       'EditWatchlist'             => array( 'ਨਿਗਰਾਨੀ-ਲਿਸਟ_ਸੋਧੋ', 'ਨਿਗਰਾਨੀਲਿਸਟ_ਸੋਧੋ' ),
        'Emailuser'                 => array( 'ਵਰਤੋਂਕਾਰ_ਨੂੰ_ਈ-ਮੇਲ_ਕਰੋ' ),
+       'ExpandTemplates'           => array( 'ਫਰਮੇ_ਖੋਲ੍ਹੋ' ),
        'Export'                    => array( 'ਨਿਰਯਾਤ' ),
        'Fewestrevisions'           => array( 'ਸਭ_ਤੋਂ_ਘੱਟ_ਰੀਵਿਜ਼ਨਾਂ' ),
-       'FileDuplicateSearch'       => array( 'ਨਕਲੀ_ਫ਼ਾਈਲ_ਖੋਜੋ' ),
-       'Filepath'                  => array( 'ਫ਼ਾਈਲ_ਪਥ' ),
+       'FileDuplicateSearch'       => array( 'ਨਕਲੀ_ਫ਼ਾਈਲ_ਖੋਜੋ', 'ਨਕਲੀ_ਫ਼ਾਇਲ_ਖੋਜੋ' ),
+       'Filepath'                  => array( 'ਫ਼ਾਈਲ_ਪਥ', 'ਫ਼ਾਇਲ_ਪਥ' ),
        'Import'                    => array( 'ਆਯਾਤ' ),
        'Invalidateemail'           => array( 'ਗਲਤ_ਈ-ਮੇਲ_ਪਤਾ' ),
        'JavaScriptTest'            => array( 'ਜਾਵਾਸਕ੍ਰਿਪਟ_ਪਰਖ' ),
        'BlockList'                 => array( 'ਪਾਬੰਦੀਆਂ_ਦੀ_ਲਿਸਟ' ),
-       'LinkSearch'                => array( 'ਲਿੰਕ_ਖੋਜੋ' ),
+       'LinkSearch'                => array( 'ਲਿੰਕ_ਖੋਜੋ', 'ਕੜੀ_ਖੋਜੋ' ),
        'Listadmins'                => array( 'ਪ੍ਰਬੰਧਕਾਂ_ਦੀ_ਲਿਸਟ' ),
-       'Listbots'                  => array( 'ਬੋਟਾਂ_ਦੀ_ਲਿਸਟ' ),
-       'Listfiles'                 => array( 'ਫ਼ਾਈਲਾਂ_ਦੀ_ਲਿਸਟ' ),
+       'Listbots'                  => array( 'ਬੋਟ_ਲਿਸਟ' ),
+       'Listfiles'                 => array( 'ਫ਼ਾਈਲ_ਲਿਸਟ', 'ਫ਼ਾਇਲ_ਲਿਸਟ', 'ਤਸਵੀਰ_ਲਿਸਟ' ),
        'Listgrouprights'           => array( 'ਵਰਤੋਂਕਾਰ_ਹੱਕਾਂ_ਦੀ_ਲਿਸਟ' ),
        'Listredirects'             => array( 'ਰੀਡਿਰੈਕਟਾਂ_ਦੀ_ਲਿਸਟ' ),
+       'ListDuplicatedFiles'       => array( 'ਨਕਲੀ_ਫ਼ਾਇਲ_ਲਿਸਟ' ),
        'Listusers'                 => array( 'ਵਰਤੋਂਕਾਰਾਂ_ਦੀ_ਲਿਸਟ' ),
        'Lockdb'                    => array( 'ਡੈਟਾਬੇਸ_’ਤੇ_ਤਾਲਾ_ਲਗਾਓ' ),
        'Log'                       => array( 'ਚਿੱਠਾ', 'ਚਿੱਠੇ' ),
        'Lonelypages'               => array( 'ਇਕੱਲੇ_ਸਫ਼ੇ' ),
        'Longpages'                 => array( 'ਲੰਬੇ_ਸਫ਼ੇ' ),
-       'MergeHistory'              => array( 'ਰਲਾਉਣ_ਦਾ_ਅਤੀਤ' ),
+       'MergeHistory'              => array( 'ਰਲਾਉਣ_ਦਾ_ਅਤੀਤ', 'ਰਲ਼ਾਉਣ_ਦਾ_ਅਤੀਤ' ),
        'MIMEsearch'                => array( 'MIME_ਖੋਜੋ' ),
        'Mostcategories'            => array( 'ਸਭ_ਤੋਂ_ਵੱਧ_ਸ਼੍ਰੇਣੀਆਂ' ),
        'Mostimages'                => array( 'ਸਭ_ਤੋਂ_ਵੱਧ_ਜੁੜੀਆਂ_ਫ਼ਾਈਲਾਂ' ),
@@ -114,24 +118,27 @@ $specialPageAliases = array(
        'Mostlinkedtemplates'       => array( 'ਸਭ_ਤੋਂ_ਵੱਧ_ਜੁੜੇ_ਫਰਮੇ' ),
        'Mostrevisions'             => array( 'ਸਭ_ਤੋਂ_ਵੱਧ_ਰੀਵਿਜ਼ਨ' ),
        'Movepage'                  => array( 'ਸਿਰਲੇਖ_ਬਦਲੋ' ),
-       'Mycontributions'           => array( 'ਮੇਰੇ_ਯੋਗਦਾਨ' ),
+       'Mycontributions'           => array( 'ਮੇਰੇ_ਯੋਗਦਾਨ', 'ਮੇਰੀ_ਹਿੱਸੇਦਾਰੀ' ),
        'MyLanguage'                => array( 'ਮੇਰੀ_ਭਾਸ਼ਾ', 'ਮੇਰੀ_ਬੋਲੀ' ),
        'Mypage'                    => array( 'ਮੇਰਾ_ਸਫ਼ਾ' ),
-       'Mytalk'                    => array( 'ਮੇਰੀ_ਚਰਚਾ' ),
-       'Myuploads'                 => array( 'ਮੇਰੇ_ਅੱਪਲੋਡ' ),
-       'Newimages'                 => array( 'ਨਵੀਆਂ_ਫ਼ਾਈਲਾਂ' ),
+       'Mytalk'                    => array( 'ਮੇਰੀ_ਚਰਚਾ', 'ਮੇਰੀ_ਗੱਲ-ਬਾਤ' ),
+       'Myuploads'                 => array( 'ਮੇਰੇ_ਅੱਪਲੋਡ', 'ਮੇਰੀਆਂ_ਫ਼ਾਇਲਾਂ' ),
+       'Newimages'                 => array( 'ਨਵੀਆਂ_ਫ਼ਾਈਲਾਂ', 'ਨਵੀਆਂ_ਤਸਵੀਰਾਂ' ),
        'Newpages'                  => array( 'ਨਵੇਂ_ਸਫ਼ੇ' ),
+       'PageLanguage'              => array( 'ਸਫ਼ੇ_ਦੀ_ਭਾਸ਼ਾ' ),
        'PasswordReset'             => array( 'ਪਾਸਵਰਡ_ਰੀਸੈੱਟ' ),
-       'PermanentLink'             => array( 'ਪੱਕਾ_ਲਿੰਕ' ),
+       'PermanentLink'             => array( 'ਪੱਕਾ_ਲਿੰਕ', 'ਪੱਕੀ_ਕੜੀ' ),
        'Popularpages'              => array( 'ਮਸ਼ਹੂਰ_ਸਫ਼ੇ' ),
        'Preferences'               => array( 'ਪਸੰਦਾਂ' ),
        'Prefixindex'               => array( 'ਅਗੇਤਰ_ਤਤਕਰਾ' ),
        'Protectedpages'            => array( 'ਸੁਰੱਖਿਅਤ_ਸਫ਼ੇ' ),
        'Protectedtitles'           => array( 'ਸੁਰੱਖਿਅਤ_ਸਿਰਲੇਖ' ),
        'Randompage'                => array( 'ਰਲਵਾਂ_ਸਫ਼ਾ' ),
+       'RandomInCategory'          => array( 'ਰਲਵੀਂ_ਸ਼੍ਰੇਣੀ' ),
        'Randomredirect'            => array( 'ਸੁਰੱਖਿਅਤ_ਰੀਡਿਰੈਕਟ' ),
-       'Recentchanges'             => array( 'ਹਾਲੀਆ_ਤਬਦੀਲੀਆਂ' ),
-       'Recentchangeslinked'       => array( 'ਜੁੜੀਆਂ_ਤਾਜ਼ਾ_ਤਬਦੀਲੀਆਂ' ),
+       'Recentchanges'             => array( 'ਤਾਜ਼ਾ_ਤਬਦੀਲੀਆਂ' ),
+       'Recentchangeslinked'       => array( 'ਜੁੜੀਆਂ_ਹਾਲੀਆ_ਤਬਦੀਲੀਆਂ', 'ਸਬੰਧਤ_ਹਾਲੀਆ_ਤਬਦੀਲੀਆਂ' ),
+       'Redirect'                  => array( 'ਰੀਡਿਰੈਕਟ' ),
        'Revisiondelete'            => array( 'ਰੀਵਿਜ਼ਨ_ਮਿਟਾਓ' ),
        'Search'                    => array( 'ਖੋਜੋ' ),
        'Shortpages'                => array( 'ਛੋਟੇ_ਸਫ਼ੇ' ),
@@ -149,11 +156,11 @@ $specialPageAliases = array(
        'Unusedimages'              => array( 'ਅਣਵਰਤੀਆਂ_ਫ਼ਾਈਲਾਂ' ),
        'Unusedtemplates'           => array( 'ਅਣਵਰਤੇ_ਫਰਮੇ' ),
        'Unwatchedpages'            => array( 'ਬੇ-ਨਿਗਰਾਨ_ਸਫ਼ੇ' ),
-       'Upload'                    => array( 'ਅੱਪਲੋਡ' ),
+       'Upload'                    => array( 'ਅੱਪਲੋਡ_ਕਰੋ' ),
        'Userlogin'                 => array( 'ਵਰਤੋਂਕਾਰ_ਲਾਗਇਨ' ),
        'Userlogout'                => array( 'ਵਰਤੋਂਕਾਰ_ਲਾਗਆਊਟ' ),
        'Userrights'                => array( 'ਵਰਤੋਂਕਾਰ_ਹੱਕ', 'ਪ੍ਰਬੰਧਕ_ਬਣਾਓ', 'ਬੋਟ_ਬਣਾਓ' ),
-       'Version'                   => array( 'ਰੂਪ' ),
+       'Version'                   => array( 'ਰੂਪ', 'ਵਰਜਨ' ),
        'Wantedcategories'          => array( 'ਚਾਹੀਦੀਆਂ_ਸ਼੍ਰੇਣੀਆਂ' ),
        'Wantedfiles'               => array( 'ਚਾਹੀਦੀਆਂ_ਫ਼ਾਈਲਾਂ' ),
        'Wantedpages'               => array( 'ਚਾਹੀਦੇ_ਸਫ਼ੇ', 'ਟੁੱਟੇ_ਜੋੜ' ),
index f3f2ef5..4c82276 100644 (file)
@@ -293,8 +293,8 @@ $magicWords = array(
        'localdow'                  => array( '1', 'DZIEŃTYGODNIANR', 'LOCALDOW' ),
        'plural'                    => array( '0', 'MNOGA:', 'PLURAL:' ),
        'fullurl'                   => array( '0', 'PEŁNYURL', 'FULLURL:' ),
-       'lcfirst'                   => array( '0', 'ZMAŁEJ:', 'LCFIRST:' ),
-       'ucfirst'                   => array( '0', 'ZWIELKIEJ:', 'ZDUŻEJ:', 'UCFIRST:' ),
+       'lcfirst'                   => array( '0', 'ZMAŁEJ:', 'ODMAŁEJ:', 'LCFIRST:' ),
+       'ucfirst'                   => array( '0', 'ZWIELKIEJ:', 'ZDUŻEJ:', 'ODWIELKIEJ:', 'ODDUŻEJ:', 'UCFIRST:' ),
        'lc'                        => array( '0', 'MAŁE:', 'LC:' ),
        'uc'                        => array( '0', 'WIELKIE:', 'DUŻE:', 'UC:' ),
        'displaytitle'              => array( '1', 'WYŚWIETLANYTYTUŁ', 'DISPLAYTITLE' ),
@@ -305,7 +305,7 @@ $magicWords = array(
        'padleft'                   => array( '0', 'DOLEWEJ', 'PADLEFT' ),
        'padright'                  => array( '0', 'DOPRAWEJ', 'PADRIGHT' ),
        'special'                   => array( '0', 'specjalna', 'special' ),
-       'defaultsort'               => array( '1', 'DOMYŚLNIESORTUJ', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
+       'defaultsort'               => array( '1', 'SORTUJ', 'DOMYŚLNIESORTUJ', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                  => array( '0', 'ŚCIEŻKAPLIKU', 'FILEPATH:' ),
        'hiddencat'                 => array( '1', '__KATEGORIAUKRYTA__', '__HIDDENCAT__' ),
        'pagesincategory'           => array( '1', 'STRONYWKATEGORII', 'PAGESINCATEGORY', 'PAGESINCAT' ),
@@ -315,5 +315,7 @@ $magicWords = array(
        'protectionlevel'           => array( '1', '__POZIOMZABEZPIECZEŃ__', 'PROTECTIONLEVEL' ),
        'url_path'                  => array( '0', 'ŚCIEŻKA', 'PATH' ),
        'url_query'                 => array( '0', 'ZAPYTANIE', 'QUERY' ),
+       'pagesincategory_pages'     => array( '0', 'strony', 'pages' ),
+       'pagesincategory_files'     => array( '0', 'pliki', 'files' ),
 );
 
index 5dd94ab..7a293f6 100644 (file)
@@ -124,6 +124,7 @@ $specialPageAliases = array(
        'Booksources'               => array( 'Fontes_de_livros' ),
        'BrokenRedirects'           => array( 'Redireccionamentos_quebrados', 'Redirecionamentos_quebrados' ),
        'Categories'                => array( 'Categorias' ),
+       'ChangeEmail'               => array( 'Alterar_e-mail', 'Alterar_correio_electrónico' ),
        'ChangePassword'            => array( 'Reiniciar_palavra-chave', 'Repor_senha', 'Zerar_senha' ),
        'ComparePages'              => array( 'Comparar_páginas' ),
        'Confirmemail'              => array( 'Confirmar_correio_electrónico', 'Confirmar_e-mail', 'Confirmar_email' ),
@@ -131,6 +132,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'Criar_conta' ),
        'Deadendpages'              => array( 'Páginas_sem_saída', 'Artigos_sem_saída' ),
        'DeletedContributions'      => array( 'Contribuições_eliminadas', 'Edições_eliminadas' ),
+       'Diff'                      => array( 'Diferenças_entre_edições', 'Mudanças_entre_edições' ),
        'DoubleRedirects'           => array( 'Redireccionamentos_duplos', 'Redirecionamentos_duplos' ),
        'EditWatchlist'             => array( 'Editar_lista_de_páginas_vigiadas' ),
        'Emailuser'                 => array( 'Contactar_utilizador', 'Contactar_usuário', 'Contatar_usuário' ),
@@ -148,6 +150,7 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'Lista_de_ficheiros', 'Lista_de_imagens', 'Lista_de_arquivos' ),
        'Listgrouprights'           => array( 'Lista_de_privilégios_de_grupos', 'Listar_privilégios_de_grupos' ),
        'Listredirects'             => array( 'Redireccionamentos', 'Redirecionamentos', 'Lista_de_redireccionamentos', 'Lista_de_redirecionamentos' ),
+       'ListDuplicatedFiles'       => array( 'Lista_de_ficheiros_duplicados', 'Lista_de_arquivos_duplicados' ),
        'Listusers'                 => array( 'Lista_de_utilizadores', 'Lista_de_usuários' ),
        'Lockdb'                    => array( 'Bloquear_base_de_dados', 'Bloquear_a_base_de_dados', 'Bloquear_banco_de_dados' ),
        'Log'                       => array( 'Registo', 'Registos', 'Registro', 'Registros' ),
@@ -157,6 +160,7 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'Busca_MIME' ),
        'Mostcategories'            => array( 'Páginas_com_mais_categorias', 'Artigos_com_mais_categorias' ),
        'Mostimages'                => array( 'Ficheiros_com_mais_afluentes', 'Imagens_com_mais_afluentes', 'Arquivos_com_mais_afluentes' ),
+       'Mostinterwikis'            => array( 'Páginas_com_mais_interwikis' ),
        'Mostlinked'                => array( 'Páginas_com_mais_afluentes', 'Artigos_com_mais_afluentes' ),
        'Mostlinkedcategories'      => array( 'Categorias_com_mais_afluentes', 'Categorias_mais_usadas' ),
        'Mostlinkedtemplates'       => array( 'Predefinições_com_mais_afluentes', 'Predefinições_mais_usadas' ),
@@ -167,6 +171,8 @@ $specialPageAliases = array(
        'Mytalk'                    => array( 'Minha_discussão' ),
        'Newimages'                 => array( 'Ficheiros_novos', 'Imagens_novas', 'Arquivos_novos' ),
        'Newpages'                  => array( 'Páginas_novas', 'Artigos_novos' ),
+       'PagesWithProp'             => array( 'Propriedades_de_página' ),
+       'PasswordReset'             => array( 'Redefinir_autenticação' ),
        'PermanentLink'             => array( 'Ligação_permanente', 'Link_permanente' ),
        'Popularpages'              => array( 'Páginas_populares', 'Artigos_populares' ),
        'Preferences'               => array( 'Preferências' ),
@@ -174,15 +180,19 @@ $specialPageAliases = array(
        'Protectedpages'            => array( 'Páginas_protegidas', 'Artigos_protegidos' ),
        'Protectedtitles'           => array( 'Títulos_protegidos' ),
        'Randompage'                => array( 'Aleatória', 'Aleatório', 'Página_aleatória', 'Artigo_aleatório' ),
+       'RandomInCategory'          => array( 'Aleatória_na_Categoria', 'Aleatório_na_Categoria' ),
        'Randomredirect'            => array( 'Redireccionamento_aleatório', 'Redirecionamento_aleatório' ),
        'Recentchanges'             => array( 'Mudanças_recentes' ),
        'Recentchangeslinked'       => array( 'Alterações_relacionadas', 'Novidades_relacionadas', 'Mudanças_relacionadas' ),
+       'Redirect'                  => array( 'Redirecionar', 'Redireccionar' ),
+       'ResetTokens'               => array( 'Reiniciar_tokens', 'Reiniciar_os_tokens' ),
        'Revisiondelete'            => array( 'Eliminar_edição', 'Eliminar_revisão', 'Apagar_edição', 'Apagar_revisão' ),
        'Search'                    => array( 'Pesquisar', 'Busca', 'Buscar', 'Procurar', 'Pesquisa' ),
        'Shortpages'                => array( 'Páginas_curtas', 'Artigos_curtos' ),
        'Specialpages'              => array( 'Páginas_especiais' ),
        'Statistics'                => array( 'Estatísticas' ),
        'Tags'                      => array( 'Etiquetas' ),
+       'TrackingCategories'        => array( 'Categorias_de_rastreamento', 'Monitoramento_de_Categorias' ),
        'Unblock'                   => array( 'Desbloquear' ),
        'Uncategorizedcategories'   => array( 'Categorias_não_categorizadas', 'Categorias_sem_categorias' ),
        'Uncategorizedimages'       => array( 'Ficheiros_não_categorizados', 'Imagens_não_categorizadas', 'Imagens_sem_categorias', 'Ficheiros_sem_categorias', 'Arquivos_sem_categorias' ),
@@ -195,6 +205,7 @@ $specialPageAliases = array(
        'Unusedtemplates'           => array( 'Predefinições_não_utilizadas', 'Predefinições_sem_uso' ),
        'Unwatchedpages'            => array( 'Páginas_não_vigiadas', 'Páginas_não-vigiadas', 'Artigos_não-vigiados', 'Artigos_não_vigiados' ),
        'Upload'                    => array( 'Carregar_imagem', 'Carregar_ficheiro', 'Carregar_arquivo', 'Enviar' ),
+       'UploadStash'               => array( 'Envios_ocultos', 'Ficheiros_ocultos', 'Arquivos_ocultos', 'Envios_escondidos', 'Ficheiros_escondidos', 'Arquivos_escondidos' ),
        'Userlogin'                 => array( 'Entrar' ),
        'Userlogout'                => array( 'Sair' ),
        'Userrights'                => array( 'Privilégios', 'Direitos', 'Estatutos' ),
@@ -241,7 +252,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NUMERODEUSUARIOS', 'NÚMERODEUSUÁRIOS', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NUMERODEUSUARIOSATIVOS', 'NÚMERODEUSUÁRIOSATIVOS', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NUMERODEEDICOES', 'NÚMERODEEDIÇÕES', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NUMERODEEXIBICOES', 'NÚMERODEEXIBIÇÕES', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'NOMEDAPAGINA', 'NOMEDAPÁGINA', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'NOMEDAPAGINAC', 'NOMEDAPÁGINAC', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'DOMINIO', 'DOMÍNIO', 'ESPACONOMINAL', 'ESPAÇONOMINAL', 'NAMESPACE' ),
index b981b37..8a63470 100644 (file)
@@ -140,6 +140,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'Criar_conta' ),
        'Deadendpages'              => array( 'Páginas_sem_saída', 'Artigos_sem_saída' ),
        'DeletedContributions'      => array( 'Contribuições_eliminadas', 'Edições_eliminadas' ),
+       'Diff'                      => array( 'Mudanças_entre_edições', 'Diferenças_entre_edições' ),
        'DoubleRedirects'           => array( 'Redirecionamentos_duplos' ),
        'EditWatchlist'             => array( 'Editar_lista_de_páginas_vigiadas' ),
        'Emailuser'                 => array( 'Contatar_usuário', 'Contactar_usuário', 'Contactar_utilizador' ),
@@ -249,7 +250,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NUMERODEUSUARIOS', 'NÚMERODEUSUÁRIOS', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NUMERODEUSUARIOSATIVOS', 'NÚMERODEUSUÁRIOSATIVOS', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NUMERODEEDICOES', 'NÚMERODEEDIÇÕES', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NUMERODEEXIBICOES', 'NÚMERODEEXIBIÇÕES', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'NOMEDAPAGINA', 'NOMEDAPÁGINA', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'NOMEDAPAGINAC', 'NOMEDAPÁGINAC', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'DOMINIO', 'DOMÍNIO', 'ESPACONOMINAL', 'ESPAÇONOMINAL', 'NAMESPACE' ),
index f057810..97afe6b 100644 (file)
@@ -40,22 +40,30 @@ $namespaceNames = array(
 $namespaceGenderAliases = array();
 
 $specialPageAliases = array(
+       'Activeusers'               => array( 'KuchiRuraqkuna' ),
        'Allmessages'               => array( 'TukuyWillaykuna' ),
+       'AllMyUploads'              => array( 'TukuyChurkusqaykuna' ),
        'Allpages'                  => array( 'TukuyPanqakuna' ),
        'Ancientpages'              => array( 'MawkaPanqa' ),
+       'Badtitle'                  => array( 'ManaAllinSuti' ),
        'Blankpage'                 => array( 'PanqataChusaqchay' ),
        'Block'                     => array( 'Harkay', 'RuraqtaHarkay', 'IPHarkay' ),
        'Booksources'               => array( 'PukyuLiwru' ),
        'BrokenRedirects'           => array( 'PantaPusapuna', 'PitisqaPusapuna' ),
        'Categories'                => array( 'Katiguriyakuna' ),
-       'ChangePassword'            => array( 'YaykunaRimataKutichiy' ),
+       'ChangeEmail'               => array( 'EChaskitaHukchay' ),
+       'ChangePassword'            => array( 'YaykunaRimataKutichiy', 'YaykunaRimataHukchay' ),
+       'ComparePages'              => array( 'PanqakunataWakinchay' ),
        'Confirmemail'              => array( 'EChaskitaTakyachiy' ),
        'Contributions'             => array( 'Rurasqakuna', 'Llamkapusqakuna' ),
        'CreateAccount'             => array( 'RakiqunaKamariy' ),
        'Deadendpages'              => array( 'Lluqsinannaq' ),
        'DeletedContributions'      => array( 'QullusqaRurasqa', 'QullusqaLlamkapusqa' ),
+       'Diff'                      => array( 'WakinKay' ),
        'DoubleRedirects'           => array( 'IskayllaPusapuna' ),
+       'EditWatchlist'             => array( 'WatiqasqakunataLlamkapuy' ),
        'Emailuser'                 => array( 'EChaskitaManakuy' ),
+       'ExpandTemplates'           => array( 'PlantillakunataHuknachay' ),
        'Export'                    => array( 'HawamanQuy' ),
        'Fewestrevisions'           => array( 'AsllaLlamkapusqa', 'AsllaKutiLlamkapusqa' ),
        'FileDuplicateSearch'       => array( 'IskayllaWillaniqitaMaskay' ),
@@ -87,22 +95,30 @@ $specialPageAliases = array(
        'MyLanguage'                => array( 'Rimayniy' ),
        'Mypage'                    => array( 'Panqay', 'NuqapPanqay' ),
        'Mytalk'                    => array( 'Rimachinay', 'RimanakuyPanqay', 'NuqapRimachinay', 'NuqapRimanakuyPanqay' ),
+       'Myuploads'                 => array( 'Churkusqaykuna' ),
        'Newimages'                 => array( 'MusuqRikcha', 'MusuqRikchakuna' ),
        'Newpages'                  => array( 'MusuqPanqa' ),
+       'PasswordReset'             => array( 'YaykunaRimaKutichina' ),
+       'PermanentLink'             => array( 'KakuqTinki' ),
        'Popularpages'              => array( 'WatukuqsapaPanqa', 'RikuqsapaPanqa', 'QhawaqsapaPanqa' ),
        'Preferences'               => array( 'Allinkachina', 'Allinkachinakuna' ),
        'Prefixindex'               => array( 'QallarinaKaskaSutisuyu' ),
        'Protectedpages'            => array( 'AmachasqaPanqa' ),
        'Protectedtitles'           => array( 'AmachasqaSuti' ),
        'Randompage'                => array( 'MayninpiPanqa' ),
+       'RandomInCategory'          => array( 'KatiguriyapiKikinmanta' ),
        'Randomredirect'            => array( 'KikinmantaPusapuna' ),
        'Recentchanges'             => array( 'NaqhaHukchasqa' ),
        'Recentchangeslinked'       => array( 'HukchasqaTinkimuq' ),
+       'Redirect'                  => array( 'Pusapuna', 'Pusapuy' ),
+       'ResetTokens'               => array( 'LlawikunataKutichiy' ),
        'Revisiondelete'            => array( 'MusuqchasqaQulluy' ),
        'Search'                    => array( 'Maskay' ),
        'Shortpages'                => array( 'UchuyPanqa' ),
        'Specialpages'              => array( 'SapaqPanqa', 'SapaqPanqakuna' ),
        'Statistics'                => array( 'Ranuy', 'Kanchachani' ),
+       'Tags'                      => array( 'Unanchachakuna' ),
+       'Unblock'                   => array( 'AmanaHarkaychu' ),
        'Uncategorizedcategories'   => array( 'KatiguriyannaqKatiguriya' ),
        'Uncategorizedimages'       => array( 'KatiguriyannaqRikcha' ),
        'Uncategorizedpages'        => array( 'KatiguriyannaqPanqa' ),
@@ -114,6 +130,7 @@ $specialPageAliases = array(
        'Unusedtemplates'           => array( 'ManaLlamkachisqaPlantilla' ),
        'Unwatchedpages'            => array( 'ManaWatiqasqa' ),
        'Upload'                    => array( 'Churkuy' ),
+       'UploadStash'               => array( 'PakasqaWillaniqikuna' ),
        'Userlogin'                 => array( 'RuraqYaykuy' ),
        'Userlogout'                => array( 'RuraqLluqsiy' ),
        'Userrights'                => array( 'RuraqpaHaynin' ),
@@ -160,7 +177,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'HAYKARURAQ', 'NÚMERODEUSUARIOS', 'NUMERODEUSUARIOS', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'HAYKARURACHKAQ', 'NÚMERODEUSUARIOSACTIVOS', 'NUMERODEUSUARIOSACTIVOS', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'HAYKALLAMKAPUSQA', 'NÚMERODEEDICIONES', 'NUMERODEEDICIONES', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'HAYKAQHAWASQA', 'HAYKAQAWASQA', 'NÚMERODEVISTAS', 'NUMERODEVISTAS', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'PANQASUTI', 'NOMBREDEPAGINA', 'NOMBREDEPÁGINA', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'PANQASUTIE', 'NOMBREDEPAGINAC', 'NOMBREDEPÁGINAC', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'SUTIKITI', 'ESPACIODENOMBRE', 'NAMESPACE' ),
@@ -206,7 +222,7 @@ $magicWords = array(
        'int'                       => array( '0', 'WILLAY:', 'INT:' ),
        'sitename'                  => array( '1', 'TIYAYSUTI', 'NOMBREDESITIO', 'NOMBREDELSITIO', 'SITENAME' ),
        'ns'                        => array( '0', 'SKITI:', 'EN:', 'NS:' ),
-       'localurl'                  => array( '0', 'KAYLLAURL:', 'URLLOCAL', 'LOCALURL:' ),
+       'localurl'                  => array( '0', 'KAYLLAURL:', 'URLLOCAL', 'URLLOCAL:', 'LOCALURL:' ),
        'localurle'                 => array( '0', 'KAYLLAURLE:', 'URLLOCALC:', 'LOCALURLE:' ),
        'server'                    => array( '0', 'SIRWIQ', 'SERVIDOR', 'SERVER' ),
        'servername'                => array( '0', 'SIRWIQSUTI', 'NOMBRESERVIDOR', 'SERVERNAME' ),
@@ -229,11 +245,11 @@ $magicWords = array(
        'plural'                    => array( '0', 'ACHKA:', 'PLURAL:' ),
        'fullurl'                   => array( '0', 'HUNTAURL:', 'URLCOMPLETA:', 'FULLURL:' ),
        'fullurle'                  => array( '0', 'HUNTAURLE:', 'URLCOMPLETAC:', 'FULLURLE:' ),
-       'lcfirst'                   => array( '0', 'UCHUYÑAWPAQ:', 'UCHUYNAWPAQ:', 'PRIMEROMINUS;', 'PRIMEROMINÚS:', 'LCFIRST:' ),
-       'ucfirst'                   => array( '0', 'HATUNÑAWPAQ:', 'HATUNNAWPAQ:', 'PRIMEROMAYUS;', 'PRIMEROMAYÚS:', 'UCFIRST:' ),
+       'lcfirst'                   => array( '0', 'UCHUYÑAWPAQ:', 'UCHUYNAWPAQ:', 'PRIMEROMINUS;', 'PRIMEROMINÚS:', 'PRIMEROMINUS:', 'LCFIRST:' ),
+       'ucfirst'                   => array( '0', 'HATUNÑAWPAQ:', 'HATUNNAWPAQ:', 'PRIMEROMAYUS;', 'PRIMEROMAYÚS:', 'PRIMEROMAYUS:', 'UCFIRST:' ),
        'lc'                        => array( '0', 'UCHUY:', 'MINUS:', 'MINÚS:', 'LC:' ),
        'uc'                        => array( '0', 'HATUN:', 'MAYUS:', 'MAYÚS:', 'UC:' ),
-       'raw'                       => array( '0', 'CHAWA:', 'SINFORMATO', 'SINPUNTOS', 'RAW:' ),
+       'raw'                       => array( '0', 'CHAWA:', 'SINFORMATO', 'SINPUNTOS', 'SINFORMATO:', 'SINPUNTOS:', 'RAW:' ),
        'displaytitle'              => array( '1', 'SUTITARIKUCHIY', 'MOSTRARTÍTULO', 'MOSTRARTITULO', 'DISPLAYTITLE' ),
        'currentversion'            => array( '1', 'KUNANMUSUQCHASQA', 'REVISIÓNACTUAL', 'VERSIONACTUAL', 'VERSIÓNACTUAL', 'CURRENTVERSION' ),
        'urlencode'                 => array( '0', 'URLLLAWICHAY', 'URL-LLAWICHAY', 'CODIFICAR', 'CODIFICARURL:', 'URLENCODE:' ),
@@ -260,5 +276,6 @@ $magicWords = array(
        'numberingroup'             => array( '1', 'HUÑUPIYUPAY', 'HUNUPIYUPAY', 'NÚMEROENGRUPO', 'NUMEROENGRUPO', 'NUMENGRUPO', 'NÚMENGRUPO', 'NUMBERINGROUP', 'NUMINGROUP' ),
        'staticredirect'            => array( '1', '__TIYAQLLAPUSAPUNA__', '__REDIRECCIONESTATICA__', '__REDIRECCIÓNESTÁTICA__', '__STATICREDIRECT__' ),
        'protectionlevel'           => array( '1', 'HAYKAAMACHAY', 'IMASINCHIAMACHAY', 'NIVELDEPROTECCIÓN', 'PROTECTIONLEVEL' ),
+       'formatdate'                => array( '0', 'punchawrikchakuy', 'formatodefecha', 'formatearfecha', 'formatdate', 'dateformat' ),
 );
 
index a3c15c6..3d62d43 100644 (file)
@@ -66,7 +66,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NUMARDEUTILIZATORI', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NUMARDEUTILIZATORIACTIVI', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NUMARDEMODIFICARI', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NUMARDEVIZUALIZARI', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'NUMEPAGINA', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'NUMEEPAGINA', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'SPATIUDENUME', 'NAMESPACE' ),
index 02b7972..a74c9db 100644 (file)
@@ -150,6 +150,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'Создать_учётную_запись', 'Создать_пользователя', 'Зарегистрироваться' ),
        'Deadendpages'              => array( 'Тупиковые_страницы' ),
        'DeletedContributions'      => array( 'Удалённый_вклад' ),
+       'Diff'                      => array( 'Изменения' ),
        'DoubleRedirects'           => array( 'Двойные_перенаправления' ),
        'EditWatchlist'             => array( 'Править_список_наблюдения' ),
        'Emailuser'                 => array( 'Письмо_участнику', 'Отправить_письмо' ),
@@ -168,6 +169,7 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'Список_файлов', 'Список_изображений' ),
        'Listgrouprights'           => array( 'Права_групп_участников', 'Список_прав_групп' ),
        'Listredirects'             => array( 'Список_перенаправлений' ),
+       'ListDuplicatedFiles'       => array( 'Список_файлов-дубликатов' ),
        'Listusers'                 => array( 'Список_участников' ),
        'Lockdb'                    => array( 'Заблокировать_БД', 'Заблокировать_базу_данных' ),
        'Log'                       => array( 'Журналы', 'Журнал' ),
@@ -267,7 +269,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'КОЛИЧЕСТВО_УЧАСТНИКОВ', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'КОЛИЧЕСТВО_АКТИВНЫХ_УЧАСТНИКОВ', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'КОЛИЧЕСТВО_ПРАВОК', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'КОЛИЧЕСТВО_ПРОСМОТРОВ', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'НАЗВАНИЕ_СТРАНИЦЫ', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'НАЗВАНИЕ_СТРАНИЦЫ_2', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ПРОСТРАНСТВО_ИМЁН', 'NAMESPACE' ),
index bdfcd8e..cb23741 100644 (file)
@@ -45,6 +45,7 @@ $namespaceAliases = array(
 $specialPageAliases = array(
        'Activeusers'               => array( 'Актівны_хоснователї' ),
        'Allmessages'               => array( 'Сістемовы_повідомлїня' ),
+       'AllMyUploads'              => array( 'Вшыткы_мої_файлы' ),
        'Allpages'                  => array( 'Вшыткы_сторінкы' ),
        'Ancientpages'              => array( 'Давны_сторінкы' ),
        'Badtitle'                  => array( 'Планый_тітул' ),
@@ -91,6 +92,7 @@ $specialPageAliases = array(
        'Mostrevisions'             => array( 'Найбівше_ревізій' ),
        'Movepage'                  => array( 'Переменовати' ),
        'Mycontributions'           => array( 'Мій_вклад' ),
+       'MyLanguage'                => array( 'Мій_язык' ),
        'Mypage'                    => array( 'Моя_сторінка' ),
        'Mytalk'                    => array( 'Моя_діскузія' ),
        'Myuploads'                 => array( 'Мої_награня_файлів' ),
@@ -100,17 +102,31 @@ $specialPageAliases = array(
        'PermanentLink'             => array( 'Тырвалый_одказ' ),
        'Popularpages'              => array( 'Популарны_сторінкы' ),
        'Preferences'               => array( 'Наставлїня' ),
+       'Protectedpages'            => array( 'Замкнуты_сторінкы' ),
+       'Protectedtitles'           => array( 'Замкнуты_назвы' ),
        'Randompage'                => array( 'Нагодна_статя' ),
        'Randomredirect'            => array( 'Нагодне_напрямлїня' ),
        'Recentchanges'             => array( 'Послїднї_зміны' ),
        'Recentchangeslinked'       => array( 'Повязаны_едітованя' ),
        'Search'                    => array( 'Гляданя' ),
        'Shortpages'                => array( 'Курты_сторінкы' ),
-       'Specialpages'              => array( 'Шпеціялны_сторінкы' ),
+       'Specialpages'              => array( 'Шпеціалны_сторінкы' ),
        'Statistics'                => array( 'Штатістіка' ),
        'Tags'                      => array( 'Позначкы' ),
        'Unblock'                   => array( 'Одблоковати' ),
        'Uncategorizedcategories'   => array( 'Некатеґорізованы_катеґорії' ),
        'Uncategorizedimages'       => array( 'Некатеґорізованы_файлы' ),
+       'Uncategorizedpages'        => array( 'Некатеґорізованы_сторінкы' ),
+       'Uncategorizedtemplates'    => array( 'Некатеґорізованы_шаблоны' ),
+       'Unusedcategories'          => array( 'Нехоснованы_катеґорії' ),
+       'Unusedimages'              => array( 'Нехоснованы_файлы' ),
+       'Unusedtemplates'           => array( 'Нехоснованы_шаблоны' ),
+       'Unwatchedpages'            => array( 'Неслїдованы_сторінкы' ),
+       'Wantedcategories'          => array( 'Пожадованы_катеґорії' ),
+       'Wantedfiles'               => array( 'Пожадованы_файлы' ),
+       'Wantedpages'               => array( 'Пожадованы_сторінкы' ),
+       'Wantedtemplates'           => array( 'Пожадованы_шаблоны' ),
+       'Whatlinkshere'             => array( 'Одказы_гев' ),
+       'Withoutinterwiki'          => array( 'Без_інтервікі' ),
 );
 
index 6b15283..14a8f99 100644 (file)
@@ -203,7 +203,6 @@ $magicWords = array(
        'numberoffiles'             => array( '1', 'संचिकानाम्‌‌सङ्ख्या', 'NUMBEROFFILES' ),
        'numberofusers'             => array( '1', 'योजकस्यसङ्ख्या', 'NUMBEROFUSERS' ),
        'numberofedits'             => array( '1', 'सम्पादनसङ्ख्या', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'दृष्टिसङ्ख्या', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'पृष्ठनाम', 'PAGENAME' ),
        'namespace'                 => array( '1', 'नामविश्व', 'NAMESPACE' ),
        'talkspace'                 => array( '1', 'व्यासपिठ', 'TALKSPACE' ),
index c5dbf12..f8aa19f 100644 (file)
@@ -148,7 +148,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'BROJKORISNIKA', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'BROJAKTIVNIHKORISNIKA', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'BROJIZMJENA', 'BROJIZMENA', 'BROJUREĐIVANJA', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'BROJPREGLEDA', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'STRANICA', 'IMESTRANICE', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'STRANICE', 'IMESTRANICEE', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'IMENSKIPROSTOR', 'NAMESPACE' ),
index 3c27597..987464a 100644 (file)
@@ -156,7 +156,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'NUMRIIPËRDORUESVE', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'NUMRIIPËRDORUESVEAKTIVË', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'NUMRIREDAKTIMEVE', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'NUMRIISHIKIMEVE', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'EMRIFAQES', 'PAGENAME' ),
        'namespace'                 => array( '1', 'HAPËSIRA', 'NAMESPACE' ),
        'fullpagename'              => array( '1', 'EMRIIPLOTËIFAQES', 'FULLPAGENAME' ),
index e9d8aa9..0f89cca 100644 (file)
@@ -96,39 +96,45 @@ $specialPageAliases = array(
        'Activeusers'               => array( 'АктивниКорисници', 'Активни_корисници' ),
        'Allmessages'               => array( 'СвеПоруке', 'Све_поруке' ),
        'Allpages'                  => array( 'Све_странице' ),
-       'Ancientpages'              => array( 'НајстаријиЧланци' ),
+       'Ancientpages'              => array( 'Ð\9dаÑ\98Ñ\81Ñ\82аÑ\80иÑ\98еСÑ\82Ñ\80аниÑ\86е', 'Ð\9dаÑ\98Ñ\81Ñ\82аÑ\80иÑ\98иЧланÑ\86и' ),
        'Badtitle'                  => array( 'Лош_наслов' ),
+       'Blankpage'                 => array( 'ПразнаСтраница' ),
        'Block'                     => array( 'Блокирај', 'БлокирајИП', 'БлокирајКорисника' ),
        'BrokenRedirects'           => array( 'Покварена_преусмерења', 'Неисправна_преусмерења' ),
        'Categories'                => array( 'Категорије' ),
+       'ChangePassword'            => array( 'ПромениЛозинку' ),
        'ComparePages'              => array( 'Упореди_странице' ),
        'Confirmemail'              => array( 'ПотврдиЕ-пошту', 'Потврда_е-поште' ),
        'Contributions'             => array( 'Доприноси', 'Прилози' ),
        'CreateAccount'             => array( 'ОтвориНалог', 'Отвори_налог' ),
+       'DeletedContributions'      => array( 'ОбрисаниДоприноси' ),
        'DoubleRedirects'           => array( 'Двострука_преусмерења' ),
        'Export'                    => array( 'Извези' ),
-       'Fewestrevisions'           => array( 'ЧланциСаНајмањеРевизија' ),
+       'Fewestrevisions'           => array( 'Ð\9dаÑ\98маÑ\9aеÐ\98змена', 'ЧланÑ\86иСаÐ\9dаÑ\98маÑ\9aеРевизиÑ\98а' ),
        'Filepath'                  => array( 'Путања_датотеке' ),
        'Import'                    => array( 'Увези' ),
-       'Listadmins'                => array( 'ПописАдминистратора', 'Списак_администратора' ),
-       'Listbots'                  => array( 'ПописБотова', 'Списак_ботова' ),
-       'Listfiles'                 => array( 'СписакСлика', 'Списак_датотека' ),
+       'BlockList'                 => array( 'СписакБлокираних', 'ПописБлокираних' ),
+       'Listadmins'                => array( 'СписакАдминистратора', 'ПописАдминистратора', 'Списак_администратора' ),
+       'Listbots'                  => array( 'СписакБотова', 'ПописБотова', 'Списак_ботова' ),
+       'Listfiles'                 => array( 'СписакДатотека', 'СписакСлика', 'Списак_датотека' ),
        'Listgrouprights'           => array( 'СписакКорисничкихПрава', 'Списак_корисничких_права' ),
        'Listredirects'             => array( 'СписакПреусмерења', 'Списак_преусмерења' ),
+       'ListDuplicatedFiles'       => array( 'СписакДупликата' ),
        'Listusers'                 => array( 'СписакКорисника', 'КорисничкиСписак', 'Списак_корисника', 'Кориснички_списак' ),
        'Lockdb'                    => array( 'ЗакључајБазу', 'Закључај_базу' ),
        'Log'                       => array( 'Извештај', 'Извештаји' ),
        'Lonelypages'               => array( 'Сирочићи' ),
        'Longpages'                 => array( 'ДугачкеСтране' ),
-       'MergeHistory'              => array( 'Споји_историју' ),
+       'MergeHistory'              => array( 'СпојиИсторију', 'Споји_историју' ),
        'MIMEsearch'                => array( 'MIME_претрага' ),
-       'Mostcategories'            => array( 'ЧланциСаНајвишеКатегорија' ),
-       'Mostimages'                => array( 'НајповезанијеСлике' ),
+       'Mostcategories'            => array( 'НајвишеКатегорија', 'ЧланциСаНајвишеКатегорија' ),
+       'Mostimages'                => array( 'НајповезанијеДатотеке', 'НајповезанијеСлике' ),
+       'Mostinterwikis'            => array( 'НајвишеМеђувикија' ),
        'Mostlinked'                => array( 'НајповезанијеСтране' ),
        'Mostlinkedcategories'      => array( 'НајповезанијеКатегорије' ),
        'Mostlinkedtemplates'       => array( 'НајповезанијиШаблони' ),
-       'Mostrevisions'             => array( 'ЧланциСаНајвишеРевизија' ),
-       'Movepage'                  => array( 'Преусмери', 'Премести_страницу' ),
+       'Mostrevisions'             => array( 'Ð\9dаÑ\98виÑ\88еРевизиÑ\98а', 'ЧланÑ\86иСаÐ\9dаÑ\98виÑ\88еРевизиÑ\98а' ),
+       'Movepage'                  => array( 'Премести', 'Преусмери', 'Премести_страницу' ),
        'Mycontributions'           => array( 'МојиДоприноси', 'Моји_доприноси', 'Моји_прилози' ),
        'MyLanguage'                => array( 'Мој_језик' ),
        'Mypage'                    => array( 'МојаСтраница', 'Моја_страница' ),
@@ -140,34 +146,39 @@ $specialPageAliases = array(
        'Popularpages'              => array( 'Популарне_странице' ),
        'Preferences'               => array( 'Подешавања', 'Поставке' ),
        'Protectedpages'            => array( 'ЗаштићенеСтранице', 'Заштићене_странице' ),
-       'Protectedtitles'           => array( 'Заштићени_наслови' ),
+       'Protectedtitles'           => array( 'ЗаштићениНаслови', 'Заштићени_наслови' ),
        'Randompage'                => array( 'СлучајнаСтрана', 'Насумична_страница' ),
+       'Randomredirect'            => array( 'СлучајноПреусмерење' ),
        'Recentchanges'             => array( 'СкорашњеИзмене', 'Скорашње_измене' ),
        'Search'                    => array( 'Претражи' ),
-       'Shortpages'                => array( 'КраткиЧланци' ),
+       'Shortpages'                => array( 'Ð\9aÑ\80аÑ\82кеСÑ\82Ñ\80аниÑ\86е', 'Ð\9aÑ\80аÑ\82киЧланÑ\86и' ),
        'Specialpages'              => array( 'СпецијалнеСтране', 'Посебне_странице' ),
        'Statistics'                => array( 'Статистике' ),
        'Tags'                      => array( 'Ознаке' ),
-       'Uncategorizedcategories'   => array( 'КатегоријеБезКатегорија', 'Несврстане_категорије' ),
-       'Uncategorizedimages'       => array( 'СликеБезКатегорија', 'ДатотекеБезКатегорија' ),
-       'Uncategorizedpages'        => array( 'ЧланциБезКатегорија', 'Чланци_без_категорија' ),
-       'Uncategorizedtemplates'    => array( 'ШаблониБезКатегорија' ),
+       'Unblock'                   => array( 'Деблокирај' ),
+       'Uncategorizedcategories'   => array( 'НекатегорисанеКатегорије', 'КатегоријеБезКатегорија' ),
+       'Uncategorizedimages'       => array( 'НекатегорисанеДатотеке', 'СликеБезКатегорија' ),
+       'Uncategorizedpages'        => array( 'НекатегорисанеСтранице', 'ЧланциБезКатегорија', 'Чланци_без_категорија' ),
+       'Uncategorizedtemplates'    => array( 'НекатегорисаниШаблони', 'ШаблониБезКатегорија' ),
        'Undelete'                  => array( 'Врати' ),
        'Unlockdb'                  => array( 'ОткључајБазу', 'Откључај_базу' ),
        'Unusedcategories'          => array( 'НеискоришћенеКатегорије' ),
-       'Unusedimages'              => array( 'НеискоришћенеСлике', 'НеискоришћенеДатотеке' ),
+       'Unusedimages'              => array( 'НеискоришћенеДатотеке', 'НеискоришћенеСлике' ),
+       'Unusedtemplates'           => array( 'НеискоришћениШаблони' ),
+       'Unwatchedpages'            => array( 'НенадгледанеСтранице' ),
        'Upload'                    => array( 'Пошаљи' ),
        'UploadStash'               => array( 'Складиште' ),
        'Userlogin'                 => array( 'Корисничка_пријава' ),
        'Userlogout'                => array( 'Корисничка_одјава' ),
+       'Userrights'                => array( 'КорисничкаПрава' ),
        'Version'                   => array( 'Верзија', 'Издање' ),
        'Wantedcategories'          => array( 'ТраженеКатегорије' ),
-       'Wantedfiles'               => array( 'ТраженеСлике' ),
+       'Wantedfiles'               => array( 'ТÑ\80аженеÐ\94аÑ\82оÑ\82еке', 'ТÑ\80аженеСлике' ),
        'Wantedpages'               => array( 'ТраженеСтране' ),
        'Wantedtemplates'           => array( 'ТражениШаблони' ),
        'Watchlist'                 => array( 'СписакНадгледања', 'Списак_надгледања' ),
-       'Whatlinkshere'             => array( 'Шта_је_повезано_овде' ),
-       'Withoutinterwiki'          => array( 'Ð\91ез_меÑ\92Ñ\83викиÑ\98е' ),
+       'Whatlinkshere'             => array( 'ШтаВодиОвде', 'Шта_је_повезано_овде' ),
+       'Withoutinterwiki'          => array( 'Ð\91ез_меÑ\92Ñ\83викиÑ\98а' ),
 );
 
 $datePreferences = array(
@@ -281,11 +292,11 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'БРОЈКОРИСНИКА', 'БРОЈ_КОРИСНИКА', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'БРОЈАКТИВНИХКОРИСНИКА', 'БРОЈ_АКТИВНИХ_КОРИСНИКА', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'БРОЈИЗМЕНА', 'БРОЈ_ИЗМЕНА', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'БРОЈПРЕГЛЕДА', 'БРОЈ_ПРЕГЛЕДА', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'ИМЕСТРАНИЦЕ', 'ИМЕ_СТРАНИЦЕ', 'СТРАНИЦА', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'ИМЕНАСТРАНИЦА', 'ИМЕНА_СТРАНИЦА', 'СТРАНИЦЕ', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ИМЕНСКИПРОСТОР', 'ИМЕНСКИ_ПРОСТОР', 'NAMESPACE' ),
        'namespacee'                => array( '1', 'ИМЕНСКИПРОСТОРИ', 'ИМЕНСКИ_ПРОСТОРИ', 'NAMESPACEE' ),
+       'namespacenumber'           => array( '1', 'БРОЈИМЕНСКОГПРОСТОРА', 'NAMESPACENUMBER' ),
        'talkspace'                 => array( '1', 'РАЗГОВОР', 'TALKSPACE' ),
        'talkspacee'                => array( '1', 'РАЗГОВОРИ', 'TALKSPACEE' ),
        'subjectspace'              => array( '1', 'ИМЕНСКИПРОСТОРЧЛАНКА', 'ИМЕНСКИ_ПРОСТОР_ЧЛАНКА', 'SUBJECTSPACE', 'ARTICLESPACE' ),
@@ -301,7 +312,7 @@ $magicWords = array(
        'subjectpagename'           => array( '1', 'ИМЕЧЛАНКА', 'ИМЕ_ЧЛАНКА', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
        'subjectpagenamee'          => array( '1', 'ИМЕНАЧЛАНАКА', 'ИМЕНА_ЧЛАНАКА', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
        'msg'                       => array( '0', 'ПОР:', 'MSG:' ),
-       'subst'                     => array( '0', 'ЗАМЕНИ:', 'ЗАМЕНА:', 'SUBST:' ),
+       'subst'                     => array( '0', 'ЗАМЕНИ:', 'ЗАМЕНА:', 'СУБСТ', 'SUBST:' ),
        'safesubst'                 => array( '0', 'БЕЗБЕДНАЗАМЕНА', 'БЕЗБЕДНА_ЗАМЕНА', 'SAFESUBST:' ),
        'msgnw'                     => array( '0', 'НВПОР:', 'MSGNW:' ),
        'img_thumbnail'             => array( '1', 'мини', 'умањено', 'thumbnail', 'thumb' ),
@@ -309,13 +320,13 @@ $magicWords = array(
        'img_right'                 => array( '1', 'десно', 'д', 'right' ),
        'img_left'                  => array( '1', 'лево', 'л', 'left' ),
        'img_none'                  => array( '1', 'без', 'н', 'none' ),
-       'img_width'                 => array( '1', '$1пискел', '$1п', '$1px' ),
-       'img_center'                => array( '1', 'центар', 'ц', 'center', 'centre' ),
+       'img_width'                 => array( '1', '$1пискел', '$1п', '$1p', '$1px' ),
+       'img_center'                => array( '1', 'центар', 'ц', 'c', 'center', 'centre' ),
        'img_framed'                => array( '1', 'оквир', 'рам', 'framed', 'enframed', 'frame' ),
        'img_frameless'             => array( '1', 'безоквира', 'без_оквира', 'безрама', 'без_рама', 'frameless' ),
        'img_page'                  => array( '1', 'страница=$1', 'страна=$1', 'страница_$1', 'страна_$1', 'page=$1', 'page $1' ),
        'img_upright'               => array( '1', 'усправно', 'усправно=$1', 'усправно_$1', 'upright', 'upright=$1', 'upright $1' ),
-       'img_border'                => array( '1', 'ивица', 'border' ),
+       'img_border'                => array( '1', 'ивица', 'оивичено', 'border' ),
        'img_baseline'              => array( '1', 'основа', 'baseline' ),
        'img_sub'                   => array( '1', 'под', 'sub' ),
        'img_super'                 => array( '1', 'супер', 'super', 'sup' ),
@@ -332,6 +343,7 @@ $magicWords = array(
        'localurl'                  => array( '0', 'ЛОКАЛНААДРЕСА:', 'ЛОКАЛНА_АДРЕСА:', 'LOCALURL:' ),
        'localurle'                 => array( '0', 'ЛОКАЛНЕАДРЕСЕ:', 'ЛОКАЛНЕ_АДРЕСЕ:', 'LOCALURLE:' ),
        'articlepath'               => array( '0', 'ПУТАЊАЧЛАНКА', 'ПУТАЊА_ЧЛАНКА', 'ARTICLEPATH' ),
+       'pageid'                    => array( '0', 'БРОЈСТРАНИЦЕ', 'PAGEID' ),
        'server'                    => array( '0', 'СЕРВЕР', 'SERVER' ),
        'servername'                => array( '0', 'ИМЕСЕРВЕРА', 'ИМЕ_СЕРВЕРА', 'SERVERNAME' ),
        'scriptpath'                => array( '0', 'СКРИПТА', 'SCRIPTPATH' ),
@@ -339,7 +351,7 @@ $magicWords = array(
        'grammar'                   => array( '0', 'ГРАМАТИКА:', 'GRAMMAR:' ),
        'gender'                    => array( '0', 'РОД:', 'ЛИЦЕ:', 'GENDER:' ),
        'notitleconvert'            => array( '0', '__БЕЗКН__', '__BEZKN__', '__NOTITLECONVERT__', '__NOTC__' ),
-       'nocontentconvert'          => array( '0', '__Ð\91Ð\95Ð\97ЦЦ__', '__NOCONTENTCONVERT__', '__NOCC__' ),
+       'nocontentconvert'          => array( '0', '__Ð\91Ð\95Ð\97Ð\9aС__', '__Ð\91Ð\95Ð\97ЦЦ__', '__BEZKS__', '__NOCONTENTCONVERT__', '__NOCC__' ),
        'currentweek'               => array( '1', 'ТРЕНУТНАНЕДЕЉА', 'ТРЕНУТНА_НЕДЕЉА', 'ТЕКУЋАНЕДЕЉА', 'ТЕКУЋА_НЕДЕЉА', 'CURRENTWEEK' ),
        'currentdow'                => array( '1', 'ТРЕНУТНИДОВ', 'ТЕКУЋИДУН', 'CURRENTDOW' ),
        'localweek'                 => array( '1', 'ЛОКАЛНАНЕДЕЉА', 'ЛОКАЛНА_НЕДЕЉА', 'LOCALWEEK' ),
@@ -390,6 +402,8 @@ $magicWords = array(
        'url_path'                  => array( '0', 'ПУТАЊА', 'PATH' ),
        'url_wiki'                  => array( '0', 'ВИКИ', 'WIKI' ),
        'url_query'                 => array( '0', 'РЕДОСЛЕД', 'QUERY' ),
+       'pagesincategory_all'       => array( '0', 'све', 'all' ),
+       'pagesincategory_files'     => array( '0', 'датотеке', 'files' ),
 );
 $separatorTransformTable = array( ',' => '.', '.' => ',' );
 
index 6a5817c..d13c654 100644 (file)
@@ -194,11 +194,11 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'BROJKORISNIKA', 'BROJ_KORISNIKA', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'BROJAKTIVNIHKORISNIKA', 'BROJ_AKTIVNIH_KORISNIKA', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'BROJIZMENA', 'BROJ_IZMENA', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'BROJPREGLEDA', 'BROJ_PREGLEDA', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'IMESTRANICE', 'IME_STRANICE', 'STRANICA', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'IMENASTRANICA', 'IMENA_STRANICA', 'STRANICE', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'IMENSKIPROSTOR', 'IMENSKI_PROSTOR', 'NAMESPACE' ),
        'namespacee'                => array( '1', 'IMENSKIPROSTORI', 'IMENSKI_PROSTORI', 'NAMESPACEE' ),
+       'namespacenumber'           => array( '1', 'BROJIMENSKOGPROSTORA', 'NAMESPACENUMBER' ),
        'talkspace'                 => array( '1', 'RAZGOVOR', 'TALKSPACE' ),
        'talkspacee'                => array( '1', 'RAZGOVORI', 'TALKSPACEE' ),
        'subjectspace'              => array( '1', 'IMENSKIPROSTORČLANKA', 'IMENSKI_PROSTOR_ČLANKA', 'SUBJECTSPACE', 'ARTICLESPACE' ),
index 5936055..48e3511 100644 (file)
@@ -91,22 +91,28 @@ $namespaceAliases = array(
 );
 
 $specialPageAliases = array(
+       'Activeusers'               => array( 'Aktiva_användare' ),
        'Allmessages'               => array( 'Systemmeddelanden' ),
+       'AllMyUploads'              => array( 'Alla_mina_uppladdnignar', 'Alla_mina_filer' ),
        'Allpages'                  => array( 'Alla_sidor' ),
        'Ancientpages'              => array( 'Gamla_sidor' ),
+       'Badtitle'                  => array( 'Dålig_titel' ),
        'Blankpage'                 => array( 'Tom_sida' ),
        'Block'                     => array( 'Blockera' ),
        'Booksources'               => array( 'Bokkällor' ),
        'BrokenRedirects'           => array( 'Trasiga_omdirigeringar', 'Dåliga_omdirigeringar' ),
        'Categories'                => array( 'Kategorier' ),
-       'ChangePassword'            => array( 'Återställ_lösenord' ),
+       'ChangeEmail'               => array( 'Ändra_e-postadress' ),
+       'ChangePassword'            => array( 'Ändra_lösenord' ),
+       'ComparePages'              => array( 'Jämför_sidor' ),
        'Confirmemail'              => array( 'Bekräfta_epost' ),
        'Contributions'             => array( 'Bidrag' ),
        'CreateAccount'             => array( 'Skapa_konto' ),
        'Deadendpages'              => array( 'Sidor_utan_länkar', 'Sidor_utan_länkar_från' ),
        'DeletedContributions'      => array( 'Raderade_bidrag' ),
        'DoubleRedirects'           => array( 'Dubbla_omdirigeringar' ),
-       'Emailuser'                 => array( 'E-mail' ),
+       'EditWatchlist'             => array( 'Redigera_bevakningslista' ),
+       'Emailuser'                 => array( 'E-post', 'E-mail' ),
        'ExpandTemplates'           => array( 'Expandera_mallar', 'Utöka_mallar' ),
        'Export'                    => array( 'Exportera' ),
        'Fewestrevisions'           => array( 'Minst_versioner' ),
@@ -114,6 +120,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( 'Filsökväg' ),
        'Import'                    => array( 'Importera' ),
        'Invalidateemail'           => array( 'Ogiltigförklara_epost' ),
+       'JavaScriptTest'            => array( 'JavaScript_test' ),
        'BlockList'                 => array( 'Blockeringslista' ),
        'LinkSearch'                => array( 'Länksökning' ),
        'Listadmins'                => array( 'Administratörer' ),
@@ -121,15 +128,18 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'Fillista', 'Bildlista' ),
        'Listgrouprights'           => array( 'Grupprättighetslista' ),
        'Listredirects'             => array( 'Omdirigeringar' ),
+       'ListDuplicatedFiles'       => array( 'Lista_dubblettfiler' ),
        'Listusers'                 => array( 'Användare', 'Användarlista' ),
        'Lockdb'                    => array( 'Lås_databasen' ),
        'Log'                       => array( 'Logg' ),
        'Lonelypages'               => array( 'Föräldralösa_sidor', 'Övergivna_sidor', 'Sidor_utan_länkar_till' ),
        'Longpages'                 => array( 'Långa_sidor' ),
+       'MediaStatistics'           => array( 'Media_statistik' ),
        'MergeHistory'              => array( 'Slå_ihop_historik' ),
        'MIMEsearch'                => array( 'MIME-sökning' ),
        'Mostcategories'            => array( 'Flest_kategorier' ),
        'Mostimages'                => array( 'Mest_länkade_filer', 'Flest_bilder' ),
+       'Mostinterwikis'            => array( 'Flest_interwikilänkar' ),
        'Mostlinked'                => array( 'Mest_länkade_sidor' ),
        'Mostlinkedcategories'      => array( 'Största_kategorier' ),
        'Mostlinkedtemplates'       => array( 'Mest_använda_mallar' ),
@@ -140,22 +150,30 @@ $specialPageAliases = array(
        'Mypage'                    => array( 'Min_sida' ),
        'Mytalk'                    => array( 'Min_diskussion' ),
        'Myuploads'                 => array( 'Mina_uppladdningar' ),
-       'Newimages'                 => array( 'Nya_bilder' ),
+       'Newimages'                 => array( 'Nya_filer', 'Nya_bilder' ),
        'Newpages'                  => array( 'Nya_sidor' ),
+       'PagesWithProp'             => array( 'Sidor_med_en_sidegenskap' ),
+       'PageLanguage'              => array( 'Sidspråk' ),
+       'PasswordReset'             => array( 'Återställ_lösenord' ),
+       'PermanentLink'             => array( 'Permanent_länk' ),
        'Popularpages'              => array( 'Populära_sidor' ),
        'Preferences'               => array( 'Inställningar' ),
        'Protectedpages'            => array( 'Skyddade_sidor' ),
        'Protectedtitles'           => array( 'Skyddade_titlar' ),
        'Randompage'                => array( 'Slumpsida' ),
+       'RandomInCategory'          => array( 'Slumpsida_i_kategori' ),
        'Randomredirect'            => array( 'Slumpomdirigering' ),
        'Recentchanges'             => array( 'Senaste_ändringar' ),
        'Recentchangeslinked'       => array( 'Senaste_relaterade_ändringar' ),
+       'Redirect'                  => array( 'Omdirigering' ),
+       'ResetTokens'               => array( 'Återställ_nycklar' ),
        'Revisiondelete'            => array( 'Radera_version' ),
        'Search'                    => array( 'Sök' ),
        'Shortpages'                => array( 'Korta_sidor' ),
        'Specialpages'              => array( 'Specialsidor' ),
        'Statistics'                => array( 'Statistik' ),
        'Tags'                      => array( 'Märken', 'Taggar' ),
+       'TrackingCategories'        => array( 'Spårningskategorier' ),
        'Unblock'                   => array( 'Avblockera' ),
        'Uncategorizedcategories'   => array( 'Okategoriserade_kategorier' ),
        'Uncategorizedimages'       => array( 'Okategoriserade_filer', 'Okategoriserade_bilder' ),
@@ -213,7 +231,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'ANTALANVÄNDARE', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'ANTALAKTIVAANVÄNDARE', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'ANTALREDIGERINGAR', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'ANTALVISNINGAR', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'SIDNAMN', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'SIDNAMNE', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'NAMNRYMD', 'NAMESPACE' ),
index b5f131a..5a5e44b 100644 (file)
@@ -61,19 +61,27 @@ $namespaceAliases = array(
 );
 
 $specialPageAliases = array(
+       'Activeusers'               => array( 'చురుగ్గావున్నవాడుకరులు' ),
        'Allmessages'               => array( 'అన్నిసందేశాలు' ),
+       'AllMyUploads'              => array( 'నాయెక్కింపులన్నీ' ),
        'Allpages'                  => array( 'అన్నిపేజీలు' ),
        'Ancientpages'              => array( 'పురాతనపేజీలు' ),
+       'Badtitle'                  => array( 'చెడుశీర్షిక' ),
        'Blankpage'                 => array( 'ఖాళీపేజి' ),
        'Block'                     => array( 'అడ్డగించు', 'ఐపినిఅడ్డగించు', 'వాడుకరినిఅడ్డగించు' ),
        'Booksources'               => array( 'పుస్తకమూలాలు' ),
        'BrokenRedirects'           => array( 'తెగిపోయినదారిమార్పులు' ),
        'Categories'                => array( 'వర్గాలు' ),
+       'ChangeEmail'               => array( 'ఈమెయిలుమార్పు' ),
        'ChangePassword'            => array( 'సంకేతపదముమార్చు' ),
+       'ComparePages'              => array( 'పేజీలనుపోల్చు' ),
        'Confirmemail'              => array( 'ఈమెయిలుధ్రువపరచు' ),
+       'Contributions'             => array( 'చేర్పులు' ),
        'CreateAccount'             => array( 'ఖాతాసృష్టించు' ),
        'Deadendpages'              => array( 'అగాధపేజీలు' ),
-       'DoubleRedirects'           => array( 'రెండుసార్లుదారిమార్పు' ),
+       'DeletedContributions'      => array( 'తొలగించినచేర్పులు' ),
+       'Diff'                      => array( 'తేడా' ),
+       'DoubleRedirects'           => array( 'జమిలిదారిమార్పు' ),
        'Emailuser'                 => array( 'వాడుకరికిఈమెయిలుచెయ్యి' ),
        'Export'                    => array( 'ఎగుమతి' ),
        'Fewestrevisions'           => array( 'అతితక్కువకూర్పులు' ),
index c48704a..1327bd4 100644 (file)
@@ -50,7 +50,7 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'Lista_imajen' ),
        'Listusers'                 => array( 'Lista_uza-na\'in' ),
        'Longpages'                 => array( 'Pájina_naruk' ),
-       'Movepage'                  => array( 'Book' ),
+       'Movepage'                  => array( 'Book_pájina', 'Book' ),
        'Mypage'                    => array( 'Ha\'u-nia_pájina' ),
        'Newimages'                 => array( 'Imajen_foun' ),
        'Preferences'               => array( 'Preferénsia' ),
index f1d9a4b..30cf401 100644 (file)
@@ -97,7 +97,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'ИШТИРОКӘКОН_ҒӘДӘР', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'ТИЛИКӘ_ИШТИРОКӘКОН_ҒӘДӘР', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'ДӘГИШОН_ҒӘДӘР', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'ДИЈӘ_КАРДЕ_ҒӘДӘР', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'СӘҺИФӘ_НОМ', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'СӘҺИФӘ_НОМ_2', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'НОМОН_МӘКОН', 'NAMESPACE' ),
index 21cc341..0f61a96 100644 (file)
@@ -230,7 +230,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'KULLANICISAYISI', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'AKTİFKULLANICISAYISI', 'ETKİNKULLANICISAYISI', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'DEĞİŞİKLİKSAYISI', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'GÖRÜNTÜLEMESAYISI', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'SAYFAADI', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'SAYFAADIU', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ADALANI', 'İSİMALANI', 'NAMESPACE' ),
index 77759a1..b369096 100644 (file)
@@ -49,6 +49,20 @@ $namespaceAliases = array(
 );
 
 $specialPageAliases = array(
+       'Activeusers'               => array( 'Идекпейжилер' ),
+       'Allmessages'               => array( 'Шупту_медеглелдер' ),
+       'AllMyUploads'              => array( 'Шупту_файлдарым' ),
+       'Allpages'                  => array( 'Шупту_арыннар' ),
+       'Badtitle'                  => array( 'Хоржок_ат-сып' ),
+       'Blankpage'                 => array( 'Куруг_арын' ),
+       'Block'                     => array( 'Дуглаар' ),
+       'Booksources'               => array( 'Ном_үндезини' ),
+       'BrokenRedirects'           => array( 'Үзүлген_көжүрүглер' ),
+       'Categories'                => array( 'Аңгылалдар' ),
+       'ChangeEmail'               => array( 'Э-шуудаң_солуур' ),
+       'ChangePassword'            => array( 'Уруң_солуур' ),
+       'ComparePages'              => array( 'Арыннар_деңнээр' ),
+       'Confirmemail'              => array( 'Э-шуудаң_бадыткаар' ),
        'MyLanguage'                => array( 'Дылым' ),
 );
 
index 861b936..2caaefa 100644 (file)
@@ -116,6 +116,7 @@ $bookstoreList = array(
 $specialPageAliases = array(
        'Activeusers'               => array( 'Активні_дописувачі' ),
        'Allmessages'               => array( 'Системні_повідомлення' ),
+       'AllMyUploads'              => array( 'Усі_мої_файли' ),
        'Allpages'                  => array( 'Усі_сторінки' ),
        'Ancientpages'              => array( 'Давні_сторінки' ),
        'Badtitle'                  => array( 'Помилковий_заголовок' ),
@@ -142,6 +143,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( 'Шлях_до_файлу' ),
        'Import'                    => array( 'Імпорт' ),
        'Invalidateemail'           => array( 'Неперевірена_email-адреса' ),
+       'JavaScriptTest'            => array( 'JavaScript_тест' ),
        'BlockList'                 => array( 'Список_блокувань', 'Блокування', 'Блокування_IP-адрес' ),
        'LinkSearch'                => array( 'Пошук_посилань' ),
        'Listadmins'                => array( 'Список_адміністраторів' ),
@@ -149,6 +151,7 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'Список_файлів' ),
        'Listgrouprights'           => array( 'Список_прав_груп', 'Права_груп_користувачів' ),
        'Listredirects'             => array( 'Список_перенаправлень' ),
+       'ListDuplicatedFiles'       => array( 'Список_дубльованих_файлів' ),
        'Listusers'                 => array( 'Список_користувачів' ),
        'Lockdb'                    => array( 'Заблокувати_базу_даних' ),
        'Log'                       => array( 'Журнали' ),
@@ -182,6 +185,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'Випадкове_перенаправлення' ),
        'Recentchanges'             => array( 'Нові_редагування' ),
        'Recentchangeslinked'       => array( 'Пов\'язані_редагування' ),
+       'Redirect'                  => array( 'Перенаправлення' ),
        'Revisiondelete'            => array( 'Вилучити_редагування' ),
        'Search'                    => array( 'Пошук' ),
        'Shortpages'                => array( 'Короткі_сторінки' ),
@@ -237,19 +241,18 @@ $magicWords = array(
        'localmonthname'            => array( '1', 'НАЗВА_ЛОКАЛЬНОГО_МІСЯЦЯ', 'НАЗВАНИЕ_МЕСТНОГО_МЕСЯЦА', 'LOCALMONTHNAME' ),
        'localmonthnamegen'         => array( '1', 'НАЗВА_ЛОКАЛЬНОГО_МІСЯЦЯ_РОД', 'НАЗВАНИЕ_МЕСТНОГО_МЕСЯЦА_РОД', 'LOCALMONTHNAMEGEN' ),
        'localmonthabbrev'          => array( '1', 'НАЗВА_ЛОКАЛЬНОГО_МІСЯЦЯ_АБР', 'НАЗВАНИЕ_МЕСТНОГО_МЕСЯЦА_АБР', 'LOCALMONTHABBREV' ),
-       'localday'                  => array( '1', 'ЛОКАЛЬНИЙ_ДЕНЬ', 'МЕСТНЫЙ_ДЕНЬ', 'LOCALDAY' ),
-       'localday2'                 => array( '1', 'ЛОКАЛЬНИЙ_ДЕНЬ_2', 'МЕСТНЫЙ_ДЕНЬ_2', 'LOCALDAY2' ),
-       'localdayname'              => array( '1', 'НАЗВА_ЛОКАЛЬНОГО_ДНЯ', 'НАЗВАНИЕ_МЕСТНОГО_ДНЯ', 'LOCALDAYNAME' ),
-       'localyear'                 => array( '1', 'ЛОКАЛЬНИЙ_РІК', 'МЕСТНЫЙ_ГОД', 'LOCALYEAR' ),
-       'localtime'                 => array( '1', 'ЛОКАЛЬНИЙ_ЧАС', 'МЕСТНОЕ_ВРЕМЯ', 'LOCALTIME' ),
-       'localhour'                 => array( '1', 'ЛОКАЛЬНА_ГОДИНА', 'МЕСТНЫЙ_ЧАС', 'LOCALHOUR' ),
+       'localday'                  => array( '1', 'Ð\9bÐ\9eÐ\9aÐ\90Ð\9bЬÐ\9dÐ\98Ð\99\94Ð\95Ð\9dЬ', 'Ð\9cÐ\86СЦÐ\95Ð\92Ð\98Ð\99\94Ð\95Ð\9dЬ', 'Ð\9cÐ\95СТÐ\9dЫÐ\99\94Ð\95Ð\9dЬ', 'LOCALDAY' ),
+       'localday2'                 => array( '1', 'Ð\9bÐ\9eÐ\9aÐ\90Ð\9bЬÐ\9dÐ\98Ð\99\94Ð\95Ð\9dЬ_2', 'Ð\9cÐ\86СЦÐ\95Ð\92Ð\98Ð\99\94Ð\95Ð\9dЬ_2', 'Ð\9cÐ\95СТÐ\9dЫÐ\99\94Ð\95Ð\9dЬ_2', 'LOCALDAY2' ),
+       'localdayname'              => array( '1', 'НАЗВА_ЛОКАЛЬНОГО_ДНЯ', 'НАЗВА_МІСЦЕВОГО_ДНЯ', 'НАЗВАНИЕ_МЕСТНОГО_ДНЯ', 'LOCALDAYNAME' ),
+       'localyear'                 => array( '1', 'Ð\9bÐ\9eÐ\9aÐ\90Ð\9bЬÐ\9dÐ\98Ð\99_РÐ\86Ð\9a', 'Ð\9cÐ\86СЦÐ\95Ð\92Ð\98Ð\99_РÐ\86Ð\9a', 'Ð\9cÐ\95СТÐ\9dЫÐ\99\93Ð\9eÐ\94', 'LOCALYEAR' ),
+       'localtime'                 => array( '1', 'Ð\9bÐ\9eÐ\9aÐ\90Ð\9bЬÐ\9dÐ\98Ð\99_ЧÐ\90С', 'Ð\9cÐ\86СЦÐ\95Ð\92Ð\98Ð\99_ЧÐ\90С', 'Ð\9cÐ\95СТÐ\9dÐ\9eÐ\95\92РÐ\95Ð\9cЯ', 'LOCALTIME' ),
+       'localhour'                 => array( '1', 'Ð\9bÐ\9eÐ\9aÐ\90Ð\9bЬÐ\9dÐ\90\93Ð\9eÐ\94Ð\98Ð\9dÐ\90', 'Ð\9cÐ\86СЦÐ\95Ð\92Ð\90\93Ð\9eÐ\94Ð\98Ð\9dÐ\90', 'Ð\9cÐ\95СТÐ\9dЫÐ\99_ЧÐ\90С', 'LOCALHOUR' ),
        'numberofpages'             => array( '1', 'КІЛЬКІСТЬ_СТОРІНОК', 'КОЛИЧЕСТВО_СТРАНИЦ', 'NUMBEROFPAGES' ),
        'numberofarticles'          => array( '1', 'КІЛЬКІСТЬ_СТАТЕЙ', 'КОЛИЧЕСТВО_СТАТЕЙ', 'NUMBEROFARTICLES' ),
        'numberoffiles'             => array( '1', 'КІЛЬКІСТЬ_ФАЙЛІВ', 'КОЛИЧЕСТВО_ФАЙЛОВ', 'NUMBEROFFILES' ),
        'numberofusers'             => array( '1', 'КІЛЬКІСТЬ_КОРИСТУВАЧІВ', 'КОЛИЧЕСТВО_УЧАСТНИКОВ', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'КІЛЬКІСТЬ_АКТИВНИХ_КОРИСТУВАЧІВ', 'КОЛИЧЕСТВО_АКТИВНЫХ_УЧАСТНИКОВ', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'КІЛЬКІСТЬ_РЕДАГУВАНЬ', 'КОЛИЧЕСТВО_ПРАВОК', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'КІЛЬКІСТЬ_ПЕРЕГЛЯДІВ', 'КОЛИЧЕСТВО_ПРОСМОТРОВ', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'НАЗВА_СТОРІНКИ', 'НАЗВАНИЕ_СТРАНИЦЫ', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'НАЗВА_СТОРІНКИ_2', 'НАЗВАНИЕ_СТРАНИЦЫ_2', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ПРОСТІР_НАЗВ', 'ПРОСТРАНСТВО_ИМЁН', 'NAMESPACE' ),
@@ -266,8 +269,8 @@ $magicWords = array(
        'basepagenamee'             => array( '1', 'ОСНОВА_НАЗВИ_ПІДСТОРІНКИ_2', 'ОСНОВА_НАЗВАНИЯ_СТРАНИЦЫ_2', 'BASEPAGENAMEE' ),
        'talkpagename'              => array( '1', 'НАЗВА_СТОРІНКИ_ОБГОВОРЕННЯ', 'НАЗВАНИЕ_СТРАНИЦЫ_ОБСУЖДЕНИЯ', 'TALKPAGENAME' ),
        'talkpagenamee'             => array( '1', 'НАЗВА_СТОРІНКИ_ОБГОВОРЕННЯ_2', 'НАЗВАНИЕ_СТРАНИЦЫ_ОБСУЖДЕНИЯ_2', 'TALKPAGENAMEE' ),
-       'subjectpagename'           => array( '1', 'НАЗВА_СТАТТІ', 'НАЗВАНИЕ_СТРАНИЦЫ_СТАТЬИ', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
-       'subjectpagenamee'          => array( '1', 'НАЗВА_СТАТТІ_2', 'НАЗВАНИЕ_СТРАНИЦЫ_СТАТЬИ_2', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
+       'subjectpagename'           => array( '1', 'НАЗВА_СТАТТІ', 'НАЗВА_СТОРІНКИ_СТАТТІ', 'НАЗВАНИЕ_СТРАНИЦЫ_СТАТЬИ', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
+       'subjectpagenamee'          => array( '1', 'НАЗВА_СТАТТІ_2', 'НАЗВА_СТОРІНКИ_СТАТТІ_2', 'НАЗВАНИЕ_СТРАНИЦЫ_СТАТЬИ_2', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
        'msg'                       => array( '0', 'ПОВІД:', 'ПОВІДОМЛЕННЯ:', 'СООБЩЕНИЕ:', 'СООБЩ:', 'MSG:' ),
        'subst'                     => array( '0', 'ПІДСТ:', 'ПІДСТАНОВКА:', 'ПОДСТАНОВКА:', 'ПОДСТ:', 'SUBST:' ),
        'safesubst'                 => array( '0', 'БЕЗПЕЧНА_ПІДСТАНОВКА:', 'ЗАЩПОДСТ:', 'SAFESUBST:' ),
@@ -281,9 +284,9 @@ $magicWords = array(
        'img_center'                => array( '1', 'центр', 'center', 'centre' ),
        'img_framed'                => array( '1', 'обрамити', 'рамка', 'обрамить', 'framed', 'enframed', 'frame' ),
        'img_frameless'             => array( '1', 'безрамки', 'frameless' ),
-       'img_page'                  => array( '1', 'сторінка=$1', 'сторінка_$1', 'страница=$1', 'страница_$1', 'страница $1', 'page=$1', 'page $1' ),
-       'img_upright'               => array( '1', 'зверхуправоруч', 'зверхуправоруч=$1', 'зверхуправоруч_$1', 'сверхусправа', 'сверхусправа=$1', 'сверхусправа_$1', 'сверхусправа $1', 'upright', 'upright=$1', 'upright $1' ),
-       'img_border'                => array( '1', 'межа', 'граница', 'border' ),
+       'img_page'                  => array( '1', 'сторінка=$1', 'сторінка_$1', 'страница=$1', 'страница $1', 'page=$1', 'page $1' ),
+       'img_upright'               => array( '1', 'зверхуправоруч', 'зверхуправоруч=$1', 'зверхуправоруч_$1', 'сверхусправа', 'сверхусправа=$1', 'сверхусправа $1', 'upright', 'upright=$1', 'upright $1' ),
+       'img_border'                => array( '1', 'межа', 'границя', 'граница', 'border' ),
        'img_baseline'              => array( '1', 'основа', 'основание', 'baseline' ),
        'img_sub'                   => array( '1', 'під', 'под', 'sub' ),
        'img_super'                 => array( '1', 'над', 'super', 'sup' ),
@@ -300,6 +303,8 @@ $magicWords = array(
        'nse'                       => array( '0', 'ПН_2:', 'ПИК:', 'NSE:' ),
        'localurl'                  => array( '0', 'ЛОКАЛЬНА_АДРЕСА:', 'ЛОКАЛЬНЫЙ_АДРЕС:', 'LOCALURL:' ),
        'localurle'                 => array( '0', 'ЛОКАЛЬНА_АДРЕСА_2:', 'ЛОКАЛЬНЫЙ_АДРЕС_2:', 'LOCALURLE:' ),
+       'articlepath'               => array( '0', 'ШЛЯХ_ДО_СТАТТІ', 'ПУТЬ_К_СТАТЬЕ', 'ARTICLEPATH' ),
+       'pageid'                    => array( '0', 'ІДЕНТИФІКАТОР_СТОРІНКИ', 'ИДЕНТИФИКАТОР_СТРАНИЦЫ', 'PAGEID' ),
        'server'                    => array( '0', 'СЕРВЕР', 'SERVER' ),
        'servername'                => array( '0', 'НАЗВА_СЕРВЕРА', 'НАЗВАНИЕ_СЕРВЕРА', 'SERVERNAME' ),
        'scriptpath'                => array( '0', 'ШЛЯХ_ДО_СКРИПТУ', 'ПУТЬ_К_СКРИПТУ', 'SCRIPTPATH' ),
@@ -323,10 +328,10 @@ $magicWords = array(
        'plural'                    => array( '0', 'МНОЖИНА:', 'МНОЖЕСТВЕННОЕ_ЧИСЛО:', 'PLURAL:' ),
        'fullurl'                   => array( '0', 'ПОВНА_АДРЕСА:', 'ПОЛНЫЙ_АДРЕС:', 'FULLURL:' ),
        'fullurle'                  => array( '0', 'ПОВНА_АДРЕСА_2:', 'ПОЛНЫЙ_АДРЕС_2:', 'FULLURLE:' ),
-       'lcfirst'                   => array( '0', 'НР_ПЕРША:', 'ПЕРША_БУКВА_МАЛА:', 'ПЕРВАЯ_БУКВА_МАЛЕНЬКАЯ:', 'LCFIRST:' ),
-       'ucfirst'                   => array( '0', 'ВР_ПЕРША:', 'ПЕРША_БУКВА_ВЕЛИКА:', 'ПЕРВАЯ_БУКВА_БОЛЬШАЯ:', 'UCFIRST:' ),
-       'lc'                        => array( '0', 'НР:', 'НИЖНІЙ_РЕГІСТР:', 'МАЛИМИ_БУКВАМИ:', 'МАЛЕНЬКИМИ_БУКВАМИ:', 'LC:' ),
-       'uc'                        => array( '0', 'ВР:', 'ВЕРХНІЙ_РЕГІСТР:', 'ВЕЛИКИМИ_БУКВАМИ:', 'БОЛЬШИМИ_БУКВАМИ:', 'UC:' ),
+       'lcfirst'                   => array( '0', 'Ð\9dР_Ð\9fÐ\95РШÐ\90:', 'Ð\9fÐ\95РШÐ\90\91УÐ\9aÐ\92Ð\90\9cÐ\90Ð\9bÐ\90:', 'Ð\9fÐ\95РШÐ\90\9bÐ\86ТÐ\95РÐ\90\9cÐ\90Ð\9bÐ\90:', 'Ð\9cÐ\90Ð\9bÐ\90\9fÐ\95РШÐ\90\9bÐ\86ТÐ\95РÐ\90:', 'Ð\9fÐ\95РÐ\92Ð\90Я_Ð\91УÐ\9aÐ\92Ð\90\9cÐ\90Ð\9bÐ\95Ð\9dЬÐ\9aÐ\90Я:', 'LCFIRST:' ),
+       'ucfirst'                   => array( '0', 'Ð\92Р_Ð\9fÐ\95РШÐ\90:', 'Ð\9fÐ\95РШÐ\90\91УÐ\9aÐ\92Ð\90\92Ð\95Ð\9bÐ\98Ð\9aÐ\90:', 'Ð\9fÐ\95ШÐ\90\94Ð\86ТÐ\95РÐ\90\92Ð\95Ð\9bÐ\98Ð\9aÐ\90:', 'Ð\92Ð\95Ð\9bÐ\98Ð\9aÐ\90\9fÐ\95РШÐ\90\9bÐ\86ТÐ\95РÐ\90:', 'Ð\9fÐ\95РÐ\92Ð\90Я_Ð\91УÐ\9aÐ\92Ð\90\91Ð\9eÐ\9bЬШÐ\90Я:', 'UCFIRST:' ),
+       'lc'                        => array( '0', 'Ð\9dР:', 'Ð\9dÐ\98Ð\96Ð\9dÐ\86Ð\99_РÐ\95Ð\93Ð\86СТР:', 'Ð\9cÐ\90Ð\9bÐ\98Ð\9cÐ\98\91УÐ\9aÐ\92Ð\90Ð\9cÐ\98:', 'Ð\9cÐ\90Ð\9bÐ\98Ð\9cÐ\98\9bÐ\86ТÐ\95РÐ\90Ð\9cÐ\98:', 'Ð\9cÐ\90Ð\9bÐ\95Ð\9dЬÐ\9aÐ\98Ð\9cÐ\98\91УÐ\9aÐ\92Ð\90Ð\9cÐ\98:', 'LC:' ),
+       'uc'                        => array( '0', 'Ð\92Р:', 'Ð\92Ð\95РХÐ\9dÐ\86Ð\99_РÐ\95Ð\93Ð\86СТР:', 'Ð\92Ð\95Ð\9bÐ\98Ð\9aÐ\98Ð\9cÐ\98\91УÐ\9aÐ\92Ð\90Ð\9cÐ\98:', 'Ð\92Ð\95Ð\9bÐ\98Ð\9aÐ\98Ð\9cÐ\98\9bÐ\86ТÐ\95РÐ\90Ð\9cÐ\98:', 'Ð\91Ð\9eÐ\9bЬШÐ\98Ð\9cÐ\98\91УÐ\9aÐ\92Ð\90Ð\9cÐ\98:', 'UC:' ),
        'raw'                       => array( '0', 'НЕОБРОБ:', 'НЕОБРАБ:', 'RAW:' ),
        'displaytitle'              => array( '1', 'ПОКАЗАТИ_ЗАГОЛОВОК', 'ПОКАЗАТЬ_ЗАГОЛОВОК', 'DISPLAYTITLE' ),
        'rawsuffix'                 => array( '1', 'Н', 'R' ),
@@ -346,11 +351,11 @@ $magicWords = array(
        'padleft'                   => array( '0', 'ЗАПОВНИТИ_ЛІВОРУЧ', 'ЗАПОЛНИТЬ_СЛЕВА', 'PADLEFT' ),
        'padright'                  => array( '0', 'ЗАПОВНИТИ_ПРАВОРУЧ', 'ЗАПОЛНИТЬ_СПРАВА', 'PADRIGHT' ),
        'special'                   => array( '0', 'спеціальна', 'служебная', 'special' ),
-       'defaultsort'               => array( '1', 'СТАНДАРТНЕ_СОРТУВАННЯ:', 'СОРТУВАННЯ:', 'СОРТИРОВКА_ПО_УМОЛЧАНИЮ', 'КЛЮЧ_СОРТИРОВКИ', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
+       'defaultsort'               => array( '1', 'СТАНДАРТНЕ_СОРТУВАННЯ:_КЛЮЧ_СОРТУВАННЯ', 'СОРТИРОВКА_ПО_УМОЛЧАНИЮ', 'КЛЮЧ_СОРТИРОВКИ', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                  => array( '0', 'ШЛЯХ_ДО_ФАЙЛУ:', 'ПУТЬ_К_ФАЙЛУ:', 'FILEPATH:' ),
-       'tag'                       => array( '0', 'тег', 'мітка', 'метка', 'тэг', 'tag' ),
-       'hiddencat'                 => array( '1', '__ПРИХОВ_КАТ__', '__СКРЫТАЯ_КАТЕГОРИЯ__', '__HIDDENCAT__' ),
-       'pagesincategory'           => array( '1', 'СТОР_В_КАТ', 'СТОР_У_КАТ', 'СТРАНИЦ_В_КАТЕГОРИИ', 'PAGESINCATEGORY', 'PAGESINCAT' ),
+       'tag'                       => array( '0', 'тег', 'мітка', 'теґ', 'метка', 'тэг', 'tag' ),
+       'hiddencat'                 => array( '1', '__Ð\9fРÐ\98Ð¥Ð\9eÐ\92\9aÐ\90Т__', '__Ð\9fРÐ\98Ð¥Ð\9eÐ\92Ð\90Ð\9dÐ\90\9aÐ\90ТÐ\95Ð\93Ð\9eРÐ\86Я__', '__СÐ\9aРЫТÐ\90Я_Ð\9aÐ\90ТÐ\95Ð\93Ð\9eРÐ\98Я__', '__HIDDENCAT__' ),
+       'pagesincategory'           => array( '1', 'СТÐ\9eР_Ð\92\9aÐ\90Т', 'СТÐ\9eР_У_Ð\9aÐ\90Т', 'СТÐ\9eРÐ\86Ð\9dÐ\9eÐ\9a_У_Ð\9aÐ\90ТÐ\95Ð\93Ð\9eРÐ\86Ð\87', 'СТРÐ\90Ð\9dÐ\98Ц_Ð\92\9aÐ\90ТÐ\95Ð\93Ð\9eРÐ\98Ð\98', 'PAGESINCATEGORY', 'PAGESINCAT' ),
        'pagesize'                  => array( '1', 'РОЗМІР', 'РОЗМІР_СТОРІНКИ', 'РАЗМЕР_СТРАНИЦЫ', 'PAGESIZE' ),
        'index'                     => array( '1', '__ІНДЕКС__', '__ИНДЕКС__', '__INDEX__' ),
        'noindex'                   => array( '1', '__БЕЗ_ІНДЕКСУ__', '__БЕЗ_ИНДЕКСА__', '__NOINDEX__' ),
@@ -361,6 +366,9 @@ $magicWords = array(
        'url_path'                  => array( '0', 'ШЛЯХ', 'ПУТЬ', 'PATH' ),
        'url_wiki'                  => array( '0', 'ВІКІ', 'ВИКИ', 'WIKI' ),
        'url_query'                 => array( '0', 'ЗАПИТ', 'ЗАПРОС', 'QUERY' ),
+       'pagesincategory_all'       => array( '0', 'усе', 'все', 'all' ),
+       'pagesincategory_pages'     => array( '0', 'сторінки', 'страницы', 'pages' ),
+       'pagesincategory_subcats'   => array( '0', 'підкатегорії', 'подкатегории', 'subcats' ),
 );
 
 $linkTrail = '/^([a-zабвгґдеєжзиіїйклмнопрстуфхцчшщьєюяёъы“»]+)(.*)$/sDu';
index 7ee1fe8..1394c16 100644 (file)
@@ -63,7 +63,7 @@ $specialPageAliases = array(
        'Ancientpages'              => array( 'قدیم_صفحات' ),
        'Badtitle'                  => array( 'خراب_عنوان' ),
        'Blankpage'                 => array( 'خالی_صفحہ' ),
-       'Block'                     => array( 'پابÙ\86دÛ\8c', 'دستÙ\88ر_شبکÛ\8c_پابÙ\86دÛ\8c', 'پابندی_بر_صارف' ),
+       'Block'                     => array( 'پابÙ\86دÛ\8c', 'آئÛ\8c_Ù¾Û\8c_پتÛ\81_پابÙ\86دÛ\8cØ\8c_پابندی_بر_صارف' ),
        'Booksources'               => array( 'کتابی_وسائل' ),
        'BrokenRedirects'           => array( 'شکستہ_رجوع_مکررات' ),
        'Categories'                => array( 'زمرہ_جات' ),
@@ -119,6 +119,8 @@ $specialPageAliases = array(
        'Shortpages'                => array( 'مختصر_صفحات' ),
        'Specialpages'              => array( 'خصوصی_صفحات' ),
        'Statistics'                => array( 'شماریات' ),
+       'Tags'                      => array( 'ٹیگز' ),
+       'Unblock'                   => array( 'پابندی_ختم' ),
        'Uncategorizedcategories'   => array( 'غیر_زمرہ_بند_زمرہ_جات' ),
        'Uncategorizedimages'       => array( 'غیر_زمرہ_بند_املاف', 'غیر_زمرہ_بند_تصاویر' ),
        'Uncategorizedpages'        => array( 'غیر_زمرہ_بند_صفحات' ),
@@ -133,10 +135,10 @@ $specialPageAliases = array(
        'Userlogout'                => array( 'خارج_نوشتگی' ),
        'Userrights'                => array( 'صارفی_اختیارات' ),
        'Version'                   => array( 'اخراجہ' ),
-       'Wantedcategories'          => array( 'مطلوب_زمرہ_جات' ),
-       'Wantedfiles'               => array( 'مطلوب_املاف' ),
-       'Wantedpages'               => array( 'مطلوب_صفحات', 'شکستہ_روابط' ),
-       'Wantedtemplates'           => array( 'مطلوب_سانچے' ),
+       'Wantedcategories'          => array( 'مطلوبہ_زمرہ_جات' ),
+       'Wantedfiles'               => array( 'مطلوبہ_املاف' ),
+       'Wantedpages'               => array( 'مطلوبہ_صفحات', 'شکستہ_روابط' ),
+       'Wantedtemplates'           => array( 'مطلوبہ_سانچے' ),
        'Watchlist'                 => array( 'زیر_نظر_فہرست' ),
        'Whatlinkshere'             => array( 'یہاں_کس_کا_رابطہ' ),
        'Withoutinterwiki'          => array( 'بدون_بین_الویکی' ),
index 1c474cc..33d36bc 100644 (file)
@@ -88,7 +88,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'FOYDALANUVCHISONI', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'FAOLFOYDALANUVCHISONI', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'OZGARISHSONI', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'KORISHSONI', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'SAHIFANOMI', 'PAGENAME' ),
        'namespace'                 => array( '1', 'NOMFAZO', 'NAMESPACE' ),
        'gender'                    => array( '0', 'JINS', 'GENDER:' ),
index c691b0e..2724a60 100644 (file)
@@ -62,6 +62,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'Mọi_thông_điệp', 'Mọi_thông_báo' ),
        'AllMyUploads'              => array( 'Mọi_tập_tin_của_tôi', 'Mọi_tập_tin_tôi_tải_lên' ),
        'Allpages'                  => array( 'Mọi_bài' ),
+       'ApiHelp'                   => array( 'Trợ_giúp_API' ),
        'Ancientpages'              => array( 'Trang_cũ' ),
        'Badtitle'                  => array( 'Tựa_đề_hỏng' ),
        'Blankpage'                 => array( 'Trang_trắng' ),
@@ -77,6 +78,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'Mở_tài_khoản', 'Đăng_ký', 'Đăng_kí' ),
        'Deadendpages'              => array( 'Trang_đường_cùng' ),
        'DeletedContributions'      => array( 'Đóng_góp_bị_xóa', 'Đóng_góp_bị_xoá' ),
+       'Diff'                      => array( 'Khác', 'Khác_biệt' ),
        'DoubleRedirects'           => array( 'Đổi_hướng_kép' ),
        'EditWatchlist'             => array( 'Sửa_danh_sách_theo_dõi' ),
        'Emailuser'                 => array( 'Gửi_thư', 'Gửi_thư_điện_tử' ),
@@ -95,11 +97,13 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'Danh_sách_tập_tin', 'Danh_sách_hình' ),
        'Listgrouprights'           => array( 'Quyền_nhóm_người_dùng' ),
        'Listredirects'             => array( 'Trang_đổi_hướng' ),
+       'ListDuplicatedFiles'       => array( 'Tập_tin_trùng_lắp' ),
        'Listusers'                 => array( 'Danh_sách_thành_viên' ),
        'Lockdb'                    => array( 'Khóa_CSDL', 'Khóa_cơ_sở_dữ_liệu', 'Khoá_CSDL', 'Khoá_cơ_sở_dữ_liệu' ),
        'Log'                       => array( 'Nhật_trình' ),
        'Lonelypages'               => array( 'Trang_mồ_côi' ),
        'Longpages'                 => array( 'Trang_dài' ),
+       'MediaStatistics'           => array( 'Thống_kê_phương_tiện' ),
        'MergeHistory'              => array( 'Trộn_lịch_sử' ),
        'MIMEsearch'                => array( 'Tìm_MIME' ),
        'Mostcategories'            => array( 'Thể_loại_lớn_nhất' ),
@@ -118,6 +122,7 @@ $specialPageAliases = array(
        'Newimages'                 => array( 'Tập_tin_mới', 'Hình_mới' ),
        'Newpages'                  => array( 'Trang_mới' ),
        'PagesWithProp'             => array( 'Trang_theo_thuộc_tính' ),
+       'PageLanguage'              => array( 'Ngôn_ngữ_trang' ),
        'PasswordReset'             => array( 'Tái_tạo_mật_khẩu', 'Đặt_lại_mật_khẩu' ),
        'PermanentLink'             => array( 'Liên_kết_thường_trực' ),
        'Popularpages'              => array( 'Trang_phổ_biến' ),
@@ -133,11 +138,13 @@ $specialPageAliases = array(
        'Redirect'                  => array( 'Đổi_hướng' ),
        'ResetTokens'               => array( 'Đặt_lại_dấu_hiệu' ),
        'Revisiondelete'            => array( 'Xóa_phiên_bản', 'Xoá_phiên_bản' ),
+       'RunJobs'                   => array( 'Chạy_việc' ),
        'Search'                    => array( 'Tìm_kiếm' ),
        'Shortpages'                => array( 'Trang_ngắn' ),
        'Specialpages'              => array( 'Trang_đặc_biệt' ),
        'Statistics'                => array( 'Thống_kê' ),
        'Tags'                      => array( 'Thẻ' ),
+       'TrackingCategories'        => array( 'Thể_loại_theo_dõi' ),
        'Unblock'                   => array( 'Bỏ_cấm' ),
        'Uncategorizedcategories'   => array( 'Thể_loại_chưa_phân_loại' ),
        'Uncategorizedimages'       => array( 'Tập_tin_chưa_phân_loại', 'Hình_chưa_phân_loại' ),
@@ -198,7 +205,6 @@ $magicWords = array(
        'numberofusers'             => array( '1', 'SỐ_THÀNH_VIÊN', 'SỐTHÀNHVIÊN', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', 'SỐ_THÀNH_VIÊN_TÍCH_CỰC', 'SỐTHÀNHVIÊNTÍCHCỰC', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'SỐ_SỬA_ĐỔI', 'SỐSỬAĐỔI', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', 'SỐ_LẦN_XEM', 'SỐLẦNXEM', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'TÊN_TRANG', 'TÊNTRANG', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'TÊN_TRANG_2', 'TÊNTRANG2', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'KHÔNG_GIAN_TÊN', 'KHÔNGGIANTÊN', 'NAMESPACE' ),
@@ -212,6 +218,7 @@ $magicWords = array(
        'subjectpagename'           => array( '1', 'TÊN_TRANG_NỘI_DUNG', 'TÊNTRANGNỘIDUNG', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
        'msg'                       => array( '0', 'NHẮN:', 'MSG:' ),
        'subst'                     => array( '0', 'THẾ:', 'SUBST:' ),
+       'safesubst'                 => array( '0', 'THẾ_AN_TOÀN:', 'SAFESUBST:' ),
        'msgnw'                     => array( '0', 'NHẮN_MỚI:', 'NHẮNMỚI:', 'MSGNW:' ),
        'img_thumbnail'             => array( '1', 'nhỏ', 'thumbnail', 'thumb' ),
        'img_manualthumb'           => array( '1', 'nhỏ=$1', 'thumbnail=$1', 'thumb=$1' ),
@@ -220,6 +227,8 @@ $magicWords = array(
        'img_none'                  => array( '1', 'không', 'none' ),
        'img_center'                => array( '1', 'giữa', 'center', 'centre' ),
        'img_framed'                => array( '1', 'khung', 'framed', 'enframed', 'frame' ),
+       'img_frameless'             => array( '1', 'không_khung', 'frameless' ),
+       'img_lang'                  => array( '1', 'tiếng=$1', 'ngôn_ngữ=$1', 'lang=$1' ),
        'img_page'                  => array( '1', 'trang=$1', 'trang_$1', 'page=$1', 'page $1' ),
        'img_upright'               => array( '1', 'đứng', 'đứng=$1', 'đứng_$1', 'upright', 'upright=$1', 'upright $1' ),
        'img_border'                => array( '1', 'viền', 'border' ),
@@ -228,9 +237,11 @@ $magicWords = array(
        'img_super'                 => array( '1', 'chỉ-số-trên', 'super', 'sup' ),
        'img_top'                   => array( '1', 'trên', 'top' ),
        'img_text_top'              => array( '1', 'trên-chữ', 'text-top' ),
+       'img_middle'                => array( '1', 'nửa-chiều-cao', 'middle' ),
        'img_bottom'                => array( '1', 'dưới', 'bottom' ),
        'img_text_bottom'           => array( '1', 'dưới-chữ', 'text-bottom' ),
        'img_link'                  => array( '1', 'liên_kết=$1', 'link=$1' ),
+       'img_alt'                   => array( '1', 'thế=$1', 'thay_thế=$1', 'alt=$1' ),
        'img_class'                 => array( '1', 'lớp=$1', 'class=$1' ),
        'int'                       => array( '0', 'NỘI:', 'INT:' ),
        'sitename'                  => array( '1', 'TÊN_MẠNG', 'TÊNMẠNG', 'SITENAME' ),
@@ -256,6 +267,7 @@ $magicWords = array(
        'revisionyear'              => array( '1', 'NĂM_BẢN', 'NĂMBẢN', 'REVISIONYEAR' ),
        'revisiontimestamp'         => array( '1', 'MỐC_THỜI_GIAN_BẢN', 'MỐCTHỜIGIANBẢN', 'DẤU_THỜI_GIAN_BẢN', 'DẤUTHỜIGIANBẢN', 'REVISIONTIMESTAMP' ),
        'revisionuser'              => array( '1', 'NGƯỜI_DÙNG_BẢN', 'NGƯỜIDÙNGBẢN', 'REVISIONUSER' ),
+       'revisionsize'              => array( '1', 'CỠ_PHIÊN_BẢN', 'CỠPHIÊNBẢN', 'REVISIONSIZE' ),
        'plural'                    => array( '0', 'SỐ_NHIỀU:', 'SỐNHIỀU:', 'PLURAL:' ),
        'fullurl'                   => array( '0', 'URL_ĐỦ:', 'URLĐỦ:', 'FULLURL:' ),
        'canonicalurl'              => array( '0', 'URL_CHUẨN:', 'URLCHUẨN:', 'CANONICALURL:' ),
@@ -271,11 +283,13 @@ $magicWords = array(
        'anchorencode'              => array( '0', 'MÃ_HÓA_NEO', 'MÃHÓANEO', 'MÃ_HOÁ_NEO', 'MÃHOÁNEO', 'ANCHORENCODE' ),
        'currenttimestamp'          => array( '1', 'MỐC_THỜI_GIAN_NÀY', 'MỐCTHỜIGIANNÀY', 'DẤU_THỜI_GIAN_NÀY', 'DẤUTHỜIGIANNÀY', 'CURRENTTIMESTAMP' ),
        'localtimestamp'            => array( '1', 'MỐC_THỜI_GIAN_ĐỊA_PHƯƠNG', 'MỐCTHỜIGIANĐỊAPHƯƠNG', 'DẤU_THỜI_GIAN_ĐỊA_PHƯƠNG', 'DẤUTHỜIGIANĐỊAPHƯƠNG', 'LOCALTIMESTAMP' ),
+       'directionmark'             => array( '1', 'DẤU_HƯỚNG_VIẾT', 'DẤUHƯỚNGVIẾT', 'DIRECTIONMARK', 'DIRMARK' ),
        'language'                  => array( '0', '#NGÔN_NGỮ:', '#NGÔNNGỮ:', '#LANGUAGE:' ),
        'contentlanguage'           => array( '1', 'NGÔN_NGỮ_NỘI_DUNG', 'NGÔNNGỮNỘIDUNG', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
        'pagesinnamespace'          => array( '1', 'CỠ_KHÔNG_GIAN_TÊN:', 'CỠKHÔNGGIANTÊN:', 'CỠ_KGT:', 'CỠKGT:', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
        'numberofadmins'            => array( '1', 'SỐ_BẢO_QUẢN_VIÊN', 'SỐBẢOQUẢNVIÊN', 'SỐ_QUẢN_LÝ', 'SỐQUẢNLÝ', 'SỐ_QUẢN_LÍ', 'SỐQUẢNLÍ', 'NUMBEROFADMINS' ),
        'formatnum'                 => array( '0', 'PHÂN_CHIA_SỐ', 'PHÂNCHIASỐ', 'FORMATNUM' ),
+       'special'                   => array( '0', 'đặc_biệt', 'special' ),
        'defaultsort'               => array( '1', 'XẾP_MẶC_ĐỊNH:', 'XẾPMẶCĐỊNH:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                  => array( '0', 'ĐƯỜNG_DẪN_TẬP_TIN', 'ĐƯỜNGDẪNTẬPTIN', 'FILEPATH:' ),
        'tag'                       => array( '0', 'thẻ', 'tag' ),
@@ -287,6 +301,8 @@ $magicWords = array(
        'numberingroup'             => array( '1', 'CỠ_NHÓM', 'CỠNHÓM', 'NUMBERINGROUP', 'NUMINGROUP' ),
        'staticredirect'            => array( '1', '__ĐỔI_HƯỚNG_NHẤT_ĐỊNH__', '__ĐỔIHƯỚNGNHẤTĐỊNH__', '__STATICREDIRECT__' ),
        'protectionlevel'           => array( '1', 'MỨC_KHÓA', 'MỨCKHÓA', 'MỨC_KHOÁ', 'MỨCKHOÁ', 'PROTECTIONLEVEL' ),
+       'cascadingsources'          => array( '1', 'NGUỒN_THEO_TẦNG', 'NGUỒNTHEOTẦNG', 'CASCADINGSOURCES' ),
+       'formatdate'                => array( '0', 'định_dạng_ngày', 'địnhdạngngày', 'formatdate', 'dateformat' ),
        'url_path'                  => array( '0', 'ĐƯỜNG_DẪN', 'ĐƯỜNGDẪN', 'PATH' ),
        'url_query'                 => array( '0', 'TRUY_VẤN', 'TRUYVẤN', 'QUERY' ),
        'defaultsort_noerror'       => array( '0', 'không_lỗi', 'noerror' ),
index 9b6dad4..ed61df4 100644 (file)
@@ -94,6 +94,7 @@ $specialPageAliases = array(
        'Log'                       => array( 'לאגביכער' ),
        'Lonelypages'               => array( 'פאר\'יתומ\'טע_בלעטער' ),
        'Longpages'                 => array( 'לאנגע_בלעטער' ),
+       'MergeHistory'              => array( 'צונויפמישן_היסטאריע' ),
        'MIMEsearch'                => array( 'זוכן_MIME' ),
        'Mostcategories'            => array( 'מערסטע_קאטעגאריעס' ),
        'Mostimages'                => array( 'מערסטע_פארבונדענע_בילדער' ),
@@ -117,6 +118,7 @@ $specialPageAliases = array(
        'Randompage'                => array( 'צופעליג', 'צופעליגער_בלאט' ),
        'Randomredirect'            => array( 'צופעליק_ווײַטערפֿירן' ),
        'Recentchanges'             => array( 'לעצטע_ענדערונגען' ),
+       'Redirect'                  => array( 'ווײַטערפירונג' ),
        'Revisiondelete'            => array( 'אויסמעקן_ווערסיעס' ),
        'Search'                    => array( 'זוכן' ),
        'Shortpages'                => array( 'קורצע_בלעטער' ),
@@ -152,6 +154,7 @@ $magicWords = array(
        'nogallery'                 => array( '0', '__קיין_גאלעריע__', '__ללא_גלריה__', '__NOGALLERY__' ),
        'toc'                       => array( '0', '__אינהאלט__', '__תוכן_עניינים__', '__תוכן__', '__TOC__' ),
        'noeditsection'             => array( '0', '__נישט_רעדאקטירן__', '__ללא_עריכה__', '__NOEDITSECTION__' ),
+       'currentmonth'              => array( '1', 'לויפיקער_מאנאט', 'חודש נוכחי', 'חודש נוכחי 2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
        'currentday'                => array( '1', 'לויפיקער_טאג', 'יום נוכחי', 'CURRENTDAY' ),
        'currentyear'               => array( '1', 'לויפֿיקע_יאָר', 'שנה נוכחית', 'CURRENTYEAR' ),
        'currenttime'               => array( '1', 'לויפֿיקע_צײַט', 'שעה נוכחית', 'CURRENTTIME' ),
@@ -159,6 +162,7 @@ $magicWords = array(
        'numberofarticles'          => array( '1', 'צאל_ארטיקלען', 'מספר ערכים', 'NUMBEROFARTICLES' ),
        'numberoffiles'             => array( '1', 'צאל_טעקעס', 'מספר קבצים', 'NUMBEROFFILES' ),
        'numberofusers'             => array( '1', 'צאל_באניצער', 'מספר משתמשים', 'NUMBEROFUSERS' ),
+       'numberofactiveusers'       => array( '1', 'צאל_טעטיקע_באניצער', 'מספר משתמשים פעילים', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', 'צאל_רעדאקטירונגען', 'מספר עריכות', 'NUMBEROFEDITS' ),
        'pagename'                  => array( '1', 'בלאטנאמען', 'שם הדף', 'PAGENAME' ),
        'namespace'                 => array( '1', 'נאמענטייל', 'מרחב השם', 'NAMESPACE' ),
@@ -188,8 +192,11 @@ $magicWords = array(
        'language'                  => array( '0', '#שפראך:', '#שפה:', '#LANGUAGE:' ),
        'special'                   => array( '0', 'באזונדער', 'מיוחד', 'special' ),
        'defaultsort'               => array( '1', 'גרונטסארטיר:', 'מיון רגיל:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
+       'filepath'                  => array( '0', 'טעקעשטעג:', 'נתיב לקובץ:', 'FILEPATH:' ),
+       'tag'                       => array( '0', 'טאג', 'תגית', 'tag' ),
        'hiddencat'                 => array( '1', '__באהאלטענע_קאטעגאריע__', '__באהאלטענע_קאט__', '__קטגוריה_מוסתרת__', '__HIDDENCAT__' ),
        'pagesize'                  => array( '1', 'בלאטגרייס', 'גודל דף', 'PAGESIZE' ),
+       'url_path'                  => array( '0', 'שטעג', 'נתיב', 'PATH' ),
        'url_wiki'                  => array( '0', 'וויקי', 'ויקי', 'WIKI' ),
        'pagesincategory_pages'     => array( '0', 'בלעטער', 'דפים', 'pages' ),
 );
index 9d0573d..8ee87f0 100644 (file)
@@ -98,76 +98,87 @@ $specialPageAliases = array(
        'Allmessages'               => array( '所有消息', '所有訊息', '所有讯息' ),
        'Allpages'                  => array( '所有页面', '所有頁面' ),
        'Ancientpages'              => array( '最早页面', '最早頁面' ),
+       'Badtitle'                  => array( '错误标题', '无效标题', '錯誤標題' ),
        'Blankpage'                 => array( '空白页面', '空白頁面' ),
-       'Booksources'               => array( '网络书源', '網絡書源', '網路書源', '网路书源' ),
-       'BrokenRedirects'           => array( '损坏的重定向页', '損壞的重定向頁' ),
+       'Booksources'               => array( '网络书源', '網絡書源', '網路書源' ),
+       'BrokenRedirects'           => array( '受损重定向' ),
        'Categories'                => array( '页面分类', '頁面分類' ),
        'ChangePassword'            => array( '修改密码', '修改密碼' ),
        'Confirmemail'              => array( '确认电子邮件', '確認電子郵件' ),
-       'Contributions'             => array( '用户贡献', '用戶貢獻' ),
-       'CreateAccount'             => array( '创建账户', '創建帳戶' ),
-       'Deadendpages'              => array( '断链页面', '斷鏈頁面', '斷連頁面', '断连页面' ),
-       'DeletedContributions'      => array( '已删除的用户贡献', '已刪除的用戶貢獻' ),
-       'DoubleRedirects'           => array( '双重重定向页面', '雙重重定向頁面' ),
-       'Emailuser'                 => array( '电邮用户', '電郵用戶' ),
-       'Export'                    => array( '导出页面', '導出頁面' ),
+       'Contributions'             => array( '用户贡献', '用戶貢獻', '使用者貢獻', '使用者贡献' ),
+       'CreateAccount'             => array( '创建账户', '創建賬戶', '建立帳戶', '建立帳號', '建立帐号' ),
+       'Deadendpages'              => array( '断链页面', '斷鏈頁面', '斷連頁面' ),
+       'DeletedContributions'      => array( '删除的贡献' ),
+       'Diff'                      => array( '差异', '差異' ),
+       'DoubleRedirects'           => array( '双重重定向', '雙重重新導向' ),
+       'Emailuser'                 => array( '电邮联系', '電郵聯絡' ),
+       'Export'                    => array( '导出页面', '導出頁面', '匯出頁面', '汇出页面' ),
        'Fewestrevisions'           => array( '最少修订页面', '最少修訂頁面' ),
        'Filepath'                  => array( '文件路径', '文件路徑', '檔案路徑', '档案路径' ),
-       'Import'                    => array( '导入页面', '導入頁面' ),
-       'Invalidateemail'           => array( '不可识别的电邮地址', '不可識別的電郵址' ),
+       'Import'                    => array( '导入页面', '導入頁面', '匯入頁面', '汇入页面' ),
+       'Invalidateemail'           => array( '不可识别的电邮地址', '不可識別的電郵址' ),
        'BlockList'                 => array( '封禁列表' ),
+       'LinkSearch'                => array( '链接搜索', '鏈接搜索', '連結搜尋', '连结搜寻' ),
        'Listadmins'                => array( '管理员列表', '管理員列表' ),
-       'Listbots'                  => array( '机器人列表', '機器人列表' ),
+       'Listbots'                  => array( '机器人列表', '機器人清單', '機械人清單' ),
        'Listfiles'                 => array( '文件列表', '檔案列表', '档案列表' ),
        'Listgrouprights'           => array( '群组权限', '群組權限' ),
-       'Listusers'                 => array( '用户列表', '用戶列表' ),
+       'Listredirects'             => array( '重定向页列表', '重定向列表', '重新導向清單' ),
+       'Listusers'                 => array( '用户列表', '用戶列表', '使用者清單' ),
        'Log'                       => array( '日志', '日誌' ),
        'Lonelypages'               => array( '孤立页面', '孤立頁面' ),
        'Longpages'                 => array( '长页面', '長頁面' ),
        'MergeHistory'              => array( '合并历史', '合併歷史' ),
        'MIMEsearch'                => array( 'MIME搜索', 'MIME搜尋', 'MIME搜寻' ),
        'Mostcategories'            => array( '最多分类页面', '最多分類頁面' ),
-       'Mostimages'                => array( '最多链接文件', '最多鏈接文件', '最多連結檔案', '最多连结档案' ),
+       'Mostimages'                => array( '最多链接文件', '最多鏈接文件', '最多連結檔案' ),
        'Mostlinked'                => array( '最多链接页面', '最多連結頁面' ),
        'Mostlinkedcategories'      => array( '最多链接分类', '最多連結分類' ),
        'Mostlinkedtemplates'       => array( '最多链接模板', '最多連結模板' ),
        'Mostrevisions'             => array( '最多修订页面', '最多修訂頁面' ),
        'Movepage'                  => array( '移动页面', '移動頁面' ),
        'Mycontributions'           => array( '我的贡献', '我的貢獻' ),
-       'Mypage'                    => array( '我的用户页', '我的用戶頁' ),
+       'MyLanguage'                => array( '我的语言', '我的語言' ),
+       'Mypage'                    => array( '我的用户页', '我的用戶頁', '我的使用者頁面' ),
        'Mytalk'                    => array( '我的讨论页', '我的討論頁' ),
-       'Newimages'                 => array( '新建文件', '新建檔案', '新建档案' ),
+       'Newimages'                 => array( '新建文件', '新建檔案' ),
        'Newpages'                  => array( '最新页面', '最新頁面' ),
+       'PasswordReset'             => array( '重置密码', '重設密碼' ),
        'Popularpages'              => array( '热点页面', '熱點頁面' ),
-       'Preferences'               => array( '参数设置', '參數設置' ),
-       'Prefixindex'               => array( '前缀索引', '前綴索引' ),
+       'Preferences'               => array( 'å\8f\82æ\95°è®¾ç½®', 'å\81\8f好設å®\9a', 'å\8f\83æ\95¸è¨­ç½®' ),
+       'Prefixindex'               => array( '前缀索引', '前綴索引', '字首索引' ),
        'Protectedpages'            => array( '已保护页面', '已保護頁面' ),
        'Protectedtitles'           => array( '已保护标题', '已保護標題' ),
        'Randompage'                => array( '随机页面', '隨機頁面' ),
-       'Recentchanges'             => array( '最近更改' ),
-       'Recentchangeslinked'       => array( '链出更改', '鏈出更改', '連出更改', '连出更改' ),
-       'Search'                    => array( '搜索', '搜尋', '搜寻' ),
+       'Recentchanges'             => array( '最近更改', '近期變動' ),
+       'Recentchangeslinked'       => array( '链出更改', '鏈出更改', '連出更改' ),
+       'Redirect'                  => array( '重定向', '重新導向' ),
+       'ResetTokens'               => array( '重置密钥', '重設金鑰' ),
+       'Revisiondelete'            => array( '版本删除' ),
+       'Search'                    => array( '搜索', '搜尋' ),
        'Shortpages'                => array( '短页面', '短頁面' ),
        'Specialpages'              => array( '特殊页面', '特殊頁面' ),
-       'Statistics'                => array( '统计信息', '統計信息', '統計资讯', '统计资讯' ),
+       'Statistics'                => array( '统计', '统计信息', '統計', '統計資訊' ),
+       'Tags'                      => array( '标签', '標籤' ),
+       'TrackingCategories'        => array( '追踪分类' ),
        'Uncategorizedcategories'   => array( '未归类分类', '未歸類分類' ),
-       'Uncategorizedimages'       => array( '未归类文件', '未歸類文件', '未歸類檔案', '未归类档案' ),
+       'Uncategorizedimages'       => array( '未归类文件', '未歸類文件', '未歸類檔案' ),
        'Uncategorizedpages'        => array( '未归类页面', '未歸類頁面' ),
        'Uncategorizedtemplates'    => array( '未归类模板', '未歸類模板' ),
        'Undelete'                  => array( '恢复被删页面', '恢復被刪頁面' ),
        'Unusedcategories'          => array( '未使用分类', '未使用分類' ),
-       'Unusedimages'              => array( '未使用文件', '未使用檔案', '未使用档案' ),
+       'Unusedimages'              => array( '未使用文件', '未使用檔案' ),
        'Unusedtemplates'           => array( '未使用模板' ),
        'Upload'                    => array( '上传文件', '上傳檔案', '上載檔案', '上载档案' ),
-       'Userlogin'                 => array( '用户登录', '用戶登錄', '用戶登入', '用户登入' ),
-       'Userlogout'                => array( '用户登出', '用戶登出' ),
-       'Userrights'                => array( '用户权限', '用戶權限' ),
-       'Version'                   => array( '版本信息', '版本資訊', '版本资讯' ),
-       'Wantedcategories'          => array( '待撰分类', '待撰分類' ),
-       'Wantedfiles'               => array( '需要的文件', '需要的檔案', '需要的档案' ),
-       'Wantedpages'               => array( '待撰页面', '待撰頁面' ),
+       'Userlogin'                 => array( '用户登录', '用戶登入', '使用者登入' ),
+       'Userlogout'                => array( '用户退出', '用戶登出', '使用者登出' ),
+       'Userrights'                => array( '用户权限', '用戶權限', '使用者權限' ),
+       'Version'                   => array( '版本' ),
+       'Wantedcategories'          => array( '需要的分类' ),
+       'Wantedfiles'               => array( '需要的文件', '需要的檔案' ),
+       'Wantedpages'               => array( '需要的页面' ),
        'Wantedtemplates'           => array( '需要的模板' ),
-       'Watchlist'                 => array( '监视列表', '監視列表' ),
-       'Whatlinkshere'             => array( '链入页面', '鏈入頁面', '連入頁面', '连入页面' ),
+       'Watchlist'                 => array( '监视列表', '監視列表', '監視清单' ),
+       'Whatlinkshere'             => array( '链入页面', '鏈入頁面', '連入頁面' ),
 );
 
index e6501c6..84d4373 100644 (file)
@@ -136,44 +136,48 @@ $specialPageAliases = array(
        'Allmessages'               => array( '所有信息' ),
        'AllMyUploads'              => array( '我上传的所有文件', '我的所有文件' ),
        'Allpages'                  => array( '所有页面' ),
+       'ApiHelp'                   => array( 'Api帮助' ),
        'Ancientpages'              => array( '最老页面' ),
        'Badtitle'                  => array( '错误标题', '无效标题' ),
        'Blankpage'                 => array( '空白页面' ),
-       'Block'                     => array( '封禁用户' ),
+       'Block'                     => array( '封禁', '封禁IP', '封禁用户', '封' ),
        'Booksources'               => array( '网络书源' ),
        'BrokenRedirects'           => array( '受损重定向' ),
        'Categories'                => array( '页面分类' ),
-       'ChangeEmail'               => array( '修改邮箱' ),
-       'ChangePassword'            => array( '修改密码' ),
-       'ComparePages'              => array( '对比页面', '比较页面' ),
+       'ChangeEmail'               => array( '修改邮箱地址' ),
+       'ChangePassword'            => array( '修改密码', '重置密码', '找回密码' ),
+       'ComparePages'              => array( '对比页面' ),
        'Confirmemail'              => array( '确认电子邮件' ),
-       'Contributions'             => array( '用户贡献' ),
+       'Contributions'             => array( '用户贡献', '贡献' ),
        'CreateAccount'             => array( '创建账户' ),
        'Deadendpages'              => array( '断链页面' ),
        'DeletedContributions'      => array( '已删除的用户贡献' ),
+       'Diff'                      => array( '编辑差异' ),
        'DoubleRedirects'           => array( '双重重定向', '两次重定向' ),
        'EditWatchlist'             => array( '编辑监视列表' ),
        'Emailuser'                 => array( '电邮联系' ),
        'ExpandTemplates'           => array( '展开模板' ),
-       'Export'                    => array( '导出页面' ),
+       'Export'                    => array( '导出页面', '导出' ),
        'Fewestrevisions'           => array( '版本最少页面', '最少修订页面' ),
        'FileDuplicateSearch'       => array( '搜索重复文件' ),
        'Filepath'                  => array( '文件路径' ),
-       'Import'                    => array( '导入页面' ),
+       'Import'                    => array( '导入页面', '导入' ),
        'Invalidateemail'           => array( '无效电邮地址' ),
        'JavaScriptTest'            => array( 'JavaScript测试' ),
-       'BlockList'                 => array( '封禁列表' ),
+       'BlockList'                 => array( '封禁列表', 'IP封禁列表' ),
        'LinkSearch'                => array( '搜索网页链接' ),
        'Listadmins'                => array( '管理员列表' ),
        'Listbots'                  => array( '机器人列表' ),
-       'Listfiles'                 => array( '文件列表' ),
+       'Listfiles'                 => array( '文件列表', '图像列表' ),
        'Listgrouprights'           => array( '用户组权限' ),
        'Listredirects'             => array( '重定向页列表' ),
+       'ListDuplicatedFiles'       => array( '重复文件列表' ),
        'Listusers'                 => array( '用户列表' ),
        'Lockdb'                    => array( '锁定数据库' ),
        'Log'                       => array( '日志' ),
        'Lonelypages'               => array( '孤立页面' ),
        'Longpages'                 => array( '长页面' ),
+       'MediaStatistics'           => array( '媒体统计' ),
        'MergeHistory'              => array( '合并历史' ),
        'MIMEsearch'                => array( 'MIME搜索' ),
        'Mostcategories'            => array( '最多分类页面' ),
@@ -181,52 +185,55 @@ $specialPageAliases = array(
        'Mostinterwikis'            => array( '最多跨wiki链接页面' ),
        'Mostlinked'                => array( '最多链接页面' ),
        'Mostlinkedcategories'      => array( '最多链接分类' ),
-       'Mostlinkedtemplates'       => array( '最多链接模板' ),
+       'Mostlinkedtemplates'       => array( '最多嵌入页面', '最多链接模板', '最多使用模板' ),
        'Mostrevisions'             => array( '最多修订页面' ),
        'Movepage'                  => array( '移动页面' ),
        'Mycontributions'           => array( '我的贡献' ),
        'MyLanguage'                => array( '我的语言' ),
        'Mypage'                    => array( '我的用户页' ),
-       'Mytalk'                    => array( '我的讨论页' ),
-       'Myuploads'                 => array( '我上传的文件' ),
-       'Newimages'                 => array( '新建文件' ),
+       'Mytalk'                    => array( '我的讨论页', '我的对话页' ),
+       'Myuploads'                 => array( '我上传的文件', '我的文件' ),
+       'Newimages'                 => array( '新建文件', '新建图像' ),
        'Newpages'                  => array( '新建页面' ),
-       'PagesWithProp'             => array( '带属性的页面' ),
+       'PagesWithProp'             => array( '带属性的页面', '基于属性的页面' ),
+       'PageLanguage'              => array( '页面语言' ),
        'PasswordReset'             => array( '重设密码' ),
-       'PermanentLink'             => array( '永久链接' ),
+       'PermanentLink'             => array( '固定链接', '永久链接' ),
        'Popularpages'              => array( '热点页面' ),
        'Preferences'               => array( '参数设置', '设置' ),
        'Prefixindex'               => array( '前缀索引' ),
        'Protectedpages'            => array( '已保护页面' ),
        'Protectedtitles'           => array( '已保护标题' ),
-       'Randompage'                => array( '随机页面' ),
+       'Randompage'                => array( '随机', '随机页面' ),
        'RandomInCategory'          => array( '分类内随机' ),
        'Randomredirect'            => array( '随机重定向', '随机重定向页' ),
        'Recentchanges'             => array( '最近更改' ),
-       'Recentchangeslinked'       => array( '相关更改', '链出更改' ),
+       'Recentchangeslinked'       => array( '最近链出更改', '相关更改' ),
        'Redirect'                  => array( '重定向' ),
        'ResetTokens'               => array( '重置权标' ),
-       'Revisiondelete'            => array( '删除或恢复修订' ),
+       'Revisiondelete'            => array( '删除修订', '恢复修订' ),
+       'RunJobs'                   => array( '运行工作' ),
        'Search'                    => array( '搜索' ),
        'Shortpages'                => array( '短页面' ),
        'Specialpages'              => array( '特殊页面' ),
        'Statistics'                => array( '统计信息' ),
        'Tags'                      => array( '标签' ),
-       'Unblock'                   => array( '解除封禁' ),
+       'TrackingCategories'        => array( '追踪分类' ),
+       'Unblock'                   => array( '解除封禁', '解封' ),
        'Uncategorizedcategories'   => array( '未分类分类' ),
-       'Uncategorizedimages'       => array( '未分类文件' ),
+       'Uncategorizedimages'       => array( '未分类文件', '未分类图像' ),
        'Uncategorizedpages'        => array( '未分类页面' ),
        'Uncategorizedtemplates'    => array( '未分类模板' ),
        'Undelete'                  => array( '恢复被删页面' ),
        'Unlockdb'                  => array( '解除数据库锁定' ),
        'Unusedcategories'          => array( '未使用分类' ),
-       'Unusedimages'              => array( '未使用文件' ),
+       'Unusedimages'              => array( '未使用文件', '未使用图像' ),
        'Unusedtemplates'           => array( '未使用模板' ),
        'Unwatchedpages'            => array( '未受监视页面' ),
        'Upload'                    => array( '上传文件' ),
        'UploadStash'               => array( '上传藏匿' ),
-       'Userlogin'                 => array( '用户登录' ),
-       'Userlogout'                => array( '用户退出' ),
+       'Userlogin'                 => array( '用户登录', '登录' ),
+       'Userlogout'                => array( '用户退出', '退出' ),
        'Userrights'                => array( '用户权限' ),
        'Version'                   => array( '版本', '版本信息' ),
        'Wantedcategories'          => array( '需要的分类', '待撰分类' ),
@@ -235,7 +242,7 @@ $specialPageAliases = array(
        'Wantedtemplates'           => array( '需要的模板' ),
        'Watchlist'                 => array( '监视列表' ),
        'Whatlinkshere'             => array( '链入页面' ),
-       'Withoutinterwiki'          => array( '无跨维基', '无跨维基链接页面' ),
+       'Withoutinterwiki'          => array( '无跨wiki', '无跨wiki链接页面' ),
 );
 
 $magicWords = array(
@@ -256,10 +263,13 @@ $magicWords = array(
        'currentyear'               => array( '1', '今年', 'CURRENTYEAR' ),
        'currenttime'               => array( '1', '当前时间', '此时', 'CURRENTTIME' ),
        'currenthour'               => array( '1', '当前小时', 'CURRENTHOUR' ),
-       'localmonth'                => array( '1', '本地月', 'LOCALMONTH', 'LOCALMONTH2' ),
+       'localmonth'                => array( '1', '本地月', '本地月2', 'LOCALMONTH', 'LOCALMONTH2' ),
+       'localmonth1'               => array( '1', '本地月1', 'LOCALMONTH1' ),
        'localmonthname'            => array( '1', '本地月份名', 'LOCALMONTHNAME' ),
        'localmonthnamegen'         => array( '1', '本地月历', 'LOCALMONTHNAMEGEN' ),
+       'localmonthabbrev'          => array( '1', '本地月缩写', 'LOCALMONTHABBREV' ),
        'localday'                  => array( '1', '本地日', 'LOCALDAY' ),
+       'localday2'                 => array( '1', '本地日2', 'LOCALDAY2' ),
        'localdayname'              => array( '1', '本地日名', 'LOCALDAYNAME' ),
        'localyear'                 => array( '1', '本地年', 'LOCALYEAR' ),
        'localtime'                 => array( '1', '本地时间', 'LOCALTIME' ),
@@ -270,20 +280,27 @@ $magicWords = array(
        'numberofusers'             => array( '1', '用户数', 'NUMBEROFUSERS' ),
        'numberofactiveusers'       => array( '1', '活跃用户数', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'             => array( '1', '编辑数', 'NUMBEROFEDITS' ),
-       'numberofviews'             => array( '1', '访问数', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', '页名', '页面名', '页面名称', 'PAGENAME' ),
-       'pagenamee'                 => array( '1', '页名等同', '页面名等同', '页面名E', 'PAGENAMEE' ),
+       'pagenamee'                 => array( '1', '页面名等同', '页面名称等同', 'PAGENAMEE' ),
        'namespace'                 => array( '1', '名字空间', 'NAMESPACE' ),
-       'namespacee'                => array( '1', '名字空间等同', '名字空间E', 'NAMESPACEE' ),
+       'namespacee'                => array( '1', '名字空间等同', 'NAMESPACEE' ),
        'namespacenumber'           => array( '1', '名字空间编号', 'NAMESPACENUMBER' ),
        'talkspace'                 => array( '1', '讨论空间', '讨论名字空间', 'TALKSPACE' ),
-       'talkspacee'                => array( '1', '讨论空间等同', '讨论名字空间E', 'TALKSPACEE' ),
-       'fullpagename'              => array( '1', '页面全名', '完整页面名', 'FULLPAGENAME' ),
-       'fullpagenamee'             => array( '1', '完整页面名E', 'FULLPAGENAMEE' ),
-       'subpagename'               => array( '1', '子页面名', 'SUBPAGENAME' ),
-       'subpagenamee'              => array( '1', '子页面名等同', '子页面名E', 'SUBPAGENAMEE' ),
-       'talkpagename'              => array( '1', '讨论页面名', 'TALKPAGENAME' ),
-       'talkpagenamee'             => array( '1', '讨论页面名等同', '讨论页面名E', 'TALKPAGENAMEE' ),
+       'talkspacee'                => array( '1', '讨论空间等同', '讨论名字空间等同', 'TALKSPACEE' ),
+       'subjectspace'              => array( '1', '主名字空间', '条目名字空间', 'SUBJECTSPACE', 'ARTICLESPACE' ),
+       'subjectspacee'             => array( '1', '主名字空间等同', '条目名字空间等同', 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
+       'fullpagename'              => array( '1', '页面全称', '完整页面名称', 'FULLPAGENAME' ),
+       'fullpagenamee'             => array( '1', '完整页面名称等同', 'FULLPAGENAMEE' ),
+       'subpagename'               => array( '1', '子页面名称', 'SUBPAGENAME' ),
+       'subpagenamee'              => array( '1', '子页面名称等同', 'SUBPAGENAMEE' ),
+       'rootpagename'              => array( '1', '根页面名称', 'ROOTPAGENAME' ),
+       'rootpagenamee'             => array( '1', '根页面名称等同', 'ROOTPAGENAMEE' ),
+       'basepagename'              => array( '1', '基础页面名称', 'BASEPAGENAME' ),
+       'basepagenamee'             => array( '1', '基础页面名称等同', 'BASEPAGENAMEE' ),
+       'talkpagename'              => array( '1', '讨论页面名称', '对话页面名称', 'TALKPAGENAME' ),
+       'talkpagenamee'             => array( '1', '讨论页面名称等同', '对话页面名称等同', 'TALKPAGENAMEE' ),
+       'subjectpagename'           => array( '1', '主名字空间页面名称', '条目页面名称', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
+       'subjectpagenamee'          => array( '1', '主名字空间页面名称等同', '条目页面名称等同', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
        'subst'                     => array( '0', '替代:', 'SUBST:' ),
        'safesubst'                 => array( '0', '安全替代:', 'SAFESUBST:' ),
        'img_thumbnail'             => array( '1', '缩略图', 'thumbnail', 'thumb' ),
@@ -295,15 +312,25 @@ $magicWords = array(
        'img_center'                => array( '1', '居中', 'center', 'centre' ),
        'img_framed'                => array( '1', '有框', 'framed', 'enframed', 'frame' ),
        'img_frameless'             => array( '1', '无框', 'frameless' ),
+       'img_lang'                  => array( '1', '语言=$1', 'lang=$1' ),
        'img_page'                  => array( '1', '页数=$1', '$1页', 'page=$1', 'page $1' ),
+       'img_upright'               => array( '1', '右上', '右上=$1', '右上$1', 'upright', 'upright=$1', 'upright $1' ),
        'img_border'                => array( '1', '边框', 'border' ),
+       'img_baseline'              => array( '1', '基线', 'baseline' ),
+       'img_sub'                   => array( '1', '子', 'sub' ),
+       'img_super'                 => array( '1', '超', 'super', 'sup' ),
+       'img_top'                   => array( '1', '顶部', 'top' ),
+       'img_text_top'              => array( '1', '文字顶部', 'text-top' ),
+       'img_middle'                => array( '1', '中间', 'middle' ),
+       'img_bottom'                => array( '1', '底部', 'bottom' ),
+       'img_text_bottom'           => array( '1', '文字底部', 'text-bottom' ),
        'img_link'                  => array( '1', '链接=$1', 'link=$1' ),
        'img_alt'                   => array( '1', '替代=$1', '替代文本=$1', 'alt=$1' ),
        'img_class'                 => array( '1', '类=$1', 'class=$1' ),
        'int'                       => array( '0', '界面:', 'INT:' ),
        'sitename'                  => array( '1', '站点名称', 'SITENAME' ),
-       'ns'                        => array( '0', '名空间:', 'NS:' ),
-       'nse'                       => array( '0', '名空间E:', 'NSE:' ),
+       'ns'                        => array( '0', '名空间:', 'NS:' ),
+       'nse'                       => array( '0', '名空间E:', 'NSE:' ),
        'localurl'                  => array( '0', '本地URL:', 'LOCALURL:' ),
        'localurle'                 => array( '0', '本地URLE:', 'LOCALURLE:' ),
        'articlepath'               => array( '0', '条目路径', 'ARTICLEPATH' ),
@@ -313,17 +340,32 @@ $magicWords = array(
        'scriptpath'                => array( '0', '脚本路径', 'SCRIPTPATH' ),
        'stylepath'                 => array( '0', '样式路径', 'STYLEPATH' ),
        'grammar'                   => array( '0', '语法:', 'GRAMMAR:' ),
-       'gender'                    => array( '0', '性:', '性别:', 'GENDER:' ),
+       'gender'                    => array( '0', '性别:', 'GENDER:' ),
        'notitleconvert'            => array( '0', '__不转换标题__', '__NOTITLECONVERT__', '__NOTC__' ),
        'nocontentconvert'          => array( '0', '__不转换内容__', '__NOCONTENTCONVERT__', '__NOCC__' ),
        'currentweek'               => array( '1', '本周', 'CURRENTWEEK' ),
+       'currentdow'                => array( '1', '当前DOW', 'CURRENTDOW' ),
+       'localweek'                 => array( '1', '本地周', 'LOCALWEEK' ),
+       'localdow'                  => array( '1', '本地DOW', 'LOCALDOW' ),
+       'revisionid'                => array( '1', '修订ID', 'REVISIONID' ),
+       'revisionday'               => array( '1', '修订日', 'REVISIONDAY' ),
+       'revisionday2'              => array( '1', '修订日2', 'REVISIONDAY2' ),
+       'revisionmonth'             => array( '1', '修订月', 'REVISIONMONTH' ),
+       'revisionmonth1'            => array( '1', '修订月1', 'REVISIONMONTH1' ),
+       'revisionyear'              => array( '1', '修订年', 'REVISIONYEAR' ),
+       'revisiontimestamp'         => array( '1', '修订时间戳', 'REVISIONTIMESTAMP' ),
+       'revisionuser'              => array( '1', '修订用户', 'REVISIONUSER' ),
+       'revisionsize'              => array( '1', '修订大小', 'REVISIONSIZE' ),
        'plural'                    => array( '0', '复数:', 'PLURAL:' ),
        'fullurl'                   => array( '0', '完整URL:', 'FULLURL:' ),
-       'fullurle'                  => array( '0', '完整URL等同:', '完整URLE:', 'FULLURLE:' ),
+       'fullurle'                  => array( '0', '完整URL等同:', 'FULLURLE:' ),
+       'canonicalurl'              => array( '0', '规范URL:', 'CANONICALURL:' ),
+       'canonicalurle'             => array( '0', '规范URL等同:', 'CANONICALURLE:' ),
        'lcfirst'                   => array( '0', '小写首字:', 'LCFIRST:' ),
        'ucfirst'                   => array( '0', '大写首字:', 'UCFIRST:' ),
        'lc'                        => array( '0', '小写:', 'LC:' ),
        'uc'                        => array( '0', '大写:', 'UC:' ),
+       'raw'                       => array( '0', '原始:', 'RAW:' ),
        'displaytitle'              => array( '1', '显示标题', 'DISPLAYTITLE' ),
        'newsectionlink'            => array( '1', '__新段落链接__', '__NEWSECTIONLINK__' ),
        'nonewsectionlink'          => array( '1', '__无新段落链接__', '__NONEWSECTIONLINK__' ),
@@ -341,21 +383,30 @@ $magicWords = array(
        'padleft'                   => array( '0', '左填充', 'PADLEFT' ),
        'padright'                  => array( '0', '右填充', 'PADRIGHT' ),
        'special'                   => array( '0', '特殊', 'special' ),
-       'speciale'                  => array( '0', '特殊等同', '特殊e', 'speciale' ),
+       'speciale'                  => array( '0', '特殊等同', 'speciale' ),
        'defaultsort'               => array( '1', '默认排序:', '默认排序关键字:', '默认分类排序:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                  => array( '0', '文件路径:', 'FILEPATH:' ),
        'tag'                       => array( '0', '标记', 'tag' ),
        'hiddencat'                 => array( '1', '__隐藏分类__', '__HIDDENCAT__' ),
-       'pagesincategory'           => array( '1', '分类中页数', '分类中页面数', 'PAGESINCATEGORY', 'PAGESINCAT' ),
+       'pagesincategory'           => array( '1', '分类中页面数', 'PAGESINCATEGORY', 'PAGESINCAT' ),
        'pagesize'                  => array( '1', '页面大小', 'PAGESIZE' ),
        'index'                     => array( '1', '__索引__', '__INDEX__' ),
-       'noindex'                   => array( '1', '__索引__', '__NOINDEX__' ),
+       'noindex'                   => array( '1', '__索引__', '__NOINDEX__' ),
        'numberingroup'             => array( '1', '组中用户数', 'NUMBERINGROUP', 'NUMINGROUP' ),
        'staticredirect'            => array( '1', '__静态重定向__', '__STATICREDIRECT__' ),
        'protectionlevel'           => array( '1', '保护级别', 'PROTECTIONLEVEL' ),
+       'cascadingsources'          => array( '1', '级联来源', 'CASCADINGSOURCES' ),
        'formatdate'                => array( '0', '格式化日期', '日期格式化', 'formatdate', 'dateformat' ),
+       'url_path'                  => array( '0', '路径', 'PATH' ),
+       'url_query'                 => array( '0', '查询', 'QUERY' ),
        'defaultsort_noerror'       => array( '0', '不报错', 'noerror' ),
        'defaultsort_noreplace'     => array( '0', '不替换', 'noreplace' ),
+       'displaytitle_noerror'      => array( '0', '无错误', 'noerror' ),
+       'displaytitle_noreplace'    => array( '0', '无代替', 'noreplace' ),
+       'pagesincategory_all'       => array( '0', '所有', 'all' ),
+       'pagesincategory_pages'     => array( '0', '页面', 'pages' ),
+       'pagesincategory_subcats'   => array( '0', '子分类', 'subcats' ),
+       'pagesincategory_files'     => array( '0', '文件', 'files' ),
 );
 
 $linkTrail = '/^()(.*)$/sD';
index 9b7dc9e..6e5dea1 100644 (file)
@@ -116,122 +116,144 @@ $namespaceAliases = array(
 );
 
 $specialPageAliases = array(
-       'Activeusers'               => array( '活躍用戶' ),
-       'Allmessages'               => array( '所有息' ),
-       'AllMyUploads'              => array( 'æ\89\80æ\9c\89æ\9c¬äººä¸\8aè¼\89', 'æ\89\80æ\9c\89æ\9c¬äººæ\96\87件' ),
+       'Activeusers'               => array( '活躍使用者' ),
+       'Allmessages'               => array( '所有息' ),
+       'AllMyUploads'              => array( 'æ\89\80æ\9c\89æ\88\91ç\9a\84ä¸\8aå\82³', 'æ\89\80æ\9c\89æ\88\91ç\9a\84æª\94æ¡\88', 'æ\89\80æ\9c\89æ\9c¬äººä¸\8aè¼\89', 'æ\89\80æ\9c\89æ\9c¬äººæª\94æ¡\88' ),
        'Allpages'                  => array( '所有頁面' ),
-       'Ancientpages'              => array( '最早頁面' ),
+       'ApiHelp'                   => array( 'Api使用說明' ),
+       'Ancientpages'              => array( '最舊頁面', '最早頁面' ),
        'Badtitle'                  => array( '無效標題' ),
        'Blankpage'                 => array( '空白頁面' ),
-       'Block'                     => array( '查封用戶' ),
-       'Booksources'               => array( '網絡書源' ),
-       'BrokenRedirects'           => array( '損壞的重定向頁' ),
-       'Categories'                => array( '頁面分類' ),
-       'ChangeEmail'               => array( '修改郵箱' ),
-       'ChangePassword'            => array( '修改密碼' ),
+       'Block'                     => array( '封鎖', '封鎖IP', '封鎖使用者', '封禁', '封禁IP', '封禁使用者' ),
+       'Booksources'               => array( '書籍來源', '網路書源' ),
+       'BrokenRedirects'           => array( '損壞的重新導向', '損壞的重定向頁' ),
+       'Categories'                => array( '分類', '頁面分類' ),
+       'ChangeEmail'               => array( '更改信箱', '修改郵箱' ),
+       'ChangePassword'            => array( '更改密碼', '修改密碼', '密碼重設' ),
        'ComparePages'              => array( '頁面比較' ),
-       'Confirmemail'              => array( '確認電子郵件' ),
-       'Contributions'             => array( '用戶貢獻' ),
-       'CreateAccount'             => array( '創建賬戶' ),
-       'Deadendpages'              => array( '斷鏈頁面' ),
-       'DeletedContributions'      => array( '已刪除的用戶貢獻' ),
-       'DoubleRedirects'           => array( '雙重重定向頁面' ),
-       'EditWatchlist'             => array( '編輯監視列表' ),
-       'Emailuser'                 => array( '電郵用戶' ),
+       'Confirmemail'              => array( '確認信箱', '確認電郵' ),
+       'Contributions'             => array( '使用者貢獻', '用戶貢獻' ),
+       'CreateAccount'             => array( '建立帳號', '建立帳戶' ),
+       'Deadendpages'              => array( '無連結頁面', '斷鏈頁面' ),
+       'DeletedContributions'      => array( '已刪除的貢獻', '已刪除的用戶貢獻' ),
+       'Diff'                      => array( '編輯差異' ),
+       'DoubleRedirects'           => array( '雙重的重新導向', '雙重重定向頁面' ),
+       'EditWatchlist'             => array( '編輯監視清單', '編輯監視列表' ),
+       'Emailuser'                 => array( '寄信給使用者', '寄信', '電郵使用者' ),
        'ExpandTemplates'           => array( '展開模板' ),
-       'Export'                    => array( 'å°\8e出頁面' ),
+       'Export'                    => array( 'å\8c¯å\87º', 'å\8c¯出頁面' ),
        'Fewestrevisions'           => array( '最少修訂頁面' ),
-       'FileDuplicateSearch'       => array( '搜索重複文件' ),
-       'Filepath'                  => array( 'æ\96\87件路徑' ),
-       'Import'                    => array( 'å°\8e入頁面' ),
-       'Invalidateemail'           => array( '不可識別的電郵地址' ),
+       'FileDuplicateSearch'       => array( '重複檔案搜尋', '搜尋重複檔案' ),
+       'Filepath'                  => array( 'æª\94æ¡\88路徑' ),
+       'Import'                    => array( 'å\8c¯å\85¥', 'å\8c¯入頁面' ),
+       'Invalidateemail'           => array( '無效的信箱' ),
        'JavaScriptTest'            => array( 'JavaScript測試' ),
-       'BlockList'                 => array( '封禁列表' ),
-       'LinkSearch'                => array( '搜索網頁鏈接' ),
-       'Listadmins'                => array( '管理員列表' ),
-       'Listbots'                  => array( '機器人列表' ),
-       'Listfiles'                 => array( '文件列表' ),
-       'Listgrouprights'           => array( '群組權限' ),
-       'Listredirects'             => array( '重定向頁面列表' ),
-       'Listusers'                 => array( '用戶列表' ),
-       'Lockdb'                    => array( '鎖定數據庫' ),
+       'BlockList'                 => array( '封鎖清單', 'IP封鎖清單', '封禁列表', 'IP封禁列表' ),
+       'LinkSearch'                => array( '連結搜尋', '搜尋網頁連結' ),
+       'Listadmins'                => array( '管理員清單', '管理員列表' ),
+       'Listbots'                  => array( '機器人清單', '機械人列表' ),
+       'Listfiles'                 => array( '檔案清單', '圖片清單', '檔案列表', '圖像列表' ),
+       'Listgrouprights'           => array( '群組權限清單', '使用者群組權限', '群組權限列表' ),
+       'Listredirects'             => array( '重新導向清單', '重定向頁面列表' ),
+       'ListDuplicatedFiles'       => array( '重複檔案清單', '重複檔案列表' ),
+       'Listusers'                 => array( '使用者清單', '使用者列表' ),
+       'Lockdb'                    => array( '鎖定資料庫', '鎖定數據庫' ),
        'Log'                       => array( '日誌' ),
        'Lonelypages'               => array( '孤立頁面' ),
-       'Longpages'                 => array( '長頁面' ),
+       'Longpages'                 => array( '過長的頁面', '長頁面' ),
+       'MediaStatistics'           => array( '媒體統計' ),
        'MergeHistory'              => array( '合併歷史' ),
-       'MIMEsearch'                => array( 'MIME搜' ),
-       'Mostcategories'            => array( '最多分類頁面' ),
-       'Mostimages'                => array( '最多鏈接文件' ),
-       'Mostinterwikis'            => array( '最多跨維基連結' ),
-       'Mostlinked'                => array( '最多鏈接頁面' ),
-       'Mostlinkedcategories'      => array( '最多鏈接分類' ),
-       'Mostlinkedtemplates'       => array( '最多鏈接模板' ),
-       'Mostrevisions'             => array( '最多修訂頁面' ),
+       'MIMEsearch'                => array( 'MIME搜' ),
+       'Mostcategories'            => array( '最多分類的頁面', '最多分類頁面' ),
+       'Mostimages'                => array( '被連結最多的檔案', '最多連結檔案' ),
+       'Mostinterwikis'            => array( '最多_Interwiki_連結的頁面', '最多跨wiki連結' ),
+       'Mostlinked'                => array( '被連結最多的頁面', '最多連結頁面' ),
+       'Mostlinkedcategories'      => array( '被連結最多的分類', '最多連結分類' ),
+       'Mostlinkedtemplates'       => array( '被引用最多的頁面', '被連結最多的模板', '被使用最多的模板' ),
+       'Mostrevisions'             => array( '最多修訂的頁面', '最多修訂頁面' ),
        'Movepage'                  => array( '移動頁面' ),
        'Mycontributions'           => array( '我的貢獻' ),
        'MyLanguage'                => array( '我的語言' ),
-       'Mypage'                    => array( '我的用戶頁' ),
-       'Mytalk'                    => array( '我的討論頁' ),
-       'Myuploads'                 => array( '我的上傳' ),
-       'Newimages'                 => array( '新建文件' ),
-       'Newpages'                  => array( '新頁面' ),
-       'PagesWithProp'             => array( '帶屬性頁面' ),
+       'Mypage'                    => array( '我的使用者頁面', '我的用戶頁' ),
+       'Mytalk'                    => array( '我的對話', '我的討論頁' ),
+       'Myuploads'                 => array( '我的上傳', '我的上載', '我的檔案' ),
+       'Newimages'                 => array( '新增檔案', '新增圖片' ),
+       'Newpages'                  => array( '新增頁面', '新頁面' ),
+       'PagesWithProp'             => array( '擁有屬性的頁面', '帶屬性頁面' ),
+       'PageLanguage'              => array( '頁面語言' ),
        'PasswordReset'             => array( '重設密碼' ),
-       'PermanentLink'             => array( '永久連結' ),
-       'Popularpages'              => array( '熱點頁面' ),
-       'Preferences'               => array( 'å\8f\83æ\95¸è¨­ç½®' ),
-       'Prefixindex'               => array( '前綴索引' ),
-       'Protectedpages'            => array( '已保護頁面' ),
-       'Protectedtitles'           => array( '已保護標題' ),
+       'PermanentLink'             => array( '靜態連結', '永久連結' ),
+       'Popularpages'              => array( 'ç\86±é\96\80é \81é\9d¢', 'ç\86±é»\9eé \81é\9d¢' ),
+       'Preferences'               => array( 'å\81\8f好設å®\9a' ),
+       'Prefixindex'               => array( 'å­\97é¦\96ç´¢å¼\95', 'å\89\8d綴索å¼\95' ),
+       'Protectedpages'            => array( 'å\8f\97ä¿\9dè­·é \81é\9d¢', 'å·²ä¿\9dè­·é \81é\9d¢' ),
+       'Protectedtitles'           => array( 'å\8f\97ä¿\9dè­·æ¨\99é¡\8c', 'å·²ä¿\9dè­·æ¨\99é¡\8c' ),
        'Randompage'                => array( '隨機頁面' ),
-       'Randomredirect'            => array( '隨機重定向頁面' ),
-       'Recentchanges'             => array( '最近更改' ),
-       'Recentchangeslinked'       => array( '鏈出更改' ),
-       'Redirect'                  => array( '重定向' ),
-       'ResetTokens'               => array( '覆寫令牌' ),
-       'Revisiondelete'            => array( '刪除或恢復版本' ),
-       'Search'                    => array( '搜索' ),
-       'Shortpages'                => array( '短頁面' ),
+       'RandomInCategory'          => array( '隨機分類頁面', '於分類中隨機' ),
+       'Randomredirect'            => array( '隨機重新導向', '隨機重定向頁面' ),
+       'Recentchanges'             => array( '最近變更', '最近更改' ),
+       'Recentchangeslinked'       => array( '已連結的最近變更', '相關變更', '連出更改' ),
+       'Redirect'                  => array( '重新導向', '重定向' ),
+       'ResetTokens'               => array( '重設密鑰', '覆寫令牌' ),
+       'Revisiondelete'            => array( '修訂刪除', '刪除或恢復版本' ),
+       'RunJobs'                   => array( '執行作業', '運行工作' ),
+       'Search'                    => array( '搜尋' ),
+       'Shortpages'                => array( '過短的頁面', '短頁面' ),
        'Specialpages'              => array( '特殊頁面' ),
-       'Statistics'                => array( '統計信息' ),
+       'Statistics'                => array( '統計資訊' ),
        'Tags'                      => array( '標籤' ),
-       'Unblock'                   => array( '解除封禁' ),
-       'Uncategorizedcategories'   => array( '未歸類分類' ),
-       'Uncategorizedimages'       => array( '未歸類文件' ),
-       'Uncategorizedpages'        => array( '未歸類頁面' ),
-       'Uncategorizedtemplates'    => array( '未歸類模板' ),
-       'Undelete'                  => array( '恢復被刪頁面' ),
-       'Unlockdb'                  => array( '解除數據庫鎖定' ),
-       'Unusedcategories'          => array( '未使用分類' ),
-       'Unusedimages'              => array( '未使用文件' ),
-       'Unusedtemplates'           => array( '未使用模板' ),
-       'Unwatchedpages'            => array( '未被監視的頁面' ),
-       'Upload'                    => array( '上傳文件' ),
-       'UploadStash'               => array( '上傳藏匿' ),
-       'Userlogin'                 => array( '用戶登錄' ),
-       'Userlogout'                => array( '用戶登出' ),
-       'Userrights'                => array( '用戶權限' ),
-       'Version'                   => array( '版本信息' ),
-       'Wantedcategories'          => array( '待撰分類' ),
-       'Wantedfiles'               => array( '需要的文件' ),
-       'Wantedpages'               => array( '待撰頁面' ),
+       'TrackingCategories'        => array( '追蹤分類', '跟蹤分類' ),
+       'Unblock'                   => array( '解除封鎖', '解除封禁', '解禁' ),
+       'Uncategorizedcategories'   => array( '未分類的分類', '未歸類分類' ),
+       'Uncategorizedimages'       => array( '未分類的檔案', '未分類的圖片', '未歸類檔案' ),
+       'Uncategorizedpages'        => array( '未分類的頁面', '未歸類頁面' ),
+       'Uncategorizedtemplates'    => array( '未分類的模板', '未歸類模板' ),
+       'Undelete'                  => array( '取消刪除' ),
+       'Unlockdb'                  => array( '解除鎖定資料庫', '解除資料庫鎖定' ),
+       'Unusedcategories'          => array( '未使用的分類', '未使用分類' ),
+       'Unusedimages'              => array( '未使用的檔案', '未使用檔案' ),
+       'Unusedtemplates'           => array( '未使用的模板', '未使用模板' ),
+       'Unwatchedpages'            => array( '未監視的頁面', '未被監視的頁面' ),
+       'Upload'                    => array( '上傳', '上載檔案' ),
+       'UploadStash'               => array( '上傳儲藏庫' ),
+       'Userlogin'                 => array( '使用者登入' ),
+       'Userlogout'                => array( '使用者登出' ),
+       'Userrights'                => array( '使用者權限' ),
+       'Version'                   => array( '版本', '版本資訊' ),
+       'Wantedcategories'          => array( '需要的分類', '待撰分類' ),
+       'Wantedfiles'               => array( '需要的檔案' ),
+       'Wantedpages'               => array( '需要的頁面', '待撰頁面' ),
        'Wantedtemplates'           => array( '需要的模板' ),
-       'Watchlist'                 => array( '監視列表' ),
-       'Whatlinkshere'             => array( 'é\8f\88入頁面' ),
-       'Withoutinterwiki'          => array( '沒有跨語言鏈接的頁面' ),
+       'Watchlist'                 => array( '監視清單' ),
+       'Whatlinkshere'             => array( 'é\80£入頁面' ),
+       'Withoutinterwiki'          => array( '無跨wiki連結頁面', '無跨維基連結頁面' ),
 );
 
 $magicWords = array(
-       'redirect'                  => array( '0', '#重定向', '#REDIRECT' ),
+       'redirect'                  => array( '0', '#重新導向', '#重定向', '#REDIRECT' ),
        'notoc'                     => array( '0', '__無目錄__', '__无目录__', '__NOTOC__' ),
        'nogallery'                 => array( '0', '__無圖庫__', '__无图库__', '__NOGALLERY__' ),
        'forcetoc'                  => array( '0', '__強制目錄__', '__强显目录__', '__FORCETOC__' ),
        'toc'                       => array( '0', '__目錄__', '__目录__', '__TOC__' ),
-       'noeditsection'             => array( '0', '__無段落編輯__', '__无段落编辑__', '__NOEDITSECTION__' ),
-       'currentmonth'              => array( '1', '本月', 'CURRENTMONTH', 'CURRENTMONTH2' ),
-       'currentmonthabbrev'        => array( '1', 'æ\9c¬æ\9c\88簡稱', '本月简称', 'CURRENTMONTHABBREV' ),
+       'noeditsection'             => array( '0', '__無段落編輯__', '__无编辑段落__', '__无段落编辑__', '__NOEDITSECTION__' ),
+       'currentmonth'              => array( '1', '本月', '本月2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
+       'currentmonthabbrev'        => array( '1', 'æ\9c¬æ\9c\88縮寫', '本月简称', 'CURRENTMONTHABBREV' ),
        'currentday'                => array( '1', '今天', 'CURRENTDAY' ),
-       'currenttime'               => array( '1', '當前時間', '此時', '此时', '当前时间', 'CURRENTTIME' ),
+       'currenttime'               => array( '1', '目前時間', '当前时间', '此时', 'CURRENTTIME' ),
+       'numberofpages'             => array( '1', '頁面數', '页面数', 'NUMBEROFPAGES' ),
+       'numberofarticles'          => array( '1', '文章數', '条目数', 'NUMBEROFARTICLES' ),
+       'numberoffiles'             => array( '1', '檔案數', '文件数', 'NUMBEROFFILES' ),
+       'numberofusers'             => array( '1', '使用者人數量', '用户数', 'NUMBEROFUSERS' ),
+       'numberofactiveusers'       => array( '1', '活躍使用者人數', '活跃用户数', 'NUMBEROFACTIVEUSERS' ),
+       'pagename'                  => array( '1', '頁面名稱', '页名', '页面名', '页面名称', 'PAGENAME' ),
+       'namespace'                 => array( '1', '命名空間', '名字空间', 'NAMESPACE' ),
+       'namespacenumber'           => array( '1', '命名空間數', '名字空间编号', 'NAMESPACENUMBER' ),
+       'talkspace'                 => array( '1', '對話空間', '讨论空间', '讨论名字空间', 'TALKSPACE' ),
+       'rootpagename'              => array( '1', '根頁面名稱', 'ROOTPAGENAME' ),
+       'rootpagenamee'             => array( '1', '根頁面名稱E', 'ROOTPAGENAMEE' ),
+       'msg'                       => array( '0', '訊息:', 'MSG:' ),
+       'subst'                     => array( '0', '替換:', '替代:', 'SUBST:' ),
+       'safesubst'                 => array( '0', '安全替換:', '安全替代:', 'SAFESUBST:' ),
        'img_thumbnail'             => array( '1', '縮圖', '缩略图', 'thumbnail', 'thumb' ),
        'img_manualthumb'           => array( '1', '縮圖=$1', '缩略图=$1', 'thumbnail=$1', 'thumb=$1' ),
        'img_right'                 => array( '1', '右', 'right' ),
@@ -241,24 +263,41 @@ $magicWords = array(
        'img_center'                => array( '1', '置中', '居中', 'center', 'centre' ),
        'img_framed'                => array( '1', '有框', 'framed', 'enframed', 'frame' ),
        'img_frameless'             => array( '1', '無框', '无框', 'frameless' ),
+       'img_lang'                  => array( '1', '語言=$1', 'lang=$1' ),
        'img_page'                  => array( '1', '頁=$1', '$1頁', '页数=$1', '$1页', 'page=$1', 'page $1' ),
+       'img_border'                => array( '1', '邊框', '边框', 'border' ),
+       'img_sub'                   => array( '1', '下標', 'sub' ),
+       'img_super'                 => array( '1', '上標', 'super', 'sup' ),
+       'img_top'                   => array( '1', '垂直置頂', 'top' ),
+       'img_text_top'              => array( '1', '文字置頂', 'text-top' ),
+       'img_middle'                => array( '1', '垂直置中', 'middle' ),
+       'img_bottom'                => array( '1', '垂直置底', 'bottom' ),
+       'img_text_bottom'           => array( '1', '文字置底', 'text-bottom' ),
        'img_link'                  => array( '1', '連結=$1', '链接=$1', 'link=$1' ),
+       'img_alt'                   => array( '1', '替代文字', '替代=$1', '替代文本=$1', 'alt=$1' ),
+       'img_class'                 => array( '1', '類別=$1', '类=$1', 'class=$1' ),
        'sitename'                  => array( '1', '網站名稱', '站点名称', 'SITENAME' ),
-       'ns'                        => array( '0', 'å\90\8då­\97空間:', '名字空间:', 'NS:' ),
-       'nse'                       => array( '0', 'å\90\8då­\97空間E:', '名字空间E:', 'NSE:' ),
+       'ns'                        => array( '0', 'å\91½å\90\8d空間:', '名字空间:', 'NS:' ),
+       'nse'                       => array( '0', 'å\91½å\90\8d空間E:', '名字空间E:', 'NSE:' ),
        'localurl'                  => array( '0', '本地URL:', 'LOCALURL:' ),
        'localurle'                 => array( '0', '本地URLE:', 'LOCALURLE:' ),
        'pageid'                    => array( '0', '頁面ID', '页面ID', 'PAGEID' ),
        'server'                    => array( '0', '伺服器', '服务器', 'SERVER' ),
        'servername'                => array( '0', '伺服器名稱', '服务器名', 'SERVERNAME' ),
-       'gender'                    => array( '0', '性別:', '性别:', 'GENDER:' ),
+       'gender'                    => array( '0', '性別:', '性:', '性别:', 'GENDER:' ),
        'notitleconvert'            => array( '0', '__不轉換標題__', '__不转换标题__', '__NOTITLECONVERT__', '__NOTC__' ),
        'nocontentconvert'          => array( '0', '__不轉換內容__', '__不转换内容__', '__NOCONTENTCONVERT__', '__NOCC__' ),
+       'revisionuser'              => array( '1', '修訂使用者', 'REVISIONUSER' ),
        'displaytitle'              => array( '1', '顯示標題', '显示标题', 'DISPLAYTITLE' ),
-       'currentversion'            => array( '1', 'ç\95前版本', '当前版本', 'CURRENTVERSION' ),
+       'currentversion'            => array( '1', 'ç\9b®前版本', '当前版本', 'CURRENTVERSION' ),
        'language'                  => array( '0', '#語言:', '#语言:', '#LANGUAGE:' ),
+       'contentlanguage'           => array( '1', '內容語言', '内容语言', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
+       'numberofadmins'            => array( '1', '管理員數', '管理员数', 'NUMBEROFADMINS' ),
        'hiddencat'                 => array( '1', '__隱藏分類__', '__隐藏分类__', '__HIDDENCAT__' ),
-       'staticredirect'            => array( '1', '__靜態重定向__', '__静态重定向__', '__STATICREDIRECT__' ),
+       'staticredirect'            => array( '1', '__靜態重新導向__', '__静态重定向__', '__STATICREDIRECT__' ),
+       'url_query'                 => array( '0', '查詢', 'QUERY' ),
+       'pagesincategory_pages'     => array( '0', '頁面', 'pages' ),
+       'pagesincategory_files'     => array( '0', '檔案', 'files' ),
 );
 
 $bookstoreList = array(
index 067f7dd..2a79ea9 100644 (file)
@@ -39,22 +39,28 @@ $namespaceAliases = array(
 );
 
 $specialPageAliases = array(
+       'Allmessages'               => array( '所有訊息' ),
        'Ancientpages'              => array( '最舊頁面' ),
-       'Block'                     => array( '查封用戶' ),
-       'FileDuplicateSearch'       => array( '搜索重復文件' ),
-       'Invalidateemail'           => array( '無法識別的電郵地址' ),
-       'LinkSearch'                => array( '搜索網頁鏈接' ),
-       'Listredirects'             => array( '重定向頁面列表' ),
-       'Lockdb'                    => array( '鎖定數據庫' ),
-       'MIMEsearch'                => array( 'MIME搜索' ),
-       'Randomredirect'            => array( '隨機重定向頁面' ),
+       'Block'                     => array( '封鎖使用者' ),
+       'CreateAccount'             => array( '建立帳號' ),
+       'FileDuplicateSearch'       => array( '搜尋重復檔案' ),
+       'Invalidateemail'           => array( '無法識別的電郵位址' ),
+       'LinkSearch'                => array( '搜尋網頁連結' ),
+       'Listfiles'                 => array( '檔案清單' ),
+       'Listredirects'             => array( '重新導向頁面清單' ),
+       'Lockdb'                    => array( '鎖定資料庫' ),
+       'MIMEsearch'                => array( 'MIME搜尋' ),
+       'Newimages'                 => array( '新增檔案' ),
+       'Randomredirect'            => array( '隨機重新導向頁面' ),
        'Recentchanges'             => array( '近期變動' ),
        'Revisiondelete'            => array( '刪除或恢復版本' ),
        'Unblock'                   => array( '解除封鎖' ),
-       'Unlockdb'                  => array( '解除數據庫鎖定' ),
+       'Unlockdb'                  => array( '解除資料庫鎖定' ),
        'Unwatchedpages'            => array( '未被監視的頁面' ),
-       'Userrights'                => array( '用戶權限' ),
-       'Withoutinterwiki'          => array( '沒有跨語言鏈接的頁面' ),
+       'Userrights'                => array( '使用者權限' ),
+       'Watchlist'                 => array( '監視清單' ),
+       'Whatlinkshere'             => array( '連入頁面' ),
+       'Withoutinterwiki'          => array( '沒有跨語言連結的頁面' ),
 );
 
 $datePreferences = array(
index 4b07d2f..9b98b20 100644 (file)
@@ -604,7 +604,7 @@ abstract class Maintenance {
                global $wgProfiler;
 
                $output = $this->getOption( 'profiler' );
-               if ( $output && is_array( $wgProfiler ) ) {
+               if ( $output && is_array( $wgProfiler ) && isset( $wgProfiler['class'] ) ) {
                        $class = $wgProfiler['class'];
                        $profiler = new $class(
                                array( 'sampling' => 1, 'output' => $output ) + $wgProfiler
index 75500c2..a0dee3c 100644 (file)
@@ -14,11 +14,30 @@ class ConvertExtensionToRegistration extends Maintenance {
                'ExtensionFunctions' => 'handleExtensionFunctions',
        );
 
+       /**
+        * Keys that should be put at the top of the generated JSON file (T86608)
+        *
+        * @var array
+        */
+       protected $promote = array(
+               'name',
+               'version',
+               'author',
+               'url',
+               'description',
+               'descriptionmsg',
+               'namemsg',
+               'license-name',
+               'type',
+       );
+
        private $json, $dir;
 
        public function __construct() {
                parent::__construct();
                $this->mDescription = 'Converts extension entry points to the new JSON registration format';
+               $this->addArg( 'path', 'Location to the PHP entry point you wish to convert', /* $required = */ true );
+               $this->addOption( 'skin', 'Whether to write to skin.json', false, false );
        }
 
        protected function getAllGlobals() {
@@ -59,8 +78,19 @@ class ConvertExtensionToRegistration extends Maintenance {
                        }
                }
 
-               $fname = "{$this->dir}/extension.json";
-               $prettyJSON = FormatJson::encode( $this->json, "\t", FormatJson::ALL_OK );
+               // Move some keys to the top
+               $out = array();
+               foreach ( $this->promote as $key ) {
+                       if ( isset( $this->json[$key] ) ) {
+                               $out[$key] = $this->json[$key];
+                               unset( $this->json[$key] );
+                       }
+               }
+               $out += $this->json;
+
+               $type = $this->hasOption( 'skin' ) ? 'skin' : 'extension';
+               $fname = "{$this->dir}/$type.json";
+               $prettyJSON = FormatJson::encode( $out, "\t", FormatJson::ALL_OK );
                file_put_contents( $fname, $prettyJSON . "\n" );
                $this->output( "Wrote output to $fname.\n" );
        }
index 0660e55..91c60c1 100644 (file)
@@ -1,77 +1,77 @@
 # Based more or less on the public interwiki map from MeatballWiki
 # Default interwiki prefixes...
-acronym|http://www.acronymfinder.com/~/search/af.aspx?string=exact&Acronym=$1|0
-advogato|http://www.advogato.org/$1|0
-arxiv|http://www.arxiv.org/abs/$1|0
-c2find|http://c2.com/cgi/wiki?FindPage&value=$1|0
-cache|http://www.google.com/search?q=cache:$1|0
-commons|https://commons.wikimedia.org/wiki/$1|0
-dictionary|http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1|0
-docbook|http://wiki.docbook.org/$1|0
-doi|http://dx.doi.org/$1|0
-drumcorpswiki|http://www.drumcorpswiki.com/$1|0
-dwjwiki|http://www.suberic.net/cgi-bin/dwj/wiki.cgi?$1|0
-elibre|http://enciclopedia.us.es/index.php/$1|0
-emacswiki|http://www.emacswiki.org/cgi-bin/wiki.pl?$1|0
-foldoc|http://foldoc.org/?$1|0
-foxwiki|http://fox.wikis.com/wc.dll?Wiki~$1|0
-freebsdman|http://www.FreeBSD.org/cgi/man.cgi?apropos=1&query=$1|0
-gej|http://www.esperanto.de/dej.malnova/aktivikio.pl?$1|0
-gentoo-wiki|http://gentoo-wiki.com/$1|0
-google|http://www.google.com/search?q=$1|0
-googlegroups|http://groups.google.com/groups?q=$1|0
-hammondwiki|http://www.dairiki.org/HammondWiki/$1|0
-hrwiki|http://www.hrwiki.org/wiki/$1|0
-imdb|http://www.imdb.com/find?q=$1&tt=on|0
-jargonfile|http://sunir.org/apps/meta.pl?wiki=JargonFile&redirect=$1|0
-kmwiki|http://kmwiki.wikispaces.com/$1|0
-linuxwiki|http://linuxwiki.de/$1|0
-lojban|http://www.lojban.org/tiki/tiki-index.php?page=$1|0
-lqwiki|http://wiki.linuxquestions.org/wiki/$1|0
-lugkr|http://www.lug-kr.de/wiki/$1|0
-meatball|http://www.usemod.com/cgi-bin/mb.pl?$1|0
-mediawikiwiki|https://www.mediawiki.org/wiki/$1|0
-mediazilla|https://bugzilla.wikimedia.org/$1|0
-memoryalpha|http://en.memory-alpha.org/wiki/$1|0
-metawiki|http://sunir.org/apps/meta.pl?$1|0
-metawikimedia|https://meta.wikimedia.org/wiki/$1|0
-mozillawiki|http://wiki.mozilla.org/$1|0
-mw|http://www.mediawiki.org/wiki/$1|0
-oeis|http://oeis.org/$1|0
-openwiki|http://openwiki.com/ow.asp?$1|0
-ppr|http://c2.com/cgi/wiki?$1|0
-pythoninfo|http://wiki.python.org/moin/$1|0
-rfc|http://www.rfc-editor.org/rfc/rfc$1.txt|0
-s23wiki|http://s23.org/wiki/$1|0
-seattlewireless|http://seattlewireless.net/$1|0
-senseislibrary|http://senseis.xmp.net/?$1|0
-shoutwiki|http://www.shoutwiki.com/wiki/$1|0
-sourceforge|http://sourceforge.net/$1|0
-sourcewatch|http://www.sourcewatch.org/index.php?title=$1|0
-squeak|http://wiki.squeak.org/squeak/$1|0
-tejo|http://www.tejo.org/vikio/$1|0
-tmbw|http://www.tmbw.net/wiki/$1|0
-tmnet|http://www.technomanifestos.net/?$1|0
-theopedia|http://www.theopedia.com/$1|0
-twiki|http://twiki.org/cgi-bin/view/$1|0
-uea|http://uea.org/vikio/index.php/$1|0
-uncyclopedia|http://en.uncyclopedia.co/wiki/$1|0
-unreal|http://wiki.beyondunreal.com/$1|0
-usemod|http://www.usemod.com/cgi-bin/wiki.pl?$1|0
-webseitzwiki|http://webseitz.fluxent.com/wiki/$1|0
-wiki|http://c2.com/cgi/wiki?$1|0
-wikia|http://www.wikia.com/wiki/$1|0
-wikibooks|https://en.wikibooks.org/wiki/$1|0
-wikif1|http://www.wikif1.org/$1|0
-wikihow|http://www.wikihow.com/$1|0
-wikinfo|http://wikinfo.co/English/index.php/$1|0
-wikimedia|https://wikimediafoundation.org/wiki/$1|0
-wikinews|https://en.wikinews.org/wiki/$1|0
-wikipedia|https://en.wikipedia.org/wiki/$1|0
-wikiquote|https://en.wikiquote.org/wiki/$1|0
-wikisource|https://wikisource.org/wiki/$1|0
-wikispecies|https://species.wikimedia.org/wiki/$1|0
-wikiversity|https://en.wikiversity.org/wiki/$1|0
-wikivoyage|https://en.wikivoyage.org/wiki/$1|0
-wikt|https://en.wiktionary.org/wiki/$1|0
-wiktionary|https://en.wiktionary.org/wiki/$1|0
+acronym|http://www.acronymfinder.com/~/search/af.aspx?string=exact&Acronym=$1|0|
+advogato|http://www.advogato.org/$1|0|
+arxiv|http://www.arxiv.org/abs/$1|0|
+c2find|http://c2.com/cgi/wiki?FindPage&value=$1|0|
+cache|http://www.google.com/search?q=cache:$1|0|
+commons|https://commons.wikimedia.org/wiki/$1|0|https://commons.wikimedia.org/w/api.php
+dictionary|http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1|0|
+docbook|http://wiki.docbook.org/$1|0|
+doi|http://dx.doi.org/$1|0|
+drumcorpswiki|http://www.drumcorpswiki.com/$1|0|http://drumcorpswiki.com/api.php
+dwjwiki|http://www.suberic.net/cgi-bin/dwj/wiki.cgi?$1|0|
+elibre|http://enciclopedia.us.es/index.php/$1|0|http://enciclopedia.us.es/api.php
+emacswiki|http://www.emacswiki.org/cgi-bin/wiki.pl?$1|0|
+foldoc|http://foldoc.org/?$1|0|
+foxwiki|http://fox.wikis.com/wc.dll?Wiki~$1|0|
+freebsdman|http://www.FreeBSD.org/cgi/man.cgi?apropos=1&query=$1|0|
+gej|http://www.esperanto.de/dej.malnova/aktivikio.pl?$1|0|
+gentoo-wiki|http://gentoo-wiki.com/$1|0|
+google|http://www.google.com/search?q=$1|0|
+googlegroups|http://groups.google.com/groups?q=$1|0|
+hammondwiki|http://www.dairiki.org/HammondWiki/$1|0|
+hrwiki|http://www.hrwiki.org/wiki/$1|0|http://www.hrwiki.org/w/api.php
+imdb|http://www.imdb.com/find?q=$1&tt=on|0|
+jargonfile|http://sunir.org/apps/meta.pl?wiki=JargonFile&redirect=$1|0|
+kmwiki|http://kmwiki.wikispaces.com/$1|0|
+linuxwiki|http://linuxwiki.de/$1|0|
+lojban|http://www.lojban.org/tiki/tiki-index.php?page=$1|0|
+lqwiki|http://wiki.linuxquestions.org/wiki/$1|0|
+lugkr|http://www.lug-kr.de/wiki/$1|0|
+meatball|http://www.usemod.com/cgi-bin/mb.pl?$1|0|
+mediawikiwiki|https://www.mediawiki.org/wiki/$1|0|https://www.mediawiki.org/w/api.php
+mediazilla|https://bugzilla.wikimedia.org/$1|0|
+memoryalpha|http://en.memory-alpha.org/wiki/$1|0|http://en.memory-alpha.org/api.php
+metawiki|http://sunir.org/apps/meta.pl?$1|0|
+metawikimedia|https://meta.wikimedia.org/wiki/$1|0|https://meta.wikimedia.org/w/api.php
+mozillawiki|http://wiki.mozilla.org/$1|0|https://wiki.mozilla.org/api.php
+mw|https://www.mediawiki.org/wiki/$1|0|https://www.mediawiki.org/w/api.php
+oeis|http://oeis.org/$1|0|
+openwiki|http://openwiki.com/ow.asp?$1|0|
+ppr|http://c2.com/cgi/wiki?$1|0|
+pythoninfo|http://wiki.python.org/moin/$1|0|
+rfc|http://www.rfc-editor.org/rfc/rfc$1.txt|0|
+s23wiki|http://s23.org/wiki/$1|0|http://s23.org/w/api.php
+seattlewireless|http://seattlewireless.net/$1|0|
+senseislibrary|http://senseis.xmp.net/?$1|0|
+shoutwiki|http://www.shoutwiki.com/wiki/$1|0|http://www.shoutwiki.com/w/api.php
+sourceforge|http://sourceforge.net/$1|0|
+sourcewatch|http://www.sourcewatch.org/index.php?title=$1|0|http://www.sourcewatch.org/api.php
+squeak|http://wiki.squeak.org/squeak/$1|0|
+tejo|http://www.tejo.org/vikio/$1|0|
+tmbw|http://www.tmbw.net/wiki/$1|0|http://tmbw.net/wiki/api.php
+tmnet|http://www.technomanifestos.net/?$1|0|
+theopedia|http://www.theopedia.com/$1|0|
+twiki|http://twiki.org/cgi-bin/view/$1|0|
+uea|http://uea.org/vikio/index.php/$1|0|http://uea.org/vikio/api.php
+uncyclopedia|http://en.uncyclopedia.co/wiki/$1|0|http://en.uncyclopedia.co/w/api.php
+unreal|http://wiki.beyondunreal.com/$1|0|http://wiki.beyondunreal.com/w/api.php
+usemod|http://www.usemod.com/cgi-bin/wiki.pl?$1|0|
+webseitzwiki|http://webseitz.fluxent.com/wiki/$1|0|
+wiki|http://c2.com/cgi/wiki?$1|0|
+wikia|http://www.wikia.com/wiki/$1|0|
+wikibooks|https://en.wikibooks.org/wiki/$1|0|https://en.wikibooks.org/w/api.php
+wikif1|http://www.wikif1.org/$1|0|
+wikihow|http://www.wikihow.com/$1|0|http://www.wikihow.com/api.php
+wikinfo|http://wikinfo.co/English/index.php/$1|0|
+wikimedia|https://wikimediafoundation.org/wiki/$1|0|https://wikimediafoundation.org/w/api.php
+wikinews|https://en.wikinews.org/wiki/$1|0|https://en.wikinews.org/w/api.php
+wikipedia|https://en.wikipedia.org/wiki/$1|0|https://en.wikipedia.org/w/api.php
+wikiquote|https://en.wikiquote.org/wiki/$1|0|https://en.wikiquote.org/w/api.php
+wikisource|https://wikisource.org/wiki/$1|0|https://wikisource.org/w/api.php
+wikispecies|https://species.wikimedia.org/wiki/$1|0|https://species.wikimedia.org/w/api.php
+wikiversity|https://en.wikiversity.org/wiki/$1|0|https://en.wikiversity.org/w/api.php
+wikivoyage|https://en.wikivoyage.org/wiki/$1|0|https://en.wikivoyage.org/w/api.php
+wikt|https://en.wiktionary.org/wiki/$1|0|https://en.wiktionary.org/w/api.php
+wiktionary|https://en.wiktionary.org/wiki/$1|0|https://en.wiktionary.org/w/api.php
index aad0cc3..0628773 100644 (file)
@@ -1,80 +1,80 @@
 -- Based more or less on the public interwiki map from MeatballWiki
 -- Default interwiki prefixes...
 
-REPLACE INTO /*$wgDBprefix*/interwiki (iw_prefix,iw_url,iw_local) VALUES
-('acronym','http://www.acronymfinder.com/~/search/af.aspx?string=exact&Acronym=$1',0),
-('advogato','http://www.advogato.org/$1',0),
-('arxiv','http://www.arxiv.org/abs/$1',0),
-('c2find','http://c2.com/cgi/wiki?FindPage&value=$1',0),
-('cache','http://www.google.com/search?q=cache:$1',0),
-('commons','https://commons.wikimedia.org/wiki/$1',0),
-('dictionary','http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1',0),
-('docbook','http://wiki.docbook.org/$1',0),
-('doi','http://dx.doi.org/$1',0),
-('drumcorpswiki','http://www.drumcorpswiki.com/$1',0),
-('dwjwiki','http://www.suberic.net/cgi-bin/dwj/wiki.cgi?$1',0),
-('elibre','http://enciclopedia.us.es/index.php/$1',0),
-('emacswiki','http://www.emacswiki.org/cgi-bin/wiki.pl?$1',0),
-('foldoc','http://foldoc.org/?$1',0),
-('foxwiki','http://fox.wikis.com/wc.dll?Wiki~$1',0),
-('freebsdman','http://www.FreeBSD.org/cgi/man.cgi?apropos=1&query=$1',0),
-('gej','http://www.esperanto.de/dej.malnova/aktivikio.pl?$1',0),
-('gentoo-wiki','http://gentoo-wiki.com/$1',0),
-('google','http://www.google.com/search?q=$1',0),
-('googlegroups','http://groups.google.com/groups?q=$1',0),
-('hammondwiki','http://www.dairiki.org/HammondWiki/$1',0),
-('hrwiki','http://www.hrwiki.org/wiki/$1',0),
-('imdb','http://www.imdb.com/find?q=$1&tt=on',0),
-('jargonfile','http://sunir.org/apps/meta.pl?wiki=JargonFile&redirect=$1',0),
-('kmwiki','http://kmwiki.wikispaces.com/$1',0),
-('linuxwiki','http://linuxwiki.de/$1',0),
-('lojban','http://www.lojban.org/tiki/tiki-index.php?page=$1',0),
-('lqwiki','http://wiki.linuxquestions.org/wiki/$1',0),
-('lugkr','http://www.lug-kr.de/wiki/$1',0),
-('meatball','http://www.usemod.com/cgi-bin/mb.pl?$1',0),
-('mediawikiwiki','https://www.mediawiki.org/wiki/$1',0),
-('mediazilla','https://bugzilla.wikimedia.org/$1',0),
-('memoryalpha','http://en.memory-alpha.org/wiki/$1',0),
-('metawiki','http://sunir.org/apps/meta.pl?$1',0),
-('metawikimedia','https://meta.wikimedia.org/wiki/$1',0),
-('mozillawiki','http://wiki.mozilla.org/$1',0),
-('mw','http://www.mediawiki.org/wiki/$1',0),
-('oeis','http://oeis.org/$1',0),
-('openwiki','http://openwiki.com/ow.asp?$1',0),
-('ppr','http://c2.com/cgi/wiki?$1',0),
-('pythoninfo','http://wiki.python.org/moin/$1',0),
-('rfc','http://www.rfc-editor.org/rfc/rfc$1.txt',0),
-('s23wiki','http://s23.org/wiki/$1',0),
-('seattlewireless','http://seattlewireless.net/$1',0),
-('senseislibrary','http://senseis.xmp.net/?$1',0),
-('shoutwiki','http://www.shoutwiki.com/wiki/$1',0),
-('sourceforge','http://sourceforge.net/$1',0),
-('sourcewatch','http://www.sourcewatch.org/index.php?title=$1',0),
-('squeak','http://wiki.squeak.org/squeak/$1',0),
-('tejo','http://www.tejo.org/vikio/$1',0),
-('tmbw','http://www.tmbw.net/wiki/$1',0),
-('tmnet','http://www.technomanifestos.net/?$1',0),
-('theopedia','http://www.theopedia.com/$1',0),
-('twiki','http://twiki.org/cgi-bin/view/$1',0),
-('uea','http://uea.org/vikio/index.php/$1',0),
-('uncyclopedia','http://en.uncyclopedia.co/wiki/$1',0),
-('unreal','http://wiki.beyondunreal.com/$1',0),
-('usemod','http://www.usemod.com/cgi-bin/wiki.pl?$1',0),
-('webseitzwiki','http://webseitz.fluxent.com/wiki/$1',0),
-('wiki','http://c2.com/cgi/wiki?$1',0),
-('wikia','http://www.wikia.com/wiki/$1',0),
-('wikibooks','https://en.wikibooks.org/wiki/$1',0),
-('wikif1','http://www.wikif1.org/$1',0),
-('wikihow','http://www.wikihow.com/$1',0),
-('wikinfo','http://wikinfo.co/English/index.php/$1',0),
-('wikimedia','https://wikimediafoundation.org/wiki/$1',0),
-('wikinews','https://en.wikinews.org/wiki/$1',0),
-('wikipedia','https://en.wikipedia.org/wiki/$1',0),
-('wikiquote','https://en.wikiquote.org/wiki/$1',0),
-('wikisource','https://wikisource.org/wiki/$1',0),
-('wikispecies','https://species.wikimedia.org/wiki/$1',0),
-('wikiversity','https://en.wikiversity.org/wiki/$1',0),
-('wikivoyage','https://en.wikivoyage.org/wiki/$1',0),
-('wikt','https://en.wiktionary.org/wiki/$1',0),
-('wiktionary','https://en.wiktionary.org/wiki/$1',0)
+REPLACE INTO /*$wgDBprefix*/interwiki (iw_prefix,iw_url,iw_local,iw_api) VALUES
+('acronym','http://www.acronymfinder.com/~/search/af.aspx?string=exact&Acronym=$1',0,''),
+('advogato','http://www.advogato.org/$1',0,''),
+('arxiv','http://www.arxiv.org/abs/$1',0,''),
+('c2find','http://c2.com/cgi/wiki?FindPage&value=$1',0,''),
+('cache','http://www.google.com/search?q=cache:$1',0,''),
+('commons','https://commons.wikimedia.org/wiki/$1',0,'https://commons.wikimedia.org/w/api.php'),
+('dictionary','http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1',0,''),
+('docbook','http://wiki.docbook.org/$1',0,''),
+('doi','http://dx.doi.org/$1',0,''),
+('drumcorpswiki','http://www.drumcorpswiki.com/$1',0,'http://drumcorpswiki.com/api.php'),
+('dwjwiki','http://www.suberic.net/cgi-bin/dwj/wiki.cgi?$1',0,''),
+('elibre','http://enciclopedia.us.es/index.php/$1',0,'http://enciclopedia.us.es/api.php'),
+('emacswiki','http://www.emacswiki.org/cgi-bin/wiki.pl?$1',0,''),
+('foldoc','http://foldoc.org/?$1',0,''),
+('foxwiki','http://fox.wikis.com/wc.dll?Wiki~$1',0,''),
+('freebsdman','http://www.FreeBSD.org/cgi/man.cgi?apropos=1&query=$1',0,''),
+('gej','http://www.esperanto.de/dej.malnova/aktivikio.pl?$1',0,''),
+('gentoo-wiki','http://gentoo-wiki.com/$1',0,''),
+('google','http://www.google.com/search?q=$1',0,''),
+('googlegroups','http://groups.google.com/groups?q=$1',0,''),
+('hammondwiki','http://www.dairiki.org/HammondWiki/$1',0,''),
+('hrwiki','http://www.hrwiki.org/wiki/$1',0,'http://www.hrwiki.org/w/api.php'),
+('imdb','http://www.imdb.com/find?q=$1&tt=on',0,''),
+('jargonfile','http://sunir.org/apps/meta.pl?wiki=JargonFile&redirect=$1',0,''),
+('kmwiki','http://kmwiki.wikispaces.com/$1',0,''),
+('linuxwiki','http://linuxwiki.de/$1',0,''),
+('lojban','http://www.lojban.org/tiki/tiki-index.php?page=$1',0,''),
+('lqwiki','http://wiki.linuxquestions.org/wiki/$1',0,''),
+('lugkr','http://www.lug-kr.de/wiki/$1',0,''),
+('meatball','http://www.usemod.com/cgi-bin/mb.pl?$1',0,''),
+('mediawikiwiki','https://www.mediawiki.org/wiki/$1',0,'https://www.mediawiki.org/w/api.php'),
+('mediazilla','https://bugzilla.wikimedia.org/$1',0,''),
+('memoryalpha','http://en.memory-alpha.org/wiki/$1',0,'http://en.memory-alpha.org/api.php'),
+('metawiki','http://sunir.org/apps/meta.pl?$1',0,''),
+('metawikimedia','https://meta.wikimedia.org/wiki/$1',0,'https://meta.wikimedia.org/w/api.php'),
+('mozillawiki','http://wiki.mozilla.org/$1',0,'https://wiki.mozilla.org/api.php'),
+('mw','https://www.mediawiki.org/wiki/$1',0,'https://www.mediawiki.org/w/api.php'),
+('oeis','http://oeis.org/$1',0,''),
+('openwiki','http://openwiki.com/ow.asp?$1',0,''),
+('ppr','http://c2.com/cgi/wiki?$1',0,''),
+('pythoninfo','http://wiki.python.org/moin/$1',0,''),
+('rfc','http://www.rfc-editor.org/rfc/rfc$1.txt',0,''),
+('s23wiki','http://s23.org/wiki/$1',0,'http://s23.org/w/api.php'),
+('seattlewireless','http://seattlewireless.net/$1',0,''),
+('senseislibrary','http://senseis.xmp.net/?$1',0,''),
+('shoutwiki','http://www.shoutwiki.com/wiki/$1',0,'http://www.shoutwiki.com/w/api.php'),
+('sourceforge','http://sourceforge.net/$1',0,''),
+('sourcewatch','http://www.sourcewatch.org/index.php?title=$1',0,'http://www.sourcewatch.org/api.php'),
+('squeak','http://wiki.squeak.org/squeak/$1',0,''),
+('tejo','http://www.tejo.org/vikio/$1',0,''),
+('tmbw','http://www.tmbw.net/wiki/$1',0,'http://tmbw.net/wiki/api.php'),
+('tmnet','http://www.technomanifestos.net/?$1',0,''),
+('theopedia','http://www.theopedia.com/$1',0,''),
+('twiki','http://twiki.org/cgi-bin/view/$1',0,''),
+('uea','http://uea.org/vikio/index.php/$1',0,'http://uea.org/vikio/api.php'),
+('uncyclopedia','http://en.uncyclopedia.co/wiki/$1',0,'http://en.uncyclopedia.co/w/api.php'),
+('unreal','http://wiki.beyondunreal.com/$1',0,'http://wiki.beyondunreal.com/w/api.php'),
+('usemod','http://www.usemod.com/cgi-bin/wiki.pl?$1',0,''),
+('webseitzwiki','http://webseitz.fluxent.com/wiki/$1',0,''),
+('wiki','http://c2.com/cgi/wiki?$1',0,''),
+('wikia','http://www.wikia.com/wiki/$1',0,''),
+('wikibooks','https://en.wikibooks.org/wiki/$1',0,'https://en.wikibooks.org/w/api.php'),
+('wikif1','http://www.wikif1.org/$1',0,''),
+('wikihow','http://www.wikihow.com/$1',0,'http://www.wikihow.com/api.php'),
+('wikinfo','http://wikinfo.co/English/index.php/$1',0,''),
+('wikimedia','https://wikimediafoundation.org/wiki/$1',0,'https://wikimediafoundation.org/w/api.php'),
+('wikinews','https://en.wikinews.org/wiki/$1',0,'https://en.wikinews.org/w/api.php'),
+('wikipedia','https://en.wikipedia.org/wiki/$1',0,'https://en.wikipedia.org/w/api.php'),
+('wikiquote','https://en.wikiquote.org/wiki/$1',0,'https://en.wikiquote.org/w/api.php'),
+('wikisource','https://wikisource.org/wiki/$1',0,'https://wikisource.org/w/api.php'),
+('wikispecies','https://species.wikimedia.org/wiki/$1',0,'https://species.wikimedia.org/w/api.php'),
+('wikiversity','https://en.wikiversity.org/wiki/$1',0,'https://en.wikiversity.org/w/api.php'),
+('wikivoyage','https://en.wikivoyage.org/wiki/$1',0,'https://en.wikivoyage.org/w/api.php'),
+('wikt','https://en.wiktionary.org/wiki/$1',0,'https://en.wiktionary.org/w/api.php'),
+('wiktionary','https://en.wiktionary.org/wiki/$1',0,'https://en.wiktionary.org/w/api.php')
 ;
index ece0450..29e4d2a 100644 (file)
@@ -25,7 +25,7 @@ require_once __DIR__ . '/../Maintenance.php';
 
 /**
  * Generates the normalizer data file for Arabic.
- * For NFC see includes/normal.
+ * For NFC see includes/libs/normal.
  *
  * @ingroup MaintenanceLanguage
  */
index c7237cf..8ed3c32 100644 (file)
@@ -25,7 +25,7 @@ require_once __DIR__ . '/../Maintenance.php';
 
 /**
  * Generates the normalizer data file for Malayalam.
- * For NFC see includes/normal.
+ * For NFC see includes/libs/normal.
  *
  * @ingroup MaintenanceLanguage
  */
index cbc389b..27102ad 100644 (file)
@@ -172,15 +172,24 @@ class NamespaceConflictChecker extends Maintenance {
                        return true;
                }
 
+               $resolveableCount = 0;
+
                $ok = true;
                foreach ( $conflicts as $row ) {
                        $resolvable = $this->reportConflict( $row, $suffix );
                        $ok = $ok && $resolvable;
+
+                       if ( $resolvable ) {
+                               $resolveableCount++;
+                       }
+
                        if ( $fix && ( $resolvable || $suffix != '' ) ) {
                                $ok = $this->resolveConflict( $row, $resolvable, $suffix ) && $ok;
                        }
                }
 
+               $this->output( "{$count} conflicts. {$resolveableCount} are resolveable." );
+
                return $ok;
        }
 
@@ -260,7 +269,8 @@ class NamespaceConflictChecker extends Maintenance {
                        $row->oldtitle,
                        $newTitle->getNamespace(),
                        $newTitle->getDBkey(),
-                       $newTitle->getPrefixedText() ) );
+                       $newTitle->getPrefixedText() )
+               );
 
                $id = $newTitle->getArticleID();
                if ( $id ) {
@@ -275,7 +285,7 @@ class NamespaceConflictChecker extends Maintenance {
        /**
         * Resolve any conflicts
         *
-        * @param stClass $row Row from the page table to fix
+        * @param stdClass $row Row from the page table to fix
         * @param bool $resolvable
         * @param string $suffix Suffix to append to the fixed page
         * @return bool
index bc85c66..e29d89e 100644 (file)
@@ -70,6 +70,7 @@ class RebuildTextIndex extends Maintenance {
 
                if ( $this->db->getType() == 'mysql' ) {
                        $this->dropMysqlTextIndex();
+                       $this->clearSearchIndex();
                        $this->populateSearchIndex();
                        $this->createMysqlTextIndex();
                } else {
index d1d17cf..8ab1ddb 100755 (executable)
@@ -131,6 +131,10 @@ class UpdateMediaWiki extends Maintenance {
                        wfCountdown( 5 );
                }
 
+               // Check external dependencies are up to date
+               $composerLockUpToDate = $this->runChild( 'CheckComposerLockUpToDate' );
+               $composerLockUpToDate->execute();
+
                # Attempt to connect to the database as a privileged user
                # This will vomit up an error if there are permissions problems
                $db = wfGetDB( DB_MASTER );
index 6e8cd99..4ee516b 100644 (file)
@@ -1094,6 +1094,10 @@ return array(
                        'metadata-collapse',
                ),
        ),
+       'mediawiki.action.view.categoryPage.styles' => array(
+               'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.categoryPage.less',
+               'targets' => array( 'desktop', 'mobile' )
+       ),
        'mediawiki.action.view.postEdit' => array(
                'templates' => array(
                        'postEdit.html' => 'resources/src/mediawiki.action/templates/postEdit.html',
diff --git a/resources/assets/poweredby_mediawiki_132x47.png b/resources/assets/poweredby_mediawiki_132x47.png
new file mode 100644 (file)
index 0000000..a784ecf
Binary files /dev/null and b/resources/assets/poweredby_mediawiki_132x47.png differ
diff --git a/resources/assets/poweredby_mediawiki_176x62.png b/resources/assets/poweredby_mediawiki_176x62.png
new file mode 100644 (file)
index 0000000..7970801
Binary files /dev/null and b/resources/assets/poweredby_mediawiki_176x62.png differ
index cd089af..f6f422a 100644 (file)
@@ -6,5 +6,14 @@
        },
        "ooui-outline-control-move-down": "Spuèste 'a vôsce sotte",
        "ooui-outline-control-move-up": "Spuèste 'a vôsce sus",
-       "ooui-toolbar-more": "De cchiù"
+       "ooui-outline-control-remove": "Live 'a vôsce",
+       "ooui-toolbar-more": "De cchiù",
+       "ooui-toolgroup-expand": "De cchiù",
+       "ooui-toolgroup-collapse": "De mene",
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Annulle",
+       "ooui-dialog-process-error": "Quacche cose ha sciute stuèrte",
+       "ooui-dialog-process-dismiss": "Scitte",
+       "ooui-dialog-process-retry": "Pruève arrete",
+       "ooui-dialog-process-continue": "Condinue"
 }
index 006cdeb..764f2eb 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.6.2
+ * OOjs UI v0.6.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-01-10T01:25:31Z
+ * Date: 2015-01-16T00:05:16Z
  */
 .oo-ui-progressBarWidget-slide-frames from {
        margin-left: -40%;
        display: block;
        background: rgba(0, 0, 0, 0.4);
 }
+.oo-ui-lookupElement > .oo-ui-menuSelectWidget {
+       z-index: 1;
+       width: 100%;
+}
 .oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous > .oo-ui-panelLayout-scrollable {
        overflow-y: hidden;
 }
 .oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
        color: #cccccc;
 }
+.oo-ui-actionFieldLayout-field {
+       display: table;
+       table-layout: fixed;
+       width: 100%;
+}
+.oo-ui-actionFieldLayout-input,
+.oo-ui-actionFieldLayout-button {
+       display: table-cell;
+       vertical-align: middle;
+}
+.oo-ui-actionFieldLayout-input {
+       padding-right: 1em;
+}
+.oo-ui-actionFieldLayout-button {
+       width: 1%;
+}
 .oo-ui-fieldsetLayout {
        position: relative;
        margin: 0;
 .oo-ui-listToolGroup .oo-ui-toolGroup-tools {
        padding: 0.25em 0 0.25em 0;
        border: 1px solid #aaaaaa;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       border-radius: 0.2em;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
 }
 .oo-ui-menuToolGroup {
        border: solid 1px #cccccc;
        margin-left: -1px;
        padding: 0.25em 0 0.25em 0;
        border: 1px solid #aaaaaa;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       border-radius: 0.2em;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
 }
 .oo-ui-menuToolGroup.oo-ui-widget-enabled:hover {
        border-color: #aaaaaa;
        color: #888888;
 }
 .oo-ui-dropdownWidget {
-       position: relative;
        display: inline-block;
+       position: relative;
        margin: 0.25em 0;
        width: 100%;
        max-width: 50em;
        background-position: center center;
        background-repeat: no-repeat;
 }
-.oo-ui-dropdownWidget .oo-ui-menuSelectWidget {
+.oo-ui-dropdownWidget .oo-ui-menuSelectWidget {
        z-index: 1;
        width: 100%;
 }
        width: 100%;
        max-width: 50em;
 }
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-       width: 100%;
+.oo-ui-comboBoxWidget > .oo-ui-menuSelectWidget {
        z-index: 1;
+       width: 100%;
 }
 .oo-ui-comboBoxWidget .oo-ui-textInputWidget input,
 .oo-ui-comboBoxWidget .oo-ui-textInputWidget textarea {
        z-index: 3;
 }
 .oo-ui-dialog-content > .oo-ui-window-body {
-       box-shadow: 0 0 1px 0 #aaaaaa;
+       outline: 1px solid #aaaaaa;
 }
 .oo-ui-messageDialog-actions-horizontal {
        display: table;
 }
 .oo-ui-processDialog-content .oo-ui-window-body {
        top: 3.4em;
-       box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
+       outline: 1px solid rgba(0, 0, 0, 0.2);
 }
 .oo-ui-processDialog-navigation {
        position: relative;
index 4f6eb59..a0a5a32 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.6.2
+ * OOjs UI v0.6.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-01-10T01:25:19Z
+ * Date: 2015-01-16T00:05:04Z
  */
 /**
  * @class
index 9956340..474304b 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.6.2
+ * OOjs UI v0.6.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-01-10T01:25:31Z
+ * Date: 2015-01-16T00:05:16Z
  */
 .oo-ui-progressBarWidget-slide-frames from {
        margin-left: -40%;
        display: block;
        background: rgba(0, 0, 0, 0.4);
 }
+.oo-ui-lookupElement > .oo-ui-menuSelectWidget {
+       z-index: 1;
+       width: 100%;
+}
 .oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous > .oo-ui-panelLayout-scrollable {
        overflow-y: hidden;
 }
 .oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
        color: #cccccc;
 }
+.oo-ui-actionFieldLayout-field {
+       display: table;
+       table-layout: fixed;
+       width: 100%;
+}
+.oo-ui-actionFieldLayout-input,
+.oo-ui-actionFieldLayout-button {
+       display: table-cell;
+       vertical-align: middle;
+}
+.oo-ui-actionFieldLayout-input {
+       padding-right: 1em;
+}
+.oo-ui-actionFieldLayout-button {
+       width: 1%;
+}
 .oo-ui-fieldsetLayout {
        position: relative;
        margin: 0;
 .oo-ui-listToolGroup .oo-ui-toolGroup-tools {
        padding: 0.25em 0 0.25em 0;
        border: 1px solid #aaaaaa;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       border-radius: 0.2em;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
 }
 .oo-ui-menuToolGroup {
        border: solid 1px #cccccc;
        margin-left: -1px;
        padding: 0.25em 0 0.25em 0;
        border: 1px solid #aaaaaa;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       border-radius: 0.2em;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
 }
 .oo-ui-menuToolGroup.oo-ui-widget-enabled:hover {
        border-color: #aaaaaa;
        color: #888888;
 }
 .oo-ui-dropdownWidget {
-       position: relative;
        display: inline-block;
+       position: relative;
        margin: 0.25em 0;
        width: 100%;
        max-width: 50em;
        background-position: center center;
        background-repeat: no-repeat;
 }
-.oo-ui-dropdownWidget .oo-ui-menuSelectWidget {
+.oo-ui-dropdownWidget .oo-ui-menuSelectWidget {
        z-index: 1;
        width: 100%;
 }
        width: 100%;
        max-width: 50em;
 }
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-       width: 100%;
+.oo-ui-comboBoxWidget > .oo-ui-menuSelectWidget {
        z-index: 1;
+       width: 100%;
 }
 .oo-ui-comboBoxWidget .oo-ui-textInputWidget input,
 .oo-ui-comboBoxWidget .oo-ui-textInputWidget textarea {
        z-index: 3;
 }
 .oo-ui-dialog-content > .oo-ui-window-body {
-       box-shadow: 0 0 1px 0 #aaaaaa;
+       outline: 1px solid #aaaaaa;
 }
 .oo-ui-messageDialog-actions-horizontal {
        display: table;
 }
 .oo-ui-processDialog-content .oo-ui-window-body {
        top: 3.4em;
-       box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
+       outline: 1px solid rgba(0, 0, 0, 0.2);
 }
 .oo-ui-processDialog-navigation {
        position: relative;
index 38aa092..e0c98d0 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.6.2
+ * OOjs UI v0.6.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-01-10T01:25:19Z
+ * Date: 2015-01-16T00:05:04Z
  */
 ( function ( OO ) {
 
@@ -1471,8 +1471,8 @@ OO.ui.Widget.prototype.updateDisabled = function () {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {string} [size] Symbolic name of dialog size, `small`, `medium`, `large` or `full`; omit to
- *   use #static-size
+ * @cfg {string} [size] Symbolic name of dialog size, `small`, `medium`, `large`, `larger` or
+ *  `full`; omit to use #static-size
  */
 OO.ui.Window = function OoUiWindow( config ) {
        // Configuration initialization
@@ -1732,7 +1732,7 @@ OO.ui.Window.prototype.getManager = function () {
 /**
  * Get the window size.
  *
- * @return {string} Symbolic size name, e.g. 'small', 'medium', 'large', 'full'
+ * @return {string} Symbolic size name, e.g. `small`, `medium`, `large`, `larger`, `full`
  */
 OO.ui.Window.prototype.getSize = function () {
        return this.size;
@@ -2690,6 +2690,9 @@ OO.ui.WindowManager.static.sizes = {
        large: {
                width: 700
        },
+       larger: {
+               width: 900
+       },
        full: {
                // These can be non-numeric because they are never used in calculations
                width: '100%',
@@ -4971,6 +4974,332 @@ OO.ui.LabelElement.prototype.setLabelContent = function ( label ) {
        }
 };
 
+/**
+ * Mixin that adds a menu showing suggested values for a OO.ui.TextInputWidget.
+ *
+ * Subclasses that set the value of #lookupInput from #onLookupMenuItemChoose should
+ * be aware that this will cause new suggestions to be looked up for the new value. If this is
+ * not desired, disable lookups with #setLookupsDisabled, then set the value, then re-enable lookups.
+ *
+ * @class
+ * @abstract
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ * @cfg {jQuery} [$overlay] Overlay for dropdown; defaults to relative positioning
+ * @cfg {jQuery} [$container=this.$element] Element to render menu under
+ */
+OO.ui.LookupElement = function OoUiLookupElement( config ) {
+       // Configuration initialization
+       config = config || {};
+
+       // Properties
+       this.$overlay = config.$overlay || this.$element;
+       this.lookupMenu = new OO.ui.TextInputMenuSelectWidget( this, {
+               $: OO.ui.Element.static.getJQuery( this.$overlay ),
+               $container: config.$container
+       } );
+       this.lookupCache = {};
+       this.lookupQuery = null;
+       this.lookupRequest = null;
+       this.lookupsDisabled = false;
+       this.lookupInputFocused = false;
+
+       // Events
+       this.$input.on( {
+               focus: this.onLookupInputFocus.bind( this ),
+               blur: this.onLookupInputBlur.bind( this ),
+               mousedown: this.onLookupInputMouseDown.bind( this )
+       } );
+       this.connect( this, { change: 'onLookupInputChange' } );
+       this.lookupMenu.connect( this, {
+               toggle: 'onLookupMenuToggle',
+               choose: 'onLookupMenuItemChoose'
+       } );
+
+       // Initialization
+       this.$element.addClass( 'oo-ui-lookupElement' );
+       this.lookupMenu.$element.addClass( 'oo-ui-lookupElement-menu' );
+       this.$overlay.append( this.lookupMenu.$element );
+};
+
+/* Methods */
+
+/**
+ * Handle input focus event.
+ *
+ * @param {jQuery.Event} e Input focus event
+ */
+OO.ui.LookupElement.prototype.onLookupInputFocus = function () {
+       this.lookupInputFocused = true;
+       this.populateLookupMenu();
+};
+
+/**
+ * Handle input blur event.
+ *
+ * @param {jQuery.Event} e Input blur event
+ */
+OO.ui.LookupElement.prototype.onLookupInputBlur = function () {
+       this.closeLookupMenu();
+       this.lookupInputFocused = false;
+};
+
+/**
+ * Handle input mouse down event.
+ *
+ * @param {jQuery.Event} e Input mouse down event
+ */
+OO.ui.LookupElement.prototype.onLookupInputMouseDown = function () {
+       // Only open the menu if the input was already focused.
+       // This way we allow the user to open the menu again after closing it with Esc
+       // by clicking in the input. Opening (and populating) the menu when initially
+       // clicking into the input is handled by the focus handler.
+       if ( this.lookupInputFocused && !this.lookupMenu.isVisible() ) {
+               this.populateLookupMenu();
+       }
+};
+
+/**
+ * Handle input change event.
+ *
+ * @param {string} value New input value
+ */
+OO.ui.LookupElement.prototype.onLookupInputChange = function () {
+       if ( this.lookupInputFocused ) {
+               this.populateLookupMenu();
+       }
+};
+
+/**
+ * Handle the lookup menu being shown/hidden.
+ *
+ * @param {boolean} visible Whether the lookup menu is now visible.
+ */
+OO.ui.LookupElement.prototype.onLookupMenuToggle = function ( visible ) {
+       if ( !visible ) {
+               // When the menu is hidden, abort any active request and clear the menu.
+               // This has to be done here in addition to closeLookupMenu(), because
+               // MenuSelectWidget will close itself when the user presses Esc.
+               this.abortLookupRequest();
+               this.lookupMenu.clearItems();
+       }
+};
+
+/**
+ * Handle menu item 'choose' event, updating the text input value to the value of the clicked item.
+ *
+ * @param {OO.ui.MenuOptionWidget|null} item Selected item
+ */
+OO.ui.LookupElement.prototype.onLookupMenuItemChoose = function ( item ) {
+       if ( item ) {
+               this.setValue( item.getData() );
+       }
+};
+
+/**
+ * Get lookup menu.
+ *
+ * @return {OO.ui.TextInputMenuSelectWidget}
+ */
+OO.ui.LookupElement.prototype.getLookupMenu = function () {
+       return this.lookupMenu;
+};
+
+/**
+ * Disable or re-enable lookups.
+ *
+ * When lookups are disabled, calls to #populateLookupMenu will be ignored.
+ *
+ * @param {boolean} disabled Disable lookups
+ */
+OO.ui.LookupElement.prototype.setLookupsDisabled = function ( disabled ) {
+       this.lookupsDisabled = !!disabled;
+};
+
+/**
+ * Open the menu. If there are no entries in the menu, this does nothing.
+ *
+ * @chainable
+ */
+OO.ui.LookupElement.prototype.openLookupMenu = function () {
+       if ( !this.lookupMenu.isEmpty() ) {
+               this.lookupMenu.toggle( true );
+       }
+       return this;
+};
+
+/**
+ * Close the menu, empty it, and abort any pending request.
+ *
+ * @chainable
+ */
+OO.ui.LookupElement.prototype.closeLookupMenu = function () {
+       this.lookupMenu.toggle( false );
+       this.abortLookupRequest();
+       this.lookupMenu.clearItems();
+       return this;
+};
+
+/**
+ * Request menu items based on the input's current value, and when they arrive,
+ * populate the menu with these items and show the menu.
+ *
+ * If lookups have been disabled with #setLookupsDisabled, this function does nothing.
+ *
+ * @chainable
+ */
+OO.ui.LookupElement.prototype.populateLookupMenu = function () {
+       var widget = this,
+               value = this.getValue();
+
+       if ( this.lookupsDisabled ) {
+               return;
+       }
+
+       // If the input is empty, clear the menu
+       if ( value === '' ) {
+               this.closeLookupMenu();
+       // Skip population if there is already a request pending for the current value
+       } else if ( value !== this.lookupQuery ) {
+               this.getLookupMenuItems()
+                       .done( function ( items ) {
+                               widget.lookupMenu.clearItems();
+                               if ( items.length ) {
+                                       widget.lookupMenu
+                                               .addItems( items )
+                                               .toggle( true );
+                                       widget.initializeLookupMenuSelection();
+                               } else {
+                                       widget.lookupMenu.toggle( false );
+                               }
+                       } )
+                       .fail( function () {
+                               widget.lookupMenu.clearItems();
+                       } );
+       }
+
+       return this;
+};
+
+/**
+ * Select and highlight the first selectable item in the menu.
+ *
+ * @chainable
+ */
+OO.ui.LookupElement.prototype.initializeLookupMenuSelection = function () {
+       if ( !this.lookupMenu.getSelectedItem() ) {
+               this.lookupMenu.selectItem( this.lookupMenu.getFirstSelectableItem() );
+       }
+       this.lookupMenu.highlightItem( this.lookupMenu.getSelectedItem() );
+};
+
+/**
+ * Get lookup menu items for the current query.
+ *
+ * @return {jQuery.Promise} Promise object which will be passed menu items as the first argument of
+ *   the done event. If the request was aborted to make way for a subsequent request, this promise
+ *   will not be rejected: it will remain pending forever.
+ */
+OO.ui.LookupElement.prototype.getLookupMenuItems = function () {
+       var widget = this,
+               value = this.getValue(),
+               deferred = $.Deferred(),
+               ourRequest;
+
+       this.abortLookupRequest();
+       if ( Object.prototype.hasOwnProperty.call( this.lookupCache, value ) ) {
+               deferred.resolve( this.getLookupMenuOptionsFromData( this.lookupCache[value] ) );
+       } else {
+               this.pushPending();
+               this.lookupQuery = value;
+               ourRequest = this.lookupRequest = this.getLookupRequest();
+               ourRequest
+                       .always( function () {
+                               // We need to pop pending even if this is an old request, otherwise
+                               // the widget will remain pending forever.
+                               // TODO: this assumes that an aborted request will fail or succeed soon after
+                               // being aborted, or at least eventually. It would be nice if we could popPending()
+                               // at abort time, but only if we knew that we hadn't already called popPending()
+                               // for that request.
+                               widget.popPending();
+                       } )
+                       .done( function ( data ) {
+                               // If this is an old request (and aborting it somehow caused it to still succeed),
+                               // ignore its success completely
+                               if ( ourRequest === widget.lookupRequest ) {
+                                       widget.lookupQuery = null;
+                                       widget.lookupRequest = null;
+                                       widget.lookupCache[value] = widget.getLookupCacheDataFromResponse( data );
+                                       deferred.resolve( widget.getLookupMenuOptionsFromData( widget.lookupCache[value] ) );
+                               }
+                       } )
+                       .fail( function () {
+                               // If this is an old request (or a request failing because it's being aborted),
+                               // ignore its failure completely
+                               if ( ourRequest === widget.lookupRequest ) {
+                                       widget.lookupQuery = null;
+                                       widget.lookupRequest = null;
+                                       deferred.reject();
+                               }
+                       } );
+       }
+       return deferred.promise();
+};
+
+/**
+ * Abort the currently pending lookup request, if any.
+ */
+OO.ui.LookupElement.prototype.abortLookupRequest = function () {
+       var oldRequest = this.lookupRequest;
+       if ( oldRequest ) {
+               // First unset this.lookupRequest to the fail handler will notice
+               // that the request is no longer current
+               this.lookupRequest = null;
+               this.lookupQuery = null;
+               oldRequest.abort();
+       }
+};
+
+/**
+ * Get a new request object of the current lookup query value.
+ *
+ * @abstract
+ * @return {jQuery.Promise} jQuery AJAX object, or promise object with an .abort() method
+ */
+OO.ui.LookupElement.prototype.getLookupRequest = function () {
+       // Stub, implemented in subclass
+       return null;
+};
+
+/**
+ * Pre-process data returned by the request from #getLookupRequest.
+ *
+ * The return value of this function will be cached, and any further queries for the given value
+ * will use the cache rather than doing API requests.
+ *
+ * @abstract
+ * @param {Mixed} data Response from server
+ * @return {Mixed} Cached result data
+ */
+OO.ui.LookupElement.prototype.getLookupCacheDataFromResponse = function () {
+       // Stub, implemented in subclass
+       return [];
+};
+
+/**
+ * Get a list of menu option widgets from the (possibly cached) data returned by
+ * #getLookupCacheDataFromResponse.
+ *
+ * @abstract
+ * @param {Mixed} data Cached result data, usually an array
+ * @return {OO.ui.MenuOptionWidget[]} Menu items
+ */
+OO.ui.LookupElement.prototype.getLookupMenuOptionsFromData = function () {
+       // Stub, implemented in subclass
+       return [];
+};
+
 /**
  * Element containing an OO.ui.PopupWidget object.
  *
@@ -5834,7 +6163,7 @@ OO.ui.Toolbar.prototype.onPointerDown = function ( e ) {
 
 /**
  * Sets up handles and preloads required information for the toolbar to work.
- * This must be called immediately after it is attached to a visible document.
+ * This must be called after it is attached to a visible document and before doing anything else.
  */
 OO.ui.Toolbar.prototype.initialize = function () {
        this.initialized = true;
@@ -7375,6 +7704,51 @@ OO.ui.FieldLayout.prototype.setAlignment = function ( value ) {
        return this;
 };
 
+/**
+ * Layout made of a field, a button, and an optional label.
+ *
+ * @class
+ * @extends OO.ui.FieldLayout
+ *
+ * @constructor
+ * @param {OO.ui.Widget} fieldWidget Field widget
+ * @param {OO.ui.ButtonWidget} buttonWidget Button widget
+ * @param {Object} [config] Configuration options
+ * @cfg {string} [align='left'] Alignment mode, either 'left', 'right', 'top' or 'inline'
+ * @cfg {string} [help] Explanatory text shown as a '?' icon.
+ */
+OO.ui.ActionFieldLayout = function OoUiActionFieldLayout( fieldWidget, buttonWidget, config ) {
+       // Configuration initialization
+       config = $.extend( { align: 'left' }, config );
+
+       // Properties (must be set before parent constructor, which calls #getTagName)
+       this.fieldWidget = fieldWidget;
+       this.buttonWidget = buttonWidget;
+
+       // Parent constructor
+       OO.ui.ActionFieldLayout.super.call( this, fieldWidget, config );
+
+       // Mixin constructors
+       OO.ui.LabelElement.call( this, config );
+
+       // Properties
+       this.$button = this.$( '<div>' )
+               .addClass( 'oo-ui-actionFieldLayout-button' )
+               .append( this.buttonWidget.$element );
+
+       this.$input = this.$( '<div>' )
+               .addClass( 'oo-ui-actionFieldLayout-input' )
+               .append( this.fieldWidget.$element );
+
+       this.$field
+               .addClass( 'oo-ui-actionFieldLayout' )
+               .append( this.$input, this.$button );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.ActionFieldLayout, OO.ui.FieldLayout );
+
 /**
  * Layout made of a fieldset and optional legend.
  *
@@ -8508,6 +8882,7 @@ OO.ui.ItemWidget.prototype.setElementGroup = function ( group ) {
  *
  * @class
  * @abstract
+ * @deprecated Use LookupElement instead.
  *
  * @constructor
  * @param {OO.ui.TextInputWidget} input Input widget
index 398ea8b..0b61721 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs v1.1.3 optimised for jQuery
+ * OOjs v1.1.4 optimised for jQuery
  * https://www.mediawiki.org/wiki/OOjs
  *
- * Copyright 2011-2014 OOjs Team and other contributors.
+ * Copyright 2011-2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2014-11-17T19:17:29Z
+ * Date: 2015-01-23T20:11:25Z
  */
 ( function ( global ) {
 
@@ -170,7 +170,7 @@ oo.mixinClass = function ( targetFn, originFn ) {
  *
  * @param {Object} obj
  * @param {Mixed...} [keys]
- * @returns obj[arguments[1]][arguments[2]].... or undefined
+ * @return obj[arguments[1]][arguments[2]].... or undefined
  */
 oo.getProp = function ( obj ) {
        var i,
@@ -687,12 +687,15 @@ oo.isPlainObject = $.isPlainObject;
         * @return {boolean} If event was handled by at least one listener
         */
        oo.EventEmitter.prototype.emit = function ( event ) {
-               var i, len, binding, bindings, args, method;
+               var args = [],
+                       i, len, binding, bindings, method;
 
                if ( hasOwn.call( this.bindings, event ) ) {
                        // Slicing ensures that we don't get tripped up by event handlers that add/remove bindings
                        bindings = this.bindings[event].slice();
-                       args = Array.prototype.slice.call( arguments, 1 );
+                       for ( i = 1, len = arguments.length; i < len; i++ ) {
+                               args.push( arguments[i] );
+                       }
                        for ( i = 0, len = bindings.length; i < len; i++ ) {
                                binding = bindings[i];
                                if ( typeof binding.method === 'string' ) {
@@ -906,7 +909,8 @@ oo.Factory.prototype.register = function ( constructor ) {
  * @throws {Error} Unknown object name
  */
 oo.Factory.prototype.create = function ( name ) {
-       var args, obj,
+       var obj, i,
+               args = [],
                constructor = this.lookup( name );
 
        if ( !constructor ) {
@@ -914,7 +918,9 @@ oo.Factory.prototype.create = function ( name ) {
        }
 
        // Convert arguments to array and shift the first argument (name) off
-       args = Array.prototype.slice.call( arguments, 1 );
+       for ( i = 1; i < arguments.length; i++ ) {
+               args.push( arguments[i] );
+       }
 
        // We can't use the "new" operator with .apply directly because apply needs a
        // context. So instead just do what "new" does: create an object that inherits from
index 3918be7..8e1c3f0 100644 (file)
@@ -15,7 +15,7 @@
  */
 /**
  *
- * @description Create a sortable table with multi-column sorting capabilitys
+ * @description Create a sortable table with multi-column sorting capabilities
  *
  * @example $( 'table' ).tablesorter();
  * @desc Create a simple tablesorter interface.
diff --git a/resources/src/mediawiki.action/mediawiki.action.view.categoryPage.less b/resources/src/mediawiki.action/mediawiki.action.view.categoryPage.less
new file mode 100644 (file)
index 0000000..9a6fd31
--- /dev/null
@@ -0,0 +1,10 @@
+@import "mediawiki.mixins";
+
+.mw-category {
+       .column-count(1);
+}
+@media screen and ( min-width: 768px ) {
+       .mw-category {
+               .column-count(3);
+       }
+}
index 52e0d4e..e66d8f6 100644 (file)
@@ -11,9 +11,6 @@
                fragment = null,
                shouldChangeFragment, index;
 
-       // Clear internal mw.config entries, so that no one tries to depend on them
-       mw.config.set( 'wgInternalRedirectTargetUrl', null );
-
        index = canonical.indexOf( '#' );
        if ( index !== -1 ) {
                fragment = canonical.slice( index );
index c84c884..e6e8a5a 100644 (file)
        -webkit-box-shadow: @value; // Safari 3.1-5.0, iOS 3.2-4.3, Android 2.1-3.0
        box-shadow: @value; // Chrome 10+, Firefox 4+, IE 9+, Safari 5.1+, Opera 11+, iOS 5+, Android 4+
 }
+
+.column-count(@value) {
+       -webkit-column-count: @value;
+       -moz-column-count: @value;
+       -o-column-count: @value;
+       column-count: @value;
+}
\ No newline at end of file
index 247f814..f5289de 100644 (file)
@@ -20,7 +20,7 @@
                if ( !$submit.length ) {
                        return;
                }
-               tabIndex = $submit.prop( 'tabindex' ) - 1;
+               tabIndex = $submit.prop( 'tabIndex' ) - 1;
                $captchaStuff = $content.find( '.captcha' );
 
                if ( $captchaStuff.length ) {
index be0c638..4829f5f 100644 (file)
 @checkboxSize: 2em;
 
 // We use the not selector to cancel out styling on IE 8 and below
-.mw-ui-checkbox:not(#noop) {
+// We also disable this styling on javascript disabled devices. This fixes the issue with
+// Opera Mini where checking/unchecking doesn't apply styling but potentially leaves other
+// more capable browsers with unstyled checkboxes.
+.client-js .mw-ui-checkbox:not(#noop) {
        // Position relatively so we can make use of absolute pseudo elements
        position: relative;
-       line-height: @checkboxSize;
+       display: table;
 
        * {
                // reset font sizes (see bug 72727)
                max-width: none;
                margin: 0;
                margin-right: 0.4em;
+               display: table-cell;
+
+               & + label {
+                       display: table-cell;
+               }
 
                // the pseudo before element of the label after the checkbox now looks like a checkbox
                & + label::before {
                        border-radius: @borderRadius;
                        width: @checkboxSize;
                        height: @checkboxSize;
+                       line-height: @checkboxSize;
                        background-color: #fff;
                        border: 1px solid @colorGray7;
+                       // align the checkbox to middle of the text
+                       top: 50%;
+                       margin-top: -1em;
                        .background-image-svg('images/checked.svg', 'images/checked.png');
                        .background-size( @checkboxSize - 0.2em, @checkboxSize - 0.2em );
                        background-repeat: no-repeat;
index 28d597e..67f6811 100644 (file)
@@ -36,9 +36,6 @@
        display: block;
        vertical-align: middle;
        border-radius: @borderRadius;
-       // Override user agent stylesheet properties. Instead use parent element.
-       color: inherit;
-       background-color: inherit;
        font-family: inherit;
        font-size: inherit;
        line-height: inherit;
index bb012eb..1928699 100644 (file)
 
 @radioSize: 2em;
 
-// We use the not selector to cancel out styling on IE 8 and below
-.mw-ui-radio:not(#noop) {
+// We use the not selector to cancel out styling on IE 8 and below.
+// We also disable this styling on javascript disabled devices. This fixes the issue with
+// Opera Mini where checking/unchecking doesn't apply styling but potentially leaves other
+// more capable browsers with unstyled radio buttons.
+.client-js .mw-ui-radio:not(#noop) {
        // Position relatively so we can make use of absolute pseudo elements
        position: relative;
        line-height: @radioSize;
index 4afccda..9e20264 100644 (file)
        padding: 0.5em 1em;
 }
 
-.mw-json .value {
+.mw-json .value,
+.mw-json-single-value {
        background-color: #dcfae3;
        font-family: monospace, monospace;
        white-space: pre-wrap;
 }
 
+.mw-json-single-value {
+       background-color: #eee;
+}
+
 .mw-json-empty {
        background-color: #fff;
        font-style: italic;
index 6f9f0ab..85f4ffa 100644 (file)
                 * @param {string|null} value Value of cookie. If `value` is `null` then this method will
                 *   instead remove a cookie by name of `key`.
                 * @param {Object|Date} [options] Options object, or expiry date
-                * @param {Date|null} [options.expires=wgCookieExpiration] The expiry date of the cookie.
+                * @param {Date|null} [options.expires] The expiry date of the cookie.
                 *
-                *   Default cookie expiration is based on `wgCookieExpiration`.  If `wgCookieExpiration` is
-                *   0, a session cookie is set (expires when the browser is closed). For non-zero values of
-                *   `wgCookieExpiration`, the cookie expires `wgCookieExpiration` seconds from now.
+                *   If `options.expires` is null, then a session cookie is set.
+                *
+                *   By default cookie expiration is based on `wgCookieExpiration`. Similar to `WebResponse`
+                *   in PHP, we set a session cookie if `wgCookieExpiration` is 0. And for non-zero values
+                *   it is interpreted as lifetime in seconds.
                 *
-                *   If options.expires is null, then a session cookie is set.
                 * @param {string} [options.prefix=wgCookiePrefix] The prefix of the key
                 * @param {string} [options.domain=wgCookieDomain] The domain attribute of the cookie
                 * @param {string} [options.path=wgCookiePath] The path attribute of the cookie
index 8e9fc89..3ad2be5 100644 (file)
@@ -7,6 +7,9 @@
 /*jshint devel:true */
 ( function ( mw, $ ) {
 
+       var inspect,
+               hasOwn = Object.prototype.hasOwnProperty;
+
        function sortByProperty( array, prop, descending ) {
                var order = descending ? -1 : 1;
                return array.sort( function ( a, b ) {
                if ( !$.isNumeric( bytes ) || bytes === 0 ) { return bytes; }
                var i = 0, units = [ '', ' kB', ' MB', ' GB', ' TB', ' PB' ];
                for ( ; bytes >= 1024; bytes /= 1024 ) { i++; }
-               return bytes.toFixed( 1 ) + units[i];
+               // Maintain one decimal for kB and above, but don't
+               // add ".0" for bytes.
+               return bytes.toFixed( i > 0 ? 1 : 0 ) + units[i];
        }
 
        /**
         * @class mw.inspect
         * @singleton
         */
-       var inspect = {
+       inspect = {
 
                /**
                 * Return a map of all dependency relationships between loaded modules.
                        $.each( modules, function ( moduleIndex, moduleName ) {
                                var dependencies = mw.loader.moduleRegistry[moduleName].dependencies || [];
 
-                               graph[moduleName] = graph[moduleName] || { requiredBy: [] };
+                               if ( !hasOwn.call( graph, moduleName ) ) {
+                                       graph[moduleName] = { requiredBy: [] };
+                               }
                                graph[moduleName].requires = dependencies;
 
                                $.each( dependencies, function ( depIndex, depName ) {
-                                       graph[depName] = graph[depName] || { requiredBy: [] };
+                                       if ( !hasOwn.call( graph, depName ) ) {
+                                               graph[depName] = { requiredBy: [] };
+                                       }
                                        graph[depName].requiredBy.push( moduleName );
                                } );
                        } );
index c7858ab..bed5cb5 100644 (file)
                                        if ( typeof module !== 'string' ) {
                                                throw new Error( 'module must be of type string, not ' + typeof module );
                                        }
-                                       if ( !$.isFunction( script ) && !$.isArray( script ) ) {
+                                       if ( script && !$.isFunction( script ) && !$.isArray( script ) ) {
                                                throw new Error( 'script must be of type function or array, not ' + typeof script );
                                        }
                                        if ( style && !$.isPlainObject( style ) ) {
                                                throw new Error( 'module already implemented: ' + module );
                                        }
                                        // Attach components
-                                       registry[module].script = script;
+                                       registry[module].script = script || [];
                                        registry[module].style = style || {};
                                        registry[module].messages = msgs || {};
-                                       // Templates are optional (for back-compat)
                                        registry[module].templates = templates || {};
                                        // The module may already have been marked as erroneous
                                        if ( $.inArray( registry[module].state, ['error', 'missing'] ) === -1 ) {
index 7eb152a..18aeabb 100644 (file)
@@ -111,12 +111,6 @@ Template:echo_with_div
 <div>{{{1}}}</div>
 !! endarticle
 
-!! article
-Template:attr_str
-!! text
-{{{1}}}="{{{2}}}"
-!! endarticle
-
 !! article
 Template:table_attribs
 !! text
@@ -137,6 +131,15 @@ Template:image_attribs
 [[File:foobar.jpg|</noinclude>right|Caption text<noinclude>]]</noinclude>
 !! endarticle
 
+## See T48811 for details
+!! article
+Template:mixed_attr_content_template
+!! text
+style="color:red;" title="T48811"
+|-
+|foo
+!! endarticle
+
 !! article
 A?b
 !! text
@@ -706,7 +709,7 @@ parsoid=wt2html
 !! test
 Italics and bold: 4-quote opening sequence: (4,4) w/ nowiki
 !! wikitext
-'<nowiki/>'''foo'<nowiki/>'''
+'<nowiki/>'''foo''''
 !! html
 <p>'<b>foo'</b>
 </p>
@@ -1322,10 +1325,10 @@ parsoid
 Properly escape nowiki when combined with other wiki markup
 !! options
 parsoid=html2wt
-!! wikitext
-<nowiki>* &lt;/nowiki&gt;</nowiki> tag
 !! html
 <p>* &lt;/nowiki&gt; tag</p>
+!! wikitext
+<nowiki>* &lt;/nowiki&gt;</nowiki> tag
 !! end
 
 ###
@@ -2519,6 +2522,18 @@ parsoid
 <p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a : b"}},"i":0}}]}'>a<span typeof="mw:Placeholder" data-parsoid='{"isDisplayHack":true}'> </span>: b</p>
 !! end
 
+## Bug T73412
+!! test
+Templates: Preserve blank parameter names
+!! wikitext
+{{echo|=foo}}
+!! html/php
+<p>{{{1}}}
+</p>
+!! html/parsoid
+<p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"":{"wt":"foo"}},"i":0}}]}'>{{{1}}}</p>
+!! end
+
 ###
 ### Parsoid-centric tests for testing RT edge cases for pre
 ###
@@ -3201,10 +3216,12 @@ Definition list with wikilink containing colon
 Definition list with news link containing colon
 !! wikitext
 ;  news:alt.wikipedia.rox: This isn't even a real newsgroup!
-!! html
+!! html/php
 <dl><dt>  <a rel="nofollow" class="external free" href="news:alt.wikipedia.rox">news:alt.wikipedia.rox</a></dt>
 <dd> This isn't even a real newsgroup!</dd></dl>
 
+!! html/parsoid
+<dl><dt>  <a rel="mw:ExtLink" href="news:alt.wikipedia.rox" data-parsoid='{"stx":"url"}'>news:alt.wikipedia.rox</a></dt><dd data-parsoid='{"stx":"row"}'> This isn't even a real newsgroup!</dd></dl>
 !! end
 
 !! test
@@ -4188,7 +4205,7 @@ http://example.com/url_with_entity&#160;
 http://example.com/url_with_entity&lt;
 http://example.com/url_with_entity&#x3C;
 http://example.com/url_with_entity&#60;
-!! html
+!! html/php
 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>,
 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>;
 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>\
@@ -4206,6 +4223,23 @@ http://example.com/url_with_entity&#60;
 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity%3C">http://example.com/url_with_entity%3C</a>
 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity%3C">http://example.com/url_with_entity%3C</a>
 </p>
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a>,
+<a rel="mw:ExtLink" href="http://example.com">http://example.com</a>;
+<a rel="mw:ExtLink" href="http://example.com">http://example.com</a>\
+<a rel="mw:ExtLink" href="http://example.com">http://example.com</a>.
+<a rel="mw:ExtLink" href="http://example.com">http://example.com</a>:
+<a rel="mw:ExtLink" href="http://example.com">http://example.com</a>!
+<a rel="mw:ExtLink" href="http://example.com">http://example.com</a>?
+<a rel="mw:ExtLink" href="http://example.com">http://example.com</a>)
+<a rel="mw:ExtLink" href="http://example.com/url_with_(brackets)">http://example.com/url_with_(brackets)</a>
+(<a rel="mw:ExtLink" href="http://example.com/url_without_brackets">http://example.com/url_without_brackets</a>)
+<a rel="mw:ExtLink" href="http://example.com/url_with_entity ">http://example.com/url_with_entity </a>
+<a rel="mw:ExtLink" href="http://example.com/url_with_entity ">http://example.com/url_with_entity </a>
+<a rel="mw:ExtLink" href="http://example.com/url_with_entity ">http://example.com/url_with_entity </a>
+<a rel="mw:ExtLink" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a><span typeof="mw:Entity">&lt;</span>
+<a rel="mw:ExtLink" href="http://example.com/url_with_entity&lt;">http://example.com/url_with_entity&lt;</a>
+<a rel="mw:ExtLink" href="http://example.com/url_with_entity&lt;">http://example.com/url_with_entity&lt;</a></p>
 !! end
 
 !! test
@@ -4310,10 +4344,12 @@ URL in text: [http://example.com http://example.com]
 External links: Clickable images
 !! wikitext
 ja-style clickable images: [http://example.com http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png]
-!! html
+!! html/php
 <p>ja-style clickable images: <a rel="nofollow" class="external text" href="http://example.com"><img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" /></a>
 </p>
-!!end
+!! html/parsoid
+<p>ja-style clickable images: <a rel="mw:ExtLink" href="http://example.com"><img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" data-parsoid='{"type":"extlink"}'/></a></p>
+!! end
 
 !! test
 External links: raw ampersand
@@ -4503,10 +4539,12 @@ http://www.example.com/<hello>
 BUG 289: literal ">"-token in URL-tail
 !! wikitext
 http://www.example.com/<b>html</b>
-!! html
+!! html/php
 <p><a rel="nofollow" class="external free" href="http://www.example.com/">http://www.example.com/</a><b>html</b>
 </p>
-!!end
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://www.example.com/" data-parsoid='{"stx":"url"}'>http://www.example.com/</a><b data-parsoid='{"stx":"html"}'>html</b></p>
+!! end
 
 !! test
 BUG 289: ">"-token in bracketed URL
@@ -5971,6 +6009,11 @@ parsoid=wt2html,wt2wt
 Parsoid: Default to a newline after tables in new content (bug 51219)
 !! options
 parsoid=html2wt
+!! html
+<table><tbody>
+<tr><td>foo</td></tr></tbody></table> bar
+<table><tbody>
+<tr><td>baz</td></tr></tbody></table><b>quux</b>
 !! wikitext
 {|
 |foo
@@ -5980,23 +6023,18 @@ parsoid=html2wt
 |baz
 |}
 '''quux'''
-!! html
-<table><tbody>
-<tr><td>foo</td></tr></tbody></table> bar
-<table><tbody>
-<tr><td>baz</td></tr></tbody></table><b>quux</b>
 !! end
 
 !! test
 Parsoid: newline inducing block nodes don't suppress <nowiki>
 !! options
 parsoid=html2wt
+!! html
+ a<h1>foo</h1>
 !! wikitext
 <nowiki> </nowiki>a
 
 = foo =
-!! html
- a<h1>foo</h1>
 !! end
 
 !! test
@@ -6231,9 +6269,11 @@ Bug 43661: Piped links with identical prefixes
 Link with HTML entity in suffix / tail
 !! wikitext
 [[Main Page]]&quot;, [[Main Page]]&#97;
-!! html
+!! html/php
 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>&quot;, <a href="/wiki/Main_Page" title="Main Page">Main Page</a>&#97;
 </p>
+!! html/parsoid
+<p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a><span typeof="mw:Entity" data-parsoid='{"src":"&amp;quot;","srcContent":"\""}'>"</span>, <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a><span typeof="mw:Entity" data-parsoid='{"src":"&amp;#97;","srcContent":"a"}'>a</span></p>
 !! end
 
 !! test
@@ -6268,10 +6308,13 @@ Piped link with extlink-like text
 !! wikitext
 [[Main Page|[bar]]]
 [[Main Page|This is a [bar]]]
-!! html
+!! html/php
 <p><a href="/wiki/Main_Page" title="Main Page">[bar]</a>
 <a href="/wiki/Main_Page" title="Main Page">This is a [bar]</a>
 </p>
+!! html/parsoid
+<p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page" data-parsoid='{"stx":"piped"}'>[bar]</a>
+<a rel="mw:WikiLink" href="./Main_Page" title="Main Page" data-parsoid='{"stx":"piped"}'>This is a [bar]</a></p>
 !! end
 
 !! test
@@ -6336,11 +6379,10 @@ Namespace takes precedence over interwiki link (bug 51680)
 Link to namespace preferred over interwiki with correct rel attribute
 !! options
 parsoid=html2wt,html2html
+!! html
+<p><a rel="mw:WikiLink" href="./MemoryAlpha:AlphaTest" title="MemoryAlpha:AlphaTest">MemoryAlpha:AlphaTest</a></p>
 !! wikitext
 [[MemoryAlpha:AlphaTest]]
-!! html
-<p><a rel="mw:WikiLink" href="./MemoryAlpha:AlphaTest" title="MemoryAlpha:AlphaTest">MemoryAlpha:AlphaTest</a>
-</p>
 !! end
 
 !! test
@@ -6845,10 +6887,10 @@ mótmælenda[[söfnuður|söfnuðir]]xxx
 Parsoid link trail escaping
 !! options
 parsoid=html2wt,html2html
-!! wikitext
-[[apple]]<nowiki/>s
 !! html
 <p><a rel="mw:WikiLink" href="Apple" title="Apple">apple</a>s</p>
+!! wikitext
+[[apple]]<nowiki/>s
 !! end
 
 !! test
@@ -6856,10 +6898,10 @@ Parsoid link prefix escaping
 !! options
 language=is
 parsoid=html2wt,html2html
-!! wikitext
-Aðrir mótmælenda<nowiki/>[[söfnuður]]
 !! html
 <p>Aðrir mótmælenda<a rel="mw:WikiLink" href="Söfnuður" title="Söfnuður">söfnuður</a></p>
+!! wikitext
+Aðrir mótmælenda<nowiki/>[[söfnuður]]
 !! end
 
 !! test
@@ -7228,13 +7270,13 @@ language=ln
 Parsoid bug 53221: Wikilinks should be properly entity-escaped
 !! options
 parsoid=html2wt
+!! html
+<p>He&amp;nbsp;llo <a href="Foo" rel="mw:WikiLink">He&amp;nbsp;llo</a></p>
+<p>He&amp;nbsp;llo <a href="He&amp;nbsp;llo" rel="mw:WikiLink">He&amp;nbsp;llo</a></p>
 !! wikitext
 He&amp;nbsp;llo [[Foo|He&amp;nbsp;llo]]
 
 He&amp;nbsp;llo [[He&amp;nbsp;llo]]
-!! html
-<p>He&amp;nbsp;llo <a href="Foo" rel="mw:WikiLink">He&amp;nbsp;llo</a></p>
-<p>He&amp;nbsp;llo <a href="He&amp;nbsp;llo" rel="mw:WikiLink">He&amp;nbsp;llo</a></p>
 !! end
 
 !! test
@@ -7498,11 +7540,11 @@ language=is
 New redirect
 !! options
 parsoid=html2wt
+!! html
+<p>Foo<link rel="mw:PageProp/redirect" href="./Foo"></p>
 !! wikitext
 Foo
 #REDIRECT [[Foo]]
-!! html
-<p>Foo<link rel="mw:PageProp/redirect" href="./Foo"></p>
 !! end
 
 ##
@@ -8875,10 +8917,10 @@ hi+world%3F%21
 Magic Word: prioritize type info over data-parsoid
 !! options
 parsoid=html2wt
-!! wikitext
-__FORCETOC__
 !! html
 <meta property="mw:PageProp/forcetoc" data-parsoid='{"src":"__NOTOC__","magicSrc":"__NOTOC__"}'/>
+!! wikitext
+__FORCETOC__
 !! end
 
 !! test
@@ -8960,9 +9002,11 @@ ISBN 0-306-40615-2
 Magic links: ISBN (bug 65278)
 !! wikitext
 This is ISBN 978-0-316-09811-3 but thisISBN 978-0-316-09811-3 is not ISBN 978-0-316-09811-3linked.
-!! html
+!! html/php
 <p>This is <a href="/wiki/Special:BookSources/9780316098113" class="internal mw-magiclink-isbn">ISBN 978-0-316-09811-3</a> but thisISBN 978-0-316-09811-3 is not ISBN 978-0-316-09811-3linked.
 </p>
+!! html/parsoid
+<p>This is <a href="./Special:BookSources/9780316098113" rel="mw:ExtLink">ISBN 978-0-316-09811-3</a> but thisISBN 978-0-316-09811-3 is not ISBN 978-0-316-09811-3linked.</p>
 !! end
 
 !! test
@@ -9309,15 +9353,6 @@ Template parameter as link source
 </p>
 !! end
 
-!!test
-Template-generated attribute string (k='v')
-!! wikitext
-<span {{attr_str|id|v1}}>bar</span>
-!! html
-<p><span id="v1">bar</span>
-</p>
-!!end
-
 !!article
 Template:paramtest2
 !! text
@@ -10160,6 +10195,9 @@ Templates: HTML Tag: 6. Generation of end piece of HTML attr value
 
 !!end
 
+# SSS FIXME: While it is great we added support for all this,
+# do we want to make this part of the spec? Maybe we want to
+# deprecate this kind of usage in the future?
 !!test
 Templates: HTML Tag: 7. Generation of partial attribute key string
 !! wikitext
@@ -10169,6 +10207,50 @@ Templates: HTML Tag: 7. Generation of partial attribute key string
 
 !!end
 
+!! test
+Templates: HTML Tag: 8. Template-generated attribute (k=v)
+!! wikitext
+<div {{echo|1=id="v1"}}>bar</div>
+!! html
+<div id="v1">bar</div>
+
+!!end
+
+!! test
+Templates: HTML Tag: 9. Multiple template-generated attributes
+!! wikitext
+<div {{echo|1=id="v1" title="foo"}}>bar</div>
+!! html
+<div id="v1" title="foo">bar</div>
+
+!!end
+
+!! test
+Templates: Support for templates generating attributes and content
+!! wikitext
+{| {{mixed_attr_content_template}}
+|-
+|bar
+|}
+!! html/php
+<table style="color:red;" title="T48811">
+
+<tr>
+<td>foo
+</td></tr>
+<tr>
+<td>bar
+</td></tr></table>
+
+!! html/parsoid
+<table style="color:red;" title="T48811" about="#mwt1" typeof="mw:Transclusion mw:ExpandedAttrs" data-mw='{"parts":["{| ",{"template":{"target":{"wt":"mixed_attr_content_template","href":"./Template:Mixed_attr_content_template"},"params":{},"i":0}},"\n|-\n|bar\n|}"]}'>
+<tbody><tr>
+<td>foo</td></tr>
+<tr>
+<td>bar</td></tr>
+</tbody></table>
+!!end
+
 !!test
 Templates: HTML Tables: 1. Generating start of a HTML table
 !! wikitext
@@ -11142,26 +11224,26 @@ parsoid=wt2html
 Parsoid: Escape nowiki with trailing space in tags
 !! options
 parsoid=html2wt
+!! html
+<p>&lt;nowiki &gt; foo &lt/nowiki ></p>
+<p>a&lt;nowiki /&gt;b</p>
+<p>c&lt;nowiki/ &gt;d</p>
 !! wikitext
 &lt;nowiki &gt; foo &lt;/nowiki &gt;
 
 a&lt;nowiki /&gt;b
 
 c&lt;nowiki/ &gt;d
-!! html
-<p>&lt;nowiki &gt; foo &lt/nowiki ></p>
-<p>a&lt;nowiki /&gt;b</p>
-<p>c&lt;nowiki/ &gt;d</p>
 !! end
 
 !! test
 Parsoid: Escape weird noWikI capitalizations
 !! options
 parsoid=html2wt
-!! wikitext
-&lt;noWikI &gt; foo &lt;/NoWikI &gt;
 !! html
 <p>&lt;noWikI &gt; foo &lt/NoWikI ></p>
+!! wikitext
+&lt;noWikI &gt; foo &lt;/NoWikI &gt;
 !! end
 
 ###
@@ -11389,6 +11471,17 @@ Link with empty target
 </p>
 !! end
 
+!! test
+Image with link trail
+!! wikitext
+Linktrails should not work for images: [[File:Foobar.jpg]]s
+!! html/php
+<p>Linktrails should not work for images: <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>s
+</p>
+!! html/parsoid
+<p>Linktrails should not work for images: <span class="mw-default-size" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span>s</p>
+!! end
+
 !! test
 Image with empty attribute
 !! options
@@ -13351,10 +13444,12 @@ __TOC__
 !! test
 BUG 1219 URL next to image (good)
 !! wikitext
-http://example.com [[Image:foobar.jpg]]
-!! html
+http://example.com [[File:Foobar.jpg]]
+!! html/php
 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a> <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a> <span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !!end
 
 !! test
@@ -13577,10 +13672,12 @@ c3-->
 !! test
 BUG 1219 URL next to image (broken)
 !! wikitext
-http://example.com[[Image:foobar.jpg]]
-!! html
+http://example.com[[File:Foobar.jpg]]
+!! html/php
 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a><span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !!end
 
 !! test
@@ -15308,32 +15405,38 @@ Fuzz testing: Parser25 (bug 6055)
 Fuzz testing: URL adjacent extension (with space, clean)
 !! wikitext
 http://example.com <nowiki>junk</nowiki>
-!! html
+!! html/php
 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a> junk
 </p>
-!!end
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a> <span typeof="mw:Nowiki">junk</span></p>
+!! end
 
 !!test
 Fuzz testing: URL adjacent extension (no space, dirty; nowiki)
 !! wikitext
 http://example.com<nowiki>junk</nowiki>
-!! html
+!! html/php
 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>junk
 </p>
-!!end
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a><span typeof="mw:Nowiki">junk</span></p>
+!! end
 
 !!test
 Fuzz testing: URL adjacent extension (no space, dirty; pre)
 !! wikitext
 http://example.com<pre>junk</pre>
-!! html
+!! html/php
 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a><pre>junk</pre>
 
-!! html+tidy
+!! html/php+tidy
 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></p>
 <pre>
 junk
 </pre>
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a></p><pre data-parsoid='{"stx":"html"}'>junk</pre>
 !!end
 
 !!test
@@ -16792,6 +16895,8 @@ ISBN  978-0-1234-56&#x20;789
 </p>
 !! html+tidy
 <p><a href="/wiki/Special:BookSources/9780123456" class="internal mw-magiclink-isbn">ISBN 978-0-1234-56</a> 789</p>
+!! html/parsoid
+<p><a href="./Special:BookSources/9780123456" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>ISBN 978-0-1234-56</a><span typeof="mw:Entity" data-parsoid='{"src":"&amp;#x20;","srcContent":" "}'> </span>789</p>
 !! end
 
 !! test
@@ -16807,24 +16912,37 @@ ISBN
 Double ISBN
 !! wikitext
 ISBN ISBN 1234567890
-!! html
+!! html/php
 <p>ISBN <a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>
 </p>
+!! html/parsoid
+<p>ISBN <a href="./Special:BookSources/1234567890" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a></p>
 !! end
 
 !! test
 ISBN with an X
 !! wikitext
 ISBN 3-462-04561-X
-!! html
+ISBN 080442957X
+ISBN 978080442957X
+!! html/php
 <p><a href="/wiki/Special:BookSources/346204561X" class="internal mw-magiclink-isbn">ISBN 3-462-04561-X</a>
+<a href="/wiki/Special:BookSources/080442957X" class="internal mw-magiclink-isbn">ISBN 080442957X</a>
+<a href="/wiki/Special:BookSources/978080442957X" class="internal mw-magiclink-isbn">ISBN 978080442957X</a>
 </p>
+!! html/parsoid
+<p><a href="./Special:BookSources/346204561X" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>ISBN 3-462-04561-X</a>
+<a href="./Special:BookSources/080442957X" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>ISBN 080442957X</a>
+<a href="./Special:BookSources/978080442957X" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>ISBN 978080442957X</a></p>
 !! end
 
 !! test
 ISBN with empty prefix (parsoid test)
 !! wikitext
 ISBN 1234567890
+!! html/php
+<p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>
+</p>
 !! html/parsoid
 <p><a href="Special:BookSources/1234567890" rel="mw:ExtLink">ISBN 1234567890</a></p>
 !! end
@@ -16833,9 +16951,11 @@ ISBN 1234567890
 Bug 22905: <abbr> followed by ISBN followed by </a>
 !! wikitext
 <abbr>(fr)</abbr> ISBN 2753300917 [http://www.example.com example.com]
-!! html
+!! html/php
 <p><abbr>(fr)</abbr> <a href="/wiki/Special:BookSources/2753300917" class="internal mw-magiclink-isbn">ISBN 2753300917</a> <a rel="nofollow" class="external text" href="http://www.example.com">example.com</a>
 </p>
+!! html/parsoid
+<p><abbr data-parsoid='{"stx":"html"}'>(fr)</abbr> <a href="./Special:BookSources/2753300917" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>ISBN 2753300917</a> <a rel="mw:ExtLink" href="http://www.example.com">example.com</a></p>
 !! end
 
 !! test
@@ -19465,9 +19585,9 @@ A <ref>foo</ref>
 B <ref name="x">foo</ref>
 C <ref name="y" />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
-B <span about="#mwt4" class="reference" id="cite_ref-x-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}'><a href="#cite_note-x-2">[2]</a></span>
-C <span about="#mwt6" class="reference" id="cite_ref-y-3-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"y"}}'><a href="#cite_note-y-3">[3]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-x_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}'><a href="#cite_note-x-2">[2]</a></span>
+C <span about="#mwt6" class="reference" id="cite_ref-y_3-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"y"}}'><a href="#cite_note-y-3">[3]</a></span></p>
 !!end
 
 !!test
@@ -19478,8 +19598,8 @@ parsoid
 A <ref name="x">foo</ref>
 B <ref name="x" />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-x-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
-B <span about="#mwt4" class="reference" id="cite_ref-x-1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-x_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span></p>
 !!end
 
 !!test
@@ -19491,9 +19611,9 @@ A <ref name="x">foo</ref>
 B <ref name=" x " />
 C <ref name= x  />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-x-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
-B <span about="#mwt4" class="reference" id="cite_ref-x-1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
-C <span about="#mwt6" class="reference" id="cite_ref-x-1-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-x_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
+C <span about="#mwt6" class="reference" id="cite_ref-x_1-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span></p>
 !!end
 
 # NOTE: constructor is a predefined property in JS and constructor as a ref-name can clash with it if not handled properly)
@@ -19504,7 +19624,7 @@ parsoid
 !! wikitext
 A <ref name="constructor">foo</ref>
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-constructor-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"constructor"}}'><a href="#cite_note-constructor-1">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-constructor_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"constructor"}}'><a href="#cite_note-constructor-1">[1]</a></span></p>
 !!end
 
 !!test
@@ -19518,10 +19638,10 @@ A <ref>
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"This is a &lt;b data-parsoid=&#39;{\"dsr\":[19,40,3,3]}&#39;>&lt;a rel=\"mw:WikiLink\" href=\"./Bolded_link\" title=\"Bolded link\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"./Bolded_link\"},\"sa\":{\"href\":\"bolded link\"},\"dsr\":[22,37,2,2]}&#39;>bolded link&lt;/a>&lt;/b> and this is a &lt;span about=\"#mwt3\" typeof=\"mw:Transclusion\" data-parsoid=&#39;{\"pi\":[[{\"k\":\"1\",\"spc\":[\"\",\"\",\"\",\"\"]}]],\"dsr\":[55,76,null,null]}&#39; data-mw=&#39;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"transclusion\"}},\"i\":0}}]}&#39;>transclusion&lt;/span>\n"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"This is a &lt;b data-parsoid=&#39;{\"dsr\":[19,40,3,3]}&#39;>&lt;a rel=\"mw:WikiLink\" href=\"./Bolded_link\" title=\"Bolded link\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"./Bolded_link\"},\"sa\":{\"href\":\"bolded link\"},\"dsr\":[22,37,2,2]}&#39;>bolded link&lt;/a>&lt;/b> and this is a &lt;span about=\"#mwt3\" typeof=\"mw:Transclusion\" data-parsoid=&#39;{\"pi\":[[{\"k\":\"1\",\"spc\":[\"\",\"\",\"\",\"\"]}]],\"dsr\":[55,76,null,null]}&#39; data-mw=&#39;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"transclusion\"}},\"i\":0}}]}&#39;>transclusion&lt;/span>\n"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
 <ol class="references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> This is a <b><a rel="mw:WikiLink" href="./Bolded_link" title="Bolded link">bolded link</a></b> and this is a <span about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"transclusion"}},"i":0}}]}'>transclusion</span>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> This is a <b><a rel="mw:WikiLink" href="./Bolded_link" title="Bolded link">bolded link</a></b> and this is a <span about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"transclusion"}},"i":0}}]}'>transclusion</span>
 </li>
 </ol>
 !!end
@@ -19539,10 +19659,10 @@ A <ref>
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo\n bar\n baz\n"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo\n bar\n baz\n"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo
  bar
  baz
 </li>
@@ -19569,10 +19689,10 @@ booz
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo\n\nbar\n\n\nbaz\n\n\n\nbooz\n"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo\n\nbar\n\n\nbaz\n\n\n\nbooz\n"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo
 
 bar
 
@@ -19595,9 +19715,9 @@ A <ref> foo {{echo|</ref> B C}}
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo &lt;span typeof=\"mw:Nowiki\" data-parsoid=&#39;{\"src\":\"{{\",\"dsr\":[12,14,0,0]}&#39;>{{&lt;/span>echo|"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C<span typeof="mw:Nowiki">}}</span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo &lt;span typeof=\"mw:Nowiki\" data-parsoid=&#39;{\"src\":\"{{\",\"dsr\":[12,14,0,0]}&#39;>{{&lt;/span>echo|"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C<span typeof="mw:Nowiki">}}</span></p>
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo <span typeof="mw:Nowiki">{{</span>echo|</li>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo <span typeof="mw:Nowiki">{{</span>echo|</li>
 </ol>
 !!end
 
@@ -19609,9 +19729,9 @@ parsoid
 A <ref> foo <!--</ref> B C
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo &lt;!---->"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C</p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo &lt;!---->"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C</p>
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo <!----></li>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo <!----></li>
 </ol>
 !!end
 
@@ -19624,11 +19744,11 @@ A <ref> <b> foo </ref> B C
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"&lt;b data-parsoid=&#39;{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[8,16,3,0]}&#39;> foo &lt;/b>"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C</p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"&lt;b data-parsoid=&#39;{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[8,16,3,0]}&#39;> foo &lt;/b>"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C</p>
 
 
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> <b data-parsoid='{"stx":"html","autoInsertedEnd":true}'> foo </b></li>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <b data-parsoid='{"stx":"html","autoInsertedEnd":true}'> foo </b></li>
 </ol>
 !!end
 
@@ -19640,8 +19760,8 @@ parsoid
 A <ref>foo</ref> B
 C <ref>bar</ref> D
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B
-C <span about="#mwt4" class="reference" id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{}}'><a href="#cite_note-2">[2]</a></span> D</p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B
+C <span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{}}'><a href="#cite_note-2">[2]</a></span> D</p>
 !!end
 
 !!test
 <p><!--the newline at the end of this line moves out of the p-tag-->a</p>
 
 
-<p>b<!--the newline at the end of this line stays inside the p-tag--> <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="#cite_note-1">[1]</a></span>
-<span about="#mwt4" class="reference" id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="#cite_note-2">[2]</a></span></p>
+<p>b<!--the newline at the end of this line stays inside the p-tag--> <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="#cite_note-1">[1]</a></span>
+<span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="#cite_note-2">[2]</a></span></p>
 
 <p>c</p>
 !!end
@@ -19674,8 +19794,8 @@ parsoid
 <ref>bar
 </ref> B
 !! html
-<p><span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> A
-<span about="#mwt4" class="reference" id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar\n"},"attrs":{}}'><a href="#cite_note-2">[2]</a></span> B</p>
+<p><span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> A
+<span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar\n"},"attrs":{}}'><a href="#cite_note-2">[2]</a></span> B</p>
 !!end
 
 !!test
@@ -19687,10 +19807,10 @@ parsoid
 
 <references />
 !! html
-<p><span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo &amp;lt;ref>bar&amp;lt;/ref> baz"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
+<p><span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo &amp;lt;ref>bar&amp;lt;/ref> baz"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
 <ol class="references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo &lt;ref>bar&lt;/ref> baz</li>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo &lt;ref>bar&lt;/ref> baz</li>
 </ol>
 !!end
 
@@ -19704,10 +19824,10 @@ B1 <ref name="b" /> B2 <ref name="b">bar</ref>
 
 <references />
 !! html
-<p>A1 <span about="#mwt3" class="reference" id="cite_ref-a-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span> A2 <span about="#mwt4" class="reference" id="cite_ref-a-1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span>
-B1 <span about="#mwt7" class="reference" id="cite_ref-b-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span> B2 <span about="#mwt8" class="reference" id="cite_ref-b-2-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span></p>
+<p>A1 <span about="#mwt3" class="reference" id="cite_ref-a_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span> A2 <span about="#mwt4" class="reference" id="cite_ref-a_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span>
+B1 <span about="#mwt7" class="reference" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span> B2 <span about="#mwt8" class="reference" id="cite_ref-b_2-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-a-1-0">1.0</a> <a href="#cite_ref-a-1-1">1.1</a></span> foo</li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy">↑ <a href="#cite_ref-b-2-0">2.0</a> <a href="#cite_ref-b-2-1">2.1</a></span> bar</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-a_1-0">1.0</a> <a href="#cite_ref-a_1-1">1.1</a></span> foo</li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy">↑ <a href="#cite_ref-b_2-0">2.0</a> <a href="#cite_ref-b_2-1">2.1</a></span> bar</li>
 </ol>
 !!end
 
@@ -19721,10 +19841,10 @@ A <ref >foo</ref >
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo</li></ol>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo</li></ol>
 !!end
 
 !!test
@@ -19736,11 +19856,42 @@ parsoid
 
 <references />
 !!html
-<p><span class="reference" id="cite_ref-a_b-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"a b"}}'><a href="#cite_note-a_b-1">[1]</a></span>
+<p><span class="reference" id="cite_ref-a_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"a b"}}'><a href="#cite_note-a_b-1">[1]</a></span>
+</p>
+
+<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
+<li id="cite_note-a_b-1"><span rel="mw:referencedBy"><a href="#cite_ref-a_b_1-0">↑</a></span> foo</li>
+!!end
+
+!!test
+Ref: 18. T58916: Extension attributes should be parsed as plain text
+!!options
+parsoid
+!!wikitext
+<ref name="{{echo|a}}">foo</ref>
+
+<references />
+!!html
+<p><span class="reference" id="cite_ref-.7B.7Becho.7Ca.7D.7D_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"{{echo|a}}"}}'><a href="#cite_note-.7B.7Becho.7Ca.7D.7D-1">[1]</a></span>
 </p>
 
 <ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-a_b-1"><span rel="mw:referencedBy"><a href="#cite_ref-a_b-1-0">↑</a></span> foo</li>
+<li id="cite_note-.7B.7Becho.7Ca.7D.7D-1"><span rel="mw:referencedBy"><a href="#cite_ref-.7B.7Becho.7Ca.7D.7D_1-0">↑</a></span> foo</li>
+!!end
+
+!!test
+Ref: 19. ref-tags with identical name encodings should get identical indexes
+!!options
+parsoid
+!! wikitext
+1 <ref name="a & b">foo</ref> 2 <ref name="a &amp; b" />
+
+<references />
+!! html
+<p>1 <span about="#mwt3" class="reference" id="cite_ref-a_.26_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"a &amp; b"}}'><a href="#cite_note-a_.26_b-1">[1]</a></span> 2 <span about="#mwt4" class="reference" id="cite_ref-a_.26_b_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a &amp;amp; b"}}'><a href="#cite_note-a_.26_b-1">[1]</a></span>
+
+<ol class="references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-a_.26_b-1" id="cite_note-a_.26_b-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-a_.26_b_1-0">1.0</a> <a href="#cite_ref-a_.26_b_1-1">1.1</a></span> foo</li>
+</ol>
 !!end
 
 !!test
@@ -19763,10 +19914,10 @@ B <ref group="b">bar</ref>
 
 <references group="a" />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"group":"a"}}'><a href="#cite_note-1">[a 1]</a></span>
-B <span about="#mwt4" class="reference" id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"group":"b"}}'><a href="#cite_note-2">[b 1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"group":"a"}}'><a href="#cite_note-1">[a 1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"group":"b"}}'><a href="#cite_note-2">[b 1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"group":"a"}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"group":"a"}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo</li>
 </ol>
 !!end
 
@@ -19783,14 +19934,14 @@ B <ref>bar</ref>
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo</li>
 </ol>
 
-<p>B <span about="#mwt6" class="reference" id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{}}'><a href="#cite_note-2">[1]</a></span></p>
+<p>B <span about="#mwt6" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{}}'><a href="#cite_note-2">[1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2-0">↑</a></span> bar</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> bar</li>
 </ol>
 !!end
 
@@ -19808,15 +19959,15 @@ C <ref>cfoo</ref>
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"afoo"},"attrs":{"group":"a"}}'><a href="#cite_note-1">[a 1]</a></span>
-B <span about="#mwt4" class="reference" id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bfoo"},"attrs":{}}'><a href="#cite_note-2">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"afoo"},"attrs":{"group":"a"}}'><a href="#cite_note-1">[a 1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bfoo"},"attrs":{}}'><a href="#cite_note-2">[1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"group":"a"}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> afoo</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"group":"a"}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> afoo</li>
 </ol>
 
-<p>C <span about="#mwt8" class="reference" id="cite_ref-3-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"cfoo"},"attrs":{}}'><a href="#cite_note-3">[2]</a></span></p>
+<p>C <span about="#mwt8" class="reference" id="cite_ref-3" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"cfoo"},"attrs":{}}'><a href="#cite_note-3">[2]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2-0">↑</a></span> bfoo</li><li about="#cite_note-3" id="cite_note-3"><span rel="mw:referencedBy"><a href="#cite_ref-3-0">↑</a></span> cfoo</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> bfoo</li><li about="#cite_note-3" id="cite_note-3"><span rel="mw:referencedBy"><a href="#cite_ref-3">↑</a></span> cfoo</li>
 </ol>
 !!end
 
@@ -19833,11 +19984,11 @@ B <ref name="b">bar</ref>
 This should just get lost.
 </references>
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-a-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span>
-B <span about="#mwt4" class="reference" id="cite_ref-b-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-a_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span></p>
 
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","body":{"extsrc":"&lt;ref name=\"a\">foo&lt;/ref>\nThis should just get lost.","html":"\n&lt;span about=\"#mwt8\" class=\"reference\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"src\":\"&amp;lt;ref name=\\\"a\\\">foo&amp;lt;/ref>\",\"dsr\":[59,82,14,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"html\":\"foo\"},\"attrs\":{\"name\":\"a\"}}&#39;>&lt;a href=\"#cite_note-a-1\">[1]&lt;/a>&lt;/span>\n"},"attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy"><a href="#cite_ref-a-1-0">↑</a></span> foo</li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy"><a href="#cite_ref-b-2-0">↑</a></span> bar</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","body":{"extsrc":"&lt;ref name=\"a\">foo&lt;/ref>\nThis should just get lost.","html":"\n&lt;span about=\"#mwt8\" class=\"reference\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"src\":\"&amp;lt;ref name=\\\"a\\\">foo&amp;lt;/ref>\",\"dsr\":[59,82,14,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"html\":\"foo\"},\"attrs\":{\"name\":\"a\"}}&#39;>&lt;a href=\"#cite_note-a-1\">[1]&lt;/a>&lt;/span>\n"},"attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy"><a href="#cite_ref-a_1-0">↑</a></span> foo</li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy"><a href="#cite_ref-b_2-0">↑</a></span> bar</li>
 </ol>
 !!end
 
@@ -19848,7 +19999,7 @@ parsoid
 !! wikitext
 <ref>Foo</ref> {{echo|<references />}}
 !! html
-<p><span about="#mwt3" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"Foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p> <ol class="references" typeof="mw:Extension/references mw:Transclusion" about="#mwt4" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;references />"}},"i":0}}]}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> Foo</li></ol>
+<p><span about="#mwt3" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"Foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p> <ol class="references" typeof="mw:Extension/references mw:Transclusion" about="#mwt4" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;references />"}},"i":0}}]}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> Foo</li></ol>
 !!end
 
 !! test
@@ -19865,12 +20016,12 @@ B <ref group="X" name="b" />
 <ref name="b">foo</ref>
 </references>
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo bar for a"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
-B <span about="#mwt4" class="reference" id="cite_ref-b-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"group":"X","name":"b"}}'><a href="#cite_note-b-2">[X 1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo bar for a"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"group":"X","name":"b"}}'><a href="#cite_note-b-2">[X 1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo bar for a</li></ol>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo bar for a</li></ol>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","body":{"extsrc":"&lt;ref name=\"b\">foo&lt;/ref>","html":"\n&lt;span about=\"#mwt10\" class=\"reference\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"src\":\"&amp;lt;ref name=\\\"b\\\">foo&amp;lt;/ref>\",\"dsr\":[96,119,14,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"html\":\"foo\"},\"attrs\":{\"name\":\"b\"}}&#39;>&lt;a href=\"#cite_note-b-2\">[X 1]&lt;/a>&lt;/span>\n"},"attrs":{"group":"X"}}'><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy"><a href="#cite_ref-b-2-0">↑</a></span> foo</li></ol>
+<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","body":{"extsrc":"&lt;ref name=\"b\">foo&lt;/ref>","html":"\n&lt;span about=\"#mwt10\" class=\"reference\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"src\":\"&amp;lt;ref name=\\\"b\\\">foo&amp;lt;/ref>\",\"dsr\":[96,119,14,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"html\":\"foo\"},\"attrs\":{\"name\":\"b\"}}&#39;>&lt;a href=\"#cite_note-b-2\">[X 1]&lt;/a>&lt;/span>\n"},"attrs":{"group":"X"}}'><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy"><a href="#cite_ref-b_2-0">↑</a></span> foo</li></ol>
 !! end
 
 !! test
@@ -19880,7 +20031,7 @@ parsoid
 !! wikitext
 <ref name="test &amp; me">hi</ref>
 !! html
-<p><span about="#mwt2" class="reference" id="cite_ref-test_&amp;_me-1-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref name=\"test &amp;amp; me\">hi&lt;/ref>"}' data-mw='{"name":"ref","body":{"html":"hi"},"attrs":{"name":"test &amp; me"}}'><a href="#cite_note-test_&amp;_me-1">[1]</a></span></p>
+<p><span about="#mwt2" class="reference" id="cite_ref-test_.26_me_1-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref name=\"test &amp;amp; me\">hi&lt;/ref>"}' data-mw='{"name":"ref","body":{"html":"hi"},"attrs":{"name":"test &amp;amp; me"}}'><a href="#cite_note-test_.26_me-1">[1]</a></span></p>
 !! end
 
 # This test is wt2html only because we're permitting the serializer to produce
@@ -19894,11 +20045,11 @@ a<ref>foo</ref>
 
 <references>
 !! html
-<p>a<span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
+<p>a<span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
 
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo</li></ol>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo</li></ol>
 !! end
 
 !! test
@@ -20024,6 +20175,17 @@ parsoid
 Headings: 1. Nested inside html
 !! options
 parsoid=html2wt
+!! html
+<h1>=foo=</h1>
+<h2>=foo=</h2>
+<h3>=foo=</h3>
+
+<h1 data-parsoid=''>=foo=</h1>
+<h2 data-parsoid=''>=foo=</h2>
+<h3 data-parsoid=''>=foo=</h3>
+<h4 data-parsoid=''>=foo=</h4>
+<h5 data-parsoid=''>=foo=</h5>
+<h6 data-parsoid=''>=foo=</h6>
 !! wikitext
 = =foo= =
 
@@ -20038,23 +20200,16 @@ parsoid=html2wt
 =====<nowiki>=foo=</nowiki>=====
 ======<nowiki>=foo=</nowiki>======
 
-!! html
-<h1>=foo=</h1>
-<h2>=foo=</h2>
-<h3>=foo=</h3>
-
-<h1 data-parsoid=''>=foo=</h1>
-<h2 data-parsoid=''>=foo=</h2>
-<h3 data-parsoid=''>=foo=</h3>
-<h4 data-parsoid=''>=foo=</h4>
-<h5 data-parsoid=''>=foo=</h5>
-<h6 data-parsoid=''>=foo=</h6>
 !!end
 
 !! test
 Headings: 2. Outside heading nest on a single line <h1>foo</h1>*bar
 !! options
 parsoid=html2wt
+!! html
+<h1>foo</h1>*bar
+<h1>foo</h1>=bar
+<h1>foo</h1>=bar=
 !! wikitext
 = foo =
 <nowiki>*</nowiki>bar
@@ -20064,10 +20219,6 @@ parsoid=html2wt
 
 = foo =
 <nowiki>=bar=</nowiki>
-!! html
-<h1>foo</h1>*bar
-<h1>foo</h1>=bar
-<h1>foo</h1>=bar=
 !!end
 
 !! test
@@ -20096,6 +20247,8 @@ Headings: 4a. No escaping needed (testing just h1 and h2)
 == foo= ==
 
 = = =
+
+= ''=''foo= =
 !! html/parsoid
 <h1>=foo</h1>
 <h1>foo=</h1>
@@ -20104,32 +20257,22 @@ Headings: 4a. No escaping needed (testing just h1 and h2)
 <h2>=foo</h2>
 <h2>foo=</h2>
 <h1>=</h1>
-!!end
-
-!! test
-Headings: 4a'. No escaping needed (Parsoid bug T84903)
-!! wikitext
-= ''=''foo= =
-!! html/php
-<h1><span class="mw-headline" id=".3Dfoo.3D"><i>=</i>foo=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: =foo=">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
-
-!! html/parsoid
 <h1><i>=</i>foo=</h1>
-!! end
+!!end
 
 !! test
 Headings: 4b. No escaping needed (inside p-tags)
 !! options
 parsoid=html2wt
-!! wikitext
-===
-=foo= x
-=foo= <s></s>
 !! html
 <p>===
 =foo= x
 =foo= <s></s>
 </p>
+!! wikitext
+===
+=foo= x
+=foo= <s></s>
 !!end
 
 !! test
@@ -20233,13 +20376,31 @@ parsoid
 Headings: 6d. Heading chars in SOL context (No escaping needed)
 !! options
 parsoid=html2wt
-!! wikitext
-=a=<div>b</div>
 !! html
 =a=<div>b</div>
+!! wikitext
+=a=<div>b</div>
 !!end
 
-#### --------------- Lists ---------------
+!! test
+Headings: 7. Insert a newline between new content and headings
+!! options
+parsoid=html2wt
+!! html
+<h2>NEW</h2>
+<p>new</p>
+<h2 data-parsoid='{"dsr":[0,5,2,2]}'>A</h2>
+<p data-parsoid='{"dsr":[6,7,0,0]}'>a</p>
+!! wikitext
+== NEW ==
+new
+
+==A==
+a
+
+!! end
+
+#### --------------- Lists ---------------
 #### 0. Outside nests (*foo, etc.)
 #### 1. Nested inside html <ul><li>*foo</li></ul>
 #### 2. Inside definition lists
@@ -20389,10 +20550,10 @@ Lists: 5. No unnecessary escapes
 Lists: 6. Escape bullets in SOL position
 !! options
 parsoid=html2wt
-!! wikitext
-<!--cmt--><nowiki>*</nowiki>foo
 !! html
 <p><!--cmt-->*foo</p>
+!! wikitext
+<!--cmt--><nowiki>*</nowiki>foo
 !!end
 
 !! test
 Lists: 8. Escape colons only if not present in tags
 !! options
 parsoid=html2wt
-!! wikitext
-; <nowiki>a:b</nowiki>''c:d''
 !! html
 <dl><dt>a:b<i>c:d</i></dt></dl>
+!! wikitext
+; <nowiki>a:b</nowiki>''c:d''
 !! end
 
 #### --------------- HRs ---------------
@@ -20640,14 +20801,6 @@ parsoid=html2wt
 Tables: 4a. Escape -
 !! options
 parsoid=html2wt
-!! wikitext
-{|
-
-!-bar
-
-|-
-|<nowiki>-bar</nowiki>
-|}
 !! html/*
 <table>
 
@@ -20658,20 +20811,20 @@ parsoid=html2wt
 <td>-bar
 </td></tr></table>
 
-!! end
-
-!! test
-Tables: 4b. Escape +
-!! options
-parsoid=html2wt
 !! wikitext
 {|
 
-!+bar
+!-bar
 
 |-
-|<nowiki>+bar</nowiki>
+|<nowiki>-bar</nowiki>
 |}
+!! end
+
+!! test
+Tables: 4b. Escape +
+!! options
+parsoid=html2wt
 !! html/*
 <table>
 
@@ -20682,6 +20835,14 @@ parsoid=html2wt
 <td>+bar
 </td></tr></table>
 
+!! wikitext
+{|
+
+!+bar
+
+|-
+|<nowiki>+bar</nowiki>
+|}
 !! end
 
 !! test
@@ -20790,23 +20951,39 @@ parsoid=wt2html
 #### 5. Extlinks: No escapes needed
 #### --------------------------------------
 !! test
-Links 1. Quote marks in link text
-!! options
-parsoid
+Links 1. WikiLinks: No escapes needed
 !! wikitext
-[[Foo|Foo<nowiki>''boo''</nowiki>]]
-!! html
-<a rel="mw:WikiLink" href="Foo">Foo''boo''</a>
+[[Foo|Foo''boo'']]
+[[Foo|[Foobar]]]
+[[Foo|x [Foobar] x]]
+!! html/php
+<p><a href="/wiki/Foo" title="Foo">Foo<i>boo</i></a>
+<a href="/wiki/Foo" title="Foo">[Foobar]</a>
+<a href="/wiki/Foo" title="Foo">x [Foobar] x</a>
+</p>
+!! html/parsoid
+<p><a rel="mw:WikiLink" href="Foo" title="Foo">Foo<i>boo</i></a>
+<a rel="mw:WikiLink" href="Foo" title="Foo">[Foobar]</a>
+<a rel="mw:WikiLink" href="Foo" title="Foo">x [Foobar] x</a></p>
 !! end
 
 !! test
 Links 2. WikiLinks: Escapes needed
 !! options
-parsoid
+parsoid=html2wt
+!! html/parsoid
+<a href="Foo" rel="mw:WikiLink">Foobar]</a>
+<a href="Foo" rel="mw:WikiLink">x [http://google.com g] x</a>
+<a href="Foo" rel="mw:WikiLink">[[Bar]]</a>
+<a href="Foo" rel="mw:WikiLink">x [[Bar]] x</a>
+<a href="Foo" rel="mw:WikiLink">|Bar</a>
+<a href="Foo" rel="mw:WikiLink">]]bar</a>
+<a href="Foo" rel="mw:WikiLink">[[bar</a>
+<a href="Foo" rel="mw:WikiLink">x [[ y</a>
+<a href="Foo" rel="mw:WikiLink">x ]] y</a>
+<a href="Foo" rel="mw:WikiLink">x ]] y [[ z</a>
 !! wikitext
-[[Foo|[Foobar]]]
 [[Foo|<nowiki>Foobar]</nowiki>]]
-[[Foo|x [Foobar] x]]
 [[Foo|x <nowiki>[http://google.com g]</nowiki> x]]
 [[Foo|<nowiki>[[Bar]]</nowiki>]]
 [[Foo|<nowiki>x [[Bar]] x</nowiki>]]
@@ -20816,37 +20993,43 @@ parsoid
 [[Foo|<nowiki>x [[ y</nowiki>]]
 [[Foo|<nowiki>x ]] y</nowiki>]]
 [[Foo|<nowiki>x ]] y [[ z</nowiki>]]
-!! html
-<a href="Foo" rel="mw:WikiLink">[Foobar]</a>
-<a href="Foo" rel="mw:WikiLink">Foobar]</a>
-<a href="Foo" rel="mw:WikiLink">x [Foobar] x</a>
-<a href="Foo" rel="mw:WikiLink">x [http://google.com g] x</a>
-<a href="Foo" rel="mw:WikiLink">[[Bar]]</a>
-<a href="Foo" rel="mw:WikiLink">x [[Bar]] x</a>
-<a href="Foo" rel="mw:WikiLink">|Bar</a>
-<a href="Foo" rel="mw:WikiLink">]]bar</a>
-<a href="Foo" rel="mw:WikiLink">[[bar</a>
-<a href="Foo" rel="mw:WikiLink">x [[ y</a>
-<a href="Foo" rel="mw:WikiLink">x ]] y</a>
-<a href="Foo" rel="mw:WikiLink">x ]] y [[ z</a>
+!! html/php
+<p><a href="/wiki/Foo" title="Foo">Foobar]</a>
+<a href="/wiki/Foo" title="Foo">x [http://google.com g] x</a>
+<a href="/wiki/Foo" title="Foo">[[Bar]]</a>
+<a href="/wiki/Foo" title="Foo">x [[Bar]] x</a>
+<a href="/wiki/Foo" title="Foo">|Bar</a>
+<a href="/wiki/Foo" title="Foo">]]bar</a>
+<a href="/wiki/Foo" title="Foo">[[bar</a>
+<a href="/wiki/Foo" title="Foo">x [[ y</a>
+<a href="/wiki/Foo" title="Foo">x ]] y</a>
+<a href="/wiki/Foo" title="Foo">x ]] y [[ z</a>
+</p>
 !! end
 
 !! test
 Links 3. WikiLinks: No escapes needed
-!! options
-parsoid
 !! wikitext
 [[Foo|[Foobar]]
 [[Foo|foo|bar]]
-!! html
-<a href="Foo" rel="mw:WikiLink">[Foobar</a>
-<a href="Foo" rel="mw:WikiLink">foo|bar</a>
+!! html/php
+<p><a href="/wiki/Foo" title="Foo">[Foobar</a>
+<a href="/wiki/Foo" title="Foo">foo|bar</a>
+</p>
+!! html/parsoid
+<p><a rel="mw:WikiLink" href="Foo">[Foobar</a>
+<a rel="mw:WikiLink" href="Foo" title="Foo">foo|bar</a></p>
 !! end
 
 !! test
 Links 4. ExtLinks: Escapes needed
 !! options
-parsoid
+parsoid=html2wt
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://google.com">[google]</a>
+<a rel="mw:ExtLink" href="http://google.com">google]</a></p>
+<p>[http://google.com]</p>
+<p>[http://google.com google]</p>
 !! wikitext
 [http://google.com <nowiki>[google]</nowiki>]
 [http://google.com <nowiki>google]</nowiki>]
@@ -20855,21 +21038,23 @@ parsoid
 
 <nowiki>[http://google.com google]</nowiki>
 
-!! html
-<p><a href="http://google.com" rel="mw:ExtLink">[google]</a>
-<a href="http://google.com" rel="mw:ExtLink">google]</a></p>
-<p>[http://google.com]</p>
-<p>[http://google.com google]</p>
+!! html/php
+<p><a rel="nofollow" class="external text" href="http://google.com">[google]</a>
+<a rel="nofollow" class="external text" href="http://google.com">google]</a>
+</p><p>[http://google.com]
+</p><p>[http://google.com google]
+</p>
 !! end
 
 !! test
 Links 5. ExtLinks: No escapes needed
-!! options
-parsoid
 !! wikitext
 [http://google.com [google]
-!! html
-<a href="http://google.com" rel="mw:ExtLink">[google</a>
+!! html/php
+<p><a rel="nofollow" class="external text" href="http://google.com">[google</a>
+</p>
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://google.com">[google</a></p>
 !! end
 
 !! test
 (http://example.com) foo
 http://example.com,
 http://example.com, foo
+!! html/php
+<p>x
+<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
+y
+"<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>"
+(<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>)
+(<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>) foo
+<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>,
+<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>, foo
+</p>
 !! end
 
-## Parsoid currently fails wt2html on this one!
 !! test
 Links 7b. Don't add spurious <nowiki/>s between text-nodes and url-links (bug 64300)
 !! html/parsoid
-<p><a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>.,;:!?</p>
+<p><a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>.,;:!?\
+-<a rel="mw:ExtLink" href="http://example.com">http://example.com</a>:</p>
 !! wikitext
-http://example.com.,;:!?
+http://example.com.,;:!?\
+-http://example.com:
+!! html/php
+<p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>.,;:!?\
+-<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>:
+</p>
 !! end
 
 !! test
 Links 8. Add <nowiki/>s between text-nodes and RFC-links when required (bug 64300)
 !! html/parsoid
-<p><a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>4</p>
+<p><a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>4
+<a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>y
+X<a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>y</p>
 !! wikitext
 RFC 123<nowiki/>4
+RFC 123<nowiki/>y
+X<nowiki/>RFC 123<nowiki/>y
 !! end
 
 !! test
 Links 9. Don't add spurious <nowiki/>s between text-nodes and RFC-links (bug 64300)
 !! html/parsoid
-<p>x<a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>y
-X<a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>y
-<a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>?foo
+<p><a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>?foo
 <a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>&amp;foo
+-<a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>-
 </p>
 !! wikitext
-xRFC 123y
-XRFC 123y
 RFC 123?foo
 RFC 123&foo
+-RFC 123-
+!! html/php
+<p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc123">RFC 123</a>?foo
+<a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc123">RFC 123</a>&amp;foo
+-<a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc123">RFC 123</a>-
+</p>
 !! end
 
 !! test
 Links 10. Add <nowiki/>s between text-nodes and PMID-links when required (bug 64300)
 !! html/parsoid
 <p><a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>4
+<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>y
+X<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>y
 !! wikitext
 PMID 123<nowiki/>4
+PMID 123<nowiki/>y
+X<nowiki/>PMID 123<nowiki/>y
 !! end
 
 !! test
 Links 11. Don't add spurious <nowiki/>s between text-nodes and PMID-links (bug 64300)
 !! html/parsoid
-<p>x<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>y
-X<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>y
-<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>?foo
+<p><a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>?foo
 <a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>&foo
+-<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>-
 </p>
 !! wikitext
-xPMID 123y
-XPMID 123y
 PMID 123?foo
 PMID 123&foo
+-PMID 123-
+!! html/php
+<p><a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract">PMID 123</a>?foo
+<a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract">PMID 123</a>&amp;foo
+-<a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract">PMID 123</a>-
+</p>
 !! end
 
 !! test
@@ -20988,24 +21202,27 @@ Links 12. Add <nowiki/>s between text-nodes and ISBN-links when required (bug 64
 !! html/parsoid
 <p><a href="./Special:BookSources/1234567890" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>1
 <a href="./Special:BookSources/1234567890" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>x
-<a href="./Special:BookSources/1234567890" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>b
+a<a href="./Special:BookSources/1234567890" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>b
 </p>
 !! wikitext
 ISBN 1234567890<nowiki/>1
 ISBN 1234567890<nowiki/>x
-ISBN 1234567890<nowiki/>b
+a<nowiki/>ISBN 1234567890<nowiki/>b
 !! end
 
 !! test
-Links 12. Don't add spurious <nowiki/>s between text-nodes and ISBN-links (bug 64300)
+Links 13. Don't add spurious <nowiki/>s between text-nodes and ISBN-links (bug 64300)
 !! html/parsoid
-<p><a href="./Special:BookSources/1234567890" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>'s
+<p>-<a href="./Special:BookSources/1234567890" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>'s
 !! wikitext
-ISBN 1234567890's
+-ISBN 1234567890's
+!! html/php
+<p>-<a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>'s
+</p>
 !! end
 
 !! test
-Links 13: Protect link-like plain text. (Parsoid bug T78425)
+Links 14. Protect link-like plain text. (Parsoid bug T78425)
 !! options
 parsoid=html2wt
 !! html/*
@@ -21015,6 +21232,18 @@ parsoid=html2wt
 this is not a link: <nowiki>http://example.com</nowiki>
 !! end
 
+!! test
+Links 15. Link trails can't become link prefixes.
+!! options
+language=is
+!! wikitext
+[[Söfnuður]]-[[00]]
+!! html/php
+<p><a href="/wiki/S%C3%B6fnu%C3%B0ur" title="Söfnuður">Söfnuður-</a><a href="/wiki/00" title="00">00</a>
+</p>
+!! html/parsoid
+<p><a rel="mw:WikiLink" href="Söfnuður" title="Söfnuður" data-parsoid='{"stx":"simple","tail":"-"}'>Söfnuður-</a><a rel="mw:WikiLink" href="00" title="00">00</a></p>
+!! end
 
 #### --------------- Quotes ---------------
 #### 1. Quotes inside <b> and <i>
@@ -21027,24 +21256,25 @@ this is not a link: <nowiki>http://example.com</nowiki>
 !! options
 parsoid=html2wt,wt2wt
 !! wikitext
-''<nowiki/>'foo'<nowiki/>''
+''<nowiki/>'foo'''
 ''<nowiki>''foo''</nowiki>''
 ''<nowiki>'''foo'''</nowiki>''
 ''foo''<nowiki/>'s
-'''<nowiki/>'foo'<nowiki/>'''
+'''<nowiki/>'foo''''
 '''<nowiki>''foo''</nowiki>'''
 '''<nowiki>'''foo'''</nowiki>'''
 '''foo'<nowiki/>''bar'<nowiki/>''baz'''
 '''foo'''<nowiki/>'s
 '''foo''
 ''foo''<nowiki/>'
-''foo'<nowiki/>''<nowiki/>'
-'<nowiki/>''foo''<nowiki/>'
+''foo'''<nowiki/>'
+'''foo''<nowiki/>'
 ''''foo'''
 '''foo'''<nowiki/>'
-'<nowiki/>'''foo'''<nowiki/>'
+''''foo'''<nowiki/>'
 ''fools'<span> errand</span>''
 ''<span>fool</span>'s errand''
+'<nowiki/>''foo'' bar '''baz''
 a|!*#-:;+-~[]{}b'''x''
 !! html/*
 <p><i>'foo'</i>
@@ -21065,12 +21295,13 @@ a|!*#-:;+-~[]{}b'''x''
 '<b>foo</b>'
 <i>fools'<span> errand</span></i>
 <i><span>fool</span>'s errand</i>
+'<i>foo</i> bar '<i>baz</i>
 a|!*#-:;+-~[]{}b'<i>x</i>
 </p>
 !! end
 
 !! test
-1b. Quotes inside <b> and <i> with other chars
+1b. Quotes inside <b> and <i> with other tags on same line
 !! options
 parsoid=html2wt,wt2wt
 !! wikitext
@@ -21078,11 +21309,17 @@ parsoid=html2wt,wt2wt
 ''a''' foo ''[[bar]]''
 ''a''' foo '''{{echo|[[bar]]}}'''
 [[foo]] x'''[[bar]]''
+'''foo'' <ref>test</ref>
+'''foo'' <div title="name">test</div>
+'''foo'' and <br> bar
 !! html
 '<i>a</i> foo <i><a rel="mw:WikiLink" href="Bar" title="Bar">bar</a></i>
 <i>a'</i> foo <i><a rel="mw:WikiLink" href="Bar" title="Bar">bar</a></i>
 <i>a'</i> foo <b><a rel="mw:WikiLink" href="Bar" title="Bar" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[[bar]]"}},"i":0}}]}'>bar</a></b>
 <a rel="mw:WikiLink" href="Foo" title="Foo">foo</a> x'<i><a href="Bar" rel="mw:WikiLink" title="Bar">bar</a></i>
+'<i>foo</i> <span class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"test"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
+'<i>foo</i> <div title="name">test</div>
+'<i>foo</i> and <br data-parsoid='{"stx":"html","noClose":true}'/> bar
 !! end
 
 !! test
@@ -21197,7 +21434,7 @@ parsoid
 foo <ref>''a''
  b</ref>
 !! html
-<p>foo <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"&lt;i data-parsoid=&#39;{\"dsr\":[9,14,2,2]}&#39;>a&lt;/i>\n b"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
+<p>foo <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"&lt;i data-parsoid=&#39;{\"dsr\":[9,14,2,2]}&#39;>a&lt;/i>\n b"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 !! end
 
 !! test
@@ -21245,22 +21482,22 @@ parsoid=html2wt
 1. Valid behavior switches should be escaped
 !! options
 parsoid=html2wt
-!! wikitext
-<nowiki>__TOC__</nowiki>
-''<nowiki>__TOC__</nowiki>''
 !! html
 __TOC__
 <i>__TOC__</i>
+!! wikitext
+<nowiki>__TOC__</nowiki>
+''<nowiki>__TOC__</nowiki>''
 !! end
 
 !! test
 2. Invalid behavior switches should not be escaped
 !! options
 parsoid=html2wt
-!! wikitext
+!! html
 __TOO__
 __|__
-!! html
+!! wikitext
 __TOO__
 __|__
 !! end
@@ -21634,6 +21871,29 @@ Indented table with an empty td
 
 !!end
 
+## We have some newline diffs RT-ing this edge case
+## and it is not important enough -- we seem to be emitting
+## at most 2 newlines after a </tr> and this is unrelated to
+## the issue from T85627 that this is testing.
+!!test
+Indented table with blank lines in between (T85627)
+!! options
+parsoid=wt2html
+!! wikitext
+ {|
+ |foo
+ |}
+!! html
+<table>
+
+<tr>
+<td>foo
+</td></tr></table>
+
+!!end
+
 !!test
 Indented block & table
 !! wikitext
@@ -21733,6 +21993,10 @@ Multi-line image caption generated by templates with/without trailing newlines
 New element inserted (without intervening newlines) after an old sol-transparent node should serialize correctly
 !! options
 parsoid=html2wt
+!! html
+<meta typeof="mw:Includes/IncludeOnly" data-parsoid='{"src":"&lt;includeonly>foo&lt;/includeonly>"}'/><meta typeof="mw:Includes/IncludeOnly/End" data-parsoid='{"src":""}'/><p>new para</p>
+
+<link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid=''/><h1>new heading</h1>
 !! wikitext
 <includeonly>foo</includeonly>
 new para
@@ -21740,10 +22004,6 @@ new para
 [[./Category:Foo]]
 
 = new heading =
-!! html
-<meta typeof="mw:Includes/IncludeOnly" data-parsoid='{"src":"&lt;includeonly>foo&lt;/includeonly>"}'/><meta typeof="mw:Includes/IncludeOnly/End" data-parsoid='{"src":""}'/><p>new para</p>
-
-<link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid=''/><h1>new heading</h1>
 !! end
 
 ## PHP emits broken html for this, and since this is primarily
@@ -22024,10 +22284,10 @@ Properly encapsulate empty-content transclusions in fosterable positions
 Support <object> element with .data attribute
 !!options
 parsoid=html2wt
-!! wikitext
-<object data="test.swf"></object>
 !! html
 <object data="test.swf"></object>
+!! wikitext
+<object data="test.swf"></object>
 !!end
 
 !! test
@@ -22053,10 +22313,10 @@ Don't block XML namespace declaration
 Serialize interwiki links pointing to the current wiki as plain wiki links (bug 65869)
 !! options
 parsoid=html2wt
-!! wikitext
-[[Foo]]
 !! html
 <p><a rel="mw:ExtLink" href="http://mi.wikipedia.org/wiki/Foo">Foo</a></p>
+!! wikitext
+[[Foo]]
 !! end
 
 !! test
@@ -22259,10 +22519,10 @@ parsoid
 #!! options
 #parsoid=html2wt
 #language=ar
-#!! wikitext
-#[[Imagen:Foobar.jpg|derecha|miniaturadeimagen]]
 #!! html
 #<figure class="mw-default-size mw-halign-right" typeof="mw:Image/Thumb"><a href="Imagen:Foobar.jpg"><img resource="./Imagen:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="20" width="180"/></a></figure>
+#!! wikitext
+#[[Imagen:Foobar.jpg|derecha|miniaturadeimagen]]
 #!! end
 
 !! test
@@ -22359,28 +22619,41 @@ parsoid=html2wt
 Lists: Serialize correctly even when list content is wrapped in p-tags (like VE does)
 !! options
 parsoid=html2wt
-!! wikitext
-* foo
 !! html
 <ul>
 <li><p>foo</p></li>
 </ul>
+!! wikitext
+* foo
 !! end
 
 !! test
 Lists: Serialize correctly even when list tags has unneeded whitespace between tags
 !! options
 parsoid=html2wt
-!! wikitext
-* foo
 !! html
 <ul> <li>foo</li></ul>
+!! wikitext
+* foo
 !! end
 
 !! test
 Don't strip leading whitespace when handling indent-pre suppressing tags
 !! options
 parsoid=html2wt
+!! html
+<table>
+  <tr><td> indented row</td></tr>
+</table>
+<blockquote><p>
+ <b>This is very bold of you!</b>
+</p>
+<table><tr><td>
+ indented cell (no pre-wrapping!)
+</td></tr></table>
+</blockquote>
+<p>foo</p>
+ <div>bar</div>
 !! wikitext
 {|
   | indented row
@@ -22395,19 +22668,6 @@ parsoid=html2wt
 </blockquote>
 foo
  <div>bar</div>
-!! html
-<table>
-  <tr><td> indented row</td></tr>
-</table>
-<blockquote><p>
- <b>This is very bold of you!</b>
-</p>
-<table><tr><td>
- indented cell (no pre-wrapping!)
-</td></tr></table>
-</blockquote>
-<p>foo</p>
- <div>bar</div>
 !! end
 
 !! test
@@ -22446,33 +22706,38 @@ foo
 Lists: Add space after bullets
 !! options
 parsoid=html2wt
-!! wikitext
-* foo
-* bar
-* <span> baz</span>
 !! html
 <ul>
 <li>foo</li>
 <li> bar</li>
 <li><span> baz</span></li>
 </ul>
+!! wikitext
+* foo
+* bar
+* <span> baz</span>
 !! end
 
 !! test
 Lists: Dont insert newlines in a serialized list item.
 !! options
 parsoid=html2wt
+!! html
+<ul><li>a<br>b</li><li>c</li></ul>
 !! wikitext
 * a<br>b
 * c
-!! html
-<ul><li>a<br>b</li><li>c</li></ul>
 !! end
 
 !! test
 Headings: Add space before/after == (Bug 51744)
 !! options
 parsoid=html2wt
+!! html
+<h2>foo</h2>
+<h2> bar</h2>
+<h2>baz </h2>
+<h2><span> baz</span></h2>
 !! wikitext
 == foo ==
 
@@ -22481,25 +22746,12 @@ parsoid=html2wt
 == baz ==
 
 == <span> baz</span> ==
-!! html
-<h2>foo</h2>
-<h2> bar</h2>
-<h2>baz </h2>
-<h2><span> baz</span></h2>
 !! end
 
 !! test
 Parsoid: Serialize positional parameters with = in them as named parameter
 !! options
 parsoid=html2wt
-!! wikitext
-{{echo|1 = f=oo}}
-
-{{echo|1 = f=oo|2 = bar}}
-
-<!--Orig params with data-parsoid has heuristics for handling = chars-->
-<!--FIXME: But maybe the heuristic needs fixing to apply to new params as well-->
-{{echo|<nowiki>f=oo</nowiki>|bar}}
 !! html
 <p about="#mwt1" typeof="mw:Transclusion"
 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"f=oo"}},"i":0}}]}'>foo</p>
@@ -22510,12 +22762,37 @@ data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},
 <!--Orig params with data-parsoid has heuristics for handling = chars-->
 <!--FIXME: But maybe the heuristic needs fixing to apply to new params as well-->
 <p data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]},{"k":"2","spc":["","","",""]}]]}' about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"f=oo"},"2":{"wt":"bar"}},"i":0}}]}'>foo</p>
+!! wikitext
+{{echo|1 = f=oo}}
+
+{{echo|1 = f=oo|2 = bar}}
+
+<!--Orig params with data-parsoid has heuristics for handling = chars-->
+<!--FIXME: But maybe the heuristic needs fixing to apply to new params as well-->
+{{echo|<nowiki>f=oo</nowiki>|bar}}
+!! end
+
+!! test
+Parsoid: Serialize positional parameters with = in extlink as named parameter
+!! options
+parsoid=html2wt
+!! html
+<p><a rel="mw:ExtLink" href="http://stuff?is=ok" about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"http://stuff?is=ok"}},"i":0}}]}'>http://stuff?is=ok</a></p>
+!! wikitext
+{{echo|1 = http://stuff?is=ok}}
 !! end
 
 !! test
 Parsoid: Correctly serialize block-node children when they are a combination of text and p-nodes
 !! options
 parsoid=html2wt
+!! html
+<div>a<p>b</p></div>
+<div>a
+<p>b</p></div>
+<div>
+a
+<p>b</p></div>
 !! wikitext
 <div>a
 b
 
 b
 </div>
-!! html
-<div>a<p>b</p></div>
-<div>a
-<p>b</p></div>
-<div>
-a
-<p>b</p></div>
 !! end
 
 !! test
 Substrings resembling wikitext in hrefs should not get nowiki escapes
 !! options
 parsoid=html2wt
-!! wikitext
-[[Foo''bar''baz]]
 !! html
 <a rel="mw:WikiLink" href="./Foo''bar''baz">Foo''bar''baz</a>
+!! wikitext
+[[Foo''bar''baz]]
 !! end
 
 #-----------------------------
@@ -22555,6 +22825,15 @@ parsoid=html2wt
 1. I/B quote minimization: wikitext-only tags should be combined
 !! options
 parsoid=html2wt
+!! html
+<p><i>A</i><i>B</i></p>
+<p><b>A</b><b>B</b></p>
+<p><i>A</i><b><i>B</i></b></p>
+<p><b>A</b><i><b>B</b></i></p>
+<p><b>A</b><i><b>B</b><b>C</b></i><b>D</b></p>
+<p><i><b>A</b></i><i><b>B</b></i></p>
+<p><i><b>A</b></i><b><i>B</i></b></p>
+<p><b><i>A</i></b><i><b>B</b></i></p>
 !! wikitext
 ''AB''
 
@@ -22571,57 +22850,48 @@ parsoid=html2wt
 '''''AB'''''
 
 '''''AB'''''
-!! html
-<p><i>A</i><i>B</i></p>
-<p><b>A</b><b>B</b></p>
-<p><i>A</i><b><i>B</i></b></p>
-<p><b>A</b><i><b>B</b></i></p>
-<p><b>A</b><i><b>B</b><b>C</b></i><b>D</b></p>
-<p><i><b>A</b></i><i><b>B</b></i></p>
-<p><i><b>A</b></i><b><i>B</i></b></p>
-<p><b><i>A</i></b><i><b>B</b></i></p>
 !! end
 
 !! test
 2. I/B quote minimization: wikitext and html tags should not be combined
 !! options
 parsoid=html2wt
+!! html
+<p><i>A</i><i data-parsoid='{"stx":"html"}'>B</i></p>
+<p><i>A</i><b><i data-parsoid='{"stx":"html"}'>B</i></b></p>
 !! wikitext
 ''A''<i>B</i>
 
 ''A''<nowiki/>'''<i>B</i>'''
-!! html
-<p><i>A</i><i data-parsoid='{"stx":"html"}'>B</i></p>
-<p><i>A</i><b><i data-parsoid='{"stx":"html"}'>B</i></b></p>
 !! end
 
 !! test
 3. I/B quote minimization: templated content stops minimization
 !! options
 parsoid=html2wt
+!! html
+<p><i>A</i><i about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&#39;&#39;B&#39;&#39;"}},"i":0}}]}'>B</i>
+<p><i>A</i><b about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&#39;&#39;&#39;&#39;&#39;B&#39;&#39;&#39;&#39;&#39;"}},"i":0}}]}'><i>B</i></b>
 !! wikitext
 ''A''{{echo|''B''}}
 
 ''A''{{echo|'''''B'''''}}
-!! html
-<p><i>A</i><i about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&#39;&#39;B&#39;&#39;"}},"i":0}}]}'>B</i>
-<p><i>A</i><b about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&#39;&#39;&#39;&#39;&#39;B&#39;&#39;&#39;&#39;&#39;"}},"i":0}}]}'><i>B</i></b>
 !! end
 
 !! test
 4. I/B quote minimization: new content should be mimimized with adjacent old content
 !! options
 parsoid=html2wt
+!! html
+<p><i>A</i><i>B</i></p>
+<p><b>A</b><b>B</b></p>
+<p><i>A</i><b><i>B</i></b></p>
 !! wikitext
 ''AB''
 
 '''AB'''
 
 ''A'''B'''''
-!! html
-<p><i>A</i><i>B</i></p>
-<p><b>A</b><b>B</b></p>
-<p><i>A</i><b><i>B</i></b></p>
 !! end
 
 !! test
@@ -22675,16 +22945,6 @@ parsoid=html2wt
 Magic words
 !! options
 parsoid=html2wt
-!! wikitext
-__TOC__
-__NOTOC__
-__FORCETOC__
-__INDEX__
-__NOINDEX__
-__NOGALLERY__
-__NOEDITSECTION__
-__NOTITLECONVERT__
-__NOCONTENTCONVERT__
 !! html
 <meta property='mw:PageProp/toc' />
 <meta property='mw:PageProp/notoc' />
@@ -22696,12 +22956,34 @@ __NOCONTENTCONVERT__
 <meta property='mw:PageProp/notitleconvert' />
 <meta property='mw:PageProp/nocontentconvert' />
 <meta property='mw:PageProp/unknownproperty' />
+!! wikitext
+__TOC__
+__NOTOC__
+__FORCETOC__
+__INDEX__
+__NOINDEX__
+__NOGALLERY__
+__NOEDITSECTION__
+__NOTITLECONVERT__
+__NOCONTENTCONVERT__
 !! end
 
 !! test
 Consecutive <pre>s should not get merged
 !! options
 parsoid=html2wt,html2html
+!! html
+<pre>a</pre><pre>b</pre>
+
+<pre>c
+</pre><pre>
+d</pre>
+
+<pre>e
+
+</pre><pre>
+
+f</pre>
 !! wikitext
  a
 
@@ -22716,68 +22998,106 @@ parsoid=html2wt,html2html
 
  
  f
-!! html
-<pre>a</pre><pre>b</pre>
-
-<pre>c
-</pre><pre>
-d</pre>
-
-<pre>e
-
-</pre><pre>
-
-f</pre>
 !! end
 
 !! test
 Edited ISBN links not serializable as ISBN links should serialize as wikilinks
 !! options
 parsoid=html2wt
-!! wikitext
-[[Special:BookSources/1234567890|ISBN 1234567895]]
 !! html
 <a rel="mw:ExtLink" href="./Special:BookSources/1234567890">ISBN 1234567895</a>
+!! wikitext
+[[Special:BookSources/1234567890|ISBN 1234567895]]
 !! end
 
 !! test
 Edited RFC links not serializable as RFC links should serialize as extlinks
 !! options
 parsoid=html2wt
-!! wikitext
-[//tools.ietf.org/html/rfc123 New RFC]
 !! html
 <a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink">New RFC</a>
+!! wikitext
+[//tools.ietf.org/html/rfc123 New RFC]
 !! end
 
 !! test
 Edited PMID links not serializable as PMID links should serialize as extlinks
 !! options
 parsoid=html2wt
-!! wikitext
-[//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract New PMID]
 !! html
 <a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink">New PMID</a>
+!! wikitext
+[//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract New PMID]
 !! end
 
 !! test
-Edited Redirect link should emit a non-piped wikitext link
+WTS of autolinks with trailing/surrounding context
 !! options
 parsoid=html2wt
+!! html/parsoid
+<p><a href="http://cscott.net">http://cscott.net</a><b>foo</b></p>
+<p><a href="http://cscott.net">http://cscott.net</a><b data-parsoid='{"stx":"html"}'>foo</b></p>
+<p><b><a href="http://cscott.net">http://cscott.net</a></b></p>
+<p><b><a href="http://cscott.net">http://cscott.net</a> </b></p>
+<p><b><a href="http://cscott.net">http://cscott.net</a>x</b></p>
+<p><a href="http://cscott.net">http://cscott.net</a>x</p>
 !! wikitext
-#REDIRECT [[Bar]]
+http://cscott.net<nowiki/>'''foo'''
+
+http://cscott.net<b>foo</b>
+
+'''http://cscott.net<nowiki/>'''
+
+'''http://cscott.net '''
+
+'''http://cscott.net<nowiki/>x'''
+
+http://cscott.net<nowiki/>x
+!! end
+
+!! test
+WTS of autolinks with nowikis (round-trip)
+!! wikitext
+x<nowiki/>http://cscott.net<nowiki/>x
+!! html/parsoid
+<p>x<a rel="mw:ExtLink" href="http://cscott.net">http://cscott.net</a>x</p>
+!! end
+
+# this is the "easy" test because it leaves in place all the
+# data-parsoid information indicating this is an autolink
+!! test
+WTS of autolinks with escapes (editing)
+!! options
+parsoid={
+  "modes": ["wt2wt"],
+  "changes": [
+    [ "meta", "remove" ]
+  ]
+}
+!! wikitext
+x<nowiki/>http://cscott.net<nowiki/>x
+!! wikitext/edited
+x<nowiki/>http://cscott.net<nowiki/>x
+!! end
+
+!! test
+Edited Redirect link should emit a non-piped wikitext link
+!! options
+parsoid=html2wt
 !! html
 <link rel="mw:PageProp/redirect" href="Bar" data-parsoid='{"src":"#REDIRECT ","a":{"href":"./Foo"},"sa":{"href":"Foo"}}'>
+!! wikitext
+#REDIRECT [[Bar]]
 !! end
 
 !! test
 T75121: Infer extension name from typeOf if data-mw is not present
 !! options
 parsoid=html2wt
-!! wikitext
-<foo />
 !! html
 <div typeOf="mw:Extension/foo"></div>
+!! wikitext
+<foo />
 !! end
 
 # -----------------------------------------------------------------
diff --git a/tests/phpunit/data/normal/UTF-8-test.txt b/tests/phpunit/data/normal/UTF-8-test.txt
new file mode 100644 (file)
index 0000000..abd16f7
Binary files /dev/null and b/tests/phpunit/data/normal/UTF-8-test.txt differ
index f960f48..36ad3cc 100644 (file)
@@ -340,4 +340,25 @@ class SanitizerTest extends MediaWikiTestCase {
                        $message
                );
        }
+
+       /**
+        * @dataProvider provideEscapeHtmlAllowEntities
+        * @covers Sanitizer::escapeHtmlAllowEntities
+        */
+       public function testEscapeHtmlAllowEntities( $expected, $html ) {
+               $this->assertEquals(
+                       $expected,
+                       Sanitizer::escapeHtmlAllowEntities( $html )
+               );
+       }
+
+       public static function provideEscapeHtmlAllowEntities() {
+               return array(
+                       array( 'foo', 'foo' ),
+                       array( 'a¡b', 'a&#161;b' ),
+                       array( 'foo&#039;bar', "foo'bar" ),
+                       array( '&lt;script&gt;foo&lt;/script&gt;', '<script>foo</script>' ),
+               );
+       }
+
 }
index 0df8d40..cccfe7b 100644 (file)
@@ -15,7 +15,12 @@ class JsonContentTest extends MediaWikiLangTestCase {
        public static function provideValidConstruction() {
                return array(
                        array( 'foo', false, null ),
+                       array( '[]', true, array() ),
                        array( '{}', true, (object)array() ),
+                       array( '""', true, '' ),
+                       array( '"0"', true, '0' ),
+                       array( '"bar"', true, 'bar' ),
+                       array( '0', true, '0' ),
                        array( '{ "0": "bar" }', true, (object)array( 'bar' ) ),
                );
        }
@@ -101,6 +106,12 @@ class JsonContentTest extends MediaWikiLangTestCase {
 
        public static function provideDataAndParserText() {
                return array(
+                       array(
+                               array(),
+                               '<table class="mw-json"><tbody><tr><td>' .
+                               '<table class="mw-json"><tbody><tr><td class="mw-json-empty">Empty array</td></tr>'
+                               . '</tbody></table></td></tr></tbody></table>'
+                       ),
                        array(
                                (object)array(),
                                '<table class="mw-json"><tbody><tr><td class="mw-json-empty">Empty object</td></tr>' .
@@ -108,31 +119,28 @@ class JsonContentTest extends MediaWikiLangTestCase {
                        ),
                        array(
                                (object)array( 'foo' ),
-                               '<table class="mw-json"><tbody><tr><th>0</th><td class="value">&quot;foo&quot;</td></tr>' .
+                               '<table class="mw-json"><tbody><tr><th>0</th><td class="value">"foo"</td></tr>' .
                                '</tbody></table>'
                        ),
                        array(
                                (object)array( 'foo', 'bar' ),
-                               '<table class="mw-json"><tbody><tr><th>0</th><td class="value">&quot;foo&quot;</td></tr>' .
-                               "\n" .
-                               '<tr><th>1</th><td class="value">&quot;bar&quot;</td></tr></tbody></table>'
+                               '<table class="mw-json"><tbody><tr><th>0</th><td class="value">"foo"</td></tr>' .
+                               '<tr><th>1</th><td class="value">"bar"</td></tr></tbody></table>'
                        ),
                        array(
                                (object)array( 'baz' => 'foo', 'bar' ),
-                               '<table class="mw-json"><tbody><tr><th>baz</th><td class="value">&quot;foo&quot;</td></tr>' .
-                               "\n" .
-                               '<tr><th>0</th><td class="value">&quot;bar&quot;</td></tr></tbody></table>'
+                               '<table class="mw-json"><tbody><tr><th>baz</th><td class="value">"foo"</td></tr>' .
+                               '<tr><th>0</th><td class="value">"bar"</td></tr></tbody></table>'
                        ),
                        array(
                                (object)array( 'baz' => 1000, 'bar' ),
                                '<table class="mw-json"><tbody><tr><th>baz</th><td class="value">1000</td></tr>' .
-                               "\n" .
-                               '<tr><th>0</th><td class="value">&quot;bar&quot;</td></tr></tbody></table>'
+                               '<tr><th>0</th><td class="value">"bar"</td></tr></tbody></table>'
                        ),
                        array(
                                (object)array( '<script>alert("evil!")</script>'),
-                               '<table class="mw-json"><tbody><tr><th>0</th><td class="value">&quot;' .
-                               '&lt;script&gt;alert(&quot;evil!&quot;)&lt;/script&gt;&quot;' .
+                               '<table class="mw-json"><tbody><tr><th>0</th><td class="value">"' .
+                               '&lt;script>alert("evil!")&lt;/script>"' .
                                '</td></tr></tbody></table>',
                        ),
                );
index 6fa3acf..6142f96 100644 (file)
@@ -141,6 +141,45 @@ class CSSMinTest extends MediaWikiTestCase {
                );
        }
 
+       public static function provideIsRemoteUrl() {
+               return array(
+                       array( true, 'http://localhost/w/red.gif?123' ),
+                       array( true, 'https://example.org/x.png' ),
+                       array( true, '//example.org/x.y.z/image.png' ),
+                       array( true, '//localhost/styles.css?query=yes' ),
+                       array( true, 'data:image/gif;base64,R0lGODlhAQABAIAAAP8AADAAACwAAAAAAQABAAACAkQBADs=' ),
+                       array( false, 'x.gif' ),
+                       array( false, '/x.gif' ),
+                       array( false, './x.gif' ),
+                       array( false, '../x.gif' ),
+               );
+       }
+
+       /**
+        * @dataProvider provideIsRemoteUrl
+        * @cover CSSMin::isRemoteUrl
+        */
+       public function testIsRemoteUrl( $expect, $url ) {
+               $this->assertEquals( CSSMin::isRemoteUrl( $url ), $expect );
+       }
+
+       public static function provideIsLocalUrls() {
+               return array(
+                       array( false, 'x.gif' ),
+                       array( true, '/x.gif' ),
+                       array( false, './x.gif' ),
+                       array( false, '../x.gif' ),
+               );
+       }
+
+       /**
+        * @dataProvider provideIsLocalUrls
+        * @cover CSSMin::isLocalUrl
+        */
+       public function testIsLocalUrl( $expect, $url ) {
+               $this->assertEquals( CSSMin::isLocalUrl( $url ), $expect );
+       }
+
        public static function provideRemapRemappingCases() {
                // red.gif and green.gif are one-pixel 35-byte GIFs.
                // large.png is a 35K PNG that should be non-embeddable.
index 9aaf113..8b7610a 100644 (file)
@@ -15,13 +15,24 @@ class DeferredStringifierTest extends PHPUnit_Framework_TestCase {
        public static function provideToString() {
                return array(
                        // No args
-                       array( array( function() {
-                               return 'foo';
-                       } ), 'foo' ),
+                       array(
+                               array(
+                                       function() {
+                                               return 'foo';
+                                       }
+                               ),
+                               'foo'
+                       ),
                        // Has args
-                       array( array( function( $i ) {
-                               return $i;
-                       }, 'bar' ), 'bar' ),
+                       array(
+                               array(
+                                       function( $i ) {
+                                               return $i;
+                                       },
+                                       'bar'
+                               ),
+                               'bar'
+                       ),
                );
        }
 
index de4ac4b..4300197 100644 (file)
@@ -15,14 +15,14 @@ class ProcessCacheLRUTest extends PHPUnit_Framework_TestCase {
         * Helper to verify emptiness of a cache object.
         * Compare against an array so we get the cache content difference.
         */
-       function assertCacheEmpty( $cache, $msg = 'Cache should be empty' ) {
+       protected function assertCacheEmpty( $cache, $msg = 'Cache should be empty' ) {
                $this->assertAttributeEquals( array(), 'cache', $cache, $msg );
        }
 
        /**
         * Helper to fill a cache object passed by reference
         */
-       function fillCache( &$cache, $numEntries ) {
+       protected function fillCache( &$cache, $numEntries ) {
                // Fill cache with three values
                for ( $i = 1; $i <= $numEntries; $i++ ) {
                        $cache->set( "cache-key-$i", "prop-$i", "value-$i" );
@@ -33,17 +33,17 @@ class ProcessCacheLRUTest extends PHPUnit_Framework_TestCase {
         * Generates an array of what would be expected in cache for a given cache
         * size and a number of entries filled in sequentially
         */
-       function getExpectedCache( $cacheMaxEntries, $entryToFill ) {
+       protected function getExpectedCache( $cacheMaxEntries, $entryToFill ) {
                $expected = array();
 
                if ( $entryToFill === 0 ) {
-                       # The cache is empty!
+                       // The cache is empty!
                        return array();
                } elseif ( $entryToFill <= $cacheMaxEntries ) {
-                       # Cache is not fully filled
+                       // Cache is not fully filled
                        $firstKey = 1;
                } else {
-                       # Cache overflowed
+                       // Cache overflowed
                        $firstKey = 1 + $entryToFill - $cacheMaxEntries;
                }
 
@@ -62,13 +62,16 @@ class ProcessCacheLRUTest extends PHPUnit_Framework_TestCase {
        public function testPhpUnitArrayEquality() {
                $one = array( 'A' => 1, 'B' => 2 );
                $two = array( 'B' => 2, 'A' => 1 );
-               $this->assertEquals( $one, $two ); // ==
-               $this->assertNotSame( $one, $two ); // ===
+               // ==
+               $this->assertEquals( $one, $two );
+               // ===
+               $this->assertNotSame( $one, $two );
        }
 
        /**
         * @dataProvider provideInvalidConstructorArg
         * @expectedException UnexpectedValueException
+        * @covers ProcessCacheLRU::__construct
         */
        public function testConstructorGivenInvalidValue( $maxSize ) {
                new ProcessCacheLRUTestable( $maxSize );
@@ -88,6 +91,11 @@ class ProcessCacheLRUTest extends PHPUnit_Framework_TestCase {
                );
        }
 
+       /**
+        * @covers ProcessCacheLRU::get
+        * @covers ProcessCacheLRU::set
+        * @covers ProcessCacheLRU::het
+        */
        public function testAddAndGetAKey() {
                $oneCache = new ProcessCacheLRUTestable( 1 );
                $this->assertCacheEmpty( $oneCache );
@@ -99,6 +107,10 @@ class ProcessCacheLRUTest extends PHPUnit_Framework_TestCase {
                $this->assertEquals( 'value1', $oneCache->get( 'cache-key', 'prop1' ) );
        }
 
+       /**
+        * @covers ProcessCacheLRU::set
+        * @covers ProcessCacheLRU::get
+        */
        public function testDeleteOldKey() {
                $oneCache = new ProcessCacheLRUTestable( 1 );
                $this->assertCacheEmpty( $oneCache );
@@ -113,6 +125,7 @@ class ProcessCacheLRUTest extends PHPUnit_Framework_TestCase {
         * a sequence of always different cache-keys. Meant to verify we correclty
         * delete the older key.
         *
+        * @covers ProcessCacheLRU::set
         * @dataProvider provideCacheFilling
         * @param int $cacheMaxEntries Maximum entry the created cache will hold
         * @param int $entryToFill Number of entries to insert in the created cache.
@@ -136,14 +149,18 @@ class ProcessCacheLRUTest extends PHPUnit_Framework_TestCase {
                return array(
                        array( 1, 0 ),
                        array( 1, 1 ),
-                       array( 1, 2 ), # overflow
-                       array( 5, 33 ), # overflow
+                       // overflow
+                       array( 1, 2 ),
+                       // overflow
+                       array( 5, 33 ),
                );
        }
 
        /**
         * Create a cache with only one remaining entry then update
         * the first inserted entry. Should bump it to the top.
+        *
+        * @covers ProcessCacheLRU::set
         */
        public function testReplaceExistingKeyShouldBumpEntryToTop() {
                $maxEntries = 3;
@@ -164,6 +181,11 @@ class ProcessCacheLRUTest extends PHPUnit_Framework_TestCase {
                );
        }
 
+       /**
+        * @covers ProcessCacheLRU::get
+        * @covers ProcessCacheLRU::set
+        * @covers ProcessCacheLRU::het
+        */
        public function testRecentlyAccessedKeyStickIn() {
                $cache = new ProcessCacheLRUTestable( 2 );
                $cache->set( 'first', 'prop1', 'value1' );
@@ -182,6 +204,9 @@ class ProcessCacheLRUTest extends PHPUnit_Framework_TestCase {
         * filled entry.
         * Given a cache having 1,2,3 as key, updating 2 should bump 2 to
         * the top of the queue with the new value: 1,3,2* (* = updated).
+        *
+        * @covers ProcessCacheLRU::set
+        * @covers ProcessCacheLRU::get
         */
        public function testReplaceExistingKeyInAFullCacheShouldBumpToTop() {
                $maxEntries = 3;
@@ -204,6 +229,9 @@ class ProcessCacheLRUTest extends PHPUnit_Framework_TestCase {
                );
        }
 
+       /**
+        * @covers ProcessCacheLRU::set
+        */
        public function testBumpExistingKeyToTop() {
                $cache = new ProcessCacheLRUTestable( 3 );
                $this->fillCache( $cache, 3 );
diff --git a/tests/phpunit/includes/libs/normal/CleanUpTest.php b/tests/phpunit/includes/libs/normal/CleanUpTest.php
new file mode 100644 (file)
index 0000000..909b0fe
--- /dev/null
@@ -0,0 +1,394 @@
+<?php
+/**
+ * Tests for UtfNormal::cleanUp() function.
+ *
+ * Copyright © 2004 Brion Vibber <brion@pobox.com>
+ * https://www.mediawiki.org/
+ *
+ * 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
+ */
+
+/**
+ * Additional tests for UtfNormal::cleanUp() function, inclusion
+ * regression checks for known problems.
+ * Requires PHPUnit.
+ *
+ * @ingroup UtfNormal
+ * @group Large
+ *
+ * @todo covers tags, will be UtfNormal::cleanUp once the below is resolved
+ * @todo split me into test methods and providers per the below comment
+ * @todo Document individual tests
+ *
+ * We ignore code coverage for this test suite until they are rewritten
+ * to use data providers (bug 46561).
+ * @codeCoverageIgnore
+ */
+class CleanUpTest extends PHPUnit_Framework_TestCase {
+       public function testAscii() {
+               $text = 'This is plain ASCII text.';
+               $this->assertEquals( $text, UtfNormal::cleanUp( $text ) );
+       }
+
+       public function testNull() {
+               $text = "a \x00 null";
+               $expect = "a \xef\xbf\xbd null";
+               $this->assertEquals(
+                       bin2hex( $expect ),
+                       bin2hex( UtfNormal::cleanUp( $text ) ) );
+       }
+
+       public function testLatin() {
+               $text = "L'\xc3\xa9cole";
+               $this->assertEquals( $text, UtfNormal::cleanUp( $text ) );
+       }
+
+       public function testLatinNormal() {
+               $text = "L'e\xcc\x81cole";
+               $expect = "L'\xc3\xa9cole";
+               $this->assertEquals( $expect, UtfNormal::cleanUp( $text ) );
+       }
+
+       /**
+        * This test is *very* expensive!
+        */
+       function XtestAllChars() {
+               $rep = UTF8_REPLACEMENT;
+               for ( $i = 0x0; $i < UNICODE_MAX; $i++ ) {
+                       $char = codepointToUtf8( $i );
+                       $clean = UtfNormal::cleanUp( $char );
+                       $x = sprintf( "%04X", $i );
+
+                       if ( $i % 0x1000 == 0 ) {
+                               echo "U+$x\n";
+                       }
+
+                       if ( $i == 0x0009 ||
+                               $i == 0x000a ||
+                               $i == 0x000d ||
+                               ( $i > 0x001f && $i < UNICODE_SURROGATE_FIRST ) ||
+                               ( $i > UNICODE_SURROGATE_LAST && $i < 0xfffe ) ||
+                               ( $i > 0xffff && $i <= UNICODE_MAX )
+                       ) {
+                               if ( isset( UtfNormal::$utfCanonicalComp[$char] )
+                                       || isset( UtfNormal::$utfCanonicalDecomp[$char] )
+                               ) {
+                                       $comp = UtfNormal::NFC( $char );
+                                       $this->assertEquals(
+                                               bin2hex( $comp ),
+                                               bin2hex( $clean ),
+                                               "U+$x should be decomposed" );
+                               } else {
+                                       $this->assertEquals(
+                                               bin2hex( $char ),
+                                               bin2hex( $clean ),
+                                               "U+$x should be intact" );
+                               }
+                       } else {
+                               $this->assertEquals( bin2hex( $rep ), bin2hex( $clean ), $x );
+                       }
+               }
+       }
+
+       public static function provideAllBytes() {
+               return array(
+                       array( '', '' ),
+                       array( 'x', '' ),
+                       array( '', 'x' ),
+                       array( 'x', 'x' ),
+               );
+       }
+
+       /**
+        * @dataProvider provideAllBytes
+        */
+       function testBytes( $head, $tail ) {
+               for ( $i = 0x0; $i < 256; $i++ ) {
+                       $char = $head . chr( $i ) . $tail;
+                       $clean = UtfNormal::cleanUp( $char );
+                       $x = sprintf( "%02X", $i );
+
+                       if ( $i == 0x0009 ||
+                               $i == 0x000a ||
+                               $i == 0x000d ||
+                               ( $i > 0x001f && $i < 0x80 )
+                       ) {
+                               $this->assertEquals(
+                                       bin2hex( $char ),
+                                       bin2hex( $clean ),
+                                       "ASCII byte $x should be intact" );
+                               if ( $char != $clean ) {
+                                       return;
+                               }
+                       } else {
+                               $norm = $head . UTF8_REPLACEMENT . $tail;
+                               $this->assertEquals(
+                                       bin2hex( $norm ),
+                                       bin2hex( $clean ),
+                                       "Forbidden byte $x should be rejected" );
+                               if ( $norm != $clean ) {
+                                       return;
+                               }
+                       }
+               }
+       }
+
+       /**
+        * @dataProvider provideAllBytes
+        */
+       function testDoubleBytes( $head, $tail ) {
+               for ( $first = 0xc0; $first < 0x100; $first += 2 ) {
+                       for ( $second = 0x80; $second < 0x100; $second += 2 ) {
+                               $char = $head . chr( $first ) . chr( $second ) . $tail;
+                               $clean = UtfNormal::cleanUp( $char );
+                               $x = sprintf( "%02X,%02X", $first, $second );
+                               if ( $first > 0xc1 &&
+                                       $first < 0xe0 &&
+                                       $second < 0xc0
+                               ) {
+                                       $norm = UtfNormal::NFC( $char );
+                                       $this->assertEquals(
+                                               bin2hex( $norm ),
+                                               bin2hex( $clean ),
+                                               "Pair $x should be intact" );
+                                       if ( $norm != $clean ) {
+                                               return;
+                                       }
+                               } elseif ( $first > 0xfd || $second > 0xbf ) {
+                                       # fe and ff are not legal head bytes -- expect two replacement chars
+                                       $norm = $head . UTF8_REPLACEMENT . UTF8_REPLACEMENT . $tail;
+                                       $this->assertEquals(
+                                               bin2hex( $norm ),
+                                               bin2hex( $clean ),
+                                               "Forbidden pair $x should be rejected" );
+                                       if ( $norm != $clean ) {
+                                               return;
+                                       }
+                               } else {
+                                       $norm = $head . UTF8_REPLACEMENT . $tail;
+                                       $this->assertEquals(
+                                               bin2hex( $norm ),
+                                               bin2hex( $clean ),
+                                               "Forbidden pair $x should be rejected" );
+                                       if ( $norm != $clean ) {
+                                               return;
+                                       }
+                               }
+                       }
+               }
+       }
+
+       /**
+        * @dataProvider provideAllBytes
+        */
+       function testTripleBytes( $head, $tail ) {
+               for ( $first = 0xc0; $first < 0x100; $first += 2 ) {
+                       for ( $second = 0x80; $second < 0x100; $second += 2 ) {
+                               #for( $third = 0x80; $third < 0x100; $third++ ) {
+                               for ( $third = 0x80; $third < 0x81; $third++ ) {
+                                       $char = $head . chr( $first ) . chr( $second ) . chr( $third ) . $tail;
+                                       $clean = UtfNormal::cleanUp( $char );
+                                       $x = sprintf( "%02X,%02X,%02X", $first, $second, $third );
+
+                                       if ( $first >= 0xe0 &&
+                                               $first < 0xf0 &&
+                                               $second < 0xc0 &&
+                                               $third < 0xc0
+                                       ) {
+                                               if ( $first == 0xe0 && $second < 0xa0 ) {
+                                                       $this->assertEquals(
+                                                               bin2hex( $head . UTF8_REPLACEMENT . $tail ),
+                                                               bin2hex( $clean ),
+                                                               "Overlong triplet $x should be rejected" );
+                                               } elseif ( $first == 0xed &&
+                                                       ( chr( $first ) . chr( $second ) . chr( $third ) ) >= UTF8_SURROGATE_FIRST
+                                               ) {
+                                                       $this->assertEquals(
+                                                               bin2hex( $head . UTF8_REPLACEMENT . $tail ),
+                                                               bin2hex( $clean ),
+                                                               "Surrogate triplet $x should be rejected" );
+                                               } else {
+                                                       $this->assertEquals(
+                                                               bin2hex( UtfNormal::NFC( $char ) ),
+                                                               bin2hex( $clean ),
+                                                               "Triplet $x should be intact" );
+                                               }
+                                       } elseif ( $first > 0xc1 && $first < 0xe0 && $second < 0xc0 ) {
+                                               $this->assertEquals(
+                                                       bin2hex( UtfNormal::NFC( $head . chr( $first ) .
+                                                                       chr( $second ) ) . UTF8_REPLACEMENT . $tail ),
+                                                       bin2hex( $clean ),
+                                                       "Valid 2-byte $x + broken tail" );
+                                       } elseif ( $second > 0xc1 && $second < 0xe0 && $third < 0xc0 ) {
+                                               $this->assertEquals(
+                                                       bin2hex( $head . UTF8_REPLACEMENT .
+                                                               UtfNormal::NFC( chr( $second ) . chr( $third ) . $tail ) ),
+                                                       bin2hex( $clean ),
+                                                       "Broken head + valid 2-byte $x" );
+                                       } elseif ( ( $first > 0xfd || $second > 0xfd ) &&
+                                               ( ( $second > 0xbf && $third > 0xbf ) ||
+                                                       ( $second < 0xc0 && $third < 0xc0 ) ||
+                                                       ( $second > 0xfd ) ||
+                                                       ( $third > 0xfd ) )
+                                       ) {
+                                               # fe and ff are not legal head bytes -- expect three replacement chars
+                                               $this->assertEquals(
+                                                       bin2hex( $head . UTF8_REPLACEMENT . UTF8_REPLACEMENT . UTF8_REPLACEMENT . $tail ),
+                                                       bin2hex( $clean ),
+                                                       "Forbidden triplet $x should be rejected" );
+                                       } elseif ( $first > 0xc2 && $second < 0xc0 && $third < 0xc0 ) {
+                                               $this->assertEquals(
+                                                       bin2hex( $head . UTF8_REPLACEMENT . $tail ),
+                                                       bin2hex( $clean ),
+                                                       "Forbidden triplet $x should be rejected" );
+                                       } else {
+                                               $this->assertEquals(
+                                                       bin2hex( $head . UTF8_REPLACEMENT . UTF8_REPLACEMENT . $tail ),
+                                                       bin2hex( $clean ),
+                                                       "Forbidden triplet $x should be rejected" );
+                                       }
+                               }
+                       }
+               }
+       }
+
+       public function testChunkRegression() {
+               # Check for regression against a chunking bug
+               $text = "\x46\x55\xb8" .
+                       "\xdc\x96" .
+                       "\xee" .
+                       "\xe7" .
+                       "\x44" .
+                       "\xaa" .
+                       "\x2f\x25";
+               $expect = "\x46\x55\xef\xbf\xbd" .
+                       "\xdc\x96" .
+                       "\xef\xbf\xbd" .
+                       "\xef\xbf\xbd" .
+                       "\x44" .
+                       "\xef\xbf\xbd" .
+                       "\x2f\x25";
+
+               $this->assertEquals(
+                       bin2hex( $expect ),
+                       bin2hex( UtfNormal::cleanUp( $text ) ) );
+       }
+
+       public function testInterposeRegression() {
+               $text = "\x4e\x30" .
+                       "\xb1" . # bad tail
+                       "\x3a" .
+                       "\x92" . # bad tail
+                       "\x62\x3a" .
+                       "\x84" . # bad tail
+                       "\x43" .
+                       "\xc6" . # bad head
+                       "\x3f" .
+                       "\x92" . # bad tail
+                       "\xad" . # bad tail
+                       "\x7d" .
+                       "\xd9\x95";
+
+               $expect = "\x4e\x30" .
+                       "\xef\xbf\xbd" .
+                       "\x3a" .
+                       "\xef\xbf\xbd" .
+                       "\x62\x3a" .
+                       "\xef\xbf\xbd" .
+                       "\x43" .
+                       "\xef\xbf\xbd" .
+                       "\x3f" .
+                       "\xef\xbf\xbd" .
+                       "\xef\xbf\xbd" .
+                       "\x7d" .
+                       "\xd9\x95";
+
+               $this->assertEquals(
+                       bin2hex( $expect ),
+                       bin2hex( UtfNormal::cleanUp( $text ) ) );
+       }
+
+       public function testOverlongRegression() {
+               $text = "\x67" .
+                       "\x1a" . # forbidden ascii
+                       "\xea" . # bad head
+                       "\xc1\xa6" . # overlong sequence
+                       "\xad" . # bad tail
+                       "\x1c" . # forbidden ascii
+                       "\xb0" . # bad tail
+                       "\x3c" .
+                       "\x9e"; # bad tail
+               $expect = "\x67" .
+                       "\xef\xbf\xbd" .
+                       "\xef\xbf\xbd" .
+                       "\xef\xbf\xbd" .
+                       "\xef\xbf\xbd" .
+                       "\xef\xbf\xbd" .
+                       "\xef\xbf\xbd" .
+                       "\x3c" .
+                       "\xef\xbf\xbd";
+               $this->assertEquals(
+                       bin2hex( $expect ),
+                       bin2hex( UtfNormal::cleanUp( $text ) ) );
+       }
+
+       public function testSurrogateRegression() {
+               $text = "\xed\xb4\x96" . # surrogate 0xDD16
+                       "\x83" . # bad tail
+                       "\xb4" . # bad tail
+                       "\xac"; # bad head
+               $expect = "\xef\xbf\xbd" .
+                       "\xef\xbf\xbd" .
+                       "\xef\xbf\xbd" .
+                       "\xef\xbf\xbd";
+               $this->assertEquals(
+                       bin2hex( $expect ),
+                       bin2hex( UtfNormal::cleanUp( $text ) ) );
+       }
+
+       public function testBomRegression() {
+               $text = "\xef\xbf\xbe" . # U+FFFE, illegal char
+                       "\xb2" . # bad tail
+                       "\xef" . # bad head
+                       "\x59";
+               $expect = "\xef\xbf\xbd" .
+                       "\xef\xbf\xbd" .
+                       "\xef\xbf\xbd" .
+                       "\x59";
+               $this->assertEquals(
+                       bin2hex( $expect ),
+                       bin2hex( UtfNormal::cleanUp( $text ) ) );
+       }
+
+       public function testForbiddenRegression() {
+               $text = "\xef\xbf\xbf"; # U+FFFF, illegal char
+               $expect = "\xef\xbf\xbd";
+               $this->assertEquals(
+                       bin2hex( $expect ),
+                       bin2hex( UtfNormal::cleanUp( $text ) ) );
+       }
+
+       public function testHangulRegression() {
+               $text = "\xed\x9c\xaf" . # Hangul char
+                       "\xe1\x87\x81"; # followed by another final jamo
+               $expect = $text; # Should *not* change.
+               $this->assertEquals(
+                       bin2hex( $expect ),
+                       bin2hex( UtfNormal::cleanUp( $text ) ) );
+       }
+}
diff --git a/tests/phpunit/includes/libs/normal/Utf8Test.php b/tests/phpunit/includes/libs/normal/Utf8Test.php
new file mode 100644 (file)
index 0000000..6d8457d
--- /dev/null
@@ -0,0 +1,123 @@
+<?php
+/**
+ * Runs the UTF-8 decoder test at:
+ * http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt
+ *
+ * Copyright © 2004 Brion Vibber <brion@pobox.com>
+ * https://www.mediawiki.org/
+ *
+ * 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 UtfNormal
+ */
+
+class Utf8Test extends PHPUnit_Framework_TestCase {
+       public static function provideLines() {
+               global $IP;
+               $in = fopen( "$IP/tests/phpunit/data/normal/UTF-8-test.txt", "rt" );
+
+               $columns = 0;
+               while ( false !== ( $line = fgets( $in ) ) ) {
+                       $matches = array();
+                       if ( preg_match( '/^(Here come the tests:\s*)\|$/', $line, $matches ) ) {
+                               $columns = strpos( $line, '|' );
+                               break;
+                       }
+               }
+
+               if ( !$columns ) {
+                       print "Something seems to be wrong; couldn't extract line length.\n";
+                       print "Check that UTF-8-test.txt was downloaded correctly from\n";
+                       print "http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt\n";
+                       exit( -1 );
+               }
+
+
+               $ignore = array(
+                       # These two lines actually seem to be corrupt
+                       '2.1.1', '2.2.1' );
+
+               $exceptions = array(
+                       # Tests that should mark invalid characters due to using long
+                       # sequences beyond what is now considered legal.
+                       '2.1.5', '2.1.6', '2.2.4', '2.2.5', '2.2.6', '2.3.5',
+
+                       # Literal 0xffff, which is illegal
+                       '2.2.3' );
+
+               $longTests = array(
+                       # These tests span multiple lines
+                       '3.1.9', '3.2.1', '3.2.2', '3.2.3', '3.2.4', '3.2.5',
+                       '3.4' );
+
+               $testCases = array();
+
+               $section = null;
+               while ( false !== ( $line = fgets( $in ) ) ) {
+                       $matches = array();
+                       if ( preg_match( '/^(\d+)\s+(.*?)\s*\|/', $line, $matches ) ) {
+                               continue;
+                       }
+                       if ( preg_match( '/^(\d+\.\d+\.\d+)\s*/', $line, $matches ) ) {
+                               $test = $matches[1];
+
+                               if ( in_array( $test, $ignore ) ) {
+                                       continue;
+                               }
+                               if ( in_array( $test, $longTests ) ) {
+                                       fgets( $in );
+
+                                       // @codingStandardsIgnoreStart Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
+                                       for ( $line = fgets( $in ); !preg_match( '/^\s+\|/', $line ); $line = fgets( $in ) ) {
+                                               // @codingStandardsIgnoreEnd
+
+                                               $testCases[] = array( $test, $line, $columns, $exceptions );
+                                       }
+                               } else {
+                                       $testCases[] = array( $test, $line, $columns, $exceptions );
+                               }
+                       }
+               }
+
+               return $testCases;
+       }
+
+
+       /**
+        * @dataProvider provideLines
+        * @covers UtfNormal::quickisNFCVerify
+        */
+       function testLine( $test, $line, $columns, $exceptions ) {
+               $stripped = $line;
+               UtfNormal::quickisNFCVerify( $stripped );
+
+               $same = ( $line == $stripped );
+               $len = mb_strlen( substr( $stripped, 0, strpos( $stripped, '|' ) ) );
+               if ( $len == 0 ) {
+                       $len = strlen( substr( $stripped, 0, strpos( $stripped, '|' ) ) );
+               }
+
+               $ok = $same ^ ( $test >= 3 );
+
+               $ok ^= in_array( $test, $exceptions );
+
+               $ok &= ( $columns == $len );
+
+               $this->assertEquals( 1, $ok );
+       }
+
+}
index 5fa609a..78ea953 100644 (file)
@@ -19,24 +19,24 @@ class MediaHandlerTest extends MediaWikiTestCase {
                        "($width, $height, $max) wanted: {$expected}x$y, got: {z$result}x$y2" );
        }
 
-       public function provideTestFitBoxWidth() {
+       public static function provideTestFitBoxWidth() {
                return array_merge(
-                       $this->provideTestFitBoxWidthSingle( 50, 50, array(
+                       static::generateTestFitBoxWidthData( 50, 50, array(
                                        50 => 50,
                                        17 => 17,
                                        18 => 18 )
                        ),
-                       $this->provideTestFitBoxWidthSingle( 366, 300, array(
+                       static::generateTestFitBoxWidthData( 366, 300, array(
                                        50 => 61,
                                        17 => 21,
                                        18 => 22 )
                        ),
-                       $this->provideTestFitBoxWidthSingle( 300, 366, array(
+                       static::generateTestFitBoxWidthData( 300, 366, array(
                                        50 => 41,
                                        17 => 14,
                                        18 => 15 )
                        ),
-                       $this->provideTestFitBoxWidthSingle( 100, 400, array(
+                       static::generateTestFitBoxWidthData( 100, 400, array(
                                        50 => 12,
                                        17 => 4,
                                        18 => 4 )
@@ -44,7 +44,21 @@ class MediaHandlerTest extends MediaWikiTestCase {
                );
        }
 
-       private function provideTestFitBoxWidthSingle( $width, $height, $tests ) {
+       /**
+        * Generate single test cases by combining the dimensions and tests contents
+        *
+        * It creates:
+        * [$width, $height, $max, $expected],
+        * [$width, $height, $max2, $expected2], ...
+        * out of parameters:
+        * $width, $height, { $max => $expected, $max2 => $expected2, ... }
+        *
+        * @param $width int
+        * @param $height int
+        * @param $tests array associative array of $max => $expected values
+        * @return array
+        */
+       private static function generateTestFitBoxWidthData( $width, $height, $tests ) {
                $result = array();
                foreach ( $tests as $max => $expected ) {
                        $result[] = array( $width, $height, $max, $expected );
diff --git a/tests/phpunit/includes/normal/CleanUpTest.php b/tests/phpunit/includes/normal/CleanUpTest.php
deleted file mode 100644 (file)
index af83767..0000000
+++ /dev/null
@@ -1,394 +0,0 @@
-<?php
-/**
- * Tests for UtfNormal::cleanUp() function.
- *
- * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * https://www.mediawiki.org/
- *
- * 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
- */
-
-/**
- * Additional tests for UtfNormal::cleanUp() function, inclusion
- * regression checks for known problems.
- * Requires PHPUnit.
- *
- * @ingroup UtfNormal
- * @group Large
- *
- * @todo covers tags, will be UtfNormal::cleanUp once the below is resolved
- * @todo split me into test methods and providers per the below comment
- * @todo Document individual tests
- *
- * We ignore code coverage for this test suite until they are rewritten
- * to use data providers (bug 46561).
- * @codeCoverageIgnore
- */
-class CleanUpTest extends MediaWikiTestCase {
-       public function testAscii() {
-               $text = 'This is plain ASCII text.';
-               $this->assertEquals( $text, UtfNormal::cleanUp( $text ) );
-       }
-
-       public function testNull() {
-               $text = "a \x00 null";
-               $expect = "a \xef\xbf\xbd null";
-               $this->assertEquals(
-                       bin2hex( $expect ),
-                       bin2hex( UtfNormal::cleanUp( $text ) ) );
-       }
-
-       public function testLatin() {
-               $text = "L'\xc3\xa9cole";
-               $this->assertEquals( $text, UtfNormal::cleanUp( $text ) );
-       }
-
-       public function testLatinNormal() {
-               $text = "L'e\xcc\x81cole";
-               $expect = "L'\xc3\xa9cole";
-               $this->assertEquals( $expect, UtfNormal::cleanUp( $text ) );
-       }
-
-       /**
-        * This test is *very* expensive!
-        */
-       function XtestAllChars() {
-               $rep = UTF8_REPLACEMENT;
-               for ( $i = 0x0; $i < UNICODE_MAX; $i++ ) {
-                       $char = codepointToUtf8( $i );
-                       $clean = UtfNormal::cleanUp( $char );
-                       $x = sprintf( "%04X", $i );
-
-                       if ( $i % 0x1000 == 0 ) {
-                               echo "U+$x\n";
-                       }
-
-                       if ( $i == 0x0009 ||
-                               $i == 0x000a ||
-                               $i == 0x000d ||
-                               ( $i > 0x001f && $i < UNICODE_SURROGATE_FIRST ) ||
-                               ( $i > UNICODE_SURROGATE_LAST && $i < 0xfffe ) ||
-                               ( $i > 0xffff && $i <= UNICODE_MAX )
-                       ) {
-                               if ( isset( UtfNormal::$utfCanonicalComp[$char] )
-                                       || isset( UtfNormal::$utfCanonicalDecomp[$char] )
-                               ) {
-                                       $comp = UtfNormal::NFC( $char );
-                                       $this->assertEquals(
-                                               bin2hex( $comp ),
-                                               bin2hex( $clean ),
-                                               "U+$x should be decomposed" );
-                               } else {
-                                       $this->assertEquals(
-                                               bin2hex( $char ),
-                                               bin2hex( $clean ),
-                                               "U+$x should be intact" );
-                               }
-                       } else {
-                               $this->assertEquals( bin2hex( $rep ), bin2hex( $clean ), $x );
-                       }
-               }
-       }
-
-       public static function provideAllBytes() {
-               return array(
-                       array( '', '' ),
-                       array( 'x', '' ),
-                       array( '', 'x' ),
-                       array( 'x', 'x' ),
-               );
-       }
-
-       /**
-        * @dataProvider provideAllBytes
-        */
-       function testBytes( $head, $tail ) {
-               for ( $i = 0x0; $i < 256; $i++ ) {
-                       $char = $head . chr( $i ) . $tail;
-                       $clean = UtfNormal::cleanUp( $char );
-                       $x = sprintf( "%02X", $i );
-
-                       if ( $i == 0x0009 ||
-                               $i == 0x000a ||
-                               $i == 0x000d ||
-                               ( $i > 0x001f && $i < 0x80 )
-                       ) {
-                               $this->assertEquals(
-                                       bin2hex( $char ),
-                                       bin2hex( $clean ),
-                                       "ASCII byte $x should be intact" );
-                               if ( $char != $clean ) {
-                                       return;
-                               }
-                       } else {
-                               $norm = $head . UTF8_REPLACEMENT . $tail;
-                               $this->assertEquals(
-                                       bin2hex( $norm ),
-                                       bin2hex( $clean ),
-                                       "Forbidden byte $x should be rejected" );
-                               if ( $norm != $clean ) {
-                                       return;
-                               }
-                       }
-               }
-       }
-
-       /**
-        * @dataProvider provideAllBytes
-        */
-       function testDoubleBytes( $head, $tail ) {
-               for ( $first = 0xc0; $first < 0x100; $first += 2 ) {
-                       for ( $second = 0x80; $second < 0x100; $second += 2 ) {
-                               $char = $head . chr( $first ) . chr( $second ) . $tail;
-                               $clean = UtfNormal::cleanUp( $char );
-                               $x = sprintf( "%02X,%02X", $first, $second );
-                               if ( $first > 0xc1 &&
-                                       $first < 0xe0 &&
-                                       $second < 0xc0
-                               ) {
-                                       $norm = UtfNormal::NFC( $char );
-                                       $this->assertEquals(
-                                               bin2hex( $norm ),
-                                               bin2hex( $clean ),
-                                               "Pair $x should be intact" );
-                                       if ( $norm != $clean ) {
-                                               return;
-                                       }
-                               } elseif ( $first > 0xfd || $second > 0xbf ) {
-                                       # fe and ff are not legal head bytes -- expect two replacement chars
-                                       $norm = $head . UTF8_REPLACEMENT . UTF8_REPLACEMENT . $tail;
-                                       $this->assertEquals(
-                                               bin2hex( $norm ),
-                                               bin2hex( $clean ),
-                                               "Forbidden pair $x should be rejected" );
-                                       if ( $norm != $clean ) {
-                                               return;
-                                       }
-                               } else {
-                                       $norm = $head . UTF8_REPLACEMENT . $tail;
-                                       $this->assertEquals(
-                                               bin2hex( $norm ),
-                                               bin2hex( $clean ),
-                                               "Forbidden pair $x should be rejected" );
-                                       if ( $norm != $clean ) {
-                                               return;
-                                       }
-                               }
-                       }
-               }
-       }
-
-       /**
-        * @dataProvider provideAllBytes
-        */
-       function testTripleBytes( $head, $tail ) {
-               for ( $first = 0xc0; $first < 0x100; $first += 2 ) {
-                       for ( $second = 0x80; $second < 0x100; $second += 2 ) {
-                               #for( $third = 0x80; $third < 0x100; $third++ ) {
-                               for ( $third = 0x80; $third < 0x81; $third++ ) {
-                                       $char = $head . chr( $first ) . chr( $second ) . chr( $third ) . $tail;
-                                       $clean = UtfNormal::cleanUp( $char );
-                                       $x = sprintf( "%02X,%02X,%02X", $first, $second, $third );
-
-                                       if ( $first >= 0xe0 &&
-                                               $first < 0xf0 &&
-                                               $second < 0xc0 &&
-                                               $third < 0xc0
-                                       ) {
-                                               if ( $first == 0xe0 && $second < 0xa0 ) {
-                                                       $this->assertEquals(
-                                                               bin2hex( $head . UTF8_REPLACEMENT . $tail ),
-                                                               bin2hex( $clean ),
-                                                               "Overlong triplet $x should be rejected" );
-                                               } elseif ( $first == 0xed &&
-                                                       ( chr( $first ) . chr( $second ) . chr( $third ) ) >= UTF8_SURROGATE_FIRST
-                                               ) {
-                                                       $this->assertEquals(
-                                                               bin2hex( $head . UTF8_REPLACEMENT . $tail ),
-                                                               bin2hex( $clean ),
-                                                               "Surrogate triplet $x should be rejected" );
-                                               } else {
-                                                       $this->assertEquals(
-                                                               bin2hex( UtfNormal::NFC( $char ) ),
-                                                               bin2hex( $clean ),
-                                                               "Triplet $x should be intact" );
-                                               }
-                                       } elseif ( $first > 0xc1 && $first < 0xe0 && $second < 0xc0 ) {
-                                               $this->assertEquals(
-                                                       bin2hex( UtfNormal::NFC( $head . chr( $first ) .
-                                                                       chr( $second ) ) . UTF8_REPLACEMENT . $tail ),
-                                                       bin2hex( $clean ),
-                                                       "Valid 2-byte $x + broken tail" );
-                                       } elseif ( $second > 0xc1 && $second < 0xe0 && $third < 0xc0 ) {
-                                               $this->assertEquals(
-                                                       bin2hex( $head . UTF8_REPLACEMENT .
-                                                               UtfNormal::NFC( chr( $second ) . chr( $third ) . $tail ) ),
-                                                       bin2hex( $clean ),
-                                                       "Broken head + valid 2-byte $x" );
-                                       } elseif ( ( $first > 0xfd || $second > 0xfd ) &&
-                                               ( ( $second > 0xbf && $third > 0xbf ) ||
-                                                       ( $second < 0xc0 && $third < 0xc0 ) ||
-                                                       ( $second > 0xfd ) ||
-                                                       ( $third > 0xfd ) )
-                                       ) {
-                                               # fe and ff are not legal head bytes -- expect three replacement chars
-                                               $this->assertEquals(
-                                                       bin2hex( $head . UTF8_REPLACEMENT . UTF8_REPLACEMENT . UTF8_REPLACEMENT . $tail ),
-                                                       bin2hex( $clean ),
-                                                       "Forbidden triplet $x should be rejected" );
-                                       } elseif ( $first > 0xc2 && $second < 0xc0 && $third < 0xc0 ) {
-                                               $this->assertEquals(
-                                                       bin2hex( $head . UTF8_REPLACEMENT . $tail ),
-                                                       bin2hex( $clean ),
-                                                       "Forbidden triplet $x should be rejected" );
-                                       } else {
-                                               $this->assertEquals(
-                                                       bin2hex( $head . UTF8_REPLACEMENT . UTF8_REPLACEMENT . $tail ),
-                                                       bin2hex( $clean ),
-                                                       "Forbidden triplet $x should be rejected" );
-                                       }
-                               }
-                       }
-               }
-       }
-
-       public function testChunkRegression() {
-               # Check for regression against a chunking bug
-               $text = "\x46\x55\xb8" .
-                       "\xdc\x96" .
-                       "\xee" .
-                       "\xe7" .
-                       "\x44" .
-                       "\xaa" .
-                       "\x2f\x25";
-               $expect = "\x46\x55\xef\xbf\xbd" .
-                       "\xdc\x96" .
-                       "\xef\xbf\xbd" .
-                       "\xef\xbf\xbd" .
-                       "\x44" .
-                       "\xef\xbf\xbd" .
-                       "\x2f\x25";
-
-               $this->assertEquals(
-                       bin2hex( $expect ),
-                       bin2hex( UtfNormal::cleanUp( $text ) ) );
-       }
-
-       public function testInterposeRegression() {
-               $text = "\x4e\x30" .
-                       "\xb1" . # bad tail
-                       "\x3a" .
-                       "\x92" . # bad tail
-                       "\x62\x3a" .
-                       "\x84" . # bad tail
-                       "\x43" .
-                       "\xc6" . # bad head
-                       "\x3f" .
-                       "\x92" . # bad tail
-                       "\xad" . # bad tail
-                       "\x7d" .
-                       "\xd9\x95";
-
-               $expect = "\x4e\x30" .
-                       "\xef\xbf\xbd" .
-                       "\x3a" .
-                       "\xef\xbf\xbd" .
-                       "\x62\x3a" .
-                       "\xef\xbf\xbd" .
-                       "\x43" .
-                       "\xef\xbf\xbd" .
-                       "\x3f" .
-                       "\xef\xbf\xbd" .
-                       "\xef\xbf\xbd" .
-                       "\x7d" .
-                       "\xd9\x95";
-
-               $this->assertEquals(
-                       bin2hex( $expect ),
-                       bin2hex( UtfNormal::cleanUp( $text ) ) );
-       }
-
-       public function testOverlongRegression() {
-               $text = "\x67" .
-                       "\x1a" . # forbidden ascii
-                       "\xea" . # bad head
-                       "\xc1\xa6" . # overlong sequence
-                       "\xad" . # bad tail
-                       "\x1c" . # forbidden ascii
-                       "\xb0" . # bad tail
-                       "\x3c" .
-                       "\x9e"; # bad tail
-               $expect = "\x67" .
-                       "\xef\xbf\xbd" .
-                       "\xef\xbf\xbd" .
-                       "\xef\xbf\xbd" .
-                       "\xef\xbf\xbd" .
-                       "\xef\xbf\xbd" .
-                       "\xef\xbf\xbd" .
-                       "\x3c" .
-                       "\xef\xbf\xbd";
-               $this->assertEquals(
-                       bin2hex( $expect ),
-                       bin2hex( UtfNormal::cleanUp( $text ) ) );
-       }
-
-       public function testSurrogateRegression() {
-               $text = "\xed\xb4\x96" . # surrogate 0xDD16
-                       "\x83" . # bad tail
-                       "\xb4" . # bad tail
-                       "\xac"; # bad head
-               $expect = "\xef\xbf\xbd" .
-                       "\xef\xbf\xbd" .
-                       "\xef\xbf\xbd" .
-                       "\xef\xbf\xbd";
-               $this->assertEquals(
-                       bin2hex( $expect ),
-                       bin2hex( UtfNormal::cleanUp( $text ) ) );
-       }
-
-       public function testBomRegression() {
-               $text = "\xef\xbf\xbe" . # U+FFFE, illegal char
-                       "\xb2" . # bad tail
-                       "\xef" . # bad head
-                       "\x59";
-               $expect = "\xef\xbf\xbd" .
-                       "\xef\xbf\xbd" .
-                       "\xef\xbf\xbd" .
-                       "\x59";
-               $this->assertEquals(
-                       bin2hex( $expect ),
-                       bin2hex( UtfNormal::cleanUp( $text ) ) );
-       }
-
-       public function testForbiddenRegression() {
-               $text = "\xef\xbf\xbf"; # U+FFFF, illegal char
-               $expect = "\xef\xbf\xbd";
-               $this->assertEquals(
-                       bin2hex( $expect ),
-                       bin2hex( UtfNormal::cleanUp( $text ) ) );
-       }
-
-       public function testHangulRegression() {
-               $text = "\xed\x9c\xaf" . # Hangul char
-                       "\xe1\x87\x81"; # followed by another final jamo
-               $expect = $text; # Should *not* change.
-               $this->assertEquals(
-                       bin2hex( $expect ),
-                       bin2hex( UtfNormal::cleanUp( $text ) ) );
-       }
-}
index a6b4880..fe46f2c 100644 (file)
@@ -103,7 +103,7 @@ class ParserOutputTest extends MediaWikiTestCase {
        }
 
        /**
-        * @covers ParserOutput::getSecondaryDataUpdate
+        * @covers ParserOutput::getSecondaryDataUpdates
         * @covers ParserOutput::addSecondaryDataUpdate
         */
        public function testGetSecondaryDataUpdates() {
@@ -127,7 +127,7 @@ class ParserOutputTest extends MediaWikiTestCase {
        }
 
        /**
-        * @covers ParserOutput::getSecondaryDataUpdate
+        * @covers ParserOutput::getSecondaryDataUpdates
         * @covers ParserOutput::__sleep
         */
        public function testGetSecondaryDataUpdates_serialization() {
index 221c258..96df354 100644 (file)
@@ -18,6 +18,23 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
                'name' => 'FooBar',
        );
 
+       /**
+        * @covers ExtensionProcessor::extractInfo
+        */
+       public function testExtractInfo() {
+               // Test that attributes that begin with @ are ignored
+               $processor = new ExtensionProcessor();
+               $processor->extractInfo( $this->dir, self::$default + array(
+                       '@metadata' => array( 'foobarbaz' ),
+                       'AnAttribute' => array( 'omg' ),
+               ) );
+
+               $extracted = $processor->getExtractedInfo();
+               $attributes = $extracted['attributes'];
+               $this->assertArrayHasKey( 'AnAttribute', $attributes );
+               $this->assertArrayNotHasKey( '@metadata', $attributes );
+       }
+
        public static function provideRegisterHooks() {
                return array(
                        // No hooks
@@ -70,12 +87,14 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
                        'config' => array(
                                'Bar' => 'somevalue',
                                'Foo' => 10,
+                               '@IGNORED' => 'yes',
                        ),
                ) + self::$default;
                $processor->extractInfo( $this->dir, $info );
                $extracted = $processor->getExtractedInfo();
                $this->assertEquals( 'somevalue', $extracted['globals']['wgBar'] );
                $this->assertEquals( 10, $extracted['globals']['wgFoo'] );
+               $this->assertArrayNotHasKey( 'wg@IGNORED', $extracted['globals'] );
        }
 
        public static function provideSetToGlobal() {
index 860408f..1acbc24 100644 (file)
@@ -58,7 +58,6 @@ phpunit.php enables colors for other OSs at runtime
                        <directory suffix=".php">../../includes</directory>
                        <directory suffix=".php">../../languages</directory>
                        <directory suffix=".php">../../maintenance</directory>
-                       <directory suffix=".php">../../resources</directory>
                        <directory suffix=".php">../../skins</directory>
                </whitelist>
        </filter>
index c9653da..c6aa3b7 100644 (file)
                assert.strictEqual( key, 'barfoo' );
        } );
 
-} ( mediaWiki, jQuery ) );
+}( mediaWiki, jQuery ) );